Value defines styled without quotes, # moved to load/store/cmp site Added registers.asm (copied from spannerisms JP disassembly) Added a bunch of length annotations Deleted old or trivial commented out code Deleted: ganonfixes.asm, map.asm, seedtag.asm Replaced obsolete credits.asm with creditsnew.asm Moved scratch space at $7F5020-3F to mirrored WRAM (7E1E70-8F) Moved clock RAM to mirrored WRAM (7E1E90-9F) dialog.asm: FreeDungeonItemNotice preserves callee-preserved scratch RAM Toast buffer moved to mirrored WRAM (7E1E0E-0F) servicerequest.asm: long store to $012E converted to word length store
73 lines
1.9 KiB
NASM
73 lines
1.9 KiB
NASM
;--------------------------------------------------------------------------------
|
|
; Init_Primary
|
|
;--------------------------------------------------------------------------------
|
|
; This can be as inefficient as we want. Interrupts are off when this gets
|
|
; called and it only gets called once ever during RESET.
|
|
;--------------------------------------------------------------------------------
|
|
Init_Primary:
|
|
LDA #$00
|
|
|
|
LDX #$00 ; initalize our ram
|
|
-
|
|
STA $7EC025, X
|
|
STA $7F5000, X
|
|
INX
|
|
CPX #$10 : !BLT -
|
|
|
|
LDX #$10 ; initalize more ram
|
|
-
|
|
STA $7F5000, X
|
|
INX
|
|
CPX #$FF : !BLT -
|
|
|
|
LDX #$00
|
|
-
|
|
LDA RomNameSRAM, X : CMP $00FFC0, X : BNE .clear
|
|
INX
|
|
CPX #$15 : !BLT -
|
|
BRA .done
|
|
.clear
|
|
REP #$30 ; set 16-bit accumulator & index registers
|
|
LDA.w #$0000
|
|
-
|
|
STA $700000, X
|
|
INX
|
|
CPX #$2000 : !BLT -
|
|
SEP #$30 ; set 8-bit accumulator & index registers
|
|
LDX #$00
|
|
-
|
|
LDA $00FFC0, X : STA RomNameSRAM, X
|
|
INX
|
|
CPX #$15 : !BLT -
|
|
LDX #$00
|
|
-
|
|
LDA RomVersion, X : STA RomVersionSRAM, X
|
|
INX
|
|
CPX #$04 : !BLT -
|
|
.done
|
|
|
|
REP #$20
|
|
LDA.l OneMindTimerInit : STA.l OneMindTimerRAM
|
|
SEP #$20
|
|
|
|
LDA.b #$01 : STA.w MEMSEL ; enable fastrom access on upper banks
|
|
STA.l OneMindId
|
|
|
|
LDA.b #$10 : STA $BC ; set default player sprite bank
|
|
|
|
LDA.b #$81 : STA.w NMITIMEN ; thing we wrote over, turn on NMI & gamepad
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
; Init_PostRAMClear
|
|
;--------------------------------------------------------------------------------
|
|
; This gets called after banks $7E and $7F get cleared, so if we need to
|
|
; initialize RAM in those banks, do it here
|
|
;--------------------------------------------------------------------------------
|
|
Init_PostRAMClear:
|
|
|
|
JSL MSUInit
|
|
JSL InitRNGPointerTable
|
|
JSL InitCompassTotalsRAM
|
|
|
|
JML $00D463 ; The original target of the jump table that we hijacked
|