diff options
Diffstat (limited to 'src/engine/menus/init_menu.asm')
-rw-r--r-- | src/engine/menus/init_menu.asm | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/engine/menus/init_menu.asm b/src/engine/menus/init_menu.asm new file mode 100644 index 0000000..3757050 --- /dev/null +++ b/src/engine/menus/init_menu.asm @@ -0,0 +1,46 @@ +; empties screen in preparation to draw some menu +InitMenuScreen: + ld a, $0 + ld [wTileMapFill], a + call EmptyScreen + call LoadSymbolsFont + lb de, $30, $7f + call SetupText + call Set_OBJ_8x8 + xor a + ldh [hSCX], a + ldh [hSCY], a + ld a, [wLCDC] + bit LCDC_ENABLE_F, a + jr nz, .skip_clear_scroll + xor a + ldh [rSCX], a + ldh [rSCY], a +.skip_clear_scroll + call SetDefaultPalettes + call ZeroObjectPositions + ld a, $1 + ld [wVBlankOAMCopyToggle], a + ret + +; saves all pals to SRAM, then fills them with white. +; after flushing, it loads back the saved pals from SRAM. +FlashWhiteScreen: + ldh a, [hBankSRAM] + + push af + ld a, BANK("SRAM1") + call BankswitchSRAM + call CopyPalsToSRAMBuffer + call DisableSRAM + call SetWhitePalettes + call FlushAllPalettes + call EnableLCD + call DoFrameIfLCDEnabled + call LoadPalsFromSRAMBuffer + call FlushAllPalettes + pop af + + call BankswitchSRAM + call DisableSRAM + ret |