summaryrefslogtreecommitdiff
path: root/engine/cable_club.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/cable_club.asm')
-rwxr-xr-xengine/cable_club.asm960
1 files changed, 960 insertions, 0 deletions
diff --git a/engine/cable_club.asm b/engine/cable_club.asm
new file mode 100755
index 00000000..3b1cbedd
--- /dev/null
+++ b/engine/cable_club.asm
@@ -0,0 +1,960 @@
+Func_5317: ; 5317 (1:5317)
+ ld c, $50
+ call DelayFrames
+ call ClearScreen
+ call UpdateSprites
+ call LoadFontTilePatterns
+ call LoadHpBarAndStatusTilePatterns
+ call LoadTrainerInfoTextBoxTiles
+ FuncCoord 3, 8 ; $c443
+ ld hl, Coord
+ ld b, $2
+ ld c, $c
+ call Func_5ab3
+ FuncCoord 4, 10 ; $c46c
+ ld hl, Coord
+ ld de, PleaseWaitString ; $550f
+ call PlaceString
+ ld hl, W_NUMHITS ; $d074
+ xor a
+ ld [hli], a
+ ld [hl], $50
+
+Func_5345: ; 5345
+ ld hl, $d152
+ ld a, $fd
+ ld b, $6
+.asm_534c
+ ld [hli], a
+ dec b
+ jr nz, .asm_534c
+ ld hl, $d141
+ ld a, $fd
+ ld b, $7
+.asm_5357
+ ld [hli], a
+ dec b
+ jr nz, .asm_5357
+ ld b, $a
+.asm_535d
+ call GenRandom
+ cp $fd
+ jr nc, .asm_535d
+ ld [hli], a
+ dec b
+ jr nz, .asm_535d
+ ld hl, wTileMapBackup
+ ld a, $fd
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld b, $c8
+ xor a
+.asm_5373
+ ld [hli], a
+ dec b
+ jr nz, .asm_5373
+ ld hl, W_GRASSRATE ; $d887
+ ld bc, $1a9
+.asm_537d
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_537d
+ ld hl, W_PARTYMONEND ; $d16a
+ ld de, $c512
+ ld bc, $0
+.asm_538d
+ inc c
+ ld a, c
+ cp $fd
+ jr z, .asm_53a9
+ ld a, b
+ dec a
+ jr nz, .asm_539c
+ ld a, c
+ cp $d
+ jr z, .asm_53b2
+.asm_539c
+ inc hl
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_538d
+ ld a, c
+ ld [de], a
+ inc de
+ ld [hl], $ff
+ jr .asm_538d
+.asm_53a9
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld bc, $100
+ jr .asm_538d
+.asm_53b2
+ ld a, $ff
+ ld [de], a
+ call Func_227f
+ ld a, [$ffaa]
+ cp $2
+ jr nz, .asm_53d2
+ call Delay3
+ xor a
+ ld [$ffac], a
+ ld a, $81
+ ld [$ff02], a
+ call DelayFrame
+ xor a
+ ld [$ffac], a
+ ld a, $81
+ ld [$ff02], a
+.asm_53d2
+ call Delay3
+ ld a, $8
+ ld [rIE], a ; $ffff
+ ld hl, $d141
+ ld de, wTileMapBackup2
+ ld bc, $11
+ call Func_216f
+ ld a, $fe
+ ld [de], a
+ ld hl, $d152
+ ld de, $d893
+ ld bc, $1a8
+ call Func_216f
+ ld a, $fe
+ ld [de], a
+ ld hl, wTileMapBackup
+ ld de, $c5d0
+ ld bc, $c8
+ call Func_216f
+ ld a, $d
+ ld [rIE], a ; $ffff
+ ld a, $ff
+ call PlaySound
+ ld a, [$ffaa]
+ cp $2
+ jr z, .asm_5431
+ ld hl, wTileMapBackup2
+.asm_5415
+ ld a, [hli]
+ and a
+ jr z, .asm_5415
+ cp $fd
+ jr z, .asm_5415
+ cp $fe
+ jr z, .asm_5415
+ dec hl
+ ld de, $d148
+ ld c, $a
+.asm_5427
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_5427
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_5427
+.asm_5431
+ ld hl, $d896
+.asm_5434
+ ld a, [hli]
+ and a
+ jr z, .asm_5434
+ cp $fd
+ jr z, .asm_5434
+ cp $fe
+ jr z, .asm_5434
+ dec hl
+ ld de, W_GRASSRATE ; $d887
+ ld c, $b
+.asm_5446
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_5446
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_5446
+ ld de, wEnemyPartyCount ; $d89c
+ ld bc, $194
+.asm_5456
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_5456
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_5456
+ ld de, wTileMapBackup
+ ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA)
+ ld c, $2
+.asm_546a
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_546a
+ cp $fd
+ jr z, .asm_546a
+ cp $fe
+ jr z, .asm_546a
+ cp $ff
+ jr z, .asm_5489
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_546a
+.asm_5489
+ ld hl, W_PARTYMON6DATA + W_PARTYMON1_MOVE4PP - W_PARTYMON1DATA ; $d267
+ dec c
+ jr nz, .asm_546a
+ ld de, $c5d0
+ ld hl, W_WATERRATE ; $d8a4
+ ld c, $2
+.asm_5497
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_5497
+ cp $fd
+ jr z, .asm_5497
+ cp $fe
+ jr z, .asm_5497
+ cp $ff
+ jr z, .asm_54b6
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_5497
+.asm_54b6
+ ld hl, $d9a0
+ dec c
+ jr nz, .asm_5497
+ ld a, $ac
+ ld [$cf8d], a
+ ld a, $d9
+ ld [$cf8e], a
+ xor a
+ ld [$cc38], a
+ ld a, $ff
+ call PlaySound
+ ld a, [$ffaa]
+ cp $2
+ ld c, $42
+ call z, DelayFrames
+ ld a, [W_ISLINKBATTLE] ; $d12b
+ cp $3
+ ld a, $32
+ ld [W_ISLINKBATTLE], a ; $d12b
+ jr nz, .asm_5506
+ ld a, $4
+ ld [W_ISLINKBATTLE], a ; $d12b
+ ld a, SONY1 + $c8
+ ld [W_CUROPPONENT], a ; $d059
+ call ClearScreen
+ call Delay3
+ ld hl, W_OPTIONS ; $d355
+ res 7, [hl]
+ ld a, $2c
+ call Predef ; indirect jump to InitOpponent (3ef18 (f:6f18))
+ ld a, $7
+ call Predef ; indirect jump to HealParty (f6a5 (3:76a5))
+ jp Func_577d
+.asm_5506
+ ld c, BANK(Music_GameCorner)
+ ld a, MUSIC_GAME_CORNER
+ call PlayMusic
+ jr Func_551c
+
+PleaseWaitString: ; 550f (1:550f)
+ db "PLEASE WAIT!@"
+
+Func_551c:
+ ld hl, PointerTable_5a5b ; $5a5b
+ ld b, $0
+ ld a, [$cc38]
+ cp $ff
+ jp z, LoadTitlescreenGraphics
+ add a
+ ld c, a
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+TradeCenter_SelectMon:
+ call ClearScreen
+ call LoadTrainerInfoTextBoxTiles
+ call Func_57f2
+ call Func_57a2
+ xor a
+ ld hl, $cc3d
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [$cc37], a
+ ld [$cc26], a
+ ld [$cc2a], a
+ ld [$cc34], a
+ inc a
+ ld [$cc42], a
+ jp .asm_55dc
+.asm_5557
+ xor a
+ ld [$cc37], a
+ inc a
+ ld [$cc49], a
+ ld a, $a1
+ ld [$cc29], a
+ ld a, [$d89c]
+ ld [$cc28], a
+ ld a, $9
+ ld [$cc24], a
+ ld a, $1
+ ld [$cc25], a
+.asm_5574
+ ld hl, $fff6
+ set 1, [hl]
+ call HandleMenuInput
+ ld hl, $fff6
+ res 1, [hl]
+ and a
+ jp z, .asm_565b
+ bit 0, a
+ jr z, .asm_55b0 ; 0x5587 $27
+ ld a, [$cc28]
+ ld c, a
+ ld a, [$cc26]
+ cp c
+ jr c, .asm_559a ; 0x5591 $7
+ ld a, [$cc28]
+ dec a
+ ld [$cc26], a
+.asm_559a
+ ld a, $1
+ ld [$d11b], a
+ callab Func_39bd5
+ ld hl, wEnemyMons
+ call Func_57d6
+ jp .asm_565b
+.asm_55b0
+ bit 5, a
+ jr z, .asm_55d4 ; 0x55b2 $20
+ xor a
+ ld [$cc49], a
+ ld a, [$cc30]
+ ld l, a
+ ld a, [$cc31]
+ ld h, a
+ ld a, [$cc27]
+ ld [hl], a
+ ld a, [$cc26]
+ ld b, a
+ ld a, [$d163]
+ dec a
+ cp b
+ jr nc, .asm_55dc ; 0x55cd $d
+ ld [$cc26], a
+ jr .asm_55dc ; 0x55d2 $8
+.asm_55d4
+ bit 7, a
+ jp z, .asm_565b
+ jp .asm_572f
+.asm_55dc
+ xor a
+ ld [$cc49], a
+ ld [$cc37], a
+ ld a, $91
+ ld [$cc29], a
+ ld a, [$d163]
+ ld [$cc28], a
+ ld a, $1
+ ld [$cc24], a
+ ld a, $1
+ ld [$cc25], a
+ ld hl, $c3b5
+ ld bc, $0601
+ call ClearScreenArea
+.asm_5601
+ ld hl, $fff6
+ set 1, [hl]
+ call HandleMenuInput
+ ld hl, $fff6
+ res 1, [hl]
+ and a
+ jr nz, .asm_5614 ; 0x560f $3
+ jp .asm_565b
+.asm_5614
+ bit 0, a
+ jr z, .asm_562e ; 0x5616 $16
+ jp .asm_5665
+ ld a, $4
+ ld [$d11b], a
+ callab Func_39bd5
+ call Func_57d6
+ jp .asm_565b
+.asm_562e
+ bit 4, a
+ jr z, .asm_5654 ; 0x5630 $22
+ ld a, $1
+ ld [$cc49], a
+ ld a, [$cc30]
+ ld l, a
+ ld a, [$cc31]
+ ld h, a
+ ld a, [$cc27]
+ ld [hl], a
+ ld a, [$cc26]
+ ld b, a
+ ld a, [$d89c]
+ dec a
+ cp b
+ jr nc, .asm_5651 ; 0x564c $3
+ ld [$cc26], a
+.asm_5651
+ jp .asm_5557
+.asm_5654
+ bit 7, a
+ jr z, .asm_565b ; 0x5656 $3
+ jp .asm_572f
+.asm_565b
+ ld a, [$cc49]
+ and a
+ jp z, .asm_5601
+ jp .asm_5574
+.asm_5665
+ call SaveScreenTilesToBuffer1
+ call PlaceUnfilledArrowMenuCursor
+ ld a, [$cc28]
+ ld c, a
+ ld a, [$cc26]
+ cp c
+ jr c, .asm_5679 ; 0x5673 $4
+ ld a, [$cc28]
+ dec a
+.asm_5679
+ push af
+ ld hl, $c4b8
+ ld b, $2
+ ld c, $12
+ call Func_5ab3
+ ld hl, $c4e2
+ ld de, .statsTrade
+ call PlaceString
+ xor a
+ ld [$cc26], a
+ ld [$cc2a], a
+ ld [$cc34], a
+ ld [$cc28], a
+ ld a, $10
+ ld [$cc24], a
+.asm_569f
+ ld a, $7f
+ ld [$c4eb], a
+ ld a, $13
+ ld [$cc29], a
+ ld a, $1
+ ld [$cc25], a
+ call HandleMenuInput
+ bit 4, a
+ jr nz, .asm_56c3 ; 0x56b3 $e
+ bit 1, a
+ jr z, .asm_56df ; 0x56b7 $26
+.asm_56b9
+ pop af
+ ld [$cc26], a
+ call LoadScreenTilesFromBuffer1
+ jp .asm_55dc
+.asm_56c3
+ ld a, $7f
+ ld [$c4e1], a
+ ld a, $23
+ ld [$cc29], a
+ ld a, $b
+ ld [$cc25], a
+ call HandleMenuInput
+ bit 5, a
+ jr nz, .asm_569f ; 0x56d7 $c6
+ bit 1, a
+ jr nz, .asm_56b9 ; 0x56db $dc
+ jr .asm_56f9 ; 0x56dd $1a
+.asm_56df
+ pop af
+ ld [$cc26], a
+ ld a, $4
+ ld [$d11b], a
+ callab Func_39bd5
+ call Func_57d6
+ call LoadScreenTilesFromBuffer1
+ jp .asm_55dc
+.asm_56f9
+ call PlaceUnfilledArrowMenuCursor
+ pop af
+ ld [$cc26], a
+ ld [$cd3d], a
+ ld [$cc42], a
+ call Func_226e
+ ld a, [$cc3d]
+ cp $f
+ jp z, Func_551c
+ ld [$cd3e], a
+ call Func_57c7
+ ld a, $1
+ ld [$cc38], a
+ jp Func_551c
+.statsTrade
+ db "STATS TRADE@"
+.asm_572f
+ ld a, [$cc26]
+ ld b, a
+ ld a, [$cc28]
+ cp b
+ jp nz, .asm_565b
+ ld a, [$cc30]
+ ld l, a
+ ld a, [$cc31]
+ ld h, a
+ ld a, $7f
+ ld [hl], a
+.asm_5745
+ ld a, $ed
+ ld [$c4e1], a
+.asm_574a
+ call GetJoypadStateLowSensitivity
+ ld a, [$ffb5]
+ and a
+ jr z, .asm_574a ; 0x5750 $f8
+ bit 0, a
+ jr nz, .asm_5769 ; 0x5754 $13
+ bit 6, a
+ jr z, .asm_574a ; 0x5758 $f0
+ ld a, $7f
+ ld [$c4e1], a
+ ld a, [$d163]
+ dec a
+ ld [$cc26], a
+ jp .asm_55dc
+.asm_5769
+ ld a, $ec
+ ld [$c4e1], a
+ ld a, $f
+ ld [$cc42], a
+ call Func_226e
+ ld a, [$cc3d]
+ cp $f
+ jr nz, .asm_5745 ; 0x577b $c8
+
+Func_577d: ; 577d (1:577d)
+ call GBPalWhiteOutWithDelay3
+ ld hl, $cfc4
+ ld a, [hl]
+ push af
+ push hl
+ res 0, [hl]
+ xor a
+ ld [$d72d], a
+ dec a
+ ld [$d42f], a
+ call LoadMapData
+ callba Func_c335
+ pop hl
+ pop af
+ ld [hl], a
+ call GBFadeIn2
+ ret
+
+Func_57a2:
+ ld hl, $c4d7
+ ld a, $7e
+ ld bc, $0031
+ call FillMemory
+ ld hl, $c4cc
+ ld b, $1
+ ld c, $9
+ call Func_5ab3
+ ld hl, $c4e2
+ ld de, CancelTextString
+ jp PlaceString
+
+CancelTextString:
+ db "CANCEL@"
+
+Func_57c7:
+ ld a, [$cc3d]
+ ld hl, $c455
+ ld bc, $0014
+ call AddNTimes
+ ld [hl], $ec
+ ret
+
+Func_57d6:
+ ld a, [$cc26]
+ ld [wWhichPokemon], a
+ ld a, $36
+ call Predef
+ ld a, $37
+ call Predef
+ call GBPalNormal
+ call LoadTrainerInfoTextBoxTiles
+ call Func_57f2
+ jp Func_57a2
+
+Func_57f2:
+ ld hl, wTileMap
+ ld b, $6
+ ld c, $12
+ call Func_5ab3
+ ld hl, $c440
+ ld b, $6
+ ld c, $12
+ call Func_5ab3
+ ld hl, $c3a5
+ ld de, W_PLAYERNAME
+ call PlaceString
+ ld hl, $c445
+ ld de, $d887
+ call PlaceString
+ ld hl, $c3b6
+ ld de, $d164
+ call Func_5827
+ ld hl, $c456
+ ld de, $d89d
+
+Func_5827:
+ ld c, $0
+.asm_5829
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [$d11e], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [$ff95], a
+ call GetMonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ inc c
+ jr .asm_5829 ; 0x5847 $e0
+
+TradeCenter_Trade:
+ ld c, $64
+ call DelayFrames
+ xor a
+ ld [$cc43], a
+ ld [$cc3e], a
+ ld [$cc37], a
+ ld [$cc34], a
+ ld hl, $c490
+ ld b, $4
+ ld c, $12
+ call Func_5ab3
+ ld a, [$cd3d]
+ ld hl, $d164
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d11e], a
+ call GetMonName
+ ld hl, $cd6d
+ ld de, $cd3f
+ ld bc, $000b
+ call CopyData
+ ld a, [$cd3e]
+ ld hl, $d89d
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [$d11e], a
+ call GetMonName
+ ld hl, WillBeTradedText
+ ld bc, $c4b9
+ call TextCommandProcessor
+ call SaveScreenTilesToBuffer1
+ ld hl, $c436
+ ld bc, $080b
+ ld a, $5
+ ld [$d12c], a
+ ld a, $14
+ ld [$d125], a
+ call DisplayTextBoxID
+ call LoadScreenTilesFromBuffer1
+ ld a, [$cc26]
+ and a
+ jr z, .asm_58d9 ; 0x58b9 $1e
+ ld a, $1
+ ld [$cc42], a
+ ld hl, $c490
+ ld b, $4
+ ld c, $12
+ call Func_5ab3
+ ld hl, $c4b9
+ ld de, TradeCanceled
+ call PlaceString
+ call Func_226e
+ jp Func_5a18
+.asm_58d9
+ ld a, $2
+ ld [$cc42], a
+ call Func_226e
+ ld a, [$cc3d]
+ dec a
+ jr nz, .asm_58fd ; 0x58e5 $16
+ ld hl, $c490
+ ld b, $4
+ ld c, $12
+ call Func_5ab3
+ ld hl, $c4b9
+ ld de, TradeCanceled
+ call PlaceString
+ jp Func_5a18
+.asm_58fd
+ ld a, [$cd3d]
+ ld hl, W_PARTYMON1OT ; OT names of player
+ call SkipFixedLengthTextEntries
+ ld de, $cd41
+ ld bc, $000b
+ call CopyData
+ ld hl, $d16b
+ ld a, [$cd3d]
+ ld bc, $002c
+ call AddNTimes
+ ld bc, $000c
+ add hl, bc
+ ld a, [hli]
+ ld [$cd4c], a
+ ld a, [hl]
+ ld [$cd4d], a
+ ld a, [$cd3e]
+ ld hl, W_ENEMYMON1OT ; OT names of other player
+ call SkipFixedLengthTextEntries
+ ld de, $cd4e
+ ld bc, $000b
+ call CopyData
+ ld hl, wEnemyMons
+ ld a, [$cd3e]
+ ld bc, $002c
+ call AddNTimes
+ ld bc, $000c
+ add hl, bc
+ ld a, [hli]
+ ld [$cd59], a
+ ld a, [hl]
+ ld [$cd5a], a
+ ld a, [$cd3d]
+ ld [wWhichPokemon], a
+ ld hl, $d164
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$cd3d], a
+ xor a
+ ld [$cf95], a
+ call RemovePokemon
+ ld a, [$cd3e]
+ ld c, a
+ ld [wWhichPokemon], a
+ ld hl, $d89d
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [$cf91], a
+ ld hl, wEnemyMons
+ ld a, c
+ ld bc, $002c
+ call AddNTimes
+ ld de, $cf98
+ ld bc, $002c
+ call CopyData
+ call AddEnemyMonToPlayerParty
+ ld a, [$d163]
+ dec a
+ ld [wWhichPokemon], a
+ ld a, $1
+ ld [$ccd4], a
+ ld a, [$cd3e]
+ ld hl, $d89d
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [$cd3e], a
+ ld a, $a
+ ld [wMusicHeaderPointer], a
+ ld a, $2
+ ld [$c0f0], a
+ ld a, MUSIC_SAFARI_ZONE
+ ld [$c0ee], a
+ call PlaySound
+ ld c, $64
+ call DelayFrames
+ call ClearScreen
+ call LoadHpBarAndStatusTilePatterns
+ xor a
+ ld [$cc5b], a
+ ld a, [$ffaa]
+ cp $1
+ jr z, .asm_59d9 ; 0x59d0 $7
+ ld a, $38
+ call Predef
+ jr .asm_59de ; 0x59d7 $5
+.asm_59d9
+ ld a, $2f
+ call Predef
+.asm_59de
+ callab Func_3ad0e
+ call ClearScreen
+ call LoadTrainerInfoTextBoxTiles
+ call Func_226e
+ ld c, $28
+ call DelayFrames
+ ld hl, $c490
+ ld b, $4
+ ld c, $12
+ call Func_5ab3
+ ld hl, $c4b9
+ ld de, TradeCompleted
+ call PlaceString
+ ld a, $50
+ call Predef
+ ld c, $32
+ call DelayFrames
+ xor a
+ ld [$cc38], a
+ jp Func_5345
+
+Func_5a18:
+ ld c, $64
+ call DelayFrames
+ xor a
+ ld [$cc38], a
+ jp Func_551c
+
+WillBeTradedText: ; 5a24 (1:5a24)
+ TX_FAR _WillBeTradedText
+ db "@"
+
+TradeCompleted:
+ db "Trade completed!@"
+
+TradeCanceled:
+ db "Too bad! The trade"
+ next "was canceled!@"
+
+PointerTable_5a5b: ; 5a5b (1:5a5b)
+ dw TradeCenter_SelectMon
+ dw TradeCenter_Trade
+
+Func_5a5f: ; 5a5f (1:5a5f)
+ ld a, [W_ISLINKBATTLE] ; $d12b
+ cp $2
+ jr z, .asm_5a75
+ cp $3
+ jr z, .asm_5a75
+ cp $5
+ ret nz
+ ld a, $4d
+ call Predef ; indirect jump to Func_5aaf (5aaf (1:5aaf))
+ jp InitGame
+.asm_5a75
+ call Func_5317
+ ld hl, Club_GFX
+ ld a, h
+ ld [$d52f], a
+ ld a, l
+ ld [$d52e], a
+ ld a, Bank(Club_GFX)
+ ld [$d52b], a
+ ld hl, Club_Coll
+ ld a, h
+ ld [$d531], a
+ ld a, l
+ ld [$d530], a
+ xor a
+ ld [W_GRASSRATE], a ; $d887
+ inc a
+ ld [W_ISLINKBATTLE], a ; $d12b
+ ld [$ffb5], a
+ ld a, $a
+ ld [wMusicHeaderPointer], a
+ ld a, BANK(Music_Celadon)
+ ld [$c0f0], a
+ ld a, MUSIC_CELADON
+ ld [$c0ee], a
+ jp PlaySound
+
+Func_5aaf: ; 5aaf (1:5aaf)
+ ret
+
+Func_5ab0:
+ call Load16BitRegisters
+
+Func_5ab3: ; 5ab3 (1:5ab3)
+ push hl
+ ld a, $78
+ ld [hli], a
+ inc a
+ call Func_5ae0
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $14
+ add hl, de
+.asm_5ac2
+ push hl
+ ld a, $7b
+ ld [hli], a
+ ld a, $7f
+ call Func_5ae0
+ ld [hl], $77
+ pop hl
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, .asm_5ac2
+ ld a, $7c
+ ld [hli], a
+ ld a, $76
+ call Func_5ae0
+ ld [hl], $7d
+ ret
+
+Func_5ae0: ; 5ae0 (1:5ae0)
+ ld d, c
+.asm_5ae1
+ ld [hli], a
+ dec d
+ jr nz, .asm_5ae1
+ ret