summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-06-19 14:13:15 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-06-19 14:13:15 -0700
commitdab06603a1c4e647eac9c75a62782e4b9a4dc170 (patch)
treea99ebab3d4b7c36a22bfca29eb2182ab89e2cb9e /main.asm
parentf4920d6387bc331c88de6a5be3acfbfa25f6afeb (diff)
Move copyright and erase-all-data screens into their own files
Diffstat (limited to 'main.asm')
-rwxr-xr-xmain.asm224
1 files changed, 2 insertions, 222 deletions
diff --git a/main.asm b/main.asm
index 86a478c..dc815c9 100755
--- a/main.asm
+++ b/main.asm
@@ -10,228 +10,8 @@ INCLUDE "data/oam_frames.asm"
SECTION "bank2", ROMX, BANK[$2]
INCLUDE "engine/select_gameboy_target_menu.asm"
-
-HandleEraseAllDataMenu: ; 0x815d
- ld a, [wScreenState]
- rst JumpTable ; calls JumpToFuncInTable
-EraseAllDataMenuFunctions: ; 0x8161
- dw CheckForResetButtonCombo
- dw HandleEraseAllDataInput
- dw ExitEraseAllDataMenu
-
-CheckForResetButtonCombo: ; 0x8167
- ld a, [hJoypadState]
- cp (D_UP | D_RIGHT | START | SELECT)
- jr z, .heldCorrectButtons
- ld hl, wCurrentScreen
- inc [hl]
- ret
-
-.heldCorrectButtons
- ld a, $41
- ld [hLCDC], a
- ld a, $e4
- ld [wBGP], a
- xor a
- ld [wOBP0], a
- ld [wOBP1], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, [hGameBoyColorFlag]
- ld hl, EraseAllDataGfxPointers
- call LoadVideoData
- call ClearOAMBuffer
- call Func_b66
- call Func_588
- call SGBNormal
- call Func_bbe
- 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
- ld 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 Func_cb5
- call Func_576
- ld hl, wCurrentScreen
- inc [hl]
- xor a
- ld [wScreenState], a
- ret
-
-HandleCopyrightScreen: ; 0x821e
- ld a, [wScreenState]
- rst JumpTable ; calls JumpToFuncInTable
-CopyrightScreenFunctions: ; 0x8222
- dw FadeInCopyrightScreen
- dw DisplayCopyrightScreen
- dw FadeOutCopyrightScreenAndLoadData
-
-FadeInCopyrightScreen: ; 0x8228
- ld a, $41
- ld [hLCDC], a
- ld a, $e4
- ld [wBGP], a
- xor a
- ld [wOBP0], a
- ld [wOBP1], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, [hGameBoyColorFlag]
- ld hl, CopyrightTextGfxPointers
- call LoadVideoData
- call ClearOAMBuffer
- call Func_b66
- call Func_588
- call SGBNormal
- ld bc, $0050
- call AdvanceFrames
- call Func_bbe
- ld hl, wScreenState
- inc [hl]
- ret
-
-CopyrightTextGfxPointers: ; 0x825e
- dw CopyrightTextGfx_GameBoy
- dw CopyrightTextGfx_GameBoyColor
-
-CopyrightTextGfx_GameBoy: ; 0x8262
- VIDEO_DATA_TILES CopyrightTextGfx, vTilesSH, $400
- VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap, $400
- db $FF, $FF ; terminators
-
-CopyrightTextGfx_GameBoyColor: ; 0x8272
- VIDEO_DATA_TILES CopyrightTextGfx, vTilesSH, $400
- VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap, $400
- VIDEO_DATA_BGATTR CopyrightScreenBGAttributes, vBGMap, $400
- VIDEO_DATA_PALETTES CopyrightScreenPalettes, $80
- db $FF, $FF ; terminators
-
-DisplayCopyrightScreen: ; 0x8290
- ld b, $5a ; number of frames to show the copyright screen
-.delayLoop
- push bc
- rst AdvanceFrame ; wait for next frame
- pop bc
- ld a, b
- cp $2d ; player can press A button to skip copyright screen once counter is below $2d
- jr nc, .decrementCounter
- ld a, [hNewlyPressedButtons]
- bit BIT_A_BUTTON, a
- jr nz, .done
-.decrementCounter
- dec b
- jr nz, .delayLoop
-.done
- ld hl, wScreenState
- inc [hl]
- ret
-
-FadeOutCopyrightScreenAndLoadData: ; 0x82a8
- call Func_cb5
- call Func_576
- ld hl, sHighScores
- ld de, wRedHighScore1Points
- ld bc, $0082
- call LoadSavedData
- jr c, .loadedHighScores
- callba CopyInitialHighScores
-.loadedHighScores
- ld hl, sPokedexFlags
- ld de, wPokedexFlags
- ld bc, $0098
- call LoadSavedData
- jr c, .asm_82de
- callba ClearPokedexData
-.asm_82de
- ld hl, sKeyConfigs
- ld de, wKeyConfigs
- ld bc, $000e
- call LoadSavedData
- jr c, .asm_82f6
- callba SaveDefaultKeyConfigs
-.asm_82f6
- ld hl, sSaveGame
- ld de, wPartyMons
- ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game.
- call LoadSavedData
- jr c, .asm_8308
- xor a
- ld [wd7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?".
-.asm_8308
- ld hl, wCurrentScreen
- inc [hl]
- xor a
- ld [wScreenState], a
- ret
+INCLUDE "engine/erase_all_data_menu.asm"
+INCLUDE "engine/copyright_screen.asm"
InitializeStage: ; 0x8311
ld hl, wc000