pokered/home/init.asm

138 lines
2.2 KiB
NASM
Raw Permalink Normal View History

2014-05-31 08:22:15 +00:00
SoftReset::
call StopAllSounds
call GBPalWhiteOut
ld c, 32
2014-05-31 08:22:15 +00:00
call DelayFrames
; fallthrough
Init::
; Program init.
; * 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
2024-09-24 14:48:10 +00:00
DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY)
2014-05-31 08:22:15 +00:00
di
xor a
ldh [rIF], a
ldh [rIE], a
ldh [rSCX], a
ldh [rSCY], a
ldh [rSB], a
ldh [rSC], a
ldh [rWX], a
ldh [rWY], a
ldh [rTMA], a
ldh [rTAC], a
ldh [rBGP], a
ldh [rOBP0], a
ldh [rOBP1], a
2014-05-31 08:22:15 +00:00
2024-09-24 14:48:10 +00:00
ld a, 1 << rLCDC_ENABLE
ldh [rLCDC], a
2014-05-31 08:22:15 +00:00
call DisableLCD
ld sp, wStack
2024-01-03 15:59:04 +00:00
ld hl, STARTOF(WRAM0)
ld bc, SIZEOF(WRAM0)
2014-05-31 08:22:15 +00:00
.loop
ld [hl], 0
inc hl
dec bc
ld a, b
or c
jr nz, .loop
call ClearVram
2024-01-03 15:59:04 +00:00
ld hl, STARTOF(HRAM)
ld bc, SIZEOF(HRAM)
2014-05-31 08:22:15 +00:00
call FillMemory
call ClearSprites
ld a, BANK(WriteDMACodeToHRAM)
ldh [hLoadedROMBank], a
2014-09-14 18:29:18 +00:00
ld [MBC1RomBank], a
2014-05-31 08:22:15 +00:00
call WriteDMACodeToHRAM
xor a
ldh [hTileAnimations], a
ldh [rSTAT], a
ldh [hSCX], a
ldh [hSCY], a
ldh [rIF], a
2014-05-31 08:22:15 +00:00
ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL
ldh [rIE], a
2014-05-31 08:22:15 +00:00
ld a, 144 ; move the window off-screen
ldh [hWY], a
ldh [rWY], a
2014-05-31 08:22:15 +00:00
ld a, 7
ldh [rWX], a
2014-05-31 08:22:15 +00:00
2015-02-07 10:43:08 +00:00
ld a, CONNECTION_NOT_ESTABLISHED
ldh [hSerialConnectionStatus], a
2014-05-31 08:22:15 +00:00
2020-07-07 15:10:29 +00:00
ld h, HIGH(vBGMap0)
2014-05-31 08:22:15 +00:00
call ClearBgMap
2020-07-07 15:10:29 +00:00
ld h, HIGH(vBGMap1)
2014-05-31 08:22:15 +00:00
call ClearBgMap
ld a, rLCDC_DEFAULT
ldh [rLCDC], a
2014-05-31 08:22:15 +00:00
ld a, 16
ldh [hSoftReset], a
2014-05-31 08:22:15 +00:00
call StopAllSounds
ei
2014-06-16 20:25:46 +00:00
predef LoadSGB
2014-05-31 08:22:15 +00:00
2015-07-22 14:57:31 +00:00
ld a, BANK(SFX_Shooting_Star)
2015-08-09 05:32:44 +00:00
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
2014-05-31 08:22:15 +00:00
ld a, $9c
ldh [hAutoBGTransferDest + 1], a
2014-05-31 08:22:15 +00:00
xor a
ldh [hAutoBGTransferDest], a
2014-05-31 08:22:15 +00:00
dec a
2014-09-13 07:50:56 +00:00
ld [wUpdateSpritesEnabled], a
2014-05-31 08:22:15 +00:00
2014-06-16 20:25:46 +00:00
predef PlayIntro
2014-05-31 08:22:15 +00:00
call DisableLCD
call ClearVram
call GBPalNormal
call ClearSprites
ld a, rLCDC_DEFAULT
ldh [rLCDC], a
2014-05-31 08:22:15 +00:00
jp PrepareTitleScreen
2014-05-31 08:22:15 +00:00
ClearVram::
2024-01-03 15:59:04 +00:00
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
2014-05-31 08:22:15 +00:00
xor a
jp FillMemory
StopAllSounds::
ld a, BANK("Audio Engine 1")
2015-08-09 05:32:44 +00:00
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
2014-05-31 08:22:15 +00:00
xor a
2015-08-09 05:32:44 +00:00
ld [wAudioFadeOutControl], a
ld [wNewSoundID], a
ld [wLastMusicSoundID], a
2014-05-31 08:22:15 +00:00
dec a
jp PlaySound