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

From Data Crystal
Jump to: navigation, search
(a few more)
Line 1: Line 1:
 
{{Rommap|game=Tetris}}
 
{{Rommap|game=Tetris}}
 +
All addresses are in CPU address space, not iNES file space.  You'll have to convert addresses for use in iNES, UNIF, or any other file format.
 
<pre>
 
<pre>
 
; Code:
 
; Code:
Line 6: Line 7:
 
main            = $8000
 
main            = $8000
 
soundWaitVBL    = $AA45  ; Run sound code and wait for vblank NMI
 
soundWaitVBL    = $AA45  ; Run sound code and wait for vblank NMI
turnOffNMI      = $AA78  ; Turn off interrupts
+
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
 
clearNametable  = $AA82  ; Clear nametable whose base address is A
 
clearVRAM      = $AC1C  ; If A < $1F, clear Y pages of VRAM to X
 
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
 
                         ; 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
 
playSound      = $E000  ; Appears to be sound code, called every frame
 
  
 
; Data:
 
; Data:

Revision as of 17:11, 18 June 2006

All addresses are in CPU address space, not iNES file space. You'll have to convert addresses for use in iNES, UNIF, or any other file format.

; 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:
initHiScores    = $AD67  ; High score table, copied to $0700 on boot