summaryrefslogtreecommitdiff
path: root/engine/card_flip.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/card_flip.asm')
-rwxr-xr-xengine/card_flip.asm2224
1 files changed, 713 insertions, 1511 deletions
diff --git a/engine/card_flip.asm b/engine/card_flip.asm
index df9d895d1..9aeb94aec 100755
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1,3 +1,7 @@
+CARDFLIP_LIGHT_OFF EQU $ef
+CARDFLIP_LIGHT_ON EQU $f5
+CARDFLIP_DECK_SIZE EQU 4 * 6
+
_CardFlip: ; e00ee (38:40ee)
ld hl, Options
set 4, [hl]
@@ -10,28 +14,30 @@ _CardFlip: ; e00ee (38:40ee)
call DisableLCD
call LoadStandardFont
call LoadFontsExtra
- ld hl, LZ_e0d16
+
+ ld hl, CardFlipLZ01
ld de, VTiles2 tile $00
call Decompress
- ld hl, LZ_e0ea8
+ ld hl, CardFlipLZ02
ld de, VTiles2 tile $3e
call Decompress
- ld hl, LZ_e0cdb
+ ld hl, CardFlipLZ03
ld de, VTiles0 tile $00
call Decompress
- ld hl, GFX_e0cf6
+ ld hl, CardFlipOffButtonGFX
ld de, VTiles1 tile $6f
- ld bc, $10
+ ld bc, 1 tiles
call CopyBytes
- ld hl, GFX_e0d06
+ ld hl, CardFlipOnButtonGFX
ld de, VTiles1 tile $75
- ld bc, $10
+ ld bc, 1 tiles
call CopyBytes
- call Functione0521
- call Functione04c1
- call Functione0c37
+
+ call CardFlip_ShiftDigitsLeftTwoPixels
+ call CardFlip_InitTilemap
+ call CardFlip_InitAttrPals
call EnableLCD
- call Function3200
+ call WaitBGMap2
ld a, $e4
call DmgToCgbBGPals
ld de, $e4e4
@@ -40,8 +46,8 @@ _CardFlip: ; e00ee (38:40ee)
xor a
ld [wJumptableIndex], a
ld a, $2
- ld [wcf64], a
- ld [wcf65], a
+ ld [wCardFlipCursorY], a
+ ld [wCardFlipCursorX], a
ld de, MUSIC_GAME_CORNER
call PlayMusic
.MasterLoop
@@ -75,6 +81,7 @@ endr
; e01a0 (38:41a0)
.Jumptable: ; e01a0
+
dw .AskPlayWithThree
dw .DeductCoins
dw .ChooseACard
@@ -93,15 +100,15 @@ endr
.AskPlayWithThree: ; e01b5
ld hl, .PlayWithThreeCoinsText
- call Functione0489
+ call CardFlip_UpdateCoinBalanceDisplay
call YesNoBox
jr c, .SaidNo
- call Functione0366
+ call CardFlip_ShuffleDeck
call .Increment
ret
.SaidNo
- ld a, $7
+ ld a, 7
ld [wJumptableIndex], a
ret
; e01cd
@@ -124,8 +131,8 @@ endr
cp 3
jr nc, .deduct ; You have at least 3 coins.
ld hl, .NotEnoughCoinsText
- call Functione0489
- ld a, $7
+ call CardFlip_UpdateCoinBalanceDisplay
+ ld a, 7
ld [wJumptableIndex], a
ret
@@ -140,7 +147,7 @@ endr
call PlaySFX
xor a
ld [hBGMapMode], a
- call Functione049c
+ call CardFlip_PrintCoinBalance
ld a, $1
ld [hBGMapMode], a
call WaitSFX
@@ -159,29 +166,29 @@ endr
ld [hBGMapMode], a
hlcoord 0, 0
lb bc, 12, 9
- call Functione04e5
+ call CardFlip_FillGreenBox
hlcoord 9, 0
ld bc, SCREEN_WIDTH
- ld a, [wc6e8]
+ ld a, [wCardFlipNumCardsPlayed]
call AddNTimes
- ld [hl], $f5
+ ld [hl], CARDFLIP_LIGHT_ON
ld a, $1
ld [hBGMapMode], a
ld c, 20
call DelayFrames
hlcoord 2, 0
- call Functione03c1
+ call PlaceCardFaceDown
ld a, $1
ld [hBGMapMode], a
ld c, 20
call DelayFrames
hlcoord 2, 6
- call Functione03c1
+ call PlaceCardFaceDown
call WaitBGMap
ld hl, .ChooseACardText
- call Functione0489
+ call CardFlip_UpdateCoinBalanceDisplay
xor a
- ld [wcf66], a
+ ld [wCardFlipWhichCard], a
.loop
call JoyTextDelay
ld a, [hJoyLast]
@@ -189,10 +196,10 @@ endr
jr nz, .next
ld de, SFX_KINESIS
call PlaySFX
- call Functione0849
+ call PlaceOAMCardBorder
ld c, 4
call DelayFrames
- ld hl, wcf66
+ ld hl, wCardFlipWhichCard
ld a, [hl]
xor $1
ld [hl], a
@@ -204,7 +211,7 @@ endr
ld a, $3
.loop2
push af
- call Functione0849
+ call PlaceOAMCardBorder
ld c, 4
call DelayFrames
call ClearSprites
@@ -213,16 +220,16 @@ endr
pop af
dec a
jr nz, .loop2
- ld hl, wcf66
+ ld hl, wCardFlipWhichCard
ld a, [hl]
push af
xor $1
ld [hl], a
- call Functione03ac
+ call GetCoordsOfChosenCard
lb bc, 6, 5
- call Functione04e5
+ call CardFlip_FillGreenBox
pop af
- ld [wcf66], a
+ ld [wCardFlipWhichCard], a
call .Increment
ret
; e02b2
@@ -235,14 +242,14 @@ endr
.PlaceYourBet: ; e02b7
ld hl, .PlaceYourBetText
- call Functione0489
+ call CardFlip_UpdateCoinBalanceDisplay
.betloop
call JoyTextDelay
ld a, [hJoyLast]
and A_BUTTON
jr nz, .betdone
- call Functione089c
- call Functione0960
+ call ChooseCard_HandleJoypad
+ call CardFlip_UpdateCursorOAM
call DelayFrame
jr .betloop
@@ -260,36 +267,36 @@ endr
.CheckTheCard: ; e02da
xor a
ld [hVBlankCounter], a
- call Functione0960
+ call CardFlip_UpdateCursorOAM
call WaitSFX
ld de, SFX_CHOOSE_A_CARD
call PlaySFX
call WaitSFX
- ld a, [wc6e8]
+ ld a, [wCardFlipNumCardsPlayed]
ld e, a
ld d, 0
- ld hl, wc6d0
+ ld hl, wDeck
rept 2
add hl, de
endr
- ld a, [wcf66]
+ ld a, [wCardFlipWhichCard]
ld e, a
add hl, de
ld a, [hl]
- ld [CurEnemyMoveNum], a
+ ld [wCardFlipFaceUpCard], a
ld e, a
- ld hl, wc6ea
+ ld hl, wDiscardPile
add hl, de
- ld [hl], $1
- call Functione03ac
- call Functione03ec
- call Function3200
+ ld [hl], TRUE
+ call GetCoordsOfChosenCard
+ call CardFlip_DisplayCardFaceUp
+ call WaitBGMap2
call .Increment
ret
; e0314
.TabulateTheResult: ; e0314
- call Functione0637
+ call CardFlip_CheckWinCondition
call WaitPressAorB_BlinkCursor
call .Increment
ret
@@ -298,31 +305,31 @@ endr
.PlayAgain: ; e031e
call ClearSprites
ld hl, .PlayAgainText
- call Functione0489
+ call CardFlip_UpdateCoinBalanceDisplay
call YesNoBox
jr nc, .Continue
call .Increment
ret
.Continue
- ld a, [wc6e8]
+ ld a, [wCardFlipNumCardsPlayed]
inc a
- ld [wc6e8], a
- cp $c
+ ld [wCardFlipNumCardsPlayed], a
+ cp 12
jr c, .KeepTheCurrentDeck
- call Functione04c1
+ call CardFlip_InitTilemap
ld a, $1
ld [hBGMapMode], a
- call Functione0366
+ call CardFlip_ShuffleDeck
ld hl, .CardsShuffledText
call PrintText
jr .LoopAround
.KeepTheCurrentDeck
- call Functione0534
+ call CardFlip_BlankDiscardedCardSlot
.LoopAround
- ld a, $1
+ ld a, 1
ld [wJumptableIndex], a
ret
; e0356
@@ -345,73 +352,73 @@ endr
ret
; e0366
-Functione0366: ; e0366
- ld hl, wc6d0
- ld bc, $18
+CardFlip_ShuffleDeck: ; e0366
+ ld hl, wDeck
+ ld bc, CARDFLIP_DECK_SIZE
xor a
call ByteFill
- ld de, wc6d0
- ld c, $17
-.asm_e0375
+ ld de, wDeck
+ ld c, CARDFLIP_DECK_SIZE - 1
+.loop
call Random
and $1f
- cp $18
- jr nc, .asm_e0375
+ cp CARDFLIP_DECK_SIZE
+ jr nc, .loop
ld l, a
ld h, $0
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e0375
+ jr nz, .loop
ld [hl], c
dec c
- jr nz, .asm_e0375
+ jr nz, .loop
xor a
- ld [wc6e8], a
- ld hl, wc6ea
- ld bc, $18
+ ld [wCardFlipNumCardsPlayed], a
+ ld hl, wDiscardPile
+ ld bc, CARDFLIP_DECK_SIZE
call ByteFill
ret
; e0398
-Functione0398: ; e0398
+CollapseCursorPosition: ; e0398
ld hl, 0
ld bc, 6
- ld a, [wcf64]
+ ld a, [wCardFlipCursorY]
call AddNTimes
ld b, $0
- ld a, [wcf65]
+ ld a, [wCardFlipCursorX]
ld c, a
add hl, bc
ret
; e03ac
-Functione03ac: ; e03ac
- ld a, [wcf66]
+GetCoordsOfChosenCard: ; e03ac
+ ld a, [wCardFlipWhichCard]
and a
- jr nz, .asm_e03ba
+ jr nz, .BottomCard
hlcoord 2, 0
- ld bc, $1018
- jr .asm_e03c0
+ bcpixel 2, 3
+ jr .done
-.asm_e03ba
+.BottomCard
hlcoord 2, 6
- ld bc, $4018
+ bcpixel 8, 3
-.asm_e03c0
+.done
ret
; e03c1
-Functione03c1: ; e03c1
+PlaceCardFaceDown: ; e03c1
xor a
ld [hBGMapMode], a
- ld de, Unknown_e03ce
+ ld de, .FaceDownCardTilemap
lb bc, 6, 5
- call Functione04f7
+ call CardFlip_CopyToBox
ret
; e03ce
-Unknown_e03ce: ; e03ce
+.FaceDownCardTilemap: ; e03ce
db $08, $09, $09, $09, $0a
db $0b, $28, $2b, $28, $0c
db $0b, $2c, $2d, $2e, $0c
@@ -420,60 +427,71 @@ Unknown_e03ce: ; e03ce
db $0d, $0e, $0e, $0e, $0f
; e03ec
-Functione03ec: ; e03ec
+CardFlip_DisplayCardFaceUp: ; e03ec
xor a
ld [hBGMapMode], a
push hl
push hl
- ld de, Unknown_e043b
+ ; Flip the card face up.
+ ld de, .FaceUpCardTilemap
lb bc, 6, 5
- call Functione04f7
- ld a, [CurEnemyMoveNum]
+ call CardFlip_CopyToBox
+
+ ; Get the level and species of the upturned card.
+ ld a, [wCardFlipFaceUpCard]
ld e, a
ld d, 0
- ld hl, Unknown_e0459
+ ld hl, .Deck
rept 2
add hl, de
endr
ld a, [hli]
ld e, a
ld d, [hl]
+
+ ; Place the level.
pop hl
- ld bc, $17
+ ld bc, 3 + SCREEN_WIDTH
add hl, bc
ld [hl], e
+
+ ; Place the Pokepic.
ld bc, SCREEN_HEIGHT
add hl, bc
ld a, d
ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e0418
+ ld b, 3
+.row
push hl
- ld c, $3
-.asm_e041b
+ ld c, 3
+.col
ld [hli], a
inc a
dec c
- jr nz, .asm_e041b
+ jr nz, .col
pop hl
add hl, de
dec b
- jr nz, .asm_e0418
+ jr nz, .row
pop hl
+
+ ; Pointless CGB check
ld a, [hCGB]
and a
ret z
+
+ ; Set the attributes
ld de, AttrMap - TileMap
add hl, de
- ld a, [CurEnemyMoveNum]
+ ld a, [wCardFlipFaceUpCard]
and 3
inc a
lb bc, 6, 5
- call Functione04e7
+ call CardFlip_FillBox
ret
; e043b
-Unknown_e043b: ; e043b
+.FaceUpCardTilemap: ; e043b
db $18, $19, $19, $19, $1a
db $1b, $35, $7f, $7f, $1c
db $0b, $28, $28, $28, $0c
@@ -482,34 +500,35 @@ Unknown_e043b: ; e043b
db $1d, $1e, $1e, $1e, $1f
; e0459
-Unknown_e0459: ; e0459
- db $f7,$4e, $f7,$57, $f7,$69, $f7,$60
- db $f8,$4e, $f8,$57, $f8,$69, $f8,$60
- db $f9,$4e, $f9,$57, $f9,$69, $f9,$60
- db $fa,$4e, $fa,$57, $fa,$69, $fa,$60
- db $fb,$4e, $fb,$57, $fb,$69, $fb,$60
- db $fc,$4e, $fc,$57, $fc,$69, $fc,$60
+.Deck: ; e0459
+ ; level, pic anchor (3x3)
+ db "1",$4e, "1",$57, "1",$69, "1",$60
+ db "2",$4e, "2",$57, "2",$69, "2",$60
+ db "3",$4e, "3",$57, "3",$69, "3",$60
+ db "4",$4e, "4",$57, "4",$69, "4",$60
+ db "5",$4e, "5",$57, "5",$69, "5",$60
+ db "6",$4e, "6",$57, "6",$69, "6",$60
; e0489
-Functione0489: ; e0489
+CardFlip_UpdateCoinBalanceDisplay: ; e0489
push hl
hlcoord 0, 12
- ld b, $4
- ld c, $12
+ ld b, 4
+ ld c, SCREEN_WIDTH - 2
call TextBox
pop hl
call PrintTextBoxText
- call Functione049c
+ call CardFlip_PrintCoinBalance
ret
; e049c
-Functione049c: ; e049c
+CardFlip_PrintCoinBalance: ; e049c
hlcoord 9, 15
- ld b, $1
- ld c, $9
+ ld b, 1
+ ld c, 9
call TextBox
hlcoord 10, 16
- ld de, String_e04bc
+ ld de, .CoinStr
call PlaceString
hlcoord 15, 16
ld de, Coins
@@ -518,11 +537,11 @@ Functione049c: ; e049c
ret
; e04bc
-String_e04bc:
+.CoinStr:
db "COIN@"
; e04c1
-Functione04c1: ; e04c1 (38:44c1)
+CardFlip_InitTilemap: ; e04c1 (38:44c1)
xor a
ld [hBGMapMode], a
hlcoord 0, 0
@@ -530,55 +549,57 @@ Functione04c1: ; e04c1 (38:44c1)
ld a, $29
call ByteFill
hlcoord 9, 0
- ld de, Unknown_e110c
+ ld de, CardFlipTilemap
lb bc, 12, 11
- call Functione04f7
+ call CardFlip_CopyToBox
hlcoord 0, 12
lb bc, 4, 18
call TextBox
ret
; e04e5 (38:44e5)
-Functione04e5: ; e04e5
+CardFlip_FillGreenBox: ; e04e5
ld a, $29
-Functione04e7: ; e04e7 (38:44e7)
+CardFlip_FillBox: ; e04e7 (38:44e7)
+.row
push bc
push hl
-.asm_e04e9
+.col
ld [hli], a
dec c
- jr nz, .asm_e04e9
+ jr nz, .col
pop hl
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, Functione04e7
+ jr nz, .row
ret
-Functione04f7: ; e04f7 (38:44f7)
+CardFlip_CopyToBox: ; e04f7 (38:44f7)
+.row
push bc
push hl
-.asm_e04f9
+.col
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_e04f9
+ jr nz, .col
pop hl
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, Functione04f7
+ jr nz, .row
ret
; e0509 (38:4509)
-Functione0509: ; e0509
+CardFlip_CopyOAM: ; e0509
ld de, Sprites
ld a, [hli]
-.asm_e050d
+.loop
push af
ld a, [hli]
add b
@@ -596,38 +617,40 @@ Functione0509: ; e0509
inc de
pop af
dec a
- jr nz, .asm_e050d
+ jr nz, .loop
ret
; e0521
-Functione0521: ; e0521 (38:4521)
- ld de, VTiles1 tile $76
- ld hl, $8f62
- ld bc, $9e
+CardFlip_ShiftDigitsLeftTwoPixels: ; e0521 (38:4521)
+ ld de, VTiles1 tile ("0" & $7f)
+ ld hl, VTiles1 tile ("0" & $7f) + 2
+ ld bc, 10 tiles - 2
call CopyBytes
- ld hl, $8ffe
+ ld hl, VTiles1 tile $7f + 1 tiles - 2
xor a
ld [hli], a
ld [hl], a
ret
; e0534 (38:4534)
-Functione0534: ; e0534
+CardFlip_BlankDiscardedCardSlot: ; e0534
xor a
ld [hBGMapMode], a
- ld a, [CurEnemyMoveNum]
+ ld a, [wCardFlipFaceUpCard]
ld e, a
ld d, 0
- and 3
+
+ and 3 ; get mon
ld c, a
ld b, 0
+
ld a, e
- and $1c
+ and $1c ; get level
srl a
- add Jumptable_e0553 % $100
+ add .Jumptable % $100
ld l, a
ld a, 0
- adc Jumptable_e0553 / $100
+ adc .Jumptable / $100
ld h, a
ld a, [hli]
ld h, [hl]
@@ -635,21 +658,22 @@ Functione0534: ; e0534
jp [hl]
; e0553
-Jumptable_e0553: ; e0553
- dw Functione055f
- dw Functione0583
- dw Functione05a7
- dw Functione05cb
- dw Functione05ef
- dw Functione0613
+.Jumptable: ; e0553
+
+ dw .Level1
+ dw .Level2
+ dw .Level3
+ dw .Level4
+ dw .Level5
+ dw .Level6
; e055f
-Functione055f: ; e055f
- ld hl, wc6e6 + 8
+.Level1: ; e055f
+ ld hl, wDiscardPile + 4
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e0575
+ jr nz, .discarded2
hlcoord 13, 3
rept 2
add hl, bc
@@ -660,7 +684,7 @@ endr
ld [hl], $37
ret
-.asm_e0575
+.discarded2
hlcoord 13, 3
rept 2
add hl, bc
@@ -672,12 +696,12 @@ endr
ret
; e0583
-Functione0583: ; e0583
- ld hl, wc6e6
+.Level2: ; e0583
+ ld hl, wDiscardPile - 4
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e0599
+ jr nz, .discarded1
hlcoord 13, 4
rept 2
add hl, bc
@@ -688,7 +712,7 @@ endr
ld [hl], $3a
ret
-.asm_e0599
+.discarded1
hlcoord 13, 4
rept 2
add hl, bc
@@ -700,12 +724,12 @@ endr
ret
; e05a7
-Functione05a7: ; e05a7
- ld hl, wc6e6 + 8
+.Level3: ; e05a7
+ ld hl, wDiscardPile + 4
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e05bd
+ jr nz, .discarded4
hlcoord 13, 6
rept 2
add hl, bc
@@ -716,7 +740,7 @@ endr
ld [hl], $38
ret
-.asm_e05bd
+.discarded4
hlcoord 13, 6
rept 2
add hl, bc
@@ -728,12 +752,12 @@ endr
ret
; e05cb
-Functione05cb: ; e05cb
- ld hl, wc6e6
+.Level4: ; e05cb
+ ld hl, wDiscardPile - 4
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e05e1
+ jr nz, .discarded3
hlcoord 13, 7
rept 2
add hl, bc
@@ -744,7 +768,7 @@ endr
ld [hl], $3a
ret
-.asm_e05e1
+.discarded3
hlcoord 13, 7
rept 2
add hl, bc
@@ -756,12 +780,12 @@ endr
ret
; e05ef
-Functione05ef: ; e05ef
- ld hl, wc6e6 + 8
+.Level5: ; e05ef
+ ld hl, wDiscardPile + 4
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e0605
+ jr nz, .discarded6
hlcoord 13, 9
rept 2
add hl, bc
@@ -772,7 +796,7 @@ endr
ld [hl], $39
ret
-.asm_e0605
+.discarded6
hlcoord 13, 9
rept 2
add hl, bc
@@ -784,12 +808,12 @@ endr
ret
; e0613
-Functione0613: ; e0613
- ld hl, wc6e6
+.Level6: ; e0613
+ ld hl, wDiscardPile - 4
add hl, de
ld a, [hl]
and a
- jr nz, .asm_e0629
+ jr nz, .discarded5
hlcoord 13, 10
rept 2
add hl, bc
@@ -800,7 +824,7 @@ endr
ld [hl], $3a
ret
-.asm_e0629
+.discarded5
hlcoord 13, 10
rept 2
add hl, bc
@@ -812,10 +836,10 @@ endr
ret
; e0637
-Functione0637: ; e0637
- call Functione0398
+CardFlip_CheckWinCondition: ; e0637
+ call CollapseCursorPosition
add hl, hl
- ld de, Jumptable_e0643
+ ld de, .Jumptable
add hl, de
ld a, [hli]
ld h, [hl]
@@ -823,335 +847,343 @@ Functione0637: ; e0637
jp [hl]
; e0643
-Jumptable_e0643: ; e0643
- dw Functione06a3
- dw Functione06a3
- dw Functione06a6
- dw Functione06a6
- dw Functione06b0
- dw Functione06b0
- dw Functione06a3
- dw Functione06a3
- dw Functione06ec
- dw Functione06f6
- dw Functione0702
- dw Functione070e
- dw Functione06c2
- dw Functione0722
- dw Functione0770
- dw Functione0774
- dw Functione0778
- dw Functione077c
- dw Functione06c2
- dw Functione072c
- dw Functione0780
- dw Functione0784
- dw Functione0788
- dw Functione078c
- dw Functione06cc
- dw Functione0738
- dw Functione0790
- dw Functione0794
- dw Functione0798
- dw Functione079c
- dw Functione06cc
- dw Functione0744
- dw Functione07a0
- dw Functione07a4
- dw Functione07a8
- dw Functione07ac
- dw Functione06d8
- dw Functione0750
- dw Functione07b0
- dw Functione07b4
- dw Functione07b8
- dw Functione07bc
- dw Functione06d8
- dw Functione075c
- dw Functione07c0
- dw Functione07c4
- dw Functione07c8
- dw Functione07cc
+.Jumptable: ; e0643
+
+ dw .Impossible
+ dw .Impossible
+ dw .PikaJiggly
+ dw .PikaJiggly
+ dw .PoliOddish
+ dw .PoliOddish
+
+ dw .Impossible
+ dw .Impossible
+ dw .Pikachu
+ dw .Jigglypuff
+ dw .Poliwag
+ dw .Oddish
+
+ dw .OneTwo
+ dw .One
+ dw .PikaOne
+ dw .JigglyOne
+ dw .PoliOne
+ dw .OddOne
+
+ dw .OneTwo
+ dw .Two
+ dw .PikaTwo
+ dw .JigglyTwo
+ dw .PoliTwo
+ dw .OddTwo
+
+ dw .ThreeFour
+ dw .Three
+ dw .PikaThree
+ dw .JigglyThree
+ dw .PoliThree
+ dw .OddThree
+
+ dw .ThreeFour
+ dw .Four
+ dw .PikaFour
+ dw .JigglyFour
+ dw .PoliFour
+ dw .OddFour
+
+ dw .FiveSix
+ dw .Five
+ dw .PikaFive
+ dw .JigglyFive
+ dw .PoliFive
+ dw .OddFive
+
+ dw .FiveSix
+ dw .Six
+ dw .PikaSix
+ dw .JigglySix
+ dw .PoliSix
+ dw .OddSix
; e06a3
-Functione06a3: ; e06a3
- jp Functione07db
+.Impossible: ; e06a3
+ jp .Lose
; e06a6
-Functione06a6: ; e06a6
- ld a, [CurEnemyMoveNum]
+.PikaJiggly: ; e06a6
+ ld a, [wCardFlipFaceUpCard]
and $2
- jp nz, Functione07db
- jr Functione06ba
+ jp nz, .Lose
+ jr .WinSix
-Functione06b0: ; e06b0
- ld a, [CurEnemyMoveNum]
+.PoliOddish: ; e06b0
+ ld a, [wCardFlipFaceUpCard]
and $2
- jr nz, Functione06ba
- jp Functione07db
+ jr nz, .WinSix
+ jp .Lose
-Functione06ba: ; e06ba
+.WinSix: ; e06ba
ld c, $6
ld de, SFX_2ND_PLACE
- jp Functione07eb
+ jp .Payout
; e06c2
-Functione06c2: ; e06c2
- ld a, [CurEnemyMoveNum]
+.OneTwo: ; e06c2
+ ld a, [wCardFlipFaceUpCard]
and $18
- jr z, Functione06e4
- jp Functione07db
+ jr z, .WinNine
+ jp .Lose
-Functione06cc: ; e06cc
- ld a, [CurEnemyMoveNum]
+.ThreeFour: ; e06cc
+ ld a, [wCardFlipFaceUpCard]
and $18
cp $8
- jr z, Functione06e4
- jp Functione07db
+ jr z, .WinNine
+ jp .Lose
-Functione06d8: ; e06d8
- ld a, [CurEnemyMoveNum]
+.FiveSix: ; e06d8
+ ld a, [wCardFlipFaceUpCard]
and $18
cp $10
- jr z, Functione06e4
- jp Functione07db
+ jr z, .WinNine
+ jp .Lose
-Functione06e4: ; e06e4
+.WinNine: ; e06e4
ld c, $9
ld de, SFX_2ND_PLACE
- jp Functione07eb
+ jp .Payout
; e06ec
-Functione06ec: ; e06ec
- ld a, [CurEnemyMoveNum]
+.Pikachu: ; e06ec
+ ld a, [wCardFlipFaceUpCard]
and $3
- jr z, Functione071a
- jp Functione07db
+ jr z, .WinTwelve
+ jp .Lose
-Functione06f6: ; e06f6
- ld a, [CurEnemyMoveNum]
+.Jigglypuff: ; e06f6
+ ld a, [wCardFlipFaceUpCard]
and $3
cp $1
- jr z, Functione071a
- jp Functione07db
+ jr z, .WinTwelve
+ jp .Lose
-Functione0702: ; e0702
- ld a, [CurEnemyMoveNum]
+.Poliwag: ; e0702
+ ld a, [wCardFlipFaceUpCard]
and $3
cp $2
- jr z, Functione071a
- jp Functione07db
+ jr z, .WinTwelve
+ jp .Lose
-Functione070e: ; e070e
- ld a, [CurEnemyMoveNum]
+.Oddish: ; e070e
+ ld a, [wCardFlipFaceUpCard]
and $3
cp $3
- jr z, Functione071a
- jp Functione07db
+ jr z, .WinTwelve
+ jp .Lose
-Functione071a: ; e071a
+.WinTwelve: ; e071a
ld c, $c
ld de, SFX_2ND_PLACE
- jp Functione07eb
+ jp .Payout
; e0722
-Functione0722: ; e0722
- ld a, [CurEnemyMoveNum]
+.One: ; e0722
+ ld a, [wCardFlipFaceUpCard]
and $1c
- jr z, Functione0768
- jp Functione07db
+ jr z, .WinEighteen
+ jp .Lose
-Functione072c: ; e072c
- ld a, [CurEnemyMoveNum]
+.Two: ; e072c
+ ld a, [wCardFlipFaceUpCard]
and $1c
cp $4
- jr z, Functione0768
- jp Functione07db
+ jr z, .WinEighteen
+ jp .Lose
-Functione0738: ; e0738
- ld a, [CurEnemyMoveNum]
+.Three: ; e0738
+ ld a, [wCardFlipFaceUpCard]
and $1c
cp $8
- jr z, Functione0768
- jp Functione07db
+ jr z, .WinEighteen
+ jp .Lose
-Functione0744: ; e0744
- ld a, [CurEnemyMoveNum]
+.Four: ; e0744
+ ld a, [wCardFlipFaceUpCard]
and $1c
cp $c
- jr z, Functione0768
- jp Functione07db
+ jr z, .WinEighteen
+ jp .Lose
-Functione0750: ; e0750
- ld a, [CurEnemyMoveNum]
+.Five: ; e0750
+ ld a, [wCardFlipFaceUpCard]
and $1c
cp $10
- jr z, Functione0768
- jp Functione07db
+ jr z, .WinEighteen
+ jp .Lose
-Functione075c: ; e075c
- ld a, [CurEnemyMoveNum]
+.Six: ; e075c
+ ld a, [wCardFlipFaceUpCard]
and $1c
cp $14
- jr z, Functione0768
- jp Functione07db
+ jr z, .WinEighteen
+ jp .Lose
-Functione0768: ; e0768
+.WinEighteen: ; e0768
ld c, $12
ld de, SFX_2ND_PLACE
- jp Functione07eb
+ jp .Payout
; e0770
-Functione0770: ; e0770
+.PikaOne: ; e0770
ld e, $0
- jr Functione07ce
+ jr .CheckWin72
-Functione0774: ; e0774
+.JigglyOne: ; e0774
ld e, $1
- jr Functione07ce
+ jr .CheckWin72
-Functione0778: ; e0778
+.PoliOne: ; e0778
ld e, $2
- jr Functione07ce
+ jr .CheckWin72
-Functione077c: ; e077c
+.OddOne: ; e077c
ld e, $3
- jr Functione07ce
+ jr .CheckWin72
-Functione0780: ; e0780
+.PikaTwo: ; e0780
ld e, $4
- jr Functione07ce
+ jr .CheckWin72
-Functione0784: ; e0784
+.JigglyTwo: ; e0784
ld e, $5
- jr Functione07ce
+ jr .CheckWin72
-Functione0788: ; e0788
+.PoliTwo: ; e0788
ld e, $6
- jr Functione07ce
+ jr .CheckWin72
-Functione078c: ; e078c
+.OddTwo: ; e078c
ld e, $7
- jr Functione07ce
+ jr .CheckWin72
-Functione0790: ; e0790
+.PikaThree: ; e0790
ld e, $8
- jr Functione07ce
+ jr .CheckWin72
-Functione0794: ; e0794
+.JigglyThree: ; e0794
ld e, $9
- jr Functione07ce
+ jr .CheckWin72
-Functione0798: ; e0798
+.PoliThree: ; e0798
ld e, $a
- jr Functione07ce
+ jr .CheckWin72
-Functione079c: ; e079c
+.OddThree: ; e079c
ld e, $b
- jr Functione07ce
+ jr .CheckWin72
-Functione07a0: ; e07a0
+.PikaFour: ; e07a0
ld e, $c
- jr Functione07ce
+ jr .CheckWin72
-Functione07a4: ; e07a4
+.JigglyFour: ; e07a4
ld e, $d
- jr Functione07ce
+ jr .CheckWin72
-Functione07a8: ; e07a8
+.PoliFour: ; e07a8
ld e, $e
- jr Functione07ce
+ jr .CheckWin72
-Functione07ac: ; e07ac
+.OddFour: ; e07ac
ld e, $f
- jr Functione07ce
+ jr .CheckWin72
-Functione07b0: ; e07b0
+.PikaFive: ; e07b0
ld e, $10
- jr Functione07ce
+ jr .CheckWin72
-Functione07b4: ; e07b4
+.JigglyFive: ; e07b4
ld e, $11
- jr Functione07ce
+ jr .CheckWin72
-Functione07b8: ; e07b8
+.PoliFive: ; e07b8
ld e, $12
- jr Functione07ce
+ jr .CheckWin72
-Functione07bc: ; e07bc
+.OddFive: ; e07bc
ld e, $13
- jr Functione07ce
+ jr .CheckWin72
-Functione07c0: ; e07c0
+.PikaSix: ; e07c0
ld e, $14
- jr Functione07ce
+ jr .CheckWin72
-Functione07c4: ; e07c4
+.JigglySix: ; e07c4
ld e, $15
- jr Functione07ce
+ jr .CheckWin72
-Functione07c8: ; e07c8
+.PoliSix: ; e07c8
ld e, $16
- jr Functione07ce
+ jr .CheckWin72
-Functione07cc: ; e07cc
+.OddSix: ; e07cc
ld e, $17
-Functione07ce: ; e07ce
- ld a, [CurEnemyMoveNum]
+.CheckWin72: ; e07ce
+ ld a, [wCardFlipFaceUpCard]
cp e
- jr nz, Functione07db
- ld c, $48
+ jr nz, .Lose
+ ld c, 72
ld de, SFX_2ND_PLACE
- jr Functione07eb
+ jr .Payout
-Functione07db: ; e07db
+.Lose: ; e07db
ld de, SFX_WRONG
call PlaySFX
- ld hl, UnknownText_0xe0816
- call Functione0489
+ ld hl, .Text_Darn
+ call CardFlip_UpdateCoinBalanceDisplay
call WaitSFX
ret
-Functione07eb: ; e07eb
+.Payout: ; e07eb
push bc
push de
- ld hl, UnknownText_0xe0811
- call Functione0489
+ ld hl, .Text_Yeah
+ call CardFlip_UpdateCoinBalanceDisplay
pop de
call PlaySFX
call WaitSFX
pop bc
-.asm_e07fb
+.loop
push bc
- call Functione0833
- jr c, .asm_e0804
- call Functione081b
+ call .IsCoinCaseFull
+ jr c, .full
+ call .AddCoinPlaySFX
-.asm_e0804
- call Functione049c
+.full
+ call CardFlip_PrintCoinBalance
ld c, 2
call DelayFrames
pop bc
dec c
- jr nz, .asm_e07fb
+ jr nz, .loop
ret
; e0811
-UnknownText_0xe0811: ; 0xe0811
+.Text_Yeah: ; 0xe0811
; Yeah!
text_jump UnknownText_0x1c5813
db "@"
; 0xe0816
-UnknownText_0xe0816: ; 0xe0816
+.Text_Darn: ; 0xe0816
; Darn…
text_jump UnknownText_0x1c581a
db "@"
; 0xe081b
-Functione081b: ; e081b
+.AddCoinPlaySFX: ; e081b
ld a, [Coins]
ld h, a
ld a, [Coins + 1]
@@ -1166,124 +1198,129 @@ Functione081b: ; e081b
ret
; e0833
-Functione0833: ; e0833
+.IsCoinCaseFull: ; e0833
ld a, [Coins]
cp 9999 / $100
- jr c, .asm_e0847
- jr z, .asm_e083e
- jr .asm_e0845
+ jr c, .less
+ jr z, .check_low
+ jr .more
-.asm_e083e
+.check_low
ld a, [Coins + 1]
cp 9999 % $100
- jr c, .asm_e0847
+ jr c, .less
-.asm_e0845
+.more
scf
ret
-.asm_e0847
+.less
and a
ret
; e0849
-Functione0849: ; e0849
- call Functione03ac
- ld hl, Unknown_e0853
- call Functione0509
+PlaceOAMCardBorder: ; e0849
+ call GetCoordsOfChosenCard
+ ld hl, .SpriteData
+ call CardFlip_CopyOAM
ret
; e0853
-Unknown_e0853: ; e0853
+.SpriteData: ; e0853
db 18
- db $00, $00, $04, $00
- db $00, $08, $06, $00
- db $00, $10, $06, $00
- db $00, $18, $06, $00
- db $00, $20, $04, $20
- db $08, $00, $05, $00
- db $08, $20, $05, $20
- db $10, $00, $05, $00
- db $10, $20, $05, $20
- db $18, $00, $05, $00
- db $18, $20, $05, $20
- db $20, $00, $05, $00
- db $20, $20, $05, $20
- db $28, $00, $04, $40
- db $28, $08, $06, $40
- db $28, $10, $06, $40
- db $28, $18, $06, $40
- db $28, $20, $04, $60
+ dsprite 0, 0, 0, 0, $04, $00
+ dsprite 0, 0, 1, 0, $06, $00
+ dsprite 0, 0, 2, 0, $06, $00
+ dsprite 0, 0, 3, 0, $06, $00
+ dsprite 0, 0, 4, 0, $04, $20
+
+ dsprite 1, 0, 0, 0, $05, $00
+ dsprite 1, 0, 4, 0, $05, $20
+
+ dsprite 2, 0, 0, 0, $05, $00
+ dsprite 2, 0, 4, 0, $05, $20
+
+ dsprite 3, 0, 0, 0, $05, $00
+ dsprite 3, 0, 4, 0, $05, $20
+
+ dsprite 4, 0, 0, 0, $05, $00
+ dsprite 4, 0, 4, 0, $05, $20
+
+ dsprite 5, 0, 0, 0, $04, $40
+ dsprite 5, 0, 1, 0, $06, $40
+ dsprite 5, 0, 2, 0, $06, $40
+ dsprite 5, 0, 3, 0, $06, $40
+ dsprite 5, 0, 4, 0, $04, $60
; e089c
-Functione089c: ; e089c
+ChooseCard_HandleJoypad: ; e089c
ld hl, hJoyLast
ld a, [hl]
and D_LEFT
- jp nz, Functione08b8
+ jp nz, .d_left
ld a, [hl]
and D_RIGHT
- jp nz, Functione08ef
+ jp nz, .d_right
ld a, [hl]
and D_UP
- jp nz, Functione090a
+ jp nz, .d_up
ld a, [hl]
and D_DOWN
- jp nz, Functione093d
+ jp nz, .d_down
ret
; e08b8
-Functione08b8: ; e08b8
- ld hl, wcf65
- ld a, [wcf64]
+.d_left: ; e08b8
+ ld hl, wCardFlipCursorX
+ ld a, [wCardFlipCursorY]
and a
- jr z, .asm_e08d5
+ jr z, .mon_pair_left
cp $1
- jr z, .asm_e08cc
+ jr z, .mon_group_left
ld a, [hl]
and a
ret z
dec [hl]
- jp Functione0959
+ jp .play_sound
-.asm_e08cc
+.mon_group_left
ld a, [hl]
cp $3
- jr c, .asm_e08e2
+ jr c, .left_to_number_gp
dec [hl]
- jp Functione0959
+ jp .play_sound
-.asm_e08d5
+.mon_pair_left
ld a, [hl]
and $e
ld [hl], a
cp $3
- jr c, .asm_e08e2
+ jr c, .left_to_number_gp
rept 2
dec [hl]
endr
- jp Functione0959
+ jp .play_sound
-.asm_e08e2
+.left_to_number_gp
ld a, $2
- ld [wcf64], a
+ ld [wCardFlipCursorY], a
ld a, $1
- ld [wcf65], a
- jp Functione0959
+ ld [wCardFlipCursorX], a
+ jp .play_sound
; e08ef
-Functione08ef: ; e08ef
- ld hl, wcf65
- ld a, [wcf64]
+.d_right: ; e08ef
+ ld hl, wCardFlipCursorX
+ ld a, [wCardFlipCursorY]
and a
- jr z, .asm_e08ff
+ jr z, .mon_pair_right
ld a, [hl]
cp $5
ret nc
inc [hl]
- jr Functione0959
+ jr .play_sound
-.asm_e08ff
+.mon_pair_right
ld a, [hl]
and $e
ld [hl], a
@@ -1292,59 +1329,59 @@ Functione08ef: ; e08ef
rept 2
inc [hl]
endr
- jr Functione0959
+ jr .play_sound
-Functione090a: ; e090a
- ld hl, wcf64
- ld a, [wcf65]
+.d_up: ; e090a
+ ld hl, wCardFlipCursorY
+ ld a, [wCardFlipCursorX]
and a
- jr z, .asm_e0925
+ jr z, .num_pair_up
cp $1
- jr z, .asm_e091d
+ jr z, .num_gp_up
ld a, [hl]
and a
ret z
dec [hl]
- jr Functione0959
+ jr .play_sound
-.asm_e091d
+.num_gp_up
ld a, [hl]
cp $3
- jr c, .asm_e0931
+ jr c, .up_to_mon_group
dec [hl]
- jr Functione0959
+ jr .play_sound
-.asm_e0925
+.num_pair_up
ld a, [hl]
and $e
ld [hl], a
cp $3
- jr c, .asm_e0931
+ jr c, .up_to_mon_group
rept 2
dec [hl]
endr
- jr Functione0959
+ jr .play_sound
-.asm_e0931
+.up_to_mon_group
ld a, $1
- ld [wcf64], a
+ ld [wCardFlipCursorY], a
ld a, $2
- ld [wcf65], a
- jr Functione0959
+ ld [wCardFlipCursorX], a
+ jr .play_sound
-Functione093d: ; e093d
- ld hl, wcf64
- ld a, [wcf65]
+.d_down: ; e093d
+ ld hl, wCardFlipCursorY
+ ld a, [wCardFlipCursorX]
and a
- jr z, .asm_e0950
- ld hl, wcf64
+ jr z, .num_pair_down
+ ld hl, wCardFlipCursorY
ld a, [hl]
cp $7
ret nc
inc [hl]
- jr Functione0959
+ jr .play_sound
-.asm_e0950
+.num_pair_down
ld a, [hl]
and $e
ld [hl], a
@@ -1354,27 +1391,27 @@ rept 2
inc [hl]
endr
-Functione0959: ; e0959
+.play_sound: ; e0959
ld de, SFX_POKEBALLS_PLACED_ON_TABLE
call PlaySFX
ret
; e0960
-Functione0960: ; e0960
+CardFlip_UpdateCursorOAM: ; e0960
call ClearSprites
ld a, [hCGB]
and a
- jr nz, .asm_e096d
+ jr nz, .skip
ld a, [hVBlankCounter]
and $4
ret nz
-.asm_e096d
- call Functione0398
+.skip
+ call CollapseCursorPosition
rept 2
add hl, hl
endr
- ld de, Unknown_e0981
+ ld de, .OAMData
add hl, de
ld a, [hli]
ld c, a
@@ -1383,253 +1420,271 @@ endr
ld a, [hli]
ld h, [hl]
ld l, a
- call Functione0509
+ call CardFlip_CopyOAM
ret
; e0981
-Unknown_e0981: ; e0981
- dbbw $58, $10, Unknown_e0c26
- dbbw $60, $10, Unknown_e0c26
- dbbw $68, $10, Unknown_e0b8d
- dbbw $68, $10, Unknown_e0b8d
- dbbw $88, $10, Unknown_e0b8d
- dbbw $88, $10, Unknown_e0b8d
-
- dbbw $58, $18, Unknown_e0c26
- dbbw $60, $18, Unknown_e0c26
- dbbw $68, $18, Unknown_e0a5a
- dbbw $78, $18, Unknown_e0a5a
- dbbw $88, $18, Unknown_e0a5a
- dbbw $98, $18, Unknown_e0a5a
-
- dbbw $58, $28, Unknown_e0b14
- dbbw $60, $28, Unknown_e0ac3
- dbbw $68, $28, Unknown_e0a41
- dbbw $78, $28, Unknown_e0a41
- dbbw $88, $28, Unknown_e0a41
- dbbw $98, $28, Unknown_e0a41
- dbbw $58, $28, Unknown_e0b14
-
- dbbw $60, $34, Unknown_e0ac3
- dbbw $68, $34, Unknown_e0a41
- dbbw $78, $34, Unknown_e0a41
- dbbw $88, $34, Unknown_e0a41
- dbbw $98, $34, Unknown_e0a41
-
- dbbw $58, $40, Unknown_e0b14
- dbbw $60, $40, Unknown_e0ac3
- dbbw $68, $40, Unknown_e0a41
- dbbw $78, $40, Unknown_e0a41
- dbbw $88, $40, Unknown_e0a41
- dbbw $98, $40, Unknown_e0a41
- dbbw $58, $40, Unknown_e0b14
-
- dbbw $60, $4c, Unknown_e0ac3
- dbbw $68, $4c, Unknown_e0a41
- dbbw $78, $4c, Unknown_e0a41
- dbbw $88, $4c, Unknown_e0a41
- dbbw $98, $4c, Unknown_e0a41
-
- dbbw $58, $58, Unknown_e0b14
- dbbw $60, $58, Unknown_e0ac3
- dbbw $68, $58, Unknown_e0a41
- dbbw $78, $58, Unknown_e0a41
- dbbw $88, $58, Unknown_e0a41
- dbbw $98, $58, Unknown_e0a41
- dbbw $58, $58, Unknown_e0b14
-
- dbbw $60, $64, Unknown_e0ac3
- dbbw $68, $64, Unknown_e0a41
- dbbw $78, $64, Unknown_e0a41
- dbbw $88, $64, Unknown_e0a41
- dbbw $98, $64, Unknown_e0a41
+.OAMData: ; e0981
+cardflip_cursor: MACRO
+if _NARG >= 5
+ dbpixel \1, \2, \3, \4
+ dw \5
+else
+ dbpixel \1, \2
+ dw \3
+endc
+endm
+
+
+ cardflip_cursor 11, 2, .Impossible
+ cardflip_cursor 12, 2, .Impossible
+ cardflip_cursor 13, 2, .PokeGroupPair
+ cardflip_cursor 13, 2, .PokeGroupPair
+ cardflip_cursor 17, 2, .PokeGroupPair
+ cardflip_cursor 17, 2, .PokeGroupPair
+
+ cardflip_cursor 11, 3, .Impossible
+ cardflip_cursor 12, 3, .Impossible
+ cardflip_cursor 13, 3, .PokeGroup
+ cardflip_cursor 15, 3, .PokeGroup
+ cardflip_cursor 17, 3, .PokeGroup
+ cardflip_cursor 19, 3, .PokeGroup
+
+ cardflip_cursor 11, 5, .NumGroupPair
+ cardflip_cursor 12, 5, .NumGroup
+ cardflip_cursor 13, 5, .SingleTile
+ cardflip_cursor 15, 5, .SingleTile
+ cardflip_cursor 17, 5, .SingleTile
+ cardflip_cursor 19, 5, .SingleTile
+
+ cardflip_cursor 11, 5, .NumGroupPair
+ cardflip_cursor 12, 6, 0, 4, .NumGroup
+ cardflip_cursor 13, 6, 0, 4, .SingleTile
+ cardflip_cursor 15, 6, 0, 4, .SingleTile
+ cardflip_cursor 17, 6, 0, 4, .SingleTile
+ cardflip_cursor 19, 6, 0, 4, .SingleTile
+
+ cardflip_cursor 11, 8, .NumGroupPair
+ cardflip_cursor 12, 8, .NumGroup
+ cardflip_cursor 13, 8, .SingleTile
+ cardflip_cursor 15, 8, .SingleTile
+ cardflip_cursor 17, 8, .SingleTile
+ cardflip_cursor 19, 8, .SingleTile
+
+ cardflip_cursor 11, 8, .NumGroupPair
+ cardflip_cursor 12, 9, 0, 4, .NumGroup
+ cardflip_cursor 13, 9, 0, 4, .SingleTile
+ cardflip_cursor 15, 9, 0, 4, .SingleTile
+ cardflip_cursor 17, 9, 0, 4, .SingleTile
+ cardflip_cursor 19, 9, 0, 4, .SingleTile
+
+ cardflip_cursor 11, 11, .NumGroupPair
+ cardflip_cursor 12, 11, .NumGroup
+ cardflip_cursor 13, 11, .SingleTile
+ cardflip_cursor 15, 11, .SingleTile
+ cardflip_cursor 17, 11, .SingleTile
+ cardflip_cursor 19, 11, .SingleTile
+
+ cardflip_cursor 11, 11, .NumGroupPair
+ cardflip_cursor 12, 12, 0, 4, .NumGroup
+ cardflip_cursor 13, 12, 0, 4, .SingleTile
+ cardflip_cursor 15, 12, 0, 4, .SingleTile
+ cardflip_cursor 17, 12, 0, 4, .SingleTile
+ cardflip_cursor 19, 12, 0, 4, .SingleTile
; e0a41
-Unknown_e0a41: ; e0a41
+.SingleTile: ; e0a41
db 6
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $03, $80
- db $05, $ff, $00, $c0
- db $05, $00, $02, $c0
- db $05, $08, $03, $80
-
-Unknown_e0a5a: ; e0a5a
+ dsprite 0, 0, -1, 7, $00, $80
+ dsprite 0, 0, 0, 0, $02, $80
+ dsprite 0, 0, 1, 0, $03, $80
+ dsprite 0, 5, -1, 7, $00, $c0
+ dsprite 0, 5, 0, 0, $02, $c0
+ dsprite 0, 5, 1, 0, $03, $80
+
+.PokeGroup: ; e0a5a
db 26
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $00, $a0
- db $08, $ff, $01, $80
- db $08, $08, $01, $a0
- db $10, $ff, $01, $80
- db $10, $08, $03, $80
- db $18, $ff, $01, $80
- db $18, $08, $03, $80
- db $20, $ff, $01, $80
- db $20, $08, $03, $80
- db $28, $ff, $01, $80
- db $28, $08, $03, $80
- db $30, $ff, $01, $80
- db $30, $08, $03, $80
- db $38, $ff, $01, $80
- db $38, $08, $03, $80
- db $40, $ff, $01, $80
- db $40, $08, $03, $80
- db $48, $ff, $01, $80
- db $48, $08, $03, $80
- db $50, $ff, $01, $80
- db $50, $08, $03, $80
- db $51, $ff, $00, $c0
- db $51, $00, $02, $c0
- db $51, $08, $03, $80
-
-Unknown_e0ac3: ; e0ac3
+ dsprite 0, 0, -1, 7, $00, $80
+ dsprite 0, 0, 0, 0, $02, $80
+ dsprite 0, 0, 1, 0, $00, $a0
+ dsprite 1, 0, -1, 7, $01, $80
+ dsprite 1, 0, 1, 0, $01, $a0
+ dsprite 2, 0, -1, 7, $01, $80
+ dsprite 2, 0, 1, 0, $03, $80
+ dsprite 3, 0, -1, 7, $01, $80
+ dsprite 3, 0, 1, 0, $03, $80
+ dsprite 4, 0, -1, 7, $01, $80
+ dsprite 4, 0, 1, 0, $03, $80
+ dsprite 5, 0, -1, 7, $01, $80
+ dsprite 5, 0, 1, 0, $03, $80
+ dsprite 6, 0, -1, 7, $01, $80
+ dsprite 6, 0, 1, 0, $03, $80
+ dsprite 7, 0, -1, 7, $01, $80
+ dsprite 7, 0, 1, 0, $03, $80
+ dsprite 8, 0, -1, 7, $01, $80
+ dsprite 8, 0, 1, 0, $03, $80
+ dsprite 9, 0, -1, 7, $01, $80
+ dsprite 9, 0, 1, 0, $03, $80
+ dsprite 10, 0, -1, 7, $01, $80
+ dsprite 10, 0, 1, 0, $03, $80
+ dsprite 10, 1, -1, 7, $00, $c0
+ dsprite 10, 1, 0, 0, $02, $c0
+ dsprite 10, 1, 1, 0, $03, $80
+
+.NumGroup: ; e0ac3
db 20
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $02, $80
- db $00, $10, $03, $80
- db $00, $18, $02, $80
- db $00, $20, $03, $80
- db $00, $28, $02, $80
- db $00, $30, $03, $80
- db $00, $38, $02, $80
- db $00, $40, $03, $80
- db $05, $ff, $00, $c0
- db $05, $00, $02, $c0
- db $05, $08, $02, $c0
- db $05, $10, $03, $80
- db $05, $18, $02, $c0
- db $05, $20, $03, $80
- db $05, $28, $02, $c0
- db $05, $30, $03, $80
- db $05, $38, $02, $c0
- db $05, $40, $03, $80
-
-Unknown_e0b14: ; e0b14
+ dsprite 0, 0, -1, 7, $00, $80
+ dsprite 0, 0, 0, 0, $02, $80
+ dsprite 0, 0, 1, 0, $02, $80
+ dsprite 0, 0, 2, 0, $03, $80
+ dsprite 0, 0, 3, 0, $02, $80
+ dsprite 0, 0, 4, 0, $03, $80
+ dsprite 0, 0, 5, 0, $02, $80
+ dsprite 0, 0, 6, 0, $03, $80
+ dsprite 0, 0, 7, 0, $02, $80
+ dsprite 0, 0, 8, 0, $03, $80
+ dsprite 0, 5, -1, 7, $00, $c0
+ dsprite 0, 5, 0, 0, $02, $c0
+ dsprite 0, 5, 1, 0, $02, $c0
+ dsprite 0, 5, 2, 0, $03, $80
+ dsprite 0, 5, 3, 0, $02, $c0
+ dsprite 0, 5, 4, 0, $03, $80
+ dsprite 0, 5, 5, 0, $02, $c0
+ dsprite 0, 5, 6, 0, $03, $80
+ dsprite 0, 5, 7, 0, $02, $c0
+ dsprite 0, 5, 8, 0, $03, $80
+
+.NumGroupPair: ; e0b14
db 30
- db $00, $00, $00, $80
- db $00, $08, $02, $80
- db $00, $10, $02, $80
- db $00, $18, $03, $80
- db $00, $20, $02, $80
- db $00, $28, $03, $80
- db $00, $30, $02, $80
- db $00, $38, $03, $80
- db $00, $40, $02, $80
- db $00, $48, $03, $80
- db $08, $00, $01, $80
- db $08, $18, $03, $80
- db $08, $28, $03, $80
- db $08, $38, $03, $80
- db $08, $48, $03, $80
- db $10, $00, $01, $80
- db $10, $18, $03, $80
- db $10, $28, $03, $80
- db $10, $38, $03, $80
- db $10, $48, $03, $80
- db $11, $00, $00, $c0
- db $11, $08, $02, $c0
- db $11, $10, $02, $c0
- db $11, $18, $03, $80
- db $11, $20, $03, $80
- db $11, $28, $03, $80
- db $11, $30, $03, $80
- db $11, $38, $03, $80
- db $11, $40, $03, $80
- db $11, $48, $03, $80
-
-Unknown_e0b8d: ; e0b8d
+ dsprite 0, 0, 0, 0, $00, $80
+ dsprite 0, 0, 1, 0, $02, $80
+ dsprite 0, 0, 2, 0, $02, $80
+ dsprite 0, 0, 3, 0, $03, $80
+ dsprite 0, 0, 4, 0, $02, $80
+ dsprite 0, 0, 5, 0, $03, $80
+ dsprite 0, 0, 6, 0, $02, $80
+ dsprite 0, 0, 7, 0, $03, $80
+ dsprite 0, 0, 8, 0, $02, $80
+ dsprite 0, 0, 9, 0, $03, $80
+ dsprite 1, 0, 0, 0, $01, $80
+ dsprite 1, 0, 3, 0, $03, $80
+ dsprite 1, 0, 5, 0, $03, $80
+ dsprite 1, 0, 7, 0, $03, $80
+ dsprite 1, 0, 9, 0, $03, $80
+ dsprite 2, 0, 0, 0, $01, $80
+ dsprite 2, 0, 3, 0, $03, $80
+ dsprite 2, 0, 5, 0, $03, $80
+ dsprite 2, 0, 7, 0, $03, $80
+ dsprite 2, 0, 9, 0, $03, $80
+ dsprite 2, 1, 0, 0, $00, $c0
+ dsprite 2, 1, 1, 0, $02, $c0
+ dsprite 2, 1, 2, 0, $02, $c0
+ dsprite 2, 1, 3, 0, $03, $80
+ dsprite 2, 1, 4, 0, $03, $80
+ dsprite 2, 1, 5, 0, $03, $80
+ dsprite 2, 1, 6, 0, $03, $80
+ dsprite 2, 1, 7, 0, $03, $80
+ dsprite 2, 1, 8, 0, $03, $80
+ dsprite 2, 1, 9, 0, $03, $80
+
+.PokeGroupPair: ; e0b8d
db 38
- db $00, $ff, $00, $80
- db $00, $18, $00, $a0
- db $08, $ff, $01, $80
- db $08, $18, $01, $a0
- db $10, $ff, $01, $80
- db $10, $18, $01, $a0
- db $18, $ff, $01, $80
- db $18, $08, $03, $80
- db $18, $18, $03, $80
- db $20, $ff, $01, $80
- db $20, $08, $03, $80
- db $20, $18, $03, $80
- db $28, $ff, $01, $80
- db $28, $08, $03, $80
- db $28, $18, $03, $80
- db $30, $ff, $01, $80
- db $30, $08, $03, $80
- db $30, $18, $03, $80
- db $38, $ff, $01, $80
- db $38, $08, $03, $80
- db $38, $18, $03, $80
- db $40, $ff, $01, $80
- db $40, $08, $03, $80
- db $40, $18, $03, $80
- db $48, $ff, $01, $80
- db $48, $08, $03, $80
- db $48, $18, $03, $80
- db $50, $ff, $01, $80
- db $50, $08, $03, $80
- db $50, $18, $03, $80
- db $58, $ff, $01, $80
- db $58, $08, $03, $80
- db $58, $18, $03, $80
- db $59, $ff, $00, $c0
- db $59, $00, $02, $c0
- db $59, $08, $03, $c0
- db $59, $10, $02, $c0
- db $59, $18, $03, $e0
-
-Unknown_e0c26: ; e0c26
+ dsprite 0, 0, -1, 7, $00, $80
+ dsprite 0, 0, 3, 0, $00, $a0
+ dsprite 1, 0, -1, 7, $01, $80
+ dsprite 1, 0, 3, 0, $01, $a0
+ dsprite 2, 0, -1, 7, $01, $80
+ dsprite 2, 0, 3, 0, $01, $a0
+ dsprite 3, 0, -1, 7, $01, $80
+ dsprite 3, 0, 1, 0, $03, $80
+ dsprite 3, 0, 3, 0, $03, $80
+ dsprite 4, 0, -1, 7, $01, $80
+ dsprite 4, 0, 1, 0, $03, $80
+ dsprite 4, 0, 3, 0, $03, $80
+ dsprite 5, 0, -1, 7, $01, $80
+ dsprite 5, 0, 1, 0, $03, $80
+ dsprite 5, 0, 3, 0, $03, $80
+ dsprite 6, 0, -1, 7, $01, $80
+ dsprite 6, 0, 1, 0, $03, $80
+ dsprite 6, 0, 3, 0, $03, $80
+ dsprite 7, 0, -1, 7, $01, $80
+ dsprite 7, 0, 1, 0, $03, $80
+ dsprite 7, 0, 3, 0, $03, $80
+ dsprite 8, 0, -1, 7, $01, $80
+ dsprite 8, 0, 1, 0, $03, $80
+ dsprite 8, 0, 3, 0, $03, $80
+ dsprite 9, 0, -1, 7, $01, $80
+ dsprite 9, 0, 1, 0, $03, $80
+ dsprite 9, 0, 3, 0, $03, $80
+ dsprite 10, 0, -1, 7, $01, $80
+ dsprite 10, 0, 1, 0, $03, $80
+ dsprite 10, 0, 3, 0, $03, $80
+ dsprite 11, 0, -1, 7, $01, $80
+ dsprite 11, 0, 1, 0, $03, $80
+ dsprite 11, 0, 3, 0, $03, $80
+ dsprite 11, 1, -1, 7, $00, $c0
+ dsprite 11, 1, 0, 0, $02, $c0
+ dsprite 11, 1, 1, 0, $03, $c0
+ dsprite 11, 1, 2, 0, $02, $c0
+ dsprite 11, 1, 3, 0, $03, $e0
+
+.Impossible: ; e0c26
db 4
- db $00, $00, $00, $80
- db $00, $08, $00, $a0
- db $08, $00, $00, $c0
- db $08, $08, $00, $e0
+ dsprite 0, 0, 0, 0, $00, $80
+ dsprite 0, 0, 1, 0, $00, $a0
+ dsprite 1, 0, 0, 0, $00, $c0
+ dsprite 1, 0, 1, 0, $00, $e0
; e0c37
-Functione0c37: ; e0c37 (38:4c37)
+CardFlip_InitAttrPals: ; e0c37 (38:4c37)
ld a, [hCGB]
and a
ret z
+
hlcoord 0, 0, AttrMap
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
+
hlcoord 12, 1, AttrMap
lb bc, 2, 2
ld a, $1
- call Functione04e7
+ call CardFlip_FillBox
+
hlcoord 14, 1, AttrMap
lb bc, 2, 2
ld a, $2
- call Functione04e7
+ call CardFlip_FillBox
+
hlcoord 16, 1, AttrMap
lb bc, 2, 2
ld a, $3
- call Functione04e7
+ call CardFlip_FillBox
+
hlcoord 18, 1, AttrMap
lb bc, 2, 2
ld a, $4
- call Functione04e7
+ call CardFlip_FillBox
+
hlcoord 9, 0, AttrMap
lb bc, 12, 1
ld a, $1
- call Functione04e7
+ call CardFlip_FillBox
+
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
- ld hl, Palette_e0c93
+ ld hl, .palettes
ld de, UnknBGPals
- ld bc, $48
+ ld bc, 9 palettes
call CopyBytes
pop af
ld [rSVBK], a
ret
; e0c93 (38:4c93)
-Palette_e0c93: ; e0c93
+.palettes: ; e0c93
RGB 31, 31, 31
RGB 17, 07, 31
RGB 06, 19, 08
@@ -1676,22 +1731,22 @@ Palette_e0c93: ; e0c93
RGB 31, 00, 00
; e0cdb
-LZ_e0cdb: ; e0cdb
+CardFlipLZ03: ; e0cdb
INCBIN "gfx/unknown/0e0cdb.2bpp.lz"
-GFX_e0cf6: ; e0cf6
+CardFlipOffButtonGFX: ; e0cf6
INCBIN "gfx/unknown/0e0cf6.2bpp"
-GFX_e0d06: ; e0d06
+CardFlipOnButtonGFX: ; e0d06
INCBIN "gfx/unknown/0e0d06.2bpp"
-LZ_e0d16: ; e0d16
+CardFlipLZ01: ; e0d16
INCBIN "gfx/unknown/0e0d16.2bpp.lz"
-LZ_e0ea8: ; e0ea8
+CardFlipLZ02: ; e0ea8
INCBIN "gfx/unknown/0e0ea8.2bpp.lz"
-Unknown_e110c: ; e110c
+CardFlipTilemap: ; e110c
db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27
db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b
db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d
@@ -1705,856 +1760,3 @@ Unknown_e110c: ; e110c
db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13
db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23
; e1190
-
-Functione1190: ; e1190
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- ld hl, wc608
- ld bc, $1e0
- xor a
- call ByteFill
- ld hl, GFX_e17c5
- ld de, VTiles1 tile $60
- ld bc, $40
- call CopyBytes
- ld hl, LZ_e1805
- ld de, VTiles1 tile $6d
- call Decompress
- call Functione17a3
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $ee
- call ByteFill
- hlcoord 4, 3
- lb bc, 12, 12
- ld a, $ef
- call Functione13ee
- call Functione124e
- call Functione13fe
- call Functione127d
- xor a
- ld [hSCY], a
- ld [hSCX], a
- ld [rWY], a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld a, $93
- ld [rLCDC], a
- call WaitBGMap
- ld b, SCGB_18
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $24
- call Functioncf8
- xor a
- ld [wd0ec], a
- call DelayFrame
-.asm_e1217
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e123d
- call Functione12ca
- ld a, [wcf64]
- and a
- jr nz, .asm_e1230
- ld a, [hVBlankCounter]
- and $10
- jr z, .asm_e1235
-
-.asm_e1230
- call Functione14d9
- jr .asm_e1238
-
-.asm_e1235
- call ClearSprites
-
-.asm_e1238
- call DelayFrame
- jr .asm_e1217
-
-.asm_e123d
- pop af
- ld [hInMenu], a
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- ld a, $e3
- ld [rLCDC], a
- ret
-; e124e
-
-Functione124e: ; e124e
- ld c, $1
- ld b, $10
-.asm_e1252
- call Random
- and $f
- ld hl, Unknown_e126d
- ld e, a
- ld d, $0
- add hl, de
- ld e, [hl]
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e1252
- ld [hl], c
- inc c
- dec b
- jr nz, .asm_e1252
- ret
-; e126d
-
-Unknown_e126d: ; e126d
- db $00, $01, $02, $03
- db $04, $05, $06, $0b
- db $0c, $11, $12, $17
- db $18, $1d, $1e, $23
-; e127d
-
-Functione127d: ; e127d
- call Functione128d
- hlcoord 5, 16
- ld a, $f6
- ld c, $a
-.asm_e1287
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e1287
- ret
-; e128d
-
-Functione128d: ; e128d
- hlcoord 4, 15
- ld a, $f0
- ld [hli], a
- ld bc, $a
- ld a, $f1
- call ByteFill
- hlcoord 15, 15
- ld a, $f2
- ld [hli], a
- hlcoord 4, 16
- ld a, $f3
- ld [hli], a
- ld bc, $a
- ld a, $ef
- call ByteFill
- hlcoord 15, 16
- ld a, $f3
- ld [hli], a
- hlcoord 4, 17
- ld a, $f4
- ld [hli], a
- ld bc, $a
- ld a, $f1
- call ByteFill
- hlcoord 15, 17
- ld a, $f5
- ld [hl], a
- ret
-; e12ca
-
-Functione12ca: ; e12ca
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e12d9
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e12d9
-
-Jumptable_e12d9: ; e12d9
- dw Functione12db
-; e12db
-
-Functione12db: ; e12db
- ld a, [hJoyPressed]
- and START
- jp nz, Functione13de
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Functione1376
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_e1301
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_e130d
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_e1325
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_e1345
- ret
-
-.asm_e1301
- ld hl, wcf65
- ld a, [hl]
- cp $6
- ret c
- sub $6
- ld [hl], a
- jr .asm_e1364
-
-.asm_e130d
- ld hl, wcf65
- ld a, [hl]
- cp $19
- ret z
- cp $1a
- ret z
- cp $1b
- ret z
- cp $1c
- ret z
- cp $1e
- ret nc
- add $6
- ld [hl], a
- jr .asm_e1364
-
-.asm_e1325
- ld hl, wcf65
- ld a, [hl]
- and a
- ret z
- cp $6
- ret z
- cp $c
- ret z
- cp $12
- ret z
- cp $18
- ret z
- cp $1e
- ret z
- cp $23
- jr z, .asm_e1341
- dec [hl]
- jr .asm_e1364
-
-.asm_e1341
- ld [hl], $1e
- jr .asm_e1364
-
-.asm_e1345
- ld hl, wcf65
- ld a, [hl]
- cp $5
- ret z
- cp $b
- ret z
- cp $11
- ret z
- cp $17
- ret z
- cp $1d
- ret z
- cp $23
- ret z
- cp $1e
- jr z, .asm_e1362
- inc [hl]
- jr .asm_e1364
-
-.asm_e1362
- ld [hl], $23
-
-.asm_e1364
- ld a, [wcf64]
- and a
- jr nz, .asm_e136f
- ld de, SFX_POUND
- jr .asm_e1372
-
-.asm_e136f
- ld de, SFX_MOVE_PUZZLE_PIECE
-
-.asm_e1372
- call PlaySFX
- ret
-; e1376
-
-Functione1376: ; e1376
- ld a, [wcf64]
- and a
- jr nz, .asm_e139f
- call Functione1475
- and a
- jr z, Functione13e4
- ld de, SFX_MEGA_KICK
- call PlaySFX
- ld [hl], $0
- ld [wcf66], a
- call Functione14d9
- call Functione1441
- call WaitBGMap
- call WaitSFX
- ld a, $1
- ld [wcf64], a
- ret
-
-.asm_e139f
- call Functione1475
- and a
- jr nz, Functione13e4
- ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
- call PlaySFX
- ld a, [wcf66]
- ld [hl], a
- call Functione141f
- call WaitBGMap
- xor a
- ld [wcf66], a
- call Functione14d9
- xor a
- ld [wcf64], a
- call WaitSFX
- call Functione14a0
- ret nc
- call Functione128d
- call ClearSprites
- ld de, SFX_1ST_PLACE
- call PlaySFX
- call WaitSFX
- call SimpleWaitPressAorB
- ld a, $1
- ld [wd0ec], a
-
-Functione13de: ; e13de
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Functione13e4: ; e13e4
- ld de, SFX_WRONG
- call PlaySFX
- call WaitSFX
- ret
-; e13ee
-
-Functione13ee: ; e13ee
- ld de, SCREEN_WIDTH
-.asm_e13f1
- push bc
- push hl
-.asm_e13f3
- ld [hli], a
- dec c
- jr nz, .asm_e13f3
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_e13f1
- ret
-; e13fe
-
-Functione13fe: ; e13fe
- xor a
- ld [wcf65], a
- ld c, $24
-.asm_e1404
- push bc
- call Functione1475
- ld [wcf66], a
- and a
- jr z, .asm_e1413
- call Functione141f
- jr .asm_e1416
-
-.asm_e1413
- call Functione1441
-
-.asm_e1416
- ld hl, wcf65
- inc [hl]
- pop bc
- dec c
- jr nz, .asm_e1404
- ret
-; e141f
-
-Functione141f: ; e141f
- ld a, $2
- call Functione1463
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- call Functione1481
- pop hl
- ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e1431
- ld c, $3
- push hl
-.asm_e1434
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e1434
- add $9
- pop hl
- add hl, de
- dec b
- jr nz, .asm_e1431
- ret
-; e1441
-
-Functione1441: ; e1441
- ld a, $2
- call Functione1463
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- ld a, $4
- call Functione1463
- ld a, [hl]
- pop hl
- ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e1456
- ld c, $3
- push hl
-.asm_e1459
- ld [hli], a
- dec c
- jr nz, .asm_e1459
- pop hl
- add hl, de
- dec b
- jr nz, .asm_e1456
- ret
-; e1463
-
-Functione1463: ; e1463
- ld e, a
- ld d, 0
- ld hl, Unknown_e1559
- add hl, de
- ld a, [wcf65]
- ld e, a
-rept 4
- add hl, de
-endr
-rept 2
- add hl, de
-endr
- ret
-; e1475
-
-Functione1475: ; e1475
- ld hl, wc6d0
- ld a, [wcf65]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ret
-; e1481
-
-Functione1481: ; e1481
- ld a, [wcf66]
- ld hl, Unknown_e148f
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, [hl]
- ret
-; e148f
-
-Unknown_e148f: ; e148f
- db $e0
- db $00, $03, $06, $09
- db $24, $27, $2a, $2d
- db $48, $4b, $4e, $51
- db $6c, $6f, $72, $75
-; e14a0
-
-Functione14a0: ; e14a0
- ld hl, Unknown_e14b5
- ld de, wc6d0
- ld c, $24
-.asm_e14a8
- ld a, [de]
- cp [hl]
- jr nz, .asm_e14b3
- inc de
- inc hl
- dec c
- jr nz, .asm_e14a8
- scf
- ret
-
-.asm_e14b3
- and a
- ret
-; e14b5
-
-Unknown_e14b5: ; e14b5
- db $00, $00, $00, $00, $00, $00
- db $00, $01, $02, $03, $04, $00
- db $00, $05, $06, $07, $08, $00
- db $00, $09, $0a, $0b, $0c, $00
- db $00, $0d, $0e, $0f, $10, $00
- db $00, $00, $00, $00, $00, $00
-; e14d9
-
-Functione14d9: ; e14d9
- call Functione1481
- ld [wd002], a
- xor a
- call Functione1463
- ld a, [hli]
- ld b, [hl]
- ld c, a
- ld a, [wd002]
- cp $e0
- jr z, .asm_e14f2
- ld hl, Unknown_e150f
- jr .asm_e14f5
-
-.asm_e14f2
- ld hl, Unknown_e1534
-
-.asm_e14f5
- ld de, Sprites
-.asm_e14f8
- ld a, [hli]
- cp $ff
- ret z
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [wd002]
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- jr .asm_e14f8
-; e150f
-
-Unknown_e150f: ; e150f
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $0c, $00
- db $fc, $fc, $0d, $00
- db $fc, $04, $0e, $00
- db $04, $f4, $18, $00
- db $04, $fc, $19, $00
- db $04, $04, $1a, $00
- db $ff
-
-Unknown_e1534: ; e1534
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $00, $20
- db $fc, $f4, $02, $00
- db $fc, $fc, $03, $00
- db $fc, $04, $02, $20
- db $04, $f4, $00, $40
- db $04, $fc, $01, $40
- db $04, $04, $00, $60
- db $ff
-
-Unknown_e1559: ; e1559
-
-macro_e1559: macro
- db \1, \2
- dwcoord \3, \4
- db \5, \6
-endm
-
- macro_e1559 $1c, $1c, 1, 0, $ee, $00
- macro_e1559 $34, $1c, 4, 0, $ee, $00
- macro_e1559 $4c, $1c, 7, 0, $ee, $00
- macro_e1559 $64, $1c, 10, 0, $ee, $00
- macro_e1559 $7c, $1c, 13, 0, $ee, $00
- macro_e1559 $94, $1c, 16, 0, $ee, $00
- macro_e1559 $1c, $34, 1, 3, $ee, $00
- macro_e1559 $34, $34, 4, 3, $ef, $00
- macro_e1559 $4c, $34, 7, 3, $ef, $00
- macro_e1559 $64, $34, 10, 3, $ef, $00
- macro_e1559 $7c, $34, 13, 3, $ef, $00
- macro_e1559 $94, $34, 16, 3, $ee, $00
- macro_e1559 $1c, $4c, 1, 6, $ee, $00
- macro_e1559 $34, $4c, 4, 6, $ef, $00
- macro_e1559 $4c, $4c, 7, 6, $ef, $00
- macro_e1559 $64, $4c, 10, 6, $ef, $00
- macro_e1559 $7c, $4c, 13, 6, $ef, $00
- macro_e1559 $94, $4c, 16, 6, $ee, $00
- macro_e1559 $1c, $64, 1, 9, $ee, $00
- macro_e1559 $34, $64, 4, 9, $ef, $00
- macro_e1559 $4c, $64, 7, 9, $ef, $00
- macro_e1559 $64, $64, 10, 9, $ef, $00
- macro_e1559 $7c, $64, 13, 9, $ef, $00
- macro_e1559 $94, $64, 16, 9, $ee, $00
- macro_e1559 $1c, $7c, 1, 12, $ee, $00
- macro_e1559 $34, $7c, 4, 12, $ef, $00
- macro_e1559 $4c, $7c, 7, 12, $ef, $00
- macro_e1559 $64, $7c, 10, 12, $ef, $00
- macro_e1559 $7c, $7c, 13, 12, $ef, $00
- macro_e1559 $94, $7c, 16, 12, $ee, $00
- macro_e1559 $1c, $94, 1, 15, $ee, $00
- macro_e1559 $34, $94, 4, 15, $ee, $00
- macro_e1559 $4c, $94, 7, 15, $ee, $00
- macro_e1559 $64, $94, 10, 15, $ee, $00
- macro_e1559 $7c, $94, 13, 15, $ee, $00
- macro_e1559 $94, $94, 16, 15, $ee, $00
-
-Functione1631: ; e1631
- ld hl, VTiles2
- ld de, VTiles0
- ld b, $6
-.asm_e1639
- push bc
- push hl
- push hl
- call Functione1654
- pop hl
- ld bc, 8
- add hl, bc
- call Functione1654
- pop hl
- ld bc, $60
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e1639
- call Functione16c7
- ret
-; e1654
-
-Functione1654: ; e1654
- ld c, $6
-.asm_e1656
- push bc
- push hl
- push hl
- ld c, $4
-.asm_e165b
- push bc
- ld a, [hli]
- and $f0
- swap a
- call Functione16aa
- ld c, a
- ld a, [hli]
- and $f0
- swap a
- call Functione16aa
- ld b, a
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- pop bc
- dec c
- jr nz, .asm_e165b
- pop hl
- ld c, $4
-.asm_e1681
- push bc
- ld a, [hli]
- and $f
- call Functione16aa
- ld c, a
- ld a, [hli]
- and $f
- call Functione16aa
- ld b, a
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- pop bc
- dec c
- jr nz, .asm_e1681
- pop hl
- ld bc, $10
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_e1656
- ret
-; e16aa
-
-Functione16aa: ; e16aa
- push hl
- ld hl, Unknown_e16b7
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, [hl]
- pop hl
- ret
-; e16b7
-
-Unknown_e16b7: ; e16b7
- db $00, $03, $0c, $0f
- db $30, $33, $3c, $3f
- db $c0, $c3, $cc, $cf
- db $f0, $f3, $fc, $ff
-; e16c7
-
-Functione16c7: ; e16c7
- ld hl, Unknown_e1703
- ld a, $8
-.asm_e16cc
- push af
- push hl
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Functione16e2
- pop hl
-rept 4
- inc hl
-endr
- pop af
- dec a
- jr nz, .asm_e16cc
- ret
-; e16e2
-
-Functione16e2: ; e16e2
- lb bc, 4, 4
-.asm_e16e5
- push bc
-.asm_e16e6
- push de
- push hl
- ld b, $10
-.asm_e16ea
- ld a, [de]
- or [hl]
- ld [hli], a
- inc de
- dec b
- jr nz, .asm_e16ea
- pop hl
- ld de, $30
- add hl, de
- pop de
- dec c
- jr nz, .asm_e16e6
- ld bc, $180
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e16e5
- ret
-; e1703
-
-Unknown_e1703: ; e1703
- dw GFX_e1723 + $00, $8000
- dw GFX_e1723 + $10, $8010
- dw GFX_e1723 + $20, $8020
- dw GFX_e1723 + $30, $80c0
- dw GFX_e1723 + $40, $80e0
- dw GFX_e1723 + $50, $8180
- dw GFX_e1723 + $60, $8190
- dw GFX_e1723 + $70, $81a0
-; e1723
-
-GFX_e1723: ; e1723
-INCBIN "gfx/unknown/0e1723.2bpp"
-
-Functione17a3: ; e17a3
- ld a, [ScriptVar]
- and 3
- ld e, a
- ld d, 0
- ld hl, Unknown_e17bd
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, VTiles2
- call Decompress
- call Functione1631
- ret
-; e17bd
-
-Unknown_e17bd: ; e17bd
- dw LZ_e1bab
- dw LZ_e1c9b
- dw LZ_e19fb
- dw LZ_e18ab
-; e17c5
-
-GFX_e17c5: ; e17c5
-INCBIN "gfx/unknown/0e17c5.2bpp"
-
-LZ_e1805: ; e1805
-INCBIN "gfx/unknown/0e1805.2bpp.lz"
-
-LZ_e18ab: ; e18ab
-INCBIN "gfx/unknown/0e18ab.2bpp.lz"
-
-LZ_e19fb: ; e19fb
-INCBIN "gfx/unknown/0e19fb.2bpp.lz"
-
-LZ_e1bab: ; e1bab
-INCBIN "gfx/unknown/0e1bab.2bpp.lz"
-
-LZ_e1c9b: ; e1c9b
-INCBIN "gfx/unknown/0e1c9b.2bpp.lz"