Just a quick reference for those making infinite-something Game Genie codes for retro consoles.
General tools i use regularly:
- ucon64 (Game Genie encoder/decoder, rom patcher, and more)
- qalc (cmdline calculator)
- Retroarch (decent GUI to look for memory addesses)
suggested emus with breakpoints and a debugger:
- NES: fceux
- SNES: bsnes-plus
- SMD: Mednafen (very ugly UI, but works), MAME
- SMS, GG: Gearsystem
- PCE: Mednafen (very ugly UI, but works), MAME
- GB: BGB
- GBA: no$gba debug version
opcodes references:
- 6502 (NES, SNES, PCE)
- m68k (SMD)
- Z80 (MSX, GB, SMS, GG)
common ASM opcode replacements:
- Z80 (original guide):
- 90, 91, 92, 93, 94, 95 -> 00 (DEC->NOP)
- EA -> FA (LD reg2mem -> LD mem2reg)
- …
- 6502 (original list posted here):
- CE -> AD (DEC->LDA)
DE -> BD (DEC->LDA)
C6 -> A5 (DEC->LDA)
85 -> A5
D6 -> B5
95 -> B5
8D -> AD
9D -> BD (STA->LDA)
DE -> BD
91 -> B1
99 -> BE
EA (NOP)
- CE -> AD (DEC->LDA)
- m68K:
- most used opcodes are 6002 and 6004 (= Branch 2 or 4 bytes).
- to skip a single instruction, a single NOP= 4E71 will do.
general tricks:
- to NOP multiple instructions, you can use an unconditional branch instruction, or, if near a “RET” (=routine return) you can just call RET before.
Some codes i’ve made can be found here.
P.N.: i am not taking cheat requests currently, so please do not ask in the comments.