kenobi wrote:
You'll need a different hack for each game you're playing.
For exemple, this should make Zelda US think the L button is always unpressed :
5202AE4C 00002FFF
0202AE4C 00002DFF
D2000000 00000000
(didn't tried it yet, but it should work).
If that works, here is what you can try :
If you have no$gba debugger version, and a rom of your game, put a bpr on 0x04000130. Then, you might see a 'ldr r0,=2FFFh' close to the break address. Now scroll down to find when the '0x00002FFF' value lies (for zelda it's at 0202AE4C), and update the code I made with the address you found.
If you have the TT, make a full ram dump and search for '04000130' with an hex editor (might have to byteswap, ie. look for '30010004'). Look around it to see if you have a 0x00002FFF (0xFF020000). If yes, convert the position in the file of 0x00002FFF to an address (by adding 0x02000000 to it ; if the position in the file is 0x02AE1C, the address would be 0x0202AE1C), and use that address you created to update my code.
It should also be possible to create a tool that could find the address to patch using a rom file, but that would be a bit hard/long to do - at least for me (would have to decompress the NDS executables, find their address in memory...). But that could be interessing.
However, that would not be good enought for all games. For exemple, Pokémons games' pad reading routines are not in ARM, but in THUMB (and I'm not sure the 0x00002FFF is used in THUMB).
Of course, if you don't have neither no$gba debugger version, nor the TT, you'll have to ask for codes to be made for each of your game.
Edit : I made my hack based on the japanese games, so the address for the code was wrong. It's corrected now (code is for the US game). I also tested the code, and it works (for exemple, if I press Start+Select+L+R with the code on, the game won't reboot, hence it thinks the L key is not pressed).
bpr? isn't that a breakpoint? heh, i guess you have the debugger version.
edit: err. it's really the debugger XD i didn't read the other part lol