So with Cheat Engine's debugging functions for PC games I just generally find an address of a value, then use the "what accesses this address" and "what writes to this address" right-click options to find the lines of assembly that do whatever regarding it, so I can edit them as needed. I'm aware this is like setting breakpoints and then halting at the instruction there (CE does more stuff too, like log the two instructions before and after, and the registers at the time of that single one).
So I want to do it with emulators, too. The only one I've been able to figure out is Geiger's SNES9X debug build.
I can put in an address as the breakpoint and the emulator/debugger breaks at the instruction that modifies that address (in this case the address is coins, and the opcode is the one that increments the coin amount). It gives me INC $0DBF for the line that does it, so I Googled 6502 assembly to find the NOP is EA, so I added the three GG codes (ROM modification, and it's three bytes in the original line so three modifications) you see in the right window, to stop the number of coins from incrementing when you collect one, and it seems to work. So I'd call this a success for a start.
But that's it. I couldn't figure out how to set breakpoints or things like that in no$sns, and Idunno' which debuggers for other systems (Genesis, NES, GB/C, GBA, DS, etc.) have this kind of workflow geared towards making cheats/modifications.
Any clues?
I'm not familiar with the older-style way of reading/writing/moving memory around or conditional jumps or anything like that, but I suppose I'll just have to Google for guides on that part, once I know which tools to use and how to use them.
So I want to do it with emulators, too. The only one I've been able to figure out is Geiger's SNES9X debug build.
I can put in an address as the breakpoint and the emulator/debugger breaks at the instruction that modifies that address (in this case the address is coins, and the opcode is the one that increments the coin amount). It gives me INC $0DBF for the line that does it, so I Googled 6502 assembly to find the NOP is EA, so I added the three GG codes (ROM modification, and it's three bytes in the original line so three modifications) you see in the right window, to stop the number of coins from incrementing when you collect one, and it seems to work. So I'd call this a success for a start.
But that's it. I couldn't figure out how to set breakpoints or things like that in no$sns, and Idunno' which debuggers for other systems (Genesis, NES, GB/C, GBA, DS, etc.) have this kind of workflow geared towards making cheats/modifications.
Any clues?
I'm not familiar with the older-style way of reading/writing/moving memory around or conditional jumps or anything like that, but I suppose I'll just have to Google for guides on that part, once I know which tools to use and how to use them.