the cutting room mirror

RoboCop 2 (NES)

A very hard platformer that's a port of the Commodore 64 version and is also based on the movie of the same name.

Level Select#

At the title screen, press and hold Up + Right on Controller 2 and Down + Left on Controller 1 at the same time. Now, by pressing B on Controller 1, the player can cycle through levels 0 to 14. Press A to reset the level index back to 0. A sound will confirm code triggering after each time A or B is pressed. Select the "CONTINUE" option to start from the selected level.

Hidden Text#

This game shares the same music driver library that many other NES Ocean Software games used. As a result, there is a hidden version and copyright string:

MUSIC DRIVER V1.0 (C)JONATHAN DUNN & OCEAN SOFTWARE

Additionally, a small bit of placeholder text is at offset 0x01b256, at the end of BANK 6:

hello this is a bit of text

Game Genie Detection#

The game checks for the presence of a Game Genie on startup by adding each byte in $10-$26 (zeropage RAM) with a corresponding complement in PRG-ROM (located immediately after the checking routine). The routine only exits when at least one of the byte pairs produces a sum other than 0, otherwise it will loop forever and cause the game to hang.5

The zeropage RAM area being checked for is the setup routine executed by the Game Genie ROM just before handing over control to the game. Below is a disassembly of said routine:

$0010  LDX #$0B
$0012  LDA $90,X    ; Write Game Genie register bytes
$0014  STA $8001,X  ; for each of the 3 codes
$0017  DEX
$0018  BPL $0012    ; Loop until all bytes written
$001A  LDA $89
$001C  STA $8000    ; Set primary control byte to enter game mode
$001F  LDA #$00
$0021  STA $8000    ; Interpreted by the game's mapper, reason for write is unknown
$0024  JMP ($FFFC)  ; Jump to game's reset handler

Unfortunately, this measure can be bypassed using a single GG code by patching the first byte of the checking routine to immediately execute an RTS instruction. Use one of the below codes depending on the version:

Version

Code

USA Rev 0, JP

AVXNOTXZ

USA Rev 1, EU

AVUYXTXZ

(Source: TakuikaNinja (GG codes))

References#


  1. Painting by Numbers - GDRI :: Game Developer Research Institute↩︎
  2. GDR ファミリーコンピュータ ソフト一覧 1991年 - FAMILY COMPUTER Software List 1991↩︎
  3. NES Games↩︎
  4. ALEX Mail Service ad - Consolemania (IT), Issue 7, April 1992↩︎
  5. NESdev forum thread: What does this code do?↩︎