mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Split up some more banks in main.asm
This commit is contained in:
parent
ba871547ed
commit
042fc4bfe5
209
engine/money.asm
Executable file
209
engine/money.asm
Executable file
@ -0,0 +1,209 @@
|
|||||||
|
GiveMoney:: ; 15fd7
|
||||||
|
ld a, $3
|
||||||
|
call AddMoney
|
||||||
|
ld bc, MaxMoney
|
||||||
|
ld a, $3
|
||||||
|
call CompareMoney
|
||||||
|
jr z, .asm_15ff5
|
||||||
|
jr c, .asm_15ff5
|
||||||
|
ld hl, MaxMoney
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_15ff5
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 15ff7
|
||||||
|
|
||||||
|
MaxMoney: ; 15ff7
|
||||||
|
dt 999999
|
||||||
|
; 15ffa
|
||||||
|
|
||||||
|
|
||||||
|
TakeMoney:: ; 15ffa
|
||||||
|
ld a, 3
|
||||||
|
call SubtractMoney
|
||||||
|
jr nc, .asm_16009
|
||||||
|
xor a
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16009
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 1600b
|
||||||
|
|
||||||
|
CompareMoney:: ; 1600b
|
||||||
|
ld a, $3
|
||||||
|
CompareFunds: ; 1600d
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld h, b
|
||||||
|
ld l, c
|
||||||
|
ld c, $0
|
||||||
|
ld b, a
|
||||||
|
.loop1
|
||||||
|
dec a
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .loop1
|
||||||
|
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
.loop2
|
||||||
|
ld a, [de]
|
||||||
|
sbc [hl]
|
||||||
|
jr z, .okay
|
||||||
|
inc c
|
||||||
|
|
||||||
|
.okay
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec b
|
||||||
|
jr nz, .loop2
|
||||||
|
jr c, .set_carry
|
||||||
|
ld a, c
|
||||||
|
and a
|
||||||
|
jr .skip_carry
|
||||||
|
|
||||||
|
.set_carry
|
||||||
|
ld a, $1
|
||||||
|
and a
|
||||||
|
scf
|
||||||
|
|
||||||
|
.skip_carry
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 16035
|
||||||
|
|
||||||
|
SubtractMoney: ; 16035
|
||||||
|
ld a, 3
|
||||||
|
SubtractFunds: ; 16037
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld h, b
|
||||||
|
ld l, c
|
||||||
|
ld b, a
|
||||||
|
ld c, 0
|
||||||
|
.loop
|
||||||
|
dec a
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
.loop2
|
||||||
|
ld a, [de]
|
||||||
|
sbc [hl]
|
||||||
|
ld [de], a
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec b
|
||||||
|
jr nz, .loop2
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 16053
|
||||||
|
|
||||||
|
AddMoney: ; 16053
|
||||||
|
ld a, $3
|
||||||
|
AddFunds: ; 16055
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld h, b
|
||||||
|
ld l, c
|
||||||
|
ld b, a
|
||||||
|
.loop1
|
||||||
|
dec a
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .loop1
|
||||||
|
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
.loop2
|
||||||
|
ld a, [de]
|
||||||
|
adc [hl]
|
||||||
|
ld [de], a
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec b
|
||||||
|
jr nz, .loop2
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 1606f
|
||||||
|
|
||||||
|
GiveCoins:: ; 1606f
|
||||||
|
ld a, 2
|
||||||
|
ld de, Coins
|
||||||
|
call AddFunds
|
||||||
|
ld a, 2
|
||||||
|
ld bc, .maxcoins
|
||||||
|
call CompareFunds
|
||||||
|
jr c, .not_maxed
|
||||||
|
ld hl, .maxcoins
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.not_maxed
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 1608d
|
||||||
|
|
||||||
|
.maxcoins: ; 1608d
|
||||||
|
bigdw 9999
|
||||||
|
; 1608f
|
||||||
|
|
||||||
|
|
||||||
|
TakeCoins:: ; 1608f
|
||||||
|
ld a, 2
|
||||||
|
ld de, Coins
|
||||||
|
call SubtractFunds
|
||||||
|
jr nc, .asm_1609f
|
||||||
|
xor a
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_1609f
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 160a1
|
||||||
|
|
||||||
|
CheckCoins:: ; 160a1
|
||||||
|
ld a, $2
|
||||||
|
ld de, Coins
|
||||||
|
jp CompareFunds
|
||||||
|
; 160a9
|
705
engine/pokecenter_pc.asm
Executable file
705
engine/pokecenter_pc.asm
Executable file
File diff suppressed because it is too large
Load Diff
771
engine/timeset.asm
Executable file
771
engine/timeset.asm
Executable file
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ SpecialBuenasPassword: ; 8af6b
|
|||||||
add $2
|
add $2
|
||||||
ld [wMenuBorderRightCoord], a
|
ld [wMenuBorderRightCoord], a
|
||||||
call BackUpTiles
|
call BackUpTiles
|
||||||
call Function1e5d ; menu
|
call DoNthMenu ; menu
|
||||||
callba Function4ae5e
|
callba Function4ae5e
|
||||||
ld b, $0
|
ld b, $0
|
||||||
ld a, [MenuSelection]
|
ld a, [MenuSelection]
|
||||||
|
768
event/daycare.asm
Executable file
768
event/daycare.asm
Executable file
File diff suppressed because it is too large
Load Diff
312
event/field_moves.asm
Executable file
312
event/field_moves.asm
Executable file
@ -0,0 +1,312 @@
|
|||||||
|
PlayWhirlpoolSound: ; 8c7d4
|
||||||
|
call WaitSFX
|
||||||
|
ld de, SFX_SURF
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
ret
|
||||||
|
; 8c7e1
|
||||||
|
|
||||||
|
BlindingFlash: ; 8c7e1
|
||||||
|
callba FadeOutPalettes
|
||||||
|
ld hl, StatusFlags
|
||||||
|
set 2, [hl]
|
||||||
|
callba Function8c0e5
|
||||||
|
callba Function8c001
|
||||||
|
ld b, SCGB_09
|
||||||
|
call GetSGBLayout
|
||||||
|
callba Function49409
|
||||||
|
callba FadeInPalettes
|
||||||
|
ret
|
||||||
|
; 8c80a
|
||||||
|
|
||||||
|
ShakeHeadbuttTree: ; 8c80a
|
||||||
|
callba Function8cf53
|
||||||
|
ld de, CutGrassGFX
|
||||||
|
ld hl, VTiles1
|
||||||
|
lb bc, BANK(CutGrassGFX), 4
|
||||||
|
call Request2bpp
|
||||||
|
ld de, HeadbuttTreeGFX
|
||||||
|
ld hl, VTiles1 tile $04
|
||||||
|
lb bc, BANK(HeadbuttTreeGFX), 8
|
||||||
|
call Request2bpp
|
||||||
|
call Function8cad3
|
||||||
|
ld a, SPRITE_ANIM_INDEX_1B
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $84
|
||||||
|
ld a, $90
|
||||||
|
ld [wc3b5], a
|
||||||
|
callba Function8cf7a
|
||||||
|
call GetHeadbuttTreeRelativeLocation
|
||||||
|
ld a, $20
|
||||||
|
ld [wcf64], a
|
||||||
|
call WaitSFX
|
||||||
|
ld de, SFX_SANDSTORM
|
||||||
|
call PlaySFX
|
||||||
|
.loop
|
||||||
|
ld hl, wcf64
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .done
|
||||||
|
dec [hl]
|
||||||
|
ld a, $90
|
||||||
|
ld [wc3b5], a
|
||||||
|
callba Function8cf7a
|
||||||
|
call DelayFrame
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
call OverworldTextModeSwitch
|
||||||
|
call WaitBGMap
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
callba Function8cf53
|
||||||
|
ld hl, Sprites + $90
|
||||||
|
ld bc, $10
|
||||||
|
xor a
|
||||||
|
call ByteFill
|
||||||
|
ld de, Font
|
||||||
|
ld hl, VTiles1
|
||||||
|
lb bc, BANK(Font), $c
|
||||||
|
call Get1bpp
|
||||||
|
call ReplaceKrisSprite
|
||||||
|
ret
|
||||||
|
; 8c893
|
||||||
|
|
||||||
|
HeadbuttTreeGFX: ; 8c893
|
||||||
|
INCBIN "gfx/unknown/08c893.2bpp"
|
||||||
|
; 8c913
|
||||||
|
|
||||||
|
GetHeadbuttTreeRelativeLocation: ; 8c913
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ld a, [PlayerDirection]
|
||||||
|
and %00001100
|
||||||
|
srl a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, TreeRelativeLocationTable
|
||||||
|
add hl, de
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
ld a, $5
|
||||||
|
ld [hli], a
|
||||||
|
ld [hld], a
|
||||||
|
ld bc, SCREEN_WIDTH
|
||||||
|
add hl, bc
|
||||||
|
ld [hli], a
|
||||||
|
ld [hld], a
|
||||||
|
call WaitBGMap
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ret
|
||||||
|
; 8c938
|
||||||
|
|
||||||
|
TreeRelativeLocationTable: ; 8c938
|
||||||
|
dwcoord 8, 8 + 2 ; RIGHT
|
||||||
|
dwcoord 8, 8 - 2 ; LEFT
|
||||||
|
dwcoord 8 - 2, 8 ; DOWN
|
||||||
|
dwcoord 8 + 2, 8 ; UP
|
||||||
|
; 8c940
|
||||||
|
|
||||||
|
OWCutAnimation: ; 8c940
|
||||||
|
ld a, e
|
||||||
|
and $1
|
||||||
|
ld [wJumptableIndex], a
|
||||||
|
call .LoadCutGFX
|
||||||
|
call WaitSFX
|
||||||
|
ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
|
||||||
|
call PlaySFX
|
||||||
|
.loop
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
bit 7, a
|
||||||
|
jr nz, .finish
|
||||||
|
ld a, $90
|
||||||
|
ld [wc3b5], a
|
||||||
|
callab Function8cf7a
|
||||||
|
call OWCutJumptable
|
||||||
|
call DelayFrame
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.finish
|
||||||
|
ret
|
||||||
|
; 8c96d
|
||||||
|
|
||||||
|
.LoadCutGFX: ; 8c96d
|
||||||
|
callab Function8cf53 ; pointless to farcall
|
||||||
|
ld de, CutGrassGFX
|
||||||
|
ld hl, VTiles1
|
||||||
|
lb bc, BANK(CutGrassGFX), 4
|
||||||
|
call Request2bpp
|
||||||
|
ld de, CutTreeGFX
|
||||||
|
ld hl, VTiles1 tile $4
|
||||||
|
lb bc, BANK(CutTreeGFX), 4
|
||||||
|
call Request2bpp
|
||||||
|
ret
|
||||||
|
; 8c98c
|
||||||
|
|
||||||
|
CutTreeGFX: ; c898c
|
||||||
|
INCBIN "gfx/misc/cut_tree.2bpp"
|
||||||
|
; c89cc
|
||||||
|
|
||||||
|
CutGrassGFX: ; 8c9cc
|
||||||
|
INCBIN "gfx/misc/cut_grass.2bpp"
|
||||||
|
; 8ca0c
|
||||||
|
|
||||||
|
OWCutJumptable: ; 8ca0c
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .jumptable
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
jp [hl]
|
||||||
|
; 8ca1b
|
||||||
|
|
||||||
|
|
||||||
|
.jumptable: ; 8ca1b (23:4a1b)
|
||||||
|
dw Function8ca23
|
||||||
|
dw Function8ca3c
|
||||||
|
dw Function8ca5c
|
||||||
|
dw Function8ca64
|
||||||
|
|
||||||
|
|
||||||
|
Function8ca23: ; 8ca23 (23:4a23)
|
||||||
|
call Function8cad3
|
||||||
|
ld a, SPRITE_ANIM_INDEX_17 ; leaf
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $84
|
||||||
|
ld a, $20
|
||||||
|
ld [wcf64], a
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
rept 2
|
||||||
|
inc [hl]
|
||||||
|
endr
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca3c: ; 8ca3c (23:4a3c)
|
||||||
|
call Function8ca8e
|
||||||
|
xor a
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $10
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $20
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $30
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $20
|
||||||
|
ld [wcf64], a
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
inc [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca5c: ; 8ca5c (23:4a5c)
|
||||||
|
ld a, $1
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
inc [hl]
|
||||||
|
|
||||||
|
Function8ca64: ; 8ca64 (23:4a64)
|
||||||
|
ld hl, wcf64
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .asm_8ca6d
|
||||||
|
dec [hl]
|
||||||
|
ret
|
||||||
|
.asm_8ca6d
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
set 7, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca73: ; 8ca73 (23:4a73)
|
||||||
|
push de
|
||||||
|
push af
|
||||||
|
ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $80
|
||||||
|
ld hl, $e
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $4
|
||||||
|
pop af
|
||||||
|
ld hl, $c
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], a
|
||||||
|
pop de
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca8e: ; 8ca8e (23:4a8e)
|
||||||
|
ld de, 0
|
||||||
|
ld a, [wd197]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .asm_8ca9a
|
||||||
|
set 0, e
|
||||||
|
.asm_8ca9a
|
||||||
|
ld a, [wd196]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .asm_8caa3
|
||||||
|
set 1, e
|
||||||
|
.asm_8caa3
|
||||||
|
ld a, [PlayerDirection]
|
||||||
|
and $c
|
||||||
|
add e
|
||||||
|
ld e, a
|
||||||
|
ld hl, Unknown_8cab3
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
ret
|
||||||
|
; 8cab3 (23:4ab3)
|
||||||
|
|
||||||
|
Unknown_8cab3: ; 8cab3
|
||||||
|
db $58, $60
|
||||||
|
db $48, $60
|
||||||
|
db $58, $70
|
||||||
|
db $48, $70
|
||||||
|
db $58, $40
|
||||||
|
db $48, $40
|
||||||
|
db $58, $50
|
||||||
|
db $48, $50
|
||||||
|
db $38, $60
|
||||||
|
db $48, $60
|
||||||
|
db $38, $50
|
||||||
|
db $48, $50
|
||||||
|
db $58, $60
|
||||||
|
db $68, $60
|
||||||
|
db $58, $50
|
||||||
|
db $68, $50
|
||||||
|
; 8cad3
|
||||||
|
|
||||||
|
Function8cad3: ; 8cad3 (23:4ad3)
|
||||||
|
ld a, [PlayerDirection]
|
||||||
|
and $c
|
||||||
|
srl a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, Unknown_8cae5
|
||||||
|
add hl, de
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
ret
|
||||||
|
; 8cae5 (23:4ae5)
|
||||||
|
|
||||||
|
Unknown_8cae5: ; 8cae5
|
||||||
|
db $50, $68
|
||||||
|
db $50, $48
|
||||||
|
db $40, $58
|
||||||
|
db $60, $58
|
||||||
|
; 8caed
|
485
event/magnet_train.asm
Executable file
485
event/magnet_train.asm
Executable file
@ -0,0 +1,485 @@
|
|||||||
|
Special_MagnetTrain: ; 8cc04
|
||||||
|
ld a, [ScriptVar]
|
||||||
|
and a
|
||||||
|
jr nz, .ToGoldenrod
|
||||||
|
ld a, 1 ; forwards
|
||||||
|
lb bc, $40, $60
|
||||||
|
ld de, $fca0
|
||||||
|
jr .continue
|
||||||
|
|
||||||
|
.ToGoldenrod
|
||||||
|
ld a, -1 ; backwards
|
||||||
|
lb bc, $c0, $a0
|
||||||
|
ld de, $b460
|
||||||
|
|
||||||
|
.continue
|
||||||
|
ld h, a
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $5
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, h
|
||||||
|
ld [w5_d191], a
|
||||||
|
ld a, c
|
||||||
|
ld [w5_d192], a
|
||||||
|
ld a, b
|
||||||
|
ld [w5_d193], a
|
||||||
|
ld a, e
|
||||||
|
ld [w5_d194], a
|
||||||
|
ld a, d
|
||||||
|
ld [w5_d195], a
|
||||||
|
ld a, [hSCX]
|
||||||
|
push af
|
||||||
|
ld a, [hSCY]
|
||||||
|
push af
|
||||||
|
call Function8ccc9
|
||||||
|
ld hl, hVBlank
|
||||||
|
ld a, [hl]
|
||||||
|
push af
|
||||||
|
ld [hl], $1
|
||||||
|
.loop
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
and a
|
||||||
|
jr z, .initialize
|
||||||
|
bit 7, a
|
||||||
|
jr nz, .done
|
||||||
|
callab Function8cf69
|
||||||
|
call Function8cdf7
|
||||||
|
call Function8cc99
|
||||||
|
call Function3b0c
|
||||||
|
call DelayFrame
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.initialize
|
||||||
|
call Function8ceae
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
pop af
|
||||||
|
ld [hVBlank], a
|
||||||
|
call ClearBGPalettes
|
||||||
|
xor a
|
||||||
|
ld [hLCDStatCustom], a
|
||||||
|
ld [hLCDStatCustom + 1], a
|
||||||
|
ld [hLCDStatCustom + 2], a
|
||||||
|
ld [hSCX], a
|
||||||
|
ld [Requested2bppSource], a
|
||||||
|
ld [Requested2bppSource + 1], a
|
||||||
|
ld [Requested2bppDest], a
|
||||||
|
ld [Requested2bppDest + 1], a
|
||||||
|
ld [Requested2bpp], a
|
||||||
|
call ClearTileMap
|
||||||
|
pop af
|
||||||
|
ld [hSCY], a
|
||||||
|
pop af
|
||||||
|
ld [hSCX], a
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ret
|
||||||
|
; 8cc99
|
||||||
|
|
||||||
|
Function8cc99: ; 8cc99
|
||||||
|
ld hl, LYOverridesBackup
|
||||||
|
ld c, $2f
|
||||||
|
ld a, [wcf64]
|
||||||
|
add a
|
||||||
|
ld [hSCX], a
|
||||||
|
call Function8ccc4
|
||||||
|
ld c, $30
|
||||||
|
ld a, [wcf65]
|
||||||
|
call Function8ccc4
|
||||||
|
ld c, $31
|
||||||
|
ld a, [wcf64]
|
||||||
|
add a
|
||||||
|
call Function8ccc4
|
||||||
|
ld a, [wd191]
|
||||||
|
ld d, a
|
||||||
|
ld hl, wcf64
|
||||||
|
ld a, [hl]
|
||||||
|
rept 2
|
||||||
|
add d
|
||||||
|
endr
|
||||||
|
ld [hl], a
|
||||||
|
ret
|
||||||
|
; 8ccc4
|
||||||
|
|
||||||
|
Function8ccc4: ; 8ccc4
|
||||||
|
.asm_8ccc4
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .asm_8ccc4
|
||||||
|
ret
|
||||||
|
; 8ccc9
|
||||||
|
|
||||||
|
Function8ccc9: ; 8ccc9
|
||||||
|
call ClearBGPalettes
|
||||||
|
call ClearSprites
|
||||||
|
call DisableLCD
|
||||||
|
callab Function8cf53
|
||||||
|
call SetMagnetTrainPals
|
||||||
|
call DrawMagnetTrain
|
||||||
|
ld a, $90
|
||||||
|
ld [hWY], a
|
||||||
|
call EnableLCD
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ld [hSCX], a
|
||||||
|
ld [hSCY], a
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [rSVBK], a
|
||||||
|
callba GetPlayerIcon
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld hl, VTiles0
|
||||||
|
ld c, $4
|
||||||
|
call Request2bpp
|
||||||
|
ld hl, $c0
|
||||||
|
add hl, de
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
ld hl, VTiles0 tile $04
|
||||||
|
ld c, $4
|
||||||
|
call Request2bpp
|
||||||
|
call Function8cda6
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
xor a
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [wd192]
|
||||||
|
rept 3
|
||||||
|
ld [hli], a
|
||||||
|
endr
|
||||||
|
ld de, MUSIC_MAGNET_TRAIN
|
||||||
|
call PlayMusic2
|
||||||
|
ret
|
||||||
|
; 8cd27
|
||||||
|
|
||||||
|
DrawMagnetTrain: ; 8cd27
|
||||||
|
ld hl, VBGMap0
|
||||||
|
xor a
|
||||||
|
.asm_8cd2b
|
||||||
|
call GetMagnetTrainBGTiles
|
||||||
|
ld b, 32 / 2
|
||||||
|
call .FillAlt
|
||||||
|
inc a
|
||||||
|
cp $12
|
||||||
|
jr c, .asm_8cd2b
|
||||||
|
ld hl, VBGMap0 tile $0c
|
||||||
|
ld de, MagnetTrainTilemap1
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ld hl, VBGMap0 tile $0e
|
||||||
|
ld de, MagnetTrainTilemap2
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ld hl, VBGMap0 tile $10
|
||||||
|
ld de, MagnetTrainTilemap3
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ld hl, VBGMap0 tile $12
|
||||||
|
ld de, MagnetTrainTilemap4
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ret
|
||||||
|
; 8cd65
|
||||||
|
|
||||||
|
.FillLine ; 8cd65
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .FillLine
|
||||||
|
ret
|
||||||
|
; 8cd6c
|
||||||
|
|
||||||
|
.FillAlt ; 8cd6c
|
||||||
|
ld [hl], e
|
||||||
|
inc hl
|
||||||
|
ld [hl], d
|
||||||
|
inc hl
|
||||||
|
dec b
|
||||||
|
jr nz, .FillAlt
|
||||||
|
ret
|
||||||
|
; 8cd74
|
||||||
|
|
||||||
|
GetMagnetTrainBGTiles: ; 8cd74
|
||||||
|
push hl
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, MagnetTrainBGTiles
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 8cd82
|
||||||
|
|
||||||
|
MagnetTrainBGTiles: ; 8cd82
|
||||||
|
; Alternating tiles for each line
|
||||||
|
; of the Magnet Train tilemap.
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
db $08, $08 ; fence
|
||||||
|
db $18, $18 ; fence
|
||||||
|
db $1f, $1f ; track
|
||||||
|
db $31, $31 ; track
|
||||||
|
db $11, $11 ; track
|
||||||
|
db $11, $11 ; track
|
||||||
|
db $0d, $0d ; track
|
||||||
|
db $31, $31 ; track
|
||||||
|
db $04, $04 ; fence
|
||||||
|
db $18, $18 ; fence
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
; 8cda6
|
||||||
|
|
||||||
|
Function8cda6: ; 8cda6
|
||||||
|
ld hl, LYOverrides
|
||||||
|
ld bc, $90
|
||||||
|
ld a, [wd192]
|
||||||
|
call ByteFill
|
||||||
|
ld hl, LYOverridesBackup
|
||||||
|
ld bc, $90
|
||||||
|
ld a, [wd192]
|
||||||
|
call ByteFill
|
||||||
|
ld a, $43
|
||||||
|
ld [hLCDStatCustom], a
|
||||||
|
ret
|
||||||
|
; 8cdc3
|
||||||
|
|
||||||
|
SetMagnetTrainPals: ; 8cdc3
|
||||||
|
ld a, $1
|
||||||
|
ld [rVBK], a
|
||||||
|
|
||||||
|
; bushes
|
||||||
|
ld hl, VBGMap0
|
||||||
|
ld bc, 8 tiles
|
||||||
|
ld a, $2
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
; train
|
||||||
|
ld hl, VBGMap0 tile $08
|
||||||
|
ld bc, 20 tiles
|
||||||
|
xor a
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
; more bushes
|
||||||
|
ld hl, VBGMap0 tile $1c
|
||||||
|
ld bc, 8 tiles
|
||||||
|
ld a, $2
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
; train window
|
||||||
|
ld hl, VBGMap0 tile $10 + 7
|
||||||
|
ld bc, 6
|
||||||
|
ld a, $4
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
ld a, $0
|
||||||
|
ld [rVBK], a
|
||||||
|
ret
|
||||||
|
; 8cdf7
|
||||||
|
|
||||||
|
Function8cdf7: ; 8cdf7
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, Jumptable_8ce06
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
jp [hl]
|
||||||
|
; 8ce06
|
||||||
|
|
||||||
|
Jumptable_8ce06: ; 8ce06
|
||||||
|
dw Function8ce19
|
||||||
|
dw Function8ce6d
|
||||||
|
dw Function8ce47
|
||||||
|
dw Function8ce6d
|
||||||
|
dw Function8ce7a
|
||||||
|
dw Function8ce6d
|
||||||
|
dw Function8cea2
|
||||||
|
; 8ce14
|
||||||
|
|
||||||
|
Function8ce14: ; 8ce14
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
inc [hl]
|
||||||
|
ret
|
||||||
|
; 8ce19
|
||||||
|
|
||||||
|
Function8ce19: ; 8ce19
|
||||||
|
ld d, $55
|
||||||
|
ld a, [wd194 + 1]
|
||||||
|
ld e, a
|
||||||
|
ld b, SPRITE_ANIM_INDEX_15
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, [PlayerGender]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .asm_8ce31
|
||||||
|
ld b, SPRITE_ANIM_INDEX_1F
|
||||||
|
|
||||||
|
.asm_8ce31
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, b
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $0
|
||||||
|
call Function8ce14
|
||||||
|
ld a, $80
|
||||||
|
ld [wcf66], a
|
||||||
|
ret
|
||||||
|
; 8ce47
|
||||||
|
|
||||||
|
Function8ce47: ; 8ce47
|
||||||
|
ld hl, wd193
|
||||||
|
ld a, [wcf65]
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_8ce64
|
||||||
|
ld e, a
|
||||||
|
ld a, [wd191]
|
||||||
|
xor $ff
|
||||||
|
inc a
|
||||||
|
add e
|
||||||
|
ld [wcf65], a
|
||||||
|
ld hl, wc3c0
|
||||||
|
ld a, [wd191]
|
||||||
|
add [hl]
|
||||||
|
ld [hl], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_8ce64
|
||||||
|
call Function8ce14
|
||||||
|
ld a, $80
|
||||||
|
ld [wcf66], a
|
||||||
|
ret
|
||||||
|
; 8ce6d
|
||||||
|
|
||||||
|
Function8ce6d: ; 8ce6d
|
||||||
|
ld hl, wcf66
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .asm_8ce76
|
||||||
|
dec [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_8ce76
|
||||||
|
call Function8ce14
|
||||||
|
ret
|
||||||
|
; 8ce7a
|
||||||
|
|
||||||
|
Function8ce7a: ; 8ce7a
|
||||||
|
ld hl, wd194
|
||||||
|
ld a, [wcf65]
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_8ce9e
|
||||||
|
ld e, a
|
||||||
|
ld a, [wd191]
|
||||||
|
xor $ff
|
||||||
|
inc a
|
||||||
|
ld d, a
|
||||||
|
ld a, e
|
||||||
|
rept 2
|
||||||
|
add d
|
||||||
|
endr
|
||||||
|
ld [wcf65], a
|
||||||
|
ld hl, wc3c0
|
||||||
|
ld a, [wd191]
|
||||||
|
ld d, a
|
||||||
|
ld a, [hl]
|
||||||
|
rept 2
|
||||||
|
add d
|
||||||
|
endr
|
||||||
|
ld [hl], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_8ce9e
|
||||||
|
call Function8ce14
|
||||||
|
ret
|
||||||
|
; 8cea2
|
||||||
|
|
||||||
|
Function8cea2: ; 8cea2
|
||||||
|
ld a, $80
|
||||||
|
ld [wJumptableIndex], a
|
||||||
|
ld de, SFX_TRAIN_ARRIVED
|
||||||
|
call PlaySFX
|
||||||
|
ret
|
||||||
|
; 8ceae
|
||||||
|
|
||||||
|
Function8ceae: ; 8ceae
|
||||||
|
callba Function8cf69
|
||||||
|
call Function8cdf7
|
||||||
|
call Function8cc99
|
||||||
|
call Function3b0c
|
||||||
|
call DelayFrame
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, [TimeOfDayPal]
|
||||||
|
push af
|
||||||
|
ld a, [wPermission]
|
||||||
|
push af
|
||||||
|
ld a, [TimeOfDay]
|
||||||
|
and $3
|
||||||
|
ld [TimeOfDayPal], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wPermission], a
|
||||||
|
ld b, SCGB_09
|
||||||
|
call GetSGBLayout
|
||||||
|
call UpdateTimePals
|
||||||
|
ld a, [rBGP]
|
||||||
|
ld [wcfc7], a
|
||||||
|
ld a, [rOBP0]
|
||||||
|
ld [wcfc8], a
|
||||||
|
ld a, [rOBP1]
|
||||||
|
ld [wcfc9], a
|
||||||
|
pop af
|
||||||
|
ld [wPermission], a
|
||||||
|
pop af
|
||||||
|
ld [TimeOfDayPal], a
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ret
|
||||||
|
; 8ceff
|
||||||
|
|
||||||
|
MagnetTrainTilemap1:
|
||||||
|
db $1f, $05, $06, $0a, $0a
|
||||||
|
db $0a, $09, $0a, $0a, $0a
|
||||||
|
db $0a, $0a, $0a, $09, $0a
|
||||||
|
db $0a, $0a, $0b, $0c, $1f
|
||||||
|
MagnetTrainTilemap2:
|
||||||
|
db $14, $15, $16, $1a, $1a
|
||||||
|
db $1a, $19, $1a, $1a, $1a
|
||||||
|
db $1a, $1a, $1a, $19, $1a
|
||||||
|
db $1a, $1a, $1b, $1c, $1d
|
||||||
|
MagnetTrainTilemap3:
|
||||||
|
db $24, $25, $26, $27, $07
|
||||||
|
db $2f, $29, $28, $28, $28
|
||||||
|
db $28, $28, $28, $29, $07
|
||||||
|
db $2f, $2a, $2b, $2c, $2d
|
||||||
|
MagnetTrainTilemap4:
|
||||||
|
db $20, $1f, $2e, $1f, $17
|
||||||
|
db $00, $2e, $1f, $1f, $1f
|
||||||
|
db $1f, $1f, $1f, $2e, $17
|
||||||
|
db $00, $1f, $2e, $1f, $0f
|
||||||
|
; 8cf4f
|
@ -227,7 +227,7 @@ Function1e35:: ; 1e35
|
|||||||
ret
|
ret
|
||||||
; 1e5d
|
; 1e5d
|
||||||
|
|
||||||
Function1e5d:: ; 1e5d
|
DoNthMenu:: ; 1e5d
|
||||||
call MenuFunc_1e7f
|
call MenuFunc_1e7f
|
||||||
call MenuWriteText
|
call MenuWriteText
|
||||||
call Function1eff
|
call Function1eff
|
||||||
@ -438,7 +438,7 @@ Function1f79:: ; 1f79
|
|||||||
ret
|
ret
|
||||||
; 1f8d
|
; 1f8d
|
||||||
|
|
||||||
Function1f8d:: ; 1f8d
|
PlaceNthMenuStrings:: ; 1f8d
|
||||||
push de
|
push de
|
||||||
ld a, [MenuSelection]
|
ld a, [MenuSelection]
|
||||||
call Function1fb1
|
call Function1fb1
|
||||||
@ -464,7 +464,7 @@ endr
|
|||||||
ret
|
ret
|
||||||
; 1fa7
|
; 1fa7
|
||||||
|
|
||||||
Function1fa7:: ; 1fa7
|
MenuJumptable:: ; 1fa7
|
||||||
ld a, [MenuSelection]
|
ld a, [MenuSelection]
|
||||||
call Function1fb1
|
call Function1fb1
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
|
2
wram.asm
2
wram.asm
@ -2402,7 +2402,7 @@ RegisteredItem:: ; d95c
|
|||||||
PlayerState:: ; d95d
|
PlayerState:: ; d95d
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
wd95e:: ds 2
|
wHallOfFameCount:: ds 2
|
||||||
wd960:: ds 2
|
wd960:: ds 2
|
||||||
MooMooBerries:: ; d962
|
MooMooBerries:: ; d962
|
||||||
ds 1 ; how many berries fed to MooMoo
|
ds 1 ; how many berries fed to MooMoo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user