mirror of
https://github.com/pret/pokepinball.git
synced 2026-03-21 17:55:03 -05:00
116 lines
2.1 KiB
NASM
116 lines
2.1 KiB
NASM
HandleEraseAllDataMenu: ; 0x815d
|
|
ld a, [wScreenState]
|
|
rst JumpTable ; calls JumpToFuncInTable
|
|
EraseAllDataMenuFunctions: ; 0x8161
|
|
dw CheckForResetButtonCombo
|
|
dw HandleEraseAllDataInput
|
|
dw ExitEraseAllDataMenu
|
|
|
|
CheckForResetButtonCombo: ; 0x8167
|
|
ldh a, [hJoypadState]
|
|
cp (D_UP | D_RIGHT | START | SELECT)
|
|
jr z, .heldCorrectButtons
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
ret
|
|
|
|
.heldCorrectButtons
|
|
ld a, $41
|
|
ldh [hLCDC], a
|
|
ld a, $e4
|
|
ld [wBGP], a
|
|
xor a
|
|
ld [wOBP0], a
|
|
ld [wOBP1], a
|
|
ldh [hSCX], a
|
|
ldh [hSCY], a
|
|
ldh a, [hGameBoyColorFlag]
|
|
ld hl, EraseAllDataGfxPointers
|
|
call LoadVideoData
|
|
call ClearSpriteBuffer
|
|
call SetAllPalettesWhite
|
|
call EnableLCD
|
|
call SGBNormal
|
|
call FadeIn
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
EraseAllDataGfxPointers: ; 0x81a2
|
|
dw EraseAllDataGfx_GameBoy
|
|
dw EraseAllDataGfx_GameBoyColor
|
|
|
|
EraseAllDataGfx_GameBoy: ; 0x81a6
|
|
VIDEO_DATA_TILES EraseAllDataGfx, vTilesBG, $300
|
|
VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap, $400
|
|
db $FF, $FF ; terminators
|
|
|
|
EraseAllDataGfx_GameBoyColor: ; 0x81b6
|
|
VIDEO_DATA_TILES EraseAllDataGfx, vTilesBG, $300
|
|
VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap, $400
|
|
VIDEO_DATA_BGATTR EraseAllDataBGAttributes, vBGMap, $400
|
|
VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80
|
|
db $FF, $FF ; terminators
|
|
|
|
HandleEraseAllDataInput: ; 0x81d4
|
|
ldh a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .checkForBButton
|
|
ld hl, $a000
|
|
xor a
|
|
ld b, a
|
|
.eraseSavedDataLoop
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .eraseSavedDataLoop
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
.checkForBButton
|
|
bit BIT_B_BUTTON, a
|
|
ret z
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
ExitEraseAllDataMenu: ; 0x820f
|
|
call FadeOut
|
|
call DisableLCD
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|