685 lines
18 KiB
PHP
685 lines
18 KiB
PHP
PUSHS UNION "Screen Variables", WRAM0[SCREEN_VARS_START]
|
|
vAnimationFrame: db ;def vAnimationFrame EQU SCREEN_VARS_START
|
|
vState: db ;def vState EQU vAnimationFrame+1
|
|
vCurrentAnimation: dw ;def vCurrentAnimation EQU vState+1 ; 2 bytes
|
|
vShuffleIndex: db ;def vShuffleIndex equ vCurrentAnimation+2
|
|
vShuffleTime: dw ;def vShuffleTime equ vShuffleIndex+1 ; 2 bytes
|
|
vShuffleCount: db
|
|
def cShuffleMax equ 9 ; the number of times you have to shuffle before you've "fully shuffled"
|
|
POPS
|
|
|
|
def S_Center = 0
|
|
def S_RightOut = 1
|
|
def S_Right = 2
|
|
def S_RightIn = 3
|
|
def S_LeftOut = 4
|
|
def S_Left = 5
|
|
def S_LeftIn = 6
|
|
def S_UpOut = 7
|
|
def S_Up = 8
|
|
def S_UpIn = 9
|
|
def S_DownOut = 10
|
|
def S_Down = 11
|
|
def S_DownIn = 12
|
|
|
|
ScreenShuffle:
|
|
dw ShuffleSetup
|
|
dw ShuffleUpdate
|
|
dw ShuffleDraw
|
|
dw ShuffleTeardown
|
|
|
|
ShuffleSetup:
|
|
ld a, [SHUFFLED_DECK]
|
|
dec a
|
|
ld [vShuffleIndex], a
|
|
|
|
ld a, 0
|
|
ld [vAnimationFrame], a
|
|
ld [vShuffleCount], a
|
|
|
|
ld a, S_Center
|
|
ld [vState], a
|
|
|
|
ld hl, .asyncTask
|
|
call Async_Spawn_HL
|
|
|
|
ld hl, ZEROES
|
|
ld de, MY_OAM
|
|
ld bc, $100
|
|
call CopyRange
|
|
ret
|
|
|
|
|
|
.asyncTask
|
|
ld hl, ONES ; origin
|
|
ld de, _SCRN0 ; destination
|
|
ld b, 18 ; height
|
|
ld c, 20 ; width
|
|
call CopyTilesToMap
|
|
|
|
ld hl, Shuffle.BigCard
|
|
ld de, _SCRN0 + 32*4 + 7
|
|
ld b, 10
|
|
ld c, 6
|
|
call CopyTilesToMap
|
|
|
|
ld hl, Shuffle.ShuffledEdges
|
|
ld de, _SCRN0 + 32*5 + 7
|
|
ld b, 8
|
|
ld c, 1
|
|
call CopyTilesToMap
|
|
ld hl, Shuffle.ShuffledEdges + 8
|
|
ld de, _SCRN0 + 32*5 + 12
|
|
ld b, 8
|
|
ld c, 1
|
|
call CopyTilesToMap
|
|
|
|
|
|
; draw left arrow
|
|
ld a, VARIABLE_TILES_START + 18
|
|
ld [_SCRN0 + 32*8 + 3], a
|
|
ld a, VARIABLE_TILES_START + 20
|
|
ld [_SCRN0 + 32*9 + 3], a
|
|
|
|
; right arrow
|
|
ld a, VARIABLE_TILES_START + 19
|
|
ld [_SCRN0 + 32*8 + 16], a
|
|
ld a, VARIABLE_TILES_START + 21
|
|
ld [_SCRN0 + 32*9 + 16], a
|
|
|
|
; up arrow
|
|
ld a, VARIABLE_TILES_START + 22
|
|
ld [_SCRN0 + 32*2 + 9], a
|
|
ld a, VARIABLE_TILES_START + 23
|
|
ld [_SCRN0 + 32*2 + 10], a
|
|
|
|
; down arrow
|
|
ld a, VARIABLE_TILES_START + 24
|
|
ld [_SCRN0 + 32*15 + 9], a
|
|
ld a, VARIABLE_TILES_START + 25
|
|
ld [_SCRN0 + 32*15 + 10], a
|
|
|
|
ld hl, Shuffle.UITileData
|
|
ld de, _VRAM + $1000 + VARIABLE_TILES_START*16
|
|
ld bc, Shuffle.UITileDataEnd - Shuffle.UITileData
|
|
call CopyRange
|
|
|
|
ret
|
|
|
|
ShuffleUpdate:
|
|
; incrrement vShuffleTime so we can use it for seeding RNG
|
|
ld hl, vShuffleTime
|
|
call IncrementTimer
|
|
|
|
call ScrollBackgroundTile
|
|
|
|
ld a, [rMYBTNP]
|
|
cp a, 0
|
|
jr z, .doneWithButtons
|
|
ld a, [rLFSR]
|
|
ld [rLFSR+1], a ; lfsr = (lfsr << 8) + (vShuffleTime & $ff)
|
|
ld a, [vShuffleTime]
|
|
ld [rLFSR], a
|
|
|
|
; check for A button press and change scene
|
|
ld hl, rMYBTNP
|
|
bit 5, [hl]
|
|
jp z, .doneWithB
|
|
ld hl, ScreenMainMenu
|
|
call ChangeScene
|
|
ret
|
|
.doneWithB
|
|
call ShuffleButtonHandler
|
|
.doneWithButtons
|
|
|
|
call ShufflePickAnimation
|
|
|
|
ld a, [vAnimationFrame]
|
|
inc a
|
|
ld [vAnimationFrame], a
|
|
cp a, [hl]
|
|
call z, ShuffleAdvanceState
|
|
|
|
call ShufflePickAnimation
|
|
ld a, [vAnimationFrame]
|
|
call ArrayClamp
|
|
ld [vAnimationFrame], a
|
|
|
|
call ShufflePickAnimation
|
|
|
|
call ShuffleAnimate
|
|
|
|
ret
|
|
|
|
ShuffleButtonHandler:
|
|
ld a, [vState]
|
|
cp a, S_Center
|
|
jp z, CenterButtonHandler
|
|
|
|
ld a, [vState]
|
|
cp a, S_Right
|
|
jp z, RightButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_RightOut
|
|
jp z, RightButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_RightIn
|
|
jp z, CenterButtonHandler
|
|
|
|
ld a, [vState]
|
|
cp a, S_Left
|
|
jp z, LeftButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_LeftOut
|
|
jp z, LeftButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_LeftIn
|
|
jp z, CenterButtonHandler
|
|
|
|
ld a, [vState]
|
|
cp a, S_Up
|
|
jp z, UpButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_UpOut
|
|
jp z, UpButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_UpIn
|
|
jp z, CenterButtonHandler
|
|
|
|
ld a, [vState]
|
|
cp a, S_Down
|
|
jp z, DownButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_DownOut
|
|
jp z, DownButtonHandler
|
|
ld a, [vState]
|
|
cp a, S_DownIn
|
|
jp z, CenterButtonHandler
|
|
|
|
ret
|
|
|
|
CenterButtonHandler:
|
|
|
|
ld hl, rMYBTNP
|
|
: bit 0, [hl]
|
|
jp z, :+
|
|
ld a, S_RightOut
|
|
ld [vState], a
|
|
: bit 1, [hl]
|
|
jp z, :+
|
|
ld a, S_LeftOut
|
|
ld [vState], a
|
|
: bit 2, [hl]
|
|
jp z, :+
|
|
ld a, S_UpOut
|
|
ld [vState], a
|
|
: bit 3, [hl]
|
|
jp z, :+
|
|
ld a, S_DownOut
|
|
ld [vState], a
|
|
: ret
|
|
|
|
RightButtonHandler:
|
|
ld hl, rMYBTNP
|
|
: bit 1, [hl]
|
|
jp z, :+
|
|
|
|
call DoSomeShuffling ; shuffle whenever we move into an inward state
|
|
ld a, S_RightIn
|
|
ld [vState], a
|
|
: ret
|
|
|
|
LeftButtonHandler:
|
|
ld hl, rMYBTNP
|
|
: bit 0, [hl]
|
|
jp z, :+
|
|
|
|
call DoSomeShuffling
|
|
ld a, S_LeftIn
|
|
ld [vState], a
|
|
: ret
|
|
|
|
UpButtonHandler:
|
|
ld hl, rMYBTNP
|
|
: bit 3, [hl]
|
|
jp z, :+
|
|
|
|
call DoSomeShuffling
|
|
ld a, S_UpIn
|
|
ld [vState], a
|
|
: ret
|
|
|
|
DownButtonHandler:
|
|
ld hl, rMYBTNP
|
|
: bit 2, [hl]
|
|
jp z, :+
|
|
|
|
call DoSomeShuffling
|
|
ld a, S_DownIn
|
|
ld [vState], a
|
|
: ret
|
|
|
|
|
|
|
|
ShuffleAdvanceState:
|
|
ld a, [vState]
|
|
ld hl, ShuffleNextStates + 1
|
|
ld b, 0
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [vState], a
|
|
ld a, 0
|
|
ld [vAnimationFrame], a
|
|
ret
|
|
ShufflePickAnimation:
|
|
ld a, [vState]
|
|
ld b, 0
|
|
ld c, a
|
|
ld hl, ShuffleAnimations + 1
|
|
add hl, bc
|
|
add hl, bc
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
ret
|
|
|
|
ShuffleAnimate:
|
|
; hl has to hold the address of the animation
|
|
|
|
inc hl
|
|
ld b, 0
|
|
ld a, [vAnimationFrame]
|
|
ld c, a
|
|
add hl, bc
|
|
add hl, bc ; two bytes per entry
|
|
|
|
; hl points to xy offsets
|
|
ld b, [hl]
|
|
inc hl
|
|
ld c, [hl]
|
|
ld a, 32
|
|
ld e, a
|
|
ld hl, MY_OAM
|
|
call DrawWholeCard ; hl memory location, b y, c x, e width, d wiggle
|
|
|
|
ld a, [vState]
|
|
cp a, S_RightIn
|
|
jp z, HideSprites
|
|
cp a, S_LeftIn
|
|
jp z, HideSprites
|
|
cp a, S_UpIn
|
|
jp z, HideSprites
|
|
cp a, S_DownIn
|
|
jp z, HideSprites
|
|
|
|
call ShowSprites
|
|
ret
|
|
|
|
HideSprites:
|
|
ld hl, MY_OAM
|
|
.testTile
|
|
ld a, [hl]
|
|
cp a, (2+4)*8 ; y < 5*8 => skip
|
|
jp c, .goToNextTile
|
|
cp a, (2+5+8)*8 ; y > (5+8)*8 => skip
|
|
jp nc, .goToNextTile
|
|
|
|
inc hl
|
|
ld a, [hl] ; x value
|
|
dec hl
|
|
cp a, (1+7)*8 ; x < 7*8 => skip
|
|
jp c, .goToNextTile
|
|
cp a, (1+12)*8 ; x > 12*8 => skip
|
|
jp nc, .goToNextTile
|
|
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
set OAMB_PRI, [hl]
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
|
|
.goToNextTile
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
ld a, $A0
|
|
cp a, l
|
|
jp nz, .testTile
|
|
|
|
ret
|
|
|
|
ShowSprites:
|
|
ld hl, MY_OAM
|
|
.loop
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
res OAMB_PRI, [hl]
|
|
inc hl
|
|
ld a, $A0
|
|
cp a, l
|
|
jp nz, .loop
|
|
|
|
ret
|
|
|
|
ShuffleDraw:
|
|
ld a, [vCurrentBackgroundTile]
|
|
ld l, a
|
|
ld a, [vCurrentBackgroundTile+1]
|
|
ld h, a
|
|
ld de, _VRAM + $1000 + 1*16
|
|
call CopyOneTileData
|
|
|
|
ld de, SAFE_DMA_LOCATION
|
|
ld a, HIGH(MY_OAM)
|
|
call RunDMA
|
|
|
|
ret
|
|
|
|
ShuffleTeardown:
|
|
ret
|
|
|
|
DoSomeShuffling:
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap
|
|
call OneSwap; 10 shuffles
|
|
ld hl, vShuffleCount
|
|
inc [hl]
|
|
|
|
ld hl, vAsyncIsBusy
|
|
xor a, a
|
|
cp a, [hl]
|
|
ld hl, .asyncTask
|
|
call z, Async_Spawn_HL
|
|
|
|
ret
|
|
|
|
|
|
.asyncTask
|
|
ld hl, vShuffleCount
|
|
ld a, cShuffleMax
|
|
cp a, [hl]
|
|
jr nc, .drawFrame ; if shufflemax-shufflecount doesn't carry, then draw a frame of animation
|
|
ret c ; if shufflemax - shufflecount does carry, then we don't have to draw anything
|
|
|
|
.drawFrame
|
|
ld a, [vShuffleCount]
|
|
ld hl, Shuffle.ShuffledEdges
|
|
ld bc, 16
|
|
: ; step forward by 16, vShuffleCount times
|
|
add hl, bc
|
|
dec a
|
|
jr nz, :-
|
|
; hl now points to the appropriate starting Shuffle Edge
|
|
ld de, _SCRN0 + 32*5 + 7
|
|
ld b, 8
|
|
ld c, 1
|
|
call CopyTilesToMap
|
|
|
|
; now do the same thing but stepped forward 8 tiles to draw the right sides of the things
|
|
ld a, [vShuffleCount]
|
|
ld hl, Shuffle.ShuffledEdges + 8
|
|
ld bc, 16
|
|
: ; step forward by 16, vShuffleCount times
|
|
add hl, bc
|
|
dec a
|
|
jr nz, :-
|
|
; hl now points to the appropriate starting Shuffle Edge
|
|
ld de, _SCRN0 + 32*5 + 12
|
|
ld b, 8
|
|
ld c, 1
|
|
call CopyTilesToMap
|
|
|
|
ld hl, vShuffleCount
|
|
ld a, cShuffleMax
|
|
cp a, [hl]
|
|
ret nz
|
|
|
|
ld hl, Shuffle.ShuffledPopup
|
|
ld de, _SCRN0 + 32*15 + 5
|
|
ld b, 3
|
|
ld c, 11
|
|
call CopyTilesToMap
|
|
|
|
ld hl, Shuffle.ShuffledText
|
|
ld de, _SCRN0 + 32*16 + 6
|
|
call PrintString
|
|
ret
|
|
|
|
OneSwap: ; shuffles once and decrements vshuffleindex
|
|
; vShuffleIndex holds the index of the next card to swap with something
|
|
ld a, [vShuffleIndex]
|
|
cp a, 1
|
|
jp z, .zeroIndex ; if we're swapping index 1 with index 0 skip it
|
|
|
|
ld d, a
|
|
dec d ; this holds the highest index we could want to swap with
|
|
|
|
call RandomUnderD ; takes d as limit (inclusive)
|
|
ld e, a ; shuffle 2 is randint(vshuffleindex-1)
|
|
ld c, d ; shuffle 1 is vshuffleindex
|
|
ld hl, SHUFFLED_DECK
|
|
call SwapCards ; arguments c and e as indices to swap, hl as array in memory
|
|
|
|
call ClockLFSR
|
|
ld a, [vShuffleIndex]
|
|
ld b, 0
|
|
ld c, a
|
|
ld hl, DECK_FLIPS+1
|
|
add hl, bc
|
|
ld a, [rLFSR]
|
|
and a, %10000000
|
|
ld [hl], a
|
|
|
|
|
|
ld a, [vShuffleIndex]
|
|
dec a
|
|
ld [vShuffleIndex], a ; decrement vshuffleindex so the next time around
|
|
; we do the next step of the shuffle
|
|
ret
|
|
.zeroIndex
|
|
ld a, [SHUFFLED_DECK]
|
|
dec a
|
|
ld [vShuffleIndex], a
|
|
ret
|
|
|
|
|
|
ShuffleNextStates:
|
|
db 13,
|
|
db S_Center
|
|
db S_Right ;def S_RightOut = 1
|
|
db S_Right ; def S_Right = 2
|
|
db S_Center ;def S_RightIn = 3
|
|
db S_Left ;def S_LeftOut = 4
|
|
db S_Left ;def S_Left = 5
|
|
db S_Center ;def S_LeftIn = 6
|
|
db S_Up ;def S_UpOut = 7
|
|
db S_Up ;def S_Up = 8
|
|
db S_Center ;def S_UpIn = 9
|
|
db S_Down ;def S_DownOut = 10
|
|
db S_Down ;def S_Down = 11
|
|
db S_Center ;def S_DownIn = 12
|
|
ShuffleAnimations:
|
|
db 13,
|
|
dw ShuffleAnimationNone ; def S_Center = 0
|
|
dw ShuffleAnimationRightOut ;def S_RightOut = 1
|
|
dw ShuffleAnimationRight ; def S_Right = 2
|
|
dw ShuffleAnimationRightIn ;def S_RightIn = 3
|
|
dw ShuffleAnimationLeftOut ;def S_LeftOut = 4
|
|
dw ShuffleAnimationLeft ;def S_Left = 5
|
|
dw ShuffleAnimationLeftIn ;def S_LeftIn = 6
|
|
dw ShuffleAnimationUpOut ;def S_UpOut = 7
|
|
dw ShuffleAnimationUp ;def S_Up = 8
|
|
dw ShuffleAnimationUpIn ;def S_UpIn = 9
|
|
dw ShuffleAnimationDownOut ;def S_DownOut = 10
|
|
dw ShuffleAnimationDown ;def S_Down = 11
|
|
dw ShuffleAnimationDownIn ;def S_DownIn = 12
|
|
|
|
ShuffleAnimationNone:
|
|
db 1, 56, 72
|
|
ShuffleAnimationRight:
|
|
db 1, 56, 117
|
|
ShuffleAnimationRightOut:
|
|
db 9, 56, 72, 56, 80, 56, 88, 56, 96, 56, 103, 56, 108, 56, 112, 56, 116, 56, 117,
|
|
ShuffleAnimationRightIn:
|
|
db 8, 56, 115, 56, 104, 56, 96, 56, 88, 56, 80, 56, 76, 56, 73, 56, 72,
|
|
ShuffleAnimationLeft:
|
|
db 1, 56, 27
|
|
ShuffleAnimationLeftOut:
|
|
db 9, 56, 72, 56, 64, 56, 56, 56, 49, 56, 42, 56, 36, 56, 33, 56, 29, 56, 28,
|
|
ShuffleAnimationLeftIn:
|
|
db 8, 56, 32, 56, 40, 56, 49, 56, 57, 56, 62, 56, 67, 56, 71, 56, 72,
|
|
ShuffleAnimationUp:
|
|
db 1, -24, 72
|
|
ShuffleAnimationUpOut:
|
|
db 13, 56, 72, 48, 72, 40, 72, 32, 72, 24, 72, 16, 72, 8, 72, 0, 72, -7, 72, -14, 72, -18, 72, -23, 72, -24, 72
|
|
ShuffleAnimationUpIn:
|
|
db 10, 1, 72, 8, 72, 16, 72, 24, 72, 32, 72, 40, 72, 46, 72, 52, 72, 55, 72, 56, 72,
|
|
ShuffleAnimationDown:
|
|
db 1, 136, 72
|
|
ShuffleAnimationDownOut:
|
|
db 13, 56, 72, 64, 72, 72, 72, 80, 72, 88, 72, 96, 72, 105, 72, 112, 72, 119, 72, 125, 72, 129, 72, 134, 72, 136, 72,
|
|
ShuffleAnimationDownIn:
|
|
db 12, 136, 72, 128, 72, 120, 72, 112, 72, 104, 72, 96, 72, 88, 72, 80, 72, 68, 72, 61, 72, 58, 72, 56, 72,
|
|
Shuffle.UITileData:
|
|
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
db $00,$ff,$3f,$ff,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0
|
|
db $00,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
|
db $00,$ff,$fc,$ff,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03
|
|
db $40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0
|
|
db $00,$ff,$7f,$ff,$7f,$ff,$60,$ff,$6f,$ff,$6d,$fa,$6a,$fd,$6d,$fa
|
|
db $00,$ff,$ff,$ff,$ff,$ff,$00,$ff,$ff,$ff,$55,$aa,$aa,$55,$55,$aa
|
|
db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$56,$bf,$b6,$5f,$56,$bf
|
|
db $02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03
|
|
db $6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa
|
|
db $aa,$55,$55,$aa,$aa,$55,$55,$aa,$aa,$55,$55,$aa,$aa,$55,$55,$aa
|
|
db $b6,$5f,$56,$bf,$b6,$5f,$56,$bf,$b6,$5f,$56,$bf,$b6,$5f,$56,$bf
|
|
db $6a,$fd,$6d,$fa,$6a,$fd,$6f,$ff,$60,$ff,$7f,$ff,$7f,$ff,$00,$ff
|
|
db $aa,$55,$55,$aa,$aa,$55,$ff,$ff,$00,$ff,$ff,$ff,$ff,$ff,$00,$ff
|
|
db $b6,$5f,$56,$bf,$b6,$5f,$f6,$ff,$06,$ff,$fe,$ff,$fe,$ff,$00,$ff
|
|
db $40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$3f,$ff,$00,$ff
|
|
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff,$00,$ff
|
|
db $02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$fc,$ff,$00,$ff
|
|
db $60,$1f,$ce,$3f,$d2,$33,$92,$73,$a2,$63,$22,$e3,$4a,$cb,$5a,$db
|
|
db $06,$f8,$73,$fc,$4b,$cc,$49,$ce,$45,$c6,$44,$c7,$52,$d3,$5a,$db
|
|
db $5a,$db,$4a,$cb,$22,$e3,$a2,$63,$92,$73,$d2,$33,$ce,$3f,$60,$1f
|
|
db $5a,$db,$52,$d3,$44,$c7,$45,$c6,$49,$ce,$4b,$cc,$73,$fc,$06,$f8
|
|
db $78,$07,$e3,$1f,$8c,$7c,$31,$f1,$43,$c3,$40,$c0,$7f,$ff,$00,$ff
|
|
db $1e,$e0,$c7,$f8,$31,$3e,$8c,$8f,$c2,$c3,$02,$03,$fe,$ff,$00,$ff
|
|
db $00,$ff,$7f,$ff,$40,$c0,$43,$c3,$31,$f1,$8c,$7c,$e3,$1f,$78,$07
|
|
db $00,$ff,$fe,$ff,$02,$03,$c2,$c3,$8c,$8f,$31,$3e,$c7,$f8,$1e,$e0
|
|
db $40,$c7,$47,$ff,$5f,$ff,$1c,$ff,$5b,$ff,$5b,$fe,$6a,$ff,$6b,$fe
|
|
db $02,$ff,$ec,$ff,$ee,$ff,$e6,$ff,$66,$ff,$6c,$ff,$6c,$ff,$6c,$ff
|
|
db $40,$c0,$40,$c0,$40,$c7,$07,$ff,$7f,$ff,$7c,$ff,$63,$ff,$6f,$fe
|
|
db $02,$ff,$fc,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ac,$7f
|
|
db $02,$ff,$fc,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ec,$7f
|
|
db $40,$c0,$40,$c0,$40,$c3,$41,$c3,$41,$c3,$41,$c3,$41,$c3,$41,$c3
|
|
db $2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$26,$ff,$36,$ff
|
|
db $6a,$ff,$60,$ff,$6c,$ff,$6e,$ff,$66,$ff,$6c,$ff,$ec,$ff,$ec,$ff
|
|
db $2a,$fd,$2d,$fe,$36,$fd,$35,$fe,$36,$fd,$35,$fe,$36,$fd,$35,$fe
|
|
db $0a,$ff,$f0,$ff,$fc,$ff,$0e,$ff,$e6,$ff,$ac,$7f,$6c,$bf,$ac,$7f
|
|
db $5a,$ff,$da,$7f,$5a,$ff,$da,$7f,$da,$ff,$b2,$fb,$b2,$fb,$b2,$fb
|
|
db $41,$c3,$41,$c3,$41,$c3,$41,$c3,$43,$c7,$43,$c7,$43,$c7,$43,$c7
|
|
db $36,$ff,$36,$ff,$57,$ff,$57,$ff,$57,$ff,$57,$ff,$57,$ff,$52,$ff
|
|
db $cc,$ff,$dc,$ff,$da,$ff,$da,$ff,$da,$ff,$da,$ff,$da,$ff,$d2,$fb
|
|
db $36,$fd,$37,$fe,$5a,$ff,$5b,$fe,$5a,$ff,$5b,$fe,$5a,$ff,$5a,$ff
|
|
db $6c,$ff,$dc,$7f,$5a,$ff,$da,$7f,$5a,$ff,$da,$ff,$ba,$ff,$b2,$fb
|
|
db $36,$fd,$37,$fe,$5a,$ff,$5b,$fe,$5a,$ff,$5b,$fe,$5a,$ff,$5b,$fe
|
|
db $b2,$fb,$b2,$fb,$b2,$fb,$62,$f3,$62,$f3,$62,$f3,$62,$f3,$62,$f3
|
|
db $43,$c7,$43,$c7,$43,$c7,$43,$c7,$43,$c7,$43,$c7,$43,$c7,$43,$c7
|
|
db $5a,$ff,$5a,$ff,$5a,$ff,$49,$df,$49,$df,$49,$df,$49,$df,$49,$df
|
|
db $d2,$fb,$d2,$fb,$d2,$fb,$d2,$fb,$c2,$f3,$c2,$f3,$c2,$f3,$c2,$f3
|
|
db $5a,$ff,$5a,$ff,$5a,$ff,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df
|
|
db $b2,$fb,$b2,$fb,$b2,$fb,$72,$fb,$62,$f3,$62,$f3,$62,$f3,$62,$f3
|
|
db $5a,$ff,$5b,$fe,$5b,$ff,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df
|
|
db $62,$f3,$c2,$e3,$c2,$e3,$c2,$e3,$42,$e3,$42,$e3,$42,$e3,$02,$c3
|
|
db $02,$03,$02,$03,$02,$03,$02,$03,$02,$83,$02,$83,$02,$83,$02,$83
|
|
db $4d,$df,$4b,$df,$4b,$df,$4a,$df,$4a,$df,$42,$cf,$40,$cf,$40,$cf
|
|
db $c2,$f3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3
|
|
db $a2,$f3,$82,$e3,$82,$e3,$82,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3
|
|
db $4d,$df,$4d,$df,$4d,$df,$4c,$df,$4c,$df,$46,$cf,$46,$cf,$46,$cf
|
|
db $82,$c3,$82,$c3,$82,$c3,$82,$c3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3
|
|
db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$46,$cf,$46,$cf,$46,$cf
|
|
db $43,$c7,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf
|
|
db $40,$cf,$40,$cf,$44,$cf,$44,$cf,$44,$cf,$45,$cf,$45,$cf,$4d,$df
|
|
db $c2,$f3,$c2,$f3,$c2,$f3,$c2,$f3,$d2,$fb,$d2,$fb,$b2,$fb,$ba,$ff
|
|
db $62,$f3,$62,$f3,$62,$f3,$62,$f3,$b2,$fb,$b2,$fb,$b2,$fb,$ba,$ff
|
|
db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$45,$cf,$45,$cf,$45,$cf
|
|
db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf
|
|
db $4d,$df,$4d,$df,$4d,$df,$4b,$df,$5b,$ff,$5b,$ff,$5b,$ff,$5b,$ff
|
|
db $9a,$ff,$9a,$ff,$9a,$ff,$9c,$ff,$ac,$ff,$8c,$ff,$be,$ff,$be,$ff
|
|
db $da,$ff,$da,$7f,$5a,$ff,$dc,$7f,$ec,$ff,$8c,$ff,$7c,$ff,$fe,$ff
|
|
db $41,$cf,$41,$cf,$41,$cf,$43,$cf,$43,$cf,$4b,$df,$4b,$df,$4b,$df
|
|
db $43,$cf,$43,$cf,$43,$cf,$43,$cf,$43,$cf,$4b,$df,$4b,$df,$4d,$df
|
|
db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$4d,$df,$4d,$df,$4d,$df
|
|
db $5b,$ff,$5b,$ff,$33,$ff,$3b,$ff,$1b,$ff,$43,$df,$4b,$df,$40,$df
|
|
db $80,$ff,$ac,$ff,$8c,$ff,$bc,$ff,$bc,$ff,$80,$ff,$82,$c3,$02,$c3
|
|
db $80,$ff,$6c,$ff,$8c,$ff,$7c,$ff,$fc,$ff,$80,$ff,$02,$83,$02,$03
|
|
db $4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$40,$df
|
|
db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$40,$df
|
|
db $80,$ff,$02,$83,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03
|
|
db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4c,$df,$4f,$df,$4f,$df,$40,$df
|
|
Shuffle.UITileDataEnd:
|
|
|
|
Shuffle.BigCard: ; 6 wide by 10 tall
|
|
db $1b, $1c, $1c, $1c, $1c, $1d
|
|
db $1e, $1f, $20, $20, $21, $22
|
|
db $1e, $23, $24, $24, $25, $22
|
|
db $1e, $23, $24, $24, $25, $22
|
|
db $1e, $23, $24, $24, $25, $22
|
|
db $1e, $23, $24, $24, $25, $22
|
|
db $1e, $23, $24, $24, $25, $22
|
|
db $1e, $23, $24, $24, $25, $22
|
|
db $1e, $26, $27, $27, $28, $22
|
|
db $29, $2a, $2a, $2a, $2a, $2b
|
|
|
|
Shuffle.ShuffledEdges: ; this is a list of 10 pairs of 1x8 tall sprites, edges for the messy pile of cards
|
|
db $34, $3a, $40, $47, $4e, $55, $5a, $60
|
|
db $35, $3b, $41, $48, $4f, $56, $5b, $61
|
|
db $36, $3c, $42, $49, $4e, $55, $5a, $60
|
|
db $35, $3b, $41, $48, $4f, $56, $5b, $61
|
|
db $36, $3c, $42, $49, $4e, $55, $5a, $60
|
|
db $37, $3d, $43, $4a, $50, $57, $5c, $62
|
|
db $36, $3c, $44, $4b, $51, $58, $5d, $63
|
|
db $37, $3d, $43, $4a, $50, $57, $5c, $62
|
|
db $36, $3c, $44, $4b, $51, $58, $5d, $63
|
|
db $38, $3e, $45, $4c, $52, $57, $5c, $62
|
|
db $36, $3c, $44, $4b, $53, $59, $5e, $64
|
|
db $22, $22, $22, $4d, $52, $57, $5c, $62
|
|
db $36, $3c, $44, $4b, $53, $59, $5e, $64
|
|
db $22, $22, $22, $4d, $52, $57, $5c, $65
|
|
db $39, $3f, $46, $46, $54, $59, $5f, $66
|
|
db $22, $22, $22, $4d, $52, $57, $5c, $65
|
|
db $39, $3f, $46, $46, $54, $59, $5f, $66
|
|
db $22, $22, $22, $22, $22, $22, $22, $22
|
|
db $1e, $1e, $1e, $1e, $1e, $1e, $1e, $1e
|
|
db $22, $22, $22, $22, $22, $22, $22, $22
|
|
|
|
Shuffle.ShuffledText:
|
|
db 9, "Shuffled!"
|
|
|
|
Shuffle.ShuffledPopup1:
|
|
db 9, 8
|
|
db 3, 4
|
|
db 6, 7
|
|
Shuffle.ShuffledPopup2:
|
|
db 9, 2, 8
|
|
db 3, 0, 4
|
|
db 6, 5, 7
|
|
Shuffle.ShuffledPopup:
|
|
db 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8
|
|
db 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4
|
|
db 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7 |