From d83caf2db2b01416be0e13ba727f94e9cbde089e Mon Sep 17 00:00:00 2001 From: shoofle Date: Sat, 6 Dec 2025 14:24:16 -0500 Subject: [PATCH] messy pile style shuffle screen --- ScreenShuffle.inc | 270 +++++++++++++++++++++----------- card_art/screendesigns.aseprite | Bin 5587 -> 6249 bytes card_art/tileset.asm | 85 +++++++--- source.zip | Bin 866788 -> 872268 bytes 4 files changed, 242 insertions(+), 113 deletions(-) diff --git a/ScreenShuffle.inc b/ScreenShuffle.inc index 143eae3..fa1b7c4 100644 --- a/ScreenShuffle.inc +++ b/ScreenShuffle.inc @@ -5,7 +5,7 @@ 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 8 ; the number of times you have to shuffle before you've "fully shuffled" +def cShuffleMax equ 9 ; the number of times you have to shuffle before you've "fully shuffled" POPS def S_Center = 0 @@ -58,34 +58,45 @@ ShuffleSetup: call CopyTilesToMap ld hl, Shuffle.BigCard - ld de, _SCRN0 + 32*5 + 8 - ld b, 8 - ld c, 4 + 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 - ld a, VARIABLE_TILES_START + 9 ; draw left arrow + ld a, VARIABLE_TILES_START + 18 ld [_SCRN0 + 32*8 + 3], a - inc a + ld a, VARIABLE_TILES_START + 20 ld [_SCRN0 + 32*9 + 3], a ; right arrow - inc a + ld a, VARIABLE_TILES_START + 19 ld [_SCRN0 + 32*8 + 16], a - inc a + ld a, VARIABLE_TILES_START + 21 ld [_SCRN0 + 32*9 + 16], a ; up arrow - inc a + ld a, VARIABLE_TILES_START + 22 ld [_SCRN0 + 32*2 + 9], a - inc a + ld a, VARIABLE_TILES_START + 23 ld [_SCRN0 + 32*2 + 10], a ; down arrow - inc a + ld a, VARIABLE_TILES_START + 24 ld [_SCRN0 + 32*15 + 9], a - inc a + ld a, VARIABLE_TILES_START + 25 ld [_SCRN0 + 32*15 + 10], a ld hl, Shuffle.UITileData @@ -385,6 +396,8 @@ DoSomeShuffling: call OneSwap call OneSwap call OneSwap; 10 shuffles + ld hl, vShuffleCount + inc [hl] ld hl, vAsyncIsBusy xor a, a @@ -399,52 +412,51 @@ DoSomeShuffling: ld hl, vShuffleCount ld a, cShuffleMax cp a, [hl] - jr z, .lastCharge - jr nc, .addCharge - jr c, .done - .addCharge - inc [hl] - ld b, [hl] - - ld hl, _SCRN0 + 32*13 - ld de, _SCRN0 + 32*13 + 19 - - : ; loop - ld a, l - sub a, 32 - ld l, a - ld a, h - sbc a, 0 - ld h, a - ld [hl], VARIABLE_TILES_START + 17 - - ld a, e - sub a, 32 - ld e, a - ld a, d - sbc a, 0 - ld d, a - ld a, VARIABLE_TILES_START + 17 - ld [de], a - - - dec b - jr nz, :- - jr .done - .lastCharge - ; copy tiles from where they are linearly packed at an origin (hl) - ; to a rectangle in the tilemap in vram (de) - ; assuming it has height in b and width in c. - ld hl, Shuffle.ShuffledPopup - ld de, _SCRN0 + 32*14 + 5 - ld b, 3 - ld c, 11 - call CopyTilesToMap - - ld hl, Shuffle.ShuffledText - ld de, _SCRN0 + 32*15 + 6 - call PrintString - .done + 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 @@ -519,15 +531,15 @@ ShuffleAnimations: ShuffleAnimationNone: db 1, 56, 72 ShuffleAnimationRight: - db 1, 56, 115 + db 1, 56, 117 ShuffleAnimationRightOut: - db 9, 56, 72, 56, 80, 56, 88, 56, 96, 56, 103, 56, 108, 56, 112, 56, 114, 56, 115, + 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, 32 + db 1, 56, 27 ShuffleAnimationLeftOut: - db 9, 56, 72, 56, 64, 56, 56, 56, 49, 56, 42, 56, 36, 56, 35, 56, 33, 56, 32, + 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: @@ -543,38 +555,118 @@ db 13, 56, 72, 64, 72, 72, 72, 80, 72, 88, 72, 96, 72, 105, 72, 112, 72, 119, 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,$ff,$7f,$ff,$7f,$ff,$60,$ff,$6f,$ff,$6d,$fa,$6a,$fd,$6d,$fa ; top-left - db $00,$ff,$ff,$ff,$ff,$ff,$00,$ff,$ff,$ff,$55,$aa,$aa,$55,$55,$aa ; top-middle - db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$56,$bf,$b6,$5f,$56,$bf ; top-right - db $6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa ; middle-left - db $aa,$55,$55,$aa,$aa,$55,$55,$aa,$aa,$55,$55,$aa,$aa,$55,$55,$aa ; middle-middle - db $b6,$5f,$56,$bf,$b6,$5f,$56,$bf,$b6,$5f,$56,$bf,$b6,$5f,$56,$bf ; middle-right - db $6a,$fd,$6d,$fa,$6a,$fd,$6f,$ff,$60,$ff,$7f,$ff,$7f,$ff,$00,$ff ; bottom-left - db $aa,$55,$55,$aa,$aa,$55,$ff,$ff,$00,$ff,$ff,$ff,$ff,$ff,$00,$ff ; bottom-middle - db $b6,$5f,$56,$bf,$b6,$5f,$f6,$ff,$06,$ff,$fe,$ff,$fe,$ff,$00,$ff ; bottom-right - - db $60,$1f,$ce,$3f,$d2,$33,$92,$73,$a2,$63,$22,$e3,$4a,$cb,$5a,$db ; arrows, starting at VTS+9 - db $5a,$db,$4a,$cb,$22,$e3,$a2,$63,$92,$73,$d2,$33,$ce,$3f,$60,$1f - db $06,$f8,$73,$fc,$4b,$cc,$49,$ce,$45,$c6,$44,$c7,$52,$d3,$5a,$db ; right arrow +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 ; up arrow + 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 ; down arrow + 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 $00,$00,$7e,$7e,$00,$7e,$7e,$00,$7e,$00,$00,$7e,$7e,$7e,$00,$00 ; fill marker + 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: -def VTS = VARIABLE_TILES_START - db VTS, VTS+1, VTS+1, VTS+2 - db VTS+3, VTS+4, VTS+4, VTS+5 - db VTS+3, VTS+4, VTS+4, VTS+5 - db VTS+3, VTS+4, VTS+4, VTS+5 - db VTS+3, VTS+4, VTS+4, VTS+5 - db VTS+3, VTS+4, VTS+4, VTS+5 - db VTS+3, VTS+4, VTS+4, VTS+5 - db VTS+6, VTS+7, VTS+7, VTS+8 +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!" diff --git a/card_art/screendesigns.aseprite b/card_art/screendesigns.aseprite index 45b82bbc8bd688b9c56ec1974a28403b8b75fba0..28666f80ce796cd0efb6f702e9c2882df39d2664 100644 GIT binary patch delta 962 zcmV;z13moHE9o!-X&8|Leh%pu008>&3;|>S000aDv5pK4f1LsV03#p;000060000@ z0000800;m9000000000000000000000C55U0C=3GRtuKIAP7@(|2ywiJ|c?RPWR1Z zbPI$aw59xZkzHsPLH2KPum--ym*~X1xW?Cf6aJcjL)|A`qf%}754H~Z>lOE@@}B^a z{aA;Ov7gAqe{P2LTfJueLOw6oF`p0XZGNZqmfu*%g}|;1fnQd~xS#P`ouNhe_ve>J z2Xja5ugL%Hd5QE(Dh$98HA4Dlu8dj9ITiR0(9{f>XpeZmn%*f%%`=<3lq8}~_n1Z;lWV@%SNGRMK3 zui1l&e>Te3Ii&haS~aApYdd@olo_vdCgd0oB=j&}V1I;pxkug`q@rwpLQe}lf{P{z%O5FJzeExyNPeBV#m|BvYE z!TTw~As^I3e@*@9`UG_DkF3AC{hNFT{tiFthC}`Od`oeB0|;o3Ga{MvoVS<*-P!W_ z>)#jptJnCR#C69S;c?a9tNSvX?ceF2=p1x)A85uBFY?gW=Kc;8b@r(Dm0^DBzC~Z^ zBHZnDZrXg!bv>f=>+SrQ(B~g{-Qs0Dxlilf`Tqebc_e4Eu>%YP2Op z0Rodc5hDQtvtAMF0tX5K000Fb1(SdhF@L?z*G>Xq6ot_N1{kVHla3VW2&kZRX(H(R zKM(ujpJeA;5W)SC2+^RD8y{si$lVuy(BzA z3eq>uN}r+%OcI>&EUG#G3?iov^7y#PmLDe%Kmfx`|G+1x-9z7 zU+!7`>qGN``)gVB`wnxx&senYSbg4Jrfu&7CM=NGm{d0T(eLQLThebhoS0C#$hYhs z|HZfuV!t1pkC`tR$tE22XZvrXUv?1&w*Hf53&&}3w(k6S{@%^gg8p;O=FZ$^k>z@& z$F*Nv=TF!k>+m`DXWFIfT2kJ}R;oXVe$tY5qR!>(8Rd=B{y*9@HTqJ`Vd*`-2X++v zapLIDOSr`RrQ$@6lNZOL+&%4eN1v~hnej_RqRp4x{<-0+r_4)sGF0!a>3aU@@4b6T z55HC}`&GZ{jD6TQ9Tg2)}^D C#V?Hj diff --git a/card_art/tileset.asm b/card_art/tileset.asm index 21463d9..d1e251f 100644 --- a/card_art/tileset.asm +++ b/card_art/tileset.asm @@ -4,54 +4,91 @@ tileset: 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 $5a,$db,$4a,$cb,$22,$e3,$a2,$63,$92,$73,$d2,$33,$ce,$3f,$60,$1f 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 $00,$00,$7c,$7c,$44,$7c,$54,$6c,$54,$6c,$44,$7c,$7c,$7c,$00,$00 - db $00,$00,$00,$00,$00,$75,$00,$45,$00,$77,$00,$15,$00,$75,$00,$00 - db $00,$00,$00,$00,$00,$57,$00,$54,$00,$56,$00,$54,$00,$24,$00,$00 - db $c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3,$c2,$e3 - db $9a,$ff,$9a,$ff,$9a,$ff,$9c,$ff,$ac,$ff,$8c,$ff,$be,$ff,$be,$ff - db $80,$ff,$ac,$ff,$8c,$ff,$bc,$ff,$bc,$ff,$80,$ff,$82,$c3,$02,$c3 - db $c2,$f3,$c2,$f3,$c2,$f3,$c2,$f3,$d2,$fb,$d2,$fb,$b2,$fb,$ba,$ff - db $02,$ff,$ec,$ff,$ee,$ff,$ee,$ff,$66,$ff,$66,$ff,$6c,$ff,$6c,$ff - db $6c,$ff,$60,$ff,$6c,$ff,$6e,$ff,$66,$ff,$6c,$ff,$ec,$ff,$ec,$ff - db $d2,$fb,$d2,$fb,$d2,$fb,$d2,$fb,$c2,$f3,$c2,$f3,$c2,$f3,$c2,$e3 - db $cc,$ff,$dc,$ff,$da,$ff,$da,$ff,$da,$ff,$da,$ff,$da,$ff,$d2,$fb - db $40,$cf,$40,$cf,$44,$cf,$44,$cf,$44,$cf,$45,$cf,$45,$cf,$4d,$df 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 $40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$3f,$ff,$00,$ff - db $02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$fc,$ff,$00,$ff - db $00,$ff,$fc,$ff,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03 - 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,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff,$00,$ff - db $00,$00,$18,$98,$18,$98,$18,$98,$10,$90,$10,$90,$10,$90,$00,$00 - db $00,$00,$00,$80,$3e,$be,$1c,$9c,$08,$88,$08,$88,$1c,$9c,$00,$00 - db $00,$00,$1c,$9c,$3e,$be,$3e,$be,$3e,$be,$1c,$9c,$00,$80,$00,$00 - db $00,$00,$10,$90,$10,$90,$10,$90,$10,$90,$38,$b8,$10,$90,$00,$00 + 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 ShuffleUI: - db $2b, $2e, $2c, $2d + db $34, $35, $36, $35, $36, $37, $36, $37, $36, $38, $36, $22, $36, $22, $39, $22, $39, $22, $1e, $22 + db $3a, $3b, $3c, $3b, $3c, $3d, $3c, $3d, $3c, $3e, $3c, $22, $3c, $22, $3f, $22, $3f, $22, $1e, $22 + db $40, $41, $42, $41, $42, $43, $44, $43, $44, $45, $44, $22, $44, $22, $46, $22, $46, $22, $1e, $22 + db $47, $48, $49, $48, $49, $4a, $4b, $4a, $4b, $4c, $4b, $4d, $4b, $4d, $46, $4d, $46, $22, $1e, $22 + db $4e, $4f, $4e, $4f, $4e, $50, $51, $50, $51, $52, $53, $52, $53, $52, $54, $52, $54, $22, $1e, $22 + db $55, $56, $55, $56, $55, $57, $58, $57, $58, $57, $59, $57, $59, $57, $59, $57, $59, $22, $1e, $22 + db $5a, $5b, $5a, $5b, $5a, $5c, $5d, $5c, $5d, $5c, $5e, $5c, $5e, $5c, $5f, $5c, $5f, $22, $1e, $22 + db $60, $61, $60, $61, $60, $62, $63, $62, $63, $62, $64, $62, $64, $65, $66, $65, $66, $22, $1e, $22 diff --git a/source.zip b/source.zip index 6203cd6d564a504e44828d8e33f0f9d0882e6795..69c0ca7ceba558f3721152b7929f3f66b3432f73 100644 GIT binary patch delta 10007 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