- Moved from _wip/ to top-level - Added header.s, chr.s (16-byte iNES header + 8KB CHR) - Updated linker.cfg for HEADER/PRG/CHR segments - Updated Makefile for full-ROM comparison (reconstructed.nes vs rom.nes) - Fixed tool paths from ../../../_tools/ to ../../_tools/ - Added data_label_map.tsv for Pass 3 data table naming - Full-ROM byte-identical verified: make passes, verify_pass1.py passes Pass 1: Complete (CDL-verified, 33.9% code) Pass 2: Complete (519 labels renamed, 10 zero-page aliases) Pass 3: Complete (55 data tables named, 6 major structures documented) Build: BYTE-IDENTICAL at full-ROM level
17 lines
720 B
ArmAsm
17 lines
720 B
ArmAsm
; Urban Champion (JU) NES header
|
|
; iNES format: 16 bytes
|
|
;
|
|
; Bytes 0-3: "NES" + $1A
|
|
; Byte 4: PRG ROM size in 16 KB units (1 = 16 KB)
|
|
; Byte 5: CHR ROM size in 8 KB units (1 = 8 KB)
|
|
; Byte 6: Flags 6 (mapper low, mirroring, battery, trainer)
|
|
; Byte 7: Flags 7 (mapper high, VS/PlayChoice, NES 2.0)
|
|
; Bytes 8-15: Reserved (usually zero)
|
|
|
|
.segment "HEADER"
|
|
.byte "NES", $1A ; $00-$03: Magic
|
|
.byte 1 ; $04: PRG ROM size (1 x 16 KB = 16 KB)
|
|
.byte 1 ; $05: CHR ROM size (1 x 8 KB = 8 KB)
|
|
.byte $01 ; $06: Mapper 0, horizontal mirroring, no battery, no trainer
|
|
.byte $00 ; $07: Mapper 0 high, no VS/PlayChoice
|
|
.byte 0, 0, 0, 0, 0, 0, 0, 0 ; $08-$0F: Reserved
|