From 430baf4a9213fe797cc3aed25af57994e0dbc142 Mon Sep 17 00:00:00 2001 From: shoofle Date: Fri, 19 Dec 2025 15:39:27 -0500 Subject: [PATCH] shuffled the shuffle, backing up work --- ScreenShuffle.inc | 105 ++++++++++++++------------------ card_art/screendesigns.aseprite | Bin 6183 -> 6156 bytes card_art/tileset.asm | 11 ++-- source.zip | Bin 874030 -> 873797 bytes 4 files changed, 52 insertions(+), 64 deletions(-) diff --git a/ScreenShuffle.inc b/ScreenShuffle.inc index 5ae9d50..963b29d 100644 --- a/ScreenShuffle.inc +++ b/ScreenShuffle.inc @@ -4,7 +4,8 @@ vState: db vShuffleIndex: db vShuffleTime: dw vShuffleCount: db -def cShuffleMax equ 8 ; the number of times you have to shuffle before you've "fully shuffled" +def cShuffleEdgeCount equ 8 ; the total number of available messy edges +def cShufflesRequired equ 3 ; how many times you have to shuffle to get a fully shuffled deck POPS def S_Center = 0 @@ -34,6 +35,8 @@ ShuffleSetup: ld a, 0 ld [vAnimationFrame], a + + ld a, cShuffleEdgeCount - cShufflesRequired ld [vShuffleCount], a ld a, S_Center @@ -79,16 +82,7 @@ ShuffleSetup: ld c, 6 call CopyTilesToMap - ld hl, Shuffle.ShuffledEdges - ld de, _SCRN0 + 32*7 + 7 - ld b, 8 - ld c, 1 - call CopyTilesToMap - ld hl, Shuffle.ShuffledEdges + 8 - ld de, _SCRN0 + 32*7 + 12 - ld b, 8 - ld c, 1 - call CopyTilesToMap + call UpdateEdges ; draw left arrow ld a, VARIABLE_TILES_START + 18 @@ -418,30 +412,7 @@ ShuffleDraw: ShuffleTeardown: ret -DoSomeShuffling: - rept 20 ; every time we shuffle do 20 swaps - call OneSwap - endr - 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 +UpdateEdges: ld a, [vShuffleCount] ld hl, Shuffle.ShuffledEdges ld bc, 16 @@ -469,11 +440,30 @@ DoSomeShuffling: ld c, 1 call CopyTilesToMap - ld hl, vShuffleCount - ld a, cShuffleMax - cp a, [hl] - ret nz + ret + +DoSomeShuffling: + rept 26 ; every time we shuffle do 20 swaps + call OneSwap + endr + 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, cShuffleEdgeCount + cp a, [hl] + call nc, UpdateEdges ; if shufflemax-shufflecount doesn't carry, then draw a frame of animation ret OneSwap: ; shuffles once and decrements vshuffleindex @@ -653,7 +643,6 @@ Shuffle.UITileData: 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 @@ -688,24 +677,24 @@ Shuffle.BigCard: ; 6 wide by 10 tall 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, $38, $3e, $45, $4c, $53, $5f, $62 -db $61, $39, $3f, $46, $4d, $54, $57, $5e -db $35, $3a, $40, $47, $4c, $53, $5f, $62 -db $61, $39, $3f, $46, $4d, $54, $57, $5e -db $35, $3a, $40, $47, $4c, $53, $5f, $62 -db $60, $3b, $41, $48, $4e, $55, $58, $5c -db $35, $3a, $42, $49, $4f, $56, $59, $5b -db $60, $3b, $41, $48, $4e, $55, $58, $5c -db $35, $3a, $42, $49, $51, $56, $59, $5b -db $36, $3c, $43, $4a, $50, $55, $58, $5c -db $35, $3a, $42, $49, $51, $56, $59, $5b -db $22, $22, $22, $4b, $50, $55, $58, $5c -db $37, $3d, $44, $44, $52, $56, $5a, $5d -db $22, $22, $22, $4b, $50, $55, $58, $5c -db $37, $3d, $44, $44, $52, $56, $5a, $5d -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 + db $34, $38, $3e, $45, $4c, $52, $5e, $61, + db $60, $39, $3f, $46, $4d, $53, $56, $5d + db $35, $3a, $40, $47, $4c, $52, $5e, $61 + db $60, $39, $3f, $46, $4d, $53, $56, $5d + db $35, $3a, $40, $47, $4c, $52, $5e, $61 + db $5f, $3b, $41, $48, $4e, $54, $57, $5b + db $35, $3a, $42, $49, $50, $55, $58, $5a + db $5f, $3b, $41, $48, $4e, $54, $57, $5b + db $35, $3a, $42, $49, $50, $55, $58, $5a + db $36, $3c, $43, $4a, $4f, $54, $57, $5b + db $35, $3a, $42, $49, $50, $55, $58, $5a + db $22, $22, $22, $4b, $4f, $54, $57, $5b + db $37, $3d, $44, $44, $51, $55, $59, $5c + db $22, $22, $22, $4b, $4f, $54, $57, $5b + db $37, $3d, $44, $44, $51, $55, $59, $5c + 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.ShuffleText: diff --git a/card_art/screendesigns.aseprite b/card_art/screendesigns.aseprite index b9d629441f1ba387581338a3a2a0fe180ac3feba..66a4046a43506c3c8c6336b50ab3cfa1b4f3c195 100644 GIT binary patch delta 892 zcmV-?1B3jhFpMw(43PnU4U8860Q&I<0b~FG00*&+3k`pN0ssIbAO!#b00sa607w7; z00;mG009610000000000000000000}0ssJboTXL?w!lgBQIga`KFh1s&jgS1sIxYluWeEIsb&T^neycUK2>*WlVstQf z)cK11->#QPzf@krwMkA7((_)0BJny?d}bM`Asd%w+^q%8+`FOT?K`sHU|>AD=N3wN zdq1|H1UJfqy$Da?{q@rZ{7b~YTqhQcRqu6-3O;|PwX~V%L7s@M*vq89H;)^LUoYmt zcqvci9nE{3V)S`m7G7k@Hs0-p=760*D9Q+sZh-Ef{3v}(b-B(Rsj+dmm!K|L?lJw% z{;AuAwX3%0vd?rLl%gc|27L}*kIvb+1MX%RvH5Msh@>ep$Bl76W)CXbC|~C=>8E2! ztA>9xb!^3Nht-T%I)nB&3TDY%VLw8=+#~M;qG(*zlWHh;Ha6OohJKm!^g4Py|BPSv zb$RxJ8%*kx;;v1!xz4C{I3UUakMT+39PpsurH;$`q;Wfv=2KRP9pdi1M~0q{^6m(S z1%@zm^;q&x5t2W295A&nXH4wx>!jP&jM{$>yZ@)?^yK+1l0#l-Nq;xyvjG!00|Ng5lRFkTf7J>DF%(77)ZN|P-QDf~|EOmmh1<)tl+Lt)#eT{m zF$f`yj7fZd%wPelWCOd#JqI`?*B|$S5Yllk3=y67q7Z{PBy@V;C+8P?ZtzH6je9=u zGXV{IkCTKeq)0EUX<6m{8CJ7+{#O=qkS8s$7G;%tC04#yh6+?kYfvX`M#w7nnyh@U z1#Re%cA-bwmmSER!JEAyj9AAoC7qDYNY(b{uwY%n>VvB7ong(of$fX#NY(akaAG~c S{zZ?Zbngz?tr_T(Ll@+e?6+V5 delta 909 zcmV;819JR~FsCp9Cy@bv4W}0X0Q&I=0b~FG00^;-3k`pT0ssIbAO!#b00sa607(D< z00;mG00961000000000000000000140ssJboTXL^mc$?k({TSg?^Zq{irQ)SbyD2| zA&9n=Zx`&Mc7bI676)shU*k)3@GM>9YrYA8O~9efL&sE68~%fhL;iZjc~t%r0PJBM zKE{3`gWZ1&NAn)17=7NCg%??}jdy#YIbbIciZTME8=yNVKT6+HU9NLSYHS?tC8$f5drUvs zKXtpXcGdP=_L_J5vX$>bR`WF>XiFe98)uA@0t5oY3=8-W}nv zzz~M69!vg5gyat$2Rzsx^o2v&Zbl^0F~xsx@jWi%`+my)e?(Ugo==e+@f5_VyBxuJ8AUiF`mBu660Fv|1pV$4;A3fZ-krlxF673VKNf`WO@pz ze(3f41L}YxG_$b-~hW955)|4kYnlPDMD$fvb) diff --git a/card_art/tileset.asm b/card_art/tileset.asm index 4e63eea..3ab4a0c 100644 --- a/card_art/tileset.asm +++ b/card_art/tileset.asm @@ -56,7 +56,6 @@ tileset: 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 @@ -80,11 +79,11 @@ tileset: ShuffleUI: - db $34, $61, $35, $61, $35, $60, $35, $60, $35, $36, $35, $22, $37, $22, $37, $22, $1e, $22 + db $34, $60, $35, $60, $35, $5f, $35, $5f, $35, $36, $35, $22, $37, $22, $37, $22, $1e, $22 db $38, $39, $3a, $39, $3a, $3b, $3a, $3b, $3a, $3c, $3a, $22, $3d, $22, $3d, $22, $1e, $22 db $3e, $3f, $40, $3f, $40, $41, $42, $41, $42, $43, $42, $22, $44, $22, $44, $22, $1e, $22 db $45, $46, $47, $46, $47, $48, $49, $48, $49, $4a, $49, $4b, $44, $4b, $44, $22, $1e, $22 - db $4c, $4d, $4c, $4d, $4c, $4e, $4f, $4e, $51, $50, $51, $50, $52, $50, $52, $22, $1e, $22 - db $53, $54, $53, $54, $53, $55, $56, $55, $56, $55, $56, $55, $56, $55, $56, $22, $1e, $22 - db $5f, $57, $5f, $57, $5f, $58, $59, $58, $59, $58, $59, $58, $5a, $58, $5a, $22, $1e, $22 - db $62, $5e, $62, $5e, $62, $5c, $5b, $5c, $5b, $5c, $5b, $5c, $5d, $5c, $5d, $22, $1e, $22 + db $4c, $4d, $4c, $4d, $4c, $4e, $50, $4e, $50, $4f, $50, $4f, $51, $4f, $51, $22, $1e, $22 + db $52, $53, $52, $53, $52, $54, $55, $54, $55, $54, $55, $54, $55, $54, $55, $22, $1e, $22 + db $5e, $56, $5e, $56, $5e, $57, $58, $57, $58, $57, $58, $57, $59, $57, $59, $22, $1e, $22 + db $61, $5d, $61, $5d, $61, $5b, $5a, $5b, $5a, $5b, $5a, $5b, $5c, $5b, $5c, $22, $1e, $22 diff --git a/source.zip b/source.zip index 5bc97c525f6b3d1bf3efda7ba41debfb56cf2394..67bed8e7e7a5f0ccb50e0d853770c7c0e666bbd3 100644 GIT binary patch delta 4609 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 Q64Jf^V-%mxCMVjz0o(*xg#Z8m delta 4902 zcmb_ed2|!U8K0G99V?9wYz(r%-WV_th>$GF_ibbF1vdC`*bTNUt!xK-MdS-e%F#zd zpCJw80n^}DO4Aa+;Wn=-qzNf4P;f$VTS`cR!GzKlDCB_B6i7RVlyt+UuYc5j-|VMv z=ljj?J7#82^f~wKal)$dFf|XzpSW}VL1^s^!_WTw&NY=(Idy!@7^++!N{*&V~w#&pl$85>dxaXO+qnJyNqi?U&a)SUR?(9b&~D-Oae?cIiw{Hf+qgJ%>;Pv(O$WI`Bpl+BQDC2HB)WfyvjyUMxz>>= zrJpl#R#ef?eG!INM$abeVj?8>RKeo$yShvKt~L>MALgp-1vlo?;teg;hFLxp`r-C< zN*#j7C$l9qKew@6LAAn;!;68QcBZmWt= z)}pD0xdcjPaEflEdO4mLIDVL$A)w0hoC$4vkJE8((}7QNxE^!vELTijnP&cyJH~j&w4JcyKz& zKz=&iJc_!+jm~xuW=_J)Nr*Zd8T0=c!IVXocnrW!5bd~z;~gX`4i}k3Kp&%Eihc|L z-NMX9C`?~6#F?T~2nr=kK|TC`ogVYpbWh`!%iLJ>_7E3N293(oh<-c7CFwA(O~m2L zUk4H{bCWo_VM?!XHEio_k5bk4P}`%esz(CT-cUU`iE2+?Q@!b;+KuU9pO2>6^+jQ6 zOcT1puBB6(_CT0qquSEpu%B9}mKdc*PO2T5uC6VhTHIRoH9OTF9aX=SOtqJW)h}jI zEpcpkV!*6A_<=glsb|POp z#OE<8$)`hF^JU)4&gQ|peCh}a%xeu3S&)wLhRc!E7UwVsjB-YW;TFT2ZTeRA^gOx+G&3N5N*S*tcT$f0-Z=W$PVC8-9M#$#n;TeWvPl7wCFS?Wq z(})8al?QXFvLFxAZbcjOg0BYhAl(HhEI;@vJ0H?6N6SLW&+;MN0qAZ%bWofr1*V+C;h6J*wFxz(qh>H&brh|mQ3d_G!*4n(P9 zSC(_CSn%Z~T~{8S=RPL@Kt%3wu~!A=y8WUk6}kMLIikyBX_4GjU-Lgr{+&8(B^89EUxypudRoM3ZYqb zvIIRSgtYp|Tm;SO$LqsDLHjbvtwizZQOh{!{G zfLzmIB5fT_^ql(}CILVsLbgJ~0XIwm$|HTrORFtHD@L479>4$$iPVXzG3H~8pN{b>eLhJEzBH%n&-;r3AYzoco*lDgCZwl68aop&xYLC) zX9g2liw!Gp@79788^)gR^S3JQq&=Ut^~dJ{Kt$dM_wH%|*@H91R-8A*MyP%3VbVjq zi-^dB%68~Lkq_OS3F%3OB1$nmcMh6@pR^-Ov6B66gAP>rTci&BU8xlL2g$HYGZ_FP zF|x=#tI_sS_yp~=#uJNn+i=B+jF!#n?L)(*>^eq#88mBEZ|H!#a|x=?hoflIJbdnz zRrT=z5Rq@Mmj>}vUyIakOIa+nG&Of95xnx7jDMXT0{{`Z``BAL(Cv~u-|U`7 zFssUOA+FY;AC?FE(!87S0HfSfU*Ax2aN;#yrHp;BP?UeSao}{nc=2-j< z6^r23&pL^VKt$e7*N$Ren$K@^UOI()^nwWhBJv0>{9X^*yU`yig5CZJW}{m7HxyAB zjKWfh54@YGtTMR&TJUe3YBW!4fT}8CTr$~(HD~=V{~UJ`5&14Jn9NgpbS~}CVGN;~ zkb}Mmt&uPbn&;0e!}D+otSL(Ua69^w2^VpRh{(6<8aIz4@cBK;o@fIGSFPSPa1CrSq{m3@ZK zDIl+{@gPrH~*^EKD=}IYcNrP9raBYalQzjJ|*)CD?LpgKtMl#ODQ^ zRhm<`^qIQ9O86urBG2JZo(VZ-D3C(?F}N!8JLsLc!5rFePrG;w2TDX9@6~NaT1PZE z7sk@u?AZBTwKoxeLtv3dH1Imgs|hBywg$J;!hs+Sn^l2EUB?I3iONWaZ=wSsqydan sUub~Ac2b5q8`=JkmAF_$**g?Dlwk6g