Post subject: Arcana
Joined: 3/21/2010
Posts: 15
So, I'm just starting this run and there's still a lot of stuff that's confusing the hell out of me. Namely, I'm having trouble figuring out how to dodge on command. Now, I know I can avoid monster encounters by simply waiting frames and advancing then, as you can see I avoid encounters entirely up til the boss fight. Yet the fight, while more of a frustrated button mash after about half an hour of trying, shows that dodges do happen. It may simply be a lack of ability to dodge due to levels, which means I'll need to purposefully grind or some odd to get the ability, which slows stuff down. The boss fight wasn't THAT' bad, and in that first area, there's only really two fights, that golem, and the next. Yet it's the later fights that leave me worried about having to grind up level, because with experience playing the game non-TAS... it's truly a bitch. If I could figure out how to manipulate dodges, perhaps through getting someone to look at the programming and figure it out, I'd be ecstatic. I went ahead and included a 'map' of the first level to show that the dungeon(at least so far) really IS straight forward. Edit: Link removed by staff
Player (218)
Location: Oregon
Joined: 2/12/2006
Posts: 373
Location: Oregon
Do you have a link to an SMV with what you've done so far? If you do, put it up on dehacked's Microstorage at http://dehacked.2y.net/microstorage.php Do you know about lua scripting? Especially since you're planning to TAS an RPG, it would be a good idea to know how to do it. One place to start would be http://tasvideos.org/LuaScripting.html. One possible application: if it turns out, for example, that waiting the right amount of time can make the character dodge, you could make a lua script that tries many different waiting times until it finds the right one. One more thing. Keep in mind that if you decide to submit this, it may not be accepted. I say that because although I personally like this game it doesn't seem to be very popular and wandering through mazes with little change in look may bore many viewers. But of course if you want to TAS it anyway, go ahead. I at least would like to see a complete TAS of this game :).
Joined: 3/21/2010
Posts: 15
Ugh. I HAD a link there, including other stuff in a zip file. Since I can't edit my first post anymore... http://dehacked.2y.net/microstorage.php/info/1401232702/Arcana%20%28U%29%20%5Bh1C%5D.smv There.
Player (218)
Location: Oregon
Joined: 2/12/2006
Posts: 373
Location: Oregon
I noticed that your SMV was made using "Arcana (U) [h1C]". That is actually a hacked ROM. Your SMV still syncs with the clean ROM, but I suggest that you track down the clean ROM and TAS using that. You can check whether a ROM is good by using NSRT. Also, did your first link have a ROM or something? I'm wondering what would cause it to be removed.
Joined: 3/21/2010
Posts: 15
o.O Well now, that makes me wonder. There's nothing different about the rom X3 at least, not from what I can tell. I'll go look for another, then. And yes, I included the rom. I was griped at in a pm to not do it again, so.. yeah. It seems that's why.
Joined: 3/21/2010
Posts: 15
Posting this for reference of someone to glance at
--I find this method for pressing buttons easier than the built-in method. Pulled from my Lufia scripts
function press (button, button2, button3, button4, button5)
	j1 = {}
	
	if (button ~= nil) then 
	j1[button] = true 
	end
	
	if (button2 ~= nil) then 
	j1[button2] = true 
	end
	
	if (button3 ~= nil) then 
	j1[button3] = true 
	end
	
	if (button4 ~= nil) then 
	j1[button4] = true 
	end
	
	if (button5 ~= nil) then 
	j1[button5] = true 
	end
	
	joypad.set (1, j1)
	snes9x.frameadvance()
	j1 = {}
end

local j1 = {}
local minframes = 999999
local waitframes = 0
local frames = 0
local initstate = savestate.create() --savestate for before the battle
local beststate = savestate.create() --savestate for the best end-of-battle time

--"constants"
local ROOKS = 0
local SYLPH = 1
local TEEFA = 2

snes9x.speedmode("turbo")
local enemyLife = 0x7E09DB
local rooksLife = 0x7E12F3
local sylphLife = 0x7E12F5
local teefaLife = 0x7E12F7
local whoseTurn = 0x7E09ED

--I'm not sure what this is supposed to be, but I've found I can use it to keep track of some parts of the battle.
--The constants you see compared with this location were found by trial and error with the memory watcher, 
--so I can't really explain why they are what they are, just that they work.
local ready = 0x7E10A5

savestate.save(initstate)
while frames < 40 do --320 is an arbitrary number
	while (waitframes <frames> 3)) do
			if (memory.readbyte(enemyLife) == 0 or memory.readbyte(rooksLife) == 0 or memory.readbyte(sylphLife) == 0 or memory.readbyte(teefaLife) ==0) then
				break end
			press()
		end
		
		press("A") --select the boss then attack
		press()
		press("A")
		press()
	end	
	--check framecount and save state if this is the fastest attempt so far and no party member is dead
	if (movie.framecount() < minframes and memory.readbyte(rooksLife) ~= 0 and memory.readbyte(sylphLife) ~= 0 and memory.readbyte(teefaLife) ~=0) then
		minframes = movie.framecount()
		savestate.save (beststate)
	end
	savestate.load (initstate) --jump back to before the battle in order to make another attempt
end
savestate.load (beststate) --load the best attempt
snes9x.pause()
Invariel
He/Him
Editor, Site Developer, Player (178)
Location: Toronto, Ontario
Joined: 8/11/2011
Posts: 546
Location: Toronto, Ontario
https://www.speedrun.com/en-US/arcana/forums/xghqt Details a glitch where you can "trade" an item that does not make up the difference when shopping, letting you access memory directly. The speedrunning community uses this to gain a bunch of money in Act 1 and buy overpowered gear, and later a bunch of stat-increasing items. If the memory accessing is straightforward, this is probably ACE-able. And even if not, getting a bunch of money for free will affect the routing, meaning fewer stops at treasure chests to pick up salables and a sub-one hour run.
I am still the wizard that did it. "On my business card, I am a corporate president. In my mind, I am a game developer. But in my heart, I am a gamer." -- Satoru Iwata <scrimpy> at least I now know where every map, energy and save room in this game is
SarahShinespark
She/They
Location: USA
Joined: 1/28/2022
Posts: 1
Location: USA
Howdy, I'm the one who was explaining the Shop Glitch on SRC. Seems that the wider memory access is hardware-specific, I suspect it's a Snes9x emulation bug; Iceplug dubbed that one Greater Shop Glitch GSG). The version that lets you sell your cards for cash is Lesser Shop Glitch (LSG). I could probably find a way to repeatedly sell card stack -> fill inventory with honey -> drink all the honey -> sell card stack, would be a good idea to have a faster final fight since each turn has a 60 frame pause afterwards. I've been documenting and disassembling the code for awhile now, publishing it on Data Crystal when I can; I've spelled out the hit determination formula and various stats. Recently learned a lot of the code was reused for other HAL games like Kirby Super Star, HyperZone and Earthbound, so I'm making more progress learning how different variables move around. Lmk if y'all have any questions I can help answer.

1754445992