+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  [GBA]Golden Sun: Help to make a cheat
Pages: [1]
Author Topic: [GBA]Golden Sun: Help to make a cheat  (Read 1 times)
Knirt
Guest
« on: May 01, 2010, 09:07:31 pm »

Hello, fellow mates.
I was trying to make a cheat for the game [GBA]Golden Sun, release #0171, by Mode7, ROM without intro's, using the VBA 1.7.2

To make the cheat, I've tried using the Cheat Search, and some trial-and-errod methods, like the one described by Parasyte onto his FCE Debuggin tutorial (http://www.romhacking.net/docs/161/), and some of the techniques described here: (http://web.archive.org/web/20040409085237/www.gscentral.com/view.pl?HackingText/hackv500c).

My goal was to make a cheat so Isaac would "Always Run" on the screen. The first time I made my tests, I came up with four adresses:

030006C8
030049FC
030049FD
03004A11

None of them seemed to make my code work. I've repeated the process, but now using different types of comparisons, and came up with only one result:

02037011

But again, this didn't set my character to be always running.
I'm not an expert in GameBoy Advance ASM, so I have no idea if there adresses are reserved to something (stack pile, ppu) or anything, nor do know if there's an easier way to make a button always triggered (at least, always when out of the battle and out of the menu).

Any ideas?
Thanks in advance! Smiley
Spikeman
Guest
« Reply #1 on: May 03, 2010, 12:14:46 am »

You could try setting a code on the key input register: Check out GBATEK.

02XXXXXX and 03XXXXXX are both RAM, but in my experience games tend to use 02XXXXXX for important variables and data and 03XXXXXX for running code in RAM and things like that, so I tend to check the 02XXXXXX addresses first.

Also, you might want to check out the newest VBA (1.8 I believe), it has a much nicer cheat search.
Knirt
Guest
« Reply #2 on: May 08, 2010, 08:23:07 pm »

Hello Spikeman
Using your link and doing a bit more of research on my own, I came up with another interesting link:

http://www.bsfree.org/hack/hacking_gba.html#button

What I understood is that, this address mentioned on both documents (0x04000130h) is the RAM address containing the button pressed. By my intuition, setting this specific value with #02, per example, would set the B button always pressed. But, there comes the problems:

1 - The cheat console wouldn't accept this address. This part still confuses me, as I'm not a expert in GBA specs. Isn't this a valid GBA RAM address?
2 - The B button would be always pressed if we followed this code. But would I be able to press other buttons as well, or would the emulator always undesrstand as if only the B button was pressed?

Many thanks for now, I hope we can find a solution to my problem Smiley
KingMike
Guest
« Reply #3 on: May 08, 2010, 09:42:39 pm »

From the memory map, it seems that 04xxxxxx isn't RAM. It's a register. Meaning it's a special address that, when read, instructs the CPU to check the currently pressed button status. But it's possible the game code reads the data and then stores it to an actual RAM address (again, something starting with 02 or 03).
gadesx
Guest
« Reply #4 on: May 09, 2010, 09:16:04 am »

with the search function of vba you can try this:
walk will be X number, and run Y number of the same adress but another digit.
Use search unknow code, and with different number you can "minimize" the possibles codes.

about the key input codes, I'dont know how go it in GBA, in psx usually uses adresses starting by D0,etc
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC