Files
disasm/_wip/MAPPER65/RoadBlasters (U)
..

RoadBlasters (U)

Status

Pass 0 skeleton. The project builds and verifies byte-identical to the original ROM, but no disassembly exists yet: prg.s is a single .incbin "prg.bin" of the PRG image.

make assembles header.s, prg.s, chr.s, links them with ld65 and compares the result against rom.nes:

Byte-identical ROM verified.

ROM

Property Value
Format iNES
Mapper 65
Board MAPPER65
Mirroring Horizontal
Four-screen VRAM yes
Battery no
PRG 128 KB (8 x 16 KB), at file offset $0010
CHR 128 KB (16 x 8 KB)
Trainer none
Footer none
NMI vector $D9E8
RESET vector $CE7E
IRQ vector $DA4A
ROM file RoadBlasters (U).nes
SHA-256 58bb50095e08ddaa02688e31ff01543ea0a37cb0d824d546506a1e6c9c08edad

Header notes

  • header byte 7 is $44; its upper nybble selects mapper bits 4-7
  • header byte 6 bit 3 (four-screen VRAM) is set

Open work

  • Pass 1 - run nesdis.py over prg.bin to produce the code/data split. The tracer reads the vectors from the last six bytes of the PRG image, so the split seeds correctly.
  • Pass 1 must emit the canonical audit comment ; CPU:$C123 PRG:0123 AD 21 03 at column 35 for every instruction.
  • Pass 2 - replace the address-derived Label_XXXX names and the raw $XXXX call operands.
  • Pass 3 - semantic zero-page aliases (applied only at the sites where their role is proven) and named data tables.
  • Promotion to NROM/<name>/ once Pass 3 is done, as git mv.

Files

File Purpose
prg.s Pass 0 PRG include (replaced by the Pass 1 disassembly)
header.s iNES header include
chr.s CHR include
prg.bin 131072 bytes (128 KB) PRG image
chr.bin 131072 bytes (128 KB) CHR image
rom.nes byte-identical copy of the original ROM
linker.cfg HEADER / PRG / CHR memory areas
symbols.inc NES hardware register names
locals.inc zero-page aliases (empty at Pass 0)
Makefile build and byte-identity check