mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
1685 lines
27 KiB
NASM
Executable File
1685 lines
27 KiB
NASM
Executable File
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]
|
|
call ClearBGPalettes
|
|
call ClearTileMap
|
|
call ClearSprites
|
|
ld de, MUSIC_NONE
|
|
call PlayMusic
|
|
call DelayFrame
|
|
call DisableLCD
|
|
call LoadStandardFont
|
|
call LoadFontsExtra
|
|
|
|
ld hl, CardFlipLZ01
|
|
ld de, vTiles2 tile $00
|
|
call Decompress
|
|
ld hl, CardFlipLZ02
|
|
ld de, vTiles2 tile $3e
|
|
call Decompress
|
|
ld hl, CardFlipLZ03
|
|
ld de, vTiles0 tile $00
|
|
call Decompress
|
|
ld hl, CardFlipOffButtonGFX
|
|
ld de, vTiles1 tile $6f
|
|
ld bc, 1 tiles
|
|
call CopyBytes
|
|
ld hl, CardFlipOnButtonGFX
|
|
ld de, vTiles1 tile $75
|
|
ld bc, 1 tiles
|
|
call CopyBytes
|
|
|
|
call CardFlip_ShiftDigitsLeftTwoPixels
|
|
call CardFlip_InitTilemap
|
|
call CardFlip_InitAttrPals
|
|
call EnableLCD
|
|
call WaitBGMap2
|
|
ld a, $e4
|
|
call DmgToCgbBGPals
|
|
ld de, $e4e4
|
|
call DmgToCgbObjPals
|
|
call DelayFrame
|
|
xor a
|
|
ld [wJumptableIndex], a
|
|
ld a, $2
|
|
ld [wCardFlipCursorY], a
|
|
ld [wCardFlipCursorX], a
|
|
ld de, MUSIC_GAME_CORNER
|
|
call PlayMusic
|
|
.MasterLoop:
|
|
ld a, [wJumptableIndex]
|
|
bit 7, a
|
|
jr nz, .leavethegame
|
|
call .CardFlip
|
|
jr .MasterLoop
|
|
.leavethegame
|
|
call WaitSFX
|
|
ld de, SFX_QUIT_SLOTS
|
|
call PlaySFX
|
|
call WaitSFX
|
|
call ClearBGPalettes
|
|
ld hl, Options
|
|
res 4, [hl]
|
|
ret
|
|
|
|
.CardFlip: ; e0191 (38:4191)
|
|
ld a, [wJumptableIndex]
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, .Jumptable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; e01a0 (38:41a0)
|
|
|
|
.Jumptable: ; e01a0
|
|
dw .AskPlayWithThree
|
|
dw .DeductCoins
|
|
dw .ChooseACard
|
|
dw .PlaceYourBet
|
|
dw .CheckTheCard
|
|
dw .TabulateTheResult
|
|
dw .PlayAgain
|
|
dw .Quit
|
|
; e01b0
|
|
|
|
.Increment: ; e01b0
|
|
ld hl, wJumptableIndex
|
|
inc [hl]
|
|
ret
|
|
; e01b5
|
|
|
|
.AskPlayWithThree: ; e01b5
|
|
ld hl, .PlayWithThreeCoinsText
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
call YesNoBox
|
|
jr c, .SaidNo
|
|
call CardFlip_ShuffleDeck
|
|
call .Increment
|
|
ret
|
|
|
|
.SaidNo:
|
|
ld a, 7
|
|
ld [wJumptableIndex], a
|
|
ret
|
|
; e01cd
|
|
|
|
.PlayWithThreeCoinsText: ; 0xe01cd
|
|
; Play with three coins?
|
|
text_jump UnknownText_0x1c5793
|
|
db "@"
|
|
; 0xe01d2
|
|
|
|
.DeductCoins: ; e01d2
|
|
ld a, [Coins]
|
|
ld h, a
|
|
ld a, [Coins + 1]
|
|
ld l, a
|
|
ld a, h
|
|
and a
|
|
jr nz, .deduct ; You have at least 256 coins.
|
|
ld a, l
|
|
cp 3
|
|
jr nc, .deduct ; You have at least 3 coins.
|
|
ld hl, .NotEnoughCoinsText
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
ld a, 7
|
|
ld [wJumptableIndex], a
|
|
ret
|
|
|
|
.deduct
|
|
ld de, -3
|
|
add hl, de
|
|
ld a, h
|
|
ld [Coins], a
|
|
ld a, l
|
|
ld [Coins + 1], a
|
|
ld de, SFX_TRANSACTION
|
|
call PlaySFX
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
call CardFlip_PrintCoinBalance
|
|
ld a, $1
|
|
ld [hBGMapMode], a
|
|
call WaitSFX
|
|
call .Increment
|
|
ret
|
|
; e0212
|
|
|
|
.NotEnoughCoinsText: ; 0xe0212
|
|
; Not enough coins…
|
|
text_jump UnknownText_0x1c57ab
|
|
db "@"
|
|
; 0xe0217
|
|
|
|
.ChooseACard: ; e0217
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
hlcoord 0, 0
|
|
lb bc, 12, 9
|
|
call CardFlip_FillGreenBox
|
|
hlcoord 9, 0
|
|
ld bc, SCREEN_WIDTH
|
|
ld a, [wCardFlipNumCardsPlayed]
|
|
call AddNTimes
|
|
ld [hl], CARDFLIP_LIGHT_ON
|
|
ld a, $1
|
|
ld [hBGMapMode], a
|
|
ld c, 20
|
|
call DelayFrames
|
|
hlcoord 2, 0
|
|
call PlaceCardFaceDown
|
|
ld a, $1
|
|
ld [hBGMapMode], a
|
|
ld c, 20
|
|
call DelayFrames
|
|
hlcoord 2, 6
|
|
call PlaceCardFaceDown
|
|
call WaitBGMap
|
|
ld hl, .ChooseACardText
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
xor a
|
|
ld [wCardFlipWhichCard], a
|
|
.loop
|
|
call JoyTextDelay
|
|
ld a, [hJoyLast]
|
|
and A_BUTTON
|
|
jr nz, .next
|
|
ld de, SFX_KINESIS
|
|
call PlaySFX
|
|
call PlaceOAMCardBorder
|
|
ld c, 4
|
|
call DelayFrames
|
|
ld hl, wCardFlipWhichCard
|
|
ld a, [hl]
|
|
xor $1
|
|
ld [hl], a
|
|
jr .loop
|
|
|
|
.next
|
|
ld de, SFX_SLOT_MACHINE_START
|
|
call PlaySFX
|
|
ld a, $3
|
|
.loop2
|
|
push af
|
|
call PlaceOAMCardBorder
|
|
ld c, 4
|
|
call DelayFrames
|
|
call ClearSprites
|
|
ld c, 4
|
|
call DelayFrames
|
|
pop af
|
|
dec a
|
|
jr nz, .loop2
|
|
ld hl, wCardFlipWhichCard
|
|
ld a, [hl]
|
|
push af
|
|
xor $1
|
|
ld [hl], a
|
|
call GetCoordsOfChosenCard
|
|
lb bc, 6, 5
|
|
call CardFlip_FillGreenBox
|
|
pop af
|
|
ld [wCardFlipWhichCard], a
|
|
call .Increment
|
|
ret
|
|
; e02b2
|
|
|
|
.ChooseACardText: ; 0xe02b2
|
|
; Choose a card.
|
|
text_jump UnknownText_0x1c57be
|
|
db "@"
|
|
; 0xe02b7
|
|
|
|
.PlaceYourBet: ; e02b7
|
|
ld hl, .PlaceYourBetText
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
.betloop
|
|
call JoyTextDelay
|
|
ld a, [hJoyLast]
|
|
and A_BUTTON
|
|
jr nz, .betdone
|
|
call ChooseCard_HandleJoypad
|
|
call CardFlip_UpdateCursorOAM
|
|
call DelayFrame
|
|
jr .betloop
|
|
|
|
.betdone
|
|
call .Increment
|
|
ret
|
|
; e02d5
|
|
|
|
.PlaceYourBetText: ; 0xe02d5
|
|
; Place your bet.
|
|
text_jump UnknownText_0x1c57ce
|
|
db "@"
|
|
; 0xe02da
|
|
|
|
.CheckTheCard: ; e02da
|
|
xor a
|
|
ld [hVBlankCounter], a
|
|
call CardFlip_UpdateCursorOAM
|
|
call WaitSFX
|
|
ld de, SFX_CHOOSE_A_CARD
|
|
call PlaySFX
|
|
call WaitSFX
|
|
ld a, [wCardFlipNumCardsPlayed]
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, wDeck
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [wCardFlipWhichCard]
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld [wCardFlipFaceUpCard], a
|
|
ld e, a
|
|
ld hl, wDiscardPile
|
|
add hl, de
|
|
ld [hl], TRUE
|
|
call GetCoordsOfChosenCard
|
|
call CardFlip_DisplayCardFaceUp
|
|
call WaitBGMap2
|
|
call .Increment
|
|
ret
|
|
; e0314
|
|
|
|
.TabulateTheResult: ; e0314
|
|
call CardFlip_CheckWinCondition
|
|
call WaitPressAorB_BlinkCursor
|
|
call .Increment
|
|
ret
|
|
; e031e
|
|
|
|
.PlayAgain: ; e031e
|
|
call ClearSprites
|
|
ld hl, .PlayAgainText
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
call YesNoBox
|
|
jr nc, .Continue
|
|
call .Increment
|
|
ret
|
|
|
|
.Continue:
|
|
ld a, [wCardFlipNumCardsPlayed]
|
|
inc a
|
|
ld [wCardFlipNumCardsPlayed], a
|
|
cp 12
|
|
jr c, .KeepTheCurrentDeck
|
|
call CardFlip_InitTilemap
|
|
ld a, $1
|
|
ld [hBGMapMode], a
|
|
call CardFlip_ShuffleDeck
|
|
ld hl, .CardsShuffledText
|
|
call PrintText
|
|
jr .LoopAround
|
|
|
|
.KeepTheCurrentDeck:
|
|
call CardFlip_BlankDiscardedCardSlot
|
|
|
|
.LoopAround:
|
|
ld a, 1
|
|
ld [wJumptableIndex], a
|
|
ret
|
|
; e0356
|
|
|
|
.PlayAgainText: ; 0xe0356
|
|
; Want to play again?
|
|
text_jump UnknownText_0x1c57df
|
|
db "@"
|
|
; 0xe035b
|
|
|
|
.CardsShuffledText: ; 0xe035b
|
|
; The cards have been shuffled.
|
|
text_jump UnknownText_0x1c57f4
|
|
db "@"
|
|
; 0xe0360
|
|
|
|
.Quit: ; e0360
|
|
ld hl, wJumptableIndex
|
|
set 7, [hl]
|
|
ret
|
|
; e0366
|
|
|
|
CardFlip_ShuffleDeck: ; e0366
|
|
ld hl, wDeck
|
|
ld bc, CARDFLIP_DECK_SIZE
|
|
xor a
|
|
call ByteFill
|
|
ld de, wDeck
|
|
ld c, CARDFLIP_DECK_SIZE - 1
|
|
.loop
|
|
call Random
|
|
and $1f
|
|
cp CARDFLIP_DECK_SIZE
|
|
jr nc, .loop
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .loop
|
|
ld [hl], c
|
|
dec c
|
|
jr nz, .loop
|
|
xor a
|
|
ld [wCardFlipNumCardsPlayed], a
|
|
ld hl, wDiscardPile
|
|
ld bc, CARDFLIP_DECK_SIZE
|
|
call ByteFill
|
|
ret
|
|
; e0398
|
|
|
|
CollapseCursorPosition: ; e0398
|
|
ld hl, 0
|
|
ld bc, 6
|
|
ld a, [wCardFlipCursorY]
|
|
call AddNTimes
|
|
ld b, $0
|
|
ld a, [wCardFlipCursorX]
|
|
ld c, a
|
|
add hl, bc
|
|
ret
|
|
; e03ac
|
|
|
|
GetCoordsOfChosenCard: ; e03ac
|
|
ld a, [wCardFlipWhichCard]
|
|
and a
|
|
jr nz, .BottomCard
|
|
hlcoord 2, 0
|
|
bcpixel 2, 3
|
|
jr .done
|
|
|
|
.BottomCard:
|
|
hlcoord 2, 6
|
|
bcpixel 8, 3
|
|
|
|
.done
|
|
ret
|
|
; e03c1
|
|
|
|
PlaceCardFaceDown: ; e03c1
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
ld de, .FaceDownCardTilemap
|
|
lb bc, 6, 5
|
|
call CardFlip_CopyToBox
|
|
ret
|
|
; e03ce
|
|
|
|
.FaceDownCardTilemap: ; e03ce
|
|
db $08, $09, $09, $09, $0a
|
|
db $0b, $28, $2b, $28, $0c
|
|
db $0b, $2c, $2d, $2e, $0c
|
|
db $0b, $2f, $30, $31, $0c
|
|
db $0b, $32, $33, $34, $0c
|
|
db $0d, $0e, $0e, $0e, $0f
|
|
; e03ec
|
|
|
|
CardFlip_DisplayCardFaceUp: ; e03ec
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
push hl
|
|
push hl
|
|
; Flip the card face up.
|
|
ld de, .FaceUpCardTilemap
|
|
lb bc, 6, 5
|
|
call CardFlip_CopyToBox
|
|
|
|
; Get the level and species of the upturned card.
|
|
ld a, [wCardFlipFaceUpCard]
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, .Deck
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld d, [hl]
|
|
|
|
; Place the level.
|
|
pop hl
|
|
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
|
|
.row
|
|
push hl
|
|
ld c, 3
|
|
.col
|
|
ld [hli], a
|
|
inc a
|
|
dec c
|
|
jr nz, .col
|
|
pop hl
|
|
add hl, de
|
|
dec b
|
|
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, [wCardFlipFaceUpCard]
|
|
and 3
|
|
inc a
|
|
lb bc, 6, 5
|
|
call CardFlip_FillBox
|
|
ret
|
|
; e043b
|
|
|
|
.FaceUpCardTilemap: ; e043b
|
|
db $18, $19, $19, $19, $1a
|
|
db $1b, $35, $7f, $7f, $1c
|
|
db $0b, $28, $28, $28, $0c
|
|
db $0b, $28, $28, $28, $0c
|
|
db $0b, $28, $28, $28, $0c
|
|
db $1d, $1e, $1e, $1e, $1f
|
|
; e0459
|
|
|
|
.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
|
|
|
|
CardFlip_UpdateCoinBalanceDisplay: ; e0489
|
|
push hl
|
|
hlcoord 0, 12
|
|
ld b, 4
|
|
ld c, SCREEN_WIDTH - 2
|
|
call TextBox
|
|
pop hl
|
|
call PrintTextBoxText
|
|
call CardFlip_PrintCoinBalance
|
|
ret
|
|
; e049c
|
|
|
|
CardFlip_PrintCoinBalance: ; e049c
|
|
hlcoord 9, 15
|
|
ld b, 1
|
|
ld c, 9
|
|
call TextBox
|
|
hlcoord 10, 16
|
|
ld de, .CoinStr
|
|
call PlaceString
|
|
hlcoord 15, 16
|
|
ld de, Coins
|
|
lb bc, PRINTNUM_LEADINGZEROS | 2, 4
|
|
call PrintNum
|
|
ret
|
|
; e04bc
|
|
|
|
.CoinStr:
|
|
db "COIN@"
|
|
; e04c1
|
|
|
|
CardFlip_InitTilemap: ; e04c1 (38:44c1)
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
hlcoord 0, 0
|
|
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
|
|
ld a, $29
|
|
call ByteFill
|
|
hlcoord 9, 0
|
|
ld de, CardFlipTilemap
|
|
lb bc, 12, 11
|
|
call CardFlip_CopyToBox
|
|
hlcoord 0, 12
|
|
lb bc, 4, 18
|
|
call TextBox
|
|
ret
|
|
; e04e5 (38:44e5)
|
|
|
|
CardFlip_FillGreenBox: ; e04e5
|
|
ld a, $29
|
|
|
|
CardFlip_FillBox: ; e04e7 (38:44e7)
|
|
.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
|
|
|
|
CardFlip_CopyToBox: ; e04f7 (38:44f7)
|
|
.row
|
|
push bc
|
|
push hl
|
|
.col
|
|
ld a, [de]
|
|
inc de
|
|
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
|
|
; e0509 (38:4509)
|
|
|
|
CardFlip_CopyOAM: ; e0509
|
|
ld de, Sprites
|
|
ld a, [hli]
|
|
.loop
|
|
push af
|
|
ld a, [hli]
|
|
add b
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
pop af
|
|
dec a
|
|
jr nz, .loop
|
|
ret
|
|
; e0521
|
|
|
|
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, vTiles1 tile $7f + 1 tiles - 2
|
|
xor a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ret
|
|
; e0534 (38:4534)
|
|
|
|
CardFlip_BlankDiscardedCardSlot: ; e0534
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
ld a, [wCardFlipFaceUpCard]
|
|
ld e, a
|
|
ld d, 0
|
|
|
|
and 3 ; get mon
|
|
ld c, a
|
|
ld b, 0
|
|
|
|
ld a, e
|
|
and $1c ; get level
|
|
srl a
|
|
add LOW(.Jumptable)
|
|
ld l, a
|
|
ld a, 0
|
|
adc HIGH(.Jumptable)
|
|
ld h, a
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; e0553
|
|
|
|
.Jumptable: ; e0553
|
|
dw .Level1
|
|
dw .Level2
|
|
dw .Level3
|
|
dw .Level4
|
|
dw .Level5
|
|
dw .Level6
|
|
; e055f
|
|
|
|
.Level1: ; e055f
|
|
ld hl, wDiscardPile + 4
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .discarded2
|
|
hlcoord 13, 3
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $36
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $37
|
|
ret
|
|
|
|
.discarded2
|
|
hlcoord 13, 3
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $36
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3d
|
|
ret
|
|
; e0583
|
|
|
|
.Level2: ; e0583
|
|
ld hl, wDiscardPile - 4
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .discarded1
|
|
hlcoord 13, 4
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $3b
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3a
|
|
ret
|
|
|
|
.discarded1
|
|
hlcoord 13, 4
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $3d
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3a
|
|
ret
|
|
; e05a7
|
|
|
|
.Level3: ; e05a7
|
|
ld hl, wDiscardPile + 4
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .discarded4
|
|
hlcoord 13, 6
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $36
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $38
|
|
ret
|
|
|
|
.discarded4
|
|
hlcoord 13, 6
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $36
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3d
|
|
ret
|
|
; e05cb
|
|
|
|
.Level4: ; e05cb
|
|
ld hl, wDiscardPile - 4
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .discarded3
|
|
hlcoord 13, 7
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $3c
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3a
|
|
ret
|
|
|
|
.discarded3
|
|
hlcoord 13, 7
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $3d
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3a
|
|
ret
|
|
; e05ef
|
|
|
|
.Level5: ; e05ef
|
|
ld hl, wDiscardPile + 4
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .discarded6
|
|
hlcoord 13, 9
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $36
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $39
|
|
ret
|
|
|
|
.discarded6
|
|
hlcoord 13, 9
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $36
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3d
|
|
ret
|
|
; e0613
|
|
|
|
.Level6: ; e0613
|
|
ld hl, wDiscardPile - 4
|
|
add hl, de
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .discarded5
|
|
hlcoord 13, 10
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $3c
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3a
|
|
ret
|
|
|
|
.discarded5
|
|
hlcoord 13, 10
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], $3d
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
ld [hl], $3a
|
|
ret
|
|
; e0637
|
|
|
|
CardFlip_CheckWinCondition: ; e0637
|
|
call CollapseCursorPosition
|
|
add hl, hl
|
|
ld de, .Jumptable
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; e0643
|
|
|
|
.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
|
|
|
|
.Impossible: ; e06a3
|
|
jp .Lose
|
|
; e06a6
|
|
|
|
.PikaJiggly: ; e06a6
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $2
|
|
jp nz, .Lose
|
|
jr .WinSix
|
|
|
|
.PoliOddish: ; e06b0
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $2
|
|
jr nz, .WinSix
|
|
jp .Lose
|
|
|
|
.WinSix: ; e06ba
|
|
ld c, $6
|
|
ld de, SFX_2ND_PLACE
|
|
jp .Payout
|
|
; e06c2
|
|
|
|
.OneTwo: ; e06c2
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $18
|
|
jr z, .WinNine
|
|
jp .Lose
|
|
|
|
.ThreeFour: ; e06cc
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $18
|
|
cp $8
|
|
jr z, .WinNine
|
|
jp .Lose
|
|
|
|
.FiveSix: ; e06d8
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $18
|
|
cp $10
|
|
jr z, .WinNine
|
|
jp .Lose
|
|
|
|
.WinNine: ; e06e4
|
|
ld c, $9
|
|
ld de, SFX_2ND_PLACE
|
|
jp .Payout
|
|
; e06ec
|
|
|
|
.Pikachu: ; e06ec
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $3
|
|
jr z, .WinTwelve
|
|
jp .Lose
|
|
|
|
.Jigglypuff: ; e06f6
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $3
|
|
cp $1
|
|
jr z, .WinTwelve
|
|
jp .Lose
|
|
|
|
.Poliwag: ; e0702
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $3
|
|
cp $2
|
|
jr z, .WinTwelve
|
|
jp .Lose
|
|
|
|
.Oddish: ; e070e
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $3
|
|
cp $3
|
|
jr z, .WinTwelve
|
|
jp .Lose
|
|
|
|
.WinTwelve: ; e071a
|
|
ld c, $c
|
|
ld de, SFX_2ND_PLACE
|
|
jp .Payout
|
|
; e0722
|
|
|
|
.One: ; e0722
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $1c
|
|
jr z, .WinEighteen
|
|
jp .Lose
|
|
|
|
.Two: ; e072c
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $1c
|
|
cp $4
|
|
jr z, .WinEighteen
|
|
jp .Lose
|
|
|
|
.Three: ; e0738
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $1c
|
|
cp $8
|
|
jr z, .WinEighteen
|
|
jp .Lose
|
|
|
|
.Four: ; e0744
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $1c
|
|
cp $c
|
|
jr z, .WinEighteen
|
|
jp .Lose
|
|
|
|
.Five: ; e0750
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $1c
|
|
cp $10
|
|
jr z, .WinEighteen
|
|
jp .Lose
|
|
|
|
.Six: ; e075c
|
|
ld a, [wCardFlipFaceUpCard]
|
|
and $1c
|
|
cp $14
|
|
jr z, .WinEighteen
|
|
jp .Lose
|
|
|
|
.WinEighteen: ; e0768
|
|
ld c, $12
|
|
ld de, SFX_2ND_PLACE
|
|
jp .Payout
|
|
; e0770
|
|
|
|
|
|
.PikaOne: ; e0770
|
|
ld e, $0
|
|
jr .CheckWin72
|
|
|
|
.JigglyOne: ; e0774
|
|
ld e, $1
|
|
jr .CheckWin72
|
|
|
|
.PoliOne: ; e0778
|
|
ld e, $2
|
|
jr .CheckWin72
|
|
|
|
.OddOne: ; e077c
|
|
ld e, $3
|
|
jr .CheckWin72
|
|
|
|
.PikaTwo: ; e0780
|
|
ld e, $4
|
|
jr .CheckWin72
|
|
|
|
.JigglyTwo: ; e0784
|
|
ld e, $5
|
|
jr .CheckWin72
|
|
|
|
.PoliTwo: ; e0788
|
|
ld e, $6
|
|
jr .CheckWin72
|
|
|
|
.OddTwo: ; e078c
|
|
ld e, $7
|
|
jr .CheckWin72
|
|
|
|
.PikaThree: ; e0790
|
|
ld e, $8
|
|
jr .CheckWin72
|
|
|
|
.JigglyThree: ; e0794
|
|
ld e, $9
|
|
jr .CheckWin72
|
|
|
|
.PoliThree: ; e0798
|
|
ld e, $a
|
|
jr .CheckWin72
|
|
|
|
.OddThree: ; e079c
|
|
ld e, $b
|
|
jr .CheckWin72
|
|
|
|
.PikaFour: ; e07a0
|
|
ld e, $c
|
|
jr .CheckWin72
|
|
|
|
.JigglyFour: ; e07a4
|
|
ld e, $d
|
|
jr .CheckWin72
|
|
|
|
.PoliFour: ; e07a8
|
|
ld e, $e
|
|
jr .CheckWin72
|
|
|
|
.OddFour: ; e07ac
|
|
ld e, $f
|
|
jr .CheckWin72
|
|
|
|
.PikaFive: ; e07b0
|
|
ld e, $10
|
|
jr .CheckWin72
|
|
|
|
.JigglyFive: ; e07b4
|
|
ld e, $11
|
|
jr .CheckWin72
|
|
|
|
.PoliFive: ; e07b8
|
|
ld e, $12
|
|
jr .CheckWin72
|
|
|
|
.OddFive: ; e07bc
|
|
ld e, $13
|
|
jr .CheckWin72
|
|
|
|
.PikaSix: ; e07c0
|
|
ld e, $14
|
|
jr .CheckWin72
|
|
|
|
.JigglySix: ; e07c4
|
|
ld e, $15
|
|
jr .CheckWin72
|
|
|
|
.PoliSix: ; e07c8
|
|
ld e, $16
|
|
jr .CheckWin72
|
|
|
|
.OddSix: ; e07cc
|
|
ld e, $17
|
|
|
|
.CheckWin72: ; e07ce
|
|
ld a, [wCardFlipFaceUpCard]
|
|
cp e
|
|
jr nz, .Lose
|
|
ld c, 72
|
|
ld de, SFX_2ND_PLACE
|
|
jr .Payout
|
|
|
|
.Lose: ; e07db
|
|
ld de, SFX_WRONG
|
|
call PlaySFX
|
|
ld hl, .Text_Darn
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
call WaitSFX
|
|
ret
|
|
|
|
.Payout: ; e07eb
|
|
push bc
|
|
push de
|
|
ld hl, .Text_Yeah
|
|
call CardFlip_UpdateCoinBalanceDisplay
|
|
pop de
|
|
call PlaySFX
|
|
call WaitSFX
|
|
pop bc
|
|
.loop
|
|
push bc
|
|
call .IsCoinCaseFull
|
|
jr c, .full
|
|
call .AddCoinPlaySFX
|
|
|
|
.full
|
|
call CardFlip_PrintCoinBalance
|
|
ld c, 2
|
|
call DelayFrames
|
|
pop bc
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; e0811
|
|
|
|
.Text_Yeah: ; 0xe0811
|
|
; Yeah!
|
|
text_jump UnknownText_0x1c5813
|
|
db "@"
|
|
; 0xe0816
|
|
|
|
.Text_Darn: ; 0xe0816
|
|
; Darn…
|
|
text_jump UnknownText_0x1c581a
|
|
db "@"
|
|
; 0xe081b
|
|
|
|
.AddCoinPlaySFX: ; e081b
|
|
ld a, [Coins]
|
|
ld h, a
|
|
ld a, [Coins + 1]
|
|
ld l, a
|
|
inc hl
|
|
ld a, h
|
|
ld [Coins], a
|
|
ld a, l
|
|
ld [Coins + 1], a
|
|
ld de, SFX_PAY_DAY
|
|
call PlaySFX
|
|
ret
|
|
; e0833
|
|
|
|
.IsCoinCaseFull: ; e0833
|
|
ld a, [Coins]
|
|
cp HIGH(MAX_COINS)
|
|
jr c, .less
|
|
jr z, .check_low
|
|
jr .more
|
|
|
|
.check_low
|
|
ld a, [Coins + 1]
|
|
cp LOW(MAX_COINS)
|
|
jr c, .less
|
|
|
|
.more
|
|
scf
|
|
ret
|
|
|
|
.less
|
|
and a
|
|
ret
|
|
; e0849
|
|
|
|
PlaceOAMCardBorder: ; e0849
|
|
call GetCoordsOfChosenCard
|
|
ld hl, .SpriteData
|
|
call CardFlip_CopyOAM
|
|
ret
|
|
; e0853
|
|
|
|
.SpriteData: ; e0853
|
|
db 18
|
|
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
|
|
|
|
ChooseCard_HandleJoypad: ; e089c
|
|
ld hl, hJoyLast
|
|
ld a, [hl]
|
|
and D_LEFT
|
|
jp nz, .d_left
|
|
ld a, [hl]
|
|
and D_RIGHT
|
|
jp nz, .d_right
|
|
ld a, [hl]
|
|
and D_UP
|
|
jp nz, .d_up
|
|
ld a, [hl]
|
|
and D_DOWN
|
|
jp nz, .d_down
|
|
ret
|
|
; e08b8
|
|
|
|
.d_left ; e08b8
|
|
ld hl, wCardFlipCursorX
|
|
ld a, [wCardFlipCursorY]
|
|
and a
|
|
jr z, .mon_pair_left
|
|
cp $1
|
|
jr z, .mon_group_left
|
|
ld a, [hl]
|
|
and a
|
|
ret z
|
|
dec [hl]
|
|
jp .play_sound
|
|
|
|
.mon_group_left
|
|
ld a, [hl]
|
|
cp $3
|
|
jr c, .left_to_number_gp
|
|
dec [hl]
|
|
jp .play_sound
|
|
|
|
.mon_pair_left
|
|
ld a, [hl]
|
|
and $e
|
|
ld [hl], a
|
|
cp $3
|
|
jr c, .left_to_number_gp
|
|
dec [hl]
|
|
dec [hl]
|
|
jp .play_sound
|
|
|
|
.left_to_number_gp
|
|
ld a, $2
|
|
ld [wCardFlipCursorY], a
|
|
ld a, $1
|
|
ld [wCardFlipCursorX], a
|
|
jp .play_sound
|
|
; e08ef
|
|
|
|
.d_right ; e08ef
|
|
ld hl, wCardFlipCursorX
|
|
ld a, [wCardFlipCursorY]
|
|
and a
|
|
jr z, .mon_pair_right
|
|
ld a, [hl]
|
|
cp $5
|
|
ret nc
|
|
inc [hl]
|
|
jr .play_sound
|
|
|
|
.mon_pair_right
|
|
ld a, [hl]
|
|
and $e
|
|
ld [hl], a
|
|
cp $4
|
|
ret nc
|
|
inc [hl]
|
|
inc [hl]
|
|
jr .play_sound
|
|
|
|
.d_up ; e090a
|
|
ld hl, wCardFlipCursorY
|
|
ld a, [wCardFlipCursorX]
|
|
and a
|
|
jr z, .num_pair_up
|
|
cp $1
|
|
jr z, .num_gp_up
|
|
ld a, [hl]
|
|
and a
|
|
ret z
|
|
dec [hl]
|
|
jr .play_sound
|
|
|
|
.num_gp_up
|
|
ld a, [hl]
|
|
cp $3
|
|
jr c, .up_to_mon_group
|
|
dec [hl]
|
|
jr .play_sound
|
|
|
|
.num_pair_up
|
|
ld a, [hl]
|
|
and $e
|
|
ld [hl], a
|
|
cp $3
|
|
jr c, .up_to_mon_group
|
|
dec [hl]
|
|
dec [hl]
|
|
jr .play_sound
|
|
|
|
.up_to_mon_group
|
|
ld a, $1
|
|
ld [wCardFlipCursorY], a
|
|
ld a, $2
|
|
ld [wCardFlipCursorX], a
|
|
jr .play_sound
|
|
|
|
.d_down ; e093d
|
|
ld hl, wCardFlipCursorY
|
|
ld a, [wCardFlipCursorX]
|
|
and a
|
|
jr z, .num_pair_down
|
|
ld hl, wCardFlipCursorY
|
|
ld a, [hl]
|
|
cp $7
|
|
ret nc
|
|
inc [hl]
|
|
jr .play_sound
|
|
|
|
.num_pair_down
|
|
ld a, [hl]
|
|
and $e
|
|
ld [hl], a
|
|
cp $6
|
|
ret nc
|
|
inc [hl]
|
|
inc [hl]
|
|
|
|
.play_sound ; e0959
|
|
ld de, SFX_POKEBALLS_PLACED_ON_TABLE
|
|
call PlaySFX
|
|
ret
|
|
; e0960
|
|
|
|
CardFlip_UpdateCursorOAM: ; e0960
|
|
call ClearSprites
|
|
ld a, [hCGB]
|
|
and a
|
|
jr nz, .skip
|
|
ld a, [hVBlankCounter]
|
|
and $4
|
|
ret nz
|
|
|
|
.skip
|
|
call CollapseCursorPosition
|
|
add hl, hl
|
|
add hl, hl
|
|
ld de, .OAMData
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call CardFlip_CopyOAM
|
|
ret
|
|
; e0981
|
|
|
|
.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
|
|
|
|
.SingleTile: ; e0a41
|
|
db 6
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
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 CardFlip_FillBox
|
|
|
|
hlcoord 14, 1, AttrMap
|
|
lb bc, 2, 2
|
|
ld a, $2
|
|
call CardFlip_FillBox
|
|
|
|
hlcoord 16, 1, AttrMap
|
|
lb bc, 2, 2
|
|
ld a, $3
|
|
call CardFlip_FillBox
|
|
|
|
hlcoord 18, 1, AttrMap
|
|
lb bc, 2, 2
|
|
ld a, $4
|
|
call CardFlip_FillBox
|
|
|
|
hlcoord 9, 0, AttrMap
|
|
lb bc, 12, 1
|
|
ld a, $1
|
|
call CardFlip_FillBox
|
|
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, BANK(wBGPals1)
|
|
ld [rSVBK], a
|
|
ld hl, .palettes
|
|
ld de, wBGPals1
|
|
ld bc, 9 palettes
|
|
call CopyBytes
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; e0c93 (38:4c93)
|
|
|
|
.palettes ; e0c93
|
|
INCLUDE "data/palettes/card_flip.pal"
|
|
; e0cdb
|
|
|
|
CardFlipLZ03: ; e0cdb
|
|
INCBIN "gfx/card_flip/card_flip_3.2bpp.lz"
|
|
|
|
CardFlipOffButtonGFX: ; e0cf6
|
|
INCBIN "gfx/card_flip/off.2bpp"
|
|
|
|
CardFlipOnButtonGFX: ; e0d06
|
|
INCBIN "gfx/card_flip/on.2bpp"
|
|
|
|
CardFlipLZ01: ; e0d16
|
|
INCBIN "gfx/card_flip/card_flip_1.2bpp.lz"
|
|
|
|
CardFlipLZ02: ; e0ea8
|
|
INCBIN "gfx/card_flip/card_flip_2.2bpp.lz"
|
|
|
|
CardFlipTilemap: ; e110c
|
|
INCBIN "gfx/card_flip/card_flip.tilemap"
|
|
; e1190
|