Files
disasm/Bomberman (U)/copilot/locals.inc
T

95 lines
3.0 KiB
PHP

; ============================================================================
; Bomberman NES - semantically refined RAM symbols
; ============================================================================
; Main-thread/NMI frame handoff.
FrameSyncFlag = $0B
; Software copies of PPU control registers.
PpuCtrlShadow = $0C
PpuMaskShadow = $0D
; Controller samples consulted by main-loop and menu paths.
ControllerState1 = $12
ControllerState2 = $13
; NMI VRAM-transfer window: $14 indexes into the $0600 transfer table,
; $15 is the upper limit compared against $14 to decide whether to keep
; transferring or switch to the screen-state path.
VramReadOffset = $14
VramWriteLimit = $15
; Selects which NMI sub-path is taken ($60=0 → sprite DMA; $60≠0 → VRAM data).
NmiPathSelector = $16
; Four-byte pseudo-random generator state used by AdvanceRandomState.
RandomState0 = $54
RandomState1 = $55
RandomState2 = $56
RandomState3 = $57
; Alternate random-state byte at $E4 (decremented at CPU $E71B; distinct from
; RandomState0 which lives at $54 — zero-page is reused across subsystems).
RandomStateAlt = $E4
; Main loop delay counters.
MainDelay = $70
SubDelay = $71
; Screen / mode state.
ScreenState = $72
GameMode = $59
; NMI work-pending flag: nonzero means the NMI should perform VRAM transfers.
NmiWorkPending = $60
; Object coordinate / state temporaries used by gameplay object processing.
ObjectScreenX = $1F
ObjectScreenY = $20
ObjectXLimit = $73
ObjectSpawnParam = $28
ObjectSpawnY = $29
ObjectSpawnX = $2A
ObjectSpawnWidth = $2B
ObjectSpawnHeight = $2C
ObjectStateFlags = $5C
ObjectStateTimer = $5D
ObjectStateExtra = $5E
; Frame counters and stage counters.
FrameCounter = $33
StageCounter = $93
; Object work fields and bonus timer.
ObjectWork0 = $9C
ObjectWork1 = $9D
ObjectWork2 = $9E
ObjectWork3 = $9F
BonusTimer = $A4
; Game mode counter and object type.
GameModeCounter = $B0
ObjectType = $B1
FrameDelay = $B5
; Frame parity toggle (NMI toggles this each frame).
FrameParity = $DB
; General-purpose indirect pointer used by RAM clearing and transfer loops.
; Aliased with sound dispatcher state below (zero-page is reused).
IndirectPtrLo = $E0
IndirectPtrHi = $E1
; Sound dispatcher and channel-delay state observed in the $E642 sound engine.
; $E0/$E1 double as IndirectPtrLo/IndirectPtrHi; $E2/$E3 are dedicated delays.
SoundCommandState = $DF
SoundDispatchIndex = $E0 ; aliases IndirectPtrLo
SoundDelay0 = $E1 ; aliases IndirectPtrHi
SoundDelay1 = $E2
SoundDelay2 = $E3
; Audio data pointers used by the sound engine.
AudioPtrLo = $AC
AudioPtrHi = $AD
AudioArgLo = $AE
AudioArgHi = $AF