summaryrefslogtreecommitdiff
path: root/engine/menus
diff options
context:
space:
mode:
Diffstat (limited to 'engine/menus')
-rw-r--r--engine/menus/debug.asm1391
-rw-r--r--engine/menus/intro_menu.asm6
-rw-r--r--engine/menus/main_menu.asm47
3 files changed, 45 insertions, 1399 deletions
diff --git a/engine/menus/debug.asm b/engine/menus/debug.asm
deleted file mode 100644
index 6062e71aa..000000000
--- a/engine/menus/debug.asm
+++ /dev/null
@@ -1,1391 +0,0 @@
- const_def $6a
- const DEBUGTEST_TICKS_1 ; $6a
- const DEBUGTEST_TICKS_2 ; $6b
- const DEBUGTEST_WHITE ; $6c
- const DEBUGTEST_LIGHT ; $6d
- const DEBUGTEST_DARK ; $6e
- const DEBUGTEST_BLACK ; $6f
- const DEBUGTEST_0 ; $70
- const DEBUGTEST_1 ; $71
- const DEBUGTEST_2 ; $72
- const DEBUGTEST_3 ; $73
- const DEBUGTEST_4 ; $74
- const DEBUGTEST_5 ; $75
- const DEBUGTEST_6 ; $76
- const DEBUGTEST_7 ; $77
- const DEBUGTEST_8 ; $78
- const DEBUGTEST_9 ; $79
- const DEBUGTEST_A ; $7a
- const DEBUGTEST_B ; $7b
- const DEBUGTEST_C ; $7c
- const DEBUGTEST_D ; $7d
- const DEBUGTEST_E ; $7e
- const DEBUGTEST_F ; $7f
-
-ColorTest:
-; A debug menu to test monster and trainer palettes at runtime.
-
- ldh a, [hCGB]
- and a
- jr nz, .asm_818b5
- ldh a, [hSGB]
- and a
- ret z
-
-.asm_818b5
- ldh a, [hInMenu]
- push af
- ld a, $1
- ldh [hInMenu], a
- call DisableLCD
- call Function81948
- call Function8197c
- call Function819a7
- call Function818f4
- call EnableLCD
- ld de, MUSIC_NONE
- call PlayMusic
- xor a
- ld [wJumptableIndex], a
- ld [wcf66], a
- ld [wd003], a
-.asm_818de
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_818f0
- call Function81a74
- call Function81f5e
- call DelayFrame
- jr .asm_818de
-
-.asm_818f0
- pop af
- ldh [hInMenu], a
- ret
-
-Function818f4:
- ld a, [wd002]
- and a
- jr nz, Function81911
- ld hl, PokemonPalettes
-
-Function818fd:
- ld de, wOverworldMapBlocks
- ld c, NUM_POKEMON + 1
-.asm_81902
- push bc
- push hl
- call Function81928
- pop hl
- ld bc, 8
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_81902
- ret
-
-Function81911:
- ld hl, TrainerPalettes
- ld de, wOverworldMapBlocks
- ld c, NUM_TRAINER_CLASSES
-.asm_81919
- push bc
- push hl
- call Function81928
- pop hl
- ld bc, 4
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_81919
- ret
-
-Function81928:
- ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; aka BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- ret
-
-Function81948:
- ld a, $1
- ldh [rVBK], a
- ld hl, vTiles0
- ld bc, sScratch - vTiles0
- xor a
- call ByteFill
- ld a, $0
- ldh [rVBK], a
- ld hl, vTiles0
- ld bc, sScratch - vTiles0
- xor a
- call ByteFill
- hlcoord 0, 0, wAttrmap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- call ClearSprites
- ret
-
-Function8197c:
- ld hl, DebugColorTestGFX
- ld de, vTiles2 tile DEBUGTEST_TICKS_1
- ld bc, 22 tiles
- call CopyBytes
- ld hl, DebugUpArrowGFX
- ld de, vTiles0
- ld bc, 1 tiles
- call CopyBytes
- call LoadStandardFont
- ld hl, vTiles1
- lb bc, 8, 0
-.asm_8199d
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_8199d
- ret
-
-Function819a7:
- ldh a, [hCGB]
- and a
- ret z
- ldh a, [rSVBK]
- push af
- ld a, BANK(wBGPals2)
- ldh [rSVBK], a
- ld hl, Palette_DebugBG
- ld de, wBGPals2
- ld bc, 16 palettes
- call CopyBytes
- ld a, 1 << rBGPI_AUTO_INCREMENT
- ldh [rBGPI], a
- ld hl, Palette_DebugBG
- ld c, 8 palettes
- xor a
-.asm_819c8
- ldh [rBGPD], a
- dec c
- jr nz, .asm_819c8
- ld a, 1 << rOBPI_AUTO_INCREMENT
- ldh [rOBPI], a
- ld hl, Palette_DebugOB
- ld c, 8 palettes
-.asm_819d6
- ld a, [hli]
- ldh [rOBPD], a
- dec c
- jr nz, .asm_819d6
- ld a, $94
- ld [wc608], a
- ld a, $52
- ld [wc608 + 1], a
- ld a, $4a
- ld [wc608 + 2], a
- ld a, $29
- ld [wc608 + 3], a
- pop af
- ldh [rSVBK], a
- ret
-
-Palette_DebugBG:
-INCLUDE "gfx/debug/bg.pal"
-
-Palette_DebugOB:
-INCLUDE "gfx/debug/ob.pal"
-
-Function81a74:
- call JoyTextDelay
- ld a, [wJumptableIndex]
- cp $4
- jr nc, .asm_81a8b
- ld hl, hJoyLast
- ld a, [hl]
- and SELECT
- jr nz, .asm_81a9a
- ld a, [hl]
- and START
- jr nz, .asm_81aab
-
-.asm_81a8b
- jumptable Jumptable_81acf, wJumptableIndex
-
-.asm_81a9a
- call Function81eca
- call Function81ac3
- ld e, a
- ld a, [wcf66]
- inc a
- cp e
- jr c, .asm_81aba
- xor a
- jr .asm_81aba
-
-.asm_81aab
- call Function81eca
- ld a, [wcf66]
- dec a
- cp $ff
- jr nz, .asm_81aba
- call Function81ac3
- dec a
-
-.asm_81aba
- ld [wcf66], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-Function81ac3:
-; Looping back around the pic set.
- ld a, [wd002]
- and a
- jr nz, .asm_81acc
- ld a, NUM_POKEMON ; CELEBI
- ret
-
-.asm_81acc
- ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN
- ret
-
-Jumptable_81acf:
- dw Function81adb
- dw Function81c18
- dw Function81c33
- dw Function81cc2
- dw Function81d8e
- dw Function81daf
-
-Function81adb:
- xor a
- ldh [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, DEBUGTEST_BLACK
- call ByteFill
- hlcoord 1, 3
- lb bc, 7, 18
- ld a, DEBUGTEST_WHITE
- call DebugColor_FillBoxWithByte
- hlcoord 11, 0
- lb bc, 2, 3
- ld a, DEBUGTEST_LIGHT
- call DebugColor_FillBoxWithByte
- hlcoord 16, 0
- lb bc, 2, 3
- ld a, DEBUGTEST_DARK
- call DebugColor_FillBoxWithByte
- call Function81bc0
- call Function81bf4
- ld a, [wcf66]
- inc a
- ld [wCurPartySpecies], a
- ld [wDeciramBuffer], a
- hlcoord 0, 1
- ld de, wDeciramBuffer
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ld a, [wd002]
- and a
- jr nz, .asm_81b7a
- ld a, $1
- ld [wUnownLetter], a
- call GetPokemonName
- hlcoord 4, 1
- call PlaceString
- xor a
- ld [wBoxAlignment], a
- hlcoord 12, 3
- call _PrepMonFrontpic
- ld de, vTiles2 tile $31
- predef GetMonBackpic
- ld a, $31
- ldh [hGraphicStartTile], a
- hlcoord 2, 4
- lb bc, 6, 6
- predef PlaceGraphic
- ld a, [wd003]
- and a
- jr z, .asm_81b66
- ld de, String_81baf
- jr .asm_81b69
-
-.asm_81b66
- ld de, String_81bb4
-
-.asm_81b69
- hlcoord 7, 17
- call PlaceString
- hlcoord 0, 17
- ld de, String_81bb9
- call PlaceString
- jr .asm_81ba9
-
-.asm_81b7a
- ld a, [wDeciramBuffer]
- ld [wTrainerClass], a
- callfar GetTrainerAttributes
- ld de, wStringBuffer1
- hlcoord 4, 1
- call PlaceString
- ld de, vTiles2
- callfar GetTrainerPic
- xor a
- ld [wTempEnemyMonSpecies], a
- ldh [hGraphicStartTile], a
- hlcoord 2, 3
- lb bc, 7, 7
- predef PlaceGraphic
-
-.asm_81ba9
- ld a, $1
- ld [wJumptableIndex], a
- ret
-
-String_81baf: db "レア", DEBUGTEST_BLACK, DEBUGTEST_BLACK, "@" ; rare (shiny)
-String_81bb4: db "ノーマル@" ; normal
-String_81bb9: db DEBUGTEST_A, "きりかえ▶@" ; (A) switches
-
-Function81bc0:
- decoord 0, 11, wAttrmap
- hlcoord 2, 11
- ld a, $1
- call Function81bde
- decoord 0, 13, wAttrmap
- hlcoord 2, 13
- ld a, $2
- call Function81bde
- decoord 0, 15, wAttrmap
- hlcoord 2, 15
- ld a, $3
-
-Function81bde:
- push af
- ld a, DEBUGTEST_TICKS_1
- ld [hli], a
- ld bc, $f
- ld a, DEBUGTEST_TICKS_2
- call ByteFill
- ld l, e
- ld h, d
- pop af
- ld bc, $28
- call ByteFill
- ret
-
-Function81bf4:
- ld a, [wcf66]
- inc a
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld de, wOverworldMapBlocks
- add hl, de
- ld de, wc608
- ld bc, 4
- call CopyBytes
- xor a
- ld [wcf64], a
- ld [wcf65], a
- ld de, wc608
- call Function81ea5
- ret
-
-Function81c18:
- ldh a, [hCGB]
- and a
- jr z, .asm_81c2a
- ld a, $2
- ldh [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
-
-.asm_81c2a
- call WaitBGMap
- ld a, $2
- ld [wJumptableIndex], a
- ret
-
-Function81c33:
- ldh a, [hCGB]
- and a
- jr z, .asm_81c69
- ldh a, [rSVBK]
- push af
- ld a, BANK(wBGPals2)
- ldh [rSVBK], a
- ld hl, wBGPals2
- ld de, wc608
- ld c, $1
- call Function81ee3
- hlcoord 10, 2
- ld de, wc608
- call Function81ca7
- hlcoord 15, 2
- ld de, wc608 + 2
- call Function81ca7
- ld a, $1
- ldh [hCGBPalUpdate], a
- ld a, $3
- ld [wJumptableIndex], a
- pop af
- ldh [rSVBK], a
- ret
-
-.asm_81c69
- ld hl, wSGBPals
- ld a, 1
- ld [hli], a
- ld a, LOW(PALRGB_WHITE)
- ld [hli], a
- ld a, HIGH(PALRGB_WHITE)
- ld [hli], a
- ld a, [wc608]
- ld [hli], a
- ld a, [wc608 + 1]
- ld [hli], a
- ld a, [wc608 + 2]
- ld [hli], a
- ld a, [wc608 + 3]
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, wSGBPals
- call Function81f0c
- hlcoord 10, 2
- ld de, wc608
- call Function81ca7
- hlcoord 15, 2
- ld de, wc608 + 2
- call Function81ca7
- ld a, $3
- ld [wJumptableIndex], a
- ret
-
-Function81ca7:
- inc hl
- inc hl
- inc hl
- ld a, [de]
- call Function81cbc
- ld a, [de]
- swap a
- call Function81cbc
- inc de
- ld a, [de]
- call Function81cbc
- ld a, [de]
- swap a
-
-Function81cbc:
- and $f
- add DEBUGTEST_0
- ld [hld], a
- ret
-
-Function81cc2:
- ldh a, [hJoyLast]
- and B_BUTTON
- jr nz, .asm_81cdf
- ldh a, [hJoyLast]
- and A_BUTTON
- jr nz, .asm_81ce5
- ld a, [wcf64]
- and $3
- ld e, a
- ld d, 0
- ld hl, Jumptable_81d02
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.asm_81cdf
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_81ce5
- ld a, [wd002]
- and a
- ret nz
- ld a, [wd003]
- xor $4
- ld [wd003], a
- ld c, a
- ld b, 0
- ld hl, PokemonPalettes
- add hl, bc
- call Function818fd
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-Jumptable_81d02:
- dw Function81d0a
- dw Function81d34
- dw Function81d46
- dw Function81d58
-
-Function81d0a:
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_81d1d
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_81d28
- ret
-
-.asm_81d1d
- xor a
- ld [wcf65], a
- ld de, wc608
- call Function81ea5
- ret
-
-.asm_81d28
- ld a, $1
- ld [wcf65], a
- ld de, wc608 + 2
- call Function81ea5
- ret
-
-Function81d34:
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 10
- jr Function81d63
-
-Function81d46:
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 11
- jr Function81d63
-
-Function81d58:
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 12
-
-Function81d63:
- ldh a, [hJoyLast]
- and D_RIGHT
- jr nz, Function81d70
- ldh a, [hJoyLast]
- and D_LEFT
- jr nz, Function81d77
- ret
-
-Function81d70:
- ld a, [hl]
- cp $1f
- ret nc
- inc [hl]
- jr Function81d7b
-
-Function81d77:
- ld a, [hl]
- and a
- ret z
- dec [hl]
-
-Function81d7b:
- call Function81e67
- ld a, $2
- ld [wJumptableIndex], a
- ret
-
-Function81d84:
- ld hl, wcf64
- dec [hl]
- ret
-
-Function81d89:
- ld hl, wcf64
- inc [hl]
- ret
-
-Function81d8e:
- hlcoord 0, 10
- ld bc, $a0
- ld a, DEBUGTEST_BLACK
- call ByteFill
- hlcoord 2, 12
- ld de, String_81fcd
- call PlaceString
- xor a
- ld [wd004], a
- call Function81df4
- ld a, $5
- ld [wJumptableIndex], a
- ret
-
-Function81daf:
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_81dbb
- call Function81dc7
- ret
-
-.asm_81dbb
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-Function81dc1:
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function81dc7:
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_81dd5
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_81de2
- ret
-
-.asm_81dd5
- ld a, [wd004]
- cp $3b
- jr z, .asm_81ddf
- inc a
- jr .asm_81ded
-
-.asm_81ddf
- xor a
- jr .asm_81ded
-
-.asm_81de2
- ld a, [wd004]
- and a
- jr z, .asm_81deb
- dec a
- jr .asm_81ded
-
-.asm_81deb
- ld a, $3b
-
-.asm_81ded
- ld [wd004], a
- call Function81df4
- ret
-
-Function81df4:
- hlcoord 10, 11
- call Function81e5e
- hlcoord 10, 12
- call Function81e5e
- hlcoord 10, 13
- call Function81e5e
- hlcoord 10, 14
- call Function81e5e
- ld a, [wd004]
- inc a
- ld [wTempTMHM], a
- predef GetTMHMMove
- ld a, [wTempTMHM]
- ld [wPutativeTMHMMove], a
- call GetMoveName
- hlcoord 10, 12
- call PlaceString
- ld a, [wd004]
- call Function81e55
- ld [wCurItem], a
- predef CanLearnTMHMMove
- ld a, c
- and a
- ld de, String_81e46
- jr nz, .asm_81e3f
- ld de, String_81e4d
-
-.asm_81e3f
- hlcoord 10, 14
- call PlaceString
- ret
-
-String_81e46: db "おぼえられる@" ; can be taught
-String_81e4d: db "おぼえられない@" ; cannot be taught
-
-Function81e55:
- cp $32
- jr c, .asm_81e5b
- inc a
- inc a
-
-.asm_81e5b
- add $bf
- ret
-
-Function81e5e:
- ld bc, 10
- ld a, DEBUGTEST_BLACK
- call ByteFill
- ret
-
-Function81e67:
- ld a, [wc608 + 10]
- and $1f
- ld e, a
- ld a, [wc608 + 11]
- and $7
- sla a
- swap a
- or e
- ld e, a
- ld a, [wc608 + 11]
- and $18
- sla a
- swap a
- ld d, a
- ld a, [wc608 + 12]
- and $1f
- sla a
- sla a
- or d
- ld d, a
- ld a, [wcf65]
- and a
- jr z, .asm_81e9c
- ld a, e
- ld [wc608 + 2], a
- ld a, d
- ld [wc608 + 3], a
- ret
-
-.asm_81e9c
- ld a, e
- ld [wc608], a
- ld a, d
- ld [wc608 + 1], a
- ret
-
-Function81ea5:
- ld a, [de]
- and $1f
- ld [wc608 + 10], a
- ld a, [de]
- and $e0
- swap a
- srl a
- ld b, a
- inc de
- ld a, [de]
- and $3
- swap a
- srl a
- or b
- ld [wc608 + 11], a
- ld a, [de]
- and $7c
- srl a
- srl a
- ld [wc608 + 12], a
- ret
-
-Function81eca:
- ld a, [wcf66]
- inc a
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld de, wOverworldMapBlocks
- add hl, de
- ld e, l
- ld d, h
- ld hl, wc608
- ld bc, 4
- call CopyBytes
- ret
-
-Function81ee3:
-.asm_81ee3
- ld a, LOW(PALRGB_WHITE)
- ld [hli], a
- ld a, HIGH(PALRGB_WHITE)
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- dec c
- jr nz, .asm_81ee3
- ret
-
-DebugColor_FillBoxWithByte:
-; For some reason, we have another copy of FillBoxWithByte here
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-
-Function81f0c:
- ld a, [wcfbe]
- push af
- set 7, a
- ld [wcfbe], a
- call Function81f1d
- pop af
- ld [wcfbe], a
- ret
-
-Function81f1d:
- ld a, [hl]
- and $7
- ret z
- ld b, a
-.asm_81f22
- push bc
- xor a
- ldh [rJOYP], a
- ld a, $30
- ldh [rJOYP], a
- ld b, $10
-.asm_81f2c
- ld e, $8
- ld a, [hli]
- ld d, a
-.asm_81f30
- bit 0, d
- ld a, $10
- jr nz, .asm_81f38
- ld a, $20
-
-.asm_81f38
- ldh [rJOYP], a
- ld a, $30
- ldh [rJOYP], a
- rr d
- dec e
- jr nz, .asm_81f30
- dec b
- jr nz, .asm_81f2c
- ld a, $20
- ldh [rJOYP], a
- ld a, $30
- ldh [rJOYP], a
- ld de, 7000
-.asm_81f51
- nop
- nop
- nop
- dec de
- ld a, d
- or e
- jr nz, .asm_81f51
- pop bc
- dec b
- jr nz, .asm_81f22
- ret
-
-Function81f5e:
- ld a, DEBUGTEST_BLACK
- hlcoord 10, 0
- ld [hl], a
- hlcoord 15, 0
- ld [hl], a
- hlcoord 1, 11
- ld [hl], a
- hlcoord 1, 13
- ld [hl], a
- hlcoord 1, 15
- ld [hl], a
- ld a, [wJumptableIndex]
- cp $3
- jr nz, .asm_81fc9
- ld a, [wcf64]
- and a
- jr z, .asm_81f8d
- dec a
- hlcoord 1, 11
- ld bc, 2 * SCREEN_WIDTH
- call AddNTimes
- ld [hl], $ed
-
-.asm_81f8d
- ld a, [wcf65]
- and a
- jr z, .asm_81f98
- hlcoord 15, 0
- jr .asm_81f9b
-
-.asm_81f98
- hlcoord 10, 0
-
-.asm_81f9b
- ld [hl], $ed
- ld b, $70
- ld c, $5
- ld hl, wVirtualOAM
- ld de, wc608 + 10
- call .asm_81fb7
- ld de, wc608 + 11
- call .asm_81fb7
- ld de, wc608 + 12
- call .asm_81fb7
- ret
-
-.asm_81fb7
- ld a, b
- ld [hli], a ; y
- ld a, [de]
- add a
- add a
- add 3 * TILE_WIDTH
- ld [hli], a ; x
- xor a
- ld [hli], a ; tile id
- ld a, c
- ld [hli], a ; attributes
- ld a, 2 * TILE_WIDTH
- add b
- ld b, a
- inc c
- ret
-
-.asm_81fc9
- call ClearSprites
- ret
-
-String_81fcd:
- db "おわりますか?" ; Are you finished?
- next "はい<DOT><DOT><DOT>", DEBUGTEST_A ; YES...(A)
- next "いいえ<DOT><DOT>", DEBUGTEST_B ; NO..(B)
- db "@"
-
-DebugUpArrowGFX:
-INCBIN "gfx/debug/up_arrow.2bpp"
-
-DebugColorTestGFX:
-INCBIN "gfx/debug/color_test.2bpp"
-
-TilesetColorTest:
- ret
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ldh [hMapAnims], a
- call ClearSprites
- call OverworldTextModeSwitch
- call WaitBGMap2
- xor a
- ldh [hBGMapMode], a
- ld de, DebugColorTestGFX
- ld hl, vTiles2 tile DEBUGTEST_TICKS_1
- lb bc, BANK(DebugColorTestGFX), 22
- call Request2bpp
- ld de, DebugUpArrowGFX
- ld hl, vTiles1
- lb bc, BANK(DebugUpArrowGFX), 1
- call Request2bpp
- ld a, HIGH(vBGMap1)
- ldh [hBGMapAddress + 1], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, DEBUGTEST_BLACK
- call ByteFill
- hlcoord 0, 0, wAttrmap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7
- call ByteFill
- ld de, $15
- ld a, DEBUGTEST_WHITE
- call Function821d2
- ld de, $1a
- ld a, DEBUGTEST_LIGHT
- call Function821d2
- ld de, $1f
- ld a, DEBUGTEST_DARK
- call Function821d2
- ld de, $24
- ld a, DEBUGTEST_BLACK
- call Function821d2
- call Function821f4
- call Function8220f
- call WaitBGMap2
- ld [wJumptableIndex], a
- ld a, $40
- ldh [hWY], a
- ret
-
-Function821d2:
- hlcoord 0, 0
- call Function821de
-
-Function821d8:
- ld a, [wcf64]
- hlcoord 0, 0, wAttrmap
-
-Function821de:
- add hl, de
-rept 4
- ld [hli], a
-endr
- ld bc, $10
- add hl, bc
-rept 4
- ld [hli], a
-endr
- ld bc, $10
- add hl, bc
-rept 4
- ld [hli], a
-endr
- ret
-
-Function821f4:
- hlcoord 2, 4
- call Function82203
- hlcoord 2, 6
- call Function82203
- hlcoord 2, 8
-
-Function82203:
- ld a, DEBUGTEST_TICKS_1
- ld [hli], a
- ld bc, $10 - 1
- ld a, DEBUGTEST_TICKS_2
- call ByteFill
- ret
-
-Function8220f:
- ldh a, [rSVBK]
- push af
- ld a, BANK(wBGPals1)
- ldh [rSVBK], a
- ld a, [wcf64]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, wBGPals1
- add hl, de
- ld de, wc608
- ld bc, 8
- call CopyBytes
- ld de, wc608
- call Function81ea5
- pop af
- ldh [rSVBK], a
- ret
-
-Function82236:
- ld hl, hJoyLast
- ld a, [hl]
- and SELECT
- jr nz, .loop7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_82299
- call Function822f0
- ret
-
-.loop7
- ld hl, wcf64
- ld a, [hl]
- inc a
- and $7
- cp $7
- jr nz, .asm_82253
- xor a
-
-.asm_82253
- ld [hl], a
- ld de, $15
- call Function821d8
- ld de, $1a
- call Function821d8
- ld de, $1f
- call Function821d8
- ld de, $24
- call Function821d8
- ldh a, [rSVBK]
- push af
- ld a, BANK(wBGPals2)
- ldh [rSVBK], a
- ld hl, wBGPals2
- ld a, [wcf64]
- ld bc, 1 palettes
- call AddNTimes
- ld de, wc608
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ldh [rSVBK], a
- ld a, $2
- ldh [hBGMapMode], a
- ld c, 3
- call DelayFrames
- ld a, $1
- ldh [hBGMapMode], a
- ret
-
-.asm_82299
- call ClearSprites
- ldh a, [hWY]
- xor $d0
- ldh [hWY], a
- ret
-
-Function822a3:
- ldh a, [rSVBK]
- push af
- ld a, BANK(wBGPals2)
- ldh [rSVBK], a
- ld hl, wBGPals2
- ld a, [wcf64]
- ld bc, 1 palettes
- call AddNTimes
- ld e, l
- ld d, h
- ld hl, wc608
- ld bc, 1 palettes
- call CopyBytes
- hlcoord 1, 0
- ld de, wc608
- call Function81ca7
- hlcoord 6, 0
- ld de, wc608 + 2
- call Function81ca7
- hlcoord 11, 0
- ld de, wc608 + 4
- call Function81ca7
- hlcoord 16, 0
- ld de, wc608 + 6
- call Function81ca7
- pop af
- ldh [rSVBK], a
- ld a, $1
- ldh [hCGBPalUpdate], a
- call DelayFrame
- ret
-
-Function822f0:
- ld a, [wcf65]
- and 3
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.dw
- dw Function82309
- dw Function82339
- dw Function8234b
- dw Function8235d
-
-Function82309:
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_8231c
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_82322
- ret
-
-.asm_8231c
- ld a, [wcf66]
- dec a
- jr .asm_82326
-
-.asm_82322
- ld a, [wcf66]
- inc a
-
-.asm_82326
- and $3
- ld [wcf66], a
- ld e, a
- ld d, $0
- ld hl, wc608
- add hl, de
- add hl, de
- ld e, l
- ld d, h
- call Function81ea5
- ret
-
-Function82339:
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 10
- jr Function82368
-
-Function8234b:
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 11
- jr Function82368
-
-Function8235d:
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 12
-
-Function82368:
- ldh a, [hJoyLast]
- and D_RIGHT
- jr nz, .asm_82375
- ldh a, [hJoyLast]
- and D_LEFT
- jr nz, .asm_8237c
- ret
-
-.asm_82375
- ld a, [hl]
- cp $1f
- ret nc
- inc [hl]
- jr .asm_82380
-
-.asm_8237c
- ld a, [hl]
- and a
- ret z
- dec [hl]
-
-.asm_82380
- call Function82391
- call Function822a3
- ret
-
-Function82387:
- ld hl, wcf65
- dec [hl]
- ret
-
-Function8238c:
- ld hl, wcf65
- inc [hl]
- ret
-
-Function82391:
- ld a, [wc608 + 10]
- and $1f
- ld e, a
- ld a, [wc608 + 11]
- and $7
- sla a
- swap a
- or e
- ld e, a
- ld a, [wc608 + 11]
- and $18
- sla a
- swap a
- ld d, a
- ld a, [wc608 + 12]
- and $1f
- sla a
- sla a
- or d
- ld d, a
- ld a, [wcf66]
- ld c, a
- ld b, $0
- ld hl, wc608
- add hl, bc
- add hl, bc
- ld a, e
- ld [hli], a
- ld [hl], d
- ret
-
-Function823c6:
- ret
-
-Function823c7:
- ret
diff --git a/engine/menus/intro_menu.asm b/engine/menus/intro_menu.asm
index 0c8d38375..31809be46 100644
--- a/engine/menus/intro_menu.asm
+++ b/engine/menus/intro_menu.asm
@@ -88,6 +88,12 @@ AreYouABoyOrAreYouAGirl:
farcall InitMobileProfile ; mobile
ret
+if DEF(_DEBUG)
+DebugRoom: ; unreferenced
+ farcall _DebugRoom
+ ret
+endc
+
ResetWRAM:
xor a
ldh [hBGMapMode], a
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm
index 775573a60..fcbd7d430 100644
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -18,6 +18,7 @@
const MAINMENUITEM_MYSTERY_GIFT ; 3
const MAINMENUITEM_MOBILE ; 4
const MAINMENUITEM_MOBILE_STUDIUM ; 5
+ const MAINMENUITEM_DEBUG_ROOM ; 6
MobileMenuGFX:
INCBIN "gfx/mobile/mobile_menu.2bpp"
@@ -70,6 +71,9 @@ MainMenu:
db "MYSTERY GIFT@"
db "MOBILE@"
db "MOBILE STUDIUM@"
+if DEF(_DEBUG)
+ db "DEBUG ROOM@"
+endc
.Jumptable:
; entries correspond to MAINMENUITEM_* constants
@@ -79,6 +83,9 @@ MainMenu:
dw MainMenu_MysteryGift
dw MainMenu_Mobile
dw MainMenu_MobileStudium
+if DEF(_DEBUG)
+ dw MainMenu_DebugRoom
+endc
MainMenuItems:
; entries correspond to MAINMENU_* constants
@@ -90,71 +97,95 @@ MainMenuItems:
db -1
; MAINMENU_CONTINUE
- db 3
+ db 3 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_MOBILE_MYSTERY
- db 5
+ db 5 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
db MAINMENUITEM_MOBILE
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_MOBILE
- db 4
+ db 4 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MOBILE
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_MOBILE_STUDIUM
- db 5
+ db 5 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MOBILE
db MAINMENUITEM_MOBILE_STUDIUM
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_MYSTERY_MOBILE_STUDIUM
- db 6
+ db 6 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
db MAINMENUITEM_MOBILE
db MAINMENUITEM_MOBILE_STUDIUM
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_MYSTERY
- db 4
+ db 4 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_MYSTERY_STUDIUM
- db 5
+ db 5 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
db MAINMENUITEM_MOBILE_STUDIUM
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
; MAINMENU_STUDIUM
- db 4
+ db 4 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MOBILE_STUDIUM
+if DEF(_DEBUG)
+ db MAINMENUITEM_DEBUG_ROOM
+endc
db -1
MainMenu_GetWhichMenu: