summaryrefslogtreecommitdiff
path: root/engine/slot_machine.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/slot_machine.asm')
-rwxr-xr-xengine/slot_machine.asm873
1 files changed, 873 insertions, 0 deletions
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
new file mode 100755
index 00000000..a3c83e64
--- /dev/null
+++ b/engine/slot_machine.asm
@@ -0,0 +1,873 @@
+PromptUserToPlaySlots: ; 3730e (d:730e)
+ call SaveScreenTilesToBuffer2
+ ld a, BANK(DisplayTextIDInit)
+ ld [$cf0c], a
+ ld b, a
+ ld hl, DisplayTextIDInit
+ call Bankswitch
+ ld hl, PlaySlotMachineText
+ call PrintText
+ call YesNoChoice
+ ld a, [wCurrentMenuItem]
+ and a
+ jr nz, .skip
+ dec a
+ ld [$cfcb], a
+ ld hl, $cd4f
+ xor a
+ ld [hli], a
+ ld [hl], $2
+ ld a, $4c
+ call Predef
+ call GBPalWhiteOutWithDelay3
+ call LoadSlotMachineTiles
+ call LoadFontTilePatterns
+ ld b, $5
+ call GoPAL_SET
+ call GBPalNormal
+ ld a, $e4
+ ld [$ff48], a
+ ld hl, $d730
+ set 6, [hl]
+ xor a
+ ld [W_SUBANIMSUBENTRYADDR], a
+ ld hl, wTrainerSpriteOffset
+ ld bc, $0014
+ call FillMemory
+ call MainSlotMachineLoop
+ ld hl, $d730
+ res 6, [hl]
+ xor a
+ ld [W_SUBANIMSUBENTRYADDR], a
+ call GBPalWhiteOutWithDelay3
+ ld a, $1
+ ld [$cfcb], a
+ call GoPAL_SET_CF1C
+ call Func_3e08
+ call ReloadTilesetTilePatterns
+.skip
+ call LoadScreenTilesFromBuffer2
+ call Delay3
+ call GBPalNormal
+ ld a, [$cc5e]
+ push af
+ jp CloseTextDisplay
+
+PlaySlotMachineText: ; 37390 (d:7390)
+ TX_FAR _PlaySlotMachineText
+ db "@"
+
+MainSlotMachineLoop: ; 37395 (d:7395)
+ call SlotMachine_37754
+ xor a
+ ld hl, $cd4a
+ ld [hli], a
+ ld [hl], a
+ call SlotMachine_3775f
+ ld hl, BetHowManySlotMachineText
+ call PrintText
+ call SaveScreenTilesToBuffer1
+.loop
+ ld a, $3
+ ld [wMenuWatchedKeys], a
+ ld a, $2
+ ld [wMaxMenuItem], a
+ ld a, $c
+ ld [wTopMenuItemY], a
+ ld a, $f
+ ld [wTopMenuItemX], a
+ xor a
+ ld [wCurrentMenuItem], a
+ ld [wLastMenuItem], a
+ ld [$cc37], a
+ ld hl, $c48a
+ ld b, $5
+ ld c, $4
+ call TextBoxBorder
+ ld hl, $c4a0
+ ld de, CoinMultiplierSlotMachineText
+ call PlaceString
+ call HandleMenuInput
+ and $2
+ jp nz, LoadScreenTilesFromBuffer1
+ ld a, [wCurrentMenuItem]
+ ld b, a
+ ld a, $3
+ sub b
+ ld [$cd50], a
+ ld hl, wPlayerCoins
+ ld c, a
+ ld a, [hli]
+ and a
+ jr nz, .skip1
+ ld a, [hl]
+ cp c
+ jr nc, .skip1
+ ld hl, NotEnoughCoinsSlotMachineText
+ call PrintText
+ jr .loop
+.skip1
+ call LoadScreenTilesFromBuffer1
+ call SlotMachine_37741
+ call SlotMachine_377d5
+ call SlotMachine_37480
+ ld a, $4
+ ld hl, $cd4d
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ call WaitForSoundToFinish
+ ld a, (SFX_1f_66 - SFX_Headers_1f) / 3
+ call PlaySound
+ ld hl, StartSlotMachineText
+ call PrintText
+ call SlotMachine_374ad
+ call SlotMachine_37588
+ ld hl, wPlayerCoins
+ ld a, [hli]
+ or [hl]
+ jr nz, .skip2
+ ld hl, OutOfCoinsSlotMachineText
+ call PrintText
+ ld c, $3c
+ jp DelayFrames
+.skip2
+ ld hl, OneMoreGoSlotMachineText
+ call PrintText
+ ld hl, $c49e
+ ld bc, $0d0f
+ xor a
+ ld [$d12c], a
+ ld a, $14
+ ld [$d125], a
+ call DisplayTextBoxID
+ ld a, [wCurrentMenuItem]
+ and a
+ ret nz
+ call SlotMachine_377ce
+ jp MainSlotMachineLoop
+
+CoinMultiplierSlotMachineText: ; 3745e (d:745e)
+ db "×3"
+ next "×2"
+ next "×1@"
+
+OutOfCoinsSlotMachineText: ; 37467 (d:7467)
+ TX_FAR _OutOfCoinsSlotMachineText
+ db "@"
+
+BetHowManySlotMachineText: ; 3746c (d:746c)
+ TX_FAR _BetHowManySlotMachineText
+ db "@"
+
+StartSlotMachineText: ; 37471 (d:7471)
+ TX_FAR _StartSlotMachineText
+ db "@"
+
+NotEnoughCoinsSlotMachineText: ; 37476 (d:7476)
+ TX_FAR _NotEnoughCoinsSlotMachineText
+ db "@"
+
+OneMoreGoSlotMachineText: ; 3747b (d:747b)
+ TX_FAR _OneMoreGoSlotMachineText
+ db "@"
+
+SlotMachine_37480: ; 37480 (d:7480)
+ ld hl, $cd4c
+ bit 7, [hl]
+ ret nz
+ ld a, [W_SUBANIMSUBENTRYADDR]
+ and a
+ jr nz, .skip1
+ call GenRandom
+ and a
+ jr z, .skip2
+ ld b, a
+ ld a, [$cc5b]
+ cp b
+ jr c, .skip3
+ ld a, $d2
+ cp b
+ jr c, .skip1
+ ld [hl], $0
+ ret
+.skip1
+ set 6, [hl]
+ ret
+.skip2
+ ld a, $3c
+ ld [W_SUBANIMSUBENTRYADDR], a
+ ret
+.skip3
+ set 7, [hl]
+ ret
+
+SlotMachine_374ad: ; 374ad (d:74ad)
+ ld c, $14
+.loop1
+ push bc
+ call SlotMachine_37813
+ call SlotMachine_37823
+ call SlotMachine_37833
+ ld c, $2
+ call DelayFrames
+ pop bc
+ dec c
+ jr nz, .loop1
+ xor a
+ ld [wTrainerSpriteOffset], a
+.loop2
+ call SlotMachine_37882
+ call SlotMachine_374df
+ call SlotMachine_374fb
+ call SlotMachine_37517
+ ret c
+ ld a, [$cf1b]
+ xor $1
+ inc a
+ ld c, a
+ call DelayFrames
+ jr .loop2
+
+SlotMachine_374df: ; 374df (d:74df)
+ ld a, [wTrainerSpriteOffset]
+ cp $1
+ jr c, .skip
+ ld de, wTrainerEngageDistance
+ ld a, [de]
+ rra
+ jr nc, .skip
+ ld hl, $cd4d
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ call SlotMachine_3752c
+ ret nz
+.skip
+ jp SlotMachine_37813
+
+SlotMachine_374fb: ; 374fb (d:74fb)
+ ld a, [wTrainerSpriteOffset]
+ cp $2
+ jr c, .skip
+ ld de, wTrainerFacingDirection
+ ld a, [de]
+ rra
+ jr nc, .skip
+ ld hl, $cd4e
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ call SlotMachine_37552
+ ret z
+.skip
+ jp SlotMachine_37823
+
+SlotMachine_37517: ; 37517 (d:7517)
+ ld a, [wTrainerSpriteOffset]
+ cp $3
+ jr c, .skip
+ ld de, wTrainerScreenY
+ ld a, [de]
+ rra
+ jr nc, .skip
+ scf
+ ret
+.skip
+ call SlotMachine_37833
+ and a
+ ret
+
+SlotMachine_3752c: ; 3752c (d:752c)
+ call SlotMachine_GetWheelOneTile
+ ld hl, wTrainerScreenX
+ ld a, [$cd4c]
+ and $80
+ jr nz, .skip1
+ inc hl
+ ld a, [hl]
+ cp $a
+ jr nz, .skip2
+ ret
+.skip1
+ ld c, $3
+.loop
+ ld a, [hli]
+ cp $2
+ jr c, .skip2
+ dec c
+ jr nz, .loop
+ ret
+.skip2
+ inc a
+ ld hl, $cd4d
+ ld [hl], $0
+ ret
+
+SlotMachine_37552: ; 37552 (d:7552)
+ call SlotMachine_GetWheelTwoTile
+ ld a, [$cd4c]
+ and $80
+ jr nz, .skip1
+ call SlotMachine_3756e
+ ret nz
+ jr .skip2
+.skip1
+ call SlotMachine_3756e
+ ld a, [de]
+ cp $7
+ ret nc
+.skip2
+ xor a
+ ld [$cd4e], a
+ ret
+
+SlotMachine_3756e: ; 3756e (d:756e)
+ ld hl, wTrainerScreenX
+ ld de, $cd44
+ ld a, [de]
+ cp [hl]
+ ret z
+ inc de
+ ld a, [de]
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ inc hl
+ cp [hl]
+ ret z
+ inc de
+ ld a, [de]
+ cp [hl]
+ ret z
+ dec de
+ dec de
+ ret
+
+SlotMachine_37588: ; 37588 (d:7588)
+ call SlotMachine_GetWheelThreeTile
+ ld a, [$cd50]
+ cp $2
+ jr z, .skip1
+ cp $1
+ jr z, .skip2
+ ld hl, wTrainerScreenX
+ ld de, $cd45
+ ld bc, $cd49
+ call SlotMachine_CheckForMatch
+ jp z, .skip5
+ ld hl, $cd43
+ ld de, $cd45
+ ld bc, $cd47
+ call SlotMachine_CheckForMatch
+ jr z, .skip5
+.skip1
+ ld hl, $cd43
+ ld de, $cd46
+ ld bc, $cd49
+ call SlotMachine_CheckForMatch
+ jr z, .skip5
+ ld hl, wTrainerScreenX
+ ld de, $cd44
+ ld bc, $cd47
+ call SlotMachine_CheckForMatch
+ jr z, .skip5
+.skip2
+ ld hl, $cd42
+ ld de, $cd45
+ ld bc, $cd48
+ call SlotMachine_CheckForMatch
+ jr z, .skip5
+ ld a, [$cd4c]
+ and $c0
+ jr z, .skip3
+ ld hl, $cd4f
+ dec [hl]
+ jr nz, .skip4
+.skip3
+ ld hl, NotThisTimeText
+ call PrintText
+.loop
+ xor a
+ ld [$c002], a
+ ret
+.skip4
+ call SlotMachine_37833
+ call DelayFrame
+ call SlotMachine_37833
+ call DelayFrame
+ jp SlotMachine_37588
+.skip5
+ ld a, [$cd4c]
+ and $c0
+ jr z, .skip4
+ and $80
+ jr nz, .skip6
+ ld a, [hl]
+ cp $7
+ jr c, .skip4
+.skip6
+ ld a, [hl]
+ sub $2
+ ld [wTrainerScreenX], a
+ ld hl, SlotRewardPointers
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $cf4b
+ ld bc, $0004
+ call CopyData
+ pop hl
+ ld de, .asm_37638
+ push de
+ jp [hl]
+
+.asm_37638
+ ld a, [$ff47]
+ xor $40
+ ld [$ff47], a
+ ld c, $5
+ call DelayFrames
+ dec b
+ jr nz, .asm_37638
+ ld hl, $cd4a
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ call SlotMachine_3775f
+ ld hl, SlotsMachineText_37665
+ call PrintText
+ call WaitForTextScrollButtonPress
+ call SlotMachine_3776b
+ call SlotMachine_3775f
+ ld a, $e4
+ ld [$ff48], a
+ jp .loop
+
+SlotsMachineText_37665: ; 37665 (d:7665)
+ db $08 ; asm
+ push bc
+ call SlotMachine_37728
+ ld hl, LinedUpText
+ pop bc
+ inc bc
+ inc bc
+ inc bc
+ inc bc
+ ret
+
+LinedUpText: ; 37673 (d:7673)
+ TX_FAR _LinedUpText
+ db "@"
+
+SlotRewardPointers: ; 37678 (d:7678)
+ dw SlotReward300Func
+ dw SlotReward300Text
+ dw SlotReward100Func
+ dw SlotReward100Text
+ dw SlotReward8Func
+ dw SlotReward8Text
+ dw SlotReward15Func
+ dw SlotReward15Text
+ dw SlotReward15Func
+ dw SlotReward15Text
+ dw SlotReward15Func
+ dw SlotReward15Text
+
+SlotReward300Text: ; 37690 (d:7690)
+ db "300@"
+
+SlotReward100Text: ; 37694 (d:7694)
+ db "100@"
+
+SlotReward8Text: ; 37698 (d:7698)
+ db "8@"
+
+SlotReward15Text: ; 3769a (d:769a)
+ db "15@"
+
+NotThisTimeText: ; 3769d (d:769d)
+ TX_FAR _NotThisTimeText
+ db "@"
+
+; compares the slot machine tiles at bc, de, and hl
+SlotMachine_CheckForMatch: ; 376a2 (d:76a2)
+ ld a, [de]
+ cp [hl]
+ ret nz
+ ld a, [bc]
+ cp [hl]
+ ret
+
+SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8)
+ ld de, $cd47
+ ld hl, SlotMachineWheel3
+ ld a, [wTrainerScreenY]
+ call SlotMachine_GetWheelTile
+
+SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4)
+ ld de, $cd44
+ ld hl, SlotMachineWheel2
+ ld a, [wTrainerFacingDirection]
+ call SlotMachine_GetWheelTile
+
+SlotMachine_GetWheelOneTile: ; 376c0 (d:76c0)
+ ld de, wTrainerScreenX
+ ld hl, SlotMachineWheel1
+ ld a, [wTrainerEngageDistance]
+
+SlotMachine_GetWheelTile: ; 376c9 (d:76c9)
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld c, $3
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ inc hl
+ dec c
+ jr nz, .loop
+ ret
+
+SlotReward8Func: ; 376d7 (d:76d7)
+ ld hl, W_SUBANIMSUBENTRYADDR
+ ld a, [hl]
+ and a
+ jr z, .skip
+ dec [hl]
+.skip
+ ld b, $2
+ ld de, 8
+ ret
+
+SlotReward15Func: ; 376e5 (d:76e5)
+ ld hl, W_SUBANIMSUBENTRYADDR
+ ld a, [hl]
+ and a
+ jr z, .skip
+ dec [hl]
+.skip
+ ld b, $4
+ ld de, 15
+ ret
+
+SlotReward100Func: ; 376f3 (d:76f3)
+ ld a, (SFX_1f_42 - SFX_Headers_1f) / 3
+ call PlaySound
+ xor a
+ ld [$cd4c], a
+ ld b, $8
+ ld de, 100
+ ret
+
+SlotReward300Func: ; 37702 (d:7702)
+ ld hl, YeahText
+ call PrintText
+ ld a, (SFX_1f_3b - SFX_Headers_1f) / 3
+ call PlaySound
+ call GenRandom
+ cp $80
+ ld a, $0
+ jr c, .skip
+ ld [$cd4c], a
+.skip
+ ld [W_SUBANIMSUBENTRYADDR], a
+ ld b, $14
+ ld de, 300
+ ret
+
+YeahText: ; 37722 (d:7722)
+ TX_FAR _YeahText
+ db $0a, "@"
+
+SlotMachine_37728: ; 37728 (d:7728)
+ ld hl, $c4ba
+ ld a, [wTrainerScreenX]
+ add $25
+ ld [hli], a
+ inc a
+ ld [hld], a
+ inc a
+ ld de, $ffec
+ add hl, de
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld hl, $c4f2
+ ld [hl], $ee
+ ret
+
+SlotMachine_37741: ; 37741 (d:7741)
+ ld hl, $cd4b
+ ld a, [$cd50]
+ ld [hld], a
+ xor a
+ ld [hli], a
+ ld de, $d5a5
+ ld c, $2
+ ld a, $c
+ call Predef
+
+SlotMachine_37754: ; 37754 (d:7754)
+ ld hl, $c3b9
+ ld de, wPlayerCoins
+ ld c, $2
+ jp PrintBCDNumber
+
+SlotMachine_3775f: ; 3775f (d:775f)
+ ld hl, $c3bf
+ ld de, $cd4a
+ ld bc, $8204
+ jp PrintNumber
+
+SlotMachine_3776b: ; 3776b (d:776b)
+ ld a, $1
+ ld [$c002], a
+ call WaitForSoundToFinish
+ ld hl, $cd46
+ xor a
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld a, $5
+ ld [W_SUBANIMTRANSFORM], a
+.loop
+ ld a, [$cd4b]
+ ld l, a
+ ld a, [$cd4a]
+ ld h, a
+ or l
+ ret z
+ ld de, $ffff
+ add hl, de
+ ld a, l
+ ld [$cd4b], a
+ ld a, h
+ ld [$cd4a], a
+ ld hl, $cd47
+ ld de, $d5a5
+ ld c, $2
+ ld a, $b
+ call Predef
+ call SlotMachine_37754
+ call SlotMachine_3775f
+ ld a, (SFX_1f_65 - SFX_Headers_1f) / 3
+ call PlaySound
+ ld a, [W_SUBANIMTRANSFORM]
+ dec a
+ jr nz, .skip1
+ ld a, [$ff48]
+ xor $40
+ ld [$ff48], a
+ ld a, $5
+.skip1
+ ld [W_SUBANIMTRANSFORM], a
+ ld a, [wTrainerScreenX]
+ cp $7
+ ld c, $8
+ jr nc, .skip2
+ srl c
+.skip2
+ call DelayFrames
+ jr .loop
+
+SlotMachine_377ce: ; 377ce (d:77ce)
+ ld a, $23
+ ld [$d08a], a
+ jr SlotMachine_377e3
+
+SlotMachine_377d5: ; 377d5 (d:77d5)
+ ld a, $14
+ ld [$d08a], a
+ ld a, [$cd50]
+ dec a
+ jr z, SlotMachine_377fb
+ dec a
+ jr z, SlotMachine_377ef
+
+SlotMachine_377e3: ; 377e3 (d:77e3)
+ ld hl, $c3cb
+ call SlotMachine_377fe
+ ld hl, $c46b
+ call SlotMachine_377fe
+
+SlotMachine_377ef: ; 377ef (d:77ef)
+ ld hl, $c3f3
+ call SlotMachine_377fe
+ ld hl, $c443
+ call SlotMachine_377fe
+
+SlotMachine_377fb: ; 377fb (d:77fb)
+ ld hl, $c41b
+
+SlotMachine_377fe: ; 377fe (d:77fe)
+ ld a, [$d08a]
+ ld [hl], a
+ ld bc, $000d
+ add hl, bc
+ ld [hl], a
+ ld bc, $0007
+ add hl, bc
+ inc a
+ ld [hl], a
+ ld bc, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+
+SlotMachine_37813: ; 37813 (d:7813)
+ ld bc, SlotMachineWheel1
+ ld de, wTrainerEngageDistance
+ ld hl, wOAMBuffer
+ ld a, $30
+ ld [W_BASECOORDX], a
+ jr SlotMachine_37841
+
+SlotMachine_37823: ; 37823 (d:7823)
+ ld bc, SlotMachineWheel2
+ ld de, wTrainerFacingDirection
+ ld hl, $c330
+ ld a, $50
+ ld [W_BASECOORDX], a
+ jr SlotMachine_37841
+
+SlotMachine_37833: ; 37833 (d:7833)
+ ld bc, SlotMachineWheel3
+ ld de, wTrainerScreenY
+ ld hl, $c360
+ ld a, $70
+ ld [W_BASECOORDX], a
+
+SlotMachine_37841: ; 37841 (d:7841)
+ ld a, $58
+ ld [W_BASECOORDY], a
+ push de
+ ld a, [de]
+ ld d, b
+ add c
+ ld e, a
+ jr nc, SlotMachine_3784e
+ inc d
+
+SlotMachine_3784e: ; 3784e (d:784e)
+ ld a, [W_BASECOORDY]
+ ld [hli], a
+ ld a, [W_BASECOORDX]
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ ld a, $80
+ ld [hli], a
+ ld a, [W_BASECOORDY]
+ ld [hli], a
+ ld a, [W_BASECOORDX]
+ add $8
+ ld [hli], a
+ ld a, [de]
+ inc a
+ ld [hli], a
+ ld a, $80
+ ld [hli], a
+ inc de
+ ld a, [W_BASECOORDY]
+ sub $8
+ ld [W_BASECOORDY], a
+ cp $28
+ jr nz, SlotMachine_3784e
+ pop de
+ ld a, [de]
+ inc a
+ cp $1e
+ jr nz, .skip
+ xor a
+.skip
+ ld [de], a
+ ret
+
+SlotMachine_37882: ; 37882 (d:7882)
+ call DelayFrame
+ call GetJoypadStateLowSensitivity
+ ld a, [$ffb5]
+ and $1
+ ret z
+ ld hl, wTrainerSpriteOffset
+ ld a, [hl]
+ dec a
+ ld de, $cd4d
+ jr z, .skip
+ dec a
+ ld de, $cd4e
+ jr z, .skip
+.loop
+ inc [hl]
+ ld a, (SFX_1f_64 - SFX_Headers_1f) / 3
+ jp PlaySound
+.skip
+ ld a, [de]
+ and a
+ ret nz
+ jr .loop
+
+LoadSlotMachineTiles: ; 378a8 (d:78a8)
+ call DisableLCD
+ ld hl, SlotMachineTiles2
+ ld de, $8000
+ ld bc, $01c0
+ ld a, BANK(SlotMachineTiles2)
+ call FarCopyData2
+ ld hl, SlotMachineTiles1
+ ld de, $9000
+ ld bc, $0250
+ ld a, BANK(SlotMachineTiles1)
+ call FarCopyData2
+ ld hl, SlotMachineTiles2
+ ld de, $9250
+ ld bc, $01c0
+ ld a, BANK(SlotMachineTiles2)
+ call FarCopyData2
+ ld hl, SlotMachineMap
+ ld de, wTileMap
+ ld bc, $00f0
+ call CopyData
+ call EnableLCD
+ ld hl, wTrainerEngageDistance
+ ld a, $1c
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ call SlotMachine_37813
+ call SlotMachine_37823
+ jp SlotMachine_37833
+
+SlotMachineMap: ; 378f5 (d:78f5)
+ INCBIN "gfx/tilemaps/slotmachine.map"
+
+SLOTS7 EQU $0200
+SLOTSBAR EQU $0604
+SLOTSCHERRY EQU $0A08
+SLOTSFISH EQU $0E0C
+SLOTSBIRD EQU $1210
+SLOTSMOUSE EQU $1614
+
+INCLUDE "data/slot_machine_wheels.asm"
+
+SlotMachineTiles1: ; 37a51 (d:7a51)
+IF _RED
+ INCBIN "gfx/red/slotmachine1.2bpp"
+ENDC
+IF _BLUE
+ INCBIN "gfx/blue/slotmachine1.2bpp"
+ENDC