Resident Evil 3: Nemesis (NTSC‐U) - modo-lv/game-hacking GitHub Wiki
Code addresses contain assembly instructions, which may glitch if modified in emulators with Recompiler
CPU setting (Interpreter
recommended).
Address | Description |
---|---|
80051410 |
08 00 40 04 (bltz v0,8 ) Jumps to the typewriter rejection code if player doesn't have any Ink Ribbons. Jump distance 08 can be patched to 01 to always continue with the "ribbon found" code. |
Address | Description |
---|---|
801C3560 |
01 00 05 24 (li a1,1 ) First byte determines the amount of Ink Ribbons to be spent on each save. |
801C35A4 |
01 00 62 26 (addiu v0,s3,1 ) First byte determines by how much save count increases with each save. |
Address | Type | Description |
---|---|---|
D00CC830 |
Int |
Button inputs ("joker command"). |
800CC858 |
Binary32 |
Flags. 00080000 : Save menu currently open. |
800CCBA0 |
Binary32 |
Flags. FF000000 : Freeze rest of the game while displaying interaction text. |
800D1D18 |
Pointer |
Points to memory address to go to. Modified by game when interacting with typewriters, item boxes or blue herb boxes, but can be set to any address. In game, it's usually one of these: 00000000 : Do nothing (no interaction) 800513CC : Typewriter activation 800514F0 : Item box activation 80051D60 : Blue herb box activation |
800DBB58 |
Binary8 |
Flags. 00 : Nothing. 80 : Text displayed / waiting for input. |
800E01C4 |
Byte |
Determines what subscreen will open next (such as when inventory or map button is pressed). 00 : Player inventory 02 : Item Box 04 : Map |
RE3 loads parts of its code from the files in CD_DATA/BIN
. Each file has a set address location where it needs to be placed in order to function correctly. Also, the first byte of each overlay is unique, which can be used to simply check whether a specific overlay is currently loaded.
File | Load address | First byte |
---|---|---|
DIEDEMO.BIN |
`` | 37 |
ENDING.BIN |
`` | 38 |
MEMCARD.BIN |
801C2000 |
39 |
- Hold
[L1]
while opening inventory/map to open item box instead.
D00CC830 0004 ; If [L1]
800E01C4 0002 ; Set item box as the next screen.
- Press
[L1]+[Triangle]
to trigger a typewriter anywhere. - Requires Ink Ribbons (unless a save-without-ribbons code is used as well).
D00CC830 0014 ; If [L1+Triangle] held
E00CCBA0 0000 ; And player isn't interacting with anything already
D00D1D18 0000 ; And there isn't already a jump set
800D1D18 13CC ; Set first part of jump address
D00D1D18 13CC ; If first part set
300CCBA0 00FF ; Freeze all actions while messages are displayed
D00D1D18 13CC ; If first part set
800D1D1A 8005 ; Set second part of jump address
- Without ribbons, hold
[L1]
when activating a typewriter to save for free. - If you have ribbons you want to keep, hold
[L1]
while the save screen is loading to save for free.
D00CC830 0004 ; If [L1]
E0051410 0008 ; And ribbon checking enabled
30051410 0000 ; Disable ribbon checking
D00CC830 0004 ; If [L1]
E01C2000 0039 ; And MEM_CARD overlay loaded
301C3560 0000 ; Set the Ink Ribbon change to 0 (will be reset the next time a save menu is open).
D00CC830 0000 ; If [nothing]
E0051410 0000 ; And ribbon checking disabled
30051410 0008 ; Enable ribbon checking
- Press
[L1]
in the save screen to save without increasing the save count.
D00CC830 0004 ; If [L1]
E01C2000 0039 ; And MEM_CARD overlay loaded
301C35A4 0000 ; Disable save count increase (automatically resets when exiting screen)