11 March 2016 - Forum Rules

Main Menu

Finding specific bytes in Aria of Sorrow

Started by caminopreacher, March 06, 2019, 03:01:28 PM

Previous topic - Next topic


Hey, guys. Thought I'd check here before calling it quits on trying to locate the Starting Health byte location in Castlevania: Aria of Sorrow for GBA. The starting hp is 320, which translates into 40 01.
I really don't feel like filtering through hundreds of those bytes testing. Anyone have any suggestions? Thanks much.



If you know where it ends up in RAM then you should be able to find where it first loads that in and work backwards from there.

It is for graphics and I tend to suggest no$gba debug for most people these days rather than vba-sdl-h which that is written for but the workflows are about the same

It might not even be that value, or indeed a value if the health is generated from stats or something. To say nothing of health need not be the same as maximum health which might be a separate concept within the game.

Indeed unless the game has a whole bunch of character classes or something to choose from I would probably not even contemplate a searching approach like that and go right for assembly, and I am normally all about not going right for assembly if there is a reasonable chance or alternative workflow.

El Forko

If you could get a version of grep on windows, here's an answer on stackoverflow that discusses how do an automated search for a string of byte values:

Although I just did a search for 0x40 0x01 (and 0x01 0x40 for good measure, since I don't know the endianness of GBA games), and didn't get any matches :(

EDIT: Derp I'm an idiot, I searched my .srm file, not the .gba file, which has tons of matches.  And I just reread your post and it sounds like you're trying to figure out which of those matches is the right one.


One way to do it is to replace all the occurancies and check if the game still runs and the health value have changed.

If it has - then redo the replacement for HALF the rom and check. Keep this up until you have narrowed it down to a few occurancies and then check each one.