fancying up the shuffle screen so its clearer to users

This commit is contained in:
Shoofle 2025-10-16 14:13:37 -04:00
parent 7f69276557
commit 1e2464e6f4
10 changed files with 170 additions and 5 deletions

View File

@ -7,6 +7,7 @@ vAsyncBC: dw
vAsyncPC: dw
vAsyncMainSP: dw
vAsyncThreadSP: dw
vAsyncIsBusy: db
POPS
; canonical ordering to push should be: AF, BC, DE, HL,
@ -26,6 +27,9 @@ Async_Kill:
ld [vAsyncThreadSP], a
ld a, h
ld [vAsyncThreadSP+1], a
ld a, 0
ld [vAsyncIsBusy], a
; unset next call
ld hl, rIE
@ -140,7 +144,8 @@ Async_Spawn:
ld hl, rIF
res 1, [hl] ; clear the interrupt so we don't immediately fire it
ld a, 1
ld [vAsyncIsBusy], a
; restore main sp
ld a, [vAsyncMainSP]
@ -264,6 +269,8 @@ Async_EarlyReturn:
; store side thread SP, so everyone knows that the side thread stack is empty
ld [vAsyncThreadSP], sp ; 5 cycles instead of 13
ld a, 0
ld [vAsyncIsBusy], a
; unset next call
ld hl, rIE

View File

@ -4,6 +4,8 @@ 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 8 ; the number of times you have to shuffle before you've "fully shuffled"
POPS
def S_Center = 0
@ -33,6 +35,7 @@ ShuffleSetup:
ld a, 0
ld [vAnimationFrame], a
ld [vShuffleCount], a
ld a, S_Center
ld [vState], a
@ -45,6 +48,8 @@ ShuffleSetup:
ld bc, $100
call CopyRange
ret
.asyncTask
ld hl, ONES ; origin
ld de, _SCRN0 ; destination
@ -58,6 +63,31 @@ ShuffleSetup:
ld c, 4
call CopyTilesToMap
ld a, VARIABLE_TILES_START + 9
; draw left arrow
ld [_SCRN0 + 32*8 + 3], a
inc a
ld [_SCRN0 + 32*9 + 3], a
; right arrow
inc a
ld [_SCRN0 + 32*8 + 16], a
inc a
ld [_SCRN0 + 32*9 + 16], a
; up arrow
inc a
ld [_SCRN0 + 32*2 + 9], a
inc a
ld [_SCRN0 + 32*2 + 10], a
; down arrow
inc a
ld [_SCRN0 + 32*15 + 9], a
inc a
ld [_SCRN0 + 32*15 + 10], a
ld hl, Shuffle.UITileData
ld de, _VRAM + $1000 + VARIABLE_TILES_START*16
ld bc, Shuffle.UITileDataEnd - Shuffle.UITileData
@ -158,7 +188,6 @@ ShuffleButtonHandler:
ret
CenterButtonHandler:
call DoSomeShuffling
ld hl, rMYBTNP
: bit 0, [hl]
@ -184,6 +213,7 @@ RightButtonHandler:
: bit 1, [hl]
jp z, :+
call DoSomeShuffling ; shuffle whenever we move into an inward state
ld a, S_RightIn
ld [vState], a
: ret
@ -193,6 +223,7 @@ LeftButtonHandler:
: bit 0, [hl]
jp z, :+
call DoSomeShuffling
ld a, S_LeftIn
ld [vState], a
: ret
@ -202,6 +233,7 @@ UpButtonHandler:
: bit 3, [hl]
jp z, :+
call DoSomeShuffling
ld a, S_UpIn
ld [vState], a
: ret
@ -211,6 +243,7 @@ DownButtonHandler:
: bit 2, [hl]
jp z, :+
call DoSomeShuffling
ld a, S_DownIn
ld [vState], a
: ret
@ -351,7 +384,67 @@ DoSomeShuffling:
call OneSwap
call OneSwap
call OneSwap
call OneSwap
call OneSwap; 10 shuffles
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 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
ret
OneSwap: ; shuffles once and decrements vshuffleindex
@ -459,6 +552,17 @@ Shuffle.UITileData:
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 $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 $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,$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
Shuffle.UITileDataEnd:
Shuffle.BigCard:
@ -470,4 +574,12 @@ def VTS = VARIABLE_TILES_START
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
db VTS+6, VTS+7, VTS+7, VTS+8
Shuffle.ShuffledText:
db 9, "Shuffled!"
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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

46
card_art/tileset.asm Normal file
View File

@ -0,0 +1,46 @@
; original export script by gabriel reis, modified by shoofle
tileset:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
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 $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 $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,$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,$7e,$7e,$00,$7e,$7e,$00,$7e,$00,$00,$7e,$7e,$7e,$00,$00
ShuffleUI:
db $00, $00, $00, $00, $00, $00, $00, $00, $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, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $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, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $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, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $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, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $01, $02, $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $04, $05, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $04, $05, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $04, $05, $06, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $07, $08, $09, $00, $0a, $0c, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $0b, $0d, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $0e, $0f, $10, $11, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $12, $00, $00, $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, $00, $00, $00, $00, $00, $00, $00, $00

Binary file not shown.

Binary file not shown.

View File

@ -3,7 +3,7 @@ Swords01Ace:
db 10, "SWORDS "
db 10, " "
db 10, "triumph "
db 10, "new ideas "
db 10, "excess "
db 10, "clarity "
db 10, "ACE of "