Tests with NES Game Genie codes conversion - (Ian Patterson

If you are having problems finding or using cheats for an Emulator (particularly MAME/MESS) or have found a trick that you wish to share this is the place to do it. But please read the Cheat FAQ first.
Post Reply
User avatar
Pugsy
Posts: 3675
Joined: Fri Aug 17, 2001 12:59 am
Location: North Wales, UK.
Has thanked: 1 time
Been thanked: 15 times
Contact:

Post by Pugsy »

I had a private message from somebody asking me about converting some NES Game Genie codes for Yo! Noid. As Yo Noid! is a Playchoice 10 game and is basically the NES version in arcade form. I managed to find a convertor on the net and figured out the MAME equivalents:

The Genie has these Yo! Noid codes:
SXKTTUVK + SXKVPUVK: Infinite lives
SXXLIGVG: Stop timer
IAKUVGPA: More magic from small scrolls
AEUGSKTZ: Multi-mega-jumps
PAXSNZLA: 1 continue
TAXSNZLA: 6 continues
ZEVSKPPA: Start on stage 2
GEVSKPPA: Start on stage 4
TEVSKPPA: Start on stage 6
AEVSKPPE: Start on stage 8
ZEVSKPPE: Start on stage 10
GEVSKPPE: Start on stage 12

I managed to convert these into the following ROM codes (yess GG codes are ROM pokes!), they are not all direct conversions. The Lives, Jumps, more magic and start on stage cheats are straight caonversions though (except for adding $8000 to the addresses which is likely a Playchoice 10 thing)

Code: Select all

; [ PlayChoice-10: Yo! Noid ]
pc_ynoid:0:80D2:99:000:Infinite Main Time
pc_ynoid:0:80D3:99:500:Infinite Main Time (2/2)
pc_ynoid:1:07D3:39:000:Infinite Time:Turn it OFF at the end of each stage
pc_ynoid:1:07D7:49:500:Infinite Time (2/2)
pc_ynoid:1:E3C6:AD:100:Infinite Lives
pc_ynoid:1:E3C9:AD:600:Infinite Lives (2/2)
pc_ynoid:1:DA11:AD:100:Infinite Continues
pc_ynoid:1:CCB5:00:100:Infinite Mega Jumps:Allows you to jump on jumps, use with direction button/key to move across screen with ease!
pc_ynoid:1:AC4E:00:100:More magic from small scrolls
pc_ynoid:1:00A9:0C:062:Select next stage
pc_ynoid:0:0000:00:999:[ Enable these Start on Stage cheats ]
pc_ynoid:0:0000:00:999:[ before starting the game.          ]
pc_ynoid:1:D9EC:02:100:Start on Stage 2
pc_ynoid:1:D9EC:03:100:Start on Stage 3
pc_ynoid:1:D9EC:04:100:Start on Stage 4
pc_ynoid:1:D9EC:05:100:Start on Stage 5
pc_ynoid:1:D9EC:06:100:Start on Stage 6
pc_ynoid:1:D9EC:07:100:Start on Stage 7
pc_ynoid:1:D9EC:08:100:Start on Stage 8
pc_ynoid:1:D9EC:09:100:Start on Stage 9
pc_ynoid:1:D9EC:0A:100:Start on Stage 10
pc_ynoid:1:D9EC:0B:100:Start on Stage 11
pc_ynoid:1:D9EC:0C:100:Start on Stage 12

NES GG stuff (8 character code)

Code: Select all

  
  abcdefgh
0 AAEAAAAA
1 PPOPPPPP
2 ZZXZZZZZ
3 LLULLLLL
4 GGKGGGGG
5 IISIIIII
6 TTVTTTTT
7 YYNYYYYY
8 EEEEEEEE
9 OOOOOOOO
A XXXXXXXX
B UUUUUUUU
C KKKKKKKK
D SSSSSSSS
E VVVVVVVV
F NNNNNNNN

This converts to a HEX CODE
Address            Original Value   Poke Value
dfce			hg		ba

NOTE: This is an approximation of how it's coded from what I could work out.. It's a bit more complicated than that it takes other values into consideration and there seems to be a switch when you pass certain values and it will change a different value... I understand the basics of what it's doing and I ain't gonna look at it anymore because it'll gimme a headache, the program on the net seems to do the trick - perhaps if I ask nicely for the source... Anyway on with my point (for Ian Patterson)


To be honest as the NES (and other 8 bit consoles) uses paging a LOT it's gonna be difficult producing 100% bug free cheats - who ever designed the NES GG originally seems to have done a half arsed job as there's also 6 char codes which I presume had no error checking and poked the value constantly. The 8 char code seems to be more solidly built and I can't comment on it's soundness on the actual NES because I don't know how the value was poked, but with the MAME cheat engine only pokes at set intervals it means some cheats will not work as I'd hoped (ROM time for the above game will not work in MAME because of this I think - and it looks like it should). A new ROM cheat type would be nice where the cheat engine will poke the actual ROM rather than the part of memory that it occupies when it's paged in. It will mean that these cheats will not be really compatable with Game Genie and are much harder to convert back - but the codes will be solid with few side effects. I am presuming that even some 8 char NES game genie codes where buggy from what I read on the net and this is the likely cause.... Bet it's gonna be impossible to code though, another solution maybe for some error checking similar to the 8 character Game Genie code where it would only poke the address if it contains a certain value...fast paging may make this pointless on some games with the MAME poking speed though.

Apologies if most of the above ramble makes no sense, I'm just thinking ahead to try and make a NES cheat file for MESS with minimum initial effort....though short term it may help with cheats for the MAME Playchoice 10 games. If anybody has a big list of cheats for any of these Game Cheating devices for the various consoles/home systems please get in touch - I've seen a few sites where the codes are kept on hundreds of seperate individual pages for each game and this is not what I'm after really.
Kitsune Sniper
Posts: 10
Joined: Fri Nov 16, 2001 1:00 am
Location: Mexico
Contact:

Post by Kitsune Sniper »

I guess being the only console romhacker here will help ^_-

NES Game Genie Code Format Doc 0.71 by Benzene
http://www.romhacking.org/rhdoc/ggpar/nesgg.txt

Game Genie Doc, by Snowbro
http://www.romhacking.org/rhdoc/ggpar/GameGenieDoc.txt

Both of these explain how the Game Genie codes work. I guess this will help you out a lot. ^_^

// Kitsune Sniper
User avatar
ianpatt
Posts: 336
Joined: Sat Sep 22, 2001 1:00 am
Location: San Francisco, CA

Post by ianpatt »

Cheat types 10x should write directly to the ROM region. It should work for the Playchoice games.

For the new cheat engine beta, select the target as a memory region, and choose CPU1, 2, 3, etc. as needed.
Post Reply