ref: a2a26682330b70629d68f1f159c9b139b237c5ae
parent: 57d4cb0edfd62ca403b1470c67ac4efbd761ec5a
author: PikalaxALT <[email protected]>
date: Mon Dec 28 12:09:53 EST 2015
Dummy Game
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -89,6 +89,17 @@
const POKEDEX_SHOW_8 ; $57
const_def
+ const MAPRADIO_POKEMON_CHANNEL
+ const MAPRADIO_OAKS_MON_TALK
+ const MAPRADIO_POKEDEX_SHOW
+ const MAPRADIO_PKMN_MUSIC
+ const MAPRADIO_LUCKY_CHANNEL
+ const MAPRADIO_UNOWN
+ const MAPRADIO_PLACES_PEOPLE
+ const MAPRADIO_LETS_ALL_SING
+ const MAPRADIO_ROCKET
+
+ const_def
const BUENA_MON
const BUENA_ITEM
const BUENA_MOVE
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -349,22 +349,22 @@
const FACING_1F
const_def
- const SPRITEANIMSTRUCT_INDEX
- const SPRITEANIMSTRUCT_FRAMESET_ID
- const SPRITEANIMSTRUCT_ANIM_SEQ_ID
- const SPRITEANIMSTRUCT_TILE_ID
- const SPRITEANIMSTRUCT_XCOORD
- const SPRITEANIMSTRUCT_YCOORD
- const SPRITEANIMSTRUCT_XOFFSET
- const SPRITEANIMSTRUCT_YOFFSET
- const SPRITEANIMSTRUCT_DURATION
- const SPRITEANIMSTRUCT_DURATIONOFFSET
- const SPRITEANIMSTRUCT_FRAME
- const SPRITEANIMSTRUCT_0B
- const SPRITEANIMSTRUCT_0C
- const SPRITEANIMSTRUCT_0D
- const SPRITEANIMSTRUCT_0E
- const SPRITEANIMSTRUCT_0F
+ const SPRITEANIMSTRUCT_INDEX ; 0
+ const SPRITEANIMSTRUCT_FRAMESET_ID ; 1
+ const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2
+ const SPRITEANIMSTRUCT_TILE_ID ; 3
+ const SPRITEANIMSTRUCT_XCOORD ; 4
+ const SPRITEANIMSTRUCT_YCOORD ; 5
+ const SPRITEANIMSTRUCT_XOFFSET ; 6
+ const SPRITEANIMSTRUCT_YOFFSET ; 7
+ const SPRITEANIMSTRUCT_DURATION ; 8
+ const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9
+ const SPRITEANIMSTRUCT_FRAME ; a
+ const SPRITEANIMSTRUCT_0B ; b
+ const SPRITEANIMSTRUCT_0C ; c
+ const SPRITEANIMSTRUCT_0D ; d
+ const SPRITEANIMSTRUCT_0E ; e
+ const SPRITEANIMSTRUCT_0F ; f
const_def
const SPRITE_ANIM_FRAMESET_00
--- a/engine/dummy_game.asm
+++ b/engine/dummy_game.asm
@@ -1,12 +1,12 @@
_DummyGame: ; e1e5b (38:5e5b)
- call Functione1e67
+ call .LoadGFXAndPals
call DelayFrame
-.asm_e1e61
- call Functione1ebb
- jr nc, .asm_e1e61
+.loop
+ call .JumptableLoop
+ jr nc, .loop
ret
-Functione1e67: ; e1e67 (38:5e67)
+.LoadGFXAndPals
call DisableLCD
ld b, SCGB_08
call GetSGBLayout
@@ -16,7 +16,7 @@
call Decompress
ld hl, Unknown_e00ed
ld de, VTiles0 tile $00
- ld bc, $40
+ ld bc, 4 tiles
ld a, BANK(Unknown_e00ed)
call FarCopyBytes
ld a, $8
@@ -42,403 +42,397 @@
call DmgToCgbObjPal0
ret
-Functione1ebb: ; e1ebb (38:5ebb)
+.JumptableLoop
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_e1ed0
- call Functione1ed2
+ jr nz, .quit
+ call .ExecuteJumptable
callab PlaySpriteAnimations
call DelayFrame
and a
ret
-.asm_e1ed0
+
+.quit
scf
ret
-Functione1ed2: ; e1ed2 (38:5ed2)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e1ee1
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e1ee1 (38:5ee1)
+.ExecuteJumptable
+ jumptable .Jumptable, wJumptableIndex
-Jumptable_e1ee1: ; e1ee1
- dw Functione1ef3
- dw Functione1efb
- dw Functione1f1c
- dw Functione1f42
- dw Functione1f61
- dw Functione1f8b
- dw Functione1fba
- dw Functione1fcc
- dw Functione2000
-; e1ef3
+.Jumptable
+ dw .RestartGame
+ dw .ResetBoard
+ dw .InitBoardTilemapAndCursorObject
+ dw .CheckTriesRemaining
+ dw .PickCard1
+ dw .PickCard2
+ dw .DelayPickAgain
+ dw .RevealAll
+ dw .AskPlayAgain
-Functione1ef3: ; e1ef3
- call Functione2152
+.RestartGame
+ call DummyGame_InitStrings
ld hl, wJumptableIndex
inc [hl]
ret
-; e1efb
-Functione1efb: ; e1efb
+.ResetBoard
call ret_e00ed
- jr nc, .asm_e1f06
+ jr nc, .proceed
ld hl, wJumptableIndex
set 7, [hl]
ret
-.asm_e1f06
- call Functione209d
+.proceed
+ call DummyGame_InitBoard
ld hl, wJumptableIndex
inc [hl]
xor a
- ld [wc708], a
- ld hl, wc703
+ ld [wDummyGameCounter], a
+ ld hl, wDummyGameLastMatches
rept 4
ld [hli], a
endr
ld [hl], a
- ld [wc709], a
-
-Functione1f1c: ; e1f1c
- ld hl, wc708
+ ld [wDummyGameNumCardsMatched], a
+.InitBoardTilemapAndCursorObject
+ ld hl, wDummyGameCounter
ld a, [hl]
- cp $2d
- jr nc, .asm_e1f30
+ cp 45
+ jr nc, .spawn_object
inc [hl]
- call Functione2183
+ call DummyGame_Card2Coord
xor a
- ld [wc6fd], a
- call Functione2128
+ ld [wDummyGameLastCardPicked], a
+ call DummyGame_PlaceCard
ret
-.asm_e1f30
- ld de, $341c
- ld a, $c
+.spawn_object
+ depixel 6, 3, 4, 4
+ ld a, SPRITE_ANIM_INDEX_0C
call _InitSpriteAnimStruct
- ld a, $5
- ld [wc702], a
+ ld a, 5
+ ld [wDummyGameNumberTriesRemaining], a
ld hl, wJumptableIndex
inc [hl]
ret
-; e1f42
-Functione1f42: ; e1f42
- ld a, [wc702]
+.CheckTriesRemaining
+ ld a, [wDummyGameNumberTriesRemaining]
hlcoord 17, 0
- add $f6
+ add "0"
ld [hl], a
- ld hl, wc702
+ ld hl, wDummyGameNumberTriesRemaining
ld a, [hl]
and a
- jr nz, .asm_e1f58
+ jr nz, .next_try
ld a, $7
ld [wJumptableIndex], a
ret
-.asm_e1f58
+.next_try
dec [hl]
xor a
ld [wcf64], a
ld hl, wJumptableIndex
inc [hl]
-
-Functione1f61: ; e1f61
+.PickCard1
ld a, [wcf64]
and a
ret z
dec a
ld e, a
- ld d, $0
- ld hl, wc6d0
+ ld d, 0
+ ld hl, wDummyGameCards
add hl, de
ld a, [hl]
- cp $ff
+ cp -1
ret z
- ld [wc6fd], a
- ld [wPlayerMinimized], a
+ ld [wDummyGameLastCardPicked], a
+ ld [wDummyGameCard1], a
ld a, e
- ld [EnemyScreens], a
- call Functione2183
- call Functione2128
+ ld [wDummyGameCard1Location], a
+ call DummyGame_Card2Coord
+ call DummyGame_PlaceCard
xor a
ld [wcf64], a
ld hl, wJumptableIndex
inc [hl]
ret
-; e1f8b
-Functione1f8b: ; e1f8b
+.PickCard2
ld a, [wcf64]
and a
ret z
dec a
- ld hl, EnemyScreens
+ ld hl, wDummyGameCard1Location
cp [hl]
ret z
ld e, a
- ld d, $0
- ld hl, wc6d0
+ ld d, 0
+ ld hl, wDummyGameCards
add hl, de
ld a, [hl]
- cp $ff
+ cp -1
ret z
- ld [wc6fd], a
- ld [PlayerScreens], a
+ ld [wDummyGameLastCardPicked], a
+ ld [wDummyGameCard2], a
ld a, e
- ld [wc701], a
- call Functione2183
- call Functione2128
- ld a, $40
- ld [wc708], a
+ ld [wDummyGameCard2Location], a
+ call DummyGame_Card2Coord
+ call DummyGame_PlaceCard
+ ld a, 64
+ ld [wDummyGameCounter], a
ld hl, wJumptableIndex
inc [hl]
-
-Functione1fba: ; e1fba
- ld hl, wc708
+.DelayPickAgain
+ ld hl, wDummyGameCounter
ld a, [hl]
and a
- jr z, .asm_e1fc3
+ jr z, .PickAgain
dec [hl]
ret
-.asm_e1fc3
- call Functione2010
+.PickAgain
+ call DummyGame_CheckMatch
ld a, $3
ld [wJumptableIndex], a
ret
-; e1fcc
-Functione1fcc: ; e1fcc
+.RevealAll
ld a, [hJoypadPressed]
and A_BUTTON
ret z
xor a
- ld [wc708], a
-.asm_e1fd5
- ld hl, wc708
+ ld [wDummyGameCounter], a
+.RevelationLoop
+ ld hl, wDummyGameCounter
ld a, [hl]
- cp $2d
- jr nc, .asm_e1ff9
+ cp 45
+ jr nc, .finish_round
inc [hl]
push af
- call Functione2183
+ call DummyGame_Card2Coord
pop af
push hl
ld e, a
ld d, $0
- ld hl, wc6d0
+ ld hl, wDummyGameCards
add hl, de
ld a, [hl]
pop hl
- cp $ff
- jr z, .asm_e1fd5
- ld [wc6fd], a
- call Functione2128
- jr .asm_e1fd5
+ cp -1
+ jr z, .RevelationLoop
+ ld [wDummyGameLastCardPicked], a
+ call DummyGame_PlaceCard
+ jr .RevelationLoop
-.asm_e1ff9
+.finish_round
call WaitPressAorB_BlinkCursor
ld hl, wJumptableIndex
inc [hl]
-
-Functione2000: ; e2000
+.AskPlayAgain
call ret_e00ed
- jr nc, .asm_e200b
+ jr nc, .restart
ld hl, wJumptableIndex
set 7, [hl]
ret
-.asm_e200b
+.restart
xor a
ld [wJumptableIndex], a
ret
+
; e2010
-Functione2010: ; e2010
- ld hl, wPlayerMinimized
+DummyGame_CheckMatch: ; e2010
+ ld hl, wDummyGameCard1
ld a, [hli]
cp [hl]
- jr nz, .asm_e2066
- ld a, [EnemyScreens]
- call Functione2183
- call Functione2142
- ld a, [wc701]
- call Functione2183
- call Functione2142
- ld a, [EnemyScreens]
+ jr nz, .no_match
+
+ ld a, [wDummyGameCard1Location]
+ call DummyGame_Card2Coord
+ call DummyGame_DeleteCard
+
+ ld a, [wDummyGameCard2Location]
+ call DummyGame_Card2Coord
+ call DummyGame_DeleteCard
+
+ ld a, [wDummyGameCard1Location]
ld e, a
ld d, $0
- ld hl, wc6d0
+ ld hl, wDummyGameCards
add hl, de
- ld [hl], $ff
- ld a, [wc701]
+ ld [hl], -1
+
+ ld a, [wDummyGameCard2Location]
ld e, a
- ld d, $0
- ld hl, wc6d0
+ ld d, 0
+ ld hl, wDummyGameCards
add hl, de
- ld [hl], $ff
- ld hl, wc703
-.asm_e2044
+ ld [hl], -1
+
+ ld hl, wDummyGameLastMatches
+.find_empty_slot
ld a, [hli]
and a
- jr nz, .asm_e2044
+ jr nz, .find_empty_slot
dec hl
- ld a, [wPlayerMinimized]
+ ld a, [wDummyGameCard1]
ld [hl], a
- ld [wc6fd], a
- ld hl, wc709
+ ld [wDummyGameLastCardPicked], a
+ ld hl, wDummyGameNumCardsMatched
ld e, [hl]
-rept 2
inc [hl]
-endr
- ld d, $0
+ inc [hl]
+ ld d, 0
hlcoord 5, 0
add hl, de
- call Functione2128
- ld hl, UnknownText_0xe2083
+ call DummyGame_PlaceCard
+ ld hl, .VictoryText
call PrintText
ret
-.asm_e2066
+.no_match
xor a
- ld [wc6fd], a
- ld a, [EnemyScreens]
- call Functione2183
- call Functione2128
- ld a, [wc701]
- call Functione2183
- call Functione2128
- ld hl, UnknownText_0xe2098
+ ld [wDummyGameLastCardPicked], a
+
+ ld a, [wDummyGameCard1Location]
+ call DummyGame_Card2Coord
+ call DummyGame_PlaceCard
+
+ ld a, [wDummyGameCard2Location]
+ call DummyGame_Card2Coord
+ call DummyGame_PlaceCard
+
+ ld hl, DummyGameText_Darn
call PrintText
ret
-; e2083
-UnknownText_0xe2083: ; 0xe2083
+.VictoryText
start_asm
-; 0xe2084
-
-Functione2084: ; e2084
push bc
hlcoord 2, 13
- call Functione2128
- ld hl, UnknownText_0xe2093
+ call DummyGame_PlaceCard
+ ld hl, DummyGameText_Yeah
pop bc
-rept 3
inc bc
-endr
+ inc bc
+ inc bc
ret
+
; e2093
-UnknownText_0xe2093: ; 0xe2093
+DummyGameText_Yeah: ; 0xe2093
; , yeah!
text_jump UnknownText_0x1c1a5b
db "@"
; 0xe2098
-UnknownText_0xe2098: ; 0xe2098
+DummyGameText_Darn: ; 0xe2098
; Darn…
text_jump UnknownText_0x1c1a65
db "@"
; 0xe209d
-Functione209d: ; e209d
- ld hl, wc6d0
- ld bc, $2d
+DummyGame_InitBoard: ; e209d
+ ld hl, wDummyGameCards
+ ld bc, wDummyGameCardsEnd - wDummyGameCards
xor a
call ByteFill
- call Functione2101
- ld c, $2
+ call DummyGame_GetDistributionOfTiles
+
+ ld c, 2
ld b, [hl]
- call Functione20e5
- ld c, $8
+ call DummyGame_SampleTilePlacement
+
+ ld c, 8
ld b, [hl]
- call Functione20e5
- ld c, $4
+ call DummyGame_SampleTilePlacement
+
+ ld c, 4
ld b, [hl]
- call Functione20e5
- ld c, $7
+ call DummyGame_SampleTilePlacement
+
+ ld c, 7
ld b, [hl]
- call Functione20e5
- ld c, $3
+ call DummyGame_SampleTilePlacement
+
+ ld c, 3
ld b, [hl]
- call Functione20e5
- ld c, $6
+ call DummyGame_SampleTilePlacement
+
+ ld c, 6
ld b, [hl]
- call Functione20e5
- ld c, $1
+ call DummyGame_SampleTilePlacement
+
+ ld c, 1
ld b, [hl]
- call Functione20e5
- ld c, $5
- ld hl, wc6d0
- ld b, $2d
-.asm_e20db
+ call DummyGame_SampleTilePlacement
+
+ ld c, 5
+ ld hl, wDummyGameCards
+ ld b, wDummyGameCardsEnd - wDummyGameCards
+.loop
ld a, [hl]
and a
- jr nz, .asm_e20e0
+ jr nz, .no_load
ld [hl], c
-
-.asm_e20e0
+.no_load
inc hl
dec b
- jr nz, .asm_e20db
+ jr nz, .loop
ret
+
; e20e5
-Functione20e5: ; e20e5
+DummyGame_SampleTilePlacement: ; e20e5
push hl
- ld de, wc6d0
-.asm_e20e9
+ ld de, wDummyGameCards
+.loop
call Random
- and $3f
- cp $2d
- jr nc, .asm_e20e9
+ and %00111111
+ cp 45
+ jr nc, .loop
ld l, a
- ld h, $0
+ ld h, 0
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e20e9
+ jr nz, .loop
ld [hl], c
dec b
- jr nz, .asm_e20e9
+ jr nz, .loop
pop hl
inc hl
ret
+
; e2101
-Functione2101: ; e2101
+DummyGame_GetDistributionOfTiles: ; e2101
ld a, [wMenuCursorY]
dec a
ld l, a
ld h, 0
-rept 3
add hl, hl
-endr
- ld de, Unknown_e2110
+ add hl, hl
+ add hl, hl
+ ld de, .distributions
add hl, de
ret
-; e2110
-Unknown_e2110: ; e2110
+.distributions
db $02, $03, $06, $06, $06, $08, $08, $06
db $02, $02, $04, $06, $06, $08, $08, $09
db $02, $02, $02, $04, $07, $08, $08, $0c
; e2128
-Functione2128: ; e2128
- ld a, [wc6fd]
+DummyGame_PlaceCard: ; e2128
+ ld a, [wDummyGameLastCardPicked]
sla a
sla a
- add $4
+ add 4
ld [hli], a
inc a
ld [hld], a
@@ -451,9 +445,10 @@
ld c, 3
call DelayFrames
ret
+
; e2142
-Functione2142: ; e2142
+DummyGame_DeleteCard: ; e2142
ld a, $1
ld [hli], a
ld [hld], a
@@ -464,60 +459,61 @@
ld c, 3
call DelayFrames
ret
+
; e2152
-Functione2152: ; e2152
+DummyGame_InitStrings: ; e2152
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $1
call ByteFill
hlcoord 0, 0
- ld de, String_e2177
+ ld de, .japstr1
call PlaceString
hlcoord 15, 0
- ld de, String_e217d
+ ld de, .japstr2
call PlaceString
- ld hl, UnknownText_0xe2176
+ ld hl, .dummy_text
call PrintText
ret
-; e2176
-UnknownText_0xe2176: ; 0xe2176
+.dummy_text
db "@"
-; 0xe2177
-
-String_e2177: db "とったもの@"
-String_e217d: db "あと かい@"
+.japstr1
+ db "とったもの@"
+.japstr2
+ db "あと かい@"
; e2183
-Functione2183: ; e2183
- ld d, $0
-.asm_e2185
- sub $9
- jr c, .asm_e218c
+DummyGame_Card2Coord: ; e2183
+ ld d, 0
+.find_row
+ sub 9
+ jr c, .found_row
inc d
- jr .asm_e2185
+ jr .find_row
-.asm_e218c
- add $9
+.found_row
+ add 9
ld e, a
hlcoord 1, 2
- ld bc, $28
-.asm_e2195
+ ld bc, 2 * SCREEN_WIDTH
+.loop2
ld a, d
and a
- jr z, .asm_e219d
+ jr z, .done
add hl, bc
dec d
- jr .asm_e2195
+ jr .loop2
-.asm_e219d
+.done
sla e
add hl, de
ret
+
; e21a1
-Functione21a1: ; e21a1 (38:61a1)
+DummyGame_InterpretJoypad_AnimateCursor: ; e21a1 (38:61a1)
ld a, [wJumptableIndex]
cp $7
jr nc, .quit
@@ -541,13 +537,13 @@
ret
.quit
- ld hl, 0
+ ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
ld [hl], $0
ret
.pressed_a
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
inc a
@@ -555,60 +551,61 @@
ret
.pressed_left
- ld hl, $6
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
and a
ret z
- sub $10
+ sub 1 tiles
ld [hl], a
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
dec [hl]
ret
.pressed_right
- ld hl, $6
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
- cp $80
+ cp (9 - 1) tiles
ret z
- add $10
+ add 1 tiles
ld [hl], a
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
inc [hl]
ret
.pressed_up
- ld hl, $7
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
and a
ret z
- sub $10
+ sub 1 tiles
ld [hl], a
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
- sub $9
+ sub 9
ld [hl], a
ret
.pressed_down
- ld hl, $7
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
- cp $40
+ cp (5 - 1) tiles
ret z
- add $10
+ add 1 tiles
ld [hl], a
- ld hl, $c
+ ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
- add $9
+ add 9
ld [hl], a
ret
+
; e2221 (38:6221)
LZ_e2221: ; e2221
--- a/engine/mail.asm
+++ b/engine/mail.asm
@@ -27,7 +27,7 @@
call ByteFill
ld a, MON_ITEM
call GetPartyParamLocation
- ld [hl], $0
+ ld [hl], 0
ld hl, sMailboxCount
inc [hl]
call CloseSRAM
@@ -355,7 +355,7 @@
ret
; 0x447da
-Function447da: ; 0x447da
+MailboxPC_GetMailAuthor: ; 0x447da
dec a
ld hl, sMailbox1Author
ld bc, MAIL_STRUCT_LENGTH
@@ -373,10 +373,10 @@
ret
; 0x447fb
-Function447fb: ; 0x447fb
+MailboxPC_PrintMailAuthor: ; 0x447fb
push de
ld a, [MenuSelection]
- call Function447da
+ call MailboxPC_GetMailAuthor
pop hl
jp PlaceString
; 0x44806
@@ -384,11 +384,11 @@
MailboxPC: ; 0x44806
xor a
ld [OBPals + 8 * 6], a
- ld a, $1
+ ld a, 1
ld [wCurMessageIndex], a
.loop
call InitMail
- ld hl, MenuData4494c
+ ld hl, .TopMenuDataHeader
call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
@@ -406,9 +406,9 @@
ld [wCurMessageIndex], a
ld a, [wMenuJoypad]
- cp $2
+ cp B_BUTTON
jr z, .exit
- call Function4484a
+ call .Submenu
jr .loop
.exit
@@ -416,18 +416,18 @@
ret
; 0x4484a
-Function4484a: ; 0x4484a
- ld hl, MenuData44964
+.Submenu: ; 0x4484a
+ ld hl, .SubMenuDataHeader
call LoadMenuDataHeader
call VerticalMenu
call ExitMenu
- jr c, .exit
+ jr c, .subexit
ld a, [wMenuCursorY]
dec a
ld hl, .JumpTable
rst JumpTable
-.exit
+.subexit
ret
; 0x44861
@@ -455,7 +455,7 @@
ld a, [MenuSelection]
dec a
call .GetMailType
- ld a, $1
+ ld a, 1
ld [wItemQuantityChangeBuffer], a
ld hl, NumItems
call ReceiveItem
@@ -557,30 +557,30 @@
.Cancel
ret
-MenuData4494c: ; 0x4494c
+.TopMenuDataHeader: ; 0x4494c
db %01000000 ; flags
db 1, 8 ; start coords
db 10, 18 ; end coords
- dw .MenuData2
+ dw .TopMenuData2
db 1 ; default option
-.MenuData2
+.TopMenuData2
db %00010000 ; flags
db 4, 0 ; rows/columns?
db 1 ; horizontal spacing?
dbw 0, wMailboxCount ; text pointer
- dba Function447fb
- dbw 0,0
- dbw 0,0
+ dba MailboxPC_PrintMailAuthor
+ dba NULL
+ dba NULL
-MenuData44964: ; 0x44964
+.SubMenuDataHeader: ; 0x44964
db %01000000 ; flags
- db 0, 0 ; start coords
- db 9, $d ; end coords
- dw .MenuData2
+ db 0, 0 ; start coords
+ db 9, 13 ; end coords
+ dw .SubMenuData2
db 1 ; default option
-.MenuData2
+.SubMenuData2
db %10000000 ; flags
db 4 ; items
db "READ MAIL@"
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -413,7 +413,7 @@
ret
.fourteen: ; 8d47c (23:547c)
- callab Functione21a1
+ callab DummyGame_InterpretJoypad_AnimateCursor
ret
.sixteen: ; 8d483 (23:5483)
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -202,7 +202,7 @@
Radio1Script:
opentext
- writebyte $0
+ writebyte MAPRADIO_POKEMON_CHANNEL
special MapRadio
closetext
end
@@ -210,7 +210,7 @@
Radio2Script:
; Lucky Channel
opentext
- writebyte $4
+ writebyte MAPRADIO_LUCKY_CHANNEL
special MapRadio
closetext
end
@@ -1807,21 +1807,21 @@
CoinVendor_IntroScript: ; 0xbcde0
farwritetext CoinVendor_IntroText
-CoinVendor_SellCoinsMenuScript: ; 0xbcde4
+.loop: ; 0xbcde4
special Special_DisplayMoneyAndCoinBalance
- loadmenudata CoinVendor_MenuDataHeader
+ loadmenudata .MenuDataHeader
verticalmenu
closewindow
- if_equal $1, CoinVendor_Buy50CoinsScript
- if_equal $2, CoinVendor_Buy500CoinsScript
- jump CoinVendor_CancelScript
+ if_equal $1, .Buy50
+ if_equal $2, .Buy500
+ jump .Cancel
; 0xbcdf7
-CoinVendor_Buy50CoinsScript: ; 0xbcdf7
+.Buy50: ; 0xbcdf7
checkcoins 9949
- if_equal $0, CoinVendor_CoinCaseFullScript
+ if_equal $0, .CoinCaseFull
checkmoney $0, 1000
- if_equal $2, CoinVendor_NotEnoughMoneyScript
+ if_equal $2, .NotEnoughMoney
givecoins 50
takemoney $0, 1000
waitsfx
@@ -1828,14 +1828,14 @@
playsound SFX_TRANSACTION
farwritetext CoinVendor_Buy50CoinsText
waitbutton
- jump CoinVendor_SellCoinsMenuScript
+ jump .loop
; 0xbce1b
-CoinVendor_Buy500CoinsScript: ; 0xbce1b
+.Buy500: ; 0xbce1b
checkcoins 9499
- if_equal $0, CoinVendor_CoinCaseFullScript
+ if_equal $0, .CoinCaseFull
checkmoney $0, 10000
- if_equal $2, CoinVendor_NotEnoughMoneyScript
+ if_equal $2, .NotEnoughMoney
givecoins 500
takemoney $0, 10000
waitsfx
@@ -1842,10 +1842,10 @@
playsound SFX_TRANSACTION
farwritetext CoinVendor_Buy500CoinsText
waitbutton
- jump CoinVendor_SellCoinsMenuScript
+ jump .loop
; 0xbce3f
-CoinVendor_NotEnoughMoneyScript: ; 0xbce3f
+.NotEnoughMoney: ; 0xbce3f
farwritetext CoinVendor_NotEnoughMoneyText
waitbutton
closetext
@@ -1852,7 +1852,7 @@
end
; 0xbce46
-CoinVendor_CoinCaseFullScript: ; 0xbce46
+.CoinCaseFull: ; 0xbce46
farwritetext CoinVendor_CoinCaseFullText
waitbutton
closetext
@@ -1859,7 +1859,7 @@
end
; 0xbce4d
-CoinVendor_CancelScript: ; 0xbce4d
+.Cancel: ; 0xbce4d
farwritetext CoinVendor_CancelText
waitbutton
closetext
@@ -1867,15 +1867,14 @@
; 0xbce54
-CoinVendor_MenuDataHeader: ; 0xbce54
+.MenuDataHeader
db $40 ; flags
db 04, 00 ; start coords
db 11, 15 ; end coords
- dw CoinVendor_MenuData2
+ dw .MenuData2
db 1 ; default option
-; 0xbce5c
-CoinVendor_MenuData2: ; 0xbce5c
+.MenuData2
db $80 ; flags
db 3 ; items
db " 50 : ¥1000@"
--- a/home.asm
+++ b/home.asm
@@ -1984,173 +1984,3 @@
INCLUDE "home/audio.asm"
INCLUDE "home/mobile.asm"
-
-Function3eea:: ; 3eea
- push hl
- push bc
- ld de, AttrMap - TileMap
- add hl, de
- inc b
- inc b
- inc c
- inc c
- call Function3f35
- pop bc
- pop hl
- call Function3f47
- ret
-; 3efd
-
-Function3efd:: ; 3efd
- push hl
- hlcoord 0, 12
- ld b, 4
- ld c, 18
- call Function3f0d
- pop hl
- call PrintTextBoxText
- ret
-; 3f0d
-
-Function3f0d:: ; 3f0d
- push hl
- push bc
- ld de, AttrMap - TileMap
- add hl, de
- inc b
- inc b
- inc c
- inc c
- call Function3f35
- pop bc
- pop hl
- call TextBoxBorder
- ret
-; 3f20
-
-Function3f20:: ; 3f20
- hlcoord 0, 0, AttrMap
- ld b, $6
- ld c, $14
- call Function3f35
- hlcoord 0, 0
- ld b, $4
- ld c, $12
- call Function3f47
- ret
-; 3f35
-
-Function3f35:: ; 3f35
- ld a, $6
- ld de, $0014
-.asm_3f3a
- push bc
- push hl
-.asm_3f3c
- ld [hli], a
- dec c
- jr nz, .asm_3f3c
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_3f3a
- ret
-; 3f47
-
-Function3f47:: ; 3f47
- push bc
- call Function3f58
- pop bc
-.asm_3f4c
- push bc
- call Function3f68
- pop bc
- dec b
- jr nz, .asm_3f4c
- call Function3f60
- ret
-; 3f58
-
-Function3f58:: ; 3f58
- ld a, $63
- ld d, $62
- ld e, $64
- jr Function3f6e
-
-Function3f60:: ; 3f60
- ld a, $68
- ld d, $67
- ld e, $69
- jr Function3f6e
-
-Function3f68:: ; 3f68
- ld a, $7f
- ld d, $65
- ld e, $66
-
-Function3f6e:: ; 3f6e
- push hl
- ld [hl], d
- inc hl
-.asm_3f71
- ld [hli], a
- dec c
- jr nz, .asm_3f71
- ld [hl], e
- pop hl
- ld de, $0014
- add hl, de
- ret
-; 3f7c
-
-Function3f7c:: ; 3f7c
- call MenuBoxCoord2Tile
- call GetMenuBoxDims
- dec b
- dec c
- call Function3eea
- ret
-; 3f88
-
-Function3f88:: ; 3f88
- ld hl, wDecompressScratch
- ld b, $0
-.asm_3f8d
- push bc
- ld c, $8
-.asm_3f90
- ld a, [de]
- inc de
- cpl
- ld [hl], $0
- inc hl
- ld [hli], a
- dec c
- jr nz, .asm_3f90
- pop bc
- dec c
- jr nz, .asm_3f8d
- ret
-; 3f9f
-
-Function3f9f:: ; 3f9f
- ld hl, wDecompressScratch
-.asm_3fa2
- push bc
- ld c, $8
-.asm_3fa5
- ld a, [de]
- inc de
- inc de
- cpl
- ld [hl], $0
- inc hl
- ld [hli], a
- dec c
- jr nz, .asm_3fa5
- pop bc
- dec c
- jr nz, .asm_3fa2
- ret
-; 3fb5
--- a/home/mobile.asm
+++ b/home/mobile.asm
@@ -92,19 +92,19 @@
ld a, [$c822]
bit 1, a
- jr nz, .skip_Function1118de
+ jr nz, .skip_Timer
ld a, [rSC]
and 1 << rSC_ON
- jr nz, .skip_Function1118de
+ jr nz, .skip_Timer
ld a, [hROMBank]
push af
- ld a, BANK(Function1118de)
+ ld a, BANK(_Timer)
ld [$c981], a
rst Bankswitch
- call Function1118de
+ call _Timer
pop bc
ld a, b
@@ -111,7 +111,7 @@
ld [$c981], a
rst Bankswitch
-.skip_Function1118de
+.skip_Timer
ld a, [rTMA]
ld [rTIMA], a
@@ -142,3 +142,174 @@
ld a, [wdc02]
ret
; 3eea
+
+Function3eea:: ; 3eea
+ push hl
+ push bc
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ call Function3f35
+ pop bc
+ pop hl
+ call MobileHome_PlaceBox
+ ret
+; 3efd
+
+Function3efd:: ; 3efd
+; unreferenced
+ push hl
+ hlcoord 0, 12
+ ld b, 4
+ ld c, 18
+ call .fill_attr
+ pop hl
+ call PrintTextBoxText
+ ret
+; 3f0d
+
+.fill_attr
+ push hl
+ push bc
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ call Function3f35
+ pop bc
+ pop hl
+ call TextBoxBorder
+ ret
+; 3f20
+
+Function3f20:: ; 3f20
+ hlcoord 0, 0, AttrMap
+ ld b, 6
+ ld c, 20
+ call Function3f35
+ hlcoord 0, 0
+ ld b, 4
+ ld c, 18
+ call MobileHome_PlaceBox
+ ret
+; 3f35
+
+Function3f35:: ; 3f35
+ ld a, 6
+ ld de, SCREEN_WIDTH
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 3f47
+
+MobileHome_PlaceBox: ; 3f47
+ push bc
+ call .FillTop
+ pop bc
+.RowLoop
+ push bc
+ call .FillMiddle
+ pop bc
+ dec b
+ jr nz, .RowLoop
+ call .FillBottom
+ ret
+; 3f58
+
+.FillTop
+ ld a, $63
+ ld d, $62
+ ld e, $64
+ jr .FillRow
+
+.FillBottom
+ ld a, $68
+ ld d, $67
+ ld e, $69
+ jr .FillRow
+
+.FillMiddle
+ ld a, $7f
+ ld d, $65
+ ld e, $66
+
+.FillRow
+ push hl
+ ld [hl], d
+ inc hl
+.FillLoop
+ ld [hli], a
+ dec c
+ jr nz, .FillLoop
+ ld [hl], e
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ret
+; 3f7c
+
+Function3f7c:: ; 3f7c
+ call MenuBoxCoord2Tile
+ call GetMenuBoxDims
+ dec b
+ dec c
+ call Function3eea
+ ret
+; 3f88
+
+Function3f88:: ; 3f88
+ ld hl, wDecompressScratch
+ ld b, 0
+.row
+ push bc
+ ld c, 1 tiles / 2
+.col
+ ld a, [de]
+ inc de
+ cpl
+ ld [hl], 0
+ inc hl
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop bc
+ dec c
+ jr nz, .row
+ ret
+; 3f9f
+
+Function3f9f:: ; 3f9f
+ ld hl, wDecompressScratch
+.row
+ push bc
+ ld c, 1 tiles / 2
+.col
+ ld a, [de]
+ inc de
+ inc de
+ cpl
+ ld [hl], $0
+ inc hl
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop bc
+ dec c
+ jr nz, .row
+ ret
+; 3fb5
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -3859,7 +3859,7 @@
inc [hl]
ret
-Function1118de:: ; 1118de (44:58de)
+_Timer:: ; 1118de (44:58de)
ld a, [$c80b]
cp $4
call z, Function111b3c
--- a/main.asm
+++ b/main.asm
@@ -13177,6 +13177,7 @@
; game were meant to be here.
ret_e00ed: ; e00ed (38:40ed)
+; How many coins?
ret
; e00ee (38:40ee)
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -1,4 +1,5 @@
Function1700b0: ; 1700b0
+; special
call InitBattleTowerChallengeRAM
callba Function118121
ret
--- a/misc/mobile_41.asm
+++ b/misc/mobile_41.asm
@@ -1004,7 +1004,7 @@
Function10649b: ; 10649b
ld a, [TextBoxFrame]
and $7
- ld bc, $30
+ ld bc, 3 tiles
ld hl, Frames
call AddNTimes
ld d, h
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -142,7 +142,6 @@
Function118121: ; 118121
xor a
ld [wcd38], a
-
Function118125: ; 118125
call Function1183cb
ld a, $3
@@ -155,16 +154,15 @@
push af
ld a, $3
ld [rSVBK], a
-.asm_11813e
+.loop
call JoyTextDelay
call Function118473
ld a, [wcf66]
cp $f
- jr c, .asm_118151
+ jr c, .skip
ld a, [wcd34]
ld [wcf66], a
-
-.asm_118151
+.skip
call Function11854d
call Function11a8fa
callba Function115dd3
@@ -173,7 +171,7 @@
ld a, [wcf66]
ld hl, wcd33
cp [hl]
- jr nz, .asm_11813e
+ jr nz, .loop
xor a
ld [w3_d000], a
pop af
@@ -552,12 +550,12 @@
inc a
ld [wcd68], a
cp 99
- jr z, .asm_1184a0
+ jr z, .ninety_nine
xor a
ld [wcd67], a
ret
-.asm_1184a0
+.ninety_nine
xor a
ld [wcd65], a
ret
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -4631,7 +4631,9 @@
push af
ld a, $1
ld [rSVBK], a
+
call Function17f555
+
pop af
ld [rSVBK], a
call ExitAllMenus
@@ -4639,21 +4641,20 @@
; 17f555
Function17f555: ; 17f555
-.asm_17f555
+.loop
call JoyTextDelay
- call Function17f5ae
+ call .RunJumptable
ld a, [wc303]
bit 7, a
- jr nz, .asm_17f56a
+ jr nz, .quit
callba Function104000
- jr .asm_17f555
+ jr .loop
-.asm_17f56a
- call Function17f56e
+.quit
+ call .deinit
ret
-; 17f56e
-Function17f56e: ; 17f56e
+.deinit
ld a, [wc300]
cp $22
jr z, .asm_17f597
@@ -4695,11 +4696,11 @@
ret
; 17f5ae
-Function17f5ae: ; 17f5ae
- jumptable Table17f5bd, wc303
+.RunJumptable: ; 17f5ae
+ jumptable .Jumptable, wc303
; 17f5bd
-Table17f5bd: ; 17f5bd
+.Jumptable: ; 17f5bd
dw Function17f5c3
dw Function17ff23
dw Function17f5d2
@@ -4858,26 +4859,26 @@
Function17f6b7: ; 17f6b7
ld a, [wc300]
- call Function17f6cd
+ call .bcd_two_digits
inc hl
ld a, [wc302]
and $f
- call Function17f6d8
+ call .bcd_digit
ld a, [wc301]
- call Function17f6cd
+ call .bcd_two_digits
ret
; 17f6cd
-Function17f6cd: ; 17f6cd
+.bcd_two_digits: ; 17f6cd
ld c, a
and $f0
swap a
- call Function17f6d8
+ call .bcd_digit
ld a, c
and $f
-Function17f6d8: ; 17f6d8
- add $f6
+.bcd_digit: ; 17f6d8
+ add "0"
ld [hli], a
ret
; 17f6dc
--- a/wram.asm
+++ b/wram.asm
@@ -787,8 +787,8 @@
ds 1
trademon: MACRO
-\1Species:: ds 1 ; wc6d0 | wc702
-\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703
+\1Species:: ds 1 ; wc6d0 | wDummyGameNumberTriesRemaining
+\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wDummyGameLastMatches
\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e
\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
@@ -858,6 +858,22 @@
wCardFlipEnd::
ds wCardFlip - @
+; Dummy Game
+; c6d0
+wDummyGame::
+wDummyGameCards:: ds 9 * 5
+wDummyGameCardsEnd::
+wDummyGameLastCardPicked:: ds 1 ; c6fd
+wDummyGameCard1:: ds 1 ; c6fe
+wDummyGameCard2:: ds 1 ; c6ff
+wDummyGameCard1Location:: ds 1 ; c700
+wDummyGameCard2Location:: ds 1 ; c701
+wDummyGameNumberTriesRemaining:: ds 1 ; c702
+wDummyGameLastMatches:: ds 5 ; c703
+wDummyGameCounter:: ds 1 ; c708
+wDummyGameNumCardsMatched:: ds 1 ; c709
+wDummyGameEnd::
+ ds wDummyGame - @
; Unown Puzzle
wUnownPuzzle::
wPuzzlePieces::