[Technical] Trying to enable Dev Mode in Rugrats: Adventures in Gameland

celebi23

New member
Joined
Aug 14, 2025
Messages
5
In the NES version of Rugrats: Adventures in Gameland, there's an unused Dev Mode. It's mentioned twice at 0x30221 & 0x3F381
MYXXRbQ.png
2m2bOx0.png


I ran the rom in Messen and checked the Memory Viewer for any changing things while I went through the difficulty options. One thing was changing at 05DC/05DD in the memory, with these values: 00, 01 & 02. When I changed it to 03, and pressed start, the Dev Mode is active:
voPot71.png
voPot71.png
YGwfcOR.png
wlXvUUO.png


9MfJJ0J.png
nsF3qDx.png


My goal is to make a patch to enable Dev Mode from the Difficulty screen as well as the description of the Dev Mode. How can I go about doing that? Any help would be greatly appreciated.

Here's hash information:
File SHA-1: CD1CCE7BE64854FC9A7919B32D61C5A5406FEB17
File CRC32: 7207C0EE
ROM SHA-1: 46396D82EC61598D64F7E670D47E818DB9CA0529
ROM CRC32: D4417256

I extracted the rom from the Steam version with these instructions. It appears to be a newer rev than the hashes available online.

Thanks!
 
Last edited:
File SHA-1: CD1CCE7BE64854FC9A7919B32D61C5A5406FEB17
File CRC32: 7207C0EE
ROM SHA-1: 46396D82EC61598D64F7E670D47E818DB9CA0529
ROM CRC32: D4417256

Good, that's the same version I extracted from my purchased copy of Rugrats, so we're looking at the same thing.

I've attached the patch I came up with. (View attachment rugrats-dev-mode.ips) For more information about how to make this kind of patch, keep reading for the beginning steps to take.

Note: On the NES, the console CPU RAM is CPU addresses hex 0000 to 07FF, then there are mirrors (repeats) at CPU addresses 0800 to 1FFF. Check out the NesDev Wiki page CPU memory map.

You already found a RAM address that is used for the difficulty level value, CPU address hex 05DC. The next step is to set a breakpoint to catch when that address is written (or read).

Start a game and get to the screen where you select the difficulty level. You can set a breakpoint like this:
  1. In the Memory Viewer window, right click on the value for CPU address hex 05DC, then choose "Edit Breakpoint".
  2. Uncheck "Read" and "Execute" so that only "Write" is checked, then click OK.
  3. The Debugger window will pop open. At the top of the Debugger window, click the Play icon to resume the game.
Back in the main game window, press the left or right button to change the difficutly level. The Debugger window will pop back to the front. The code window will have an instruction highlighted that is writing to the address.

What now?
  • You can hover over the instructions to get a brief explaination of what they do. To learn more about the instructions, you might want to look at a 6502 instruction reference, or look at some pages like Famicom Party or Easy6502.
  • You can select one or more instructions then right-click on them and choose "Edit Selected Code". After you apply any changes, if you want to save the changes you have made, you can go to the Debugger window (or the Memory Viewer window), go to the File menu and use one of the Save commands ("Save ROM", "Save ROM as", or "Save edits as IPS patch").

Feel free to ask more questions if you want to.
 
That's amazing! Thank you so much! I tried following along and got to this point. What would I have needed to do next?
vGMJdzh.png


Also, would it be ok if I uploaded the patch to the well known romhacking sites? I'd 100% give you the credit for the actual hacking part of this.
 
Last edited:
That's amazing! Thank you so much! I tried following along and got to this point. What would I have needed to do next?
Code:
$B2C3:
  INC Difficultychange
  LDA Difficultychange
  CMP #$03
  BNE $B2D2
  LDA #$00
  STA Difficultychange
$B2D2:
  [...]

If you hover over the instruction opcodes (INC, LDA, CMP, etc.), a pop-up tool tip will tell you want they mean. Can you figure out what is this code doing?

This code is doing the following:
1. Increment the difficutly value.
2. Now if the difficulty value is not 3, skip over the next part.
3. (So, this part only happens if the difficutly value is now 3:) Set the difficulty value to 0.


If you want the difficulty value to go through the values 0, 1, 2, and 3, is there something in this code you can change?

You can change CMP #$03 to CMP #$04

What happens if you press the left button instead of the right button?

How can you find code related to updating the text on the screen? Hint: Set a breakpoint to catch when the difficulty value is read.


would it be ok if I uploaded the patch to the well known romhacking sites?

We might need to review the rules of each site. The Rugrats game and the NES version that comes with it are a relatively recent release and the various sites (including this one?) might not want a patch for it in their collections (?). If it's allowed, I would probably prefer to submit it myself so I can edit the description and it would show up associated with my profile and so on. Which sites did you have in mind?
 
Code:
$B2C3:
  INC Difficultychange
  LDA Difficultychange
  CMP #$03
  BNE $B2D2
  LDA #$00
  STA Difficultychange
$B2D2:
  [...]

If you hover over the instruction opcodes (INC, LDA, CMP, etc.), a pop-up tool tip will tell you want they mean. Can you figure out what is this code doing?

This code is doing the following:
1. Increment the difficutly value.
2. Now if the difficulty value is not 3, skip over the next part.
3. (So, this part only happens if the difficutly value is now 3:) Set the difficulty value to 0.


If you want the difficulty value to go through the values 0, 1, 2, and 3, is there something in this code you can change?

You can change CMP #$03 to CMP #$04

What happens if you press the left button instead of the right button?

How can you find code related to updating the text on the screen? Hint: Set a breakpoint to catch when the difficulty value is read.




We might need to review the rules of each site. The Rugrats game and the NES version that comes with it are a relatively recent release and the various sites (including this one?) might not want a patch for it in their collections (?). If it's allowed, I would probably prefer to submit it myself so I can edit the description and it would show up associated with my profile and so on. Which sites did you have in mind?
To confirn, these should be the hashes of the patched rom, correct?
CRC32: fbaada00
MD5: 8a9c2125590000de352dc0c8f4aee9a1
SHA1: 44865bfb77d6ce46a32c25601d3521dfb0efe163

I was thinking romhacks.org & Romhack.ing? If you'd rather not submit the patch anywhere, I totally understand. You've been incredibly helpful. I really do appreciate it!
 
Last edited:
Back
Top