pokered/home/init.asm
dannye a6f04b4349 Unify audio bank references
2→1
8→2
1f→3
2015-07-22 10:22:46 -05:00

137 lines
1.9 KiB
NASM

SoftReset::
call StopAllSounds
call GBPalWhiteOut
ld c, 32
call DelayFrames
; fallthrough
Init::
; Program init.
rLCDC_DEFAULT EQU %11100011
; * LCD enabled
; * Window tile map at $9C00
; * Window display enabled
; * BG and window tile data at $8800
; * BG tile map at $9800
; * 8x8 OBJ size
; * OBJ display enabled
; * BG display enabled
di
xor a
ld [rIF], a
ld [rIE], a
ld [rSCX], a
ld [rSCY], a
ld [rSB], a
ld [rSC], a
ld [rWX], a
ld [rWY], a
ld [rTMA], a
ld [rTAC], a
ld [rBGP], a
ld [rOBP0], a
ld [rOBP1], a
ld a, rLCDC_ENABLE_MASK
ld [rLCDC], a
call DisableLCD
ld sp, wStack
ld hl, $c000 ; start of WRAM
ld bc, $2000 ; size of WRAM
.loop
ld [hl], 0
inc hl
dec bc
ld a, b
or c
jr nz, .loop
call ClearVram
ld hl, $ff80
ld bc, $ffff - $ff80
call FillMemory
call ClearSprites
ld a, Bank(WriteDMACodeToHRAM)
ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a
call WriteDMACodeToHRAM
xor a
ld [hTilesetType], a
ld [rSTAT], a
ld [hSCX], a
ld [hSCY], a
ld [rIF], a
ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL
ld [rIE], a
ld a, 144 ; move the window off-screen
ld [hWY], a
ld [rWY], a
ld a, 7
ld [rWX], a
ld a, CONNECTION_NOT_ESTABLISHED
ld [hSerialConnectionStatus], a
ld h, vBGMap0 / $100
call ClearBgMap
ld h, vBGMap1 / $100
call ClearBgMap
ld a, rLCDC_DEFAULT
ld [rLCDC], a
ld a, 16
ld [hSoftReset], a
call StopAllSounds
ei
predef LoadSGB
ld a, BANK(SFX_Shooting_Star)
ld [wc0ef], a
ld [wc0f0], a
ld a, $9c
ld [H_AUTOBGTRANSFERDEST + 1], a
xor a
ld [H_AUTOBGTRANSFERDEST], a
dec a
ld [wUpdateSpritesEnabled], a
predef PlayIntro
call DisableLCD
call ClearVram
call GBPalNormal
call ClearSprites
ld a, rLCDC_DEFAULT
ld [rLCDC], a
jp SetDefaultNamesBeforeTitlescreen
ClearVram:
ld hl, $8000
ld bc, $2000
xor a
jp FillMemory
StopAllSounds::
ld a, BANK(Audio1_UpdateMusic)
ld [wc0ef], a
ld [wc0f0], a
xor a
ld [wMusicHeaderPointer], a
ld [wc0ee], a
ld [wcfca], a
dec a
jp PlaySound