pokecrystal-board/engine/slot_machine.asm
2015-12-02 13:24:18 -05:00

2113 lines
27 KiB
NASM
Executable File

_SlotMachine:
ld hl, Options
set 4, [hl]
call Function926f7
call DelayFrame
.asm_926d2
call Function927af
jr nc, .asm_926d2
call WaitSFX
ld de, SFX_QUIT_SLOTS
call PlaySFX
call WaitSFX
call ClearBGPalettes
callba MobileFn_105fd0
ld hl, Options
res 4, [hl]
ld hl, rLCDC ; $ff40
res 2, [hl]
ret
Function926f7: ; 926f7 (24:66f7)
call ClearBGPalettes
call ClearTileMap
call ClearSprites
ld de, MUSIC_NONE
call PlayMusic
call DelayFrame
call DisableLCD
hlbgcoord 0, 0
lb bc, 4, 0
ld a, " "
call ByteFill
ld b, SCGB_05
call GetSGBLayout
callab ClearSpriteAnims
ld hl, wc6d0
ld bc, $48
xor a
call ByteFill
ld hl, Slots2LZ
ld de, VTiles0 tile $00
call Decompress
ld hl, Slots3LZ
ld de, VTiles0 tile $40
call Decompress
ld hl, Slots1LZ
ld de, VTiles2 tile $00
call Decompress
ld hl, Slots2LZ
ld de, VTiles2 tile $25
call Decompress
ld hl, SlotsTilemap
decoord 0, 0
ld bc, 20 * 12
call CopyBytes
ld hl, rLCDC ; $ff40
set 2, [hl]
call EnableLCD
ld hl, wc6d0
ld bc, $64
xor a
call ByteFill
call Function92a98
call Function9279b
ld a, $7
ld hl, wc300
ld [hli], a
ld [hl], $40
xor a
ld [wJumptableIndex], a
ld a, $ff
ld [wc709], a
ld de, MUSIC_GAME_CORNER
call PlayMusic
xor a
ld [wd002], a
call Random
and $2a
ret nz
ld a, $1
ld [wd002], a
ret
Function9279b: ; 9279b (24:679b)
ld a, $e4
call DmgToCgbBGPals
lb de, $e4, $e4
ld a, [hCGB]
and a
jr nz, .asm_927ab
lb de, $c0, $e4
.asm_927ab
call DmgToCgbObjPals
ret
Function927af: ; 927af (24:67af)
ld a, [wJumptableIndex]
bit 7, a
jr nz, .asm_927d1
call Function92844
call Function92b0f
xor a
ld [wOAMRetentionSize], a
callab DoNextFrameForFirst16Sprites
call Function927f8
call Function927d3
call DelayFrame
and a
ret
.asm_927d1
scf
ret
Function927d3: ; 927d3 (24:67d3)
ret
; 927d4 (24:67d4)
Function927d4: ; 927d4
ld a, [wc6d0]
and a
ret nz
ld a, [wc6e0]
and a
ret nz
ld a, [wc70c]
and a
jr nz, .asm_927ea
ld a, $e4
call DmgToCgbBGPals
ret
.asm_927ea
ld a, [TextDelayFrames]
and $7
ret nz
ld a, [rBGP]
xor %1100
call DmgToCgbBGPals
ret
; 927f8
Function927f8: ; 927f8 (24:67f8)
hlcoord 5, 1
ld de, Coins
lb bc, PRINTNUM_LEADINGZEROS | 2, 4
call PrintNum
hlcoord 11, 1
ld de, wc711
lb bc, PRINTNUM_LEADINGZEROS | 2, 4
call PrintNum
ret
; 92811 (24:6811)
Function92811: ; 92811
ld a, [wc709]
add 0
daa
ld e, a
and $f
add "0"
hlcoord 1, 0
ld [hl], a
ld a, e
swap a
and $f
add "0"
hlcoord 0, 0
ld [hl], a
ret
; 9282c
Function9282c: ; 9282c
ld hl, wcf66
ld a, [hl]
inc [hl]
and $7
ret nz
ld hl, Sprites + $42
ld c, $18
.asm_92839
ld a, [hl]
xor $20
ld [hli], a
rept 3
inc hl
endr
dec c
jr nz, .asm_92839
ret
; 92844
Function92844: ; 92844 (24:6844)
ld a, [wJumptableIndex]
ld e, a
ld d, 0
ld hl, Jumptable_92853
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; 92853 (24:6853)
Jumptable_92853: ; 92853 (24:6853)
dw Function9287e
dw Function9288e
dw Function928c6
dw Function928d6
dw Function928e6
dw Function92900
dw Function92910
dw Function9292a
dw Function9293a
dw Function92879
dw Function92879
dw Function92879
dw Function92955
dw Function9296b
dw Function92987
dw Function9299e
dw Function929a4
dw Function929d9
dw Function929f0
Function92879: ; 92879 (24:6879)
ld hl, wJumptableIndex
inc [hl]
ret
Function9287e: ; 9287e (24:687e)
call Function92879
xor a
ld [wc70b], a
ld [wc70c], a
ld a, $ff
ld [wc70d], a
ret
Function9288e: ; 9288e (24:688e)
call Function9307c
jr nc, .asm_92899
ld a, $12
ld [wJumptableIndex], a
ret
.asm_92899
call Function92879
call Function9303f
call Function93002
ld a, $20
ld [wcf64], a
ld a, $4
ld [wc6d0], a
ld [wc6e0], a
ld [wc6f0], a
ld a, $4
ld [wc6d9], a
ld [wc6e9], a
ld [wc6f9], a
call WaitSFX
ld a, SFX_SLOT_MACHINE_START
call Function9331e
ret
Function928c6: ; 928c6 (24:68c6)
ld hl, wcf64
ld a, [hl]
and a
jr z, .asm_928cf
dec [hl]
ret
.asm_928cf
call Function92879
xor a
ld [hJoypadSum], a
ret
Function928d6: ; 928d6 (24:68d6)
ld hl, hJoypadSum ; $ffa5
ld a, [hl]
and A_BUTTON
ret z
call Function92879
call Function92a2b
ld [wc6d0], a
Function928e6: ; 928e6 (24:68e6)
ld a, [wc6d0]
cp $0
ret nz
ld a, SFX_STOP_SLOT
call Function9331e
ld bc, wc6d0
ld de, wc700
call Function929f6
call Function92879
xor a
ld [hJoypadSum], a
Function92900: ; 92900 (24:6900)
ld hl, hJoypadSum ; $ffa5
ld a, [hl]
and A_BUTTON
ret z
call Function92879
call Function92a2e
ld [wc6e0], a
Function92910: ; 92910 (24:6910)
ld a, [wc6e0]
cp $0
ret nz
ld a, SFX_STOP_SLOT
call Function9331e
ld bc, wc6e0
ld de, wc703
call Function929f6
call Function92879
xor a
ld [hJoypadSum], a
Function9292a: ; 9292a (24:692a)
ld hl, hJoypadSum ; $ffa5
ld a, [hl]
and A_BUTTON
ret z
call Function92879
call Function92a60
ld [wc6f0], a
Function9293a: ; 9293a (24:693a)
ld a, [wc6f0]
cp $0
ret nz
ld a, SFX_STOP_SLOT
call Function9331e
ld bc, wc6f0
ld de, wc706
call Function929f6
call Function92879
xor a
ld [hJoypadSum], a
ret
Function92955: ; 92955 (24:6955)
ld a, [wc70d]
cp $ff
jr nz, .asm_92963
call Function92879
call Function92879
ret
.asm_92963
call Function92879
ld a, $10
ld [wcf64], a
Function9296b: ; 9296b (24:696b)
ld hl, wcf64
ld a, [hl]
and a
jr z, .asm_92980
dec [hl]
srl a
ret z
ld a, [rOBP0]
xor $ff
ld e, a
ld d, a
call DmgToCgbObjPals
ret
.asm_92980
call Function9279b
call Function92879
ret
Function92987: ; 92987 (24:6987)
xor a
ld [wc70b], a
ld [wc70c], a
ld a, $e4
call DmgToCgbBGPals
call Function93124
xor a
ld [wcf64], a
call Function92879
ret
Function9299e: ; 9299e (24:699e)
call Function93158
call Function92879
Function929a4: ; 929a4 (24:69a4)
ld hl, wcf64
ld a, [hl]
inc [hl]
and $1
ret z
ld hl, wc711
ld a, [hli]
ld d, a
or [hl]
jr z, .asm_929d5
ld e, [hl]
dec de
ld [hl], e
dec hl
ld [hl], d
ld hl, Coins
ld d, [hl]
inc hl
ld e, [hl]
call Function92a04
jr c, .asm_929c5
inc de
.asm_929c5
ld [hl], e
dec hl
ld [hl], d
ld a, [wcf64]
and $7
ret z
ld de, SFX_GET_COIN_FROM_SLOTS
call PlaySFX
ret
.asm_929d5
call Function92879
ret
Function929d9: ; 929d9 (24:69d9)
call Function9304c
call WaitPressAorB_BlinkCursor
call Function930e9
jr c, .asm_929ea
ld a, $0
ld [wJumptableIndex], a
ret
.asm_929ea
ld a, $12
ld [wJumptableIndex], a
ret
Function929f0: ; 929f0 (24:69f0)
ld hl, wJumptableIndex
set 7, [hl]
ret
Function929f6: ; 929f6 (24:69f6)
push de
call Function92a12
pop de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
ret
Function92a04: ; 92a04 (24:6a04)
ld a, d
cp 9999 / $100
jr c, .asm_92a10
ld a, e
cp 9999 % $100
jr c, .asm_92a10
scf
ret
.asm_92a10
and a
ret
Function92a12: ; 92a12 (24:6a12)
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr nz, .asm_92a1c
ld a, $f
.asm_92a1c
dec a
and $f
ld e, a
ld d, $0
ld hl, $1
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ret
Function92a2b: ; 92a2b (24:6a2b)
ld a, $7
ret
Function92a2e: ; 92a2e (24:6a2e)
ld a, [wc70a]
cp $2
jr c, .asm_92a4e
ld a, [wc709]
and a
jr z, .asm_92a3f
cp $ff
jr nz, .asm_92a4e
.asm_92a3f
call Function92a51
jr nz, .asm_92a4e
call Random
cp $50
jr nc, .asm_92a4e
ld a, $a
ret
.asm_92a4e
ld a, $8
ret
Function92a51: ; 92a51 (24:6a51)
ld a, [wc700]
and a
ret z
ld a, [wc701]
and a
ret z
ld a, [wc702]
and a
ret
Function92a60: ; 92a60 (24:6a60)
ld a, [wc70b]
and a
jr z, .asm_92a95
ld a, [wc70c]
and a
jr z, .asm_92a95
ld a, [wc709]
and a
jr nz, .asm_92a84
call Random
cp 180
jr nc, .asm_92a95
cp 120
jr nc, .asm_92a92
cp 60
jr nc, .asm_92a8f
ld a, $15
ret
.asm_92a84
call Random
cp $a0
jr nc, .asm_92a95
cp $50
jr nc, .asm_92a92
.asm_92a8f
ld a, $12
ret
.asm_92a92
ld a, $10
ret
.asm_92a95
ld a, $9
ret
Function92a98: ; 92a98 (24:6a98)
ld bc, wc6d0
ld hl, $6
add hl, bc
ld de, Sprites + $40
ld [hl], e
inc hl
ld [hl], d
ld hl, $1
add hl, bc
ld de, Unknown_93327
ld [hl], e
inc hl
ld [hl], d
ld hl, $8
add hl, bc
ld [hl], $30
call Function92af9
ld bc, wc6e0
ld hl, $6
add hl, bc
ld de, Sprites + $60
ld [hl], e
inc hl
ld [hl], d
ld hl, $1
add hl, bc
ld de, Unknown_93339
ld [hl], e
inc hl
ld [hl], d
ld hl, $8
add hl, bc
ld [hl], $50
call Function92af9
ld bc, wc6f0
ld hl, $6
add hl, bc
ld de, Sprites + $80
ld [hl], e
inc hl
ld [hl], d
ld hl, $1
add hl, bc
ld de, Unknown_9334b
ld [hl], e
inc hl
ld [hl], d
ld hl, $8
add hl, bc
ld [hl], $70
call Function92af9
ret
Function92af9: ; 92af9 (24:6af9)
ld hl, 0
add hl, bc
ld [hl], $0
ld hl, $3
add hl, bc
ld [hl], $e
ld hl, $4
add hl, bc
ld [hl], $0
call Function92b53
ret
Function92b0f: ; 92b0f (24:6b0f)
ld bc, wc6d0
call Function92b22
ld bc, wc6e0
call Function92b22
ld bc, wc6f0
call Function92b22
ret
Function92b22: ; 92b22 (24:6b22)
ld hl, $4
add hl, bc
ld a, [hl]
and $f
jr nz, .asm_92b2e
call Function92bd4
.asm_92b2e
ld hl, $5
add hl, bc
ld a, [hl]
and a
ret z
ld d, a
ld hl, $4
add hl, bc
add [hl]
ld [hl], a
and $f
jr z, Function92b53
ld hl, $6
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld e, $8
.asm_92b49
ld a, [hl]
add d
ld [hli], a
rept 3
inc hl
endr
dec e
jr nz, .asm_92b49
ret
Function92b53: ; 92b53 (24:6b53)
ld hl, $8
add hl, bc
ld a, [hl]
ld [wc712 + 1], a
ld a, $50
ld [wc712 + 2], a
ld hl, $3
add hl, bc
ld e, [hl]
ld d, $0
ld hl, $1
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
call Function92b83
ld hl, $3
add hl, bc
ld a, [hl]
inc a
and $f
cp $f
jr nz, .asm_92b81
xor a
.asm_92b81
ld [hl], a
ret
Function92b83: ; 92b83 (24:6b83)
ld hl, $6
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
.asm_92b8a
ld a, [wc712 + 2]
ld [hli], a
ld a, [wc712 + 1]
ld [hli], a
ld a, [de]
ld [hli], a
srl a
srl a
set 7, a
ld [hli], a
ld a, [wc712 + 2]
ld [hli], a
ld a, [wc712 + 1]
add $8
ld [hli], a
ld a, [de]
rept 2
inc a
endr
ld [hli], a
srl a
srl a
set 7, a
ld [hli], a
inc de
ld a, [wc712 + 2]
sub $10
ld [wc712 + 2], a
cp $10
jr nz, .asm_92b8a
ret
; 92bbe (24:6bbe)
Function92bbe: ; 92bbe
push hl
srl a
srl a
add Unknown_92bce % $100
ld l, a
ld a, 0
adc Unknown_92bce / $100
ld h, a
ld a, [hl]
pop hl
ret
; 92bce
Unknown_92bce: ; 92bce
db 0, 1, 2, 3, 4, 5
; 92bd4
Function92bd4: ; 92bd4 (24:6bd4)
ld hl, 0
add hl, bc
ld e, [hl]
ld d, 0
ld hl, Jumptable_92be4
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; 92be4 (24:6be4)
Jumptable_92be4: ; 92be4
dw Function92c16
dw Function92c4c
dw Function92c17
dw Function92c1e
dw Function92c25
dw Function92c2c
dw Function92c33
dw Function92c5e
dw Function92c86
dw Function92ca9
dw Function92cd2
dw Function92cf8
dw Function92d13
dw Function92df7
dw Function92e10
dw Function92e31
dw Function92e47
dw Function92e64
dw Function92d20
dw Function92d4f
dw Function92d6e
dw Function92d7e
dw Function92da4
dw Function92db3
dw Function92dca
; 92c16
Function92c16: ; 92c16
ret
; 92c17
Function92c17: ; 92c17
ld hl, $5
add hl, bc
ld [hl], $10
ret
; 92c1e
Function92c1e: ; 92c1e
ld hl, $5
add hl, bc
ld [hl], $8
ret
; 92c25
Function92c25: ; 92c25
ld hl, $5
add hl, bc
ld [hl], $4
ret
; 92c2c
Function92c2c: ; 92c2c
ld hl, $5
add hl, bc
ld [hl], $2
ret
; 92c33
Function92c33: ; 92c33
ld hl, $5
add hl, bc
ld [hl], $1
ret
; 92c3a
Function92c3a: ; 92c3a
ld hl, $5
add hl, bc
ld [hl], $0
ld hl, 0
add hl, bc
ld [hl], $1
ld hl, $f
add hl, bc
ld [hl], $3
Function92c4c: ; 92c4c
ld hl, $f
add hl, bc
ld a, [hl]
and a
jr z, .asm_92c56
dec [hl]
ret
.asm_92c56
ld hl, 0
add hl, bc
ld a, $0
ld [hl], a
ret
; 92c5e
Function92c5e: ; 92c5e
ld a, [wc709]
cp $ff
jr z, .asm_92c72
ld hl, $9
add hl, bc
ld a, [hl]
and a
jr z, .asm_92c72
dec [hl]
call Function92c76
ret nz
.asm_92c72
call Function92c3a
ret
; 92c76
Function92c76: ; 92c76
call Function92a12
ld a, [wc709]
ld e, a
ld a, [hli]
cp e
ret z
ld a, [hli]
cp e
ret z
ld a, [hl]
cp e
ret
; 92c86
Function92c86: ; 92c86
call Function92e94
jr nc, .asm_92c94
ld a, [wc717]
ld hl, wc709
cp [hl]
jr z, .asm_92ca5
.asm_92c94
ld a, [wc709]
cp $ff
jr z, .asm_92ca5
ld hl, $9
add hl, bc
ld a, [hl]
and a
jr z, .asm_92ca5
dec [hl]
ret
.asm_92ca5
call Function92c3a
ret
; 92ca9
Function92ca9: ; 92ca9
call Function92f1d
jr nc, .asm_92cbd
ld hl, wc709
cp [hl]
jr z, .asm_92cce
ld hl, $9
add hl, bc
ld a, [hl]
and a
ret z
dec [hl]
ret
.asm_92cbd
ld a, [wc709]
cp $ff
jr z, .asm_92cce
ld hl, $9
add hl, bc
ld a, [hl]
and a
jr z, .asm_92cce
dec [hl]
ret
.asm_92cce
call Function92c3a
ret
; 92cd2
Function92cd2: ; 92cd2
call Function92e94
jr nc, .asm_92ce1
ld a, [wc70c]
and a
jr z, .asm_92ce1
call Function92c3a
ret
.asm_92ce1
ld a, SFX_STOP_SLOT
call Function9331e
ld hl, 0
add hl, bc
inc [hl]
ld hl, $a
add hl, bc
ld [hl], $20
ld hl, $5
add hl, bc
ld [hl], $0
ret
; 92cf8
Function92cf8: ; 92cf8
ld hl, $a
add hl, bc
ld a, [hl]
and a
jr z, .asm_92d02
dec [hl]
ret
.asm_92d02
ld a, SFX_THROW_BALL
call Function9331e
ld hl, 0
add hl, bc
inc [hl]
ld hl, $5
add hl, bc
ld [hl], $8
ret
; 92d13
Function92d13: ; 92d13
call Function92e94
ret nc
ld a, [wc70c]
and a
ret z
call Function92c3a
ret
; 92d20
Function92d20: ; 92d20
call Function92f1d
ret c
ld a, SFX_STOP_SLOT
call Function9331e
call Function93316
ld hl, 0
add hl, bc
inc [hl]
ld hl, $5
add hl, bc
ld [hl], $0
call Function92fc0
push bc
push af
depixel 12, 13
ld a, SPRITE_ANIM_INDEX_06
call _InitSpriteAnimStruct
ld hl, $e
add hl, bc
pop af
ld [hl], a
pop bc
xor a
ld [wcf64], a
Function92d4f: ; 92d4f
ld a, [wcf64]
cp $2
jr z, .asm_92d5b
cp $1
jr z, .asm_92d62
ret
.asm_92d5b
call Function92f1d
call Function92c3a
ret
.asm_92d62
ld hl, 0
add hl, bc
inc [hl]
ld hl, $5
add hl, bc
ld [hl], $8
ret
; 92d6e
Function92d6e: ; 92d6e
xor a
ld [wcf64], a
ld hl, 0
add hl, bc
dec [hl]
ld hl, $5
add hl, bc
ld [hl], $0
ret
; 92d7e
Function92d7e: ; 92d7e
call Function92f1d
ret c
ld a, SFX_STOP_SLOT
call Function9331e
call Function93316
ld hl, 0
add hl, bc
inc [hl]
ld hl, $5
add hl, bc
ld [hl], $0
push bc
depixel 12, 0
ld a, SPRITE_ANIM_INDEX_07
call _InitSpriteAnimStruct
pop bc
xor a
ld [wcf64], a
ret
; 92da4
Function92da4: ; 92da4
ld a, [wcf64]
and a
ret z
ld hl, 0
add hl, bc
inc [hl]
ld a, $2
ld [wcf64], a
Function92db3: ; 92db3
ld a, [wcf64]
cp $4
ret c
ld hl, 0
add hl, bc
inc [hl]
ld hl, $5
add hl, bc
ld [hl], $10
ld hl, $a
add hl, bc
ld [hl], $11
Function92dca: ; 92dca
ld hl, $a
add hl, bc
ld a, [hl]
and a
jr z, .asm_92dd4
dec [hl]
ret
.asm_92dd4
call Function92f1d
jr nc, .asm_92de5
and a
jr nz, .asm_92de5
ld a, $5
ld [wcf64], a
call Function92c3a
ret
.asm_92de5
ld hl, $5
add hl, bc
ld [hl], $0
ld hl, 0
add hl, bc
rept 2
dec [hl]
endr
ld a, $1
ld [wcf64], a
ret
; 92df7
Function92df7: ; 92df7
call Function92f1d
ret c
ld a, SFX_STOP_SLOT
call Function9331e
call Function93316
ld hl, 0
add hl, bc
inc [hl]
call Function92fc0
ld hl, $a
add hl, bc
ld [hl], a
Function92e10: ; 92e10
ld hl, $a
add hl, bc
ld a, [hl]
and a
jr nz, .asm_92e1f
call Function92f1d
call Function92c3a
ret
.asm_92e1f
dec [hl]
ld hl, 0
add hl, bc
inc [hl]
ld hl, $b
add hl, bc
ld [hl], $20
ld hl, $5
add hl, bc
ld [hl], $0
Function92e31: ; 92e31
ld hl, $b
add hl, bc
ld a, [hl]
and a
jr z, .asm_92e3b
dec [hl]
ret
.asm_92e3b
ld hl, 0
add hl, bc
dec [hl]
ld hl, $5
add hl, bc
ld [hl], $8
ret
; 92e47
Function92e47: ; 92e47
call Function92f1d
ret c
ld a, SFX_STOP_SLOT
call Function9331e
call Function93316
ld hl, $5
add hl, bc
ld [hl], $1
ld hl, 0
add hl, bc
inc [hl]
ld hl, $a
add hl, bc
ld [hl], $10
Function92e64: ; 92e64
ld hl, $a
add hl, bc
ld a, [hl]
and a
jr z, .asm_92e73
dec [hl]
.asm_92e6d
ld a, SFX_GOT_SAFARI_BALLS
call Function9331e
ret
.asm_92e73
ld a, [wc709]
and a
jr nz, .asm_92e88
call Function92f1d
jr nc, .asm_92e6d
and a
jr nz, .asm_92e6d
call Function92c3a
call WaitSFX
ret
.asm_92e88
call Function92f1d
jr c, .asm_92e6d
call Function92c3a
call WaitSFX
ret
; 92e94
Function92e94: ; 92e94
xor a
ld [wc70b], a
ld [wc70c], a
call Function92a12
call Function92fb4
ld a, [wc70a]
and 3
ld e, a
ld d, 0
ld hl, Jumptable_92ebd
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
ld de, .asm_92eb6
push de
jp [hl]
.asm_92eb6
ld a, [wc70b]
and a
ret z
scf
ret
; 92ebd
Jumptable_92ebd: ; 92ebd
dw Function92ed4
dw Function92ed1
dw Function92ecb
dw Function92ec5
; 92ec5
Function92ec5: ; 92ec5
call Function92ee0
call Function92ef6
Function92ecb: ; 92ecb
call Function92ed5
call Function92f01
Function92ed1: ; 92ed1
call Function92eeb
Function92ed4: ; 92ed4
ret
; 92ed5
Function92ed5: ; 92ed5
ld hl, wc70e
ld a, [EnemyScreens]
cp [hl]
call z, Function92f0c
ret
; 92ee0
Function92ee0: ; 92ee0
ld hl, wEnemyGoesFirst
ld a, [wc700]
cp [hl]
call z, Function92f0c
ret
; 92eeb
Function92eeb: ; 92eeb
ld hl, wEnemyGoesFirst
ld a, [wc701]
cp [hl]
call z, Function92f0c
ret
; 92ef6
Function92ef6: ; 92ef6
ld hl, wEnemyGoesFirst
ld a, [wc702]
cp [hl]
call z, Function92f0c
ret
; 92f01
Function92f01: ; 92f01
ld hl, wc710
ld a, [wc702]
cp [hl]
call z, Function92f0c
ret
; 92f0c
Function92f0c: ; 92f0c
ld [wc717], a
and a
jr nz, .asm_92f17
ld a, $1
ld [wc70c], a
.asm_92f17
ld a, $1
ld [wc70b], a
ret
; 92f1d
Function92f1d: ; 92f1d
ld a, $ff
ld [EffectFailed], a
call Function92a12
call Function92fb4
ld a, [wc70a]
and 3
ld e, a
ld d, 0
ld hl, Jumptable_92f48
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
ld de, .asm_92f3d
push de
jp [hl]
.asm_92f3d
ld a, [wc70d]
cp $ff
jr nz, .asm_92f46
and a
ret
.asm_92f46
scf
ret
; 92f48
Jumptable_92f48: ; 92f48
dw Function92f5f
dw Function92f5c
dw Function92f56
dw Function92f50
; 92f50
Function92f50: ; 92f50
call Function92f70
call Function92f90
Function92f56: ; 92f56
call Function92f60
call Function92fa0
Function92f5c: ; 92f5c
call Function92f80
Function92f5f: ; 92f5f
ret
; 92f60
Function92f60: ; 92f60
ld hl, wc70e
ld a, [wc700]
cp [hl]
ret nz
ld hl, wc703
cp [hl]
call z, Function92fb0
ret
; 92f70
Function92f70: ; 92f70
ld hl, wc710
ld a, [wc700]
cp [hl]
ret nz
ld hl, wc704
cp [hl]
call z, Function92fb0
ret
; 92f80
Function92f80: ; 92f80
ld hl, wEnemyGoesFirst
ld a, [wc701]
cp [hl]
ret nz
ld hl, wc704
cp [hl]
call z, Function92fb0
ret
; 92f90
Function92f90: ; 92f90
ld hl, wc70e
ld a, [wc702]
cp [hl]
ret nz
ld hl, wc704
cp [hl]
call z, Function92fb0
ret
; 92fa0
Function92fa0: ; 92fa0
ld hl, wc710
ld a, [wc702]
cp [hl]
ret nz
ld hl, wc705
cp [hl]
call z, Function92fb0
ret
; 92fb0
Function92fb0: ; 92fb0
ld [wc70d], a
ret
; 92fb4
Function92fb4: ; 92fb4
ld de, wc70e
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
ret
; 92fc0
Function92fc0: ; 92fc0
ld hl, $3
add hl, bc
ld a, [hl]
push af
push hl
call Function92fcf
pop hl
pop af
ld [hl], a
ld a, e
ret
; 92fcf
Function92fcf: ; 92fcf
ld a, [wc709]
and a
jr nz, .asm_92fe8
ld e, $0
.asm_92fd7
ld hl, $3
add hl, bc
inc [hl]
inc e
push de
call Function92f1d
pop de
jr nc, .asm_92fd7
and a
jr nz, .asm_92fd7
ret
.asm_92fe8
call Random
and $7
cp $4
jr c, .asm_92fe8
ld e, a
.asm_92ff2
ld a, e
inc e
ld hl, $3
add hl, bc
add [hl]
ld [hl], a
push de
call Function92f1d
pop de
jr c, .asm_92ff2
ret
; 93002
Function93002: ; 93002 (24:7002)
ld a, [wc709]
and a
ret z
ld hl, Unknown_93023
ld a, [ScriptVar]
and a
jr z, .asm_93013
ld hl, Unknown_93031
.asm_93013
call Random
ld c, a
.asm_93017
ld a, [hli]
cp c
jr nc, .asm_9301e
inc hl
jr .asm_93017
.asm_9301e
ld a, [hl]
ld [wc709], a
ret
; 93023 (24:7023)
Unknown_93023: ; 93023
db $01, $00
db $03, $04
db $0a, $14
db $14, $10
db $28, $0c
db $30, $08
db $ff, $ff
; 93031
Unknown_93031: ; 93031
db $02, $00
db $03, $04
db $08, $14
db $10, $10
db $1e, $0c
db $50, $08
db $ff, $ff
; 9303f
Function9303f: ; 9303f (24:703f)
ld b, $14
ld a, [wc70a]
dec a
jr z, asm_93066
dec a
jr z, asm_9305a
jr asm_9304e
Function9304c: ; 9304c (24:704c)
ld b, $23
asm_9304e: ; 9304e (24:704e)
hlcoord 3, 2
call Function93069
hlcoord 3, 10
call Function93069
asm_9305a: ; 9305a (24:705a)
hlcoord 3, 4
call Function93069
hlcoord 3, 8
call Function93069
asm_93066: ; 93066 (24:7066)
hlcoord 3, 6
Function93069: ; 93069 (24:7069)
ld a, b
ld [hl], a
ld de, $d
add hl, de
ld [hl], a
ld de, $7
add hl, de
inc a
ld [hl], a
ld de, $d
add hl, de
ld [hl], a
ret
Function9307c: ; 9307c (24:707c)
ld hl, UnknownText_0x930c7
call PrintText
ld hl, MenuDataHeader_0x930d6
call LoadMenuDataHeader
call InterpretMenu2
call WriteBackup
ret c
ld a, [MenuSelection2]
ld b, a
ld a, $4
sub b
ld [wc70a], a
ld hl, Coins
ld c, a
ld a, [hli]
and a
jr nz, .asm_930ad
ld a, [hl]
cp c
jr nc, .asm_930ad
ld hl, UnknownText_0x930d1
call PrintText
jr Function9307c
.asm_930ad
ld hl, Coins + 1
ld a, [hl]
sub c
ld [hld], a
jr nc, .asm_930b6
dec [hl]
.asm_930b6
call WaitSFX
ld de, SFX_PAY_DAY
call PlaySFX
ld hl, UnknownText_0x930cc
call PrintText
and a
ret
; 930c7 (24:70c7)
UnknownText_0x930c7: ; 0x930c7
; Bet how many coins?
text_jump UnknownText_0x1c5049
db "@"
; 0x930cc
UnknownText_0x930cc: ; 0x930cc
; Start!
text_jump UnknownText_0x1c505e
db "@"
; 0x930d1
UnknownText_0x930d1: ; 0x930d1
; Not enough coins.
text_jump UnknownText_0x1c5066
db "@"
; 0x930d6
MenuDataHeader_0x930d6: ; 0x930d6
db $40 ; flags
db 10, 14 ; start coords
db 17, 19 ; end coords
dw MenuData2_0x930de
db 1 ; default option
; 0x930de
MenuData2_0x930de: ; 0x930de
db $80 ; flags
db 3 ; items
db " 3@"
db " 2@"
db " 1@"
; 0x930e9
Function930e9: ; 930e9 (24:70e9)
ld hl, Coins
ld a, [hli]
or [hl]
jr nz, .asm_930fd
ld hl, UnknownText_9311a
call PrintText
ld c, 60
call DelayFrames
jr .asm_93118
.asm_930fd
ld hl, UnknownText_9311f
call PrintText
call LoadMenuTextBox
lb bc, 14, 12
call PlaceYesNoBox
ld a, [MenuSelection2]
dec a
call WriteBackup
and a
jr nz, .asm_93118
and a
ret
.asm_93118
scf
ret
; 9311a (24:711a)
UnknownText_9311a: ; 9311a
text_jump UnknownText_0x1c5079
db "@"
UnknownText_9311f: ; 9311f
text_jump UnknownText_0x1c5092
db "@"
Function93124: ; 93124 (24:7124)
ld a, [EffectFailed]
cp $ff
jr z, .asm_93151
srl a
ld e, a
ld d, 0
ld hl, .data_93145
add hl, de
ld a, [hli]
ld [PlayerUsedMoves], a
ld e, a
ld a, [hl]
ld [wc711], a
ld d, a
callba MobileFn_105fe3
ret
.data_93145
db $2c, $01
db $32, $00
db $06, $00
db $08, $00
db $0a, $00
db $0f, $00
.asm_93151
ld hl, wc711
xor a
ld [hli], a
ld [hl], a
ret
Function93158: ; 93158 (24:7158)
ld a, [EffectFailed]
cp $ff
jr nz, .asm_9316c
ld hl, UnknownText_0x931e0
call PrintText
callba MobileFn_105fd0
ret
.asm_9316c
srl a
ld e, a
ld d, 0
ld hl, Unknown_93195
rept 3
add hl, de
endr
ld de, StringBuffer2
ld bc, $4
call CopyBytes
ld a, [hli]
ld h, [hl]
ld l, a
ld de, .asm_93188
push de
jp [hl]
.asm_93188
ld hl, UnknownText_0x931b9
call PrintText
callba MobileFn_105f9f
ret
; 93195 (24:7195)
Unknown_93195: ; 93195
db "300@"
dw Function931e5
db "50@@"
dw Function9320b
db "6@@@"
dw Function93214
db "8@@@"
dw Function93214
db "10@@"
dw Function93214
db "15@@"
dw Function93214
; 931b9
UnknownText_0x931b9: ; 0x931b9
start_asm
; 0x931ba
Function931ba: ; 931ba
ld a, [EffectFailed]
add $25
ldcoord_a 2, 13
inc a
ldcoord_a 2, 14
inc a
ldcoord_a 3, 13
inc a
ldcoord_a 3, 14
hlcoord 18, 17
ld [hl], $ee
ld hl, UnknownText_0x931db
rept 4
inc bc
endr
ret
; 931db
UnknownText_0x931db: ; 0x931db
; lined up! Won @ coins!
text_jump UnknownText_0x1c509f
db "@"
; 0x931e0
UnknownText_0x931e0: ; 0x931e0
; Darn!
text_jump UnknownText_0x1c50bb
db "@"
; 0x931e5
Function931e5: ; 931e5
ld a, SFX_2ND_PLACE
call Function9331e
call WaitSFX
ld a, [wd002]
and a
jr nz, .asm_931ff
call Random
and $14
ret z
ld a, $ff
ld [wc709], a
ret
.asm_931ff
call Random
and $1c
ret z
ld a, $ff
ld [wc709], a
ret
; 9320b
Function9320b: ; 9320b
ld a, SFX_3RD_PLACE
call Function9331e
call WaitSFX
ret
; 93214
Function93214: ; 93214
ld a, SFX_PRESENT
call Function9331e
call WaitSFX
ret
; 9321d
Function9321d: ; 9321d (24:721d)
ld hl, $b
add hl, bc
ld e, [hl]
ld d, 0
ld hl, Jumptable_9322d
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
Jumptable_9322d: ; 9322d (24:722d)
dw Function93233
dw Function93259
dw Function93289
Function93233: ; 93233 (24:7233)
ld hl, $e
add hl, bc
ld a, [hl]
and a
jr nz, .asm_93247
ld a, $2
ld [wcf64], a
ld hl, 0
add hl, bc
ld [hl], $0
ret
.asm_93247
dec [hl]
ld hl, $b
add hl, bc
inc [hl]
ld hl, $c
add hl, bc
ld [hl], $30
ld hl, $6
add hl, bc
ld [hl], $0
Function93259: ; 93259 (24:7259)
ld hl, $c
add hl, bc
ld a, [hl]
cp $20
jr c, .asm_93273
dec [hl]
ld e, a
ld d, $70
callba Functionce765
ld a, e
ld hl, $7
add hl, bc
ld [hl], a
ret
.asm_93273
ld hl, $b
add hl, bc
inc [hl]
ld hl, $d
add hl, bc
ld [hl], $2
ld a, $1
ld [wcf64], a
ld a, SFX_PLACE_PUZZLE_PIECE_DOWN
call Function9331e
ret
Function93289: ; 93289 (24:7289)
ld hl, $6
add hl, bc
ld a, [hl]
rept 2
inc [hl]
endr
cp $48
jr nc, .asm_932a3
and $3
ret nz
ld hl, $d
add hl, bc
ld a, [hl]
xor $ff
inc a
ld [hl], a
ld [hSCY], a
ret
.asm_932a3
ld hl, $b
add hl, bc
xor a
ld [hl], a
ld [hSCY], a
ret
Function932ac: ; 932ac (24:72ac)
ld hl, $b
add hl, bc
ld e, [hl]
ld d, 0
ld hl, Jumptable_932bc
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
Jumptable_932bc: ; 932bc (24:72bc)
dw Function932c2
dw Function932e0
dw Function932fc
Function932c2: ; 932c2 (24:72c2)
ld hl, $4
add hl, bc
ld a, [hl]
inc [hl]
cp $68
jr z, .asm_932d6
and $f
ret nz
ld de, SFX_JUMP_OVER_LEDGE
call PlaySFX
ret
.asm_932d6
ld hl, $b
add hl, bc
inc [hl]
ld a, $1
ld [wcf64], a
Function932e0: ; 932e0 (24:72e0)
ld a, [wcf64]
cp $2
jr z, .asm_932f1
cp $5
ret nz
ld hl, 0
add hl, bc
ld [hl], $0
ret
.asm_932f1
ld hl, $b
add hl, bc
inc [hl]
ld hl, $c
add hl, bc
ld [hl], $8
Function932fc: ; 932fc (24:72fc)
ld hl, $c
add hl, bc
ld a, [hl]
and a
jr z, .asm_93306
dec [hl]
ret
.asm_93306
ld hl, $b
add hl, bc
dec [hl]
push bc
depixel 12, 13, 0, 4
ld a, SPRITE_ANIM_INDEX_08
call _InitSpriteAnimStruct
pop bc
ret
; 93316 (24:7316)
Function93316: ; 93316
push bc
ld c, 16
call DelayFrames
pop bc
ret
; 9331e
Function9331e: ; 9331e (24:731e)
push de
ld e, a
ld d, 0
call PlaySFX
pop de
ret
; 93327 (24:7327)
Unknown_93327: ; 93327
db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14
Unknown_93339: ; 93339
db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08
Unknown_9334b: ; 9334b
db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08
; 9335d
SlotsTilemap: ; 9335d
INCBIN "gfx/slots.tilemap"
; 9344d
Slots1LZ: ; 9344d
INCBIN "gfx/slots_1.2bpp.lz"
; 935cd
Slots2LZ: ; 935cd
INCBIN "gfx/slots_2.2bpp.lz"
; 9382d
Slots3LZ: ; 9382d
INCBIN "gfx/slots_3.2bpp.lz"
; 93a3d