List of Game Genie codes

Started by JC, September 19, 2007, 09:20:56 pm

Previous topic - Next topic

botulismo

I'll play with it tomorrow if someone hasn't already done everything needing to be done.  :D
Check out my blog at http://blog.thewombat.org - I review flash carts and other stuff!

jpx72

THANKS! If you cannot find the level select code, try to find at least the infinite lives code.
...yes, I suck at SMB2j on NES/FC, it's hard as hell! But for some reason I've managed to play untill W7-3 on my SMB deluxe - GBC version. But there was a save game option.

botulismo

November 23, 2010, 10:49:07 pm #62 Last Edit: November 24, 2010, 12:17:58 am by botulismo
So I've been playing around with this and it doesn't seem to be working. Maybe someone who has more experience with this might be able to understand why or get around it. For some reason when I put the address I want to modify into the game genie code creator and create the code, then look at the code later, the value is changed and the code is worthless. Like, for example, if I wanted to make an infinite lives code, I should modify address 701B and change instruction CE to AD... Yet when I look at the code afterwards, it says it's modifying address F01B instead, and the code is worthless. This is where the debugger says the change should be made. I can't change the instruction if it keeps picking a different value for the address.  >:(

Thanks.
Check out my blog at http://blog.thewombat.org - I review flash carts and other stuff!

UglyJoe

November 24, 2010, 05:09:21 am #63 Last Edit: November 24, 2010, 11:19:41 am by UglyJoe
The NES PRG-ROM exists from $8000 to $FFFF.  As such, Game Genie was designed to only allow you to make changes to that memory range.  You can't modify $701B because it is not in that range.  The reason why code is being executed outside of that region is because MMC3 uses the SRAM space ($6000 - $7FFF) as a PRG-RAM region.

Now, because $701B is ram, that means that its value (CE) must have been written to it by some other routine.  Set a write breakpoint at $701B and do a hard reset.

When the debugger snaps, you can see that the accumulator, which is holding the value CE, is being stored into $701B.  If you look at the previous line, you can see that it loaded the value into the accumulator from $D01B.  Lucky!  Since $D01B is within our PRG-ROM address space, that means we can change it with Game Genie.

Make a code that changes $D01B from CE to AD and you get SZOSLEVK.  Try it out and you've got infinite lives!

jpx72

WOW I didn't understood 99% of your post UglyJoe but that's amazing! Thanks for the code! Works perfectly! And thanks for trying botulismo!

UglyJoe

November 24, 2010, 02:24:49 pm #65 Last Edit: November 24, 2010, 03:05:57 pm by UglyJoe
Here's a bootleg stage-select method.  Use these codes to pick the starting world and stage.  I'm not sure how to get to the A-D worlds:

world:
1: AENKAGAA
2: PENKAGAA
3: ZENKAGAA
4: LENKAGAA
5: GENKAGAA
6: IENKAGAA
7: TENKAGAA
8: YENKAGAA
9: AENKAGAE

stage:
1: AENKIGAA
2: PENKIGAA
3: ZENKIGAA
4: LENKIGAA
These seem to only be cosmetic...

botulismo

Oh man UglyJoe! That explains a lot. I had a vague idea that the MMC3 was involved, and that this value must be outside of the Game Genie's memory range.. I didn't know what the range itself was, nor did I know how the MMC3 worked, but this has explained why a rare couple of gmaes in the past have been Game Genie unfriendly to me.. This is why I'm doing this though, to learn.

I've learned more about how a computer works by playing with Game Genie codes than I ever did taking recreational programming classes in school.
Check out my blog at http://blog.thewombat.org - I review flash carts and other stuff!

jpx72

Many thanks for the codes UglyJoe! The level codes are working perfectly.

I've already edited the rom with the unlimited lives code and put it on my SMB2j repro to save my NES cartridge connector from the devastating effect of Game genie, and yesterday - world 5-4! Yay! (I went to sleep after that, so maybe today I will get even further)

satoshi_matrix

I've decided to play through Earth Bound on the cart, but damnit there seems to be random encounters TOO often!

UglyJoe or anyone else, can you come up with some code to address this problem?

Something like

No Random Encounters

or at the very least, always be able to run from random encounters would be very helpful.

Jedi Master Baiter

Quote from: jpx72 on November 25, 2010, 11:18:55 pm
I've already edited the rom with the unlimited lives code and put it on my SMB2j repro to save my NES cartridge connector from the devastating effect of Game genie, and yesterday - world 5-4! Yay! (I went to sleep after that, so maybe today I will get even further)


Weak. I beat this game eight times without no extra lives cheat! Kids these days!

JK, SMB2J is heartless & has no soul!  I don't even think Miyamoto was involved.  Or possessed, I forget.

UglyJoe

Quote from: satoshi_matrix on December 18, 2010, 12:37:40 am
I've decided to play through Earth Bound on the cart, but damnit there seems to be random encounters TOO often!


Which Earthbound are you talking about?  SNES?  FC?  Translated FC?

Jedi Master Baiter

I didn't say the game was hard - but it takes too much advantage of physics - having the player maneuver around objects in tedious ways.  I found it less fun. :(

satoshi_matrix

Quote from: UglyJoe on December 18, 2010, 07:42:19 am
Quote from: satoshi_matrix on December 18, 2010, 12:37:40 am
I've decided to play through Earth Bound on the cart, but damnit there seems to be random encounters TOO often!


Which Earthbound are you talking about?  SNES?  FC?  Translated FC?


Mother 1/Earth Bound (Zero)

please and thanks.

UglyJoe

Okay, I made these using a "Mother (J).nes" rom, so I hope that's the one you're playing.  Couldn't find a one-code way of doing this.  Note that these codes seem to cause some glitches in certain text boxes (like the Game Over text) and I have no idea why.

The game seems to generate a pseudo-random number after every step you take (but also at other times, it seems) and then checks to see if that number is less than some other number, which I call the "encounter rate" for lack of a better name.  There is a small table of encounter rate values and I'm assuming the value used depends on the area you are in, but I didn't look into that part of the code too much.

These codes will hard-code the encounter rate to a fixed value.

Use both of these codes, which make the comparison use a hard-coded value rather than the lookup table:
OGVPYSSS
XTVOPISO

And then one of these codes.  A lower number means less random encounters.  (00) means no random encounters, although if that's what you wanted then I could probably do that with less than three codes.  As a frame of reference, the area just outside of Ness's (Ninten's?) house is using (13), and it looks like the toughest areas would be using (32).

GAVOAINO (12)
LAVOAINO (11)
ZAVOAINO (10)
PAVOAINO (09)
AAVOAINO (08)
YAVOAINP (07)
TAVOAINP (06)
IAVOAINP (05)
GAVOAINP (04)
LAVOAINP (03)
ZAVOAINP (02)
PAVOAINP (01)
AAVOAINP (00)

satoshi_matrix

Thanks UglyJoe. So that I understand what you're saying, In order to completely remove random encounters, I need to put in three codes:

OGVPYSSS
XTVOPISO
AAVOAINP

And the difference between say

AAVOAINP (00)

PAVOAINP (01)

is that with the first code will never produce random encounters while the second code will almost never produce random encounters?

You said you could probably produce a code that turns off enemy encounters completely in less than three codes? Please see about that. This is exactly what I'm after, as long it doesn't affect scripted encounters (such as the lamp battle at the very start of the game) or encounters you seek out (such as the doll battle also at the start of the game).