Difference between revisions of "Tetris (NES):ROM map"

From Data Crystal
Jump to: navigation, search
m (moved Tetris (NES): ROM Map to Tetris (NES):ROM map: Match template)
(Added location of 8 byte score increment table and the location of the code that reads from the table.)
Line 18: Line 18:
  
 
; Data:
 
; Data:
 +
scoreIncTable  = $9CA5  ; 40 00 00 01 00 03 00 12 (1 = 40, 2 = 100, 3 = 300, 4 = 1200); read by 9C3B: LDA $9CA5,X
 
initHiScores    = $AD67  ; High score table, copied to $0700 on boot
 
initHiScores    = $AD67  ; High score table, copied to $0700 on boot
 +
 
</pre>
 
</pre>

Revision as of 23:58, 24 August 2013

All addresses are in CPU address space, not iNES file space. Subtract $7FF0 for addresses within the iNES file, or use a more sophisticated algorithm for addresses within the UNIF file.

; Code:

reset           = $FF00
main            = $8000
soundWaitVBL    = $AA45  ; Run sound code and wait for vblank NMI
turnOnNMI       = $AA6B  ; Turn on interrupt at scanline 241
turnOffNMI      = $AA78  ; Turn off interrupt at scanline 241
clearNametable  = $AA82  ; Clear nametable whose base address is A
clearVRAM       = $AC1C  ; If A < $1F, clear Y pages of VRAM to X
                         ; Otherwise, clear 4 pages of VRAM to X and clear attribute table to Y
clearRAM        = $AC6A  ; Clear pages X to Y of CPU RAM to value in A
switch          = $AC82  ; Jumps to the Ath 16-bit address in the following jump table,
                         ; similar to the "magic jump" in Super Mario Bros.
playSound       = $E000  ; Appears to be sound code, called every frame

; Data:
scoreIncTable   = $9CA5  ; 40 00 00 01 00 03 00 12 (1 = 40, 2 = 100, 3 = 300, 4 = 1200); read by 9C3B: LDA $9CA5,X
initHiScores    = $AD67  ; High score table, copied to $0700 on boot