summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm10536
1 files changed, 4368 insertions, 6168 deletions
diff --git a/main.asm b/main.asm
index d8679216d..9a3e55d5d 100644
--- a/main.asm
+++ b/main.asm
@@ -11,15 +11,15 @@ Function4000:: ; 4000
ld a, [IsInBattle]
and a
- jr z, .asm_4012
+ jr z, .notinbattle
call TextBox
- jr .asm_4017
+ jr .incave
-.asm_4012
+.notinbattle
predef Function28eef
-.asm_4017
+.incave
hlcoord 4, 11
ld de, .Waiting
call PlaceString
@@ -118,7 +118,7 @@ Function5b44: ; 5b44
MysteryGift: ; 5b54
call UpdateTime
callba Function11548
- callba Function1048ba
+ callba DoMysteryGift
ret
; 5b64
@@ -130,12 +130,12 @@ OptionsMenu: ; 5b64
NewGame: ; 5b6b
xor a
ld [wc2cc], a
- call Function5ba7
+ call ResetWRAM
call Function5b44
call Function5b8f
call OakSpeech
- call Function5d23
- ld a, $1
+ call InitializeWorld
+ ld a, 1
ld [wc2d8], a
ld a, 0 ; SPAWN_HOME
@@ -148,24 +148,24 @@ NewGame: ; 5b6b
Function5b8f: ; 5b8f
callba Function10632f
- jr c, .asm_5b9e
+ jr c, .ok
callba Function48dcb
ret
-.asm_5b9e
- ld c, $0
+.ok
+ ld c, 0
callba Function4802f
ret
; 5ba7
-Function5ba7: ; 5ba7
+ResetWRAM: ; 5ba7
xor a
ld [hBGMapMode], a
- call Function5bae
+ call _ResetWRAM
ret
; 5bae
-Function5bae: ; 5bae
+_ResetWRAM: ; 5bae
ld hl, Sprites
ld bc, Options - Sprites
@@ -207,14 +207,14 @@ Function5bae: ; 5bae
ld [wCurBox], a
ld [wd4b4], a
- call Function5ca6
+ call SetDefaultBoxNames
ld a, 1
call GetSRAMBank
ld hl, sBoxCount
call Function5ca1
call CloseSRAM
-
+
ld hl, NumItems
call Function5ca1
@@ -301,10 +301,10 @@ Function5ca1: ; 5ca1
ret
; 5ca6
-Function5ca6: ; 5ca6
+SetDefaultBoxNames: ; 5ca6
ld hl, wBoxNames
ld c, 0
-.asm_5cab
+.loop
push hl
ld de, .Box
call CopyName2
@@ -312,12 +312,12 @@ Function5ca6: ; 5ca6
ld a, c
inc a
cp 10
- jr c, .asm_5cbe
+ jr c, .less
sub 10
ld [hl], "1"
inc hl
-.asm_5cbe
+.less
add "0"
ld [hli], a
ld [hl], "@"
@@ -327,7 +327,7 @@ Function5ca6: ; 5ca6
inc c
ld a, c
cp NUM_BOXES
- jr c, .asm_5cab
+ jr c, .loop
ret
.Box
@@ -376,9 +376,9 @@ Function5ce9: ; 5ce9
.Mom db "MOM@"
; 5d23
-Function5d23: ; 5d23
+InitializeWorld: ; 5d23
call Function610f
- callba Function8029
+ callba GetSpawnCoord
callba Function113d6
ret
; 5d33
@@ -411,7 +411,7 @@ Function5d33: ; 5d33
; 5d65
Continue: ; 5d65
- callba Function14ea5
+ callba TryLoadSaveFile
jr c, .asm_5dd6
callba Function150b9
call Function1d6e
@@ -422,13 +422,13 @@ Continue: ; 5d65
call DelayFrames
call Function5e34
jr nc, .asm_5d8c
- call Function1c17
+ call WriteBackup
jr .asm_5dd6
.asm_5d8c
call Function5e48
jr nc, .asm_5d96
- call Function1c17
+ call WriteBackup
jr .asm_5dd6
.asm_5d96
@@ -440,11 +440,11 @@ Continue: ; 5d65
ld [MusicFadeIDHi], a
call WhiteBGMap
call Function5df0
- call Function1c17
+ call WriteBackup
call ClearTileMap
ld c, $14
call DelayFrames
- callba Function2a394
+ callba RestoreRoamMons
callba Function105091
callba Function140ae
ld a, [wd4b5]
@@ -582,7 +582,7 @@ Function5e9f: ; 5e9f
call Function5f1c
call Function5f40
call Functione5f
- call Function1ad2
+ call DrawOnMap
ret
; 5eaf
@@ -591,7 +591,7 @@ Function5eaf: ; 5eaf
call Function5f1c
call Function5f48
call Functione5f
- call Function1ad2
+ call DrawOnMap
ret
; 5ebf
@@ -734,7 +734,7 @@ OakSpeech: ; 0x5f99
call PlayMusic
call Function4a3
- call Function4b6
+ call FadeToWhite
xor a
ld [CurPartySpecies], a
ld a, POKEMON_PROF
@@ -743,11 +743,11 @@ OakSpeech: ; 0x5f99
ld b, $1c
call GetSGBLayout
- call Function616a
+ call Intro_FadeInFrontpic
ld hl, OakText1
call PrintText
- call Function4b6
+ call FadeToWhite
call ClearTileMap
ld a, WOOPER
@@ -764,13 +764,13 @@ OakSpeech: ; 0x5f99
ld b, $1c
call GetSGBLayout
- call Function6182
+ call Intro_WipeInFrontpic
ld hl, OakText2
call PrintText
ld hl, OakText4
call PrintText
- call Function4b6
+ call FadeToWhite
call ClearTileMap
xor a
@@ -781,11 +781,11 @@ OakSpeech: ; 0x5f99
ld b, $1c
call GetSGBLayout
- call Function616a
+ call Intro_FadeInFrontpic
ld hl, OakText5
call PrintText
- call Function4b6
+ call FadeToWhite
call ClearTileMap
xor a
@@ -794,7 +794,7 @@ OakSpeech: ; 0x5f99
ld b, $1c
call GetSGBLayout
- call Function616a
+ call Intro_FadeInFrontpic
ld hl, OakText6
call PrintText
@@ -842,7 +842,7 @@ NamePlayer: ; 0x6074
ld a, [wcfa9]
dec a
jr z, .NewName
- call Function60fa
+ call StorePlayerName
callba Function8c1d
callba MovePlayerPicLeft
ret
@@ -852,7 +852,7 @@ NamePlayer: ; 0x6074
ld de, PlayerName
callba Function116c1
- call Function4b6
+ call FadeToWhite
call ClearTileMap
call Functione5f
@@ -884,17 +884,17 @@ NamePlayer: ; 0x6074
Function60e9: ; 60e9
call LoadMenuDataHeader
- call Function1d81
+ call InterpretMenu2
ld a, [wcfa9]
dec a
call Function1db8
- call Function1c17
+ call WriteBackup
ret
; 60fa
-Function60fa: ; 60fa
- ld a, $50
- ld bc, $000b
+StorePlayerName: ; 60fa
+ ld a, "@"
+ ld bc, NAME_LENGTH
ld hl, PlayerName
call ByteFill
ld hl, PlayerName
@@ -952,12 +952,12 @@ Function610f: ; 610f
ld c, 50
call DelayFrames
- call Function4b6
+ call FadeToWhite
call ClearTileMap
ret
; 616a
-Function616a: ; 616a
+Intro_FadeInFrontpic: ; 616a
ld hl, IntroFadePalettes
ld b, IntroFadePalettesEnd - IntroFadePalettes
.asm_616f
@@ -980,20 +980,20 @@ IntroFadePalettes: ; 0x617c
IntroFadePalettesEnd
; 6182
-Function6182: ; 6182
+Intro_WipeInFrontpic: ; 6182
ld a, $77
ld [hWX], a
call DelayFrame
ld a, $e4
call DmgToCgbBGPals
-.asm_618e
+.loop
call DelayFrame
ld a, [hWX]
sub $8
cp $ff
ret z
ld [hWX], a
- jr .asm_618e
+ jr .loop
; 619c
Function619c: ; 619c
@@ -1002,7 +1002,7 @@ Function619c: ; 619c
xor a
ld [$ffad], a
hlcoord 6, 4
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
ret
; 61b4
@@ -1014,7 +1014,7 @@ Function61b4: ; 61b4
xor a
ld [$ffad], a
hlcoord 6, 4
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
ret
; 61cd
@@ -1032,7 +1032,7 @@ Function61cd: ; 61cd
inc de
ld c, a
-.asm_61e4
+.loop
ld a, [de]
inc de
ld [hli], a
@@ -1046,14 +1046,14 @@ Function61cd: ; 61cd
ld b, 0
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_61f8
+ jr z, .male
ld b, 1
-.asm_61f8
+.male
ld a, b
ld [hli], a
dec c
- jr nz, .asm_61e4
+ jr nz, .loop
ret
; 61fe
@@ -1078,9 +1078,9 @@ Function6219: ; 6219
ld [rSVBK], a
call TitleScreen
call DelayFrame
-.asm_6226
+.loop
call Function627b
- jr nc, .asm_6226
+ jr nc, .loop
call ClearSprites
call WhiteBGMap
pop af
@@ -1102,21 +1102,22 @@ Function6219: ; 6219
call UpdateTimePals
ld a, [wcf64]
cp $5
- jr c, .asm_625e
+ jr c, .ok
xor a
-.asm_625e
+.ok
ld e, a
ld d, 0
- ld hl, .data_626a
- add hl, de
+ ld hl, .jumptable_626a
+rept 2
add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; 626a
-.data_626a
+.jumptable_626a
dw Function5ae8
dw Function6389
dw Function620b
@@ -1133,14 +1134,14 @@ TitleScreen: ; 6274
Function627b: ; 627b
ld a, [wcf63]
bit 7, a
- jr nz, .asm_6290
+ jr nz, .true
call TitleScreenScene
callba Function10eea7
call DelayFrame
and a
ret
-.asm_6290
+.true
scf
ret
; 6292
@@ -1161,8 +1162,9 @@ TitleScreenScene: ; 62a3
ld e, a
ld d, 0
ld hl, .scenes
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1202,7 +1204,7 @@ TitleScreenEntrance: ; 62bc
; Reversed signage for every other line's position.
; This is responsible for the interlaced effect.
ld a, e
- xor $ff
+ xor -1
inc a
ld b, 8 * 10 / 2 ; logo height / 2
@@ -1222,7 +1224,7 @@ TitleScreenEntrance: ; 62bc
inc [hl]
xor a
ld [hLCDStatCustom], a
-
+
; Play the title screen music.
ld de, MUSIC_TITLE
call PlayMusic
@@ -1306,10 +1308,10 @@ TitleScreenMain: ; 6304
.check_start
ld a, [hl]
and START | A_BUTTON
- jr nz, .continue
+ jr nz, .incave
ret
-.continue
+.incave
ld a, 0
jr .done
@@ -1389,8 +1391,9 @@ Function639b: ; 639b
add hl, bc
ld l, [hl]
ld h, 0
+rept 2
add hl, hl
- add hl, hl
+endr
ld de, Data63ca
add hl, de
ld a, [wcf65]
@@ -1399,8 +1402,9 @@ Function639b: ; 639b
srl a
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
and a
ret z
@@ -2201,7 +2205,7 @@ Function6f3e: ; 6f3e
call Function6f7f
ret nc
push af
- ld hl, OBJECT_07
+ ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld a, [hl]
and 3
@@ -2217,7 +2221,7 @@ Function6f3e: ; 6f3e
; 6f5b
.data_6f5b
- db 1, 2, 8, 4
+ db 1 << DOWN, 1 << UP, 1 << RIGHT, 1 << LEFT
; 6f5f
Function6f5f: ; 6f5f
@@ -2227,7 +2231,7 @@ Function6f5f: ; 6f5f
call Function6f7f
ret nc
push af
- ld hl, OBJECT_07
+ ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
and 3
ld e, a
@@ -2242,20 +2246,20 @@ Function6f5f: ; 6f5f
; 6f7b
.data_6f7b
- db 2, 1, 4, 8
+ db 1 << UP, 1 << DOWN, 1 << LEFT, 1 << RIGHT
; 6f7f
Function6f7f: ; 6f7f
ld d, a
and $f0
cp $b0
- jr z, .asm_6f8c
+ jr z, .done
cp $c0
- jr z, .asm_6f8c
+ jr z, .done
xor a
ret
-.asm_6f8c
+.done
ld a, d
and 7
ld e, a
@@ -2273,7 +2277,7 @@ Function6f7f: ; 6f7f
; 6fa1
Function6fa1: ; 6fa1
- ld hl, OBJECT_07
+ ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld a, [hl]
and 3
@@ -2353,15 +2357,15 @@ CheckFacingObject:: ; 6fd9
ld [$ffaf], a
call Function7041
ret nc
- ld hl, OBJECT_07
+ ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld a, [hl]
- cp $ff
- jr z, .asm_7007
+ cp STANDING
+ jr z, .standing
xor a
ret
-.asm_7007
+.standing
scf
ret
; 7009
@@ -2379,7 +2383,7 @@ Function7009: ; 7009
Function7015: ; 7015
ld a, [$ffaf]
- call Function1ae5
+ call GetObjectStruct
call Function7021
call Function7041
ret
@@ -2393,23 +2397,23 @@ Function7021: ; 7021
ld e, [hl]
call GetSpriteDirection
and a
- jr z, .asm_703b
- cp $4
- jr z, .asm_703d
- cp $8
- jr z, .asm_703f
+ jr z, .down
+ cp OW_UP
+ jr z, .up
+ cp OW_LEFT
+ jr z, .left
inc d
ret
-.asm_703b
+.down
inc e
ret
-.asm_703d
+.up
dec e
ret
-.asm_703f
+.left
dec d
ret
; 7041
@@ -2417,71 +2421,71 @@ Function7021: ; 7021
Function7041: ; 7041
ld bc, ObjectStructs
xor a
-.asm_7045
+.loop
ld [$ffb0], a
- call Function1af1
- jr z, .asm_7093
+ call GetObjectSprite
+ jr z, .nope
ld hl, OBJECT_04
add hl, bc
bit 7, [hl]
- jr nz, .asm_7093
+ jr nz, .nope
ld hl, OBJECT_PALETTE
add hl, bc
bit 7, [hl]
- jr z, .asm_7063
+ jr z, .got
call Function7171
- jr nc, .asm_707b
- jr .asm_7073
+ jr nc, .ok
+ jr .ok2
-.asm_7063
+.got
ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
cp d
- jr nz, .asm_707b
+ jr nz, .ok
ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
cp e
- jr nz, .asm_707b
+ jr nz, .ok
-.asm_7073
+.ok2
ld a, [$ffaf]
ld l, a
ld a, [$ffb0]
cp l
- jr nz, .asm_70a2
+ jr nz, .setcarry
-.asm_707b
+.ok
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
cp d
- jr nz, .asm_7093
+ jr nz, .nope
ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
cp e
- jr nz, .asm_7093
+ jr nz, .nope
ld a, [$ffaf]
ld l, a
ld a, [$ffb0]
cp l
- jr nz, .asm_70a2
+ jr nz, .setcarry
-.asm_7093
- ld hl, ObjectStruct2 - ObjectStruct1
+.nope
+ ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
ld b, h
ld c, l
ld a, [$ffb0]
inc a
- cp $d
- jr nz, .asm_7045
+ cp NUM_OBJECT_STRUCTS
+ jr nz, .loop
and a
ret
-.asm_70a2
+.setcarry
scf
ret
; 70a4
@@ -2584,9 +2588,9 @@ Function7113: ; 7113
ld e, a
ld bc, ObjectStructs
xor a
-.asm_711f
+.loop
ld [$ffb0], a
- call Function1af1
+ call GetObjectSprite
jr z, .asm_7160
ld hl, OBJECT_03
add hl, bc
@@ -2627,14 +2631,14 @@ Function7113: ; 7113
jr .asm_716f
.asm_7160
- ld hl, ObjectStruct2 - ObjectStruct1
+ ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
ld b, h
ld c, l
ld a, [$ffb0]
inc a
- cp $d
- jr nz, .asm_711f
+ cp NUM_OBJECT_STRUCTS
+ jr nz, .loop
xor a
ret
@@ -2667,24 +2671,24 @@ Function7171: ; 7171
ret
; 718d
-Function718d: ; 718d
+GetFirstPokemonHappiness: ; 718d
ld hl, PartyMon1Happiness
ld bc, PartyMon2 - PartyMon1
ld de, PartySpecies
-.asm_7196
+.loop
ld a, [de]
cp EGG
- jr nz, .asm_719f
+ jr nz, .done
inc de
add hl, bc
- jr .asm_7196
+ jr .loop
-.asm_719f
+.done
ld [wd265], a
ld a, [hl]
ld [ScriptVar], a
call GetPokemonName
- jp Function746e
+ jp CopyPokemonName_Buffer1_Buffer3
; 71ac
Function71ac: ; 71ac
@@ -2692,13 +2696,13 @@ Function71ac: ; 71ac
ld [wd265], a
cp EGG
ld a, $1
- jr z, .asm_71b9
+ jr z, .egg
xor a
-.asm_71b9
+.egg
ld [ScriptVar], a
call GetPokemonName
- jp Function746e
+ jp CopyPokemonName_Buffer1_Buffer3
; 71c2
@@ -2729,19 +2733,19 @@ ChangeHappiness: ; 71c2
ld a, [de]
cp 100
ld e, 0
- jr c, .asm_71ef
+ jr c, .ok
inc e
cp 200
- jr c, .asm_71ef
+ jr c, .ok
inc e
-.asm_71ef
+.ok
dec c
ld b, 0
ld hl, .Actions
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
ld d, 0
add hl, de
ld a, [hl]
@@ -2751,16 +2755,16 @@ ChangeHappiness: ; 71c2
ld a, [de]
jr nc, .negative
add [hl]
- jr nc, .asm_720d
- ld a, $ff
- jr .asm_720d
+ jr nc, .done
+ ld a, -1
+ jr .done
.negative
add [hl]
- jr c, .asm_720d
+ jr c, .done
xor a
-.asm_720d
+.done
ld [de], a
ld a, [IsInBattle]
and a
@@ -2776,25 +2780,25 @@ ChangeHappiness: ; 71c2
; 7221
.Actions
- db +5, +3, +2
- db +5, +3, +2
+ db +5, +3, +2 ; Gained a level
+ db +5, +3, +2 ; Used a stat-boosting item (vitamin or X-item)
db +1, +1, +0
db +3, +2, +1 ; Battled a Gym Leader
db +1, +1, +0 ; Learned a move
- db -1, -1, -1
- db -5, -5, -10
+ db -1, -1, -1 ; Lost to an enemy
db -5, -5, -10
+ db -5, -5, -10 ; Lost to a much weaker enemy
db +1, +1, +1
db +3, +3, +1
db +5, +5, +2
db +1, +1, +1
db +3, +3, +1
db +10, +10, +4
- db -5, -5, -10
- db -10, -10, -15
- db -15, -15, -20
+ db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter)
+ db -10, -10, -15 ; Used Energy Root (bitter)
+ db -15, -15, -20 ; Used Revival Herb (bitter)
db +3, +3, +1
- db +10, +6, +4
+ db +10, +6, +4 ; Gained a level in the place where it was caught
; 725a
@@ -2971,7 +2975,7 @@ SpecialGiveShuckle: ; 7305
call CopyName2
; Engine flag for this event.
- ld hl, wdc1e
+ ld hl, DailyFlags
set 5, [hl]
ld a, 1
@@ -2991,7 +2995,7 @@ SpecialShuckleNick:
SpecialReturnShuckle: ; 737e
- callba Function50000
+ callba SelectMonFromParty
jr c, .asm_73e6
ld a, [CurPartySpecies]
@@ -3063,13 +3067,13 @@ SpecialReturnShuckle: ; 737e
; 73f7
Function73f7: ; 73f7
- callba Function50000
+ callba SelectMonFromParty
jr c, .asm_740e
ld a, [CurPartySpecies]
ld [ScriptVar], a
ld [wd265], a
call GetPokemonName
- jp Function746e
+ jp CopyPokemonName_Buffer1_Buffer3
.asm_740e
xor a
@@ -3090,26 +3094,26 @@ Function741d: ; 741d
Function7420: ; 7420
push hl
- callba Function50000
+ callba SelectMonFromParty
pop hl
- jr c, .asm_744e
+ jr c, .nope
ld a, [CurPartySpecies]
cp EGG
- jr z, .asm_7453
+ jr z, .egg
push hl
call GetCurNick
- call Function746e
+ call CopyPokemonName_Buffer1_Buffer3
pop hl
call Random
-.next
+.loop
sub [hl]
- jr c, .asm_7444
- inc hl
- inc hl
+ jr c, .ok
+rept 3
inc hl
- jr .next
+endr
+ jr .loop
-.asm_7444
+.ok
inc hl
ld a, [hli]
ld [ScriptVar], a
@@ -3117,12 +3121,12 @@ Function7420: ; 7420
call ChangeHappiness
ret
-.asm_744e
+.nope
xor a
ld [ScriptVar], a
ret
-.asm_7453
+.egg
ld a, $1
ld [ScriptVar], a
ret
@@ -3142,10 +3146,10 @@ Data746b: ; 746b
db $ff, $02, $12
; 746e
-Function746e: ; 746e
+CopyPokemonName_Buffer1_Buffer3: ; 746e
ld hl, StringBuffer1
ld de, StringBuffer3
- ld bc, $000b
+ ld bc, PKMN_NAME_LENGTH
jp CopyBytes
; 747a
@@ -3163,11 +3167,11 @@ Function8000: ; 8000
ld [hBGMapMode], a
call WhiteBGMap
call ClearSprites
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, TileMapEnd - TileMap
ld a, " "
call ByteFill
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, AttrMapEnd - AttrMap
ld a, $7
call ByteFill
@@ -3176,7 +3180,7 @@ Function8000: ; 8000
ret
; 8029
-Function8029: ; 8029
+GetSpawnCoord: ; 8029
ld a, $ff
ld [wd4cd], a
ld [wd4ce], a
@@ -3187,18 +3191,18 @@ Function8029: ; 8029
call Function808f
ld a, $0
call GetMapObject
- ld hl, $0008
+ ld hl, MAPOBJECT_COLOR
add hl, bc
ld e, $80
ld a, [wd45b]
bit 2, a
- jr nz, .asm_8059
+ jr nz, .ok
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_8059
- ld e, $90
+ jr z, .ok
+ ld e, (PAL_OW_BLUE << 4) | $80
-.asm_8059
+.ok
ld [hl], e
ld a, $0
ld [$ffaf], a
@@ -3216,7 +3220,8 @@ PlayerObjectTemplate: ; 8071
; A dummy map object used to initialize the player object.
; Shorter than the actual amount copied by two bytes.
; Said bytes seem to be unused.
- db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff
+ person_event SPRITE_CHRIS, 0, 0, OW_LEFT | $3, $ff, -1, -1, $0, 0, $0000, -1
+ ; db $01, $00, $00, $0b, $ff, $ff, $ff, $00, $00, $00, $00, $ff, $ff
; 807e
Function807e:: ; 807e
@@ -3224,10 +3229,10 @@ Function807e:: ; 807e
ld a, b
call GetMapObject
pop de
- ld hl, $0003
+ ld hl, MAPOBJECT_X_COORD
add hl, bc
ld [hl], d
- ld hl, $0002
+ ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld [hl], e
ret
@@ -3236,10 +3241,10 @@ Function807e:: ; 807e
Function808f: ; 808f
push bc
ld a, [XCoord]
- add $4
+ add 4
ld d, a
ld a, [YCoord]
- add $4
+ add 4
ld e, a
pop bc
call Function807e
@@ -3264,25 +3269,25 @@ Function80a1:: ; 80a1
ret
; 80b8
-Function80b8: ; 80b8
+RefreshPlayerCoords: ; 80b8
ld a, [XCoord]
- add $4
+ add 4
ld d, a
ld hl, MapX
sub [hl]
ld [hl], d
- ld hl, MapObjects + 3
+ ld hl, MapObjects + MAPOBJECT_X_COORD
ld [hl], d
ld hl, MapX2
ld [hl], d
ld d, a
ld a, [YCoord]
- add $4
+ add 4
ld e, a
ld hl, MapY
sub [hl]
ld [hl], e
- ld hl, MapObjects + 2
+ ld hl, MapObjects + MAPOBJECT_Y_COORD
ld [hl], e
ld hl, MapY2
ld [hl], e
@@ -3294,27 +3299,27 @@ Function80b8: ; 80b8
; 80e7
-Function80e7:: ; 80e7
+CopyObjectStruct:: ; 80e7
call Function2707
and a
ret nz
- ld hl, ObjectStructs + (ObjectStruct2 - ObjectStruct1) * 1
+ ld hl, ObjectStructs + OBJECT_STRUCT_LENGTH * 1
ld a, 1
- ld de, ObjectStruct2 - ObjectStruct1
-.asm_80f4
+ ld de, OBJECT_STRUCT_LENGTH
+.loop
ld [$ffb0], a
ld a, [hl]
and a
- jr z, .asm_8104
+ jr z, .done
add hl, de
ld a, [$ffb0]
inc a
- cp $d
- jr nz, .asm_80f4
+ cp NUM_OBJECT_STRUCTS
+ jr nz, .loop
scf
ret
-.asm_8104
+.done
ld d, h
ld e, l
call Function8116
@@ -3335,12 +3340,12 @@ Function8116: ; 8116
Function811d: ; 811d
ld a, [$ffb0]
- ld hl, OBJECT_00
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld [hl], a
ld a, [$ffaf]
ld [wc2f0], a
- ld hl, OBJECT_01
+ ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
ld [wc2f1], a
@@ -3349,33 +3354,33 @@ Function811d: ; 811d
ld a, [hl]
call GetSpritePalette
ld [wc2f3], a
- ld hl, OBJECT_08
+ ld hl, MAPOBJECT_COLOR
add hl, bc
ld a, [hl]
and $f0
- jr z, .asm_814e
+ jr z, .no_color
swap a
and $7
ld [wc2f3], a
-.asm_814e
- ld hl, OBJECT_04
+.no_color
+ ld hl, MAPOBJECT_FACING
add hl, bc
ld a, [hl]
ld [wc2f4], a
- ld hl, OBJECT_09
+ ld hl, MAPOBJECT_RANGE
add hl, bc
ld a, [hl]
ld [wc2f5], a
- ld hl, OBJECT_03
+ ld hl, MAPOBJECT_X_COORD
add hl, bc
ld a, [hl]
ld [wc2f6], a
- ld hl, OBJECT_SPRITE
+ ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld a, [hl]
ld [wc2f7], a
- ld hl, OBJECT_FLAGS
+ ld hl, MAPOBJECT_MOVEMENT
add hl, bc
ld a, [hl]
ld [wc2f8], a
@@ -3384,53 +3389,53 @@ Function811d: ; 811d
Function8177: ; 8177
ld bc, MapObjects + OBJECT_LENGTH
- ld a, $1
-.asm_817c
+ ld a, 1
+.loop
ld [$ffaf], a
- ld hl, $0001
+ ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
- jr z, .asm_81bb
- ld hl, $0000
+ jr z, .next
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- cp $ff
- jr nz, .asm_81bb
+ cp -1
+ jr nz, .next
ld a, [XCoord]
ld d, a
ld a, [YCoord]
ld e, a
- ld hl, $0003
+ ld hl, MAPOBJECT_X_COORD
add hl, bc
ld a, [hl]
- add $1
+ add 1
sub d
- jr c, .asm_81bb
- cp $c
- jr nc, .asm_81bb
- ld hl, $0002
+ jr c, .next
+ cp MAPOBJECT_SCREEN_WIDTH
+ jr nc, .next
+ ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld a, [hl]
- add $1
+ add 1
sub e
- jr c, .asm_81bb
- cp $b
- jr nc, .asm_81bb
+ jr c, .next
+ cp MAPOBJECT_SCREEN_HEIGHT
+ jr nc, .next
push bc
- call Function80e7
+ call CopyObjectStruct
pop bc
jp c, Function81c9
-.asm_81bb
+.next
ld hl, OBJECT_LENGTH
add hl, bc
ld b, h
ld c, l
ld a, [$ffaf]
inc a
- cp $10
- jr nz, .asm_817c
+ cp NUM_OBJECTS
+ jr nz, .loop
ret
; 81c9
@@ -3469,53 +3474,53 @@ Function81ea: ; 81ea
ld a, [XCoord]
ld e, a
ld bc, MapObjects + OBJECT_LENGTH
- ld a, $1
-.asm_81f4
+ ld a, 1
+.loop
ld [$ffaf], a
- ld hl, $0001
+ ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
- jr z, .asm_8224
- ld hl, $0002
+ jr z, .next
+ ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld a, d
cp [hl]
- jr nz, .asm_8224
- ld hl, $0000
+ jr nz, .next
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- cp $ff
- jr nz, .asm_8224
- ld hl, $0003
+ cp -1
+ jr nz, .next
+ ld hl, MAPOBJECT_X_COORD
add hl, bc
ld a, [hl]
- add $1
+ add 1
sub e
- jr c, .asm_8224
- cp $c
- jr nc, .asm_8224
+ jr c, .next
+ cp MAPOBJECT_SCREEN_WIDTH
+ jr nc, .next
push de
push bc
- call Function80e7
+ call CopyObjectStruct
pop bc
pop de
-.asm_8224
+.next
ld hl, OBJECT_LENGTH
add hl, bc
ld b, h
ld c, l
ld a, [$ffaf]
inc a
- cp $10
- jr nz, .asm_81f4
+ cp NUM_OBJECTS
+ jr nz, .loop
ret
; 8232
Function8232: ; 8232
ld a, [XCoord]
- sub $1
+ sub 1
jr Function823e
Function8239: ; 8239
@@ -3527,54 +3532,54 @@ Function823e: ; 823e
ld a, [YCoord]
ld d, a
ld bc, MapObjects + OBJECT_LENGTH
- ld a, $1
-.asm_8248
+ ld a, 1
+.loop
ld [$ffaf], a
- ld hl, $0001
+ ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
- jr z, .asm_8278
- ld hl, $0003
+ jr z, .next
+ ld hl, MAPOBJECT_X_COORD
add hl, bc
ld a, e
cp [hl]
- jr nz, .asm_8278
- ld hl, $0000
+ jr nz, .next
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- cp $ff
- jr nz, .asm_8278
- ld hl, $0002
+ cp -1
+ jr nz, .next
+ ld hl, MAPOBJECT_Y_COORD
add hl, bc
ld a, [hl]
- add $1
+ add 1
sub d
- jr c, .asm_8278
- cp $b
- jr nc, .asm_8278
+ jr c, .next
+ cp MAPOBJECT_SCREEN_HEIGHT
+ jr nc, .next
push de
push bc
- call Function80e7
+ call CopyObjectStruct
pop bc
pop de
-.asm_8278
+.next
ld hl, OBJECT_LENGTH
add hl, bc
ld b, h
ld c, l
ld a, [$ffaf]
inc a
- cp $10
- jr nz, .asm_8248
+ cp NUM_OBJECTS
+ jr nz, .loop
ret
; 8286
Function8286: ; 8286
ld a, [wc2f0]
- ld hl, OBJECT_01
+ ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, de
ld [hl], a
ld a, [wc2f4]
@@ -3589,17 +3594,17 @@ Function8286: ; 8286
ld a, [wc2f6]
call Function82f1
ld a, [wc2f1]
- ld hl, OBJECT_00
+ ld hl, OBJECT_SPRITE
add hl, de
ld [hl], a
ld a, [wc2f2]
- ld hl, OBJECT_SPRITE
+ ld hl, OBJECT_SPRITE_TILE
add hl, de
ld [hl], a
ld hl, OBJECT_09
add hl, de
ld [hl], $0
- ld hl, OBJECT_FACING
+ ld hl, OBJECT_FACING_STEP
add hl, de
ld [hl], $ff
ld a, [wc2f8]
@@ -3675,8 +3680,8 @@ Function831e: ; 831e
jr z, Function833b
ld a, [$ffe0]
ld b, a
- ld c, $0
- ld d, $1
+ ld c, 0
+ ld d, 1
call Function8341
call Function1b35
@@ -3691,19 +3696,19 @@ Function8341: ; 8341
push bc
ld a, c
call GetMapObject
- ld hl, $0000
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- call Function1ae5
+ call GetObjectStruct
ld d, b
ld e, c
pop bc
ld a, b
call GetMapObject
- ld hl, $0000
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- call Function1ae5
+ call GetObjectStruct
ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
@@ -3834,34 +3839,37 @@ Function839e:: ; 839e
ret
; 8417
-Function8417:: ; 8417
+GetRelativeFacing:: ; 8417
+; Determines which way map object e would have to turn to face map object d. Returns carry if it's impossible for whatever reason.
ld a, d
call GetMapObject
- ld hl, $0000
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- cp $d
- jr nc, .asm_8437
+ cp NUM_OBJECT_STRUCTS
+ jr nc, .carry
ld d, a
ld a, e
call GetMapObject
- ld hl, $0000
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
- cp $d
- jr nc, .asm_8437
+ cp NUM_OBJECT_STRUCTS
+ jr nc, .carry
ld e, a
- call Function8439
+ call .GetFacing_e_relativeto_d
ret
-.asm_8437
+.carry
scf
ret
; 8439
-Function8439: ; 8439
+.GetFacing_e_relativeto_d: ; 8439
+; Determines which way object e would have to turn to face object d. Returns carry if it's impossible.
+; load the coordinates of object d into bc
ld a, d
- call Function1ae5
+ call GetObjectStruct
ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
@@ -3870,8 +3878,9 @@ Function8439: ; 8439
ld c, [hl]
ld b, a
push bc
+; load the coordinates of object e into de
ld a, e
- call Function1ae5
+ call GetObjectStruct
ld hl, OBJECT_MAP_X
add hl, bc
ld d, [hl]
@@ -3879,76 +3888,82 @@ Function8439: ; 8439
add hl, bc
ld e, [hl]
pop bc
+; |x1 - x2|
ld a, b
sub d
- jr z, .asm_846c
- jr nc, .asm_8460
+ jr z, .same_x_1
+ jr nc, .b_right_of_d_1
cpl
inc a
-.asm_8460
+.b_right_of_d_1
+; |y1 - y2|
ld h, a
ld a, c
sub e
- jr z, .asm_847a
- jr nc, .asm_8469
+ jr z, .same_y_1
+ jr nc, .c_below_e_1
cpl
inc a
-.asm_8469
+.c_below_e_1
+; |y1 - y2| - |x1 - x2|
sub h
- jr c, .asm_847a
+ jr c, .same_y_1
-.asm_846c
+.same_x_1
+; compare the y coordinates
ld a, c
cp e
- jr z, .asm_8488
- jr c, .asm_8476
- ld d, $0
+ jr z, .same_x_and_y
+ jr c, .c_directly_below_e
+; c directly above e
+ ld d, DOWN
and a
ret
-.asm_8476
- ld d, $1
+.c_directly_below_e
+ ld d, UP
and a
ret
-.asm_847a
+.same_y_1
ld a, b
cp d
- jr z, .asm_8488
- jr c, .asm_8484
- ld d, $3
+ jr z, .same_x_and_y
+ jr c, .b_directly_right_of_d
+; b directly left of d
+ ld d, RIGHT
and a
ret
-.asm_8484
- ld d, $2
+.b_directly_right_of_d
+ ld d, LEFT
and a
ret
-.asm_8488
+.same_x_and_y
scf
ret
; 848a
Function848a: ; 848a
call Function849d
- jr c, .asm_8497
+ jr c, .same
ld [wd4d1], a
xor a
ld [wd4d0], a
ret
-.asm_8497
- ld a, $ff
+.same
+ ld a, -1
ld [wd4d0], a
ret
; 849d
Function849d: ; 849d
ld a, [wd4cd]
- call Function1ae5
+ call GetObjectStruct
ld hl, OBJECT_MAP_X
add hl, bc
ld d, [hl]
@@ -3956,39 +3971,39 @@ Function849d: ; 849d
add hl, bc
ld e, [hl]
ld a, [wd4ce]
- call Function1ae5
+ call GetObjectStruct
ld hl, OBJECT_MAP_X
add hl, bc
ld a, d
cp [hl]
- jr z, .asm_84c5
- jr c, .asm_84c1
+ jr z, .check_y
+ jr c, .left
and a
- ld a, $f
+ ld a, $c + RIGHT
ret
-.asm_84c1
+.left
and a
- ld a, $e
+ ld a, $c + LEFT
ret
-.asm_84c5
+.check_y
ld hl, OBJECT_MAP_Y
add hl, bc
ld a, e
cp [hl]
- jr z, .asm_84d7
- jr c, .asm_84d3
+ jr z, .same_xy
+ jr c, .up
and a
- ld a, $c
+ ld a, $c + DOWN
ret
-.asm_84d3
+.up
and a
- ld a, $d
+ ld a, $c + UP
ret
-.asm_84d7
+.same_xy
scf
ret
; 84d9
@@ -4021,8 +4036,9 @@ Function84ef: ; 84ef
ld a, d
ld d, 0
ld hl, SineWave
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -4048,114 +4064,7 @@ SineWave: ; 850b
; 854b
-GetPredefPointer:: ; 854b
-; Return the bank and address of PredefID in a and PredefAddress.
-
-; Save hl for later (back in Predef)
- ld a, h
- ld [PredefTemp], a
- ld a, l
- ld [PredefTemp + 1], a
-
- push de
- ld a, [PredefID]
- ld e, a
- ld d, 0
- ld hl, PredefPointers
- add hl, de
- add hl, de
- add hl, de
- pop de
-
- ld a, [hli]
- ld [PredefAddress + 1], a
- ld a, [hli]
- ld [PredefAddress], a
- ld a, [hl]
-
- ret
-; 856b
-
-PredefPointers:: ; 856b
-; $4b Predef pointers
-; address, bank
-
- add_predef LearnMove ; $0
- add_predef Predef1
- add_predef HealParty
- add_predef FlagPredef
- add_predef Functionc699
- add_predef FillPP
- add_predef Functiond88c
- add_predef Functionda96
- add_predef Functiondb3f ; $8
- add_predef Functionde6e
- add_predef GiveEgg
- add_predef Functionc6e0
- add_predef Functione167
- add_predef Functione17b
- add_predef CanLearnTMHMMove
- add_predef GetTMHMMove
- add_predef Function28eef ; $ 10
- add_predef PrintMoveDesc
- add_predef UpdatePlayerHUD
- add_predef FillBox
- add_predef Function3d873
- add_predef UpdateEnemyHUD
- add_predef StartBattle
- add_predef FillInExpBar
- add_predef Function3f43d ; $18
- add_predef Function3f47c
- add_predef LearnLevelMoves
- add_predef FillMoves
- add_predef Function421e6
- add_predef Function28f63
- add_predef Function28f24
- add_predef Function5084a
- add_predef ListMoves ; $20
- add_predef Function50d2e
- add_predef Function50cdb
- add_predef Function50c50
- add_predef GetGender
- add_predef StatsScreenInit
- add_predef DrawPlayerHP
- add_predef DrawEnemyHP
- add_predef PrintTempMonStats ; $28
- add_predef GetTypeName
- add_predef PrintMoveType
- add_predef PrintType
- add_predef PrintMonTypes
- add_predef GetUnownLetter
- add_predef Functioncbcdd
- add_predef Predef2F
- add_predef Function9853 ; $30
- add_predef Function864c
- add_predef Function91d11
- add_predef CheckContestMon
- add_predef Function8c20f
- add_predef Function8c000
- add_predef Function8c000_2
- add_predef PlayBattleAnim
- add_predef Predef38 ; $38
- add_predef Predef39
- add_predef Functionfd1d0
- add_predef PartyMonItemName
- add_predef GetFrontpic
- add_predef GetBackpic
- add_predef Function5108b
- add_predef GetTrainerPic
- add_predef DecompressPredef ; $40
- add_predef Function347d3
- add_predef Functionfb908
- add_predef Functionfb877
- add_predef Functiond0000
- add_predef Function50d0a
- add_predef Functiond00a3
- add_predef Functiond008e
- add_predef Functiond0669 ; $48
- add_predef Functiond066e
- dbw $ff, Function2d43 ; ????
-; 864c
+INCLUDE "engine/predef.asm"
INCLUDE "engine/color.asm"
@@ -4163,9 +4072,9 @@ INCLUDE "engine/color.asm"
SECTION "bank3", ROMX, BANK[$3]
-Functionc000:: ; c000
+CheckTime:: ; c000
ld a, [TimeOfDay]
- ld hl, Datac012
+ ld hl, TimeOfDayTable
ld de, 2
call IsInArray
inc hl
@@ -4177,7 +4086,7 @@ Functionc000:: ; c000
ret
; c012
-Datac012: ; c012
+TimeOfDayTable: ; c012
db MORN, 1
db DAY, 2
db NITE, 4
@@ -4319,10 +4228,10 @@ _PrintNum:: ; c4c7
.two
dec e
- jr nz, .asm_c583
+ jr nz, .two_skip
ld a, "0"
ld [$ffb3], a
-.asm_c583
+.two_skip
ld c, 0
ld a, [$ffb6]
@@ -4337,11 +4246,11 @@ _PrintNum:: ; c4c7
ld b, a
ld a, [$ffb3]
or c
- jr nz, .asm_c59b
+ jr nz, .money
call .PrintLeadingZero
- jr .asm_c5ad
+ jr .money_leading_zero
-.asm_c59b
+.money
call .PrintYen
push af
ld a, "0"
@@ -4351,11 +4260,11 @@ _PrintNum:: ; c4c7
ld [$ffb3], a
inc e
dec e
- jr nz, .asm_c5ad
+ jr nz, .money_leading_zero
inc hl
ld [hl], $f2 ; XXX
-.asm_c5ad
+.money_leading_zero
call .AdvancePointer
call .PrintYen
ld a, "0"
@@ -4371,14 +4280,14 @@ _PrintNum:: ; c4c7
push af
ld a, [$ffb3]
and a
- jr nz, .asm_c5c9
+ jr nz, .stop
bit 5, d
- jr z, .asm_c5c9
+ jr z, .stop
ld a, "¥"
ld [hli], a
res 5, d
-.asm_c5c9
+.stop
pop af
ret
; c5cb
@@ -4390,13 +4299,13 @@ _PrintNum:: ; c4c7
ld [$ffb3], a
.ok
ld c, 0
-.asm_c5d4
+.loop
ld a, [$ffb7]
ld b, a
ld a, [$ffb4]
ld [$ffba], a
cp b
- jr c, .asm_c624
+ jr c, .skip1
sub b
ld [$ffb4], a
ld a, [$ffb8]
@@ -4404,14 +4313,14 @@ _PrintNum:: ; c4c7
ld a, [$ffb5]
ld [$ffbb], a
cp b
- jr nc, .asm_c5f6
+ jr nc, .skip2
ld a, [$ffb4]
or 0
- jr z, .asm_c620
+ jr z, .skip3
dec a
ld [$ffb4], a
ld a, [$ffb5]
-.asm_c5f6
+.skip2
sub b
ld [$ffb5], a
ld a, [$ffb9]
@@ -4419,44 +4328,44 @@ _PrintNum:: ; c4c7
ld a, [$ffb6]
ld [$ffbc], a
cp b
- jr nc, .asm_c616
+ jr nc, .skip4
ld a, [$ffb5]
and a
- jr nz, .asm_c611
+ jr nz, .skip5
ld a, [$ffb4]
and a
- jr z, .asm_c61c
+ jr z, .skip6
dec a
ld [$ffb4], a
xor a
-.asm_c611
+.skip5
dec a
ld [$ffb5], a
ld a, [$ffb6]
-.asm_c616
+.skip4
sub b
ld [$ffb6], a
inc c
- jr .asm_c5d4
-.asm_c61c
+ jr .loop
+.skip6
ld a, [$ffbb]
ld [$ffb5], a
-.asm_c620
+.skip3
ld a, [$ffba]
ld [$ffb4], a
-.asm_c624
+.skip1
ld a, [$ffb3]
or c
jr z, .PrintLeadingZero
ld a, [$ffb3]
and a
- jr nz, .asm_c637
+ jr nz, .done
bit 5, d
- jr z, .asm_c637
+ jr z, .done
ld a, $f0
ld [hli], a
res 5, d
-.asm_c637
+.done
ld a, "0"
add c
ld [hl], a
@@ -4497,7 +4406,7 @@ HealParty: ; c658
ld hl, PartySpecies
.loop
ld a, [hli]
- cp $ff
+ cp -1
jr z, .done
cp EGG
jr z, .next
@@ -4522,7 +4431,7 @@ HealPartyMon: ; c677
ld d, h
ld e, l
- ld hl, PartyMon1Status - PartyMon1Species
+ ld hl, PartyMon1Status - PartyMon1Species
add hl, de
xor a
ld [hli], a
@@ -4534,8 +4443,9 @@ HealPartyMon: ; c677
; bc = PartyMon1HP - PartyMon1Species
ld b, h
ld c, l
+rept 2
dec bc
- dec bc
+endr
ld a, [hli]
ld [bc], a
@@ -4550,7 +4460,7 @@ HealPartyMon: ; c677
Functionc699: ; c699
ld a, b
or c
- jr z, .asm_c6dd
+ jr z, .zero
push hl
xor a
ld [hMultiplicand], a
@@ -4563,7 +4473,7 @@ Functionc699: ; c699
call Multiply
ld a, d
and a
- jr z, .asm_c6cc
+ jr z, .divide
srl d
rr e
srl d
@@ -4579,7 +4489,7 @@ Functionc699: ; c699
ld a, b
ld [$ffb5], a
-.asm_c6cc
+.divide
ld a, e
ld [hMultiplier], a
ld b, $4
@@ -4592,7 +4502,7 @@ Functionc699: ; c699
ld e, $1
ret
-.asm_c6dd
+.zero
ld e, $0
ret
; c6e0
@@ -4605,24 +4515,24 @@ Functionc6e0: ; c6e0
; c6ea
-Functionc6ea: ; c6ea
+ClearBuffer1: ; c6ea
xor a
ld hl, Buffer1
- ld bc, $0007
+ ld bc, 7
call ByteFill
ret
; c6f5
-Functionc6f5: ; c6f5
+FieldMoveJumptable: ; c6f5
ld a, [Buffer1]
rst JumpTable
ld [Buffer1], a
bit 7, a
- jr nz, .asm_c702
+ jr nz, .okay
and a
ret
-.asm_c702
+.okay
and $7f
scf
ret
@@ -4666,7 +4576,7 @@ CheckBadge: ; c731
call CheckEngineFlag
ret nc
ld hl, BadgeRequiredText
- call Function1d67 ; push text to queue
+ call MenuTextBoxBackup ; push text to queue
scf
ret
; c73d
@@ -4693,7 +4603,7 @@ CheckPartyMove: ; c742
ld a, [hl]
and a
jr z, .no
- cp a, $ff
+ cp a, -1
jr z, .no
cp a, EGG
jr z, .next
@@ -4725,9 +4635,9 @@ CheckPartyMove: ; c742
; c779
-Functionc779: ; c779
+FieldMoveFailed: ; c779
ld hl, UnknownText_0xc780
- call Function1d67
+ call MenuTextBoxBackup
ret
; c780
@@ -4736,11 +4646,11 @@ UnknownText_0xc780: ; 0xc780
db "@"
; 0xc785
-Functionc785: ; c785
- call Functionc6ea
+CutFunction: ; c785
+ call ClearBuffer1
.loop
- ld hl, Jumptable_c796
- call Functionc6f5
+ ld hl, .Jumptable
+ call FieldMoveJumptable
jr nc, .loop
and $7f
ld [wd0ec], a
@@ -4748,36 +4658,36 @@ Functionc785: ; c785
; c796
-Jumptable_c796: ; c796 (3:4796)
- dw Functionc79c
- dw Functionc7b2
- dw Functionc7bb
+.Jumptable: ; c796 (3:4796)
+ dw .CheckAble
+ dw .DoCut
+ dw .FailCut
-Functionc79c: ; c79c (3:479c)
+.CheckAble: ; c79c (3:479c)
ld de, ENGINE_HIVEBADGE
call CheckBadge
- jr c, .asm_c7ac
- call Functionc7ce
- jr c, .asm_c7af
+ jr c, .nohivebadge
+ call CheckMapForSomethingToCut
+ jr c, .nothingtocut
ld a, $1
ret
-.asm_c7ac
+.nohivebadge
ld a, $80
ret
-.asm_c7af
+.nothingtocut
ld a, $2
ret
-Functionc7b2: ; c7b2 (3:47b2)
- ld hl, UnknownScript_0xc7fe
- call Function31cd
+.DoCut: ; c7b2 (3:47b2)
+ ld hl, Script_CutFromMenu
+ call ExitMenuCallScript
ld a, $81
ret
-Functionc7bb: ; c7bb (3:47bb)
+.FailCut: ; c7bb (3:47bb)
ld hl, UnknownText_0xc7c9
- call Function1d67
+ call MenuTextBoxBackup
ld a, $80
ret
@@ -4793,20 +4703,20 @@ UnknownText_0xc7c9: ; 0xc7c9
db "@"
; 0xc7ce
-Functionc7ce: ; c7ce
+CheckMapForSomethingToCut: ; c7ce
call GetFacingTileCoord
ld c, a
push de
- callba Function149f5
+ callba CheckCutCollision
pop de
- jr nc, .asm_c7fc
- call Function2a66
+ jr nc, .fail
+ call GetBlockLocation
ld c, [hl]
push hl
- ld hl, Unknown_c862
- call Functionc840
+ ld hl, CutTreeBlockPointers
+ call CheckOverworldTileArrays
pop hl
- jr nc, .asm_c7fc
+ jr nc, .fail
ld a, l
ld [wd1ec], a
ld a, h
@@ -4818,25 +4728,25 @@ Functionc7ce: ; c7ce
xor a
ret
-.asm_c7fc
+.fail
scf
ret
; c7fe
-UnknownScript_0xc7fe: ; c7fe
+Script_CutFromMenu: ; c7fe
reloadmappart
special UpdateTimePals
-UnknownScript_0xc802: ; 0xc802
+Script_Cut: ; 0xc802
callasm GetPartyNick
writetext UnknownText_0xc7c4
reloadmappart
- callasm Functionc810
+ callasm CutDownTreeOrGrass
loadmovesprites
end
; 0xc810
-Functionc810: ; c810
+CutDownTreeOrGrass: ; c810
ld hl, wd1ec
ld a, [hli]
ld h, [hl]
@@ -4846,26 +4756,26 @@ Functionc810: ; c810
xor a
ld [hBGMapMode], a
call Function2173
- call Function1ad2
+ call DrawOnMap
call DelayFrame
ld a, [wd1ef]
ld e, a
callba Function8c940
- call Function2879
+ call BufferScreen
call Function2914
- call Function1ad2
+ call DrawOnMap
call DelayFrame
call Functione51
ret
; c840
-Functionc840: ; c840
+CheckOverworldTileArrays: ; c840
push bc
ld a, [wd199]
ld de, 3
call IsInArray
pop bc
- jr nc, .asm_c860
+ jr nc, .nope
inc hl
ld a, [hli]
ld h, [hl]
@@ -4873,7 +4783,7 @@ Functionc840: ; c840
ld de, 3
ld a, c
call IsInArray
- jr nc, .asm_c860
+ jr nc, .nope
inc hl
ld b, [hl]
inc hl
@@ -4881,21 +4791,23 @@ Functionc840: ; c840
scf
ret
-.asm_c860
+.nope
xor a
ret
; c862
-Unknown_c862: ; c862
- dbw $01, Unknown_c872
- dbw $02, Unknown_c882
- dbw $03, Unknown_c886
- dbw $19, Unknown_c899
- dbw $1f, Unknown_c8a0
+CutTreeBlockPointers: ; c862
+; Which tileset are we in?
+ dbw $01, .one
+ dbw $02, .two
+ dbw $03, .three
+ dbw $19, .twentyfive
+ dbw $1f, .thirtyone
db -1
; c872
-Unknown_c872: ; c872
+.one: ; Johto OW
+; Which meta tile are we facing, which should we replace it with, and does it affect encounters?
db $03, $02, $01
db $5b, $3c, $00
db $5f, $3d, $00
@@ -4904,12 +4816,12 @@ Unknown_c872: ; c872
db -1
; c882
-Unknown_c882: ; c882
+.two: ; Goldenrod area
db $03, $02, $01
db -1
; c886
-Unknown_c886: ; c886
+.three: ; Kanto OW
db $0b, $0a, $01
db $32, $6d, $00
db $33, $6c, $00
@@ -4919,23 +4831,23 @@ Unknown_c886: ; c886
db -1
; c899
-Unknown_c899: ; c899
+.twentyfive: ; National Park
db $13, $03, $01
db $03, $04, $01
db -1
; c8a0
-Unknown_c8a0: ; c8a0
+.thirtyone: ; Ilex Forest
db $0f, $17, $00
db -1
; c8a4
-Unknown_c8a4: ; c8a4
- dbw $01, Unknown_c8a8
+WhirlpoolBlockPointers: ; c8a4
+ dbw $01, .one
db -1
; c8a8
-Unknown_c8a8: ; c8a8
+.one: ; c8a8
db $07, $36, $00
db -1
; c8ac
@@ -4951,40 +4863,40 @@ Functionc8b5: ; c8b5
; Flash
ld de, ENGINE_ZEPHYRBADGE
callba CheckBadge
- jr c, .asm_c8dd
+ jr c, .nozephyrbadge
push hl
- callba Function8ae30
+ callba SpecialAerodactylChamber
pop hl
- jr c, .asm_c8d1
+ jr c, .useflash
ld a, [wd847]
- cp $ff
- jr nz, .asm_c8d7
+ cp -1
+ jr nz, .notadarkcave
-.asm_c8d1
- call Functionc8e0
+.useflash
+ call UseFlash
ld a, $81
ret
-.asm_c8d7
- call Functionc779
+.notadarkcave
+ call FieldMoveFailed
ld a, $80
ret
-.asm_c8dd
+.nozephyrbadge
ld a, $80
ret
; c8e0
-Functionc8e0: ; c8e0
- ld hl, UnknownScript_0xc8e6
- jp Function31cd
+UseFlash: ; c8e0
+ ld hl, Script_UseFlash
+ jp ExitMenuCallScript
; c8e6
-UnknownScript_0xc8e6: ; 0xc8e6
+Script_UseFlash: ; 0xc8e6
reloadmappart
special UpdateTimePals
writetext UnknownText_0xc8f3
- callasm Function8c7e1
+ callasm BlindingFlash
loadmovesprites
end
; 0xc8f3
@@ -5007,80 +4919,80 @@ UnknownText_0xc908: ; 0xc908
db "@"
; 0xc909
-Functionc909: ; c909
- call Functionc6ea
-.asm_c90c
- ld hl, Jumptable_c91a
- call Functionc6f5
- jr nc, .asm_c90c
+SurfFunction: ; c909
+ call ClearBuffer1
+.loop
+ ld hl, .Jumptable
+ call FieldMoveJumptable
+ jr nc, .loop
and $7f
ld [wd0ec], a
ret
; c91a
-Jumptable_c91a: ; c91a (3:491a)
- dw Functionc922
- dw Functionc95f
- dw Functionc971
- dw Functionc97a
+.Jumptable: ; c91a (3:491a)
+ dw .TrySurf
+ dw .DoSurf
+ dw .FailSurf
+ dw .AlreadySurfing
-Functionc922: ; c922 (3:4922)
+.TrySurf: ; c922 (3:4922)
ld de, ENGINE_FOGBADGE
call CheckBadge
jr c, .asm_c956
ld hl, BikeFlags
bit 1, [hl] ; always on bike
- jr nz, .asm_c95c
+ jr nz, .cannotsurf
ld a, [PlayerState]
cp PLAYER_SURF
- jr z, .asm_c959
+ jr z, .alreadysurfing
cp PLAYER_SURF_PIKA
- jr z, .asm_c959
+ jr z, .alreadysurfing
call GetFacingTileCoord
call GetTileCollision
cp $1
- jr nz, .asm_c95c
+ jr nz, .cannotsurf
call CheckDirection
- jr c, .asm_c95c
+ jr c, .cannotsurf
callba CheckFacingObject
- jr c, .asm_c95c
+ jr c, .cannotsurf
ld a, $1
ret
.asm_c956
ld a, $80
ret
-.asm_c959
+.alreadysurfing
ld a, $3
ret
-.asm_c95c
+.cannotsurf
ld a, $2
ret
-Functionc95f: ; c95f (3:495f)
+.DoSurf: ; c95f (3:495f)
call GetSurfType
ld [Buffer2], a ; wd1eb (aliases: MovementType)
call GetPartyNick
- ld hl, UnknownScript_0xc983
- call Function31cd
+ ld hl, SurfFromMenuScript
+ call ExitMenuCallScript
ld a, $81
ret
-Functionc971: ; c971 (3:4971)
+.FailSurf: ; c971 (3:4971)
ld hl, CantSurfText
- call Function1d67
+ call MenuTextBoxBackup
ld a, $80
ret
-Functionc97a: ; c97a (3:497a)
+.AlreadySurfing: ; c97a (3:497a)
ld hl, AlreadySurfingText
- call Function1d67
+ call MenuTextBoxBackup
ld a, $80
ret
; c983 (3:4983)
-UnknownScript_0xc983: ; c983
+SurfFromMenuScript: ; c983
special UpdateTimePals
UsedSurfScript: ; c986
@@ -5093,11 +5005,11 @@ UsedSurfScript: ; c986
copybytetovar Buffer2
writevarcode VAR_MOVEMENT
- special Functione4a
+ special Special_ReplaceKrisSprite
special PlayMapMusic
; step into the water
special Function8379 ; (slow_step_x, step_end)
- applymovement 0, MovementBuffer ; PLAYER, MovementBuffer
+ applymovement $0, MovementBuffer ; PLAYER, MovementBuffer
end
; c9a2
@@ -5239,11 +5151,11 @@ AskSurfText: ; ca36
; ca3b
-Functionca3b: ; ca3b
- call Functionc6ea
+FlyFunction: ; ca3b
+ call ClearBuffer1
.asm_ca3e
ld hl, .data_ca4c
- call Functionc6f5
+ call FieldMoveJumptable
jr nc, .asm_ca3e
and $7f
ld [wd0ec], a
@@ -5251,40 +5163,40 @@ Functionca3b: ; ca3b
; ca4c
.data_ca4c
- dw Functionca52
- dw Functionca94
- dw Functionca9d
+ dw .TryFly
+ dw .DoFly
+ dw .FailFly
; ca52
-Functionca52: ; ca52
+.TryFly: ; ca52
; Fly
ld de, ENGINE_STORMBADGE
call CheckBadge
- jr c, .asm_ca85
+ jr c, .nostormbadge
call GetMapPermission
call CheckOutdoorMap
- jr z, .asm_ca64
+ jr z, .outdoors
jr .indoors
-.asm_ca64
+.outdoors
xor a
ld [$ffde], a
call Function1d6e
call ClearSprites
- callba Function91af3
+ callba _FlyMap
ld a, e
cp -1
- jr z, .asm_ca8b
+ jr z, .illegal
cp $1c ; NUM_SPAWNS
- jr nc, .asm_ca8b
+ jr nc, .illegal
ld [wd001], a
- call Function1c17
+ call WriteBackup
ld a, $1
ret
-.asm_ca85
+.nostormbadge
ld a, $82
ret
@@ -5292,34 +5204,34 @@ Functionca52: ; ca52
ld a, $2
ret
-.asm_ca8b
- call Function1c17
+.illegal
+ call WriteBackup
call WaitBGMap
ld a, $80
ret
; ca94
-Functionca94: ; ca94
- ld hl, UnknownScript_0xcaa3
- call Function31cd
+.DoFly: ; ca94
+ ld hl, .FlyScript
+ call ExitMenuCallScript
ld a, $81
ret
; ca9d
-Functionca9d: ; ca9d
- call Functionc779
+.FailFly: ; ca9d
+ call FieldMoveFailed
ld a, $82
ret
; caa3
-UnknownScript_0xcaa3: ; 0xcaa3
+.FlyScript: ; 0xcaa3
reloadmappart
callasm HideSprites
special UpdateTimePals
callasm Function8caed
farscall UnknownScript_0x122c1
- special Function97c28
- callasm Function154f1
+ special WarpToSpawnPoint
+ callasm DelayLoadingNewSprites
writecode VAR_MOVEMENT, $0
newloadmap $fc
callasm Function8cb33
@@ -5331,58 +5243,58 @@ UnknownScript_0xcaa3: ; 0xcaa3
Functioncacb: ; cacb
callba Function561d
call DelayFrame
- call Functione4a
+ call Special_ReplaceKrisSprite
callba Function106594
ret
; cade
Functioncade: ; cade
- call Functioncae7
+ call AttemptToWaterfall
and $7f
ld [wd0ec], a
ret
; cae7
-Functioncae7: ; cae7
+AttemptToWaterfall: ; cae7
; Waterfall
ld de, ENGINE_RISINGBADGE
callba CheckBadge
ld a, $80
ret c
- call Functioncb07
- jr c, .asm_cb01
- ld hl, UnknownScript_0xcb1c
- call Function31cd
+ call CheckMapCanWaterfall
+ jr c, .failed
+ ld hl, Script_WaterfallFromMenu
+ call ExitMenuCallScript
ld a, $81
ret
-.asm_cb01
- call Functionc779
+.failed
+ call FieldMoveFailed
ld a, $80
ret
; cb07
-Functioncb07: ; cb07
+CheckMapCanWaterfall: ; cb07
ld a, [PlayerDirection]
and $c
cp FACE_UP
- jr nz, .asm_cb1a
+ jr nz, .failed
ld a, [TileUp]
call CheckWaterfallTile
- jr nz, .asm_cb1a
+ jr nz, .failed
xor a
ret
-.asm_cb1a
+.failed
scf
ret
; cb1c
-UnknownScript_0xcb1c: ; 0xcb1c
+Script_WaterfallFromMenu: ; 0xcb1c
reloadmappart
special UpdateTimePals
-UnknownScript_0xcb20: ; 0xcb20
+Script_UsedWaterfall: ; 0xcb20
callasm GetPartyNick
writetext UnknownText_0xcb51
closetext
@@ -5390,12 +5302,12 @@ UnknownScript_0xcb20: ; 0xcb20
playsound SFX_BUBBLEBEAM
.loop
applymovement $0, WaterfallStep
- callasm Functioncb38
+ callasm CheckContinueWaterfall
iffalse .loop
end
; 0xcb38
-Functioncb38: ; cb38
+CheckContinueWaterfall: ; cb38
xor a
ld [ScriptVar], a
ld a, [StandingTile]
@@ -5420,27 +5332,27 @@ UnknownText_0xcb51: ; 0xcb51
TryWaterfallOW:: ; cb56
ld d, WATERFALL
call CheckPartyMove
- jr c, .asm_cb74
+ jr c, .failed
ld de, ENGINE_RISINGBADGE
call CheckEngineFlag
- jr c, .asm_cb74
- call Functioncb07
- jr c, .asm_cb74
- ld a, BANK(UnknownScript_0xcb86)
- ld hl, UnknownScript_0xcb86
+ jr c, .failed
+ call CheckMapCanWaterfall
+ jr c, .failed
+ ld a, BANK(Script_AskWaterfall)
+ ld hl, Script_AskWaterfall
call CallScript
scf
ret
-.asm_cb74
- ld a, BANK(UnknownScript_0xcb7e)
- ld hl, UnknownScript_0xcb7e
+.failed
+ ld a, BANK(Script_CantDoWaterfall)
+ ld hl, Script_CantDoWaterfall
call CallScript
scf
ret
; cb7e
-UnknownScript_0xcb7e: ; 0xcb7e
+Script_CantDoWaterfall: ; 0xcb7e
jumptext UnknownText_0xcb81
; 0xcb81
@@ -5449,11 +5361,11 @@ UnknownText_0xcb81: ; 0xcb81
db "@"
; 0xcb86
-UnknownScript_0xcb86: ; 0xcb86
+Script_AskWaterfall: ; 0xcb86
loadfont
writetext UnknownText_0xcb90
yesorno
- iftrue UnknownScript_0xcb20
+ iftrue Script_UsedWaterfall
loadmovesprites
end
; 0xcb90
@@ -5464,89 +5376,89 @@ UnknownText_0xcb90: ; 0xcb90
; 0xcb95
-Functioncb95: ; cb95
- call Functionc6ea
+EscapeRopeFunction: ; cb95
+ call ClearBuffer1
ld a, $1
- jr asm_cba1
+ jr dig_incave
-Functioncb9c: ; cb9c
- call Functionc6ea
+DigFunction: ; cb9c
+ call ClearBuffer1
ld a, $2
-asm_cba1
+dig_incave
ld [Buffer2], a
-.asm_cba4
- ld hl, Tablecbb2
- call Functionc6f5
- jr nc, .asm_cba4
+.loop
+ ld hl, .DigTable
+ call FieldMoveJumptable
+ jr nc, .loop
and $7f
ld [wd0ec], a
ret
; cbb2
-Tablecbb2: ; cbb2
- dw Functioncbb8
- dw Functioncbd8
- dw Functioncc06
+.DigTable: ; cbb2
+ dw .CheckCanDig
+ dw .DoDig
+ dw .FailDig
; cbb8
-Functioncbb8: ; cbb8
+.CheckCanDig: ; cbb8
call GetMapPermission
cp $4
- jr z, .asm_cbc6
+ jr z, .incave
cp $7
- jr z, .asm_cbc6
-.asm_cbc3
+ jr z, .incave
+.fail
ld a, $2
ret
-.asm_cbc6
+.incave
ld hl, wdca9
ld a, [hli]
and a
- jr z, .asm_cbc3
+ jr z, .fail
ld a, [hli]
and a
- jr z, .asm_cbc3
+ jr z, .fail
ld a, [hl]
and a
- jr z, .asm_cbc3
+ jr z, .fail
ld a, $1
ret
; cbd8
-Functioncbd8: ; cbd8
+.DoDig: ; cbd8
ld hl, wdca9
ld de, wd146
- ld bc, $0003
+ ld bc, 3
call CopyBytes
call GetPartyNick
ld a, [Buffer2]
cp $2
- jr nz, .asm_cbf7
- ld hl, UnknownScript_0xcc35
- call Function31cd
+ jr nz, .escaperope
+ ld hl, UsedDigScript
+ call ExitMenuCallScript
ld a, $81
ret
-.asm_cbf7
- callba Function8ae4e
- ld hl, UnknownScript_0xcc2b
- call Function31cd
+.escaperope
+ callba SpecialKabutoChamber
+ ld hl, UsedEscapeRopeScript
+ call ExitMenuCallScript
ld a, $81
ret
; cc06
-Functioncc06: ; cc06
+.FailDig: ; cc06
ld a, [Buffer2]
cp $2
- jr nz, .asm_cc19
+ jr nz, .failescaperope
ld hl, UnknownText_0xcc26
- call Function1d4f
+ call MenuTextBox
call Functiona80
- call Function1c17
+ call WriteBackup
-.asm_cc19
+.failescaperope
ld a, $80
ret
; cc1c
@@ -5569,25 +5481,25 @@ UnknownText_0xcc26: ; 0xcc26
db "@"
; 0xcc2b
-UnknownScript_0xcc2b: ; 0xcc2b
+UsedEscapeRopeScript: ; 0xcc2b
reloadmappart
special UpdateTimePals
writetext UnknownText_0xcc21
- jump UnknownScript_0xcc3c
+ jump UsedDigOrEscapeRopeScript
; 0xcc35
-UnknownScript_0xcc35: ; 0xcc35
+UsedDigScript: ; 0xcc35
reloadmappart
special UpdateTimePals
writetext UnknownText_0xcc1c
-UnknownScript_0xcc3c: ; 0xcc3c
+UsedDigOrEscapeRopeScript: ; 0xcc3c
closetext
loadmovesprites
playsound SFX_WARP_TO
applymovement $0, MovementData_0xcc59
farscall UnknownScript_0x122c1
- special Function97c28
+ special WarpToSpawnPoint
writecode VAR_MOVEMENT, $0
newloadmap $f5
playsound SFX_WARP_FROM
@@ -5603,62 +5515,62 @@ MovementData_0xcc59: ; 0xcc59
; 0xcc5d
MovementData_0xcc5d: ; 0xcc5d
- db $3c, $58
+ return_dig $58
turn_away_down
step_end
; 0xcc61
-Functioncc61: ; cc61
- call Functionc6ea
-.asm_cc64
- ld hl, Tablecc72
- call Functionc6f5
- jr nc, .asm_cc64
+TeleportFunction: ; cc61
+ call ClearBuffer1
+.loop
+ ld hl, .Jumptable
+ call FieldMoveJumptable
+ jr nc, .loop
and $7f
ld [wd0ec], a
ret
; cc72
-Tablecc72: ; cc72
- dw Functioncc78
- dw Functioncc9c
- dw Functioncca8
+.Jumptable: ; cc72
+ dw .TryTeleport
+ dw .DoTeleport
+ dw .FailTeleport
; cc78
-Functioncc78: ; cc78
+.TryTeleport: ; cc78
call GetMapPermission
call CheckOutdoorMap
- jr z, .asm_cc82
- jr .asm_cc99
+ jr z, .CheckIfSpawnPoint
+ jr .nope
-.asm_cc82
+.CheckIfSpawnPoint
ld a, [wdcb2]
ld d, a
ld a, [wdcb3]
ld e, a
callba IsSpawnPoint
- jr nc, .asm_cc99
+ jr nc, .nope
ld a, c
ld [wd001], a
ld a, $1
ret
-.asm_cc99
+.nope
ld a, $2
ret
; cc9c
-Functioncc9c: ; cc9c
+.DoTeleport: ; cc9c
call GetPartyNick
- ld hl, UnknownScript_0xccbb
- call Function31cd
+ ld hl, Script_UsedTeleport
+ call ExitMenuCallScript
ld a, $81
ret
; cca8
-Functioncca8: ; cca8
+.FailTeleport: ; cca8
ld hl, UnknownText_0xccb6
- call Function1d67
+ call MenuTextBoxBackup
ld a, $80
ret
; ccb1
@@ -5675,7 +5587,7 @@ UnknownText_0xccb6: ; 0xccb6
db "@"
; 0xccbb
-UnknownScript_0xccbb: ; 0xccbb
+Script_UsedTeleport: ; 0xccbb
reloadmappart
special UpdateTimePals
writetext UnknownText_0xccb1
@@ -5685,7 +5597,7 @@ UnknownScript_0xccbb: ; 0xccbb
playsound SFX_WARP_TO
applymovement $0, MovementData_0xcce1
farscall UnknownScript_0x122c1
- special Function97c28
+ special WarpToSpawnPoint
writecode VAR_MOVEMENT, $0
newloadmap $f4
playsound SFX_WARP_FROM
@@ -5703,24 +5615,24 @@ MovementData_0xcce3: ; cce3
step_end
; cce5
-Functioncce5: ; cce5
- call Functionccee
+StrengthFunction: ; cce5
+ call .TryStrength
and $7f
ld [wd0ec], a
ret
; ccee
-Functionccee: ; ccee
+.TryStrength: ; ccee
; Strength
ld de, ENGINE_PLAINBADGE
call CheckBadge
- jr c, Functioncd06
- jr Functioncd09
+ jr c, FailedStrength
+ jr StartToUseStrength
; ccf8
-Functionccf8: ; ccf8
+AlreadyUsingStrength: ; ccf8
ld hl, UnknownText_0xcd01
- call Function1d67
+ call MenuTextBoxBackup
ld a, $80
ret
; cd01
@@ -5730,14 +5642,14 @@ UnknownText_0xcd01: ; 0xcd01
db "@"
; 0xcd06
-Functioncd06: ; cd06
+FailedStrength: ; cd06
ld a, $80
ret
; cd09
-Functioncd09: ; cd09
- ld hl, UnknownScript_0xcd29
- call Function31cd
+StartToUseStrength: ; cd09
+ ld hl, Script_StrengthFromMenu
+ call ExitMenuCallScript
ld a, $81
ret
; cd12
@@ -5760,11 +5672,11 @@ Functioncd1d: ; cd1d
ret
; cd29
-UnknownScript_0xcd29: ; 0xcd29
+Script_StrengthFromMenu: ; 0xcd29
reloadmappart
special UpdateTimePals
-UnknownScript_0xcd2d: ; 0xcd2d
+Script_UsedStrength: ; 0xcd2d
callasm Functioncd12
writetext UnknownText_0xcd41
copybytetovar wd1ef
@@ -5786,25 +5698,25 @@ UnknownText_0xcd46: ; 0xcd46
; 0xcd4b
AskStrengthScript:
- callasm Functioncd78
- iffalse UnknownScript_0xcd5f
- if_equal $1, UnknownScript_0xcd59
- jump UnknownScript_0xcd5c
+ callasm TryStrengthOW
+ iffalse .AskStrength
+ if_equal $1, .DontMeetRequirements
+ jump .AlreadyUsedStrength
; 0xcd59
-UnknownScript_0xcd59: ; 0xcd59
+.DontMeetRequirements: ; 0xcd59
jumptext UnknownText_0xcd73
; 0xcd5c
-UnknownScript_0xcd5c: ; 0xcd5c
+.AlreadyUsedStrength: ; 0xcd5c
jumptext UnknownText_0xcd6e
; 0xcd5f
-UnknownScript_0xcd5f: ; 0xcd5f
+.AskStrength: ; 0xcd5f
loadfont
writetext UnknownText_0xcd69
yesorno
- iftrue UnknownScript_0xcd2d
+ iftrue Script_UsedStrength
loadmovesprites
end
; 0xcd69
@@ -5827,79 +5739,79 @@ UnknownText_0xcd73: ; 0xcd73
db "@"
; 0xcd78
-Functioncd78: ; cd78
+TryStrengthOW: ; cd78
ld d, STRENGTH
call CheckPartyMove
- jr c, .asm_cd92
+ jr c, .nope
ld de, ENGINE_PLAINBADGE
call CheckEngineFlag
- jr c, .asm_cd92
+ jr c, .nope
ld hl, BikeFlags
bit 0, [hl]
- jr z, .asm_cd96
+ jr z, .already_using
ld a, 2
- jr .asm_cd99
+ jr .done
-.asm_cd92
+.nope
ld a, 1
- jr .asm_cd99
+ jr .done
-.asm_cd96
+.already_using
xor a
- jr .asm_cd99
+ jr .done
-.asm_cd99
+.done
ld [ScriptVar], a
ret
; cd9d
-Functioncd9d: ; cd9d
- call Functionc6ea
-.asm_cda0
+WhirlpoolFunction: ; cd9d
+ call ClearBuffer1
+.loop
ld hl, Jumptable_cdae
- call Functionc6f5
- jr nc, .asm_cda0
+ call FieldMoveJumptable
+ jr nc, .loop
and $7f
ld [wd0ec], a
ret
; cdae
Jumptable_cdae: ; cdae
- dw Functioncdb4
- dw Functioncdca
- dw Functioncdd3
+ dw .TryWhirlpool
+ dw .DoWhirlpool
+ dw .FailWhirlpool
; cdb4
-Functioncdb4: ; cdb4
+.TryWhirlpool: ; cdb4
ld de, ENGINE_GLACIERBADGE
call CheckBadge
- jr c, .asm_cdc7
- call Functioncdde
- jr c, .asm_cdc4
+ jr c, .noglacierbadge
+ call TryWhirlpoolMenu
+ jr c, .failed
ld a, $1
ret
-.asm_cdc4
+.failed
ld a, $2
ret
-.asm_cdc7
+.noglacierbadge
ld a, $80
ret
; cdca
-Functioncdca: ; cdca
- ld hl, UnknownScript_0xce0b
- call Function31cd
+.DoWhirlpool: ; cdca
+ ld hl, Script_WhirlpoolFromMenu
+ call ExitMenuCallScript
ld a, $81
ret
; cdd3
-Functioncdd3: ; cdd3
- call Functionc779
+.FailWhirlpool: ; cdd3
+ call FieldMoveFailed
ld a, $80
ret
; cdd9
@@ -5910,20 +5822,20 @@ UnknownText_0xcdd9: ; 0xcdd9
db "@"
; 0xcdde
-Functioncdde: ; cdde
+TryWhirlpoolMenu: ; cdde
call GetFacingTileCoord
ld c, a
push de
call CheckWhirlpoolTile
pop de
- jr c, .asm_ce09
- call Function2a66
+ jr c, .failed
+ call GetBlockLocation
ld c, [hl]
push hl
- ld hl, Unknown_c8a4
- call Functionc840
+ ld hl, WhirlpoolBlockPointers
+ call CheckOverworldTileArrays
pop hl
- jr nc, .asm_ce09
+ jr nc, .failed
ld a, l
ld [wd1ec], a
ld a, h
@@ -5935,25 +5847,25 @@ Functioncdde: ; cdde
xor a
ret
-.asm_ce09
+.failed
scf
ret
; ce0b
-UnknownScript_0xce0b: ; 0xce0b
+Script_WhirlpoolFromMenu: ; 0xce0b
reloadmappart
special UpdateTimePals
-UnknownScript_0xce0f: ; 0xce0f
+Script_UsedWhirlpool: ; 0xce0f
callasm GetPartyNick
writetext UnknownText_0xcdd9
reloadmappart
- callasm Functionce1d
+ callasm DisappearWhirlpool
loadmovesprites
end
; 0xce1d
-Functionce1d: ; ce1d
+DisappearWhirlpool: ; ce1d
ld hl, wd1ec
ld a, [hli]
ld h, [hl]
@@ -5966,7 +5878,7 @@ Functionce1d: ; ce1d
ld a, [wd1ef]
ld e, a
callba Function8c7d4
- call Function2879
+ call BufferScreen
call Function2914
ret
; ce3e
@@ -5974,27 +5886,27 @@ Functionce1d: ; ce1d
TryWhirlpoolOW:: ; ce3e
ld d, WHIRLPOOL
call CheckPartyMove
- jr c, .asm_ce5c
+ jr c, .failed
ld de, ENGINE_GLACIERBADGE
call CheckEngineFlag
- jr c, .asm_ce5c
- call Functioncdde
- jr c, .asm_ce5c
- ld a, BANK(UnknownScript_0xce6e)
- ld hl, UnknownScript_0xce6e
+ jr c, .failed
+ call TryWhirlpoolMenu
+ jr c, .failed
+ ld a, BANK(Script_AskWhirlpoolOW)
+ ld hl, Script_AskWhirlpoolOW
call CallScript
scf
ret
-.asm_ce5c
- ld a, BANK(UnknownScript_0xce66)
- ld hl, UnknownScript_0xce66
+.failed
+ ld a, BANK(Script_MightyWhirlpool)
+ ld hl, Script_MightyWhirlpool
call CallScript
scf
ret
; ce66
-UnknownScript_0xce66: ; 0xce66
+Script_MightyWhirlpool: ; 0xce66
jumptext UnknownText_0xce69
; 0xce69
@@ -6003,11 +5915,11 @@ UnknownText_0xce69: ; 0xce69
db "@"
; 0xce6e
-UnknownScript_0xce6e: ; 0xce6e
+Script_AskWhirlpoolOW: ; 0xce6e
loadfont
writetext UnknownText_0xce78
yesorno
- iftrue UnknownScript_0xce0f
+ iftrue Script_UsedWhirlpool
loadmovesprites
end
; 0xce78
@@ -6018,25 +5930,25 @@ UnknownText_0xce78: ; 0xce78
; 0xce7d
-Functionce7d: ; ce7d
- call Functionce86
+HeadbuttFunction: ; ce7d
+ call TryHeadbuttFromMenu
and $7f
ld [wd0ec], a
ret
; ce86
-Functionce86: ; ce86
+TryHeadbuttFromMenu: ; ce86
call GetFacingTileCoord
call CheckHeadbuttTreeTile
jr nz, .no_tree
ld hl, HeadbuttFromMenuScript
- call Function31cd
+ call ExitMenuCallScript
ld a, $81
ret
.no_tree
- call Functionc779
+ call FieldMoveFailed
ld a, $80
ret
; ce9d
@@ -6111,50 +6023,50 @@ UnknownText_0xcee6: ; 0xcee6
; 0xceeb
-Functionceeb: ; ceeb
- call Functioncef4
+RockSmashFunction: ; ceeb
+ call TryRockSmashFromMenu
and $7f
ld [wd0ec], a
ret
; cef4
-Functioncef4: ; cef4
- call Functioncf0d
+TryRockSmashFromMenu: ; cef4
+ call GetFacingObject
jr c, .no_rock
ld a, d
cp $18
jr nz, .no_rock
ld hl, RockSmashFromMenuScript
- call Function31cd
+ call ExitMenuCallScript
ld a, $81
ret
.no_rock
- call Functionc779
+ call FieldMoveFailed
ld a, $80
ret
; cf0d
-Functioncf0d: ; cf0d
+GetFacingObject: ; cf0d
callba CheckFacingObject
- jr nc, .asm_cf2c
+ jr nc, .fail
ld a, [$ffb0]
- call Function1ae5
- ld hl, $0001
+ call GetObjectStruct
+ ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, bc
ld a, [hl]
ld [$ffe0], a
call GetMapObject
- ld hl, $0004
+ ld hl, MAPOBJECT_FACING
add hl, bc
ld a, [hl]
ld d, a
and a
ret
-.asm_cf2c
+.fail
scf
ret
; cf2e
@@ -6171,7 +6083,7 @@ RockSmashScript: ; cf32
playsound SFX_STRENGTH
earthquake 84
applymovement2 MovementData_0xcf55
- disappear $fe
+ disappear -2
callasm RockMonEncounter
copybytetovar wd22e
@@ -6233,59 +6145,59 @@ HasRockSmash: ; cf7c
ret
-Functioncf8e: ; cf8e
+FishFunction: ; cf8e
ld a, e
push af
- call Functionc6ea
+ call ClearBuffer1
pop af
ld [Buffer2], a
-.asm_cf97
- ld hl, Jumptable_cfa5
- call Functionc6f5
- jr nc, .asm_cf97
+.loop
+ ld hl, .FishTable
+ call FieldMoveJumptable
+ jr nc, .loop
and $7f
ld [wd0ec], a
ret
; cfa5
-Jumptable_cfa5: ; cfa5
- dw Functioncfaf
- dw Functiond002
- dw Functioncff4
- dw Functioncff1
- dw Functiond010
+.FishTable: ; cfa5
+ dw .TryFish
+ dw .FishNoBite
+ dw .FishGotSomething
+ dw .SurfingFish
+ dw .FailFish
; cfaf
-Functioncfaf: ; cfaf
+.TryFish: ; cfaf
ld a, [PlayerState]
cp PLAYER_SURF
- jr z, .asm_cfc4
+ jr z, .surfing
cp PLAYER_SURF_PIKA
- jr z, .asm_cfc4
+ jr z, .surfing
call GetFacingTileCoord
call GetTileCollision
cp $1
- jr z, .asm_cfc7
+ jr z, .facingwater
-.asm_cfc4
+.surfing
ld a, $3
ret
-.asm_cfc7
+.facingwater
call Function2d19
and a
- jr nz, .asm_cfd0
+ jr nz, .goodtofish
ld a, $4
ret
-.asm_cfd0
+.goodtofish
ld d, a
ld a, [Buffer2]
ld e, a
callba FishAction
ld a, d
and a
- jr z, .asm_cfee
+ jr z, .nonibble
ld [wd22e], a
ld a, e
ld [CurPartyLevel], a
@@ -6294,76 +6206,76 @@ Functioncfaf: ; cfaf
ld a, $2
ret
-.asm_cfee
+.nonibble
ld a, $1
ret
; cff1
-Functioncff1: ; cff1
+.SurfingFish: ; cff1
ld a, $80
ret
; cff4
-Functioncff4: ; cff4
+.FishGotSomething: ; cff4
ld a, $1
ld [wd1ef], a
- ld hl, UnknownScript_0xd035
- call Function31cd
+ ld hl, Script_GotABite
+ call ExitMenuCallScript
ld a, $81
ret
; d002
-Functiond002: ; d002
+.FishNoBite: ; d002
ld a, $2
ld [wd1ef], a
- ld hl, UnknownScript_0xd01e
- call Function31cd
+ ld hl, Script_NotEvenANibble
+ call ExitMenuCallScript
ld a, $81
ret
; d010
-Functiond010: ; d010
+.FailFish: ; d010
ld a, $0
ld [wd1ef], a
- ld hl, UnknownScript_0xd027
- call Function31cd
+ ld hl, Script_NotEvenANibble2
+ call ExitMenuCallScript
ld a, $81
ret
; d01e
-UnknownScript_0xd01e: ; 0xd01e
- scall UnknownScript_0xd07c
+Script_NotEvenANibble: ; 0xd01e
+ scall Script_FishCastRod
writetext UnknownText_0xd0a9
- jump UnknownScript_0xd02d
+ jump Script_NotEvenANibble_FallThrough
; 0xd027
-UnknownScript_0xd027: ; 0xd027
- scall UnknownScript_0xd07c
+Script_NotEvenANibble2: ; 0xd027
+ scall Script_FishCastRod
writetext UnknownText_0xd0a9
-UnknownScript_0xd02d: ; 0xd02d
+Script_NotEvenANibble_FallThrough: ; 0xd02d
loademote $8
- callasm Functiond095
+ callasm PutTheRodAway
loadmovesprites
end
; 0xd035
-UnknownScript_0xd035: ; 0xd035
- scall UnknownScript_0xd07c
- callasm Functiond06c
- iffalse UnknownScript_0xd046
+Script_GotABite: ; 0xd035
+ scall Script_FishCastRod
+ callasm Fishing_CheckFacingUp
+ iffalse .FacingUp
applymovement $0, MovementData_0xd062
- jump UnknownScript_0xd04a
+ jump .FightTheHookedPokemon
; 0xd046
-UnknownScript_0xd046: ; 0xd046
+.FacingUp: ; 0xd046
applymovement $0, MovementData_0xd05c
-UnknownScript_0xd04a: ; 0xd04a
+.FightTheHookedPokemon: ; 0xd04a
pause 40
applymovement $0, MovementData_0xd069
writetext UnknownText_0xd0a4
- callasm Functiond095
+ callasm PutTheRodAway
loadmovesprites
battlecheck
startbattle
@@ -6372,19 +6284,19 @@ UnknownScript_0xd04a: ; 0xd04a
; 0xd05c
MovementData_0xd05c: ; d05c
- db $51
- db $51
- db $51
- db $51
+ fish_got_bite
+ fish_got_bite
+ fish_got_bite
+ fish_got_bite
show_emote
step_end
; d062
MovementData_0xd062: ; d062
- db $51
- db $51
- db $51
- db $51
+ fish_got_bite
+ fish_got_bite
+ fish_got_bite
+ fish_got_bite
show_person
show_emote
step_end
@@ -6392,24 +6304,24 @@ MovementData_0xd062: ; d062
MovementData_0xd069: ; d069
hide_emote
- db $52
+ fish_got_bite_2
step_end
; d06c
-Functiond06c: ; d06c
+Fishing_CheckFacingUp: ; d06c
ld a, [PlayerDirection]
and $c
cp $4
ld a, $1
- jr z, .asm_d078
+ jr z, .up
xor a
-.asm_d078
+.up
ld [ScriptVar], a
ret
; d07c
-UnknownScript_0xd07c: ; 0xd07c
+Script_FishCastRod: ; 0xd07c
reloadmappart
loadvar $ffd4, $0
special UpdateTimePals
@@ -6426,13 +6338,13 @@ MovementData_0xd093: ; d093
step_end
; d095
-Functiond095: ; d095
+PutTheRodAway: ; d095
xor a
ld [hBGMapMode], a
ld a, $1
ld [PlayerAction], a
- call Function1ad2
- call Functione4a
+ call DrawOnMap
+ call Special_ReplaceKrisSprite
ret
; d0a4
@@ -6454,28 +6366,28 @@ UnknownText_0xd0ae: ; 0xd0ae
db "@"
; 0xd0b3
-Functiond0b3: ; d0b3
- call Functiond0bc
+BikeFunction: ; d0b3
+ call .TryBike
and $7f
ld [wd0ec], a
ret
; d0bc
-Functiond0bc: ; d0bc
- call Functiond121
- jr c, .asm_d110
+.TryBike: ; d0bc
+ call .CheckEnvironment
+ jr c, .CannotUseBike
ld a, [PlayerState]
cp PLAYER_NORMAL
- jr z, .asm_d0ce
+ jr z, .GetOnBike
cp PLAYER_BIKE
- jr z, .asm_d0f7
- jr .asm_d110
+ jr z, .GetOffBike
+ jr .CannotUseBike
-.asm_d0ce
- ld hl, UnknownScript_0xd13e
- ld de, UnknownScript_0xd14e
- call Functiond119
- call Function31cd
+.GetOnBike
+ ld hl, Script_GetOnBike
+ ld de, Script_GetOnBike_Register
+ call .CheckIfRegistered
+ call ExitMenuCallScript
xor a
ld [MusicFade], a
ld de, MUSIC_NONE
@@ -6489,31 +6401,31 @@ Functiond0bc: ; d0bc
ld a, $1
ret
-.asm_d0f7
+.GetOffBike
ld hl, BikeFlags
bit 1, [hl]
- jr nz, .asm_d10b
- ld hl, UnknownScript_0xd158
- ld de, UnknownScript_0xd16b
- call Functiond119
+ jr nz, .CantGetOffBike
+ ld hl, Script_GetOffBike
+ ld de, Script_GetOffBike_Register
+ call .CheckIfRegistered
ld a, $3
- jr .asm_d113
+ jr .done
-.asm_d10b
+.CantGetOffBike
ld hl, UnknownScript_0xd171
- jr .asm_d113
+ jr .done
-.asm_d110
+.CannotUseBike
ld a, $0
ret
-.asm_d113
- call Function31cd
+.done
+ call ExitMenuCallScript
ld a, $1
ret
; d119
-Functiond119: ; d119
+.CheckIfRegistered: ; d119
ld a, [wd0ef]
and a
ret z
@@ -6522,43 +6434,43 @@ Functiond119: ; d119
ret
; d121
-Functiond121: ; d121
+.CheckEnvironment: ; d121
call GetMapPermission
call CheckOutdoorMap
- jr z, .asm_d133
+ jr z, .ok
cp CAVE
- jr z, .asm_d133
+ jr z, .ok
cp GATE
- jr z, .asm_d133
- jr .asm_d13c
+ jr z, .ok
+ jr .nope
-.asm_d133
+.ok
call Function184a
and $f
- jr nz, .asm_d13c
+ jr nz, .nope
xor a
ret
-.asm_d13c
+.nope
scf
ret
; d13e
-UnknownScript_0xd13e: ; 0xd13e
+Script_GetOnBike: ; 0xd13e
reloadmappart
special UpdateTimePals
writecode VAR_MOVEMENT, $1
writetext UnknownText_0xd17c
closetext
loadmovesprites
- special Functione4a
+ special Special_ReplaceKrisSprite
end
; 0xd14e
-UnknownScript_0xd14e: ; 0xd14e
+Script_GetOnBike_Register: ; 0xd14e
writecode VAR_MOVEMENT, $1
loadmovesprites
- special Functione4a
+ special Special_ReplaceKrisSprite
end
; 0xd156
@@ -6566,7 +6478,7 @@ Functiond156: ; unreferenced
nop
ret
-UnknownScript_0xd158: ; 0xd158
+Script_GetOffBike: ; 0xd158
reloadmappart
special UpdateTimePals
writecode VAR_MOVEMENT, $0
@@ -6575,12 +6487,12 @@ UnknownScript_0xd158: ; 0xd158
UnknownScript_0xd163:
loadmovesprites
- special Functione4a
+ special Special_ReplaceKrisSprite
special PlayMapMusic
end
; 0xd16b
-UnknownScript_0xd16b: ; 0xd16b
+Script_GetOffBike_Register: ; 0xd16b
writecode VAR_MOVEMENT, $0
jump UnknownScript_0xd163
; 0xd171
@@ -6639,17 +6551,17 @@ AskCutScript: ; 0xd1a9
writetext UnknownText_0xd1c8
yesorno
iffalse .script_d1b8
- callasm Functiond1ba
- iftrue UnknownScript_0xc802
+ callasm .CheckMap
+ iftrue Script_Cut
.script_d1b8
loadmovesprites
end
; 0xd1ba
-Functiond1ba: ; d1ba
+.CheckMap: ; d1ba
xor a
ld [ScriptVar], a
- call Functionc7ce
+ call CheckMapForSomethingToCut
ret c
ld a, 1
ld [ScriptVar], a
@@ -6672,65 +6584,65 @@ UnknownText_0xd1d0: ; 0xd1d0
_ReceiveItem:: ; d1d5
- call Functiond27b
- jp nz, Functiond29c
+ call CheckHLequTMsHMsEnd
+ jp nz, PutItemInPocket
push hl
call CheckItemPocket
pop de
ld a, [wd142]
dec a
- ld hl, Tabled1e9
+ ld hl, .Pockets
rst JumpTable
ret
; d1e9
-Tabled1e9: ; d1e9
- dw Functiond1f1
- dw Functiond1f6
- dw Functiond1fb
- dw Functiond201
+.Pockets: ; d1e9
+ dw .Item
+ dw .KeyItem
+ dw .Ball
+ dw .TMHM
; d1f1
-Functiond1f1: ; d1f1
+.Item: ; d1f1
ld h, d
ld l, e
- jp Functiond29c
+ jp PutItemInPocket
; d1f6
-Functiond1f6: ; d1f6
+.KeyItem: ; d1f6
ld h, d
ld l, e
- jp Functiond35a
+ jp ReceiveKeyItem
; d1fb
-Functiond1fb: ; d1fb
+.Ball: ; d1fb
ld hl, NumBalls
- jp Functiond29c
+ jp PutItemInPocket
; d201
-Functiond201: ; d201
+.TMHM: ; d201
ld h, d
ld l, e
ld a, [CurItem]
ld c, a
call GetTMHMNumber
- jp Functiond3c4
+ jp ReceiveTMHM
; d20d
_TossItem:: ; d20d
- call Functiond27b
+ call CheckHLequTMsHMsEnd
jr nz, .asm_d241
push hl
call CheckItemPocket
pop de
ld a, [wd142]
dec a
- ld hl, .data_d220
+ ld hl, .Pockets
rst JumpTable
ret
-.data_d220
+.Pockets
dw .Item
dw .KeyItem
dw .Ball
@@ -6739,7 +6651,7 @@ _TossItem:: ; d20d
.Ball ; d228
ld hl, NumBalls
- jp Functiond2ff
+ jp RemoveItemFromPocket
; d22e
.TMHM ; d22e
@@ -6748,13 +6660,13 @@ _TossItem:: ; d20d
ld a, [CurItem]
ld c, a
call GetTMHMNumber
- jp Functiond3d8
+ jp TossTMHM
; d23a
.KeyItem ; d23a
ld h, d
ld l, e
- jp Functiond374
+ jp TossKeyItem
; d23f
.Item ; d23f
@@ -6763,22 +6675,22 @@ _TossItem:: ; d20d
; d241
.asm_d241
- jp Functiond2ff
+ jp RemoveItemFromPocket
; d244
_CheckItem:: ; d244
- call Functiond27b
+ call CheckHLequTMsHMsEnd
jr nz, .asm_d278
push hl
call CheckItemPocket
pop de
ld a, [wd142]
dec a
- ld hl, .data_d257
+ ld hl, .Pockets
rst JumpTable
ret
-.data_d257
+.Pockets
dw .Item
dw .KeyItem
dw .Ball
@@ -6787,7 +6699,7 @@ _CheckItem:: ; d244
.Ball ; d25f
ld hl, NumBalls
- jp Functiond349
+ jp CheckTheItem
; d265
.TMHM ; d265
@@ -6796,13 +6708,13 @@ _CheckItem:: ; d244
ld a, [CurItem]
ld c, a
call GetTMHMNumber
- jp Functiond3fb
+ jp CheckTMHM
; d271
.KeyItem ; d271
ld h, d
ld l, e
- jp Functiond3b1
+ jp CheckKeyItems
; d276
.Item ; d276
@@ -6811,10 +6723,10 @@ _CheckItem:: ; d244
; d278
.asm_d278
- jp Functiond349
+ jp CheckTheItem
; d27b
-Functiond27b: ; d27b
+CheckHLequTMsHMsEnd: ; d27b
ld a, l
cp TMsHMsEnd % $100
ret nz
@@ -6846,234 +6758,236 @@ GetPocketCapacity: ; d283
ret
; d29c
-Functiond29c: ; d29c
+PutItemInPocket: ; d29c
ld d, h
ld e, l
inc hl
ld a, [CurItem]
ld c, a
ld b, 0
-.asm_d2a5
+.loop
ld a, [hli]
- cp $ff
- jr z, .asm_d2bd
+ cp -1
+ jr z, .terminator
cp c
- jr nz, .asm_d2ba
- ld a, $63
+ jr nz, .next
+ ld a, 99
sub [hl]
add b
ld b, a
ld a, [wd10c]
cp b
- jr z, .asm_d2c6
- jr c, .asm_d2c6
+ jr z, .ok
+ jr c, .ok
-.asm_d2ba
+.next
inc hl
- jr .asm_d2a5
+ jr .loop
-.asm_d2bd
+.terminator
call GetPocketCapacity
ld a, [de]
cp c
- jr c, .asm_d2c6
+ jr c, .ok
and a
ret
-.asm_d2c6
+.ok
ld h, d
ld l, e
ld a, [CurItem]
ld c, a
ld a, [wd10c]
ld [wd10d], a
-.asm_d2d2
+.loop2
inc hl
ld a, [hli]
- cp $ff
- jr z, .asm_d2ef
+ cp -1
+ jr z, .terminator2
cp c
- jr nz, .asm_d2d2
+ jr nz, .loop2
ld a, [wd10d]
add [hl]
- cp $64
- jr nc, .asm_d2e6
+ cp 100
+ jr nc, .newstack
ld [hl], a
- jr .asm_d2fd
+ jr .done
-.asm_d2e6
- ld [hl], $63
- sub $63
+.newstack
+ ld [hl], 99
+ sub 99
ld [wd10d], a
- jr .asm_d2d2
+ jr .loop2
-.asm_d2ef
+.terminator2
dec hl
ld a, [CurItem]
ld [hli], a
ld a, [wd10d]
ld [hli], a
- ld [hl], $ff
+ ld [hl], -1
ld h, d
ld l, e
inc [hl]
-.asm_d2fd
+.done
scf
ret
; d2ff
-Functiond2ff: ; d2ff
+RemoveItemFromPocket: ; d2ff
ld d, h
ld e, l
ld a, [hli]
ld c, a
ld a, [wd107]
cp c
- jr nc, .asm_d318
+ jr nc, .ok
ld c, a
ld b, $0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [CurItem]
cp [hl]
inc hl
- jr z, .asm_d327
+ jr z, .skip
ld h, d
ld l, e
inc hl
-.asm_d318
+.ok
ld a, [CurItem]
ld b, a
-.asm_d31c
+.loop
ld a, [hli]
cp b
- jr z, .asm_d327
- cp $ff
- jr z, .asm_d347
+ jr z, .skip
+ cp -1
+ jr z, .nope
inc hl
- jr .asm_d31c
+ jr .loop
-.asm_d327
+.skip
ld a, [wd10c]
ld b, a
ld a, [hl]
sub b
- jr c, .asm_d347
+ jr c, .nope
ld [hl], a
ld [wd10d], a
and a
- jr nz, .asm_d345
+ jr nz, .yup
dec hl
ld b, h
ld c, l
+rept 2
inc hl
- inc hl
-.asm_d33b
+endr
+.loop2
ld a, [hli]
ld [bc], a
inc bc
- cp $ff
- jr nz, .asm_d33b
+ cp -1
+ jr nz, .loop2
ld h, d
ld l, e
dec [hl]
-.asm_d345
+.yup
scf
ret
-.asm_d347
+.nope
and a
ret
; d349
-Functiond349: ; d349
+CheckTheItem: ; d349
ld a, [CurItem]
ld c, a
-.asm_d34d
+.loop
inc hl
ld a, [hli]
- cp $ff
- jr z, .asm_d358
+ cp -1
+ jr z, .done
cp c
- jr nz, .asm_d34d
+ jr nz, .loop
scf
ret
-.asm_d358
+.done
and a
ret
; d35a
-Functiond35a: ; d35a
+ReceiveKeyItem: ; d35a
ld hl, NumKeyItems
ld a, [hli]
- cp $19
- jr nc, .asm_d372
+ cp MAX_KEY_ITEMS
+ jr nc, .nope
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [CurItem]
ld [hli], a
- ld [hl], $ff
+ ld [hl], -1
ld hl, NumKeyItems
inc [hl]
scf
ret
-.asm_d372
+.nope
and a
ret
; d374
-Functiond374: ; d374
+TossKeyItem: ; d374
ld a, [wd107]
ld e, a
- ld d, $0
+ ld d, 0
ld hl, NumKeyItems
ld a, [hl]
cp e
- jr nc, .asm_d387
- call Functiond396
+ jr nc, .ok
+ call .Toss
ret nc
- jr .asm_d38a
+ jr .ok2
-.asm_d387
+.ok
dec [hl]
inc hl
add hl, de
-.asm_d38a
+.ok2
ld d, h
ld e, l
inc hl
-.asm_d38d
+.loop
ld a, [hli]
ld [de], a
inc de
- cp $ff
- jr nz, .asm_d38d
+ cp -1
+ jr nz, .loop
scf
ret
; d396
-Functiond396: ; d396
+.Toss: ; d396
ld hl, NumKeyItems
ld a, [CurItem]
ld c, a
-.asm_d39d
+.loop3
inc hl
ld a, [hl]
cp c
- jr z, .asm_d3a8
- cp $ff
- jr nz, .asm_d39d
+ jr z, .ok3
+ cp -1
+ jr nz, .loop3
xor a
ret
-.asm_d3a8
+.ok3
ld a, [NumKeyItems]
dec a
ld [NumKeyItems], a
@@ -7081,73 +6995,73 @@ Functiond396: ; d396
ret
; d3b1
-Functiond3b1: ; d3b1
+CheckKeyItems: ; d3b1
ld a, [CurItem]
ld c, a
ld hl, KeyItems
-.asm_d3b8
+.loop
ld a, [hli]
cp c
- jr z, .asm_d3c2
- cp $ff
- jr nz, .asm_d3b8
+ jr z, .done
+ cp -1
+ jr nz, .loop
and a
ret
-.asm_d3c2
+.done
scf
ret
; d3c4
-Functiond3c4: ; d3c4
+ReceiveTMHM: ; d3c4
dec c
- ld b, $0
+ ld b, 0
ld hl, TMsHMs
add hl, bc
ld a, [wd10c]
add [hl]
- cp $64
- jr nc, .asm_d3d6
+ cp 100
+ jr nc, .toomany
ld [hl], a
scf
ret
-.asm_d3d6
+.toomany
and a
ret
; d3d8
-Functiond3d8: ; d3d8
+TossTMHM: ; d3d8
dec c
- ld b, $0
+ ld b, 0
ld hl, TMsHMs
add hl, bc
ld a, [wd10c]
ld b, a
ld a, [hl]
sub b
- jr c, .asm_d3f9
+ jr c, .nope
ld [hl], a
ld [wd10d], a
- jr nz, .asm_d3f7
+ jr nz, .yup
ld a, [wd0e2]
and a
- jr z, .asm_d3f7
+ jr z, .yup
dec a
ld [wd0e2], a
-.asm_d3f7
+.yup
scf
ret
-.asm_d3f9
+.nope
and a
ret
; d3fb
-Functiond3fb: ; d3fb
+CheckTMHM: ; d3fb
dec c
ld b, $0
ld hl, TMsHMs
@@ -7186,7 +7100,7 @@ GetTMHMNumber:: ; d407
GetNumberedTMHM: ; d417
; Return the item id of a TM/HM by number c.
- ld a, c
+ ld a, c
; Skip any gaps.
cp ITEM_C3 - (TM01 - 1)
@@ -7208,7 +7122,7 @@ GetNumberedTMHM: ; d417
_CheckTossableItem:: ; d427
; Return 1 in wd142 and carry if CurItem can't be removed from the bag.
- ld a, 4
+ ld a, ITEMATTR_PERMISSIONS
call GetItemAttr
bit 7, a
jr nz, Functiond47f
@@ -7218,7 +7132,7 @@ _CheckTossableItem:: ; d427
CheckSelectableItem: ; d432
; Return 1 in wd142 and carry if CurItem can't be selected.
- ld a, 4
+ ld a, ITEMATTR_PERMISSIONS
call GetItemAttr
bit 6, a
jr nz, Functiond47f
@@ -7228,7 +7142,7 @@ CheckSelectableItem: ; d432
CheckItemPocket:: ; d43d
; Return the pocket for CurItem in wd142.
- ld a, 5
+ ld a, ITEMATTR_POCKET
call GetItemAttr
and $f
ld [wd142], a
@@ -7237,7 +7151,7 @@ CheckItemPocket:: ; d43d
CheckItemContext: ; d448
; Return the context for CurItem in wd142.
- ld a, 6
+ ld a, ITEMATTR_HELP
call GetItemAttr
and $f
ld [wd142], a
@@ -7246,7 +7160,7 @@ CheckItemContext: ; d448
CheckItemMenu: ; d453
; Return the menu for CurItem in wd142.
- ld a, 6
+ ld a, ITEMATTR_HELP
call GetItemAttr
swap a
and $f
@@ -7271,7 +7185,7 @@ GetItemAttr: ; d460
ld a, [CurItem]
dec a
ld c, a
- ld a, 7
+ ld a, NUM_ITEMATTRS
call AddNTimes
ld a, BANK(ItemAttributes)
call GetFarByte
@@ -7293,10 +7207,10 @@ GetItemPrice: ; d486
; Return the price of CurItem in de.
push hl
push bc
- ld a, $0
+ ld a, ITEMATTR_PRICE
call GetItemAttr
ld e, a
- ld a, $1
+ ld a, ITEMATTR_PRICE_HI
call GetItemAttr
ld d, a
pop bc
@@ -7364,7 +7278,7 @@ Functiond4e5: ; d4e5 (3:54e5)
Jumptable_d4f2: ; d4f2 (3:54f2)
dw Function2914
- dw Function2879
+ dw BufferScreen
dw Functiond509
dw Functiond510
dw Functiond508
@@ -7833,9 +7747,10 @@ Functiond784: ; d784
.asm_d795
push hl
add hl, de
- ld a, $7f
- ld [hli], a
+ ld a, " "
+rept 2
ld [hli], a
+endr
ld [hld], a
dec hl
ld a, [wd1ec]
@@ -8118,10 +8033,9 @@ Functiond906: ; d906
.asm_d950
pop de
+rept 4
inc de
- inc de
- inc de
- inc de
+endr
ld a, [PlayerID]
ld [de], a
inc de
@@ -8188,15 +8102,15 @@ Functiond906: ; d906
inc de
push hl
push de
+rept 2
inc hl
- inc hl
+endr
call FillPP
pop de
pop hl
+rept 4
inc de
- inc de
- inc de
- inc de
+endr
ld a, $46
ld [de], a
inc de
@@ -8610,8 +8524,9 @@ Functiondb3f: ; db3f
ld a, [CurPartySpecies]
cp EGG
jr z, .asm_dc9e
+rept 2
inc hl
- inc hl
+endr
ld a, [hli]
ld [de], a
ld a, [hl]
@@ -9359,8 +9274,9 @@ Functione17b: ; e17b
ld a, c
cp $6
jr nz, .asm_e193
+rept 2
dec hl
- dec hl
+endr
.asm_e193
sla c
@@ -9397,14 +9313,15 @@ Functione17b: ; e17b
ld a, [hl]
swap a
and $1
+rept 3
add a
- add a
- add a
+endr
ld b, a
ld a, [hli]
and $1
+rept 2
add a
- add a
+endr
add b
ld b, a
ld a, [hl]
@@ -9529,7 +9446,7 @@ Functione17b: ; e17b
ret
; e277
-Functione277:: ; e277
+GivePoke:: ; e277
push de
push bc
xor a
@@ -9606,8 +9523,9 @@ Functione277:: ; e277
ld a, [ScriptBank]
call FarCopyBytes
pop hl
+rept 2
inc hl
- inc hl
+endr
ld a, [ScriptBank]
call GetFarHalfword
pop bc
@@ -9751,7 +9669,7 @@ Functione40a: ; e40a (3:640a)
and a
ret nz
ld hl, UnknownText_0xe417
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
; e417 (3:6417)
@@ -9810,7 +9728,7 @@ Functione443: ; e443 (3:6443)
ld a, b
jr nc, .asm_e44b
.asm_e46b
- call Function1c17
+ call WriteBackup
ret
; e46f (3:646f)
@@ -9876,7 +9794,7 @@ Functione4cd: ; e4cd
call ClearPCItemScreen
.asm_e4f4
- call Function1c17
+ call WriteBackup
and a
ret
; e4f9
@@ -9892,7 +9810,7 @@ Functione4fe: ; e4fe (3:64fe)
callba Functione2391
call Function222a
call ClearPCItemScreen
- call Function1c17
+ call WriteBackup
and a
ret
; e512 (3:6512)
@@ -9908,13 +9826,13 @@ Functione512: ; e512
.asm_e51e
ld hl, UnknownText_0xe52e
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
.asm_e526
ld hl, UnknownText_0xe533
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
; e52e
@@ -9968,7 +9886,7 @@ Functione559: ; e559 (3:6559)
callba Functione2583
call Function222a
call ClearPCItemScreen
- call Function1c17
+ call WriteBackup
and a
ret
; e56d (3:656d)
@@ -9982,7 +9900,7 @@ Functione56d: ; e56d
.asm_e576
ld hl, UnknownText_0xe57e
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
; e57e
@@ -10004,8 +9922,8 @@ ClearPCItemScreen: ; e58b
ld [hBGMapMode], a
call WhiteBGMap
call ClearSprites
- ld hl, TileMap
- ld bc, 18 * 20
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, " "
call ByteFill
hlcoord 0,0
@@ -10458,26 +10376,23 @@ Function11452:: ; 11452
call Function11420
ret nc
xor a
- ld hl, wdc1e
- ld [hli], a
- ld [hli], a
+ ld hl, DailyFlags
+rept 3
ld [hli], a
+endr
ld [hl], a
ld hl, wdc4c
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld hl, wdc50
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld hl, wdc54
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld hl, wdc58
ld a, [hl]
and a
@@ -10587,14 +10502,14 @@ Function1150c: ; 1150c
; 1151c
Function1151c: ; 1151c
- ld hl, wdc1e
+ ld hl, DailyFlags
set 2, [hl]
ret
; 11522
Function11522: ; 11522
and a
- ld hl, wdc1e
+ ld hl, DailyFlags
bit 2, [hl]
ret nz
scf
@@ -10732,16 +10647,17 @@ Function115d2: ; 115d2
; 115d6
Function115d6: ; 115d6
+rept 2
inc hl
- inc hl
+endr
xor a
jr Function115eb
; 115db
Function115db: ; 115db
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld a, [hSeconds]
ld c, a
sub [hl]
@@ -10936,7 +10852,7 @@ TMHMMoves: ; 1167a
db 0 ; end
; 116b7
-Function116b7: ; 0x116b7
+_NamingScreen: ; 0x116b7
call Function2ed3
call Function116c1
call Function2b74
@@ -11000,8 +10916,9 @@ Function1171d: ; 1171d
ld e, a
ld d, 0
ld hl, Jumptable_1172e
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -11209,8 +11126,8 @@ Function1189c: ; 1189c
Function118a8: ; 118a8
call WaitTop
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $60
call ByteFill
hlcoord 1, 1
@@ -11321,8 +11238,9 @@ Function11968: ; 11968
ld e, a
ld d, $0
ld hl, Jumptable_11977
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -11570,8 +11488,9 @@ Function11a8b: ; 11a8b (4:5a8b)
jr nz, .asm_11ade
ld a, $4
.asm_11ade
+rept 2
dec a
- dec a
+endr
ld e, a
add a
add e
@@ -11782,7 +11701,7 @@ Function11c11: ; 11c11 (4:5c11)
srl a
srl a
ld d, a
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $14
.asm_11c43
ld a, d
@@ -11974,13 +11893,13 @@ String_11f7a: ; 11f7a
Function11f84: ; 11f84 (4:5f84)
call WaitTop
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $78
ld a, $60
call ByteFill
hlcoord 0, 6
ld bc, $f0
- ld a, $7f
+ ld a, " "
call ByteFill
hlcoord 1, 1
ld bc, $412
@@ -11989,21 +11908,21 @@ Function11f84: ; 11f84 (4:5f84)
Function11fa9: ; 11fa9 (4:5fa9)
hlcoord 1, 7
- ld b, $6
-.asm_11fae
- ld c, $13
-.asm_11fb0
+ ld b, 6
+.next
+ ld c, SCREEN_WIDTH - 1
+.loop
ld a, [de]
ld [hli], a
inc de
dec c
- jr nz, .asm_11fb0
+ jr nz, .loop
push de
- ld de, $15
+ ld de, 21
add hl, de
pop de
dec b
- jr nz, .asm_11fae
+ jr nz, .next
ret
Function11fc0: ; 11fc0 (4:5fc0)
@@ -12047,8 +11966,9 @@ Function12008: ; 12008 (4:6008)
ld e, a
ld d, 0
ld hl, Jumptable_12017
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -12262,8 +12182,9 @@ Function1210c: ; 1210c (4:610c)
jr nz, .asm_1215f
ld a, $4
.asm_1215f
+rept 2
dec a
- dec a
+endr
ld e, a
add a
add e
@@ -12338,8 +12259,9 @@ Function121b2: ; 121b2
jr nz, .asm_121c3
push hl
ld hl, wc6d2
+rept 2
dec [hl]
- dec [hl]
+endr
jr .asm_121c8
.asm_121c3
@@ -12386,15 +12308,15 @@ String_1224f: ; 1224f
UnknownScript_0x122c1: ; 0x122c1
checkflag ENGINE_BUG_CONTEST_TIMER
iffalse .script_122cd
- setflag ENGINE_51
- special Function13a31
+ setflag ENGINE_DAILY_BUG_CONTEST
+ special ContestReturnMons
.script_122cd
end
; 0x122ce
-UnknownScript_0x122ce:: ; 0x122ce
+FindItemInBallScript:: ; 0x122ce
callasm Function122f8
- iffalse UnknownScript_0x122e3
+ iffalse NoRoomForItemInBallScript
disappear $fe
loadfont
writetext UnknownText_0x122ee
@@ -12405,7 +12327,7 @@ UnknownScript_0x122ce:: ; 0x122ce
end
; 0x122e3
-UnknownScript_0x122e3: ; 0x122e3
+NoRoomForItemInBallScript: ; 0x122e3
loadfont
writetext UnknownText_0x122ee
closetext
@@ -12448,9 +12370,14 @@ Function122f8: ; 122f8
; 12324
HealMachineAnim: ; 12324
+ ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
ld a, [PartyCount]
and a
ret z
+ ; The location of the healing machine relative to the player is stored in ScriptVar.
+ ; 0: Up and left (Pokemon Center)
+ ; 1: Left (Elm's Lab)
+ ; 2: Up (Hall of Fame)
ld a, [ScriptVar]
ld [Buffer1], a
ld a, [rOBP1]
@@ -12469,8 +12396,9 @@ Function1233e: ; 1233e
ld e, a
ld d, 0
ld hl, Unknown_12365
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -12661,9 +12589,9 @@ Function12469: ; 12469
ld [hld], a
ld a, e
ld [hli], a
+rept 3
inc hl
- inc hl
- inc hl
+endr
dec c
jr nz, .asm_12486
pop de
@@ -12718,7 +12646,7 @@ UnknownScript_0x124c8:: ; 0x124c8
UnknownScript_0x124ce: ; 0x124ce
writetext UnknownText_0x124f5
closetext
- special Function8c084
+ special FadeBlackBGMap
pause 40
special HealParty
checkflag ENGINE_BUG_CONTEST_TIMER
@@ -12726,7 +12654,7 @@ UnknownScript_0x124ce: ; 0x124ce
callasm HalveMoney
callasm Function12527
farscall UnknownScript_0x122c1
- special Function97c28
+ special WarpToSpawnPoint
newloadmap $f1
resetfuncs
@@ -12783,20 +12711,20 @@ Function12527: ; 12527
ld e, a
callba IsSpawnPoint
ld a, c
- jr c, .asm_12539
+ jr c, .yes
xor a
-.asm_12539
+.yes
ld [wd001], a
ret
; 1253d
-UnknownScript_0x1253d:: ; 0x1253d
+Script_ForcedMovement:: ; 0x1253d
checkcode VAR_FACING
- if_equal $0, UnknownScript_0x12555
- if_equal $1, UnknownScript_0x12550
- if_equal $2, UnknownScript_0x1255f
- if_equal $3, UnknownScript_0x1255a
+ if_equal DOWN, UnknownScript_0x12555
+ if_equal UP, UnknownScript_0x12550
+ if_equal LEFT, UnknownScript_0x1255f
+ if_equal RIGHT, UnknownScript_0x1255a
end
; 0x12550
@@ -12861,8 +12789,8 @@ MovementData_0x12579: ; 0x12579
; 0x12580
-Function12580: ; 12580
- callba Functionb8172
+ItemFinder: ; 12580
+ callba CheckForSignpostItems
jr c, .asm_1258d
ld hl, UnknownScript_0x125ba
jr .asm_12590
@@ -12871,7 +12799,7 @@ Function12580: ; 12580
ld hl, UnknownScript_0x125ad
.asm_12590
- call Function31cd
+ call ExitMenuCallScript
ld a, $1
ld [wd0ec], a
ret
@@ -12952,7 +12880,7 @@ StartMenu:: ; 125cd
jr .Select
.Reopen
- call Function1ad2
+ call DrawOnMap
call UpdateTimePals
call .SetUpMenuItems
ld a, [wd0d2]
@@ -12973,13 +12901,14 @@ StartMenu:: ; 125cd
ld hl, .MenuReturns
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
-
+
.MenuReturns
dw .Reopen
dw .Exit
@@ -12998,7 +12927,7 @@ StartMenu:: ; 125cd
pop af
ld [hOAMUpdate], a
.ReturnEnd
- call Function1c07
+ call ExitMenu
.ReturnEnd2
call Function2dcf
call UpdateTimePals
@@ -13031,21 +12960,21 @@ StartMenu:: ; 125cd
; 12691
.ReturnFour ; 12691
- call Function1c07
+ call ExitMenu
ld a, $80
ld [$ffa0], a
ret
; 12699
.ReturnThree ; 12699
- call Function1c07
+ call ExitMenu
ld a, $80
ld [$ffa0], a
jr .ReturnEnd2
; 126a2
.ReturnTwo ; 126a2
- call Function1c07
+ call ExitMenu
ld hl, wd0e9
ld a, [hli]
ld h, [hl]
@@ -13067,7 +12996,7 @@ StartMenu:: ; 125cd
call .DrawMenuAccount_
call MenuFunc_1e7f
call .DrawBugContestStatus
- call Function1ad2
+ call DrawOnMap
call Functiond90
call Function2b5c
ret
@@ -13157,8 +13086,9 @@ StartMenu:: ; 125cd
push de
ld a, [MenuSelection]
call .GetMenuAccountTextPointer
+rept 2
inc hl
- inc hl
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -13171,12 +13101,11 @@ StartMenu:: ; 125cd
push de
ld a, [MenuSelection]
cp $ff
- jr z, .none
+ jr z, .none
call .GetMenuAccountTextPointer
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -13196,12 +13125,9 @@ StartMenu:: ; 125cd
ld a, [hli]
ld h, [hl]
ld l, a
+rept 6
add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
+endr
ret
; 12829
@@ -13349,8 +13275,8 @@ StartMenu_Quit: ; 128f0
ld hl, .EndTheContestText
call Function12cf5
jr c, .asm_12903
- ld a, BANK(UnknownScript_0x1360b)
- ld hl, UnknownScript_0x1360b
+ ld a, BANK(BugCatchingContestReturnToGateScript)
+ ld hl, BugCatchingContestReturnToGateScript
call Function31cf
ld a, 4
ret
@@ -13367,7 +13293,7 @@ StartMenu_Quit: ; 128f0
StartMenu_Save: ; 1290b
; Save the game.
- call Function2879
+ call BufferScreen
callba Function14a1a
jr nc, .asm_12919
ld a, 0
@@ -13503,7 +13429,7 @@ Function129d5: ; 129d5
and a
ret nz
ld hl, TMsHMs
- ld b, $39
+ ld b, NUM_TMS + NUM_HMS
.asm_129e9
ld a, [hli]
and a
@@ -13524,18 +13450,18 @@ Function129f4: ; 129f4
and a
jr nz, .asm_12a3f
ld hl, UnknownText_0x12a45
- call Function1d4f
+ call MenuTextBox
callba Function24fbf
push af
- call Function1c17
- call Function1c07
+ call WriteBackup
+ call ExitMenu
pop af
jr c, .asm_12a42
ld hl, UnknownText_0x12a4a
- call Function1d4f
+ call MenuTextBox
call YesNoBox
push af
- call Function1c07
+ call ExitMenu
pop af
jr c, .asm_12a42
pop hl
@@ -13543,8 +13469,8 @@ Function129f4: ; 129f4
call TossItem
call PartyMonItemName
ld hl, UnknownText_0x12a4f
- call Function1d4f
- call Function1c07
+ call MenuTextBox
+ call ExitMenu
and a
ret
.asm_12a3f
@@ -13575,7 +13501,7 @@ UnknownText_0x12a4f: ; 0x12a4f
Function12a54: ; 12a54 (4:6a54)
ld hl, UnknownText_0x12a5b
- call Function1d67
+ call MenuTextBoxBackup
ret
; 12a5b (4:6a5b)
@@ -13722,8 +13648,8 @@ GiveTakePartyMonItem: ; 12b60
ld hl, GiveTakeItemMenuData
call LoadMenuDataHeader
- call Function1d81
- call Function1c07
+ call InterpretMenu2
+ call ExitMenu
jr c, .asm_12ba6
call GetCurNick
@@ -13740,7 +13666,7 @@ GiveTakePartyMonItem: ; 12b60
call Function12ba9
call ClearPalettes
call Functione58
- call Function1c07
+ call ExitMenu
ld a, 0
ret
@@ -13780,7 +13706,7 @@ Function12ba9: ; 12ba9
.next
ld hl, CantBeHeldText
- call Function1d67
+ call MenuTextBoxBackup
jr .loop
.quit
@@ -13808,13 +13734,13 @@ Function12bd9: ; 12bd9
.asm_12bf4
call Function12cea
ld hl, MadeHoldText
- call Function1d67
+ call MenuTextBoxBackup
call GivePartyItem
ret
.asm_12c01
ld hl, PleaseRemoveMailText
- call Function1d67
+ call MenuTextBoxBackup
ret
.asm_12c08
@@ -13835,7 +13761,7 @@ Function12bd9: ; 12bd9
jr nc, .asm_12c3c
ld hl, TookAndMadeHoldText
- call Function1d67
+ call MenuTextBoxBackup
ld a, [wd265]
ld [CurItem], a
call GivePartyItem
@@ -13846,7 +13772,7 @@ Function12bd9: ; 12bd9
ld [CurItem], a
call Function12cdf
ld hl, ItemStorageIsFullText
- call Function1d67
+ call MenuTextBoxBackup
.asm_12c4b
ret
@@ -13887,17 +13813,17 @@ TakePartyItem: ; 12c60
ld [hl], NO_ITEM
call GetItemName
ld hl, TookFromText
- call Function1d67
+ call MenuTextBoxBackup
jr .asm_12c9a
.asm_12c8c
ld hl, IsntHoldingAnythingText
- call Function1d67
+ call MenuTextBoxBackup
jr .asm_12c9a
.asm_12c94
ld hl, ItemStorageIsFullText
- call Function1d67
+ call MenuTextBoxBackup
.asm_12c9a
ret
@@ -13984,9 +13910,9 @@ Function12cea: ; 12cea (4:6cea)
jp TossItem
Function12cf5: ; 12cf5
- call Function1d4f
+ call MenuTextBox
call YesNoBox
- jp Function1c07
+ jp ExitMenu
; 12cfe
@@ -14027,8 +13953,8 @@ Function12d45: ; 12d45
jr z, .asm_12d6d
ld hl, MenuDataHeader_0x12dc9
call LoadMenuDataHeader
- call Function1d81
- call Function1c07
+ call InterpretMenu2
+ call ExitMenu
jp c, .asm_12dc6
ld a, [wcfa9]
cp $1
@@ -14051,12 +13977,12 @@ Function12d45: ; 12d45
callba Function4456e
jr c, .asm_12d92
ld hl, UnknownText_0x12dfb
- call Function1d67
+ call MenuTextBoxBackup
jr .asm_12dc6
.asm_12d92
ld hl, UnknownText_0x12df6
- call Function1d67
+ call MenuTextBoxBackup
jr .asm_12dc6
.asm_12d9a
@@ -14072,12 +13998,12 @@ Function12d45: ; 12d45
ld [hl], $0
call GetCurNick
ld hl, UnknownText_0x12de7
- call Function1d67
+ call MenuTextBoxBackup
jr .asm_12dc6
.asm_12dbe
ld hl, UnknownText_0x12dec
- call Function1d67
+ call MenuTextBoxBackup
jr .asm_12dc6
.asm_12dc6
@@ -14150,7 +14076,7 @@ OpenPartyStats: ; 12e00
Function12e1b: ; 12e1b
- callba Functionc785
+ callba CutFunction
ld a, [wd0ec]
cp $1
jr nz, .asm_12e2d
@@ -14165,7 +14091,7 @@ Function12e1b: ; 12e1b
Function12e30: ; 12e30
- callba Functionca3b
+ callba FlyFunction
ld a, [wd0ec]
cp $2
jr z, .asm_12e4c
@@ -14204,7 +14130,7 @@ Function12e55: ; 12e55
; 12e6a
Function12e6a: ; 12e6a
- callba Functioncce5
+ callba StrengthFunction
ld a, [wd0ec]
cp $1
jr nz, .asm_12e7c
@@ -14218,7 +14144,7 @@ Function12e6a: ; 12e6a
; 12e7f
Function12e7f: ; 12e7f
- callba Functioncd9d
+ callba WhirlpoolFunction
ld a, [wd0ec]
cp $1
jr nz, .asm_12e91
@@ -14246,7 +14172,7 @@ Function12e94: ; 12e94
; 12ea9
Function12ea9: ; 12ea9
- callba Functioncc61
+ callba TeleportFunction
ld a, [wd0ec]
and a
jr z, .asm_12eba
@@ -14260,7 +14186,7 @@ Function12ea9: ; 12ea9
; 12ebd
Function12ebd: ; 12ebd
- callba Functionc909
+ callba SurfFunction
ld a, [wd0ec]
and a
jr z, .asm_12ece
@@ -14274,7 +14200,7 @@ Function12ebd: ; 12ebd
; 12ed1
Function12ed1: ; 12ed1
- callba Functioncb9c
+ callba DigFunction
ld a, [wd0ec]
cp $1
jr nz, .asm_12ee3
@@ -14332,7 +14258,7 @@ Function12f05: ; 12f05
; 12f26
Function12f26: ; 12f26
- callba Functionce7d
+ callba HeadbuttFunction
ld a, [wd0ec]
cp $1
jr nz, .asm_12f38
@@ -14346,7 +14272,7 @@ Function12f26: ; 12f26
; 12f3b
Function12f3b: ; 12f3b
- callba Functionceeb
+ callba RockSmashFunction
ld a, [wd0ec]
cp $1
jr nz, .asm_12f4d
@@ -14360,7 +14286,7 @@ Function12f3b: ; 12f3b
; 12f50
Function12f50: ; 12f50
- callba Function506bc
+ callba DoMovementFunctionc
ld b, $4
ld a, $2
ret
@@ -14889,8 +14815,8 @@ SelectMenu:: ; 13327
call Function2e08
ld b, BANK(ItemMayBeRegisteredText)
ld hl, ItemMayBeRegisteredText
- call Function269a
- call Functiona46
+ call MapTextbox
+ call CloseText
jp Function2dcf
; 13340
@@ -14926,8 +14852,9 @@ CheckRegisteredItem: ; 13345
inc hl
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
call .IsSameItem
jr c, .NoRegisteredItem
and a
@@ -14951,8 +14878,9 @@ CheckRegisteredItem: ; 13345
inc hl
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
call .IsSameItem
jr c, .NoRegisteredItem
ret
@@ -15070,7 +14998,7 @@ UseRegisteredItem: ; 133c3
; 1342d
-Function1342d:: ; 1342d
+Elevator:: ; 1342d
call Function1344a
call Function1347d
jr c, .asm_13448
@@ -15142,8 +15070,9 @@ Function1347d: ; 1347d
call GetFarByte
cp $ff
jr z, .asm_134be
+rept 2
inc hl
- inc hl
+endr
ld a, [EngineBuffer1]
call GetFarByte
inc hl
@@ -15193,17 +15122,17 @@ Function134c0: ; 134c0
Function134dd: ; 134dd
call Function1d6e
- ld hl, UnknownText_0x1350d
+ ld hl, Elevator_WhichFloorText
call PrintText
- call Function13512
- ld hl, MenuDataHeader_0x13550
- call Function1d3c
+ call Elevator_GetCurrentFloorText
+ ld hl, Elevator_MenuDataHeader
+ call CopyMenuDataHeader
call Function352f
- call Function1ad2
+ call DrawOnMap
xor a
ld [wd0e4], a
call Function350c
- call Function1c17
+ call WriteBackup
ld a, [wcf73]
cp $2
jr z, .asm_1350b
@@ -15216,38 +15145,38 @@ Function134dd: ; 134dd
ret
; 1350d
-UnknownText_0x1350d: ; 0x1350d
+Elevator_WhichFloorText: ; 0x1350d
; Which floor?
text_jump UnknownText_0x1bd2bc
db "@"
; 0x13512
-Function13512: ; 13512
+Elevator_GetCurrentFloorText: ; 13512
ld hl, Options
ld a, [hl]
push af
set 4, [hl]
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $4
ld c, $8
call TextBox
hlcoord 1, 2
- ld de, String_13537
+ ld de, Elevator_CurrentFloorText
call PlaceString
hlcoord 4, 4
- call Function1353f
+ call Elevator_GetCurrentFloorString
pop af
ld [Options], a
ret
; 13537
-String_13537: ; 13537
+Elevator_CurrentFloorText: ; 13537
db "Now on:@"
; 1353f
-Function1353f: ; 1353f
+Elevator_GetCurrentFloorString: ; 1353f
push hl
ld a, [wd041]
ld e, a
@@ -15256,47 +15185,48 @@ Function1353f: ; 1353f
add hl, de
ld a, [hl]
pop de
- call Function1356b
+ call GetFloorString
ret
; 13550
-MenuDataHeader_0x13550: ; 0x13550
+Elevator_MenuDataHeader: ; 0x13550
db $40 ; flags
db 01, 12 ; start coords
db 09, 18 ; end coords
- dw MenuData2_0x13558
+ dw Elevator_MenuData2
db 1 ; default option
; 0x13558
-MenuData2_0x13558: ; 0x13558
+Elevator_MenuData2: ; 0x13558
db $10 ; flags
db 4, 0 ; rows, columns
db 1 ; horizontal spacing
dbw 0, OBPals + 8 * 6
- dbw BANK(Function13568), Function13568
+ dbw BANK(GetElevatorFlorStrings), GetElevatorFlorStrings
dbw BANK(NULL), NULL
dbw BANK(NULL), NULL
; 13568
-Function13568: ; 13568
+GetElevatorFlorStrings: ; 13568
ld a, [MenuSelection]
-Function1356b: ; 1356b
+GetFloorString: ; 1356b
push de
- call Function13575
+ call FloorToString
ld d, h
ld e, l
pop hl
jp PlaceString
; 13575
-Function13575: ; 13575
+FloorToString: ; 13575
push de
ld e, a
ld d, 0
ld hl, .floors
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -15357,40 +15287,40 @@ Function13575: ; 13575
; 135db
-Function135db: ; 135db
+Special_GiveParkBalls: ; 135db
xor a
ld [wdf9c], a
- ld a, $14
+ ld a, 20
ld [wdc79], a
callba Function11490
ret
; 135eb
-UnknownScript_0x135eb:: ; 0x135eb
+BugCatchingContestBattleScript:: ; 0x135eb
writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
battlecheck
startbattle
returnafterbattle
copybytetovar wdc79
- iffalse UnknownScript_0x13603
+ iffalse BugCatchingContestOutOfBallsScript
end
; 0x135f8
-UnknownScript_0x135f8:: ; 0x135f8
+BugCatchingContestOverScript:: ; 0x135f8
playsound SFX_ELEVATOR_END
loadfont
writetext UnknownText_0x1360f
closetext
- jump UnknownScript_0x1360b
+ jump BugCatchingContestReturnToGateScript
; 0x13603
-UnknownScript_0x13603: ; 0x13603
+BugCatchingContestOutOfBallsScript: ; 0x13603
playsound SFX_ELEVATOR_END
loadfont
writetext UnknownText_0x13614
closetext
-UnknownScript_0x1360b: ; 0x1360b
+BugCatchingContestReturnToGateScript: ; 0x1360b
loadmovesprites
jumpstd bugcontestresultswarp
; 0x1360f
@@ -15407,7 +15337,7 @@ UnknownText_0x13614: ; 0x13614
db "@"
; 0x13619
-UnknownScript_0x13619:: ; 0x13619
+RepelWoreOffScript:: ; 0x13619
loadfont
writetext UnknownText_0x13620
closetext
@@ -15421,14 +15351,14 @@ UnknownText_0x13620: ; 0x13620
db "@"
; 0x13625
-UnknownScript_0x13625:: ; 0x13625
+SignpostItemScript:: ; 0x13625
loadfont
copybytetovar Unkn2Pals
- itemtotext $0, $0
+ itemtotext 0, 0
writetext UnknownText_0x13645
- giveitem $ff, $1
+ giveitem -1, 1
iffalse UnknownScript_0x1363e
- callasm Function1364f
+ callasm SetMemEvent
specialsound
itemnotify
jump UnknownScript_0x13643
@@ -15456,22 +15386,23 @@ UnknownText_0x1364a: ; 0x1364a
db "@"
; 0x1364f
-Function1364f: ; 1364f
+SetMemEvent: ; 1364f
ld hl, EngineBuffer1 ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
ld a, [hli]
ld d, [hl]
ld e, a
- ld b, $1
+ ld b, SET_FLAG
call EventFlagAction
ret
-Function1365b:: ; 1365b
+CheckFacingTileForStd:: ; 1365b
+; Checks to see if the tile you're facing has a std script associated with it. If so, executes the script and returns carry.
ld a, c
- ld de, .table2 - .table1
+ ld de, 3
ld hl, .table1
call IsInArray
- jr nc, .asm_1367f
+ jr nc, .notintable
ld a, jumpstd_command
ld [wd03f], a
@@ -15480,21 +15411,20 @@ Function1365b:: ; 1365b
ld [wd03f + 1], a
ld a, [hli]
ld [wd03f + 2], a
- ld a, BANK(UnknownScript_0x1369a)
- ld hl, UnknownScript_0x1369a
+ ld a, BANK(Script_JumpStdFromRAM)
+ ld hl, Script_JumpStdFromRAM
call CallScript
scf
ret
-.asm_1367f
+.notintable
xor a
ret
; 13681
.table1
dbw $91, magazinebookshelf
-.table2
- dbw $93, $0031 ; pc
+ dbw $93, pcscript
dbw $94, radio1
dbw $95, townmap
dbw $96, merchandiseshelf
@@ -15504,215 +15434,226 @@ Function1365b:: ; 1365b
db $ff ; end
; 1369a
-UnknownScript_0x1369a: ; 0x1369a
+Script_JumpStdFromRAM: ; 0x1369a
jump wd03f
; 0x1369d
-Function1369d: ; 1369d
+_BugContestJudging: ; 1369d
call ContestScore
callba Function105f79
call Function13819
ld a, [wd00a]
- call Function13730
+ call LoadContestantName
ld a, [wd00b]
ld [wd265], a
call GetPokemonName
- ld hl, UnknownText_0x13719
+ ld hl, BugContest_ThirdPlaceText
call PrintText
ld a, [EndFlypoint]
- call Function13730
+ call LoadContestantName
ld a, [MovementBuffer]
ld [wd265], a
call GetPokemonName
- ld hl, UnknownText_0x13702
+ ld hl, BugContest_SecondPlaceText
call PrintText
ld a, [DefaultFlypoint]
- call Function13730
+ call LoadContestantName
ld a, [wd003]
ld [wd265], a
call GetPokemonName
- ld hl, UnknownText_0x136eb
+ ld hl, BugContest_FirstPlaceText
call PrintText
jp Function13807
; 136eb
-UnknownText_0x136eb: ; 0x136eb
- text_jump UnknownText_0x1c10fa
+BugContest_FirstPlaceText: ; 0x136eb
+ text_jump ContestJudging_FirstPlaceText
start_asm
; 0x136f0
-Function136f0: ; 136f0
+BugContest_FirstPlace: ; 136f0
ld de, SFX_1ST_PLACE
call PlaySFX
call WaitSFX
- ld hl, UnknownText_0x136fd
+ ld hl, BugContest_FirstPlaceScoreText
ret
; 136fd
-UnknownText_0x136fd: ; 0x136fd
+BugContest_FirstPlaceScoreText: ; 0x136fd
; The winning score was @ points!
- text_jump UnknownText_0x1c113f
+ text_jump ContestJudging_FirstPlaceScoreText
db "@"
; 0x13702
-UnknownText_0x13702: ; 0x13702
+BugContest_SecondPlaceText: ; 0x13702
; Placing second was @ , who caught a @ !@ @
- text_jump UnknownText_0x1c1166
+ text_jump ContestJudging_SecondPlaceText
start_asm
; 0x13707
-Function13707: ; 13707
+BugContest_SecondPlace: ; 13707
ld de, SFX_2ND_PLACE
call PlaySFX
call WaitSFX
- ld hl, UnknownText_0x13714
+ ld hl, BugContest_SecondPlaceScoreText
ret
; 13714
-UnknownText_0x13714: ; 0x13714
+BugContest_SecondPlaceScoreText: ; 0x13714
; The score was @ points!
- text_jump UnknownText_0x1c1196
+ text_jump ContestJudging_SecondPlaceScoreText
db "@"
; 0x13719
-UnknownText_0x13719: ; 0x13719
+BugContest_ThirdPlaceText: ; 0x13719
; Placing third was @ , who caught a @ !@ @
- text_jump UnknownText_0x1c11b5
+ text_jump ContestJudging_ThirdPlaceText
start_asm
; 0x1371e
-Function1371e: ; 1371e
+BugContest_ThirdPlace: ; 1371e
ld de, SFX_3RD_PLACE
call PlaySFX
call WaitSFX
- ld hl, UnknownText_0x1372b
+ ld hl, BugContest_ThirdPlaceScoreText
ret
; 1372b
-UnknownText_0x1372b: ; 0x1372b
+BugContest_ThirdPlaceScoreText: ; 0x1372b
; The score was @ points!
- text_jump UnknownText_0x1c11e4
+ text_jump ContestJudging_ThirdPlaceScoreText
db "@"
; 0x13730
-Function13730: ; 13730
+LoadContestantName: ; 13730
+
+; If a = 0, get your name.
dec a
- jr z, .asm_13777
+ jr z, .done
+; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
ld c, a
ld b, 0
- ld hl, Unknown_13783
- add hl, bc
+ ld hl, BugContestantPointers
+rept 2
add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
+; Copy the Trainer Class to c.
ld a, [hli]
ld c, a
+; Save hl and bc for later.
push hl
push bc
+; Get the Trainer Class name and copy it into wd016.
callab Function3952d
ld hl, StringBuffer1
ld de, wd016
- ld bc, $000d
+ ld bc, TRAINER_CLASS_NAME_LENGTH
call CopyBytes
ld hl, wd016
-.asm_13757
+; Delete the trailing terminator and replace it with a space.
+.next
ld a, [hli]
- cp $50
- jr nz, .asm_13757
+ cp "@"
+ jr nz, .next
dec hl
- ld [hl], $7f
+ ld [hl], " "
inc hl
ld d, h
ld e, l
+; Restore the Trainer Class ID and Trainer ID pointer. Save de for later.
pop bc
pop hl
push de
+; Get the name of the trainer with class c and ID b.
ld a, [hl]
ld b, a
- callab Function3994c
+ callab GetTrainerName
+; Append the name to wd016.
ld hl, StringBuffer1
pop de
- ld bc, $000a
+ ld bc, NAME_LENGTH - 1
jp CopyBytes
-.asm_13777
+.done
ld hl, PlayerName
ld de, wd016
- ld bc, $000b
+ ld bc, NAME_LENGTH
jp CopyBytes
; 13783
-Unknown_13783: ; 13783
- dw Unknown_13799
- dw Unknown_13799
- dw Unknown_137a4
- dw Unknown_137af
- dw Unknown_137ba
- dw Unknown_137c5
- dw Unknown_137d0
- dw Unknown_137db
- dw Unknown_137e6
- dw Unknown_137f1
- dw Unknown_137fc
+BugContestantPointers: ; 13783
+ dw BugContestant_BugCatcherDon ; This reverts back to the player
+ dw BugContestant_BugCatcherDon
+ dw BugContestant_BugCatcherEd
+ dw BugContestant_CooltrainerMNick
+ dw BugContestant_PokefanMWilliam
+ dw BugContestant_BugCatcherBenny
+ dw BugContestant_CamperBarry
+ dw BugContestant_PicnickerCindy
+ dw BugContestant_BugCatcherJosh
+ dw BugContestant_YoungsterSamuel
+ dw BugContestant_SchoolboyKipp
; 13799
-Unknown_13799:
+BugContestant_BugCatcherDon:
db BUG_CATCHER, DON
dbw KAKUNA, 300
dbw METAPOD, 285
dbw CATERPIE, 226
-Unknown_137a4:
+BugContestant_BugCatcherEd:
db BUG_CATCHER, ED
dbw BUTTERFREE, 286
dbw BUTTERFREE, 251
dbw CATERPIE, 237
-Unknown_137af:
+BugContestant_CooltrainerMNick:
db COOLTRAINERM, NICK
dbw SCYTHER, 357
dbw BUTTERFREE, 349
dbw PINSIR, 368
-Unknown_137ba:
+BugContestant_PokefanMWilliam:
db POKEFANM, WILLIAM
dbw PINSIR, 332
dbw BUTTERFREE, 324
dbw VENONAT, 321
-Unknown_137c5:
+BugContestant_BugCatcherBenny:
db BUG_CATCHER, BUG_CATCHER_BENNY
dbw BUTTERFREE, 318
dbw WEEDLE, 295
dbw CATERPIE, 285
-Unknown_137d0:
+BugContestant_CamperBarry:
db CAMPER, BARRY
dbw PINSIR, 366
dbw VENONAT, 329
dbw KAKUNA, 314
-Unknown_137db:
+BugContestant_PicnickerCindy:
db PICNICKER, CINDY
dbw BUTTERFREE, 341
dbw METAPOD, 301
dbw CATERPIE, 264
-Unknown_137e6:
+BugContestant_BugCatcherJosh:
db BUG_CATCHER, JOSH
dbw SCYTHER, 326
dbw BUTTERFREE, 292
dbw METAPOD, 282
-Unknown_137f1:
+BugContestant_YoungsterSamuel:
db YOUNGSTER, SAMUEL
dbw WEEDLE, 270
dbw PINSIR, 282
dbw CATERPIE, 251
-Unknown_137fc:
+BugContestant_SchoolboyKipp:
db SCHOOLBOY, KIPP
dbw VENONAT, 267
dbw PARAS, 254
@@ -15721,17 +15662,17 @@ Unknown_137fc:
Function13807: ; 13807
ld hl, wd00a
- ld de, $fffc
- ld b, $3
-.asm_1380f
+ ld de, -4
+ ld b, 3
+.loop
ld a, [hl]
- cp $1
- jr z, .asm_13818
+ cp 1
+ jr z, .done
add hl, de
dec b
- jr nz, .asm_1380f
+ jr nz, .loop
-.asm_13818
+.done
ret
; 13819
@@ -15739,7 +15680,7 @@ Function13819: ; 13819
call Function13833
call Function138b0
ld hl, wd00e
- ld a, $1
+ ld a, 1
ld [hli], a
ld a, [wdf9c]
ld [hli], a
@@ -15753,57 +15694,57 @@ Function13819: ; 13819
Function13833: ; 13833
ld hl, DefaultFlypoint
- ld b, $c
+ ld b, 12
xor a
-.asm_13839
+.loop
ld [hli], a
dec b
- jr nz, .asm_13839
+ jr nz, .loop
ret
; 1383e
Function1383e: ; 1383e
ld de, wd010
ld hl, wd004
- ld c, $2
+ ld c, 2
call StringCmp
- jr c, .asm_1386b
+ jr c, .next
ld hl, EndFlypoint
ld de, wd00a
ld bc, $0004
call CopyBytes
ld hl, DefaultFlypoint
ld de, EndFlypoint
- ld bc, $0004
+ ld bc, 4
call CopyBytes
ld hl, DefaultFlypoint
call Function138a0
- jr .asm_1389f
+ jr .done
-.asm_1386b
+.next
ld de, wd010
ld hl, wd008
- ld c, $2
+ ld c, 2
call StringCmp
- jr c, .asm_1388c
+ jr c, .next2
ld hl, EndFlypoint
ld de, wd00a
- ld bc, $0004
+ ld bc, 4
call CopyBytes
ld hl, EndFlypoint
call Function138a0
- jr .asm_1389f
+ jr .done
-.asm_1388c
+.next2
ld de, wd010
ld hl, wd00c
- ld c, $2
+ ld c, 2
call StringCmp
- jr c, .asm_1389f
+ jr c, .done
ld hl, wd00a
call Function138a0
-.asm_1389f
+.done
ret
; 138a0
@@ -15825,46 +15766,49 @@ Function138a0: ; 138a0
; 138b0
Function138b0: ; 138b0
- ld e, $0
-.asm_138b2
+ ld e, 0
+.loop
push de
- call Function139ed
+ call Special_CheckBugContestContestantFlag
pop de
- jr nz, .asm_138f9
+ jr nz, .done
ld a, e
+rept 2
inc a
- inc a
+endr
ld [wd00e], a
dec a
ld c, a
ld b, 0
- ld hl, Unknown_13783
- add hl, bc
+ ld hl, BugContestantPointers
+rept 2
add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
+rept 2
inc hl
- inc hl
-.asm_138cd
+endr
+.loop2
call Random
- and $3
- cp $3
- jr z, .asm_138cd
+ and 3
+ cp 3
+ jr z, .loop2
ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
+ ld b, 0
+rept 3
add hl, bc
+endr
ld a, [hli]
ld [wd00f], a
ld a, [hli]
ld h, [hl]
ld l, a
call Random
- and $7
+ and 7
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, h
ld [wd010], a
@@ -15874,11 +15818,11 @@ Function138b0: ; 138b0
call Function1383e
pop de
-.asm_138f9
+.done
inc e
ld a, e
- cp $a
- jr nz, .asm_138b2
+ cp 10
+ jr nz, .loop
ret
; 13900
@@ -15921,8 +15865,9 @@ ContestScore: ; 13900
ld a, [wContestMonDVs + 0]
ld b, a
and 2
+rept 2
add a
- add a
+endr
ld c, a
swap b
@@ -15941,10 +15886,12 @@ ContestScore: ; 13900
ld a, b
and 2
srl a
+rept 2
add c
- add c
- add d
+endr
+rept 2
add d
+endr
call .AddContestStat
@@ -15979,115 +15926,131 @@ ContestScore: ; 13900
; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
ApplyPokerusTick: ; 13988
- ld hl, PartyMon1PokerusStatus
+ ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS
ld a, [PartyCount]
and a
ret z
ld c, a
-.asm_13991
+.loop
ld a, [hl]
and $f
- jr z, .asm_139a0
+ jr z, .does_not_have_pokerus
sub b
- jr nc, .asm_1399a
+ jr nc, .ok
xor a
-.asm_1399a
+.ok
ld d, a
ld a, [hl]
and $f0
add d
ld [hl], a
-.asm_139a0
+.does_not_have_pokerus
ld de, PartyMon2 - PartyMon1
add hl, de
dec c
- jr nz, .asm_13991
+ jr nz, .loop
ret
; 139a8
-Function139a8: ; 139a8
- ld c, $a
- ld hl, Unknown_139fe
-.asm_139ad
+Special_SelectRandomBugContestContestants: ; 139a8
+; Select five random people to participate in the current contest.
+
+; First we have to make sure that any old data is cleared away.
+ ld c, 10 ; Number of people to choose from.
+ ld hl, BugCatchingContestantEventFlagTable
+.loop1
push bc
push hl
ld e, [hl]
inc hl
ld d, [hl]
- ld b, $0
+ ld b, RESET_FLAG
call EventFlagAction
pop hl
+rept 2
inc hl
- inc hl
+endr
pop bc
dec c
- jr nz, .asm_139ad
- ld c, $5
-.asm_139c0
+ jr nz, .loop1
+
+; Now that that's out of the way, we can get on to the good stuff.
+ ld c, 5
+.loop2
push bc
-.asm_139c1
+.next
+; Choose a flag at uniform random to be set.
call Random
- cp $fa
- jr nc, .asm_139c1
- ld c, $19
+ cp $fa ; 250
+ jr nc, .next
+ ld c, $19 ; 25
call SimpleDivide
ld e, b
ld d, 0
- ld hl, Unknown_139fe
- add hl, de
+ ld hl, BugCatchingContestantEventFlagTable
+rept 2
add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
push de
- ld b, $2
+; If we've already set it, it doesn't count.
+ ld b, CHECK_FLAG
call EventFlagAction
pop de
ld a, c
and a
- jr nz, .asm_139c1
- ld b, $1
+ jr nz, .next
+; Set the flag. This will cause that sprite to not be visible in the contest.
+ ld b, SET_FLAG
call EventFlagAction
pop bc
+; Check if we're done. If so, return. Otherwise, choose the next victim.
dec c
- jr nz, .asm_139c0
+ jr nz, .loop2
ret
; 139ed
-Function139ed: ; 139ed
- ld hl, Unknown_139fe
+Special_CheckBugContestContestantFlag: ; 139ed
+; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
+
+; Bug: If a >= 10 when this is called, it will read beyond the table.
+
+ ld hl, BugCatchingContestantEventFlagTable
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
- ld b, $2
+ ld b, CHECK_FLAG
call EventFlagAction
ret
; 139fe
-Unknown_139fe: ; 139fe
- dw $0716
- dw $0717
- dw $0718
- dw $0719
- dw $071a
- dw $071b
- dw $071c
- dw $071d
- dw $071e
- dw $071f
+BugCatchingContestantEventFlagTable: ; 139fe
+ dw EVENT_BUG_CATCHING_CONTESTANT_1A
+ dw EVENT_BUG_CATCHING_CONTESTANT_2A
+ dw EVENT_BUG_CATCHING_CONTESTANT_3A
+ dw EVENT_BUG_CATCHING_CONTESTANT_4A
+ dw EVENT_BUG_CATCHING_CONTESTANT_5A
+ dw EVENT_BUG_CATCHING_CONTESTANT_6A
+ dw EVENT_BUG_CATCHING_CONTESTANT_7A
+ dw EVENT_BUG_CATCHING_CONTESTANT_8A
+ dw EVENT_BUG_CATCHING_CONTESTANT_9A
+ dw EVENT_BUG_CATCHING_CONTESTANT_10A
; 13a12
-Function13a12: ; 13a12
+CheckFirstMonFainted: ; 13a12
ld hl, PartyMon1HP
ld a, [hli]
or [hl]
- jr z, .asm_13a2b
+ jr z, .fainted
ld hl, PartyCount
ld a, 1
ld [hli], a
@@ -16099,13 +16062,13 @@ Function13a12: ; 13a12
ld [ScriptVar], a
ret
-.asm_13a2b
+.fainted
ld a, $1
ld [ScriptVar], a
ret
; 13a31
-Function13a31: ; 13a31
+ContestReturnMons: ; 13a31
ld hl, PartySpecies + 1
ld a, [wdf9b]
ld [hl], a
@@ -16422,18 +16385,19 @@ GetTimeOfDay:: ; 14032
; get time of day based on the current hour
ld a, [hHours] ; hour
ld hl, TimesOfDay
-
+
.check
; if we're within the given time period,
; get the corresponding time of day
cp [hl]
jr c, .match
; else, get the next entry
+rept 2
inc hl
- inc hl
+endr
; try again
jr .check
-
+
.match
; get time of day
inc hl
@@ -16626,7 +16590,7 @@ Function14146: ; 14146
push af
res 7, [hl]
set 6, [hl]
- call Function14209
+ call RunCallback_04
pop af
ld [wd13e], a
ret
@@ -16638,7 +16602,7 @@ Function14157: ; 14157
push af
set 7, [hl]
res 6, [hl]
- call Function14209
+ call RunCallback_04
pop af
ld [wd13e], a
ret
@@ -16647,7 +16611,7 @@ Function14157: ; 14157
Function14168:: ; 14168
call Function1416f
- call Function14209
+ call RunCallback_04
ret
; 1416f
@@ -16753,8 +16717,9 @@ AddOutdoorSprites: ; 141ee
ld c, a
ld b, 0
ld hl, OutdoorSprites
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -16770,9 +16735,9 @@ AddOutdoorSprites: ; 141ee
; 14209
-Function14209: ; 14209
+RunCallback_04: ; 14209
ld a, $4
- call Function263b
+ call RunMapCallback
call Function1439b
call Function14215
ret
@@ -16808,21 +16773,25 @@ GetSprite: ; 1423c
call GetMonSprite
ret c
- ld hl, SpriteHeaders
+ ld hl, SpriteHeaders ; address
dec a
ld c, a
ld b, 0
ld a, 6
call AddNTimes
+ ; load the address into de
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
+ ; load the length into c
ld a, [hli]
swap a
ld c, a
+ ; load the sprite bank into both b and h
ld b, [hl]
ld a, [hli]
+ ; load the sprite type into l
ld l, [hl]
ld h, a
ret
@@ -16865,7 +16834,7 @@ GetMonSprite: ; 14259
.Mon
ld e, a
and a
- jr z, .asm_1429f
+ jr z, .NoBreedmon
callba Function8e82b
@@ -16884,7 +16853,7 @@ GetMonSprite: ; 14259
and a
jp nz, GetMonSprite
-.asm_1429f
+.NoBreedmon
ld a, 1
ld l, 1
ld h, 0
@@ -16895,11 +16864,11 @@ GetMonSprite: ; 14259
Function142a7:: ; 142a7
cp SPRITE_POKEMON
- jr nc, .asm_142c2
+ jr nc, .is_pokemon
push hl
push bc
- ld hl, SpriteHeaders + 4
+ ld hl, SpriteHeaders + 4 ; type
dec a
ld c, a
ld b, 0
@@ -16909,11 +16878,11 @@ Function142a7:: ; 142a7
pop bc
pop hl
cp 3
- jr nz, .asm_142c2
+ jr nz, .is_pokemon
scf
ret
-.asm_142c2
+.is_pokemon
and a
ret
; 142c4
@@ -16922,7 +16891,7 @@ Function142a7:: ; 142a7
_GetSpritePalette:: ; 142c4
ld a, c
call GetMonSprite
- jr c, .asm_142d8
+ jr c, .is_pokemon
ld hl, SpriteHeaders + 5 ; palette
dec a
@@ -16933,7 +16902,7 @@ _GetSpritePalette:: ; 142c4
ld c, [hl]
ret
-.asm_142d8
+.is_pokemon
xor a
ld c, a
ret
@@ -16956,15 +16925,16 @@ AddSpriteGFX: ; 142e5
push bc
ld b, a
ld hl, UsedSprites + 2
- ld c, $1f
+ ld c, SPRITE_GFX_LIST_CAPACITY - 1
.loop
ld a, [hl]
cp b
jr z, .exists
and a
jr z, .new
+rept 2
inc hl
- inc hl
+endr
dec c
jr nz, .loop
@@ -16990,10 +16960,10 @@ AddSpriteGFX: ; 142e5
LoadSpriteGFX: ; 14306
; Bug: b is not preserved, so
-; it's useless as a loop count.
+; it's useless as a next count.
ld hl, UsedSprites
- ld b, $20
+ ld b, SPRITE_GFX_LIST_CAPACITY
.loop
ld a, [hli]
and a
@@ -17020,14 +16990,15 @@ SortUsedSprites: ; 1431e
; Run backwards through UsedSprites to find the last one.
- ld c, $20
- ld de, UsedSprites + ($20 - 1) * 2
+ ld c, SPRITE_GFX_LIST_CAPACITY
+ ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
.FindLastSprite
ld a, [de]
and a
jr nz, .FoundLastSprite
+rept 2
dec de
- dec de
+endr
dec c
jr nz, .FindLastSprite
.FoundLastSprite
@@ -17048,7 +17019,7 @@ SortUsedSprites: ; 1431e
.CheckFollowing
ld a, [de]
cp [hl]
- jr nc, .next
+ jr nc, .loop
; Swap the two sprites.
@@ -17068,15 +17039,17 @@ SortUsedSprites: ; 1431e
; Keep doing this until everything's in order.
-.next
- dec de
+.loop
+rept 2
dec de
+endr
dec c
jr nz, .CheckFollowing
pop hl
+rept 2
inc hl
- inc hl
+endr
pop de
pop bc
dec c
@@ -17092,7 +17065,7 @@ ArrangeUsedSprites: ; 14355
; Crystal introduces a second table in VRAM bank 0.
ld hl, UsedSprites
- ld c, $20
+ ld c, SPRITE_GFX_LIST_CAPACITY
ld b, 0
.FirstTableLength
; Keep going until the end of the list.
@@ -17106,10 +17079,10 @@ ArrangeUsedSprites: ; 14355
; Spill over into the second table after $80 tiles.
add b
cp $80
- jr z, .next
+ jr z, .loop
jr nc, .SecondTable
-.next
+.loop
ld [hl], b
inc hl
ld b, a
@@ -17172,7 +17145,7 @@ GetSpriteLength: ; 14386
Function1439b: ; 1439b
ld hl, UsedSprites
- ld c, $20
+ ld c, SPRITE_GFX_LIST_CAPACITY
.asm_143a0
ld a, [wd13e]
res 5, a
@@ -17219,10 +17192,9 @@ Function143c8: ; 143c8
pop bc
ld l, c
ld h, $0
+rept 4
add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
+endr
pop de
add hl, de
ld d, h
@@ -17249,10 +17221,9 @@ Function14406: ; 14406
and $7f
ld l, a
ld h, $0
+rept 4
add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
+endr
ld a, l
add $0
ld l, a
@@ -17396,7 +17367,7 @@ SpriteMons: ; 14495
db LUGIA
db HO_OH
; 144b8
-
+
OutdoorSprites: ; 144b8
; Valid sprite IDs for each map group.
@@ -18135,15 +18106,15 @@ Function149af:: ; 149af
ret
; 149c6
-Function149c6: ; 149c6
+CheckWarpCollision: ; 149c6
ld de, 1
- ld hl, Unknown_149d3
+ ld hl, .blocks
ld a, [StandingTile]
call IsInArray
ret
; 149d3
-Unknown_149d3: ; 149d3
+.blocks: ; 149d3
db $71 ; door
db $79
db $7a ; stairs
@@ -18158,13 +18129,13 @@ Unknown_149d3: ; 149d3
Function149dd:: ; 149dd
ld a, [StandingTile]
- ld hl, Unknown_149ea
+ ld hl, .blocks
ld de, 1
call IsInArray
ret
; 149ea
-Unknown_149ea: ; 149ea
+.blocks: ; 149ea
db $08
db $18 ; tall grass
db $14 ; tall grass
@@ -18178,15 +18149,15 @@ Unknown_149ea: ; 149ea
db -1
; 149f5
-Function149f5: ; 149f5
+CheckCutCollision: ; 149f5
ld a, c
- ld hl, Unknown_14a00
+ ld hl, .blocks
ld de, 1
call IsInArray
ret
; 14a00
-Unknown_14a00: ; 14a00
+.blocks: ; 14a00
db $12 ; cut tree
db $1a ; cut tree
db $10 ; tall grass
@@ -18212,37 +18183,37 @@ Function14a1a: ; 14a1a
call Function1d6e
callba Function5e9a
call SpeechTextBox
- call Function1ad2
+ call DrawOnMap
callba Function4cf45
ld hl, UnknownText_0x15283
- call Function14baf
- jr nz, .asm_14a4a
- call Function14b89
- jr c, .asm_14a4a
- call Function14b54
- call Function14be3
- call Function14b5a
- call Function1c07
- and a
- ret
-.asm_14a4a
- call Function1c07
+ call SaveTheGame_yesorno
+ jr nz, .refused
+ call CheckForExistingSaveFile
+ jr c, .refused
+ call SetWRAMStateForSave
+ call _SavingDontTurnOffThePower
+ call ClearWRAMStateAfterSave
+ call ExitMenu
+ and a
+ ret
+.refused
+ call ExitMenu
call Functiond90
callba Function4cf45
scf
ret
Function14a58: ; 14a58
- call Function14b54
+ call SetWRAMStateForSave
callba Function14056
callba Function1050d9
- call Function14df7
+ call SavePartyData
call Function14e13
- call Function14e76
+ call LoadSavedPartyData
call Function14e8b
callba Function44725
callba Function1406a
- call Function14b5a
+ call ClearWRAMStateAfterSave
ret
; 14a83
@@ -18250,53 +18221,53 @@ Function14a58: ; 14a58
Function14a83: ; 14a83 (5:4a83)
push de
ld hl, UnknownText_0x152a1
- call Function1d4f
+ call MenuTextBox
call YesNoBox
- call Function1c07
- jr c, .asm_14ab0
- call Function14b89
- jr c, .asm_14ab0
- call Function14b54
- call Function14c99
+ call ExitMenu
+ jr c, .refused
+ call CheckForExistingSaveFile
+ jr c, .refused
+ call SetWRAMStateForSave
+ call SavingDontTurnOffThePower
call Function14e0c
pop de
ld a, e
ld [wCurBox], a
call Function15021
- call Function14be6
- call Function14b5a
+ call SavedTheGame
+ call ClearWRAMStateAfterSave
and a
ret
-.asm_14ab0
+.refused
pop de
ret
Function14ab2: ; 14ab2
- call Function14b89
- jr c, .asm_14ac1
- call Function14b54
- call Function14be3
- call Function14b5a
+ call CheckForExistingSaveFile
+ jr c, .refused
+ call SetWRAMStateForSave
+ call _SavingDontTurnOffThePower
+ call ClearWRAMStateAfterSave
and a
-.asm_14ac1
+.refused
ret
; 14ac2
Function14ac2: ; 14ac2
- call Function14b54
+ call SetWRAMStateForSave
push de
call Function14e0c
pop de
ld a, e
ld [wCurBox], a
call Function15021
- call Function14b5a
+ call ClearWRAMStateAfterSave
ret
; 14ad5
Function14ad5: ; 14ad5
- call Function14b54
+ call SetWRAMStateForSave
push de
call Function14e0c
pop de
@@ -18307,20 +18278,20 @@ Function14ad5: ; 14ad5
callba Function14056
callba Function1050d9
call Function14da9
- call Function14dbb
- call Function14dd7
- call Function14df7
+ call SaveOptionsSelection
+ call SavePlayerData
+ call SavePartyData
call Function14e13
call Function14e2d
- call Function14e40
- call Function14e55
- call Function14e76
+ call LoadSavedOptions
+ call LoadSavedPlayerData
+ call LoadSavedPartyData
call Function14e8b
callba Function44725
callba Function106187
callba Function1406a
call Function15021
- call Function14b5a
+ call ClearWRAMStateAfterSave
ld de, SFX_SAVE
call PlaySFX
ld c, $18
@@ -18330,15 +18301,15 @@ Function14ad5: ; 14ad5
Function14b34: ; 14b34
ld hl, UnknownText_0x152a6
- call Function1d4f
+ call MenuTextBox
call YesNoBox
- call Function1c07
+ call ExitMenu
jr c, .asm_14b52
- call Function14b89
+ call CheckForExistingSaveFile
jr c, .asm_14b52
- call Function14b54
- call Function14be3
- call Function14b5a
+ call SetWRAMStateForSave
+ call _SavingDontTurnOffThePower
+ call ClearWRAMStateAfterSave
and a
ret
@@ -18347,13 +18318,13 @@ Function14b34: ; 14b34
ret
; 14b54
-Function14b54: ; 14b54
+SetWRAMStateForSave: ; 14b54
ld a, $1
ld [wc2cd], a
ret
; 14b5a
-Function14b5a: ; 14b5a
+ClearWRAMStateAfterSave: ; 14b5a
xor a
ld [wc2cd], a
ret
@@ -18366,17 +18337,17 @@ Function14b5f: ; 14b5f
ld hl, $bdd9
ld de, $be3b
ld bc, $0b1a
-.asm_14b6d
+.loop
ld a, [hld]
ld [de], a
dec de
dec bc
ld a, c
or b
- jr nz, .asm_14b6d
+ jr nz, .loop
ld hl, OverworldMap
ld de, $b2c0
- ld bc, $0062
+ ld bc, 7 * 14
call CopyBytes
call CloseSRAM
ret
@@ -18387,44 +18358,44 @@ Function14b85: ; 14b85
ret
; 14b89
-Function14b89: ; 14b89
+CheckForExistingSaveFile: ; 14b89
ld a, [wcfcd]
and a
- jr z, .asm_14ba8
+ jr z, .getridofpreviousplayersave
call Function14bcb
- jr z, .asm_14b9e
+ jr z, .yoursavefile
ld hl, UnknownText_0x15297
- call Function14baf
- jr nz, .asm_14bad
- jr .asm_14ba8
+ call SaveTheGame_yesorno
+ jr nz, .refused
+ jr .getridofpreviousplayersave
-.asm_14b9e
+.yoursavefile
ld hl, UnknownText_0x15292
- call Function14baf
- jr nz, .asm_14bad
- jr .asm_14bab
+ call SaveTheGame_yesorno
+ jr nz, .refused
+ jr .ok
-.asm_14ba8
- call Function14cbb
+.getridofpreviousplayersave
+ call GetRidOfPreviousPlayersSave
-.asm_14bab
+.ok
and a
ret
-.asm_14bad
+.refused
scf
ret
; 14baf
-Function14baf: ; 14baf
+SaveTheGame_yesorno: ; 14baf
ld b, BANK(UnknownText_0x15283)
- call Function269a
- call Function1d58
+ call MapTextbox
+ call LoadMenuTextBox
lb bc, 0, 7
call PlaceYesNoBox
ld a, [wcfa9]
dec a
- call Function1c17
+ call WriteBackup
push af
call Functiond90
pop af
@@ -18448,23 +18419,29 @@ Function14bcb: ; 14bcb
ret
; 14be3
-Function14be3: ; 14be3
- call Function14c99
-Function14be6: ; 14be6
+_SavingDontTurnOffThePower: ; 14be3
+ call SavingDontTurnOffThePower
+SavedTheGame: ; 14be6
call Function14c10
+ ; wait 32 frames
ld c, $20
call DelayFrames
+ ; copy the original text speed setting to the stack
ld a, [Options]
push af
- ld a, $3
+ ; set text speed super slow
+ ld a, 3
ld [Options], a
+ ; <PLAYER> saved the game!
ld hl, UnknownText_0x1528d
call PrintText
+ ; restore the original text speed setting
pop af
ld [Options], a
ld de, SFX_SAVE
call WaitPlaySFX
call WaitSFX
+ ; wait 30 frames
ld c, $1e
call DelayFrames
ret
@@ -18472,20 +18449,20 @@ Function14be6: ; 14be6
Function14c10: ; 14c10
- ld a, $1
+ ld a, 1
ld [wcfcd], a
callba Function14056
callba Function1050d9
call Function14da9
- call Function14dbb
- call Function14dd7
- call Function14df7
+ call SaveOptionsSelection
+ call SavePlayerData
+ call SavePartyData
call Function14e0c
call Function14e13
call Function14e2d
- call Function14e40
- call Function14e55
- call Function14e76
+ call LoadSavedOptions
+ call LoadSavedPlayerData
+ call LoadSavedPartyData
call Function14e8b
call Function14c6b
callba Function44725
@@ -18541,27 +18518,33 @@ Function14c90: ; 14c90
jr .asm_14c93
; 14c99
-Function14c99: ; 14c99
+SavingDontTurnOffThePower: ; 14c99
+ ; Prevent joypad interrupts
xor a
ld [hJoypadReleased], a
ld [hJoypadPressed], a
ld [hJoypadSum], a
ld [hJoypadDown], a
+ ; Save the text speed setting to the stack
ld a, [Options]
push af
+ ; Set the text speed to super slow
ld a, $3
ld [Options], a
+ ; SAVING... DON'T TURN OFF THE POWER.
ld hl, UnknownText_0x15288
call PrintText
+ ; Restore the text speed setting
pop af
ld [Options], a
+ ; Wait for 16 frames
ld c, $10
call DelayFrames
ret
; 14cbb
-Function14cbb: ; 14cbb
+GetRidOfPreviousPlayersSave: ; 14cbb
call Function151fb
call Function14d06
call Function14ce2
@@ -18610,11 +18593,12 @@ Function14d06: ; 14d06
; 14d18
Function14d18: ; 14d18
+; copy Unknown_14d2c to SRA4:a007
ld a, $4
call GetSRAMBank
ld hl, Unknown_14d2c
ld de, $a007
- ld bc, $0030
+ ld bc, 48
call CopyBytes
jp CloseSRAM
; 14d2c
@@ -18649,10 +18633,10 @@ Function14d6c: ; 14d6c
ld a, [$a60b]
ld b, $0
and a
- jr z, .asm_14d7b
+ jr z, .ok
ld b, $2
-.asm_14d7b
+.ok
ld a, b
ld [$a60b], a
call CloseSRAM
@@ -18683,26 +18667,27 @@ Function14da0: ; 14da0
ld a, [wd4b4]
and a
ret nz
- call Function14cbb
+ call GetRidOfPreviousPlayersSave
ret
; 14da9
Function14da9: ; 14da9
ld a, $1
call GetSRAMBank
- ld a, $63
+ ld a, 99
ld [$a008], a
- ld a, $7f
+ ld a, " "
ld [$ad0f], a
jp CloseSRAM
; 14dbb
-Function14dbb: ; 14dbb
+SaveOptionsSelection: ; 14dbb
+; Copy Options to SRA1:a000
ld a, $1
call GetSRAMBank
ld hl, Options
ld de, $a000
- ld bc, $0008
+ ld bc, OptionsEnd - Options
call CopyBytes
ld a, [Options]
and $ef
@@ -18710,26 +18695,28 @@ Function14dbb: ; 14dbb
jp CloseSRAM
; 14dd7
-Function14dd7: ; 14dd7
+SavePlayerData: ; 14dd7
+; Copy 2122 bytes starting at PlayerID to SRA1:a009
ld a, $1
call GetSRAMBank
ld hl, PlayerID
ld de, $a009
- ld bc, $082a
+ ld bc, VisitedSpawns - PlayerID
call CopyBytes
ld hl, VisitedSpawns
ld de, $a833
- ld bc, $0032
+ ld bc, PartyCount - VisitedSpawns
call CopyBytes
jp CloseSRAM
; 14df7
-Function14df7: ; 14df7
+SavePartyData: ; 14df7
+; Copy your party to SRA1:a865.
ld a, $1
call GetSRAMBank
ld hl, PartyCount
ld de, $a865
- ld bc, $031e
+ ld bc, wdff5 - PartyCount
call CopyBytes
call CloseSRAM
ret
@@ -18758,46 +18745,46 @@ Function14e13: ; 14e13
Function14e2d: ; 14e2d
ld a, $0
call GetSRAMBank
- ld a, $63
+ ld a, 99
ld [$b208], a
- ld a, $7f
+ ld a, " "
ld [$bf0f], a
call CloseSRAM
ret
; 14e40
-Function14e40: ; 14e40
+LoadSavedOptions: ; 14e40
ld a, $0
call GetSRAMBank
ld hl, Options
ld de, $b200
- ld bc, $0008
+ ld bc, OptionsEnd - Options
call CopyBytes
call CloseSRAM
ret
; 14e55
-Function14e55: ; 14e55
+LoadSavedPlayerData: ; 14e55
ld a, $0
call GetSRAMBank
ld hl, PlayerID
ld de, $b209
- ld bc, $082a
+ ld bc, VisitedSpawns - PlayerID
call CopyBytes
ld hl, VisitedSpawns
ld de, $ba33
- ld bc, $0032
+ ld bc, PartyCount - VisitedSpawns
call CopyBytes
call CloseSRAM
ret
; 14e76
-Function14e76: ; 14e76
+LoadSavedPartyData: ; 14e76
ld a, $0
call GetSRAMBank
ld hl, PartyCount
ld de, $ba65
- ld bc, $031e
+ ld bc, wdff5 - PartyCount
call CopyBytes
call CloseSRAM
ret
@@ -18818,9 +18805,9 @@ Function14e8b: ; 14e8b
; 14ea5
-Function14ea5: ; 14ea5 (5:4ea5)
+TryLoadSaveFile: ; 14ea5 (5:4ea5)
call Function15028
- jr nz, .asm_14ed6
+ jr nz, .trytowrite
call Function14fd7
call Function1500c
call Function15021
@@ -18828,15 +18815,15 @@ Function14ea5: ; 14ea5 (5:4ea5)
callba Function10619d
callba Function1050ea
call Function14e2d
- call Function14e40
- call Function14e55
- call Function14e76
+ call LoadSavedOptions
+ call LoadSavedPlayerData
+ call LoadSavedPartyData
call Function14e8b
and a
ret
-.asm_14ed6
+.trytowrite
call Function1507c
- jr nz, .asm_14f07
+ jr nz, .corrupt
call Function15046
call Function15067
call Function15021
@@ -18844,13 +18831,13 @@ Function14ea5: ; 14ea5 (5:4ea5)
callba Function10619d
callba Function1050ea
call Function14da9
- call Function14dbb
- call Function14dd7
- call Function14df7
+ call SaveOptionsSelection
+ call SavePlayerData
+ call SavePartyData
call Function14e13
and a
ret
-.asm_14f07
+.corrupt
ld a, [Options]
push af
set 4, a
@@ -18892,7 +18879,7 @@ Function14f1c: ; 14f1c
call GetSRAMBank
ld hl, $b244
ld de, StartDay
- ld bc, $0008
+ ld bc, 8
call CopyBytes
ld hl, $b5da
ld de, StatusFlags
@@ -18904,7 +18891,7 @@ Function14f1c: ; 14f1c
.asm_14f6c
ld hl, DefaultOptions
ld de, Options
- ld bc, $0008
+ ld bc, OptionsEnd - Options
call CopyBytes
call Function67e
ret
@@ -18921,25 +18908,24 @@ DefaultOptions: ; 14f7c
db $00
; 14f84
-
Function14f84: ; 14f84
ld a, $1
call GetSRAMBank
ld a, [$a008]
- cp $63
- jr nz, .asm_14fab
+ cp 99
+ jr nz, .nope
ld a, [$ad0f]
- cp $7f
- jr nz, .asm_14fab
+ cp " "
+ jr nz, .nope
ld hl, $a000
ld de, Options
- ld bc, $0008
+ ld bc, OptionsEnd - Options
call CopyBytes
call CloseSRAM
ld a, $1
ld [wcfcd], a
-.asm_14fab
+.nope
call CloseSRAM
ret
; 14faf
@@ -18948,19 +18934,19 @@ Function14faf: ; 14faf
ld a, $0
call GetSRAMBank
ld a, [$b208]
- cp $63
- jr nz, .asm_14fd3
+ cp 99
+ jr nz, .nope
ld a, [$bf0f]
- cp $7f
- jr nz, .asm_14fd3
+ cp " "
+ jr nz, .nope
ld hl, $b200
ld de, Options
- ld bc, $0008
+ ld bc, OptionsEnd - Options
call CopyBytes
ld a, $2
ld [wcfcd], a
-.asm_14fd3
+.nope
call CloseSRAM
ret
; 14fd7
@@ -18971,11 +18957,11 @@ Function14fd7: ; 14fd7 (5:4fd7)
call GetSRAMBank
ld hl, $a009
ld de, PlayerID
- ld bc, $82a
+ ld bc, VisitedSpawns - PlayerID
call CopyBytes
ld hl, $a833
ld de, VisitedSpawns
- ld bc, $32
+ ld bc, PartyCount - VisitedSpawns
call CopyBytes
call CloseSRAM
ld a, $1
@@ -18994,7 +18980,7 @@ Function1500c: ; 1500c
call GetSRAMBank
ld hl, $a865
ld de, PartyCount
- ld bc, $031e
+ ld bc, wdff5 - PartyCount
call CopyBytes
call CloseSRAM
ret
@@ -19028,11 +19014,11 @@ Function15046: ; 15046 (5:5046)
call GetSRAMBank
ld hl, $b209
ld de, PlayerID
- ld bc, $82a
+ ld bc, VisitedSpawns - PlayerID
call CopyBytes
ld hl, $ba33
ld de, VisitedSpawns
- ld bc, $32
+ ld bc, PartyCount - VisitedSpawns
call CopyBytes
call CloseSRAM
ret
@@ -19042,7 +19028,7 @@ Function15067: ; 15067 (5:5067)
call GetSRAMBank
ld hl, $ba65
ld de, PartyCount
- ld bc, $31e
+ ld bc, wdff5 - PartyCount
call CopyBytes
call CloseSRAM
ret
@@ -19070,7 +19056,7 @@ Function1509a: ; 1509a
call GetSRAMBank
ld hl, PlayerGender
ld de, $be3d
- ld bc, $0007
+ ld bc, wd479 - PlayerGender
call CopyBytes
ld hl, wd479
ld a, [hli]
@@ -19086,7 +19072,7 @@ Function150b9: ; 150b9 (5:50b9)
call GetSRAMBank
ld hl, $be3d
ld de, PlayerGender
- ld bc, $7
+ ld bc, wd479 - PlayerGender
call CopyBytes
ld hl, wd479
ld a, [$a60e]
@@ -19107,11 +19093,9 @@ Function150d8: ; 150d8
ld e, a
ld d, 0
ld hl, Unknown_1522d
+rept 5
add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
+endr
ld a, [hli]
push af
ld a, [hli]
@@ -19247,7 +19231,7 @@ Function1517d: ; 1517d (5:517d)
Function151fb: ; 151fb
ld hl, Unknown_1522d
ld c, $e
-.asm_15200
+.outerloop
push bc
ld a, [hli]
call GetSRAMBank
@@ -19258,23 +19242,23 @@ Function151fb: ; 151fb
xor a
ld [de], a
inc de
- ld a, $ff
+ ld a, -1
ld [de], a
inc de
ld bc, $044c
-.asm_15213
+.loop
xor a
ld [de], a
inc de
dec bc
ld a, b
or c
- jr nz, .asm_15213
+ jr nz, .loop
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
- ld a, $ff
+ ld a, -1
ld [de], a
inc de
xor a
@@ -19282,43 +19266,43 @@ Function151fb: ; 151fb
call CloseSRAM
pop bc
dec c
- jr nz, .asm_15200
+ jr nz, .outerloop
ret
; 1522d
Unknown_1522d: ; 1522d
; dbww bank, address, address
- db $02, $00, $a0, $4e, $a4 ; 2, $a000, $a44e
- db $02, $50, $a4, $9e, $a8 ; 2, $a450, $a89e
- db $02, $a0, $a8, $ee, $ac ; 2, $a8a0, $acee
- db $02, $f0, $ac, $3e, $b1 ; 2, $acf0, $b13e
- db $02, $40, $b1, $8e, $b5 ; 2, $b140, $b5de
- db $02, $90, $b5, $de, $b9 ; 2, $b590, $b9de
- db $02, $e0, $b9, $2e, $be ; 2, $b9e0, $be2e
-
- db $03, $00, $a0, $4e, $a4 ; 3, $a000, $a44e
- db $03, $50, $a4, $9e, $a8 ; 3, $a450, $a89e
- db $03, $a0, $a8, $ee, $ac ; 3, $a8a0, $acee
- db $03, $f0, $ac, $3e, $b1 ; 3, $acf0, $b13e
- db $03, $40, $b1, $8e, $b5 ; 3, $b140, $b58e
- db $03, $90, $b5, $de, $b9 ; 3, $b590, $b9de
- db $03, $e0, $b9, $2e, $be ; 3, $b9e0, $be2e
+ dbww $02, $a000, $a44e ; 2, $a000, $a44e
+ dbww $02, $a450, $a89e ; 2, $a450, $a89e
+ dbww $02, $a8a0, $acee ; 2, $a8a0, $acee
+ dbww $02, $acf0, $b13e ; 2, $acf0, $b13e
+ dbww $02, $b140, $b58e ; 2, $b140, $b5de
+ dbww $02, $b590, $b9de ; 2, $b590, $b9de
+ dbww $02, $b9e0, $be2e ; 2, $b9e0, $be2e
+
+ dbww $03, $a000, $a44e ; 3, $a000, $a44e
+ dbww $03, $a450, $a89e ; 3, $a450, $a89e
+ dbww $03, $a8a0, $acee ; 3, $a8a0, $acee
+ dbww $03, $acf0, $b13e ; 3, $acf0, $b13e
+ dbww $03, $b140, $b58e ; 3, $b140, $b58e
+ dbww $03, $b590, $b9de ; 3, $b590, $b9de
+ dbww $03, $b9e0, $be2e ; 3, $b9e0, $be2e
; 15273
Function15273: ; 15273
- ld de, $0000
-.asm_15276
+ ld de, 0
+.loop
ld a, [hli]
add e
ld e, a
- ld a, $0
+ ld a, 0
adc d
ld d, a
dec bc
ld a, b
or c
- jr nz, .asm_15276
+ jr nz, .loop
ret
; 15283
@@ -19376,73 +19360,81 @@ INCLUDE "engine/spawn_points.asm"
INCLUDE "engine/map_setup.asm"
-Function1559a: ; 1559a
- call Function15650
+PokemonCenterPC: ; 1559a
+ call PC_CheckPartyForPokemon
ret c
- call Function156b3
+ call PC_PlayBootSound
ld hl, UnknownText_0x15a27
- call Function15a20
+ call PC_DisplayText
ld hl, UnknownText_0x15a2c
- call Function157bb
- ld hl, MenuDataHeader_0x155d6
+ call PC_DisplayTextWaitMenu
+ ld hl, .TopMenu
call LoadMenuDataHeader
-.asm_155b3
+.loop
xor a
ld [hBGMapMode], a
call Function1563e
ld [wcf76], a
call Function1e5d
- jr c, .asm_155cc
+ jr c, .shutdown
ld a, [MenuSelection]
- ld hl, Unknown_155e6
+ ld hl, .JumpTable
call Function1fa7
- jr nc, .asm_155b3
+ jr nc, .loop
-.asm_155cc
+.shutdown
call Function156b8
- call Function1c07
- call Function1c17
+ call ExitMenu
+ call WriteBackup
ret
; 155d6
-MenuDataHeader_0x155d6: ; 0x155d6
+.TopMenu: ; 0x155d6
db $48 ; flags
db 00, 00 ; start coords
db 12, 15 ; end coords
- dw MenuData2_0x155de
+ dw .MenuData2
db 1 ; default option
; 0x155de
-MenuData2_0x155de: ; 0x155de
+.MenuData2: ; 0x155de
db $a0 ; flags
db 0 ; items
- dw Unknown_1562c
+ dw .WhichPC
dw Function1f8d
- dw Unknown_155e6
+ dw .JumpTable
; 0x155e6
-Unknown_155e6: ; 155e6
- dw Function15679, String_155fa
- dw Function15668, String_15600
- dw Function15689, String_15609
- dw Function1569a, String_15616
- dw Function156ab, String_15623
+.JumpTable: ; 155e6
+ dw Function15679, .String_PlayersPC
+ dw Function15668, .String_BillsPC
+ dw Function15689, .String_OaksPC
+ dw Function1569a, .String_HallOfFame
+ dw Function156ab, .String_TurnOff
; 155fa
-String_155fa: db "<PLAYER>'s PC@"
-String_15600: db "BILL's PC@"
-String_15609: db "PROF.OAK's PC@"
-String_15616: db "HALL OF FAME@"
-String_15623: db "TURN OFF@"
+.String_PlayersPC: db "<PLAYER>'s PC@"
+.String_BillsPC: db "BILL's PC@"
+.String_OaksPC: db "PROF.OAK's PC@"
+.String_HallOfFame: db "HALL OF FAME@"
+.String_TurnOff: db "TURN OFF@"
; 1562c
-Unknown_1562c: ; 1562c
- db 3
- db 1, 0, 4, $ff
- db 4
- db 1, 0, 2, 4, $ff
- db 5
- db 1, 0, 2, 3, 4, $ff
+.WhichPC: ; 1562c
+ ; before pokedex
+ db 3 ; items
+ db 1, 0, 4 ; bill's, player's, turn off
+ db -1
+
+ ; before Hall Of Fame
+ db 4 ; items
+ db 1, 0, 2, 4 ; bill's, player's, oak's, turn off
+ db -1
+
+ ; postgame
+ db 5 ; items
+ db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
+ db -1
; 1563e
Function1563e: ; 1563e
@@ -19460,14 +19452,14 @@ Function1563e: ; 1563e
ret
; 15650
-Function15650: ; 15650
+PC_CheckPartyForPokemon: ; 15650
ld a, [PartyCount]
and a
ret nz
ld de, SFX_CHOOSE_PC_OPTION
call PlaySFX
ld hl, UnknownText_0x15663
- call Function15a20
+ call PC_DisplayText
scf
ret
; 15663
@@ -19481,7 +19473,7 @@ UnknownText_0x15663: ; 0x15663
Function15668: ; 15668
call Function156c2
ld hl, UnknownText_0x15a31
- call Function15a20
+ call PC_DisplayText
callba Functione3fd
and a
ret
@@ -19490,7 +19482,7 @@ Function15668: ; 15668
Function15679: ; 15679
call Function156c2
ld hl, UnknownText_0x15a36
- call Function15a20
+ call PC_DisplayText
ld b, $0
call Function15704
and a
@@ -19500,7 +19492,7 @@ Function15679: ; 15679
Function15689: ; 15689
call Function156c2
ld hl, UnknownText_0x15a3b
- call Function15a20
+ call PC_DisplayText
callba ProfOaksPC
and a
ret
@@ -19522,7 +19514,7 @@ Function156ab: ; 156ab
ret
; 156b3
-Function156b3: ; 156b3
+PC_PlayBootSound: ; 156b3
ld de, SFX_BOOT_PC
jr Function156d0
@@ -19550,16 +19542,16 @@ Function156d0: ; 156d0
; 156d9
Function156d9: ; 156d9
- call Function156b3
+ call PC_PlayBootSound
ld hl, UnknownText_0x156ff
- call Function15a20
+ call PC_DisplayText
ld b, $1
call Function15704
and a
jr nz, .asm_156f9
call Function2173
call Function321c
- call Function1ad2
+ call DrawOnMap
call Function156b8
ld c, $0
ret
@@ -19580,9 +19572,9 @@ Function15704: ; 15704
ld a, b
ld [wcf76], a
ld hl, UnknownText_0x157cc
- call Function157bb
+ call PC_DisplayTextWaitMenu
call Function15715
- call Function1c07
+ call ExitMenu
ret
; 15715
@@ -19604,7 +19596,7 @@ Function15715: ; 15715
xor a
.asm_15732
- call Function1c07
+ call ExitMenu
ret
; 15736
@@ -19654,7 +19646,7 @@ LOG_OFF EQU 6
db TOSS_ITEM
db MAIL_BOX
db TURN_OFF
- db $ff
+ db -1
.KrissPCMenuList2
db 6
@@ -19664,14 +19656,14 @@ LOG_OFF EQU 6
db MAIL_BOX
db DECORATION
db LOG_OFF
- db $ff
+ db -1
-Function157bb: ; 157bb
+PC_DisplayTextWaitMenu: ; 157bb
ld a, [Options]
push af
set 4, a
ld [Options], a
- call Function1d4f
+ call MenuTextBox
pop af
ld [Options], a
ret
@@ -19712,10 +19704,10 @@ Function157e9: ; 0x157e9
.askquantity
ld hl, .HowManyText
- call Function1d4f
+ call MenuTextBox
callba Function24fbf
- call Function1c07
- call Function1c07
+ call ExitMenu
+ call ExitMenu
jr c, .done
.withdraw
@@ -19734,15 +19726,15 @@ Function157e9: ; 0x157e9
call TossItem
predef PartyMonItemName
ld hl, .WithdrewText
- call Function1d4f
+ call MenuTextBox
xor a
ld [hBGMapMode], a
- call Function1c07
+ call ExitMenu
ret
.PackFull
ld hl, .NoRoomText
- call Function1d67
+ call MenuTextBoxBackup
ret
.done
@@ -19823,7 +19815,7 @@ Function158b8: ; 0x158b8
callba Function129d5
ret nc
ld hl, UnknownText_0x158c7
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
; 0x158c7
@@ -19884,11 +19876,11 @@ Function1590a: ; 0x1590a
.asm_1591d
ld hl, .HowManyText
- call Function1d4f
+ call MenuTextBox
callba Function24fbf
push af
- call Function1c07
- call Function1c07
+ call ExitMenu
+ call ExitMenu
pop af
jr c, .asm_1596c
@@ -19951,7 +19943,7 @@ Function15985: ; 0x15985
ld a, $0
ld [wc2ce], a
ld hl, MenuData15a08
- call Function1d3c
+ call CopyMenuDataHeader
hlcoord 0, 0
ld b, $a
ld c, $12
@@ -20030,9 +20022,9 @@ MenuData15a08: ; 0x15a08
dbw BANK(Function24ac3), Function24ac3
dbw BANK(Function244c3), Function244c3
-Function15a20: ; 15a20
- call Function1d4f
- call Function1c07
+PC_DisplayText: ; 15a20
+ call MenuTextBox
+ call ExitMenu
ret
; 15a27
@@ -20078,7 +20070,7 @@ OpenMartDialog:: ; 15a45
call GetMart
ld a, c
ld [EngineBuffer1], a
- call Function15b10
+ call LoadMartPointer
ld a, [EngineBuffer1]
ld hl, .dialogs
rst JumpTable
@@ -20090,7 +20082,7 @@ OpenMartDialog:: ; 15a45
dw HerbShop
dw BargainShop
dw Pharmacist
- dw VendingMachine
+ dw RooftopSale
; 15a61
MartDialog: ; 15a61
@@ -20114,9 +20106,9 @@ HerbShop: ; 15a6e
; 15a84
BargainShop: ; 15a84
- ld b, BANK(Unknown_15c51)
- ld de, Unknown_15c51
- call Function15b10
+ ld b, BANK(BargainShopData)
+ ld de, BargainShopData
+ call LoadMartPointer
call Function15c25
call Function1d6e
ld hl, UnknownText_0x15e6d
@@ -20126,7 +20118,7 @@ BargainShop: ; 15a84
ld a, [hli]
or [hl]
jr z, .asm_15aa7
- ld hl, wdc1e
+ ld hl, DailyFlags
set 6, [hl]
.asm_15aa7
@@ -20146,17 +20138,17 @@ Pharmacist: ; 15aae
ret
; 15ac4
-VendingMachine: ; 15ac4
- ld b, BANK(Unknown_15aee)
- ld de, Unknown_15aee
+RooftopSale: ; 15ac4
+ ld b, BANK(RooftopSaleData1)
+ ld de, RooftopSaleData1
ld hl, StatusFlags
- bit 6, [hl]
- jr z, .asm_15ad5
- ld b, BANK(Unknown_15aff)
- ld de, Unknown_15aff
+ bit 6, [hl] ; hall of fame
+ jr z, .ok
+ ld b, BANK(RooftopSaleData2)
+ ld de, RooftopSaleData2
-.asm_15ad5
- call Function15b10
+.ok
+ call LoadMartPointer
call Function15c25
call Function1d6e
ld hl, UnknownText_0x15f83
@@ -20167,15 +20159,27 @@ VendingMachine: ; 15ac4
ret
; 15aee
-Unknown_15aee: ; 15aee
- db $05, $05, $96, $00, $04, $f4, $01, $11, $f4, $01, $26, $f4, $01, $27, $b0, $04, $ff
-Unknown_15aff: ; 15aff
- db $05, $10, $e8, $03, $0e, $d0, $07, $26, $f4, $01, $02, $e8, $03, $1b, $78, $1e, $ff
+RooftopSaleData1: ; 15aee
+ db 5
+ dbw POKE_BALL, 150
+ dbw GREAT_BALL, 500
+ dbw SUPER_POTION, 500
+ dbw FULL_HEAL, 500
+ dbw REVIVE, 1200
+ db -1
+RooftopSaleData2: ; 15aff
+ db 5
+ dbw HYPER_POTION, 1000
+ dbw FULL_RESTORE, 2000
+ dbw FULL_HEAL, 500
+ dbw ULTRA_BALL, 1000
+ dbw PROTEIN, 7800
+ db -1
; 15b10
-Function15b10: ; 15b10
+LoadMartPointer: ; 15b10
ld a, b
- ld [wd03f], a
+ ld [MartPointerBank], a
ld a, e
ld [MartPointer], a
ld a, d
@@ -20201,8 +20205,9 @@ GetMart: ; 15b31
.IsAMart
ld hl, Marts
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -20239,8 +20244,8 @@ Function15b62: ; 15b62
Function15b6e: ; 15b6e
ld hl, MenuDataHeader_0x15f88
- call Function1d3c
- call Function1d81
+ call CopyMenuDataHeader
+ call InterpretMenu2
jr c, .asm_15b84
ld a, [wcfa9]
cp $1
@@ -20259,7 +20264,7 @@ Function15b6e: ; 15b6e
; 15b8d
Function15b8d: ; 15b8d
- call Function1c07
+ call ExitMenu
call ReadMart
call Function15c62
and a
@@ -20268,14 +20273,14 @@ Function15b8d: ; 15b8d
; 15b9a
Function15b9a: ; 15b9a
- call Function1c07
+ call ExitMenu
call Function15eb3
ld a, $5
ret
; 15ba3
Function15ba3: ; 15ba3
- call Function1c07
+ call ExitMenu
ld hl, UnknownText_0x15fb4
call Function15fcd
ld a, $ff
@@ -20302,7 +20307,7 @@ ReadMart: ; 15bbb
ld [de], a
inc hl
inc de
- cp $ff
+ cp -1
jr nz, .CopyMart
ld hl, DefaultFlypoint
ld de, CurMart + 1
@@ -20336,13 +20341,13 @@ GetMartPrice: ; 15bf0
ld [StringBuffer2 + 1], a
ld hl, StringBuffer1
ld de, StringBuffer2
- ld bc, $82 << 8 + 6 ; 6 digits
+ lb bc, $82, 6 ; 6 digits
call PrintNum
pop hl
ld de, StringBuffer1
ld c, 6 / 2 ; 6 digits
-.asm_15c0b
+.loop
call .TileToNum
swap a
ld b, a
@@ -20350,7 +20355,7 @@ GetMartPrice: ; 15bf0
or b
ld [hli], a
dec c
- jr nz, .asm_15c0b
+ jr nz, .loop
ret
; 15c1a
@@ -20375,12 +20380,12 @@ Function15c25: ; 15c25
inc hl
ld bc, wd002
ld de, CurMart + 1
-.asm_15c33
+.loop
ld a, [hli]
ld [de], a
inc de
- cp $ff
- jr z, .asm_15c4b
+ cp -1
+ jr z, .done
push de
ld a, [hli]
@@ -20395,17 +20400,23 @@ Function15c25: ; 15c25
ld c, l
pop hl
pop de
- jr .asm_15c33
+ jr .loop
-.asm_15c4b
+.done
pop hl
ld a, [hl]
ld [CurMart], a
ret
; 15c51
-Unknown_15c51: ; 15c51
- db $05, $24, $94, $11, $6e, $8a, $02, $6f, $ac, $0d, $83, $84, $03, $84, $f8, $11, $ff
+BargainShopData: ; 15c51
+ db 5
+ dbw NUGGET, 4500
+ dbw PEARL, 650
+ dbw BIG_PEARL, 3500
+ dbw STARDUST, 900
+ dbw STAR_PIECE, 4600
+ db -1
; 15c62
@@ -20432,8 +20443,9 @@ Function15c7d: ; 15c7d
pop af
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -20443,8 +20455,9 @@ Function15c7d: ; 15c7d
Function15c91: ; 15c91
call Function15ca3
+rept 2
inc hl
- inc hl
+endr
ld a, [hl]
and a
jp z, Function15d83
@@ -20458,9 +20471,9 @@ Function15ca3: ; 15ca3
ld e, a
ld d, 0
ld hl, .data_15cb0
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ret
; 15cb0
@@ -20508,9 +20521,9 @@ Unknown_15ce3: ; 15ce3
Function15cef: ; 15cef
callba Function24ae8
- call Function1ad2
+ call DrawOnMap
ld hl, MenuDataHeader_0x15e18
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [WalkingX]
ld [wcf88], a
ld a, [WalkingY]
@@ -20533,9 +20546,9 @@ Function15cef: ; 15cef
call Function15d97
jr c, .asm_15d68
ld de, Money
- ld bc, $ffc3
+ ld bc, hMoneyTemp
ld a, $3
- call Function1600b
+ call CheckMoney
jr c, .asm_15d79
ld hl, NumItems
call ReceiveItem
@@ -20548,8 +20561,8 @@ Function15cef: ; 15cef
call FlagAction
call Function15fc3
ld de, Money
- ld bc, $ffc3
- call Function15ffa
+ ld bc, hMoneyTemp
+ call TakeMoney
ld a, $4
call Function15c7d
call Functiona36
@@ -20584,7 +20597,7 @@ Function15d83: ; 15d83
ld a, $0
call Function15c7d
callba Function24fc9
- call Function1c07
+ call ExitMenu
ret
; 15d97
@@ -20616,16 +20629,16 @@ Function15da5: ; 15da5
ld h, [hl]
ld l, a
inc hl
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
inc hl
ld a, [hli]
ld [$ffc5], a
ld a, [hl]
ld [$ffc4], a
xor a
- ld [$ffc3], a
+ ld [hMoneyTemp], a
and a
ret
@@ -20644,7 +20657,7 @@ Function15de2: ; 15de2
ld a, $63
ld [wd10d], a
callba Function24fcf
- call Function1c07
+ call ExitMenu
ret
; 15df9
@@ -20657,9 +20670,9 @@ Function15df9: ; 15df9
ld h, [hl]
ld l, a
inc hl
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
inc hl
ld e, [hl]
inc hl
@@ -20703,9 +20716,9 @@ Function15e30: ; 15e30
ld c, a
ld b, 0
ld hl, DefaultFlypoint
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
push de
ld d, h
ld e, l
@@ -20864,7 +20877,7 @@ Function15ece: ; 15ece
Function15ed3: ; 15ed3
ld hl, UnknownText_0x15edb
- call Function1d67
+ call MenuTextBoxBackup
and a
ret
; 15edb
@@ -20914,7 +20927,7 @@ Function15efd: ; 15efd
call PrintText
callba Function24af8
callba Function24fe1
- call Function1c07
+ call ExitMenu
jr c, .asm_15f6e
hlcoord 1, 14
ld bc, $0312
@@ -20924,8 +20937,8 @@ Function15efd: ; 15efd
call YesNoBox
jr c, .asm_15f6e
ld de, Money
- ld bc, $ffc3
- call Function15fd7
+ ld bc, hMoneyTemp
+ call GiveMoney
ld a, [wd107]
ld hl, NumItems
call TossItem
@@ -20940,7 +20953,7 @@ Function15efd: ; 15efd
call Functiona36
.asm_15f6e
- call Function1c07
+ call ExitMenu
and a
ret
; 15f73
@@ -21030,21 +21043,21 @@ Function15fc3: ; 15fc3
; 15fcd
Function15fcd: ; 15fcd
- call Function1d4f
+ call MenuTextBox
call Functiona36
- call Function1c07
+ call ExitMenu
ret
; 15fd7
-Function15fd7:: ; 15fd7
+GiveMoney:: ; 15fd7
ld a, $3
call Function16053
- ld bc, Unknown_15ff7
+ ld bc, MaxMoney
ld a, $3
- call Function1600b
+ call CheckMoney
jr z, .asm_15ff5
jr c, .asm_15ff5
- ld hl, Unknown_15ff7
+ ld hl, MaxMoney
ld a, [hli]
ld [de], a
inc de
@@ -21061,12 +21074,12 @@ Function15fd7:: ; 15fd7
ret
; 15ff7
-Unknown_15ff7: ; 15ff7
+MaxMoney: ; 15ff7
dt 999999
; 15ffa
-Function15ffa:: ; 15ffa
+TakeMoney:: ; 15ffa
ld a, $3
call Function16035
jr nc, .asm_16009
@@ -21084,9 +21097,9 @@ Function15ffa:: ; 15ffa
ret
; 1600b
-Function1600b:: ; 1600b
+CheckMoney:: ; 1600b
ld a, $3
-Function1600d: ; 1600d
+CheckFunds: ; 1600d
push hl
push de
push bc
@@ -21196,13 +21209,13 @@ Function16055: ; 16055
ret
; 1606f
-Function1606f:: ; 1606f
+GiveCoins:: ; 1606f
ld a, $2
ld de, Coins
call Function16055
ld a, $2
ld bc, Unknown_1608d
- call Function1600d
+ call CheckFunds
jr c, .asm_1608b
ld hl, Unknown_1608d
ld a, [hli]
@@ -21223,7 +21236,7 @@ Unknown_1608d: ; 1608d
; 1608f
-Function1608f:: ; 1608f
+TakeCoins:: ; 1608f
ld a, $2
ld de, Coins
call Function16037
@@ -21240,17 +21253,17 @@ Function1608f:: ; 1608f
ret
; 160a1
-Function160a1:: ; 160a1
+CheckCoins:: ; 160a1
ld a, $2
ld de, Coins
- jp Function1600d
+ jp CheckFunds
; 160a9
INCLUDE "items/marts.asm"
-Function16218: ; 16218
+Special_BankOfMom: ; 16218
ld a, [$ffaa]
push af
ld a, $1
@@ -21275,8 +21288,9 @@ Function16233: ; 16233
ld e, a
ld d, 0
ld hl, Jumptable_16242
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -21356,9 +21370,9 @@ Function162a8: ; 162a8
call PrintText
call Function1d6e
ld hl, MenuDataHeader_0x166b5
- call Function1d3c
- call Function1d81
- call Function1c17
+ call CopyMenuDataHeader
+ call InterpretMenu2
+ call WriteBackup
jr c, .asm_162ce
ld a, [wcfa9]
cp $1
@@ -21393,8 +21407,9 @@ Function162e0: ; 162e0
call PrintText
xor a
ld hl, StringBuffer2
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld a, $5
ld [wcf64], a
@@ -21402,7 +21417,7 @@ Function162e0: ; 162e0
call Function16517
call Function1656b
call Function16571
- call Function1c17
+ call WriteBackup
jr c, .asm_1636d
ld hl, StringBuffer2
ld a, [hli]
@@ -21412,7 +21427,7 @@ Function162e0: ; 162e0
jr z, .asm_1636d
ld de, Money
ld bc, StringBuffer2
- callba Function1600b
+ callba CheckMoney
jr c, .asm_1635f
ld hl, StringBuffer2
ld de, StringBuffer2 + 3
@@ -21420,11 +21435,11 @@ Function162e0: ; 162e0
call CopyBytes
ld bc, wd851
ld de, StringBuffer2
- callba Function15fd7
+ callba GiveMoney
jr c, .asm_16366
ld bc, StringBuffer2 + 3
ld de, Money
- callba Function15ffa
+ callba TakeMoney
ld hl, StringBuffer2
ld de, wd851
ld bc, $0003
@@ -21460,8 +21475,9 @@ Function16373: ; 16373
call PrintText
xor a
ld hl, StringBuffer2
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld a, $5
ld [wcf64], a
@@ -21469,7 +21485,7 @@ Function16373: ; 16373
call Function16512
call Function1656b
call Function16571
- call Function1c17
+ call WriteBackup
jr c, .asm_16400
ld hl, StringBuffer2
ld a, [hli]
@@ -21483,15 +21499,15 @@ Function16373: ; 16373
call CopyBytes
ld de, wd851
ld bc, StringBuffer2
- callba Function1600b
+ callba CheckMoney
jr c, .asm_163f2
ld bc, Money
ld de, StringBuffer2
- callba Function15fd7
+ callba GiveMoney
jr c, .asm_163f9
ld bc, StringBuffer2 + 3
ld de, wd851
- callba Function15ffa
+ callba TakeMoney
ld hl, StringBuffer2
ld de, Money
ld bc, $0003
@@ -21561,11 +21577,11 @@ DSTChecks: ; 16439
jr z, .asm_16447
and a ; within one hour of 00:00?
jr z, .LostBooklet
- jr .next
+ jr .loop
.asm_16447
cp 23 ; within one hour of 23:00?
- jr nz, .next
+ jr nz, .loop
; fallthrough
.LostBooklet
@@ -21581,7 +21597,7 @@ DSTChecks: ; 16439
call Function13e5
ret
-.next
+.loop
call Function164ea
bccoord 1, 14
ld a, [wDST]
@@ -21703,7 +21719,7 @@ Function1651a: ; 1651a
push de
xor a
ld [hBGMapMode], a
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $0612
call TextBox
hlcoord 1, 2
@@ -21727,7 +21743,7 @@ Function1651a: ; 1651a
ld de, StringBuffer2
ld bc, $a306
call PrintNum
- call Function1ad2
+ call DrawOnMap
call Function3238
ret
; 1656b
@@ -21821,7 +21837,7 @@ Function165b9: ; 165b9
ld c, l
ld b, h
ld de, StringBuffer2
- callba Function15fd7
+ callba GiveMoney
ret
.asm_165f5
@@ -21830,7 +21846,7 @@ Function165b9: ; 165b9
ld c, l
ld b, h
ld de, StringBuffer2
- callba Function15ffa
+ callba TakeMoney
ret
; 16607
@@ -21839,9 +21855,9 @@ Function16607: ; 16607
push de
ld e, a
ld d, 0
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
pop de
ret
; 16613
@@ -21998,7 +22014,7 @@ MenuData2_0x166bd: ; 0x166bd
db "CANCEL@"
; 0x166d6
-Function166d6: ; 166d6
+Special_DayCareMan: ; 166d6
ld hl, wDaycareMan
bit 0, [hl]
jr nz, .asm_166fe
@@ -22037,7 +22053,7 @@ Function166d6: ; 166d6
ret
; 1672a
-Function1672a: ; 1672a
+Special_DayCareLady: ; 1672a
ld hl, wDaycareLady
bit 0, [hl]
jr nz, .asm_16752
@@ -22150,7 +22166,7 @@ Function16798: ; 16798
; 167f1
UnknownText_0x167f1: ; 0x167f1
- ;
+ ;
text_jump UnknownText_0x1bdaa7
db "@"
; 0x167f6
@@ -22188,7 +22204,7 @@ Function16807: ; 16807
.asm_1682d
ld de, Money
ld bc, StringBuffer2 + 2
- callba Function1600b
+ callba CheckMoney
jr c, .asm_16848
ld a, [PartyCount]
cp $6
@@ -22215,7 +22231,7 @@ Function16807: ; 16807
Function16850: ; 16850
ld bc, StringBuffer2 + 2
ld de, Money
- callba Function15ffa
+ callba TakeMoney
ld a, $d
call Function1689b
ld a, [CurPartySpecies]
@@ -22252,8 +22268,9 @@ Function1689b: ; 1689b
ld e, a
ld d, 0
ld hl, TextTable_168aa
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -22404,7 +22421,7 @@ UnknownText_0x16931: ; 0x16931
db "@"
; 0x16936
-Function16936: ; 16936
+Special_DayCareManOutside: ; 16936
ld hl, wDaycareMan
bit 6, [hl]
jr nz, Function16949
@@ -22753,8 +22770,9 @@ Function16a66: ; 16a66
ld hl, wEggMonHappiness
ld [hli], a
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld a, [CurPartyLevel]
ld [wEggMonLevel], a
@@ -22791,12 +22809,12 @@ Function16be4: ; 16be4
lb bc, BANK(UnownDexBTile), 1
call Request1bpp
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $0312
call TextBox
hlcoord 0, 5
- ld bc, $0707
+ lb bc, 7, 7
call TextBox
hlcoord 0, 14
@@ -22914,7 +22932,7 @@ Function16cc8: ; 16cc8
hlcoord 1, 6
xor a
ld [$ffad], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
ld de, $9310
callba Functione0000
@@ -22942,7 +22960,7 @@ Function16cff: ; 16cff
Function16d20: ; 16d20
hlcoord 1, 6
- ld bc, $0707
+ lb bc, 7, 7
call ClearBox
hlcoord 1, 9
ld de, UnownDexVacantString
@@ -22988,14 +23006,14 @@ INCBIN "gfx/unknown/016da4.1bpp"
; 16dac
Function16dac: ; 16dac
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
hlcoord 7, 11
ld a, $31
ld [$ffad], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
ret
; 16dc7
@@ -23003,7 +23021,7 @@ Function16dac: ; 16dac
Function16dc7: ; 16dc7
ld hl, UnknownText_0x16e04
call PrintText
- callba Function50000
+ callba SelectMonFromParty
jr c, .asm_16df8
ld a, [CurPartySpecies]
cp EGG
@@ -23234,7 +23252,7 @@ Function16f3e:: ; 16f3e
.loop
ld a, [de]
inc de
- cp $ff
+ cp -1
ret z
cp EGG
jr nz, .next
@@ -23252,7 +23270,7 @@ Function16f3e:: ; 16f3e
jr .loop
; 16f5e
-Function16f5e:: ; 16f5e
+OverworldHatchEgg:: ; 16f5e
call ResetWindow
call Function1d6e
call Function16f70
@@ -23270,7 +23288,7 @@ Function16f70: ; 16f70 (5:6f70)
Function16f7a: ; 16f7a (5:6f7a)
ld a, [de]
inc de
- cp $ff
+ cp -1
jp z, Function1708a
push de
push hl
@@ -23296,11 +23314,12 @@ Function16f7a: ; 16f7a (5:6f7a)
ld a, [CurPartySpecies]
cp TOGEPI
- jr nz, .asm_16fbf
- ld de, $54
- ld b, $1
+ jr nz, .nottogepi
+ ; set the event flag for hatching togepi
+ ld de, EVENT_TOGEPI_HATCHED
+ ld b, SET_FLAG
call EventFlagAction
-.asm_16fbf
+.nottogepi
pop de
@@ -23361,7 +23380,7 @@ Function16f7a: ; 16f7a (5:6f7a)
ld [hl], a
ld a, [CurPartyMon]
ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
- ld bc, $b
+ ld bc, NAME_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -23380,7 +23399,7 @@ Function16f7a: ; 16f7a (5:6f7a)
call PrintText
call YesNoBox
pop de
- jr c, .asm_17074
+ jr c, .nonickname
ld a, $1
ld [wd26b], a
xor a
@@ -23392,9 +23411,9 @@ Function16f7a: ; 16f7a (5:6f7a)
ld de, StringBuffer1
call InitName
jr Function1707d
-.asm_17074
+.nonickname
ld hl, StringBuffer1
- ld bc, $b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
Function1707d: ; 1707d (5:707d)
@@ -23437,7 +23456,7 @@ Function17090: ; 17090
; 170b0 (5:70b0)
UnknownText_0x170b0: ; 0x170b0
- ;
+ ;
text_jump UnknownText_0x1c0db8
db "@"
; 0x170b5
@@ -23459,29 +23478,29 @@ Function170bf: ; 170bf
ld d, h
ld e, l
ld b, NUM_MOVES
-.asm_170c6
+.loop
ld a, [de]
and a
- jr z, .asm_170e3
+ jr z, .done
ld hl, wEggMonMoves
ld c, NUM_MOVES
-.asm_170cf
+.next
ld a, [de]
cp [hl]
- jr z, .asm_170df
+ jr z, .skip
inc hl
dec c
- jr nz, .asm_170cf
+ jr nz, .next
call Function170e4
- jr nc, .asm_170df
+ jr nc, .skip
call Function17169
-.asm_170df
+.skip
inc de
dec b
- jr nz, .asm_170c6
+ jr nz, .loop
-.asm_170e3
+.done
ret
; 170e4
@@ -23494,89 +23513,91 @@ GLOBAL EggMoves
ld c, a
ld b, 0
ld hl, EggMovePointers
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, BANK(EggMovePointers)
call GetFarHalfword
-.asm_170f6
+.loop
ld a, BANK(EggMoves)
call GetFarByte
- cp $ff
- jr z, .asm_17107
+ cp -1
+ jr z, .found_mon
ld b, a
ld a, [de]
cp b
- jr z, .asm_17163
+ jr z, .done_carry
inc hl
- jr .asm_170f6
+ jr .loop
-.asm_17107
+.found_mon
call Function1720b
ld b, NUM_MOVES
-.asm_1710c
+.loop2
ld a, [de]
cp [hl]
- jr z, .asm_17116
+ jr z, .found_eggmove
inc hl
dec b
- jr z, .asm_17146
- jr .asm_1710c
+ jr z, .inherit_tmhm
+ jr .loop2
-.asm_17116
+.found_eggmove
ld a, [wEggMonSpecies]
dec a
ld c, a
ld b, 0
ld hl, EvosAttacksPointers
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, BANK(EvosAttacksPointers)
call GetFarHalfword
-.asm_17127
+.loop3
ld a, BANK(EvosAttacks)
call GetFarByte
inc hl
and a
- jr nz, .asm_17127
-.asm_17130
+ jr nz, .loop3
+.loop4
ld a, BANK(EvosAttacks)
call GetFarByte
and a
- jr z, .asm_17146
+ jr z, .inherit_tmhm
inc hl
ld a, BANK(EvosAttacks)
call GetFarByte
ld b, a
ld a, [de]
cp b
- jr z, .asm_17163
+ jr z, .done_carry
inc hl
- jr .asm_17130
+ jr .loop4
-.asm_17146
+.inherit_tmhm
ld hl, TMHMMoves
-.asm_17149
+.loop5
ld a, BANK(TMHMMoves)
call GetFarByte
inc hl
and a
- jr z, .asm_17166
+ jr z, .done
ld b, a
ld a, [de]
cp b
- jr nz, .asm_17149
+ jr nz, .loop5
ld [wd262], a
predef CanLearnTMHMMove
ld a, c
and a
- jr z, .asm_17166
+ jr z, .done
-.asm_17163
+.done_carry
pop bc
scf
ret
-.asm_17166
+.done
pop bc
and a
ret
@@ -23589,12 +23610,12 @@ Function17169: ; 17169
ld b, a
ld hl, wEggMonMoves
ld c, NUM_MOVES
-.asm_17172
+.loop
ld a, [hli]
and a
- jr z, .asm_17187
+ jr z, .done
dec c
- jr nz, .asm_17172
+ jr nz, .loop
ld de, wEggMonMoves
ld hl, wEggMonMoves + 1
ld a, [hli]
@@ -23606,7 +23627,7 @@ Function17169: ; 17169
ld a, [hli]
ld [de], a
-.asm_17187
+.done
dec hl
ld [hl], b
ld hl, wEggMonMoves
@@ -23621,17 +23642,17 @@ Function17197: ; 17197
ld hl, wBreedMon2Moves
ld a, [wBreedMon1Species]
cp DITTO
- jr z, .asm_171b1
+ jr z, .ditto1
ld a, [wBreedMon2Species]
cp DITTO
- jr z, .asm_171d7
+ jr z, .ditto2
ld a, [wDittoInDaycare]
and a
ret z
ld hl, wBreedMon1Moves
ret
-.asm_171b1
+.ditto1
ld a, [CurPartySpecies]
push af
ld a, [wBreedMon2Species]
@@ -23643,11 +23664,11 @@ Function17197: ; 17197
ld a, $3
ld [MonType], a
predef GetGender
- jr c, .asm_171fb
- jr nz, .asm_171fb
- jr .asm_17203
+ jr c, .inherit_mon2_moves
+ jr nz, .inherit_mon2_moves
+ jr .inherit_mon1_moves
-.asm_171d7
+.ditto2
ld a, [CurPartySpecies]
push af
ld a, [wBreedMon1Species]
@@ -23659,16 +23680,16 @@ Function17197: ; 17197
ld a, $3
ld [MonType], a
predef GetGender
- jr c, .asm_17203
- jr nz, .asm_17203
+ jr c, .inherit_mon1_moves
+ jr nz, .inherit_mon1_moves
-.asm_171fb
+.inherit_mon2_moves
ld hl, wBreedMon2Moves
pop af
ld [CurPartySpecies], a
ret
-.asm_17203
+.inherit_mon1_moves
ld hl, wBreedMon1Moves
pop af
ld [CurPartySpecies], a
@@ -23682,12 +23703,12 @@ Function1720b: ; 1720b
ret z
ld a, [wBreedMon2Species]
cp DITTO
- jr z, .asm_17220
+ jr z, .ditto
ld a, [wDittoInDaycare]
and a
ret z
-.asm_17220
+.ditto
ld hl, wBreedMon2Moves
ret
; 17224
@@ -23718,7 +23739,7 @@ Function17254: ; 17254 (5:7254)
call WaitTop
push hl
push bc
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $7f
call ByteFill
@@ -23936,7 +23957,7 @@ Function17421: ; 17421
ld a, [wDaycareLady]
bit 0, a
jr z, Function1745f
- call Functionaaf
+ call KeepTextOpen
ld hl, wBreedMon2Nick
call Function1746c
jp PrintText
@@ -23949,7 +23970,7 @@ Function17440: ; 17440
ld a, [wDaycareMan]
bit 0, a
jr z, Function1745f
- call Functionaaf
+ call KeepTextOpen
ld hl, wBreedMon1Nick
call Function1746c
jp PrintText
@@ -24061,10 +24082,9 @@ Function20000: ; 20000 (8:4000)
ld e, a
ld d, 0
ld hl, Unknown_20015
+rept 4
add hl, de
- add hl, de
- add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -24099,7 +24119,7 @@ Function20021: ; 20021 (8:4021)
ld hl, UnknownText_0x2004c
call PrintText
call Function20051
- call Function1c07
+ call ExitMenu
pop bc
ld hl, Options
ld [hl], b
@@ -24320,7 +24340,7 @@ Function2400e:: ; 2400e
ld a, [wcf94]
rst FarCall
call Function24085
- call Function1ad2
+ call DrawOnMap
call Function321c
call Function2408f
ret
@@ -24332,7 +24352,7 @@ Function24022:: ; 24022
rst FarCall
call Function24085
callba MobileTextBorder
- call Function1ad2
+ call DrawOnMap
call Function321c
call Function2408f
ret
@@ -24344,7 +24364,7 @@ Function2403c:: ; 2403c
rst FarCall
call Function24085
callba MobileTextBorder
- call Function1ad2
+ call DrawOnMap
call Function321c
call Function2411a
ld hl, wcfa5
@@ -24980,7 +25000,7 @@ Function243cd: ; 243cd
dec c
jr nz, .asm_243d7
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
@@ -25010,19 +25030,19 @@ Function243e8:: ; 243e8
call Function1c47
ld a, [wcf81]
bit 0, a
- jr z, .asm_24411
+ jr z, .next
ld d, h
ld e, l
call Function1c23
-.asm_24411
+.next
call Function1c7e
ld a, h
or l
- jr z, .asm_2441b
+ jr z, .next2
call Function1c47
-.asm_2441b
+.next2
pop af
ld [rSVBK], a
ld hl, wcf78
@@ -25037,17 +25057,17 @@ Function24423: ; 24423
ret z
xor a
call GetSRAMBank
- ld hl, TileMap
+ hlcoord 0, 0
ld de, $a000
- ld bc, $0168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyBytes
call CloseSRAM
call Function2173
xor a
call GetSRAMBank
ld hl, $a000
- ld de, TileMap
- ld bc, $0168
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
.asm_2444c
ld a, [hl]
cp $61
@@ -25138,9 +25158,9 @@ Function2446d:: ; 2446d
ld a, $1
ld [hli], a
xor a
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ret
; 244c3
@@ -25160,11 +25180,11 @@ Function244c3: ; 0x244c3
ret
; 0x244e3
-Function244e3:: ; 244e3
+Pokepic:: ; 244e3
ld hl, MenuDataHeader_0x24547
- call Function1d3c
+ call CopyMenuDataHeader
call Function1cbb
- call Function1ad2
+ call DrawOnMap
call Function321c
ld b, $12
call GetSGBLayout
@@ -25184,15 +25204,15 @@ Function244e3:: ; 244e3
call GetTileCoord
ld a, $80
ld [$ffad], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
call WaitBGMap
ret
; 24528
-Function24528:: ; 24528
+PokepicYesOrNo:: ; 24528
ld hl, MenuDataHeader_0x24547
- call Function1d3c
+ call CopyMenuDataHeader
call Function1ce1
call WaitBGMap
call ClearSGB
@@ -25200,7 +25220,7 @@ Function24528:: ; 24528
ld [hBGMapMode], a
call Function2173
call Function321c
- call Function1ad2
+ call DrawOnMap
call Functione51
ret
; 24547
@@ -25222,14 +25242,14 @@ Function2454f: ; 2454f
ld bc, MapObjects
ld de, wd81e
xor a
-.asm_24561
+.loop
push af
push bc
push de
call Function245a7
- jr c, .asm_2456c
+ jr c, .next
call Function2457d
-.asm_2456c
+.next
pop de
ld [de], a
inc de
@@ -25241,44 +25261,44 @@ Function2454f: ; 2454f
pop af
inc a
cp $10
- jr nz, .asm_24561
+ jr nz, .loop
ret
Function2457d: ; 2457d (9:457d)
- ld hl, $1
+ ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
- jr z, .asm_245a3
- ld hl, $c
+ jr z, .minus_one
+ ld hl, MAPOBJECT_EVENT_FLAG
add hl, bc
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
- cp $ff
- jr nz, .asm_24598
+ cp -1
+ jr nz, .check
ld a, e
- cp $ff
- jr z, .asm_245a1
- jr .asm_245a3
-.asm_24598
- ld b, $2
+ cp -1
+ jr z, .zero
+ jr .minus_one
+.check
+ ld b, CHECK_FLAG
call EventFlagAction
ld a, c
and a
- jr nz, .asm_245a3
-.asm_245a1
+ jr nz, .minus_one
+.zero
xor a
ret
-.asm_245a3
- ld a, $ff
+.minus_one
+ ld a, -1
scf
ret
Function245a7: ; 245a7 (9:45a7)
call Function18f5
- ld a, $ff
+ ld a, -1
ret c
xor a
ret
@@ -25301,26 +25321,26 @@ Function245af:: ; 245af
; 245cb
Function245cb:: ; 245cb
-.asm_245cb
+.loop
call Function24609
jp c, Function245d6
call z, Function245e1
- jr .asm_245cb
+ jr .loop
; 245d6
Function245d6: ; 245d6
call Function1ff8
ld [wcf73], a
- ld a, $0
+ ld a, 0
ld [$ffaa], a
ret
; 245e1
Function245e1: ; 245e1
call Function245f1
- ld a, $1
+ ld a, 1
ld [hBGMapMode], a
- ld c, $3
+ ld c, 3
call DelayFrames
xor a
ld [hBGMapMode], a
@@ -26058,8 +26078,9 @@ Function24a80: ; 24a80 (9:4a80)
ld c, a
ld b, 0
ld hl, Unknown_24a91
+rept 2
add hl, bc
- add hl, bc
+endr
ld c, [hl]
inc hl
ld b, [hl]
@@ -26130,12 +26151,12 @@ Function24ac3: ; 0x24ac3
Function24ae8: ; 24ae8
ld hl, MenuDataHeader_0x24b15
- call Function1d3c
+ call CopyMenuDataHeader
jr Function24b01
Function24af0: ; 24af0
ld hl, MenuDataHeader_0x24b1d
- call Function1d3c
+ call CopyMenuDataHeader
jr Function24b01
Function24af8: ; 24af8
@@ -26223,7 +26244,7 @@ Function24b8f: ; 24b8f
ld a, [hl]
push af
set 4, [hl]
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $3
ld c, $7
call TextBox
@@ -26253,7 +26274,7 @@ String24bd4: ; 24bd4
; 24bdc
Function24bdc: ; 24bdc
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $5
ld c, $11
call TextBox
@@ -26340,8 +26361,9 @@ Function24c64: ; 24c64
ld a, [hl]
call Function24c94
.asm_24c89
+rept 2
inc hl
- inc hl
+endr
jr .asm_24c73
.asm_24c8d
@@ -26431,7 +26453,7 @@ Function24d19: ; 24d19
call Function24d59
ld [MenuSelection], a
- call Function1c07
+ call ExitMenu
ret
; 24d3f
@@ -26674,11 +26696,11 @@ Function24e83: ; 24e83
Function24e99: ; 24e99
; BattleMonMenu
ld hl, MenuDataHeader_0x24ed4
- call Function1d3c
+ call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
call Function1cbb
- call Function1ad2
+ call DrawOnMap
call Function1c89
call WaitBGMap
call Function1c66
@@ -26730,7 +26752,7 @@ LoadBattleMenu: ; 24ef2
call Function2039
ld a, [wcf88]
ld [wd0d2], a
- call Function1c07
+ call ExitMenu
ret
; 24f0b
@@ -26750,10 +26772,10 @@ ContestBattleMenu: ; 24f13
Function24f19: ; 24f19
ld a, [wd0d2]
ld [wcf88], a
- call Function202a
+ call InterpretMenu
ld a, [wcf88]
ld [wd0d2], a
- call Function1c07
+ call ExitMenu
ret
; 24f2c
@@ -27047,7 +27069,7 @@ Function250c1: ; 250c1
Function250d1: ; 250d1
push hl
- ld hl, $ffc3
+ ld hl, hMoneyTemp
ld a, [hMultiplicand]
ld [hli], a
ld a, [$ffb5]
@@ -27056,7 +27078,7 @@ Function250d1: ; 250d1
ld [hl], a
pop hl
inc hl
- ld de, $ffc3
+ ld de, hMoneyTemp
ld bc, $2306
call PrintNum
call WaitBGMap
@@ -27144,9 +27166,9 @@ Function2513b: ; 2513b (9:513b)
call WaitBGMap
ld hl, wcf63
xor a
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ret
@@ -27155,8 +27177,9 @@ Function2518e: ; 2518e (9:518e)
ld e, a
ld d, $0
ld hl, Jumptable_2519d
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -27306,7 +27329,7 @@ Function25279: ; 25279 (9:5279)
ret
Function25299: ; 25299 (9:5299)
- ld hl, TileMap
+ hlcoord 0, 0
ld d, $5
call Function253b0
hlcoord 2, 2
@@ -27367,7 +27390,7 @@ Function2530a: ; 2530a (9:530a)
hlcoord 2, 8
ld de, Tilemap_25366
call Function253a8
- ld a, [StatusFlags]
+ ld a, [StatusFlags] ; pokedex
bit 0, a
ret nz
hlcoord 1, 9
@@ -27399,10 +27422,9 @@ Function2536c: ; 2536c (9:536c)
ld c, $4
.asm_2537c
call Function253f4
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
dec c
jr nz, .asm_2537c
hlcoord 2, 13
@@ -27410,10 +27432,9 @@ Function2536c: ; 2536c (9:536c)
ld c, $4
.asm_2538d
call Function253f4
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
dec c
jr nz, .asm_2538d
xor a
@@ -27694,7 +27715,7 @@ CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp"
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
- call Function1d4f
+ call MenuTextBox
call YesNoBox
jr c, .shutdown
call ProfOaksPCBoot ; player chose "yes"?
@@ -27702,7 +27723,7 @@ ProfOaksPC: ; 0x265d3
ld hl, OakPCText4
call PrintText
call Functiona36
- call Function1c07
+ call ExitMenu
ret
; 0x265ee
@@ -27783,10 +27804,9 @@ FindOakRating: ; 0x2666b
ld a, [hli]
cp c
jr nc, .match
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
jr .loop
.match
@@ -28004,7 +28024,7 @@ _KrisDecorationMenu: ; 0x2675c
jr nc, .asm_2676f
.asm_2678e
- call Function1c07
+ call ExitMenu
pop af
ld [wcf76], a
ld a, [wd1ee]
@@ -28081,25 +28101,25 @@ Function26830: ; 26830 (9:6830)
Function2683a: ; 2683a (9:683a)
ld hl, Jumptable_26855
-.asm_2683d
+.loop
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
or e
- jr z, .asm_26854
+ jr z, .done
push hl
call _de_
pop hl
- jr nc, .asm_26851
+ jr nc, .next
ld a, [hl]
push hl
call Function26830
pop hl
-.asm_26851
+.next
inc hl
- jr .asm_2683d
-.asm_26854
+ jr .loop
+.done
ret
; 26855 (9:6855)
@@ -28118,30 +28138,30 @@ Function2686c: ; 2686c
xor a
ld hl, DefaultFlypoint
ld [hli], a
- ld a, $ff
+ ld a, -1
ld bc, $0010
call ByteFill
ret
; 2687a
-Function2687a: ; 2687a
-.asm_2687a
+CheckAllDecorationFlags: ; 2687a
+.loop
ld a, [hli]
- cp $ff
- jr z, .asm_26890
+ cp -1
+ jr z, .done
push hl
push af
- ld b, $2
- call Function26a3b
+ ld b, CHECK_FLAG
+ call DecorationFlagAction
ld a, c
and a
pop bc
ld a, b
call nz, Function26891
pop hl
- jr .asm_2687a
+ jr .loop
-.asm_26890
+.done
ret
; 26891
@@ -28160,7 +28180,7 @@ Function2689b: ; 2689b
push hl
call Function2686c
pop hl
- call Function2687a
+ call CheckAllDecorationFlags
pop bc
ld a, [DefaultFlypoint]
and a
@@ -28274,7 +28294,7 @@ Function26925: ; 26925
Unknown_2692d: ; 2692d
db 30, 31, 32, 33, 34, 35, 36, 37, 38, 39
db 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
- db 50, 51, 52, $ff
+ db 50, 51, 52, -1
; 26945
Function26945: ; 26945
@@ -28291,7 +28311,7 @@ Function2694d: ; 2694d
; 26955
Unknown_26955: ; 26955
- db 26, 27, 28, $ff
+ db 26, 27, 28, -1
; 26959
Function26959: ; 26959
@@ -28302,31 +28322,31 @@ Function26959: ; 26959
Function2695b: ; 2695b
ld a, [DefaultFlypoint]
and a
- jr z, .asm_269a9
- cp $8
- jr nc, .asm_2697b
+ jr z, .empty
+ cp 8
+ jr nc, .beyond_eight
xor a
ld [wcf76], a
ld hl, MenuDataHeader_0x269b5
call LoadMenuDataHeader
call Function1e5d
- jr c, .asm_26977
- call Function26a02
+ jr c, .no_action_1
+ call DoDecorationAction2
-.asm_26977
- call Function1c07
+.no_action_1
+ call ExitMenu
ret
-.asm_2697b
+.beyond_eight
ld hl, DefaultFlypoint
ld e, [hl]
dec [hl]
- ld d, $0
+ ld d, 0
add hl, de
- ld [hl], $ff
+ ld [hl], -1
call Function1d6e
ld hl, MenuDataHeader_0x269c5
- call Function1d3c
+ call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
call Function352f
@@ -28334,17 +28354,17 @@ Function2695b: ; 2695b
ld [wd0e4], a
call Function350c
ld a, [wcf73]
- cp $2
- jr z, .asm_269a5
- call Function26a02
+ cp 2
+ jr z, .no_action_2
+ call DoDecorationAction2
-.asm_269a5
- call Function1c07
+.no_action_2
+ call ExitMenu
ret
-.asm_269a9
+.empty
ld hl, UnknownText_0x269b0
- call Function1d67
+ call MenuTextBoxBackup
ret
; 269b0
@@ -28366,7 +28386,7 @@ MenuData2_0x269bd: ; 0x269bd
db $a0 ; flags
db 0 ; items
dw wd002
- dw Function269f3
+ dw DecorationMenuFunction
dw DecorationAttributes
; 0x269c5
@@ -28383,71 +28403,71 @@ MenuData2_0x269cd: ; 0x269cd
db 8, 0 ; rows, columns
db 1 ; horizontal spacing
dbw 0, wd002 ; text pointer
- dbw BANK(Function269f3), Function269f3
+ dbw BANK(DecorationMenuFunction), DecorationMenuFunction
dbw 0, 0
dbw 0, 0
; 269dd
-Function269dd: ; 269dd
+GetDecorationData: ; 269dd
ld hl, DecorationAttributes
- ld bc, $0006
+ ld bc, 6
call AddNTimes
ret
; 269e7
-Function269e7: ; 269e7
+GetDecorationName: ; 269e7
push hl
- call Function269dd
- call Function26c72
+ call GetDecorationData
+ call GetDecoName
pop hl
call CopyName2
ret
; 269f3
-Function269f3: ; 269f3
+DecorationMenuFunction: ; 269f3
ld a, [MenuSelection]
push de
- call Function269dd
- call Function26c72
+ call GetDecorationData
+ call GetDecoName
pop hl
call PlaceString
ret
; 26a02
-Function26a02: ; 26a02
+DoDecorationAction2: ; 26a02
ld a, [MenuSelection]
- call Function269dd
- ld de, $0002
+ call GetDecorationData
+ ld de, 2 ; function 2
add hl, de
ld a, [hl]
- ld hl, Jumptable_26a12
+ ld hl, .DecoActions
rst JumpTable
ret
; 26a12
-Jumptable_26a12: ; 26a12
- dw Function26ce3
- dw Function26ce5
- dw Function26ceb
- dw Function26cf1
- dw Function26cf7
- dw Function26cfd
- dw Function26d03
- dw Function26d09
- dw Function26d0f
- dw Function26d15
- dw Function26d1b
- dw Function26d21
- dw Function26d27
- dw Function26db3
- dw Function26dc9
+.DecoActions: ; 26a12
+ dw DecoAction_nothing
+ dw DecoAction_setupbed
+ dw DecoAction_putawaybed
+ dw DecoAction_setupcarpet
+ dw DecoAction_putawaycarpet
+ dw DecoAction_setupplant
+ dw DecoAction_putawayplant
+ dw DecoAction_setupposter
+ dw DecoAction_putawayposter
+ dw DecoAction_setupconsole
+ dw DecoAction_putawayconsole
+ dw DecoAction_setupbigdoll
+ dw DecoAction_putawaybigdoll
+ dw DecoAction_setupornament
+ dw DecoAction_putawayornament
; 26a30
-Function26a30: ; 26a30
- call Function269dd
- ld de, $0003
+GetDecorationFlag: ; 26a30
+ call GetDecorationData
+ ld de, 3 ; event flag
add hl, de
ld a, [hli]
ld d, [hl]
@@ -28455,78 +28475,85 @@ Function26a30: ; 26a30
ret
; 26a3b
-Function26a3b: ; 26a3b
+DecorationFlagAction: ; 26a3b
push bc
- call Function26a30
+ call GetDecorationFlag
pop bc
call EventFlagAction
ret
; 26a44
-Function26a44: ; 26a44
+GetDecorationSprite: ; 26a44
ld a, c
- call Function269dd
- ld de, $0005
+ call GetDecorationData
+ ld de, 5 ; sprite
add hl, de
ld a, [hl]
ld c, a
ret
; 26a4f
+decoration: MACRO
+ ; type, name, command, event flag, tile/sprite
+ db \1, \2, \3
+ dw \4
+ db \5
+ENDM
+
DecorationAttributes: ; 26a4f
- db $01, $00, $00, $00, $00, $00
- db $01, $01, $02, $00, $00, $00
- db $02, $12, $01, $a4, $02, $1b
- db $02, $14, $01, $a5, $02, $1c
- db $02, $15, $01, $a6, $02, $1d
- db $02, $13, $01, $a7, $02, $1e
- db $01, $01, $04, $00, $00, $00
- db $03, $16, $03, $a8, $02, $08
- db $03, $17, $03, $a9, $02, $0b
- db $03, $18, $03, $aa, $02, $0e
- db $03, $19, $03, $ab, $02, $11
- db $01, $01, $06, $00, $00, $00
- db $01, $02, $05, $ac, $02, $20
- db $01, $03, $05, $ad, $02, $21
- db $01, $04, $05, $ae, $02, $22
- db $01, $01, $08, $00, $00, $00
- db $01, $05, $07, $af, $02, $1f
- db $04, $19, $07, $b0, $02, $23
- db $04, $23, $07, $b1, $02, $24
- db $04, $27, $07, $b2, $02, $25
- db $01, $01, $0a, $00, $00, $00
- db $01, $06, $09, $b3, $02, $5c
- db $01, $07, $09, $b4, $02, $5b
- db $01, $08, $09, $b5, $02, $51
- db $01, $09, $09, $b6, $02, $57
- db $01, $01, $0c, $00, $00, $00
- db $06, $8f, $0b, $cf, $02, $33
- db $06, $5f, $0b, $d0, $02, $50
- db $06, $83, $0b, $d1, $02, $47
- db $01, $01, $0e, $00, $00, $00
- db $05, $19, $0d, $b7, $02, $8e
- db $01, $0c, $0d, $b8, $02, $34
- db $05, $23, $0d, $b9, $02, $8f
- db $05, $27, $0d, $ba, $02, $94
- db $05, $01, $0d, $bb, $02, $93
- db $05, $04, $0d, $bc, $02, $90
- db $05, $07, $0d, $bd, $02, $89
- db $05, $3c, $0d, $be, $02, $8d
- db $05, $32, $0d, $bf, $02, $8c
- db $05, $78, $0d, $c0, $02, $92
- db $05, $81, $0d, $c1, $02, $88
- db $05, $2b, $0d, $c2, $02, $85
- db $05, $5e, $0d, $c3, $02, $86
- db $05, $5a, $0d, $c4, $02, $84
- db $05, $58, $0d, $c5, $02, $95
- db $05, $64, $0d, $c6, $02, $9b
- db $05, $0d, $0d, $c7, $02, $83
- db $05, $c9, $0d, $c8, $02, $80
- db $05, $4a, $0d, $c9, $02, $81
- db $05, $42, $0d, $ca, $02, $9a
- db $05, $48, $0d, $cb, $02, $98
- db $01, $0a, $0d, $cd, $02, $5e
- db $01, $0b, $0d, $ce, $02, $5f
+ decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b
+ decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c
+ decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d
+ decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08
+ decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b
+ decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e
+ decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20
+ decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21
+ decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f
+ decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23
+ decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24
+ decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM
+ decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES
+ decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64
+ decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX
+ decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX
+ decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS
+ decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00
+ decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU
+ decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU
+ decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY
+ decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF
+ decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR
+ decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER
+ decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE
+ decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG
+ decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT
+ decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE
+ decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP
+ decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH
+ decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR
+ decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER
+ decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER
+ decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB
+ decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE
+ decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN
+ decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE
+ decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP
+ decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL
+ decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY
+ decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY
; 26b8d
@@ -28559,85 +28586,85 @@ DecorationNames: ; 26b8d
db "GREEN@"
; 26c72
-Function26c72: ; 26c72
+GetDecoName: ; 26c72
ld a, [hli]
ld e, [hl]
ld bc, StringBuffer2
push bc
- ld hl, Table26c7e
+ ld hl, .NameFunctions
rst JumpTable
pop de
ret
; 26c7e
-Table26c7e: ; 26c7e
- dw Function26c8c
- dw Function26c8d
- dw Function26c90
- dw Function26c97
- dw Function26c9e
- dw Function26ca6
- dw Function26cae
+.NameFunctions: ; 26c7e
+ dw .invalid
+ dw .plant
+ dw .bed
+ dw .carpet
+ dw .poster
+ dw .doll
+ dw .bigdoll
; 26c8c
-Function26c8c: ; 26c8c
+.invalid: ; 26c8c
ret
; 26c8d
-Function26c8d: ; 26c8d
+.plant: ; 26c8d
ld a, e
- jr Function26cca
+ jr .getdeconame
-Function26c90: ; 26c90
- call Function26c8d
- ld a, $d
- jr Function26cca
+.bed: ; 26c90
+ call .plant
+ ld a, _BED
+ jr .getdeconame
-Function26c97: ; 26c97
- call Function26c8d
- ld a, $e
- jr Function26cca
+.carpet: ; 26c97
+ call .plant
+ ld a, _CARPET
+ jr .getdeconame
-Function26c9e: ; 26c9e
+.poster: ; 26c9e
ld a, e
- call Function26cc0
- ld a, $f
- jr Function26cca
+ call .getpokename
+ ld a, _POSTER
+ jr .getdeconame
-Function26ca6: ; 26ca6
+.doll: ; 26ca6
ld a, e
- call Function26cc0
- ld a, $10
- jr Function26cca
+ call .getpokename
+ ld a, _DOLL
+ jr .getdeconame
-Function26cae: ; 26cae
+.bigdoll: ; 26cae
push de
- ld a, $11
- call Function26cca
+ ld a, BIG_
+ call .getdeconame
pop de
ld a, e
- jr Function26cc0
+ jr .getpokename
-Function26cb8: ; 26cb8
+.unused: ; 26cb8
push de
- call Function26cca
+ call .getdeconame
pop de
ld a, e
- jr Function26cca
+ jr .getdeconame
-Function26cc0: ; 26cc0
+.getpokename: ; 26cc0
push bc
ld [wd265], a
call GetPokemonName
pop bc
- jr Function26cda
+ jr .copy
-Function26cca: ; 26cca
- call Function26ccf
- jr Function26cda
+.getdeconame: ; 26cca
+ call ._getdeconame
+ jr .copy
-Function26ccf: ; 26ccf
+._getdeconame: ; 26ccf
push bc
ld hl, DecorationNames
call GetNthString
@@ -28646,7 +28673,7 @@ Function26ccf: ; 26ccf
pop bc
ret
-Function26cda: ; 26cda
+.copy: ; 26cda
ld h, b
ld l, c
call CopyName2
@@ -28656,78 +28683,78 @@ Function26cda: ; 26cda
ret
; 26ce3
-Function26ce3: ; 26ce3
+DecoAction_nothing: ; 26ce3
scf
ret
; 26ce5
-Function26ce5: ; 26ce5
+DecoAction_setupbed: ; 26ce5
ld hl, Bed
- jp Function26d2d
+ jp DecoAction_TrySetItUp
; 26ceb
-Function26ceb: ; 26ceb
+DecoAction_putawaybed: ; 26ceb
ld hl, Bed
- jp Function26d86
+ jp DecoAction_TryPutItAway
; 26cf1
-Function26cf1: ; 26cf1
+DecoAction_setupcarpet: ; 26cf1
ld hl, Carpet
- jp Function26d2d
+ jp DecoAction_TrySetItUp
; 26cf7
-Function26cf7: ; 26cf7
+DecoAction_putawaycarpet: ; 26cf7
ld hl, Carpet
- jp Function26d86
+ jp DecoAction_TryPutItAway
; 26cfd
-Function26cfd: ; 26cfd
+DecoAction_setupplant: ; 26cfd
ld hl, Plant
- jp Function26d2d
+ jp DecoAction_TrySetItUp
; 26d03
-Function26d03: ; 26d03
+DecoAction_putawayplant: ; 26d03
ld hl, Plant
- jp Function26d86
+ jp DecoAction_TryPutItAway
; 26d09
-Function26d09: ; 26d09
+DecoAction_setupposter: ; 26d09
ld hl, Poster
- jp Function26d2d
+ jp DecoAction_TrySetItUp
; 26d0f
-Function26d0f: ; 26d0f
+DecoAction_putawayposter: ; 26d0f
ld hl, Poster
- jp Function26d86
+ jp DecoAction_TryPutItAway
; 26d15
-Function26d15: ; 26d15
+DecoAction_setupconsole: ; 26d15
ld hl, Console
- jp Function26d2d
+ jp DecoAction_TrySetItUp
; 26d1b
-Function26d1b: ; 26d1b
+DecoAction_putawayconsole: ; 26d1b
ld hl, Console
- jp Function26d86
+ jp DecoAction_TryPutItAway
; 26d21
-Function26d21: ; 26d21
+DecoAction_setupbigdoll: ; 26d21
ld hl, BigDoll
- jp Function26d2d
+ jp DecoAction_TrySetItUp
; 26d27
-Function26d27: ; 26d27
+DecoAction_putawaybigdoll: ; 26d27
ld hl, BigDoll
- jp Function26d86
+ jp DecoAction_TryPutItAway
; 26d2d
-Function26d2d: ; 26d2d
+DecoAction_TrySetItUp: ; 26d2d
ld a, [hl]
ld [Buffer1], a
push hl
- call Function26d46
- jr c, .asm_26d43
- ld a, $1
+ call DecoAction_SetItUp
+ jr c, .failed
+ ld a, 1
ld [wd1ee], a
pop hl
ld a, [MenuSelection]
@@ -28735,99 +28762,104 @@ Function26d2d: ; 26d2d
xor a
ret
-.asm_26d43
+.failed
pop hl
xor a
ret
; 26d46
-Function26d46: ; 26d46
+DecoAction_SetItUp: ; 26d46
+; See if there's anything of the same type already out
ld a, [Buffer1]
and a
- jr z, .asm_26d6d
+ jr z, .nothingthere
+; See if that item is already out
ld b, a
ld a, [MenuSelection]
cp b
- jr z, .asm_26d7e
+ jr z, .alreadythere
+; Put away the item that's already out, and set up the new one
ld a, [MenuSelection]
ld hl, StringBuffer4
- call Function269e7
+ call GetDecorationName
ld a, [Buffer1]
ld hl, StringBuffer3
- call Function269e7
+ call GetDecorationName
ld hl, UnknownText_0x26ee0
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
-.asm_26d6d
+.nothingthere
ld a, [MenuSelection]
ld hl, StringBuffer3
- call Function269e7
+ call GetDecorationName
ld hl, UnknownText_0x26edb
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
-.asm_26d7e
+.alreadythere
ld hl, UnknownText_0x26ee5
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
; 26d86
-Function26d86: ; 26d86
+DecoAction_TryPutItAway: ; 26d86
+; If there is no item of that type already set, there is nothing to put away.
ld a, [hl]
ld [Buffer1], a
xor a
ld [hl], a
ld a, [Buffer1]
and a
- jr z, .asm_26dab
+ jr z, .nothingthere
+; Put it away.
ld a, $1
ld [wd1ee], a
ld a, [Buffer1]
ld [MenuSelection], a
ld hl, StringBuffer3
- call Function269e7
+ call GetDecorationName
ld hl, UnknownText_0x26ed1
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
-.asm_26dab
+.nothingthere
ld hl, UnknownText_0x26ed6
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
; 26db3
-Function26db3: ; 26db3
+DecoAction_setupornament: ; 26db3
ld hl, UnknownText_0x26e41
- call Function26e70
- jr c, .asm_26dc7
- call Function26de3
- jr c, .asm_26dc7
+ call DecoAction_AskWhichSide
+ jr c, .cancel
+ call DecoAction_SetItUp_Ornament
+ jr c, .cancel
ld a, $1
ld [wd1ee], a
- jr Function26dd6
+ jr DecoAction_FinishUp_Ornament
-.asm_26dc7
+.cancel
xor a
ret
-Function26dc9: ; 26dc9
+DecoAction_putawayornament: ; 26dc9
ld hl, UnknownText_0x26e6b
- call Function26e70
- jr nc, .asm_26dd3
+ call DecoAction_AskWhichSide
+ jr nc, .incave
xor a
ret
-.asm_26dd3
- call Function26e46
+.incave
+ call DecoAction_PutItAway_Ornament
-Function26dd6: ; 26dd6
- call Function26e9a
+DecoAction_FinishUp_Ornament: ; 26dd6
+ call QueryWhichSide
ld a, [wd1ec]
ld [hl], a
ld a, [wd1ed]
@@ -28836,48 +28868,48 @@ Function26dd6: ; 26dd6
ret
; 26de3
-Function26de3: ; 26de3
+DecoAction_SetItUp_Ornament: ; 26de3
ld a, [wd1ec]
and a
- jr z, .asm_26e11
+ jr z, .nothingthere
ld b, a
ld a, [MenuSelection]
cp b
- jr z, .asm_26e2b
+ jr z, .failed
ld a, b
ld hl, StringBuffer3
- call Function269e7
+ call GetDecorationName
ld a, [MenuSelection]
ld hl, StringBuffer4
- call Function269e7
+ call GetDecorationName
ld a, [MenuSelection]
ld [wd1ec], a
- call Function26e33
+ call .getwhichside
ld hl, UnknownText_0x26ee0
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
-.asm_26e11
+.nothingthere
ld a, [MenuSelection]
ld [wd1ec], a
- call Function26e33
+ call .getwhichside
ld a, [MenuSelection]
ld hl, StringBuffer3
- call Function269e7
+ call GetDecorationName
ld hl, UnknownText_0x26edb
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
-.asm_26e2b
+.failed
ld hl, UnknownText_0x26ee5
- call Function1d67
+ call MenuTextBoxBackup
scf
ret
; 26e33
-Function26e33: ; 26e33
+.getwhichside: ; 26e33
ld a, [MenuSelection]
ld b, a
ld a, [wd1ed]
@@ -28894,24 +28926,24 @@ UnknownText_0x26e41: ; 0x26e41
db "@"
; 0x26e46
-Function26e46: ; 26e46
+DecoAction_PutItAway_Ornament: ; 26e46
ld a, [wd1ec]
and a
- jr z, .asm_26e63
+ jr z, .nothingthere
ld hl, StringBuffer3
- call Function269e7
+ call GetDecorationName
ld a, $1
ld [wd1ee], a
xor a
ld [wd1ec], a
ld hl, UnknownText_0x26ed1
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
-.asm_26e63
+.nothingthere
ld hl, UnknownText_0x26ed6
- call Function1d67
+ call MenuTextBoxBackup
xor a
ret
; 26e6b
@@ -28922,18 +28954,18 @@ UnknownText_0x26e6b: ; 0x26e6b
db "@"
; 0x26e70
-Function26e70: ; 26e70
- call Function1d4f
+DecoAction_AskWhichSide: ; 26e70
+ call MenuTextBox
ld hl, MenuDataHeader_0x26eab
- call Function1dab
- call Function1c07
+ call GetMenu2
+ call ExitMenu
call Function1c66
- jr c, .asm_26e98
+ jr c, .nope
ld a, [wcfa9]
- cp $3
- jr z, .asm_26e98
+ cp 3
+ jr z, .nope
ld [Buffer2], a
- call Function26e9a
+ call QueryWhichSide
ld a, [hl]
ld [wd1ec], a
ld a, [de]
@@ -28941,16 +28973,16 @@ Function26e70: ; 26e70
xor a
ret
-.asm_26e98
+.nope
scf
ret
; 26e9a
-Function26e9a: ; 26e9a
+QueryWhichSide: ; 26e9a
ld hl, RightOrnament
ld de, LeftOrnament
ld a, [Buffer2]
- cp $1
+ cp 1
ret z
push hl
ld h, d
@@ -29005,44 +29037,44 @@ UnknownText_0x26ee5: ; 0x26ee5
db "@"
; 0x26eea
-Function26eea: ; 26eea
+GetDecorationName_c_de: ; 26eea
ld a, c
ld h, d
ld l, e
- call Function269e7
+ call GetDecorationName
ret
; 26ef1
-Function26ef1: ; 26ef1
+DecorationFlagAction_c: ; 26ef1
ld a, c
- jp Function26a3b
+ jp DecorationFlagAction
; 26ef5
-Function26ef5: ; 26ef5 (9:6ef5)
+GetDecorationName_c: ; 26ef5 (9:6ef5)
ld a, c
- call Function26f0c
+ call GetDecorationID
ld hl, StringBuffer1
push hl
- call Function269e7
+ call GetDecorationName
pop de
ret
-Function26f02: ; 26f02
+SetSpecificDecorationFlag: ; 26f02
ld a, c
- call Function26f0c
- ld b, $1
- call Function26a3b
+ call GetDecorationID
+ ld b, SET_FLAG
+ call DecorationFlagAction
ret
; 26f0c
-Function26f0c: ; 26f0c
+GetDecorationID: ; 26f0c
push hl
push de
ld e, a
ld d, 0
- ld hl, Unknown_26f2b
+ ld hl, DecorationIDs
add hl, de
ld a, [hl]
pop de
@@ -29050,62 +29082,103 @@ Function26f0c: ; 26f0c
ret
; 26f19
-Function26f19: ; 26f19
- ld hl, Unknown_26f2b
-.asm_26f1c
+SetAllDecorationFlags: ; 26f19
+ ld hl, DecorationIDs
+.loop
ld a, [hli]
- cp $ff
- jr z, .asm_26f2a
+ cp -1
+ jr z, .done
push hl
- ld b, $1
- call Function26a3b
+ ld b, SET_FLAG
+ call DecorationFlagAction
pop hl
- jr .asm_26f1c
+ jr .loop
-.asm_26f2a
+.done
ret
; 26f2b
-Unknown_26f2b: ; 26f2b
- db $02, $03, $04, $05, $07
- db $08, $09, $0a, $0c, $0d
- db $0e, $10, $11, $12, $13
- db $15, $16, $17, $18, $1e
- db $1f, $20, $21, $22, $23
- db $24, $25, $26, $27, $28
- db $29, $2a, $2b, $2c, $2d
- db $2e, $2f, $30, $31, $32
- db $1a, $1b, $1c, $33, $34
- db $ff
+DecorationIDs: ; 26f2b
+ db DECO_FEATHERY_BED ; 2
+ db DECO_PINK_BED ; 3
+ db DECO_POLKADOT_BED ; 4
+ db DECO_PIKACHU_BED ; 5
+
+ db DECO_RED_CARPET ; 7
+ db DECO_BLUE_CARPET ; 8
+ db DECO_YELLOW_CARPET ; 9
+ db DECO_GREEN_CARPET ; a
+
+ db DECO_MAGNAPLANT ; c
+ db DECO_TROPICPLANT ; d
+ db DECO_JUMBOPLANT ; e
+
+ db DECO_TOWN_MAP ; 10
+ db DECO_PIKACHU_POSTER ; 11
+ db DECO_CLEFAIRY_POSTER ; 12
+ db DECO_JIGGLYPUFF_POSTER ; 13
+
+ db DECO_FAMICOM ; 15
+ db DECO_SNES ; 16
+ db DECO_N64 ; 17
+ db DECO_VIRTUAL_BOY ; 18
+
+ db DECO_PIKACHU_DOLL ; 1e
+ db DECO_SURF_PIKACHU_DOLL ; 1f
+ db DECO_CLEFAIRY_DOLL ; 20
+ db DECO_JIGGLYPUFF_DOLL ; 21
+ db DECO_BULBASAUR_DOLL ; 22
+ db DECO_CHARMANDER_DOLL ; 23
+ db DECO_SQUIRTLE_DOLL ; 24
+ db DECO_POLIWAG_DOLL ; 25
+ db DECO_DIGLETT_DOLL ; 26
+ db DECO_STARMIE_DOLL ; 27
+ db DECO_MAGIKARP_DOLL ; 28
+ db DECO_ODDISH_DOLL ; 29
+ db DECO_GENGAR_DOLL ; 2a
+ db DECO_SHELLDER_DOLL ; 2b
+ db DECO_GRIMER_DOLL ; 2c
+ db DECO_VOLTORB_DOLL ; 2d
+ db DECO_WEEDLE_DOLL ; 2e
+ db DECO_UNOWN_DOLL ; 2f
+ db DECO_GEODUDE_DOLL ; 30
+ db DECO_MACHOP_DOLL ; 31
+ db DECO_TENTACOOL_DOLL ; 32
+ db DECO_BIG_SNORLAX_DOLL ; 1a
+ db DECO_BIG_ONIX_DOLL ; 1b
+ db DECO_BIG_LAPRAS_DOLL ; 1c
+ db DECO_GOLD_TROPHY_DOLL ; 33
+ db DECO_SILVER_TROPHY_DOLL ; 34
+ db -1
; 26f59
-Function26f59:: ; 26f59
+DescribeDecoration:: ; 26f59
ld a, b
- ld hl, Table26f5f
+ ld hl, JumpTable_DecorationDesc
rst JumpTable
ret
; 26f5f
-Table26f5f: ; 26f5f
- dw Function26f69
- dw Function26fb9
- dw Function26fbe
- dw Function26fdd
- dw Function26fc3
+JumpTable_DecorationDesc: ; 26f5f
+ dw DecorationDesc_Poster
+ dw DecorationDesc_LeftOrnament
+ dw DecorationDesc_RightOrnament
+ dw DecorationDesc_GiantDoll
+ dw DecorationDesc_Console
; 26f69
-Function26f69: ; 26f69
+DecorationDesc_Poster: ; 26f69
ld a, [Poster]
- ld hl, Unknown_26f84
+ ld hl, DecorationDesc_PosterPointers
ld de, 3
call IsInArray
- jr c, .asm_26f7d
- ld de, UnknownScript_0x26fb8
- ld b, BANK(UnknownScript_0x26fb8)
+ jr c, .nope
+ ld de, DecorationDesc_NullPoster
+ ld b, BANK(DecorationDesc_NullPoster)
ret
-.asm_26f7d
- ld b, BANK(UnknownScript_0x26f91)
+.nope
+ ld b, BANK(DecorationDesc_TownMapPoster)
inc hl
ld a, [hli]
ld d, [hl]
@@ -29113,19 +29186,19 @@ Function26f69: ; 26f69
ret
; 26f84
-Unknown_26f84: ; 26f84
- dbw $10, UnknownScript_0x26f91
- dbw $11, UnknownScript_0x26fa0
- dbw $12, UnknownScript_0x26fa8
- dbw $13, UnknownScript_0x26fb0
- db $ff
+DecorationDesc_PosterPointers: ; 26f84
+ dbw DECO_TOWN_MAP, DecorationDesc_TownMapPoster
+ dbw DECO_PIKACHU_POSTER, DecorationDesc_PikachuPoster
+ dbw DECO_CLEFAIRY_POSTER, DecorationDesc_ClefairyPoster
+ dbw DECO_JIGGLYPUFF_POSTER, DecorationDesc_JigglypuffPoster
+ db -1
; 26f91
-UnknownScript_0x26f91: ; 0x26f91
+DecorationDesc_TownMapPoster: ; 0x26f91
loadfont
writetext UnknownText_0x26f9b
closetext
- special Functionc2c0
+ special Special_TownMap
loadmovesprites
end
; 0x26f9b
@@ -29136,7 +29209,7 @@ UnknownText_0x26f9b: ; 0x26f9b
db "@"
; 0x26fa0
-UnknownScript_0x26fa0: ; 0x26fa0
+DecorationDesc_PikachuPoster: ; 0x26fa0
jumptext UnknownText_0x26fa3
; 0x26fa3
@@ -29146,7 +29219,7 @@ UnknownText_0x26fa3: ; 0x26fa3
db "@"
; 0x26fa8
-UnknownScript_0x26fa8: ; 0x26fa8
+DecorationDesc_ClefairyPoster: ; 0x26fa8
jumptext UnknownText_0x26fab
; 0x26fab
@@ -29156,7 +29229,7 @@ UnknownText_0x26fab: ; 0x26fab
db "@"
; 0x26fb0
-UnknownScript_0x26fb0: ; 0x26fb0
+DecorationDesc_JigglypuffPoster: ; 0x26fb0
jumptext UnknownText_0x26fb3
; 0x26fb3
@@ -29166,26 +29239,26 @@ UnknownText_0x26fb3: ; 0x26fb3
db "@"
; 0x26fb8
-UnknownScript_0x26fb8: ; 26fb8
+DecorationDesc_NullPoster: ; 26fb8
end
; 26fb9
-Function26fb9: ; 26fb9
+DecorationDesc_LeftOrnament: ; 26fb9
ld a, [LeftOrnament]
- jr Function26fc8
+ jr DecorationDesc_OrnamentOrConsole
-Function26fbe: ; 26fbe
+DecorationDesc_RightOrnament: ; 26fbe
ld a, [RightOrnament]
- jr Function26fc8
+ jr DecorationDesc_OrnamentOrConsole
-Function26fc3: ; 26fc3
+DecorationDesc_Console: ; 26fc3
ld a, [Console]
- jr Function26fc8
+ jr DecorationDesc_OrnamentOrConsole
-Function26fc8: ; 26fc8
+DecorationDesc_OrnamentOrConsole: ; 26fc8
ld c, a
ld de, StringBuffer3
- call Function26eea
+ call GetDecorationName_c_de
ld b, BANK(Unknown_26fd5)
ld de, Unknown_26fd5
ret
@@ -29201,7 +29274,7 @@ UnknownText_0x26fd8: ; 0x26fd8
db "@"
; 0x26fdd
-Function26fdd: ; 26fdd
+DecorationDesc_GiantDoll: ; 26fdd
ld b, BANK(Unknown_26fe3)
ld de, Unknown_26fe3
ret
@@ -29217,27 +29290,27 @@ UnknownText_0x26fe6: ; 0x26fe6
db "@"
; 0x26feb
-Function26feb: ; 26feb
- ld de, $0004
+ToggleMaptileDecorations: ; 26feb
+ lb de, 0, 4
ld a, [Bed]
- call Function27037
- ld de, $0704
+ call SetDecorationTile
+ lb de, 7, 4
ld a, [Plant]
- call Function27037
- ld de, $0600
+ call SetDecorationTile
+ lb de, 6, 0
ld a, [Poster]
- call Function27037
- call Function27027
- ld de, $0000
- call Function27092
+ call SetDecorationTile
+ call SetPosterVisibility
+ lb de, 0, 0
+ call PadCoords_de
ld a, [Carpet]
and a
ret z
- call Function27085
+ call _GetDecorationSprite
ld [hl], a
push af
- ld de, $0002
- call Function27092
+ lb de, 0, 2
+ call PadCoords_de
pop af
inc a
ld [hli], a
@@ -29248,86 +29321,86 @@ Function26feb: ; 26feb
ret
; 27027
-Function27027: ; 27027
- ld b, $1
+SetPosterVisibility: ; 27027
+ ld b, SET_FLAG
ld a, [Poster]
and a
- jr nz, .asm_27031
- ld b, $0
+ jr nz, .ok
+ ld b, RESET_FLAG
-.asm_27031
- ld de, $02cc
+.ok
+ ld de, EVENT_KRISS_ROOM_POSTER
jp EventFlagAction
; 27037
-Function27037: ; 27037
+SetDecorationTile: ; 27037
push af
- call Function27092
+ call PadCoords_de
pop af
and a
ret z
- call Function27085
+ call _GetDecorationSprite
ld [hl], a
ret
; 27043
-Function27043: ; 27043
- ld de, $0741
- ld hl, VariableSprites
+ToggleDecorationsVisibility: ; 27043
+ ld de, EVENT_KRISS_HOUSE_2F_CONSOLE
+ ld hl, VariableSprites + SPRITE_CONSOLE - SPRITE_VARS
ld a, [Console]
- call Function27074
- ld de, $0742
- ld hl, VariableSprites + 1
+ call ToggleDecorationVisibility
+ ld de, EVENT_KRISS_HOUSE_2F_DOLL_1
+ ld hl, VariableSprites + SPRITE_DOLL_1 - SPRITE_VARS
ld a, [LeftOrnament]
- call Function27074
- ld de, $0743
- ld hl, VariableSprites + 2
+ call ToggleDecorationVisibility
+ ld de, EVENT_KRISS_HOUSE_2F_DOLL_2
+ ld hl, VariableSprites + SPRITE_DOLL_2 - SPRITE_VARS
ld a, [RightOrnament]
- call Function27074
- ld de, $0744
- ld hl, VariableSprites + 3
+ call ToggleDecorationVisibility
+ ld de, EVENT_KRISS_HOUSE_2F_BIG_DOLL
+ ld hl, VariableSprites + SPRITE_BIG_DOLL - SPRITE_VARS
ld a, [BigDoll]
- call Function27074
+ call ToggleDecorationVisibility
ret
; 27074
-Function27074: ; 27074
+ToggleDecorationVisibility: ; 27074
and a
- jr z, .asm_27080
- call Function27085
+ jr z, .hide
+ call _GetDecorationSprite
ld [hl], a
- ld b, $0
+ ld b, RESET_FLAG
jp EventFlagAction
-.asm_27080
- ld b, $1
+.hide
+ ld b, SET_FLAG
jp EventFlagAction
; 27085
-Function27085: ; 27085
+_GetDecorationSprite: ; 27085
ld c, a
push de
push hl
- callba Function26a44
+ callba GetDecorationSprite
pop hl
pop de
ld a, c
ret
; 27092
-Function27092: ; 27092
+PadCoords_de: ; 27092
ld a, d
- add $4
+ add 4
ld d, a
ld a, e
- add $4
+ add 4
ld e, a
- call Function2a66
+ call GetBlockLocation
ret
; 2709e
-Function2709e: ; 2709e
+LevelUpHappinessMod: ; 2709e
ld a, [CurPartyMon]
ld hl, PartyMon1CaughtLocation
call GetPartyLocation
@@ -29340,11 +29413,11 @@ Function2709e: ; 2709e
ld c, a
call GetWorldMapLocation
cp d
- ld c, $1
- jr nz, .asm_270bd
- ld c, $13
+ ld c, 1
+ jr nz, .ok
+ ld c, 19
-.asm_270bd
+.ok
callab ChangeHappiness
ret
; 270c4
@@ -29356,18 +29429,18 @@ Function2715c: ; 2715c
call ClearTileMap
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
- jr z, .asm_27171
+ jr z, .gettutorialbackpic
callba Function3f43d
- jr .asm_27177
+ jr .continue
-.asm_27171
+.gettutorialbackpic
callba GetBattleBackpic
-.asm_27177
+.continue
callba Function3f47c
callba Function3ed9f
call ClearSGB
- call Function1c17
+ call WriteBackup
call Function1d6e
call WaitBGMap
jp Function32f9
@@ -29382,24 +29455,24 @@ Function27192: ; 27192
ld hl, OTPartyMon1Item
ld de, EnemyMonItem
ld a, [CurOTMon]
- jr z, .asm_271ac
+ jr z, .theirturn
ld hl, PartyMon1Item
ld de, BattleMonItem
ld a, [CurBattleMon]
-.asm_271ac
+.theirturn
push hl
push af
ld a, [de]
ld b, a
callba GetItem
ld hl, Unknown_271de
-.asm_271b9
+.loop
ld a, [hli]
cp b
- jr z, .asm_271c6
+ jr z, .ok
inc a
- jr nz, .asm_271b9
+ jr nz, .loop
pop af
pop hl
pop bc
@@ -29407,7 +29480,7 @@ Function27192: ; 27192
pop hl
ret
-.asm_271c6
+.ok
xor a
ld [de], a
pop af
@@ -29415,15 +29488,15 @@ Function27192: ; 27192
call GetPartyLocation
ld a, [hBattleTurn]
and a
- jr nz, .asm_271d8
+ jr nz, .ourturn
ld a, [IsInBattle]
dec a
- jr z, .asm_271da
+ jr z, .done
-.asm_271d8
+.ourturn
ld [hl], $0
-.asm_271da
+.done
pop bc
pop de
pop hl
@@ -29453,7 +29526,7 @@ Unknown_271de: ; 271de
db $47
db HELD_ESCAPE
db HELD_CRITICAL_UP
- db $ff
+ db -1
; 271f4
MoveEffectsPointers: ; 271f4
@@ -29477,14 +29550,14 @@ Function28000: ; 28000
call DelayFrames
call ClearScreen
call ClearSprites
- call Function1ad2
+ call DrawOnMap
xor a
ld [hSCX], a
ld [hSCY], a
ld c, $50
call DelayFrames
call ClearScreen
- call Function1ad2
+ call DrawOnMap
call Functione51
call Functione58
callba Function16d69a
@@ -29623,7 +29696,7 @@ Function2805d: ; 2805d
ld [wd265], a
push hl
push de
- callab Functionfb908
+ callab ConvertMon_1to2
pop de
pop hl
ld a, [wd265]
@@ -29966,7 +30039,7 @@ Function283b2: ; 283b2
pop hl
bccoord 1, 14
call Function13e5
- call Function4b6
+ call FadeToWhite
call ClearScreen
ld b, $8
call GetSGBLayout
@@ -30049,9 +30122,9 @@ Function28434: ; 28434
jr nz, .asm_28441
ld hl, wc608
ld a, $fd
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld b, $c8
xor a
.asm_28457
@@ -30130,7 +30203,7 @@ Function28499: ; 28499
ld [wd265], a
push hl
push de
- callab Functionfb8f1
+ callab ConvertMon_2to1
pop de
pop hl
ld a, [wd265]
@@ -30170,7 +30243,7 @@ Function284f6: ; 284f6
push bc
ld a, [hl]
ld [wd265], a
- callab Functionfb8f1
+ callab ConvertMon_2to1
pop bc
pop de
ld a, [wd265]
@@ -30450,7 +30523,7 @@ Function286ba: ; 286ba
push bc
push de
ld [wd265], a
- callab Functionfb908
+ callab ConvertMon_1to2
pop de
pop bc
ld a, [wd265]
@@ -30555,12 +30628,14 @@ Function286ba: ; 286ba
ld a, $46
ld [hli], a
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
pop hl
+rept 2
inc de
- inc de
+endr
ret
; 28771
@@ -30670,9 +30745,9 @@ Function287e3: ; 287e3
callba Function16d673
xor a
ld hl, wcf51
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld a, $1
ld [wcfa9], a
@@ -31054,7 +31129,7 @@ Function28ade: ; 28ade
jr nz, .asm_28ade
Function28b22: ; 28b22
- call Function4b6
+ call FadeToWhite
call ClearScreen
ld b, $8
call GetSGBLayout
@@ -31078,7 +31153,7 @@ Function28b42: ; 28b42
call ByteFill
hlcoord 1, 16
ld a, $7f
- ld bc, $0012
+ ld bc, SCREEN_HEIGHT
call ByteFill
hlcoord 2, 16
ld de, String_28b61
@@ -31092,7 +31167,7 @@ String_28b61: ; 28b61
Function28b68: ; 28b68
ld a, [wcf51]
hlcoord 6, 9
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
call AddNTimes
ld [hl], $ec
ret
@@ -31107,7 +31182,7 @@ Function28b77: ; 28b77
dec c
jr nz, .asm_28b79
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
@@ -31730,8 +31805,9 @@ Function290a0: ; 290a0
ld e, a
ld d, 0
ld hl, JumpTable290af
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -32019,8 +32095,9 @@ Function29281: ; 29281
ld e, a
ld d, 0
ld hl, Jumptable_2928f
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -32050,7 +32127,7 @@ Function29297: ; 29297
Function292af: ; 292af
call Function297cf
hlcoord 0, 3
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld a, $60
call ByteFill
ret
@@ -32066,7 +32143,7 @@ Function292be: ; 292be
ld a, $5d
ld [hl], a
ld a, $61
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld c, $3
.asm_292d9
add hl, de
@@ -32097,8 +32174,8 @@ Function292f6: ; 292f6
ld a, $9c
ld [$ffd7], a
call ClearTileMap
- ld hl, TileMap
- ld bc, $0014
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
ld a, $7a
call ByteFill
hlcoord 0, 1
@@ -32363,7 +32440,7 @@ Function294c3: ; 294c3
hlcoord 7, 2
xor a
ld [$ffad], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
call WaitBGMap
ret
@@ -32604,8 +32681,9 @@ Function29676: ; 29676 (a:5676)
ld e, [hl]
ld d, 0
ld hl, Jumptable_29686
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -32739,7 +32817,7 @@ UnknownText_0x29732: ; 0x29732
; 0x29737
UnknownText_0x29737: ; 0x29737
- ;
+ ;
text_jump UnknownText_0x1bc701
db "@"
; 0x2973c
@@ -32844,8 +32922,8 @@ Function297c9: ; 297c9
; 297cf
Function297cf: ; 297cf
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
ret
@@ -32862,7 +32940,7 @@ Function297db: ; 297db
dec c
jr nz, .asm_297dd
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
@@ -33040,60 +33118,69 @@ TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
-Function29bfb: ; 29bfb
+Special_CheckTimeCapsuleCompatibility: ; 29bfb
+; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar:
+; 0: Party is okay
+; 1: At least one Pokemon was introduced in GS
+; 2: At least one Pokemon has a move that was introduced in GS
+; 3: At least one Pokemon is holding mail
+
+; If any party Pokemon was introduced in the generation 2 games, don't let it in.
ld hl, PartySpecies
- ld b, PARTY_LENGTH
-.asm_29c00
+ ld b, PARTY_LENGTH ; 6
+.loop
ld a, [hli]
cp $ff
- jr z, .asm_29c0c
- cp 151 + 1
- jr nc, .asm_29c42
+ jr z, .checkitem
+ cp CHIKORITA ; MEW + 1 ; 151 + 1
+ jr nc, .mon_too_new
dec b
- jr nz, .asm_29c00
+ jr nz, .loop
-.asm_29c0c
+; If any party Pokemon is holding mail, don't let it in.
+.checkitem
ld a, [PartyCount]
ld b, a
ld hl, PartyMon1Item
-.asm_29c13
+.itemloop
push hl
push bc
ld d, [hl]
callba ItemIsMail
pop bc
pop hl
- jr c, .asm_29c5e
+ jr c, .mon_has_mail
ld de, PartyMon2 - PartyMon1
add hl, de
dec b
- jr nz, .asm_29c13
+ jr nz, .itemloop
+; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in.
ld hl, PartyMon1Moves
ld a, [PartyCount]
ld b, a
-.asm_29c2e
+.move_loop
ld c, NUM_MOVES
-.asm_29c30
+.move_next
ld a, [hli]
cp STRUGGLE + 1
- jr nc, .asm_29c4c
+ jr nc, .move_too_new
dec c
- jr nz, .asm_29c30
+ jr nz, .move_next
ld de, PartyMon2 - (PartyMon1 + NUM_MOVES)
add hl, de
dec b
- jr nz, .asm_29c2e
+ jr nz, .move_loop
xor a
- jr .asm_29c63
+ jr .done
-.asm_29c42
+.mon_too_new
ld [wd265], a
call GetPokemonName
ld a, $1
- jr .asm_29c63
+ jr .done
-.asm_29c4c
+.move_too_new
push bc
ld [wd265], a
call GetMoveName
@@ -33101,13 +33188,13 @@ Function29bfb: ; 29bfb
pop bc
call Function29c67
ld a, $2
- jr .asm_29c63
+ jr .done
-.asm_29c5e
+.mon_has_mail
call Function29c67
ld a, $3
-.asm_29c63
+.done
ld [ScriptVar], a
ret
; 29c67
@@ -33126,7 +33213,7 @@ Function29c67: ; 29c67
ret
; 29c7b
-Function29c7b: ; 29c7b
+Special_EnterTimeCapsule: ; 29c7b
ld c, $a
call DelayFrames
ld a, $4
@@ -33140,7 +33227,7 @@ Function29c7b: ; 29c7b
ret
; 29c92
-Function29c92: ; 29c92
+Special_AbortLink: ; 29c92
ld c, $3
call DelayFrames
ld a, $ff
@@ -33188,21 +33275,21 @@ Function29c92: ; 29c92
ret
; 29ce8
-Function29ce8: ; 29ce8
+Special_SetBitsForLinkTradeRequest: ; 29ce8
ld a, $1
ld [wcf56], a
ld [wd265], a
ret
; 29cf1
-Function29cf1: ; 29cf1
+Special_SetBitsForBattleRequest: ; 29cf1
ld a, $2
ld [wcf56], a
ld [wd265], a
ret
; 29cfa
-Function29cfa: ; 29cfa
+Special_SetBitsForTimeCapsuleRequest: ; 29cfa
ld a, $2
ld [rSB], a
xor a
@@ -33217,7 +33304,7 @@ Function29cfa: ; 29cfa
ret
; 29d11
-Function29d11: ; 29d11
+Special_WaitForLinkedFriend: ; 29d11
ld a, [wcf56]
and a
jr z, .asm_29d2f
@@ -33289,7 +33376,7 @@ Function29d11: ; 29d11
ret
; 29d92
-Function29d92: ; 29d92
+Special_CheckLinkTimeout: ; 29d92
ld a, $1
ld [wcf56], a
ld hl, wcf5b
@@ -33425,7 +33512,7 @@ Function29e53: ; 29e53
ret
; 29e66
-Function29e66: ; 29e66
+Special_TryQuickSave: ; 29e66
ld a, [wd265]
push af
callba Function14ab2
@@ -33442,7 +33529,7 @@ Function29e66: ; 29e66
ret
; 29e82
-Function29e82: ; 29e82
+Special_CheckBothSelectedSameRoom: ; 29e82
ld a, [wd265]
call Function29f17
push af
@@ -33469,7 +33556,7 @@ Function29e82: ; 29e82
ret
; 29eaf
-Function29eaf: ; 29eaf
+Special_TimeCapsule: ; 29eaf
ld a, $1
ld [InLinkBattle], a
call Function2ed3
@@ -33480,7 +33567,7 @@ Function29eaf: ; 29eaf
ret
; 29ec4
-Function29ec4: ; 29ec4
+Special_TradeCenter: ; 29ec4
ld a, $2
ld [InLinkBattle], a
call Function2ed3
@@ -33491,7 +33578,7 @@ Function29ec4: ; 29ec4
ret
; 29ed9
-Function29ed9: ; 29ed9
+Special_Colosseum: ; 29ed9
ld a, $3
ld [InLinkBattle], a
call Function2ed3
@@ -33502,7 +33589,7 @@ Function29ed9: ; 29ed9
ret
; 29eee
-Function29eee: ; 29eee
+Special_CloseLink: ; 29eee
xor a
ld [InLinkBattle], a
ld c, $3
@@ -33510,7 +33597,7 @@ Function29eee: ; 29eee
jp Function29f04
; 29efa
-Function29efa: ; 29efa
+Special_FailedLinkToPast: ; 29efa
ld c, $28
call DelayFrames
ld a, $e
@@ -33559,14 +33646,14 @@ Function29f17: ; 29f17
ret
; 29f47
-Function29f47: ; 29f47
+Special_CableClubCheckWhichChris: ; 29f47
ld a, [$ffcb]
cp $1
ld a, $1
- jr z, .asm_29f50
+ jr z, .yes
dec a
-.asm_29f50
+.yes
ld [ScriptVar], a
ret
; 29f54
@@ -33587,18 +33674,20 @@ Function29fe4: ; 29fe4
ret
; 29ff8
-Function29ff8: ; 29ff8
+LoadWildMonData: ; 29ff8
call Function2a205
jr c, .asm_2a006
ld hl, wd25a
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
jr .asm_2a011
.asm_2a006
+rept 2
inc hl
- inc hl
+endr
ld de, wd25a
ld bc, $3
call CopyBytes
@@ -33606,22 +33695,23 @@ Function29ff8: ; 29ff8
call Function2a21d
ld a, $0
jr nc, .asm_2a01b
+rept 2
inc hl
- inc hl
+endr
ld a, [hl]
.asm_2a01b
ld [wd25d], a
ret
Function2a01f: ; 2a01f
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
ld a, e
and a
jr nz, .asm_2a043
- ld de, TileMap
+ decoord 0, 0
ld hl, WildMons1
call Function2a052
ld hl, WildMons2
@@ -33631,7 +33721,7 @@ Function2a01f: ; 2a01f
ret
.asm_2a043
- ld de, TileMap
+ decoord 0, 0
ld hl, WildMons3
call Function2a052
ld hl, WildMons4
@@ -33648,9 +33738,9 @@ Function2a052: ; 2a052
ld b, a
ld a, [hli]
ld c, a
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld a, $15
call Function2a088
jr nc, .asm_2a067
@@ -33695,8 +33785,9 @@ Function2a088: ; 2a088
ld a, [wd265]
cp [hl]
jr z, .asm_2a098
+rept 2
inc hl
- inc hl
+endr
pop af
dec a
jr nz, .asm_2a089
@@ -33712,8 +33803,8 @@ Function2a09c: ; 2a09c
push de
call GetWorldMapLocation
ld c, a
- ld hl, TileMap
- ld de, $0168
+ hlcoord 0, 0
+ ld de, SCREEN_WIDTH * SCREEN_HEIGHT
.asm_2a0a7
ld a, [hli]
cp c
@@ -33834,13 +33925,13 @@ Function2a138:: ; 2a138
ld de, PartyMon2 - PartyMon1
ld a, [PartyCount]
ld c, a
-.next
+.loop
ld a, [hl]
cp CLEANSE_TAG
jr z, .asm_2a14c
add hl, de
dec c
- jr nz, .next
+ jr nz, .loop
ret
.asm_2a14c
@@ -33854,14 +33945,15 @@ Function2a14f: ; 2a14f
call Function2a2ce
jp c, .asm_2a1c9
+rept 3
inc hl
- inc hl
- inc hl
+endr
call Function1852
ld de, Unknown_2a1d9
jr z, .asm_2a174
+rept 2
inc hl
- inc hl
+endr
ld a, [TimeOfDay]
ld bc, $e
call AddNTimes
@@ -33971,10 +34063,9 @@ Function2a1df:: ; 2a1df
.asm_2a1f2
; to PartyMonLevel
+rept 4
dec hl
- dec hl
- dec hl
- dec hl
+endr
ld a, [CurPartyLevel]
cp [hl]
@@ -34024,7 +34115,7 @@ asm_2a235
asm_2a23d
call Function2a27f
push hl
- ld hl, wdc20
+ ld hl, SwarmFlags
bit 2, [hl]
pop hl
jr z, .asm_2a25c
@@ -34041,7 +34132,7 @@ asm_2a23d
.asm_2a25c
push hl
- ld hl, wdc20
+ ld hl, SwarmFlags
bit 3, [hl]
pop hl
jr z, asm_2a278
@@ -34171,9 +34262,9 @@ Function2a2ce: ; 2a2ce
ld a, e
cp [hl]
jr nz, .asm_2a30a
+rept 3
dec hl
- dec hl
- dec hl
+endr
ld a, [hli]
ld [wd22e], a
ld a, [hl]
@@ -34192,7 +34283,7 @@ Function2a2ce: ; 2a2ce
; 2a30d
-Function2a30d: ; 2a30d
+UpdateRoamMons: ; 2a30d
ld a, [wRoamMon1MapGroup]
cp $ff
jr z, .asm_2a324
@@ -34272,8 +34363,9 @@ Function2a355: ; 2a355
inc hl
ld c, a
ld b, $0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [wdfe7]
cp [hl]
jr nz, .asm_2a390
@@ -34289,7 +34381,7 @@ Function2a355: ; 2a355
ld c, [hl]
ret
-Function2a394: ; 2a394
+RestoreRoamMons: ; 2a394
ld a, [wRoamMon1MapGroup]
cp $ff
jr z, .asm_2a3a6
@@ -34433,8 +34525,9 @@ Function2a4ab: ; 2a4ab
dec a
ld c, a
ld b, $0
+rept 2
add hl, bc
- add hl, bc
+endr
inc hl
ld c, [hl]
pop hl
@@ -34506,8 +34599,9 @@ Function2a51f: ; 2a51f
and $3
ld c, a
ld b, $0
+rept 2
add hl, bc
- add hl, bc
+endr
inc hl
ld a, [hl]
ld [wd265], a
@@ -34526,8 +34620,9 @@ RandomPhoneMon: ; 2a567
dec a
ld c, a
ld b, 0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, BANK(TrainerGroups)
call GetFarHalfword
@@ -34887,9 +34982,9 @@ Function2c075: ; 2c075
jr z, .asm_2c08b
.asm_2c07f
+rept 3
dec hl
- dec hl
- dec hl
+endr
ld a, [hl]
and a
ld b, $32
@@ -34898,9 +34993,9 @@ Function2c075: ; 2c075
jr .asm_2c08e
.asm_2c08b
+rept 3
dec hl
- dec hl
- dec hl
+endr
.asm_2c08e
ld a, b
@@ -34968,7 +35063,7 @@ Function2c0c5: ; 2c0c5
Function2c0f1: ; 2c0f1
ld a, [wd004]
ld [hl], a
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld a, [StartFlypoint]
ld [hl], a
@@ -35084,7 +35179,7 @@ TrainerClassNames:: ; 2c1ef
db "RIVAL@"
db "#MON PROF.@"
db "ELITE FOUR@"
- db $4a, " TRAINER@"
+ db "<PKMN> TRAINER@"
db "ELITE FOUR@"
db "ELITE FOUR@"
db "ELITE FOUR@"
@@ -35135,7 +35230,7 @@ TrainerClassNames:: ; 2c1ef
db "KIMONO GIRL@"
db "TWINS@"
db "#FAN@"
- db $4a, " TRAINER@"
+ db "<PKMN> TRAINER@"
db "LEADER@"
db "OFFICER@"
db "ROCKET@"
@@ -35942,9 +36037,9 @@ Function2c9e2: ; 2c9e2 (b:49e2)
jr .asm_2ca85
.asm_2ca77
call Function2ca86
+rept 3
inc hl
- inc hl
- inc hl
+endr
push de
ld de, String_2caae
call PlaceString
@@ -36099,8 +36194,9 @@ PrintMoveDesc: ; 2cb3e
dec a
ld c, a
ld b, 0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld e, a
ld d, [hl]
@@ -36243,14 +36339,14 @@ ConvertBerriesToBerryJuice: ; 2ede6
push hl
ld a, [hl]
cp SHUCKLE
- jr nz, .nextMon
+ jr nz, .loopMon
ld bc, PartyMon1Item - PartyMon1Species
add hl, bc
ld a, [hl]
cp BERRY
jr z, .convertToJuice
-.nextMon
+.loopMon
pop hl
ld bc, PartyMon2 - PartyMon1
add hl, bc
@@ -36424,9 +36520,9 @@ ClearBattleRAM: ; 2ef18
ld [wd0ee], a
ld hl, wd0d8
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld [wd0e4], a
@@ -36651,8 +36747,9 @@ ReadTrainerParty: ; 39771
ld c, a
ld b, 0
ld hl, TrainerGroups
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -36662,10 +36759,10 @@ ReadTrainerParty: ; 39771
.skip_trainer
dec b
jr z, .got_trainer
-.next
+.loop
ld a, [hli]
cp $ff
- jr nz, .next
+ jr nz, .loop
jr .skip_trainer
.got_trainer
@@ -36680,8 +36777,9 @@ ReadTrainerParty: ; 39771
ld d, h
ld e, l
ld hl, TrainerTypes
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -36929,9 +37027,9 @@ TrainerType4: ; 3989d
Function3991b: ; 3991b (e:591b)
ld hl, $ffb3
xor a
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld a, [wc652] ; base reward
ld [hli], a
ld a, [CurPartyLevel]
@@ -36947,70 +37045,72 @@ Function3991b: ; 3991b (e:591b)
ret
-Function39939:: ; 39939
+Battle_GetTrainerName:: ; 39939
ld a, [wcfc0]
bit 0, a
ld hl, wd26b
- jp nz, Function39984
+ jp nz, CopyTrainerName
ld a, [OtherTrainerID]
ld b, a
ld a, [OtherTrainerClass]
ld c, a
-Function3994c:: ; 3994c
+GetTrainerName:: ; 3994c
ld a, c
cp CAL
- jr nz, .asm_3996d
+ jr nz, .not_cal2
ld a, $0
call GetSRAMBank
ld a, [$abfd]
and a
call CloseSRAM
- jr z, .asm_3996d
+ jr z, .not_cal2
ld a, $0
call GetSRAMBank
ld hl, $abfe
- call Function39984
+ call CopyTrainerName
jp CloseSRAM
-.asm_3996d
+.not_cal2
dec c
push bc
ld b, 0
ld hl, TrainerGroups
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
pop bc
-.asm_3997a
+.loop
dec b
- jr z, Function39984
+ jr z, CopyTrainerName
-.asm_3997d
+.skip
ld a, [hli]
cp $ff
- jr nz, .asm_3997d
- jr .asm_3997a
+ jr nz, .skip
+ jr .loop
-Function39984: ; 39984
+CopyTrainerName: ; 39984
ld de, StringBuffer1
push de
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
pop de
ret
; 39990
Function39990: ; 39990
+; This function is useless.
ld de, StringBuffer1
push de
- ld bc, $000b
+ ld bc, NAME_LENGTH
pop de
ret
; 39999
@@ -37150,8 +37250,9 @@ Function421f5: ; 421f5
ld b, 0
ld c, a
ld hl, EvosAttacksPointers
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -37321,7 +37422,7 @@ Function421f5: ; 421f5
xor a
ld [hBGMapMode], a
- ld hl, TileMap
+ hlcoord 0, 0
lb bc, 12, 20
call ClearBox
@@ -37541,8 +37642,9 @@ LearnLevelMoves: ; 42487
ld b, 0
ld c, a
ld hl, EvosAttacksPointers
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -37741,8 +37843,9 @@ GetPreEvolution: ; 42581
.asm_42583
ld hl, EvosAttacksPointers
ld b, 0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -37808,9 +37911,9 @@ AIChooseMove: ; 440ce
; The default score is 20. Unusable moves are given a score of 80.
ld a, 20
ld hl, Buffer1
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
; Don't pick disabled moves.
@@ -37894,8 +37997,9 @@ AIChooseMove: ; 440ce
ld hl, AIScoringPointers
dec c
ld b, 0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -37909,7 +38013,7 @@ AIChooseMove: ; 440ce
ld hl, Buffer1
ld de, EnemyMonMoves
ld c, EnemyMonMovesEnd - EnemyMonMoves
-
+
.DecrementNextScore
; If the enemy has no moves, this will infinite.
ld a, [de]
@@ -37933,7 +38037,7 @@ AIChooseMove: ; 440ce
; This means that the minimum score will be 1.
.PickLowestScoreMoves
ld a, c
-
+
.asm_44175
inc [hl]
dec hl
@@ -37944,13 +38048,13 @@ AIChooseMove: ; 440ce
ld hl, Buffer1
ld de, EnemyMonMoves
ld c, NUM_MOVES
-
+
; Give a score of 0 to a blank move
.asm_44184
ld a, [de]
and a
jr nz, .asm_44189
- ld [hl], a
+ ld [hl], a
; Disregard the move if its score is not 1
.asm_44189
@@ -37960,7 +38064,7 @@ AIChooseMove: ; 440ce
xor a
ld [hli], a
jr .asm_44193
-
+
.asm_44191
ld a, [de]
ld [hli], a
@@ -38128,8 +38232,9 @@ Function4424d: ; 4424d
ld d, l
ld e, h
pop hl
+rept 2
inc hl
- inc hl
+endr
ld a, d
or e
jr z, .asm_442b0
@@ -38229,8 +38334,9 @@ Function44333: ; 44333
dec a
ld d, 0
ld e, a
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -38260,7 +38366,7 @@ GLOBAL PokedexEntries4
db BANK(PokedexEntries3)
db BANK(PokedexEntries4)
; 44355
-
+
Function44355: ; 44355
call Function44333
push hl
@@ -38272,10 +38378,9 @@ Function44355: ; 44355
inc hl
cp $50
jr nz, .asm_4435b
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
dec c
jr z, .asm_44374
.asm_4436b
@@ -38425,7 +38530,7 @@ Function44648: ; 44648
Function44654:: ; 44654
push bc
push de
- callba Function50000
+ callba SelectMonFromParty
ld a, $2
jr c, .asm_446c6
ld a, [CurPartyMon]
@@ -38488,7 +38593,7 @@ Function44654:: ; 44654
ret
; 446cc
-Function446cc:: ; 446cc
+GivePokeItem:: ; 446cc
ld a, [PartyCount]
dec a
push af
@@ -38608,11 +38713,11 @@ _KrisMailBoxMenu: ; 0x447a0
jr z, .nomail
call Function1d6e
call Function44806
- jp Function1c17
+ jp WriteBackup
.nomail
ld hl, .EmptyMailboxText
- jp Function1d67
+ jp MenuTextBoxBackup
; 0x447b4
.EmptyMailboxText ; 0x447b4
@@ -38682,11 +38787,11 @@ Function44806: ; 0x44806
.asm_4480f
call InitMail
ld hl, MenuData4494c
- call Function1d3c
+ call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
call Function352f
- call Function1ad2
+ call DrawOnMap
ld a, [wd0f1]
ld [wcf88], a
ld a, [OBPals + 8 * 6]
@@ -38710,8 +38815,8 @@ Function44806: ; 0x44806
Function4484a: ; 0x4484a
ld hl, MenuData44964
call LoadMenuDataHeader
- call Function1d81
- call Function1c07
+ call InterpretMenu2
+ call ExitMenu
jr c, .asm_44860
ld a, [wcfa9]
dec a
@@ -38739,9 +38844,9 @@ Function4484a: ; 0x4484a
.PutInPack ; 0x44877
ld hl, .MessageLostText
- call Function1d4f
+ call MenuTextBox
call YesNoBox
- call Function1c07
+ call ExitMenu
ret c
ld a, [MenuSelection]
dec a
@@ -38752,7 +38857,7 @@ Function4484a: ; 0x4484a
call ReceiveItem
jr c, .asm_4489e
ld hl, .PackFullText
- jp Function1d67
+ jp MenuTextBoxBackup
.asm_4489e
ld a, [MenuSelection]
@@ -38760,7 +38865,7 @@ Function4484a: ; 0x4484a
ld b, a
call Function445c0
ld hl, .PutAwayText
- jp Function1d67
+ jp MenuTextBoxBackup
; 0x448ac
.PutAwayText ; 0x448ac
@@ -38954,7 +39059,7 @@ Function4802f: ; 4802f (12:402f)
ld b, $1
call Function4930f
call WhiteBGMap
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $2
ld c, $14
call ClearBox
@@ -39209,7 +39314,7 @@ asm_4828d: ; 4828d (12:428d)
ld [wcf88], a
call Function1bc9
call PlayClickSFX
- call Function1c07
+ call ExitMenu
bit 0, a
jp z, Function4840c
ld hl, wcfa9
@@ -39279,8 +39384,8 @@ Function48304: ; 48304 (12:4304)
ld [wd0e4], a
ld a, d
push af
- call Function1c07
- call Function1c07
+ call ExitMenu
+ call ExitMenu
pop af
ld a, [hJoyPressed] ; $ff00+$a7
bit 0, a
@@ -39425,8 +39530,9 @@ Function48444: ; 48444 (12:4444)
.asm_4844b
and a
jr z, .asm_48453
+rept 2
inc hl
- inc hl
+endr
dec a
jr .asm_4844b
.asm_48453
@@ -39572,7 +39678,7 @@ Function48689: ; 48689 (12:4689)
ld b, $1
call Function4930f
call WhiteBGMap
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $4
ld c, $14
call ClearBox
@@ -39651,12 +39757,13 @@ Function486bf: ; 486bf (12:46bf)
pop af
ld [hli], a
ld a, $1
+rept 2
ld [hli], a
- ld [hli], a
+endr
xor a
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ret
Function48725: ; 48725 (12:4725)
@@ -39707,9 +39814,9 @@ Function4873c: ; 4873c (12:473c)
ld a, $1
ld [hli], a
xor a
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ret
Function4876f: ; 4876f (12:476f)
@@ -39764,7 +39871,7 @@ Function4876f: ; 4876f (12:476f)
ld [wd473], a
.asm_487da
ld a, [wd473]
- call Function1c07
+ call ExitMenu
hlcoord 11, 6
call Function487ec
pop af
@@ -39776,10 +39883,9 @@ Function487ec: ; 487ec (12:47ec)
ld de, wd473
call Function487ff
pop hl
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
ld de, String_4880d
call PlaceString
ret
@@ -40064,7 +40170,7 @@ asm_48972: ; 48972 (12:4972)
pop de
pop bc
pop af
- call Function1c07
+ call ExitMenu
hlcoord 11, 10
call Function489ea
hlcoord 11, 9
@@ -40137,7 +40243,7 @@ Function48a3a: ; 48a3a (12:4a3a)
call Function1bc9
push af
call PlayClickSFX
- call Function1c07
+ call ExitMenu
pop af
bit 1, a
jp nz, Function48a9a
@@ -40577,10 +40683,12 @@ Function48cdc: ; 48cdc (12:4cdc)
pop bc
ld de, AttrMap - TileMap
add hl, de
+rept 2
inc b
- inc b
- inc c
+endr
+rept 2
inc c
+endr
ld a, $0
.asm_48ced
push bc
@@ -40742,8 +40850,8 @@ Function48dcb: ; 48dcb (12:4dcb)
ld hl, MenuDataHeader_0x48dfc
call LoadMenuDataHeader
call Function3200
- call Function1d81
- call Function1c17
+ call InterpretMenu2
+ call WriteBackup
ld a, [wcfa9]
dec a
ld [PlayerGender], a
@@ -40785,11 +40893,11 @@ Function48e14: ; 48e14 (12:4e14)
call WhiteBGMap
call Function48000
call Functione5f
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $0
call ByteFill
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $168
xor a
call ByteFill
@@ -40826,8 +40934,9 @@ INCBIN "gfx/unknown/048e71.2bpp"
Function48e81: ; 48e81
ld hl, PackFGFXPointers
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld e, a
ld d, [hl]
@@ -40942,12 +41051,12 @@ Function492b9: ; 492b9
jr .learned
.didnt_learn
- call Function1c07
+ call ExitMenu
and a
ret
.learned
- call Function1c07
+ call ExitMenu
scf
ret
; 4930a
@@ -40997,7 +41106,7 @@ Function49336: ; 49336
dec c
jr nz, .asm_49338
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
@@ -41007,7 +41116,7 @@ Function49336: ; 49336
Function49346: ; 49346 (12:5346)
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $168
xor a
call ByteFill
@@ -41035,7 +41144,7 @@ Function4936e: ; 4936e (12:536e)
ret
Function49384: ; 49384 (12:5384)
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $401
ld a, $1
call Function49336
@@ -41133,8 +41242,8 @@ Function4942f: ; 4942f
ld a, $5 ; BANK(Unkn1Pals)
call FarCopyWRAM
call Function49346
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
hlcoord 0, 14, AttrMap
@@ -41166,7 +41275,7 @@ Palette_49478: ; 49478
; 49480
Function49480: ; 49480
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $0414
ld a, $7
call Function49336
@@ -41179,7 +41288,7 @@ Function49480: ; 49480
; 49496
Function49496: ; 49496
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $0214
ld a, $7
call Function49336
@@ -41218,7 +41327,7 @@ Function494ac: ; 494ac
ret
.ice_path
- ld a, [wd19a] ; permission
+ ld a, [wPermission] ; permission
and 7
cp 3 ; Hall of Fame
jr z, .do_nothing
@@ -41476,13 +41585,13 @@ Palette_49757: ; 49757
; 49797
Function49797: ; 49797
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $1002
ld a, $4
call Function49336
ld a, $3
- ld [AttrMap + 0 + 1 * SCREEN_WIDTH], a
- ld [AttrMap + 0 + 14 * SCREEN_WIDTH], a
+ ld [AttrMap + 0 + 1 * SCREEN_WIDTH], a ; (0, 1)
+ ld [AttrMap + 0 + 14 * SCREEN_WIDTH], a ; (0, 14)
hlcoord 2, 0, AttrMap
ld bc, $0812
ld a, $5
@@ -41515,9 +41624,9 @@ Function49797: ; 49797
hlcoord 2, 16, AttrMap
ld [hli], a
ld a, $7
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld a, $2
ld [hl], a
hlcoord 2, 17, AttrMap
@@ -41607,10 +41716,10 @@ Function4989a: ; 4989a
ld a, $a0
ld [wcf64], a
ld d, $0
-.asm_498ca
+.loop
ld a, [wcf63]
bit 7, a
- jr nz, .asm_498ee
+ jr nz, .done
push bc
call Function49bae
inc d
@@ -41623,9 +41732,9 @@ Function4989a: ; 4989a
call DelayFrames
pop de
pop bc
- jr .asm_498ca
+ jr .loop
-.asm_498ee
+.done
pop af
ld [VramState], a
call Function498f9
@@ -41637,14 +41746,14 @@ Function498f9: ; 498f9
ld hl, Sprites + 2
xor a
ld c, $4
-.asm_498ff
+.loop
ld [hli], a
+rept 3
inc hl
- inc hl
- inc hl
+endr
inc a
dec c
- jr nz, .asm_498ff
+ jr nz, .loop
ld hl, Sprites + $10
ld bc, $0090
xor a
@@ -41830,8 +41939,9 @@ Function49b52: ; 49b52 (12:5b52)
ld a, d
ld d, $0
ld hl, Unknown_49b6e
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -41957,7 +42067,7 @@ MainMenu: ; 49cdc
ld hl, MenuDataHeader_0x49d14
call LoadMenuDataHeader
call Function49de4
- call Function1c17
+ call WriteBackup
jr c, .quit
call ClearTileMap
ld a, [MenuSelection]
@@ -42092,11 +42202,11 @@ Function49da4: ; 49da4
nop
ld a, [wcfcd]
and a
- jr nz, .asm_49db0
+ jr nz, .next
ld a, $0
ret
-.asm_49db0
+.next
ld a, [hCGB]
cp $1
ld a, $1
@@ -42106,30 +42216,30 @@ Function49da4: ; 49da4
ld a, [$abe5]
cp $ff
call CloseSRAM
- jr nz, .asm_49dd6
+ jr nz, .done
ld a, [StatusFlags]
bit 7, a
ld a, $1
- jr z, .asm_49dd1
- jr .asm_49dd1
+ jr z, .ok
+ jr .ok
-.asm_49dd1
- jr .asm_49dd3
+.ok
+ jr .ok2
-.asm_49dd3
+.ok2
ld a, $1
ret
-.asm_49dd6
+.done
ld a, [StatusFlags]
bit 7, a
- jr z, .asm_49ddf
- jr .asm_49ddf
+ jr z, .ok3
+ jr .ok3
-.asm_49ddf
- jr .asm_49de1
+.ok3
+ jr .ok4
-.asm_49de1
+.ok4
ld a, $6
ret
; 49de4
@@ -42464,8 +42574,9 @@ Function4a071: ; 4a071 (12:6071)
add $2
ld [hli], a
ld a, $1
+rept 2
ld [hli], a
- ld [hli], a
+endr
ret
Function4a098: ; 4a098 (12:6098)
@@ -42547,8 +42658,9 @@ Function4a118: ; 4a118 (12:6118)
add $2
ld [hli], a
ld a, $1
+rept 2
ld [hli], a
- ld [hli], a
+endr
ret
Function4a13b: ; 4a13b (12:613b)
@@ -42736,7 +42848,7 @@ Function4a28a: ; 4a28a (12:628a)
callba Function104148
ld hl, MenuDataHeader_0x4a362
call LoadMenuDataHeader
- call Function1d81
+ call InterpretMenu2
bit 1, a
jr nz, .asm_4a338
ld a, [wcfa9]
@@ -42753,7 +42865,7 @@ Function4a28a: ; 4a28a (12:628a)
call PrintText
call Functiona36
.asm_4a338
- call Function1c07
+ call ExitMenu
.asm_4a33b
call Function1d7d
callba Function104148
@@ -42822,8 +42934,9 @@ Function4a373: ; 4a373 (12:6373)
add $2
ld [hli], a
ld a, $1
+rept 2
ld [hli], a
- ld [hli], a
+endr
ret
; 4a39a (12:639a)
@@ -42838,7 +42951,7 @@ Function4a39a: ; 4a39a
Function4a3a7: ; 4a3a7 (12:63a7)
call Function4a485
Function4a3aa: ; 4a3aa
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $301
xor a
call Function4a6d8
@@ -42904,7 +43017,7 @@ Function4a3aa: ; 4a3aa
Function4a449: ; 4a449
ld bc, $003c
ld a, $0
- ld hl, TileMap
+ hlcoord 0, 0
call ByteFill
ld bc, $0028
ld a, $1
@@ -42915,13 +43028,13 @@ Function4a449: ; 4a449
ld bc, $0028
ld a, $1
call ByteFill
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld a, $2
call ByteFill
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld a, $3
call ByteFill
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld a, $7f
call ByteFill
ret
@@ -43134,12 +43247,13 @@ Function4a680: ; 4a680 (12:6680)
add $2
ld [hli], a
ld a, $1
+rept 2
ld [hli], a
- ld [hli], a
+endr
xor a
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ret
Function4a6ab: ; 4a6ab (12:66ab)
@@ -43269,13 +43383,13 @@ CheckOwnMonAnywhere: ; 0x4a721
ld bc, sBoxMonOT
.openboxmon
call CheckOwnMon
- jr nc, .next
+ jr nc, .loop
; found!
call CloseSRAM
ret
-.next
+.loop
push bc
ld bc, sBoxMon2 - sBoxMon1
add hl, bc
@@ -43294,14 +43408,14 @@ CheckOwnMonAnywhere: ; 0x4a721
ld a, [wCurBox]
and $f
cp c
- jr z, .nextbox
+ jr z, .loopbox
; Load the box.
- ld hl, Unknown_4a810
+ ld hl, BoxAddressTable1
ld b, 0
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
ld a, [hli]
call GetSRAMBank
ld a, [hli]
@@ -43311,7 +43425,7 @@ CheckOwnMonAnywhere: ; 0x4a721
; Number of monsters in the box
ld a, [hl]
and a
- jr z, .nextbox
+ jr z, .loopbox
push bc
@@ -43332,14 +43446,14 @@ CheckOwnMonAnywhere: ; 0x4a721
.boxmon
call CheckOwnMon
- jr nc, .nextboxmon
+ jr nc, .loopboxmon
; found!
pop bc
call CloseSRAM
ret
-.nextboxmon
+.loopboxmon
push bc
ld bc, sBoxMon2 - sBoxMon1
add hl, bc
@@ -43349,7 +43463,7 @@ CheckOwnMonAnywhere: ; 0x4a721
jr nz, .boxmon
pop bc
-.nextbox
+.loopbox
inc c
ld a, c
cp NUM_BOXES
@@ -43430,7 +43544,7 @@ CheckOwnMon: ; 0x4a7ba
ret
; 0x4a810
-Unknown_4a810: ; 4a810
+BoxAddressTable1: ; 4a810
; bank, address
dbw $02, $a000
dbw $02, $a450
@@ -43459,7 +43573,7 @@ UpdateOTPointer: ; 0x4a83a
; 0x4a843
-Function4a843: ; 4a843
+MobileCheckOwnMonAnywhere: ; 4a843
; Like CheckOwnMonAnywhere, but only check for species.
; OT/ID don't matter.
@@ -43512,11 +43626,11 @@ Function4a843: ; 4a843
and $f
cp c
jr z, .asm_4a8d1
- ld hl, Unknown_4a8f4
+ ld hl, BoxAddressTable2
ld b, 0
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
ld a, [hli]
call GetSRAMBank
ld a, [hli]
@@ -43593,7 +43707,7 @@ Function4a8dc: ; 4a8dc
ret
; 4a8f4
-Unknown_4a8f4: ; 4a8f4
+BoxAddressTable2: ; 4a8f4
; bank, address
dbw $02, $a000
dbw $02, $a450
@@ -44079,8 +44193,9 @@ Function4abc3: ; 4abc3
ld a, [wcfa9]
ld [wcfa9], a
ld a, [PartyCount]
+rept 2
inc a
- inc a
+endr
ld b, a
ld a, [wcfa9]
cp b
@@ -44172,7 +44287,7 @@ Function4ac58: ; 4ac58
ld a, $1
ld [hBGMapMode], a
call Function4acaa
- call Function1c07
+ call ExitMenu
and a
ret
; 4aca2
@@ -44413,7 +44528,7 @@ Function4ae1f: ; 4ae1f
ld bc, $0e07
push bc
ld hl, YesNoMenuDataHeader
- call Function1d3c
+ call CopyMenuDataHeader
pop bc
ld a, b
ld [wcf83], a
@@ -44424,7 +44539,7 @@ Function4ae1f: ; 4ae1f
add $4
ld [wcf84], a
call Function1c00
- call Function1d81
+ call InterpretMenu2
push af
ld c, $f
call DelayFrames
@@ -44447,8 +44562,8 @@ Function4ae1f: ; 4ae1f
Function4ae5e: ; 4ae5e
ld a, [hOAMUpdate]
push af
- call Function1c07
- call Function1ad2
+ call ExitMenu
+ call DrawOnMap
xor a
ld [hOAMUpdate], a
call DelayFrame
@@ -44464,8 +44579,8 @@ Function4ae5e: ; 4ae5e
SECTION "bank13", ROMX, BANK[$13]
Function4c000:: ; 4c000
- ld hl, TileMap
- ld de, AttrMap
+ hlcoord 0, 0
+ decoord 0, 0, AttrMap
ld b, $12
.asm_4c008
push bc
@@ -44640,11 +44755,11 @@ Function4cf45: ; 4cf45 (13:4f45)
di
ld a, $1
ld [rVBK], a ; $ff00+$4f
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
call Function4cf80
ld a, $0
ld [rVBK], a ; $ff00+$4f
- ld hl, TileMap
+ hlcoord 0, 0
call Function4cf80
.asm_4cf72
ld a, [rLY] ; $ff00+$44
@@ -44810,11 +44925,12 @@ Function4d15b:: ; 4d15b
ld a, [wd197]
and a
jr z, .asm_4d170
+rept 2
inc hl
- inc hl
+endr
.asm_4d170
- ld de, TileMap
+ decoord 0, 0
ld b, SCREEN_HEIGHT
.asm_4d175
ld c, SCREEN_WIDTH
@@ -44858,11 +44974,11 @@ Function4d188: ; 4d188
di
ld a, $1
ld [rVBK], a
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
call Function4d1cb
ld a, $0
ld [rVBK], a
- ld hl, TileMap
+ hlcoord 0, 0
call Function4d1cb
.asm_4d1bd
ld a, [rLY]
@@ -45035,10 +45151,12 @@ Function4d35b: ; 4d35b
pop bc
ld de, AttrMap - TileMap
add hl, de
+rept 2
inc b
- inc b
- inc c
+endr
+rept 2
inc c
+endr
ld a, $7
.asm_4d36e
push bc
@@ -45048,7 +45166,7 @@ Function4d35b: ; 4d35b
dec c
jr nz, .asm_4d370
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
pop bc
dec b
@@ -45065,7 +45183,7 @@ Function4d37e: ; 4d37e
inc a
ld [hl], a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
.asm_4d38d
push hl
@@ -45075,7 +45193,7 @@ Function4d37e: ; 4d37e
call Function4d3ab
ld [hl], $7a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
dec b
jr nz, .asm_4d38d
@@ -45107,8 +45225,8 @@ Function4d3b1: ; 4d3b1
ld hl, UnknownText_0x4d408
call PrintText
ld hl, MenuDataHeader_0x4d40d
- call Function1d3c
- call Function1d81
+ call CopyMenuDataHeader
+ call InterpretMenu2
ret c
ld a, [wcfa9]
cp $1
@@ -45385,8 +45503,8 @@ Function4d54c: ; 4d54c
ld hl, UnknownText_0x4d580
call PrintText
ld hl, MenuDataHeader_0x4d585
- call Function1d3c
- call Function1d81
+ call CopyMenuDataHeader
+ call InterpretMenu2
ret c
ld a, [wcfa9]
cp $1
@@ -45617,9 +45735,9 @@ Function4d87a: ; 4d87a
jr z, .asm_4d90b
ld hl, Unknown_4d99f
ld b, 0
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
ld a, [hli]
call GetSRAMBank
ld a, [hli]
@@ -45794,7 +45912,7 @@ Function4d9d3: ; 4d9d3
ret
; 4d9e5
-Function4d9e5: ; 4d9e5
+CheckPartyFullAfterContest: ; 4d9e5
ld a, [wdf9c]
and a
jp z, Function4db35
@@ -46226,7 +46344,7 @@ StatsScreenInit_gotaddress: ; 4dc94
push hl
call WhiteBGMap
call ClearTileMap
- call Function1ad2
+ call DrawOnMap
callba Functionfb53e
pop hl
call _hl_
@@ -46814,8 +46932,9 @@ Function4e0e7: ; 4e0e7 (13:60e7)
inc a
ld d, a
callba Function50e47
+rept 2
ld hl, TempMonExp + 2
- ld hl, TempMonExp + 2
+endr
ld a, [$ffb6]
sub [hl]
dec hl
@@ -46831,8 +46950,9 @@ Function4e0e7: ; 4e0e7 (13:60e7)
.asm_4e111
ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ret
; 4e119 (13:6119)
@@ -47004,13 +47124,13 @@ Function4e253: ; 4e253 (13:6253)
ld a, [CurPartySpecies]
cp UNOWN
jr z, .asm_4e266
- ld hl, TileMap
+ hlcoord 0, 0
call Function3786
ret
.asm_4e266
xor a
ld [wc2c6], a
- ld hl, TileMap
+ hlcoord 0, 0
call Function378b
ret
@@ -47035,7 +47155,7 @@ Function4e289: ; 4e289 (13:6289)
call Function4e307
ld de, $9000
predef Function5108b
- ld hl, TileMap
+ hlcoord 0, 0
ld d, $0
ld e, $2
predef Functiond00a3
@@ -47178,7 +47298,7 @@ EggStatsScreen: ; 4e33a
set 5, [hl]
call Function32f9 ; pals
call DelayFrame
- ld hl, TileMap
+ hlcoord 0, 0
call Function3786
callba Function10402d
call Function4e497
@@ -47239,7 +47359,7 @@ Function4e497: ; 4e497 (13:6497)
ld de, $9000
predef Function5108b
pop de
- ld hl, TileMap
+ hlcoord 0, 0
ld d, $0
predef Functiond00a3
ld hl, wcf64
@@ -47342,8 +47462,9 @@ Function4e554:: ; 4e554
ld c, a
ld hl, Jumptable_4e564
ld b, 0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -47407,8 +47528,9 @@ Function4e5b7: ; 4e5b7 (13:65b7)
ld a, $1
ld [hli], a
ld a, $5
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], $ff
ret
; 4e5da (13:65da)
@@ -47611,8 +47733,9 @@ Function4e726: ; 4e726
call Function4e741
pop bc
inc b
+rept 2
dec c
- dec c
+endr
jr nz, .asm_4e72c
and a
ret
@@ -47640,7 +47763,7 @@ Function4e755: ; 4e755
xor a
ld [hBGMapMode], a
hlcoord 7, 2
- ld bc, $0707
+ lb bc, 7, 7
ld de, $000d
.asm_4e762
push bc
@@ -47768,8 +47891,9 @@ Function4e80c: ; 4e80c
ld a, [$ff9b]
and $e
srl a
+rept 2
inc a
- inc a
+endr
and $7
ld b, a
ld hl, Sprites + 3
@@ -47778,9 +47902,9 @@ Function4e80c: ; 4e80c
ld a, [hl]
or b
ld [hli], a
+rept 3
inc hl
- inc hl
- inc hl
+endr
dec c
jr nz, .asm_4e823
pop bc
@@ -47804,8 +47928,8 @@ Function4e881: ; 4e881
ld bc, $400
ld a, $7f
call ByteFill
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
xor a
@@ -47837,8 +47961,8 @@ Function4e8c2: ; 4e8c2
ld bc, $400
ld a, $7f
call ByteFill
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
ld hl, wd000
@@ -48010,10 +48134,12 @@ Function4e9ab: ; 4e9ab
ld a, d
ld [hSCX], a
call Function4e9f1
+rept 2
inc e
- inc e
- dec d
+endr
+rept 2
dec d
+endr
pop af
push af
cp $1
@@ -48035,8 +48161,9 @@ Function4e9d6: ; 4e9d6
ld c, $12
ld de, $0004
.asm_4e9de
+rept 2
dec [hl]
- dec [hl]
+endr
add hl, de
dec c
jr nz, .asm_4e9de
@@ -48163,7 +48290,7 @@ INCLUDE "event/poke_seer.asm"
SECTION "bank14", ROMX, BANK[$14]
-Function50000: ; 50000
+SelectMonFromParty: ; 50000
call Function2ed3
xor a
ld [PartyMenuActionText], a
@@ -48218,8 +48345,8 @@ WritePartyMenuTilemap: ; 0x5005f
set 4, [hl] ; Disable text delay
xor a
ld [hBGMapMode], a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
call ByteFill ; blank the tilemap
call Function50396 ; This reads from a pointer table???
@@ -48275,8 +48402,9 @@ Function5009b: ; 5009b
jr nz, .asm_500a7
.asm_500bf
+rept 2
dec hl
- dec hl
+endr
ld de, String_500c8
call PlaceString
ret
@@ -48384,8 +48512,9 @@ Function50138: ; 50138
pop de
ld a, $f3
ld [hli], a
+rept 2
inc de
- inc de
+endr
ld bc, $0203
call PrintNum
@@ -48552,8 +48681,9 @@ Function5022f: ; 5022f
ld e, a
ld d, 0
ld hl, EvosAttacksPointers
+rept 2
add hl, de
- add hl, de
+endr
call Function50268
pop hl
call PlaceString
@@ -48587,16 +48717,19 @@ Function50268: ; 50268
ld a, [hli]
and a
jr z, .asm_5029f
+rept 2
inc hl
- inc hl
+endr
cp EVOLVE_ITEM
jr nz, .asm_50287
+rept 2
dec hl
- dec hl
+endr
ld a, [CurItem]
cp [hl]
+rept 2
inc hl
- inc hl
+endr
jr nz, .asm_50287
ld de, String_502a3
ret
@@ -48771,8 +48904,9 @@ Function50396: ; 50396
ld e, a
ld d, 0
ld hl, Unknown_503b2
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -48945,8 +49079,9 @@ PrintPartyMenuText: ; 5049a
ld hl, PartyMenuStrings
ld e, a
ld d, $0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -49082,8 +49217,9 @@ UnknownText_0x505bc: ; 0x505bc
Function505c1: ; 505c1
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -49251,9 +49387,9 @@ PoisonWhiteOutText: ; 506b7
; 506bc
-Function506bc: ; 506bc
+DoMovementFunctionc: ; 506bc
ld hl, UnknownScript_0x506c8
- call Function31cd
+ call ExitMenuCallScript
ld a, $1
ld [wd0ec], a
ret
@@ -49276,7 +49412,7 @@ UnknownScript_0x506c8: ; 0x506c8
; 0x506e5
UnknownScript_0x506e5: ; 0x506e5
- farjump UnknownScript_0x135eb
+ farjump BugCatchingContestBattleScript
; 0x506e9
UnknownScript_0x506e9: ; 0x506e9
@@ -49330,7 +49466,7 @@ UnknownText_0x5072b: ; 0x5072b
_Squirtbottle: ; 50730
ld hl, UnknownScript_0x5073c
- call Function31cd
+ call ExitMenuCallScript
ld a, $1
ld [wd0ec], a
ret
@@ -49363,7 +49499,7 @@ Function50753: ; 50753
cp MAP_ROUTE_36
jr nz, .asm_50774
- callba Functioncf0d
+ callba GetFacingObject
jr c, .asm_50774
ld a, d
@@ -49384,32 +49520,32 @@ Function50753: ; 50753
_CardKey: ; 50779
ld a, [MapGroup]
cp GROUP_RADIO_TOWER_3F
- jr nz, .asm_507a9
+ jr nz, .nope
ld a, [MapNumber]
cp MAP_RADIO_TOWER_3F
- jr nz, .asm_507a9
+ jr nz, .nope
ld a, [PlayerDirection]
and $c
- cp UP << 2
- jr nz, .asm_507a9
+ cp OW_UP
+ jr nz, .nope
call GetFacingTileCoord
ld a, d
cp 18
- jr nz, .asm_507a9
+ jr nz, .nope
ld a, e
cp 6
- jr nz, .asm_507a9
+ jr nz, .nope
ld hl, UnknownScript_0x507af
- call Function31cd
+ call ExitMenuCallScript
ld a, $1
ld [wd0ec], a
ret
-.asm_507a9
+.nope
ld a, $0
ld [wd0ec], a
ret
@@ -49424,35 +49560,35 @@ UnknownScript_0x507af: ; 0x507af
_BasementKey: ; 507b4
ld a, [MapGroup]
cp GROUP_WAREHOUSE_ENTRANCE
- jr nz, .asm_507db
+ jr nz, .nope
ld a, [MapNumber]
cp MAP_WAREHOUSE_ENTRANCE
- jr nz, .asm_507db
+ jr nz, .nope
call GetFacingTileCoord
ld a, d
cp 22
- jr nz, .asm_507db
+ jr nz, .nope
ld a, e
cp 10
- jr nz, .asm_507db
+ jr nz, .nope
- ld hl, UnknownScript_0x507e1
- call Function31cd
- ld a, $1
+ ld hl, UnlockBasementDoorScript
+ call ExitMenuCallScript
+ ld a, 1
ld [wd0ec], a
ret
-.asm_507db
+.nope
ld a, $0
ld [wd0ec], a
ret
; 507e1
-UnknownScript_0x507e1: ; 0x507e1
+UnlockBasementDoorScript: ; 0x507e1
loadmovesprites
- farjump MapWarehouseEntranceSignpost0Script
+ farjump BasementDoorScript
; 0x507e6
@@ -49462,8 +49598,8 @@ _SacredAsh: ; 507e6
call CheckAnyFaintedMon
ret nc
- ld hl, UnknownScript_0x50821
- call Function31cd
+ ld hl, SacredAshScript
+ call ExitMenuCallScript
ld a, $1
ld [wd0ec], a
ret
@@ -49487,7 +49623,7 @@ CheckAnyFaintedMon: ; 507fb
ld a, [hli]
or [hl]
- jr z, .asm_5081d
+ jr z, .done
.next
pop hl
@@ -49498,23 +49634,23 @@ CheckAnyFaintedMon: ; 507fb
xor a
ret
-.asm_5081d
+.done
pop hl
pop af
scf
ret
; 50821
-UnknownScript_0x50821: ; 0x50821
+SacredAshScript: ; 0x50821
special HealParty
reloadmappart
playsound SFX_WARP_TO
- special Function8c084
- special Function8c079
- special Function8c084
- special Function8c079
- special Function8c084
- special Function8c079
+ special FadeBlackBGMap
+ special FadeInBGMap
+ special FadeBlackBGMap
+ special FadeInBGMap
+ special FadeBlackBGMap
+ special FadeInBGMap
waitbutton
writetext UnknownText_0x50845
playsound SFX_CAUGHT_MON
@@ -49670,8 +49806,9 @@ Function50a28: ; 50a28
dec a
ld c, a
ld b, 0
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -49820,7 +49957,7 @@ DrawHP: ; 50b10
call DrawHPBar
pop hl
-; Print HP
+; Print HP
ld bc, $0015 ; move (1,1)
add hl, bc
ld de, TempMonHP
@@ -49909,44 +50046,44 @@ GetGender: ; 50bdd
ld a, [MonType]
and a
jr z, .PartyMon
-
+
; 1: OTPartyMon
ld hl, OTPartyMon1DVs
dec a
jr z, .PartyMon
-
+
; 2: sBoxMon
ld hl, sBoxMon1DVs
ld bc, sBoxMon2 - sBoxMon1
dec a
jr z, .sBoxMon
-
+
; 3: Unknown
ld hl, TempMonDVs
dec a
jr z, .DVs
-
+
; else: WildMon
ld hl, EnemyMonDVs
jr .DVs
-
-
+
+
; Get our place in the party/box.
-
+
.PartyMon
.sBoxMon
ld a, [CurPartyMon]
call AddNTimes
-
-
+
+
.DVs
-
+
; sBoxMon data is read directly from SRAM.
ld a, [MonType]
cp BOXMON
ld a, 1
call z, GetSRAMBank
-
+
; Attack DV
ld a, [hli]
and $f0
@@ -49955,7 +50092,7 @@ GetGender: ; 50bdd
ld a, [hl]
and $f0
swap a
-
+
; Put our DVs together.
or b
ld b, a
@@ -49964,8 +50101,8 @@ GetGender: ; 50bdd
ld a, [MonType]
cp BOXMON
call z, CloseSRAM
-
-
+
+
; We need the gender ratio to do anything with this.
push bc
ld a, [CurPartySpecies]
@@ -49974,35 +50111,35 @@ GetGender: ; 50bdd
ld bc, BaseData1 - BaseData
call AddNTimes
pop bc
-
+
ld a, BANK(BaseData)
call GetFarByte
-
-
+
+
; The higher the ratio, the more likely the monster is to be female.
-
+
cp $ff
jr z, .Genderless
-
+
and a
jr z, .Male
-
+
cp $fe
jr z, .Female
-
+
; Values below the ratio are male, and vice versa.
cp b
jr c, .Male
-
+
.Female
xor a
ret
-
+
.Male
ld a, 1
and a
ret
-
+
.Genderless
scf
ret
@@ -50030,9 +50167,9 @@ Function50c50: ; 50c50
.asm_50c6f
pop hl
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld d, h
ld e, l
ld hl, TempMonMoves
@@ -50144,8 +50281,9 @@ Function50cdb: ; 50cdb
Function50d0a: ; 50d0a
push de
+rept 2
inc de
- inc de
+endr
ld a, [de]
ld b, a
inc de
@@ -50365,8 +50503,9 @@ Function50e1b: ; 50e1b
Function50e47: ; 50e47
ld a, [BaseGrowthRate]
+rept 2
add a
- add a
+endr
ld c, a
ld b, 0
ld hl, GrowthRates
@@ -50503,8 +50642,8 @@ growth_rate: MACRO
ENDM
growth_rate 1, 1, 0, 0, 0 ; Medium Fast
- growth_rate 3, 4, 10, 0, 30
- growth_rate 3, 4, 20, 0, 70
+ growth_rate 3, 4, 10, 0, 30 ; Slightly Fast
+ growth_rate 3, 4, 20, 0, 70 ; Slightly Slow
growth_rate 6, 5, -15, 100, 140 ; Medium Slow
growth_rate 4, 5, 0, 0, 0 ; Fast
growth_rate 5, 4, 0, 0, 0 ; Slow
@@ -50675,7 +50814,7 @@ GetUnownLetter: ; 51040
srl a
or b
ld b, a
-
+
; spd
ld a, [hl]
and %01100000
@@ -51805,8 +51944,9 @@ DoStep: ; 8025f
ld e, a
ld d, 0
ld hl, .Steps
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -52144,7 +52284,7 @@ WaterToLandSprite: ; 803f9
push bc
ld a, PLAYER_NORMAL
ld [PlayerState], a
- call Functione4a ; UpdateSprites
+ call Special_ReplaceKrisSprite ; UpdateSprites
pop bc
ret
; 80404
@@ -52204,32 +52344,33 @@ EngineFlagAction:: ; 80430
jr z, .ceiling
jr c, .read ; cp 0 can't set carry!
jr .invalid
-
+
; There are only $a2 engine flags, so
; anything beyond that is invalid too.
-
+
.ceiling
ld a, e
cp $a2
jr c, .read
-
+
; Invalid flags are treated as flag 00.
-
+
.invalid
xor a
ld e, a
ld d, a
-
+
; Get this flag's location.
-
+
.read
ld hl, EngineFlags
; location
+rept 2
add hl, de
- add hl, de
+endr
; bit
add hl, de
-
+
; location
ld e, [hl]
inc hl
@@ -52237,28 +52378,28 @@ EngineFlagAction:: ; 80430
inc hl
; bit
ld c, [hl]
-
+
; What are we doing with this flag?
-
+
ld a, b
cp 1
jr c, .reset ; b = 0
jr z, .set ; b = 1
-
+
; Return the given flag in c.
.check
ld a, [de]
and c
ld c, a
ret
-
+
; Set the given flag.
.set
ld a, [de]
or c
ld [de], a
ret
-
+
; Reset the given flag.
.reset
ld a, c
@@ -52277,7 +52418,7 @@ INCLUDE "engine/engine_flags.asm"
-Function80648:: ; 80648 (20:4648)
+_GetVarAction:: ; 80648 (20:4648)
ld a, c
cp NUM_VARS
jr c, .asm_8064e
@@ -52285,10 +52426,10 @@ Function80648:: ; 80648 (20:4648)
.asm_8064e
ld c, a
ld b, 0
- ld hl, Unknown_80671
- add hl, bc
- add hl, bc
+ ld hl, VarActionTable
+rept 3
add hl, bc
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -52312,7 +52453,7 @@ Function8066c: ; 8066c (20:466c)
ret
; 80671 (20:4671)
-Unknown_80671: ; 80671
+VarActionTable: ; 80671
; $00: return address
; $40: return at StringBuffer2
; $80: return function result at StringBuffer2
@@ -52331,12 +52472,12 @@ Unknown_80671: ; 80671
dwb MapGroup, $00
dwb MapNumber, $00
dwb Function806ff, $80
- dwb wd19a, $00
+ dwb wPermission, $00
dwb Function80715, $80
dwb wd46c, $00
dwb XCoord, $00
dwb YCoord, $00
- dwb wdc31, $00
+ dwb wSpecialPhoneCallID, $00
dwb wcf64, $00
dwb wdca4, $00
dwb wdbf9, $40
@@ -52548,12 +52689,12 @@ Function81948: ; 81948
ld bc, $2000
xor a
call ByteFill
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
call ClearSprites
@@ -52734,8 +52875,9 @@ Function81a74: ; 81a74
ld e, a
ld d, 0
ld hl, Jumptable_81acf
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -52793,8 +52935,8 @@ Jumptable_81acf: ; 81acf
Function81adb: ; 81adb
xor a
ld [hBGMapMode], a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $6f
call ByteFill
hlcoord 1, 3
@@ -52868,7 +53010,7 @@ Function81adb: ; 81adb
ld [TempEnemyMonSpecies], a
ld [$ffad], a
hlcoord 2, 3
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
.asm_81ba9
@@ -52915,8 +53057,9 @@ Function81bf4: ; 81bf4
inc a
ld l, a
ld h, $0
+rept 2
add hl, hl
- add hl, hl
+endr
ld de, OverworldMap
add hl, de
ld de, wc608
@@ -52990,8 +53133,9 @@ Function81c33: ; 81c33
ld a, [wc608 + 3]
ld [hli], a
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld hl, wcda9
call Function81f0c
@@ -53007,9 +53151,9 @@ Function81c33: ; 81c33
; 81ca7
Function81ca7: ; 81ca7
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld a, [de]
call Function81cbc
ld a, [de]
@@ -53040,8 +53184,9 @@ Function81cc2: ; 81cc2
ld e, a
ld d, 0
ld hl, Jumptable_81d02
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -53285,8 +53430,9 @@ String_81e4d: db "おぼえられない@" ; cannot be taught
Function81e55: ; 81e55
cp $32
jr c, .asm_81e5b
+rept 2
inc a
- inc a
+endr
.asm_81e5b
add $bf
@@ -53367,8 +53513,9 @@ Function81eca: ; 81eca
inc a
ld l, a
ld h, $0
+rept 2
add hl, hl
- add hl, hl
+endr
ld de, OverworldMap
add hl, de
ld e, l
@@ -53398,8 +53545,9 @@ Function81ee3: ; 81ee3
inc de
ld [hli], a
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
dec c
jr nz, .asm_81ee3
ret
@@ -53414,7 +53562,7 @@ Function81efc: ; 81efc
dec c
jr nz, .asm_81efe
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
@@ -53534,8 +53682,9 @@ Function81f5e: ; 81f5e
ld a, b
ld [hli], a
ld a, [de]
+rept 2
add a
- add a
+endr
add $18
ld [hli], a
xor a
@@ -53587,12 +53736,12 @@ TilesetColorTest:
call Request2bpp
ld a, $9c
ld [$ffd7], a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $6f
call ByteFill
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7
call ByteFill
ld de, $0015
@@ -53617,31 +53766,28 @@ TilesetColorTest:
; 821d2
Function821d2: ; 821d2
- ld hl, TileMap
+ hlcoord 0, 0
call Function821de
Function821d8: ; 821d8
ld a, [wcf64]
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
Function821de: ; 821de
add hl, de
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld bc, $0010
add hl, bc
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld bc, $0010
add hl, bc
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ret
; 821f4
@@ -53669,9 +53815,9 @@ Function8220f: ; 8220f
ld a, [wcf64]
ld l, a
ld h, $0
+rept 3
add hl, hl
- add hl, hl
- add hl, hl
+endr
ld de, Unkn1Pals
add hl, de
ld de, wc608
@@ -53689,14 +53835,14 @@ Function82236: ; 82236
ld hl, $ffa9
ld a, [hl]
and $4
- jr nz, .asm_82247
+ jr nz, .loop7
ld a, [hl]
and $2
jr nz, .asm_82299
call Function822f0
ret
-.asm_82247
+.loop7
ld hl, wcf64
ld a, [hl]
inc a
@@ -53784,8 +53930,9 @@ Function822f0: ; 822f0
ld e, a
ld d, 0
ld hl, Jumptable_82301
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -53827,8 +53974,9 @@ Function82309: ; 82309
ld e, a
ld d, $0
ld hl, wc608
+rept 2
add hl, de
- add hl, de
+endr
ld e, l
ld d, h
call Function81ea5
@@ -53926,8 +54074,9 @@ Function82391: ; 82391
ld c, a
ld b, $0
ld hl, wc608
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, e
ld [hli], a
ld [hl], d
@@ -53967,8 +54116,9 @@ Function84022: ; 84022
ld e, a
ld d, 0
ld hl, Jumptable_84031
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -54236,9 +54386,9 @@ Function841e2: ; 841e2 (21:41e2)
Function841fb: ; 841fb (21:41fb)
xor a
ld hl, wca82
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld hl, wca86
ld [hli], a
@@ -54989,17 +55139,17 @@ Function846f6: ; 846f6
; 84728
Function84728: ; 84728
- ld hl, TileMap
+ hlcoord 0, 0
ld de, wca90
- ld bc, $0168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyBytes
ret
; 84735
Function84735: ; 84735
ld hl, wca90
- ld de, TileMap
- ld bc, $0168
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyBytes
ret
; 84742
@@ -55027,12 +55177,12 @@ Function84753: ; 84753
Function84757: ; 84757
ld a, [wca88]
cp $ff
- jr nz, .asm_84765
+ jr nz, .c_directly_below_e5
ld a, [wca89]
cp $ff
jr z, .asm_8477f
-.asm_84765
+.c_directly_below_e5
ld a, [wca89]
and $e0
ret z
@@ -55073,8 +55223,9 @@ Function84785: ; 84785
ld e, a
ld d, 0
ld hl, Unknown_84807
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -55105,8 +55256,9 @@ Function847bd: ; 847bd
ld e, a
ld d, 0
ld hl, Unknown_84807
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -55141,12 +55293,12 @@ Unknown_84807: ; 84807
Function84817: ; 84817 (21:4817)
xor a
ld [wd002], a
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $7f
call ByteFill
call Function84a0e
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $b4
ld a, $7f
call ByteFill
@@ -55176,7 +55328,7 @@ String_84865:
; 8486f
Function8486f: ; 8486f (21:486f)
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $7f
call ByteFill
@@ -55193,7 +55345,7 @@ Function8486f: ; 8486f (21:486f)
ret
Function84893: ; 84893 (21:4893)
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $7f
call ByteFill
@@ -55210,7 +55362,7 @@ Function84893: ; 84893 (21:4893)
ret
Function848b7: ; 848b7 (21:48b7)
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $7f
call ByteFill
@@ -55260,7 +55412,7 @@ Function848ed: ; 848ed (21:48ed)
ld a, [CurPartySpecies]
cp $fd
pop hl
- jr z, .asm_84972
+ jr z, .ok2
ld bc, $b
add hl, bc
call Function8498a
@@ -55304,7 +55456,7 @@ Function848ed: ; 848ed (21:48ed)
ld a, [hl]
pop hl
call Function383d
-.asm_84972
+.ok2
ld hl, DefaultFlypoint
inc [hl]
pop de
@@ -55370,7 +55522,7 @@ Function849c6: ; 849c6 (21:49c6)
ret
Function849d7: ; 849d7 (21:49d7)
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $79
ld [hli], a
ld a, $7a
@@ -55384,7 +55536,7 @@ Function849d7: ; 849d7 (21:49d7)
ret
Function849e9: ; 849e9 (21:49e9)
- ld hl, TileMap
+ hlcoord 0, 0
ld de, $13
ld c, $12
.asm_849f1
@@ -55440,23 +55592,23 @@ HallOfFame:: ; 0x8640e
call Function8648e
ld a, [StatusFlags]
push af
- ld a, $1
+ ld a, 1
ld [wc2cd], a
call Function2ed3
- ld a, $1
+ ld a, 1
ld [wd4b5], a
; Enable the Pokégear map to cycle through all of Kanto
ld hl, StatusFlags
- set 6, [hl]
+ set 6, [hl] ; hall of fame
callba Function14da0
ld hl, wd95e
ld a, [hl]
- cp $c8
- jr nc, .asm_86436 ; 0x86433 $1
+ cp 200
+ jr nc, .ok ; 0x86433 $1
inc [hl]
-.asm_86436
+.ok
callba Function14b85
call Function8653f
callba Function14b5f
@@ -55476,7 +55628,7 @@ Function86455:: ; 86455
ld [MusicFadeIDHi], a
ld a, $a
ld [MusicFade], a
- callba Function8c084
+ callba FadeBlackBGMap
xor a
ld [VramState], a
ld [$ffde], a
@@ -55497,14 +55649,14 @@ Function8648e: ; 8648e
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
ld [MusicFadeIDHi], a
- ld a, $a
+ ld a, 10
ld [MusicFade], a
- callba Function8c084
+ callba FadeBlackBGMap
xor a
ld [VramState], a
ld [$ffde], a
callba Function4e881
- ld c, $64
+ ld c, 100
jp DelayFrames
; 864b4
@@ -55522,35 +55674,35 @@ Function864c3: ; 864c3
xor a
ld [wcf63], a
call Function8671c
- jr c, .asm_864fb
- ld de, $0014
+ jr c, .done
+ ld de, SCREEN_WIDTH
call Function864b4
xor a
ld [wcf64], a
-.asm_864d6
+.loop
ld a, [wcf64]
- cp $6
- jr nc, .asm_864fb
+ cp 6
+ jr nc, .done
ld hl, wc608 + 1
ld bc, $0010
call AddNTimes
ld a, [hl]
- cp $ff
- jr z, .asm_864fb
+ cp -1
+ jr z, .done
push hl
call Function865b5
pop hl
call Function8650c
- jr c, .asm_864fb
+ jr c, .done
ld hl, wcf64
inc [hl]
- jr .asm_864d6
+ jr .loop
-.asm_864fb
+.done
call Function86810
ld a, $4
ld [MusicFade], a
- call Function4b6
+ call FadeToWhite
ld c, $8
call DelayFrames
ret
@@ -55664,16 +55816,17 @@ Function865b5: ; 865b5
ld a, [hli]
ld [TempMonSpecies], a
ld [CurPartySpecies], a
+rept 2
inc hl
- inc hl
+endr
ld a, [hli]
ld [TempMonDVs], a
ld a, [hli]
ld [TempMonDVs + 1], a
ld hl, TempMonDVs
predef GetUnownLetter
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
ld de, $9310
@@ -55696,8 +55849,8 @@ Function865b5: ; 865b5
call Function86635
xor a
ld [wc2c6], a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
hlcoord 6, 5
@@ -55726,8 +55879,9 @@ Function86643: ; 86643
ld a, [hSCX]
and a
ret z
+rept 2
dec a
- dec a
+endr
ld [hSCX], a
call DelayFrame
jr .asm_86643
@@ -55897,11 +56051,11 @@ Function86748: ; 86748
call CopyBytes
ld a, $50
ld [StringBuffer2 + 10], a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $0312
call TextBox
hlcoord 0, 12
@@ -55970,8 +56124,8 @@ Function86810: ; 86810
ld de, FontExtra + $d0
lb bc, BANK(FontExtra), 1
call Request2bpp
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
callba GetPlayerBackpic
@@ -55994,15 +56148,15 @@ Function86810: ; 86810
call Function86635
xor a
ld [wc2c6], a
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7f
call ByteFill
callba Function88840
xor a
ld [$ffad], a
hlcoord 12, 5
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
ld a, $c0
ld [hSCX], a
@@ -56118,13 +56272,13 @@ Function88055: ; 88055
callba Function24c64
jr c, .asm_88083
ld hl, MenuDataHeader_0x88086
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [MenuSelection]
ld [wcf88], a
xor a
ld [hBGMapMode], a
call Function352f
- call Function1ad2
+ call DrawOnMap
call Function350c
ld a, [wcf73]
cp $2
@@ -56194,7 +56348,7 @@ Function880c2: ; 880c2
xor a
ld [hBGMapMode], a
call Function1cbb
- call Function1ad2
+ call DrawOnMap
call Function88116
call Function88126
call Function321c
@@ -56211,7 +56365,7 @@ Function880c2: ; 880c2
scf
.asm_88109
- call Function1c17
+ call WriteBackup
ret
; 8810d
@@ -56406,8 +56560,9 @@ Function88201: ; 88201
inc hl
ld c, a
ld b, $0
+rept 2
add hl, bc
- add hl, bc
+endr
inc hl
ld a, [hl]
pop bc
@@ -56422,8 +56577,9 @@ Function88211: ; 88211
ld c, a
ld b, $0
inc hl
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [CurItem]
ld c, a
ld a, [hli]
@@ -56489,7 +56645,7 @@ MovePlayerPic: ; 88266
push de
xor a
ld [hBGMapMode], a
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
xor a
ld [hBGMapThird], a
@@ -56509,7 +56665,7 @@ MovePlayerPic: ; 88266
ld a, h
sbc d
ld h, a
- ld bc, $0707
+ lb bc, 7, 7
call ClearBox
pop bc
pop hl
@@ -56520,15 +56676,15 @@ ShowPlayerNamingChoices: ; 88297
ld hl, ChrisNameMenuHeader
ld a, [PlayerGender]
bit 0, a
- jr z, .GotGender
+ jr z, .GotClass
ld hl, KrisNameMenuHeader
-.GotGender
+.GotClass
call LoadMenuDataHeader
- call Function1d81
+ call InterpretMenu2
ld a, [wcfa9]
dec a
call Function1db8
- call Function1c17
+ call WriteBackup
ret
; 882b5
@@ -56576,15 +56732,15 @@ Unknown_882f9: ; 882f9
db " NAME @" ; title
; 88318
-Function88318: ; 88318
+GetPlayerNameArray: ; 88318 This Function is never called
ld hl, PlayerName
ld de, Unknown_882c9
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_88328
+ jr z, .done
ld de, Unknown_882f9
-.asm_88328
+.done
call InitName
ret
; 8832c
@@ -56595,15 +56751,15 @@ GetPlayerIcon: ; 8832c
; Male
ld de, ChrisSpriteGFX
ld b, BANK(ChrisSpriteGFX)
-
+
ld a, [PlayerGender]
bit 0, a
jr z, .done
-
+
; Female
ld de, KrisSpriteGFX
ld b, BANK(KrisSpriteGFX)
-
+
.done
ret
; 8833e
@@ -56612,9 +56768,9 @@ Function8833e: ; 8833e
ld hl, ChrisCardPic
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_8834b
+ jr z, .GotClass
ld hl, KrisCardPic
-.asm_8834b
+.GotClass
ld de, $9000
ld bc, $230
ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
@@ -56651,7 +56807,7 @@ GetChrisBackpic: ; 88830
ld hl, ChrisBackpic
ld b, BANK(ChrisBackpic)
ld de, $9310
- ld c, $31
+ ld c, 7 * 7
predef DecompressPredef
ret
; 88840
@@ -56663,22 +56819,22 @@ Function88840: ; 88840
ld e, 0
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_88851
+ jr z, .GotClass
ld e, 1
-.asm_88851
+.GotClass
ld a, e
ld [TrainerClass], a
ld de, ChrisPic
ld a, [PlayerGender]
bit 0, a
- jr z, .asm_88862
+ jr z, .GotPic
ld de, KrisPic
-.asm_88862
+.GotPic
ld hl, VTiles2
ld b, BANK(ChrisPic) ; BANK(KrisPic)
- ld c, $31
+ ld c, 7 * 7
call Get2bpp
call WaitBGMap
ld a, $1
@@ -56717,7 +56873,7 @@ DrawIntroPlayerPic: ; 88874
xor a
ld [$ffad], a
hlcoord 6, 4
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
ret
; 888a9
@@ -56796,30 +56952,32 @@ Function8917a: ; 8917a (22:517a)
ret
Function89185: ; 89185 (22:5185)
+; Compares c bytes starting at de and hl and incrementing together until a match is found.
push de
push hl
-.asm_89187
+.loop
ld a, [de]
inc de
cp [hl]
- jr nz, .asm_89190
+ jr nz, .done
inc hl
dec c
- jr nz, .asm_89187
-.asm_89190
+ jr nz, .loop
+.done
pop hl
pop de
ret
Function89193: ; 89193
+; Copies c bytes from hl to de.
push de
push hl
-.asm_89195
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_89195
+ jr nz, .loop
pop hl
pop de
ret
@@ -56827,16 +56985,17 @@ Function89193: ; 89193
Function8919e: ; 8919e (22:519e)
+; Searches for the c'th string starting at de. Returns the pointer in de.
ld a, c
and a
ret z
-.asm_891a1
+.loop
ld a, [de]
inc de
- cp $50
- jr nz, .asm_891a1
+ cp "@"
+ jr nz, .loop
dec c
- jr nz, .asm_891a1
+ jr nz, .loop
ret
Function891ab: ; 891ab
@@ -56848,9 +57007,9 @@ Function891ab: ; 891ab
Function891b8: ; 891b8
call Function8923c
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $7f
- ld bc, $0168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
call DelayFrame
ret
@@ -56875,13 +57034,13 @@ Function891d3: ; 891d3 (22:51d3)
Function891de: ; 891de
call Function8923c
call ClearPalettes
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld a, $7
- ld bc, $0168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $7f
- ld bc, $0168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
call Function891ab
ret
@@ -56897,13 +57056,13 @@ Function891fe: ; 891fe
; 89209
Function89209: ; 89209
- ld a, $1
+ ld a, 1
ld [wc2ce], a
ret
; 8920f
Function8920f: ; 8920f
- ld a, $0
+ ld a, 0
ld [wc2ce], a
ret
; 89215
@@ -56922,11 +57081,11 @@ Function89215: ; 89215
Function8921f: ; 8921f (22:521f)
push de
- ld de, $14
+ ld de, SCREEN_WIDTH
add hl, de
inc hl
ld a, $7f
-.asm_89227
+.loop
push bc
push hl
.asm_89229
@@ -56937,7 +57096,7 @@ Function8921f: ; 8921f (22:521f)
add hl, de
pop bc
dec b
- jr nz, .asm_89227
+ jr nz, .loop
pop de
ret
@@ -56960,7 +57119,7 @@ Function89240: ; 89240
Function89245: ; 89245 (22:5245)
- callba Function14ea5
+ callba TryLoadSaveFile
ret c
callba Function150b9
and a
@@ -56981,7 +57140,7 @@ Function89261: ; 89261
push af
push bc
ld hl, MenuDataHeader_0x892a3
- call Function1d3c
+ call CopyMenuDataHeader
pop bc
ld hl, wcf82
ld a, c
@@ -56999,21 +57158,21 @@ Function89261: ; 89261
call Function1c00
call Function8923c
call Function89209
- call Function1d81
+ call InterpretMenu2
push af
ld c, $a
call DelayFrames
- call Function1c17
+ call WriteBackup
call Function8920f
pop af
- jr c, .asm_892a1
+ jr c, .done
ld a, [wcfa9]
cp $2
- jr z, .asm_892a1
+ jr z, .done
and a
ret
-.asm_892a1
+.done
scf
ret
; 892a3
@@ -57039,49 +57198,49 @@ Function892b4: ; 892b4 (22:52b4)
Function892b7: ; 892b7
ld d, b
ld e, c
- ld hl, $0000
+ ld hl, 0
add hl, bc
- ld a, $50
- ld bc, $0006
+ ld a, "@"
+ ld bc, 6
call ByteFill
ld b, d
ld c, e
- ld hl, $0006
+ ld hl, 6
add hl, bc
- ld a, $50
- ld bc, $0006
+ ld a, "@"
+ ld bc, 6
call ByteFill
ld b, d
ld c, e
- ld hl, $000c
+ ld hl, 12
add hl, bc
xor a
ld [hli], a
ld [hl], a
- ld hl, $000e
+ ld hl, 14
add hl, bc
ld [hli], a
ld [hl], a
- ld hl, $0010
+ ld hl, 16
add hl, bc
ld [hl], a
- ld hl, $0011
+ ld hl, 17
add hl, bc
- ld a, $ff
- ld bc, $0008
+ ld a, -1
+ ld bc, 8
call ByteFill
ld b, d
ld c, e
- ld e, $6
- ld hl, $0019
+ ld e, 6
+ ld hl, 25
add hl, bc
-.asm_892fb
- ld a, $ff
+.loop
+ ld a, -1
ld [hli], a
- ld a, $ff
+ ld a, -1
ld [hli], a
dec e
- jr nz, .asm_892fb
+ jr nz, .loop
ret
; 89305
@@ -57089,8 +57248,8 @@ Function892b7: ; 892b7
Function89305: ; 89305 (22:5305)
xor a
ld [MenuSelection], a
- ld c, $28
-.asm_8930b
+ ld c, 40
+.loop
ld a, [MenuSelection]
inc a
ld [MenuSelection], a
@@ -57098,7 +57257,7 @@ Function89305: ; 89305 (22:5305)
call Function892b4
pop bc
dec c
- jr nz, .asm_8930b
+ jr nz, .loop
ret
Function8931b: ; 8931b
@@ -57115,29 +57274,30 @@ Function8931b: ; 8931b
; 8932d
Function8932d: ; 8932d
- ld hl, $0000
+ ld hl, 0
add hl, bc
Function89331: ; 89331
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
push bc
- ld c, $5
-.asm_89334
+ ld c, 5
+.loop
ld a, [hli]
- cp $50
- jr z, .asm_89340
- cp $7f
- jr nz, .asm_89343
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
dec c
- jr nz, .asm_89334
+ jr nz, .loop
-.asm_89340
+.terminator
scf
- jr .asm_89344
+ jr .done
-.asm_89343
+.nonspace
and a
-.asm_89344
+.done
pop bc
ret
; 89346
@@ -57146,62 +57306,64 @@ Function89331: ; 89331
Function89346: ; 89346 (22:5346)
ld h, b
ld l, c
- jr asm_8934e
+ jr _incave
Function8934a: ; 8934a
- ld hl, $0006
+ ld hl, 6
add hl, bc
-asm_8934e:
+_incave:
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
push bc
- ld c, $5
-.asm_89351
+ ld c, 5
+.loop
ld a, [hli]
- cp $50
- jr z, .asm_8935d
- cp $7f
- jr nz, .asm_89360
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
dec c
- jr nz, .asm_89351
+ jr nz, .loop
-.asm_8935d
+.terminator
scf
- jr .asm_89361
+ jr .done
-.asm_89360
+.nonspace
and a
-.asm_89361
+.done
pop bc
ret
; 89363
Function89363: ; 89363
+; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
ld h, b
ld l, c
- jr .asm_8936b
+ jr ._incave
- ld hl, $0019
+ ld hl, 25
add hl, bc
-.asm_8936b
+._incave
push de
- ld e, $6
-.asm_8936e
+ ld e, 6
+.loop
ld a, [hli]
- cp $ff
- jr nz, .asm_8937e
+ cp -1
+ jr nz, .ok
ld a, [hli]
- cp $ff
- jr nz, .asm_8937e
+ cp -1
+ jr nz, .ok
dec e
- jr nz, .asm_8936e
+ jr nz, .loop
scf
- jr .asm_8937f
+ jr .done
-.asm_8937e
+.ok
and a
-.asm_8937f
+.done
pop de
ret
; 89381
@@ -57210,16 +57372,16 @@ Function89381: ; 89381
push bc
push de
call Function89b45
- jr c, .asm_89392
+ jr c, .ok
push hl
- ld a, $ff
- ld bc, $0008
+ ld a, -1
+ ld bc, 8
call ByteFill
pop hl
-.asm_89392
+.ok
pop de
- ld c, $8
+ ld c, 8
call Function89193
pop bc
ret
@@ -57227,13 +57389,13 @@ Function89381: ; 89381
Function8939a: ; 8939a
push bc
- ld hl, $0000
+ ld hl, 0
add hl, bc
ld de, DefaultFlypoint
- ld c, $6
+ ld c, 6
call Function89193
pop bc
- ld hl, $0011
+ ld hl, 17
add hl, bc
ld de, wd008
call Function89381
@@ -57274,7 +57436,7 @@ Function893e2: ; 893e2 (22:53e2)
Function893ef: ; 893ef
ld de, VTiles0
ld hl, GFX_8940b
- ld bc, $0020
+ ld bc, $20
ld a, BANK(GFX_8940b)
call FarCopyBytes
ret
@@ -57306,14 +57468,15 @@ Function8942b: ; 8942b (22:542b)
ret
Function89448: ; 89448 (22:5448)
+; Clears the Sprites array
push af
ld hl, Sprites
- ld d, $60
+ ld d, $10 * 6
xor a
-.asm_8944f
+.loop
ld [hli], a
dec d
- jr nz, .asm_8944f
+ jr nz, .loop
pop af
ret
@@ -57340,11 +57503,11 @@ Function89464: ; 89464
; 89481
Function89481: ; 89481
- ld d, $2
+ ld d, 2
call Function8934a
ret c
- ld d, $0
- ld hl, $0010
+ ld d, 0
+ ld hl, 16
add hl, bc
bit 0, [hl]
ret z
@@ -57354,7 +57517,7 @@ Function89481: ; 89481
Function89492: ; 89492 (22:5492)
- ld d, $0
+ ld d, 0
ld a, [PlayerGender]
bit 0, a
ret z
@@ -57364,11 +57527,11 @@ Function89492: ; 89492 (22:5492)
Function8949c: ; 8949c
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, 5
ld [rSVBK], a
ld hl, Palette_894b3
ld de, Unkn1Pals + 8 * 7
- ld bc, $0008
+ ld bc, 8
call CopyBytes
pop af
ld [rSVBK], a
@@ -57407,22 +57570,23 @@ Function894dc: ; 894dc
push bc
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, 5
ld [rSVBK], a
ld c, d
ld b, 0
ld hl, Unknown_89509
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
ld de, Unkn1Pals
- ld bc, $0018
+ ld bc, 24
call CopyBytes
ld hl, Palette_89557
ld de, wd018
- ld bc, $0018
+ ld bc, 24
call CopyBytes
pop af
ld [rSVBK], a
@@ -57503,7 +57667,7 @@ Palette_89557: ; 89557
Function8956f: ; 8956f
push bc
- ld hl, $0010
+ ld hl, 16
add hl, bc
ld d, h
ld e, l
@@ -57516,20 +57680,21 @@ Function8956f: ; 8956f
ld [TrainerClass], a
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, 5
ld [rSVBK], a
ld hl, wd030
- ld a, $ff
+ ld a, -1
ld [hli], a
- ld a, $7f
+ ld a, " "
ld [hl], a
pop af
ld [rSVBK], a
ld a, [TrainerClass]
- ld h, $0
+ ld h, 0
ld l, a
+rept 2
add hl, hl
- add hl, hl
+endr
ld de, TrainerPalettes
add hl, de
ld a, [rSVBK]
@@ -57537,15 +57702,15 @@ Function8956f: ; 8956f
ld a, $5
ld [rSVBK], a
ld de, wd032
- ld c, $4
-.asm_895b1
+ ld c, 4
+.loop
ld a, BANK(TrainerPalettes)
call GetFarByte
ld [de], a
inc de
inc hl
dec c
- jr nz, .asm_895b1
+ jr nz, .loop
ld hl, wd036
xor a
ld [hli], a
@@ -57560,11 +57725,11 @@ Function8956f: ; 8956f
Function895c7: ; 895c7 (22:55c7)
ld a, [rSVBK] ; $ff00+$70
push af
- ld a, $5
+ ld a, 5
ld [rSVBK], a ; $ff00+$70
ld hl, Palette_895de
ld de, wd030
- ld bc, $8
+ ld bc, 8
call CopyBytes
pop af
ld [rSVBK], a ; $ff00+$70
@@ -57579,9 +57744,9 @@ Palette_895de: ; 895de
; 895e6
Function895e6: ; 895e6
- ld a, $7
- ld hl, AttrMap
- ld bc, $0168
+ ld a, 7
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
ret
; 895f2
@@ -57589,8 +57754,8 @@ Function895e6: ; 895e6
Function895f2: ; 895f2
push bc
xor a
- ld hl, AttrMap
- ld bc, $0168
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
call Function89605
call Function89655
@@ -57600,77 +57765,77 @@ Function895f2: ; 895f2
Function89605: ; 89605
hlcoord 19, 2, AttrMap
- ld a, $1
- ld de, $0014
- ld c, $e
-.asm_8960f
+ ld a, 1
+ ld de, SCREEN_WIDTH
+ ld c, 14
+.loop
ld [hl], a
dec c
- jr z, .asm_8961b
+ jr z, .done
add hl, de
inc a
ld [hl], a
dec a
add hl, de
dec c
- jr nz, .asm_8960f
+ jr nz, .loop
-.asm_8961b
+.done
hlcoord 0, 16, AttrMap
- ld c, $a
- ld a, $2
-.asm_89622
+ ld c, 10
+ ld a, 2
+.loop2
ld [hli], a
dec a
ld [hli], a
inc a
dec c
- jr nz, .asm_89622
+ jr nz, .loop2
hlcoord 1, 11, AttrMap
- ld a, $4
- ld bc, $0004
+ ld a, 4
+ ld bc, 4
call ByteFill
- ld a, $5
- ld bc, $000e
+ ld a, 5
+ ld bc, 14
call ByteFill
ret
; 8963d
Function8963d: ; 8963d
hlcoord 12, 3, AttrMap
- ld a, $6
- ld de, $0014
- ld bc, $0707
-.asm_89648
+ ld a, 6
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.loop
push hl
- ld c, $7
-.asm_8964b
+ ld c, 7
+.next
ld [hli], a
dec c
- jr nz, .asm_8964b
+ jr nz, .next
pop hl
add hl, de
dec b
- jr nz, .asm_89648
+ jr nz, .loop
ret
; 89655
Function89655: ; 89655
- ld hl, AttrMap + SCREEN_WIDTH * 12 + 1
+ hlcoord 1, 12, AttrMap
ld de, SCREEN_WIDTH
ld a, 5
ld b, 4
-.asm_8965f
+.loop
ld c, 18
push hl
-.asm_89662
+.next
ld [hli], a
dec c
- jr nz, .asm_89662
+ jr nz, .next
pop hl
add hl, de
dec b
- jr nz, .asm_8965f
+ jr nz, .loop
ret
; 8966c
@@ -57678,7 +57843,7 @@ Function8966c: ; 8966c
push bc
call Function89688
hlcoord 4, 0
- ld c, $8
+ ld c, 8
call Function896f5
pop bc
ret
@@ -57689,73 +57854,73 @@ Function8967a: ; 8967a (22:567a)
push bc
call Function89688
hlcoord 2, 0
- ld c, $c
+ ld c, 12
call Function896f5
pop bc
ret
Function89688: ; 89688
- ld hl, TileMap
- ld a, $1
- ld e, $14
+ hlcoord 0, 0
+ ld a, 1
+ ld e, SCREEN_WIDTH
call Function896e1
- ld a, $2
- ld e, $14
+ ld a, 2
+ ld e, SCREEN_WIDTH
call Function896eb
- ld a, $3
+ ld a, 3
ld [hli], a
- ld a, $4
- ld e, $12
+ ld a, 4
+ ld e, SCREEN_HEIGHT
call Function896e1
- ld a, $6
+ ld a, 6
ld [hli], a
push bc
- ld c, $d
-.asm_896a9
+ ld c, 13
+.loop
call Function896cb
dec c
- jr z, .asm_896b5
+ jr z, .done
call Function896d6
dec c
- jr nz, .asm_896a9
+ jr nz, .loop
-.asm_896b5
+.done
pop bc
- ld a, $19
+ ld a, 25
ld [hli], a
- ld a, $1a
- ld e, $12
+ ld a, 26
+ ld e, SCREEN_HEIGHT
call Function896e1
- ld a, $1c
+ ld a, 28
ld [hli], a
- ld a, $2
- ld e, $14
+ ld a, 2
+ ld e, SCREEN_WIDTH
call Function896eb
ret
; 896cb
Function896cb: ; 896cb
- ld de, $0013
- ld a, $7
+ ld de, SCREEN_WIDTH - 1
+ ld a, 7
ld [hl], a
add hl, de
- ld a, $9
+ ld a, 9
ld [hli], a
ret
; 896d6
Function896d6: ; 896d6
- ld de, $0013
- ld a, $a
+ ld de, SCREEN_WIDTH - 1
+ ld a, 10
ld [hl], a
add hl, de
- ld a, $b
+ ld a, 11
ld [hli], a
ret
; 896e1
Function896e1: ; 896e1
-.asm_896e1
+.loop
ld [hli], a
inc a
dec e
@@ -57763,12 +57928,12 @@ Function896e1: ; 896e1
ld [hli], a
dec a
dec e
- jr nz, .asm_896e1
+ jr nz, .loop
ret
; 896eb
Function896eb: ; 896eb
-.asm_896eb
+.loop
ld [hli], a
dec a
dec e
@@ -57776,15 +57941,16 @@ Function896eb: ; 896eb
ld [hli], a
inc a
dec e
- jr nz, .asm_896eb
+ jr nz, .loop
ret
; 896f5
Function896f5: ; 896f5
call Function8971f
call Function89736
+rept 2
inc hl
- inc hl
+endr
ld b, 2
ClearScreenArea: ; 0x896ff
@@ -57810,8 +57976,9 @@ ClearScreenArea: ; 0x896ff
jr nz, .loop
dec hl
+rept 2
inc c
- inc c
+endr
.asm_89713
ld a, $36
ld [hli], a
@@ -57830,7 +57997,7 @@ Function8971f: ; 8971f
ld a, $2d
ld [hld], a
push hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
ld a, $31
ld [hli], a
@@ -57845,8 +58012,9 @@ Function8971f: ; 8971f
Function89736: ; 89736
push hl
+rept 2
inc hl
- inc hl
+endr
ld e, c
ld d, $0
add hl, de
@@ -57854,7 +58022,7 @@ Function89736: ; 89736
ld [hli], a
ld a, $30
ld [hld], a
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
ld a, $33
ld [hli], a
@@ -57882,8 +58050,9 @@ Function8975b: ; 8975b
ld [hli], a
ld a, $d
ld [hl], a
+rept 2
dec hl
- dec hl
+endr
ld a, $4
ld e, $3
.asm_89769
@@ -57930,7 +58099,7 @@ Function89797: ; 89797
push bc
ld a, $e
ld [hl], a
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld a, $11
ld [hli], a
@@ -57973,8 +58142,8 @@ Function897d5: ; 897d5
jr nc, .asm_897f3
hlcoord 12, 3, AttrMap
xor a
- ld de, $0014
- ld bc, $0707
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
.asm_897e5
push hl
ld c, $7
@@ -57993,7 +58162,7 @@ Function897d5: ; 897d5
ld a, $37
ld [$ffad], a
hlcoord 12, 3
- ld bc, $0707
+ lb bc, 7, 7
predef FillBox
call Function8963d
pop bc
@@ -58207,7 +58376,7 @@ Unknown_8994a: ; 8994a
Function8994e: ; 8994e
push hl
push de
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld a, l
sub e
ld l, a
@@ -58648,8 +58817,9 @@ Function89b97: ; 89b97 (22:5b97)
and a
jr z, .asm_89bae
.asm_89ba9
+rept 2
inc hl
- inc hl
+endr
dec a
jr nz, .asm_89ba9
.asm_89bae
@@ -58929,7 +59099,7 @@ Palette_89d56: ; 89d56
Function89d5e: ; 89d5e (22:5d5e)
push af
- call Function1d3c
+ call CopyMenuDataHeader
pop af
ld [wcf88], a
call Function8923c
@@ -59165,10 +59335,9 @@ Function89efd: ; 89efd (22:5efd)
ld a, $ff
ld [hli], a
xor a
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
.asm_89f09
ld hl, wd012
@@ -59259,8 +59428,9 @@ Function89f77: ; 89f77 (22:5f77)
ld [hli], a
ld a, c
ld [hli], a
+rept 2
inc hl
- inc hl
+endr
ld a, $8
add c
ld c, a
@@ -59391,9 +59561,9 @@ Function8a055: ; 8a055 (22:6055)
ld a, $5
call Function8a5a3
pop hl
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld a, $6
call Function8a5a3
call Function3238
@@ -59445,7 +59615,7 @@ Function8a0c1: ; 8a0c1 (22:60c1)
Function8a0c9: ; 8a0c9 (22:60c9)
push bc
- ld hl, TileMap
+ hlcoord 0, 0
ld de, $14
ld a, b
and a
@@ -59542,7 +59712,7 @@ Function8a116: ; 8a116 (22:6116)
ld c, $10
call DelayFrames
.asm_8a15a
- call Function1c07
+ call ExitMenu
call Function891de
call Function893e2
call Function89245
@@ -59551,7 +59721,7 @@ Function8a116: ; 8a116 (22:6116)
ret
.asm_8a16b
call Function89209
- call Function1c17
+ call WriteBackup
call Function8920f
scf
ret
@@ -59722,7 +59892,7 @@ Function8a2aa: ; 8a2aa (22:62aa)
call Function8a20d
jr .asm_8a2ea
.asm_8a2cf
- call Function1c07
+ call ExitMenu
call Function8a241
jr c, .asm_8a2ed
ld a, $1
@@ -59734,7 +59904,7 @@ Function8a2aa: ; 8a2aa (22:62aa)
and a
ret
.asm_8a2ea
- call Function1c17
+ call WriteBackup
.asm_8a2ed
scf
ret
@@ -59870,7 +60040,7 @@ Function8a3b2: ; 8a3b2 (22:63b2)
call Function89b3b
ld hl, MenuDataHeader_0x8a40f
.asm_8a3db
- call Function1d3c
+ call CopyMenuDataHeader
ret
Function8a3df: ; 8a3df (22:63df)
@@ -60634,7 +60804,7 @@ Function8a999: ; 8a999 (22:6999)
jr .asm_8a9a1
.asm_8a9bb
call Function89209
- call Function1c17
+ call WriteBackup
call Function8920f
ret
@@ -61178,34 +61348,34 @@ SpecialHoOhChamber: ; 0x8addb
cp HO_OH ; is Ho-oh the first Pokémon in the party?
jr nz, .done ; if not, we're done
call GetSecondaryMapHeaderPointer
- ld de, $0326
+ ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
ld b, SET_FLAG
call EventFlagAction
.done
ret
; 0x8adef
-Function8adef: ; 8adef
+SpecialOmanyteChamber: ; 8adef
call GetSecondaryMapHeaderPointer
- ld de, $0328
+ ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
ld b, CHECK_FLAG
call EventFlagAction
ld a, c
and a
- jr nz, .asm_8ae2f
+ jr nz, .nope
ld a, WATER_STONE
ld [CurItem], a
ld hl, NumItems
call CheckItem
- jr c, .asm_8ae24
+ jr c, .open
ld a, [PartyCount]
ld b, a
inc b
-.asm_8ae10
+.loop
dec b
- jr z, .asm_8ae2f
+ jr z, .nope
ld a, b
dec a
ld [CurPartyMon], a
@@ -61215,38 +61385,38 @@ Function8adef: ; 8adef
pop bc
ld a, [hl]
cp WATER_STONE
- jr nz, .asm_8ae10
+ jr nz, .loop
-.asm_8ae24
+.open
call GetSecondaryMapHeaderPointer
- ld de, $0328
+ ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
ld b, SET_FLAG
call EventFlagAction
-.asm_8ae2f
+.nope
ret
; 8ae30
-Function8ae30: ; 8ae30
+SpecialAerodactylChamber: ; 8ae30
push de
push bc
call GetSecondaryMapHeaderPointer
ld a, h
cp RuinsofAlphAerodactylChamber_SecondMapHeader / $100
- jr nz, .asm_8ae4a
+ jr nz, .nope
ld a, l
cp RuinsofAlphAerodactylChamber_SecondMapHeader % $100
- jr nz, .asm_8ae4a
+ jr nz, .nope
- ld de, $0329
+ ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
ld b, SET_FLAG
call EventFlagAction
scf
jr .done
-.asm_8ae4a
+.nope
and a
.done
@@ -61255,7 +61425,7 @@ Function8ae30: ; 8ae30
ret
; 8ae4e
-Function8ae4e: ; 8ae4e
+SpecialKabutoChamber: ; 8ae4e
push hl
push de
@@ -61267,7 +61437,7 @@ Function8ae4e: ; 8ae4e
cp RuinsofAlphKabutoChamber_SecondMapHeader % $100
jr nz, .done
- ld de, $0327
+ ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
ld b, SET_FLAG
call EventFlagAction
@@ -61277,7 +61447,7 @@ Function8ae4e: ; 8ae4e
ret
; 8ae68
-Function8ae68: ; 8ae68
+Special_DisplayUnownWords: ; 8ae68
ld a, [ScriptVar]
ld hl, MenuDataHeader_0x8aed5
and a
@@ -61295,14 +61465,15 @@ Function8ae68: ; 8ae68
xor a
ld [hBGMapMode], a
call Function1cbb
- call Function1ad2
+ call DrawOnMap
call Function321c
call Function1cfd
inc hl
ld d, $0
ld e, $14
+rept 2
add hl, de
- add hl, de
+endr
ld a, [ScriptVar]
ld c, a
ld de, Unknown_8aebc
@@ -61324,7 +61495,7 @@ Function8ae68: ; 8ae68
call Function3200
call Functiona36
call PlayClickSFX
- call Function1c17
+ call WriteBackup
ret
; 8aebc
@@ -61368,8 +61539,9 @@ Function8aee9: ; 8aee9
.asm_8aef5
call Function8aefd
+rept 2
inc hl
- inc hl
+endr
inc de
jr .asm_8aee9
; 8aefd
@@ -61396,8 +61568,9 @@ Function8af09: ; 8af09
jr z, .asm_8af19
ld c, a
call Function8af1c
+rept 2
inc hl
- inc hl
+endr
inc de
jr .asm_8af0b
@@ -61472,7 +61645,7 @@ SpecialBuenasPassword: ; 8af6b
xor a
ld [wcf76], a
ld hl, MenuDataHeader_0x8afa9
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [wdc4a]
ld c, a
callba Functionb8f8f
@@ -61517,7 +61690,8 @@ MenuData2_0x8afb2: ; 0x8afb2
Unknown_8afb8: ; 8afb8
db 3
- db 0, 1, 2, $ff
+ db 0, 1, 2
+ db -1
Function8afbd: ; 8afbd
push de
@@ -61550,7 +61724,7 @@ SpecialBuenaPrize: ; 8afd4
.asm_8aff1
call DelayFrame
- call Function1ad2
+ call DrawOnMap
call Function8b097
call Function8b0e2
jr z, .asm_8b05f
@@ -61606,8 +61780,8 @@ SpecialBuenaPrize: ; 8afd4
jr .asm_8afeb
.asm_8b05f
- call Function1c17
- call Function1c17
+ call WriteBackup
+ call WriteBackup
ld hl, UnknownText_0x8b08b
call PrintText
call Functiona36
@@ -61668,9 +61842,9 @@ Function8b09e: ; 8b09e
xor a
ld [hBGMapMode], a
ld hl, MenuDataHeader_0x8b0d1
- call Function1d3c
+ call CopyMenuDataHeader
call Function1cbb
- call Function1ad2
+ call DrawOnMap
call Function1cfd
ld bc, $0015
add hl, bc
@@ -61712,14 +61886,14 @@ MenuDataHeader_0x8b0dd: ; 0x8b0dd
Function8b0e2: ; 8b0e2
ld hl, MenuDataHeader_0x8b113
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [MenuSelection]
ld [wcf88], a
xor a
ld [wcf76], a
ld [hBGMapMode], a
call Function352f
- call Function1ad2
+ call DrawOnMap
call Function350c
ld a, [MenuSelection]
ld c, a
@@ -61789,8 +61963,9 @@ GetBuenaPrize: ; 8b154
ld hl, BuenaPrizes
ld b, 0
ld c, a
+rept 2
add hl, bc
- add hl, bc
+endr
ret
; 8b15e
@@ -61969,9 +62144,9 @@ Function8b27a: ; 8b27a
; 8b281
Function8b281: ; 8b281
+rept 3
inc de
- inc de
- inc de
+endr
ld a, [de]
ld l, a
inc de
@@ -62012,11 +62187,13 @@ Function8b29d: ; 8b29d
Function8b2a9: ; 8b2a9
push bc
call Function8b281
+rept 2
inc hl
- inc hl
+endr
ld b, $0
+rept 2
add hl, bc
- add hl, bc
+endr
call Function8b28a
call PrintText
pop bc
@@ -62465,8 +62642,9 @@ Function8b4d8: ; 8b4d8 (22:74d8)
ld hl, Unknown_8b529
call Function8b50a
push hl
+rept 2
inc hl
- inc hl
+endr
ld a, [hli]
ld b, a
ld a, [hl]
@@ -62481,8 +62659,9 @@ Function8b4ea: ; 8b4ea (22:74ea)
ld hl, Unknown_8b529
call Function8b50a
push hl
+rept 2
inc hl
- inc hl
+endr
ld a, [hli]
ld b, a
ld a, [hl]
@@ -62784,7 +62963,7 @@ Palette_8b6d5: ; 8b6d5
; 8b6ed
Function8b6ed: ; 8b6ed
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $012c
xor a
call ByteFill
@@ -62807,7 +62986,7 @@ Function8b703: ; 8b703
pop hl
push hl
push bc
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
.asm_8b717
push hl
@@ -62818,7 +62997,7 @@ Function8b703: ; 8b703
ld a, $11
ld [hl], a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
dec b
jr nz, .asm_8b717
@@ -62850,10 +63029,12 @@ Function8b73e: ; 8b73e
Function8b744: ; 8b744
ld de, AttrMap - TileMap
add hl, de
+rept 2
inc b
- inc b
- inc c
+endr
+rept 2
inc c
+endr
xor a
.asm_8b74d
push bc
@@ -62863,7 +63044,7 @@ Function8b744: ; 8b744
dec c
jr nz, .asm_8b74f
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
pop bc
dec b
@@ -62873,9 +63054,9 @@ Function8b744: ; 8b744
Function8b75d: ; 8b75d
call Function8923c
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $1
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
call ByteFill
hlcoord 0, 1
ld a, $2
@@ -62948,7 +63129,7 @@ Function8b79e: ; 8b79e
Function8b7bd: ; 8b7bd
call Function8b855
ld hl, MenuDataHeader_0x8b867
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [wd030]
ld [wcf88], a
ld a, [wd031]
@@ -62973,7 +63154,7 @@ Function8b7bd: ; 8b7bd
ld c, $12
call Function8b703
call Function8b75d
- call Function1ad2
+ call DrawOnMap
call Function89209
call Function350c
call Function8920f
@@ -63125,8 +63306,9 @@ Function8b8c8: ; 8b8c8
ld b, 0
ld c, a
ld hl, Unknown_8b903
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -63196,7 +63378,7 @@ Function8b960: ; 8b960 (22:7960)
call Function89d5e
ld hl, Function8b9ab
call Function89d85
- call Function1c07
+ call ExitMenu
jr c, .asm_8b99c
call Function8b99f
jr nz, .asm_8b99d
@@ -63326,39 +63508,39 @@ _TimeOfDayPals:: ; 8c011
ld hl, wd846
bit 7, [hl]
jr nz, .dontchange
-
+
; do we need to bother updating?
ld a, [TimeOfDay]
ld hl, CurTimeOfDay
cp [hl]
jr z, .dontchange
-
+
; if so, the time of day has changed
ld a, [TimeOfDay]
ld [CurTimeOfDay], a
-
+
; get palette id
call GetTimePalette
-
+
; same palette as before?
ld hl, TimeOfDayPal
cp [hl]
jr z, .dontchange
-
+
; update palette id
ld [TimeOfDayPal], a
-
-
+
+
; save bg palette 8
ld hl, Unkn1Pals + 8 * 7 ; Unkn1Pals + 7 pals
-
+
; save wram bank
ld a, [rSVBK]
ld b, a
; wram bank 5
ld a, 5
ld [rSVBK], a
-
+
; push palette
ld c, 4 ; NUM_PAL_COLORS
.push
@@ -63369,27 +63551,27 @@ _TimeOfDayPals:: ; 8c011
push de
dec c
jr nz, .push
-
+
; restore wram bank
ld a, b
ld [rSVBK], a
-
-
+
+
; update sgb pals
ld b, $9
call GetSGBLayout
-
-
+
+
; restore bg palette 8
ld hl, wd03f ; last byte in Unkn1Pals
-
+
; save wram bank
ld a, [rSVBK]
ld d, a
; wram bank 5
ld a, 5
ld [rSVBK], a
-
+
; pop palette
ld e, 4 ; NUM_PAL_COLORS
.pop
@@ -63400,19 +63582,19 @@ _TimeOfDayPals:: ; 8c011
dec hl
dec e
jr nz, .pop
-
+
; restore wram bank
ld a, d
ld [rSVBK], a
-
+
; update palettes
call _UpdateTimePals
call DelayFrame
-
+
; successful change
scf
ret
-
+
.dontchange
; no change occurred
and a
@@ -63427,7 +63609,7 @@ _UpdateTimePals:: ; 8c070
ret
; 8c079
-Function8c079:: ; 8c079
+FadeInBGMap:: ; 8c079
ld c, $12
call GetTimePalFade
ld b, $4
@@ -63435,7 +63617,7 @@ Function8c079:: ; 8c079
ret
; 8c084
-Function8c084:: ; 8c084
+FadeBlackBGMap:: ; 8c084
call Function8c0c1
ld c, $9
call GetTimePalFade
@@ -63444,16 +63626,16 @@ Function8c084:: ; 8c084
ret
; 8c092
-Function8c092: ; 8c092
+Special_BattleTowerFade: ; 8c092
call Function8c0c1
ld c, $9
call GetTimePalFade
ld b, $4
.asm_8c09c
call DmgToCgbTimePals
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld c, $7
call DelayFrames
dec b
@@ -63461,7 +63643,7 @@ Function8c092: ; 8c092
ret
; 8c0ab
-Function8c0ab: ; 8c0ab
+Special_FadeInQuickly: ; 8c0ab
ld c, $0
call GetTimePalFade
ld b, $4
@@ -63469,7 +63651,7 @@ Function8c0ab: ; 8c0ab
ret
; 8c0b6
-Function8c0b6: ; 8c0b6
+Special_FadeBlackQuickly: ; 8c0b6
ld c, $9
call GetTimePalFade
ld b, $4
@@ -63495,12 +63677,9 @@ Function8c0c1: ; 8c0c1
ld [hli], a
ld a, d
ld [hli], a
+rept 6
inc hl
- inc hl
- inc hl
- inc hl
- inc hl
- inc hl
+endr
dec c
jr nz, .asm_8c0d4
pop af
@@ -63551,8 +63730,9 @@ GetTimePalette: ; 8c117
ld e, a
ld d, 0
ld hl, .TimePalettes
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -63610,9 +63790,9 @@ DmgToCgbTimePals: ; 8c14e
Function8c15e: ; 8c15e
.asm_8c15e
call DmgToCgbTimePals
+rept 3
inc hl
- inc hl
- inc hl
+endr
ld c, $2
call DelayFrames
dec b
@@ -63623,9 +63803,9 @@ Function8c15e: ; 8c15e
Function8c16d: ; 8c16d
.asm_8c16d
call DmgToCgbTimePals
+rept 3
dec hl
- dec hl
- dec hl
+endr
ld c, $2
call DelayFrames
dec b
@@ -63639,30 +63819,31 @@ GetTimePalFade: ; 8c17c
ld a, [hCGB]
and a
jr nz, .cgb
-
+
; else: dmg
; index
ld a, [TimeOfDayPal]
and %11
-
+
; get fade table
push bc
ld c, a
ld b, $0
ld hl, .dmgfades
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
pop bc
-
+
; get place in fade table
ld b, $0
add hl, bc
ret
-
+
.cgb
ld hl, .cgbfade
ld b, $0
@@ -63776,7 +63957,7 @@ Function8c26d: ; 8c26d
cp $4
jr z, .asm_8c288
callba Function6454
- call Function1ad2
+ call DrawOnMap
call DelayFrame
call Function8c2a0
call Function8cf4f
@@ -63793,8 +63974,9 @@ Function8c26d: ; 8c26d
ld [hBGMapMode], a
ld hl, wcf63
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
ld [hl], a
call Function8c6d8
ret
@@ -63861,8 +64043,9 @@ Function8c314: ; 8c314
ld e, a
ld d, 0
ld hl, Jumptable_8c323
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -63914,7 +64097,7 @@ Function8c365: ; 8c365 (23:4365)
jr nc, .asm_8c375
set 0, e
.asm_8c375
- ld a, [wd19a]
+ ld a, [wPermission]
cp $4
jr z, .asm_8c386
cp $5
@@ -64071,13 +64254,11 @@ Function8c44f: ; 8c44f (23:444f)
ld e, a
ld d, 0
ld hl, Unknown_8c490
+rept 5
add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
+endr
ld a, [hli]
- cp $ff
+ cp -1
jr z, .asm_8c47a
ld [wcf65], a
call Function8c4f5
@@ -64259,7 +64440,7 @@ Function8c5dc: ; 8c5dc (23:45dc)
jp z, Function8c673
xor a
ld [hBGMapMode], a ; $ff00+$d4
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $168
inc b
inc c
@@ -64449,8 +64630,9 @@ Function8c70c: ; 8c70c (23:470c)
ld a, d
ld d, 0
ld hl, Unknown_8c728
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -64552,8 +64734,8 @@ Function8c7d4: ; 8c7d4
ret
; 8c7e1
-Function8c7e1: ; 8c7e1
- callba Function8c084
+BlindingFlash: ; 8c7e1
+ callba FadeBlackBGMap
ld hl, StatusFlags
set 2, [hl]
callba Function8c0e5
@@ -64561,7 +64743,7 @@ Function8c7e1: ; 8c7e1
ld b, $9
call GetSGBLayout
callba Function49409
- callba Function8c079
+ callba FadeInBGMap
ret
; 8c80a
@@ -64616,7 +64798,7 @@ ShakeHeadbuttTree: ; 8c80a
ld hl, VTiles1
lb bc, BANK(Font), $c
call Get1bpp
- call Functione4a
+ call Special_ReplaceKrisSprite
ret
; 8c893
@@ -64640,7 +64822,7 @@ Function8c913: ; 8c913
ld a, $5
ld [hli], a
ld [hld], a
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hli], a
ld [hld], a
@@ -64706,8 +64888,9 @@ Function8ca0c: ; 8ca0c
ld e, a
ld d, 0
ld hl, Jumptable_8ca1b
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -64732,8 +64915,9 @@ Function8ca23: ; 8ca23 (23:4a23)
ld a, $20
ld [wcf64], a
ld hl, wcf63
+rept 2
inc [hl]
- inc [hl]
+endr
ret
Function8ca3c: ; 8ca3c (23:4a3c)
@@ -64805,8 +64989,9 @@ Function8ca8e: ; 8ca8e (23:4a8e)
add e
ld e, a
ld hl, Unknown_8cab3
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -64930,9 +65115,9 @@ Function8cb82: ; 8cb82 (23:4b82)
ld c, $4
.asm_8cb88
ld [hli], a
+rept 3
inc hl
- inc hl
- inc hl
+endr
inc a
dec c
jr nz, .asm_8cb88
@@ -64999,7 +65184,7 @@ Function8cbe6: ; 8cbe6 (23:4be6)
ld [hl], $80
ret
-Function8cc04: ; 8cc04
+Special_MagnetTrain: ; 8cc04
ld a, [ScriptVar]
and a
jr nz, .asm_8cc14
@@ -65099,8 +65284,9 @@ Function8cc99: ; 8cc99
ld d, a
ld hl, wcf64
ld a, [hl]
+rept 2
add d
- add d
+endr
ld [hl], a
ret
; 8ccc4
@@ -65149,9 +65335,9 @@ Function8ccc9: ; 8ccc9
xor a
ld [hli], a
ld a, [wd192]
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld de, MUSIC_MAGNET_TRAIN
call PlayMusic2
ret
@@ -65210,8 +65396,9 @@ GetMagnetTrainBGTiles: ; 8cd74
ld e, a
ld d, 0
ld hl, MagnetTrainBGTiles
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -65294,8 +65481,9 @@ Function8cdf7: ; 8cdf7
ld e, a
ld d, 0
ld hl, Jumptable_8ce06
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -65394,15 +65582,17 @@ Function8ce7a: ; 8ce7a
inc a
ld d, a
ld a, e
+rept 2
add d
- add d
+endr
ld [wcf65], a
ld hl, wc3c0
ld a, [wd191]
ld d, a
ld a, [hl]
+rept 2
add d
- add d
+endr
ld [hl], a
ret
@@ -65433,13 +65623,13 @@ Function8ceae: ; 8ceae
ld [rSVBK], a
ld a, [TimeOfDayPal]
push af
- ld a, [wd19a]
+ ld a, [wPermission]
push af
ld a, [TimeOfDay]
and $3
ld [TimeOfDayPal], a
ld a, $1
- ld [wd19a], a
+ ld [wPermission], a
ld b, $9
call GetSGBLayout
call UpdateTimePals
@@ -65450,7 +65640,7 @@ Function8ceae: ; 8ceae
ld a, [rOBP1]
ld [wcfc9], a
pop af
- ld [wd19a], a
+ ld [wPermission], a
pop af
ld [TimeOfDayPal], a
pop af
@@ -65608,9 +65798,9 @@ Function8cfd6:: ; 8cfd6
ld e, a
ld d, 0
ld hl, Unknown_8d1c4
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ld e, l
ld d, h
ld hl, $0000
@@ -65634,18 +65824,19 @@ Function8cfd6:: ; 8cfd6
ld a, d
ld [hli], a
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
xor a
+rept 2
ld [hli], a
- ld [hli], a
+endr
dec a
ld [hli], a
xor a
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld a, c
ld [wc3b8], a
@@ -65904,8 +66095,9 @@ Function8d132: ; 8d132
ld [hl], a
ld hl, $000a
add hl, bc
+rept 2
dec [hl]
- dec [hl]
+endr
jr .asm_8d132
.asm_8d17b
@@ -65926,8 +66118,9 @@ Function8d189: ; 8d189
ld e, [hl]
ld d, 0
ld hl, Unknown_8d6e6
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -65944,9 +66137,9 @@ Function8d1a2: ; 8d1a2
ld e, a
ld d, 0
ld hl, Unknown_8d94d
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ret
; 8d1ac
@@ -65954,8 +66147,9 @@ Function8d1ac: ; 8d1ac
push hl
ld l, a
ld h, 0
+rept 2
add hl, hl
- add hl, hl
+endr
ld de, Unknown_8e706
add hl, de
ld c, [hl]
@@ -66027,8 +66221,9 @@ Function8d24b: ; 8d24b
ld e, [hl]
ld d, 0
ld hl, Jumptable_8d25b
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -66237,8 +66432,9 @@ Function8d381: ; 8d381 (23:5381)
ld a, [hl]
and a
jr z, .asm_8d3ba
+rept 2
dec [hl]
- dec [hl]
+endr
ld d, a
and $1f
jr nz, .asm_8d395
@@ -66521,8 +66717,9 @@ Function8d52a: ; 8d52a (23:552a)
ld hl, $4
add hl, bc
ld a, [hl]
+rept 2
inc [hl]
- inc [hl]
+endr
cp $b0
jr nc, .asm_8d53f
and $3
@@ -66591,9 +66788,9 @@ Function8d57f: ; 8d57f (23:557f)
ld hl, $c
add hl, bc
ld a, [hl]
+rept 3
inc [hl]
- inc [hl]
- inc [hl]
+endr
push af
push de
call Function8d6de
@@ -66622,8 +66819,9 @@ Function8d5b0: ; 8d5b0 (23:55b0)
ret c
ld hl, $5
add hl, bc
+rept 2
dec [hl]
- dec [hl]
+endr
ld hl, $f
add hl, bc
ld a, [hl]
@@ -66649,8 +66847,9 @@ Function8d5e2: ; 8d5e2 (23:55e2)
ld a, [hl]
cp $b8
jr nc, .asm_8d603
+rept 2
inc [hl]
- inc [hl]
+endr
ld hl, $5
add hl, bc
dec [hl]
@@ -66676,8 +66875,9 @@ Function8d607: ; 8d607 (23:5607)
ret z
ld hl, $5
add hl, bc
+rept 2
inc [hl]
- inc [hl]
+endr
ld hl, $f
add hl, bc
ld a, [hl]
@@ -66752,9 +66952,9 @@ Function8d680: ; 8d680 (23:5680)
ld hl, $b
add hl, bc
ld d, [hl]
+rept 3
inc [hl]
- inc [hl]
- inc [hl]
+endr
ld hl, $c
add hl, bc
ld a, [hl]
@@ -68222,8 +68422,9 @@ Function8e741: ; 8e741
ld a, d
ld d, 0
ld hl, Unknown_8e75d
+rept 2
add hl, de
- add hl, de
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -68263,8 +68464,9 @@ Function8e79d: ; 8e79d
call Function8e7c6
call DelayFrame
pop bc
+rept 2
inc d
- inc d
+endr
dec c
jr nz, .asm_8e7b5
call ClearSprites
@@ -68362,8 +68564,9 @@ Function8e83f: ; 8e83f
Function8e849: ; 8e849
ld d, 0
ld hl, Jumptable_8e854
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -68499,10 +68702,9 @@ Function8e908: ; 8e908 (23:6908)
ld [CurIcon], a
call Function8e9db
ld a, [$ffb0]
+rept 4
add a
- add a
- add a
- add a
+endr
add $1c
ld d, a
ld e, $10
@@ -68632,7 +68834,7 @@ GetIconGFX: ; 8e9de
add 10
ld [wc3b7], a
ret
-
+
HeldItemIcons:
INCBIN "gfx/icon/mail.2bpp"
INCBIN "gfx/icon/item.2bpp"
@@ -68643,21 +68845,20 @@ GetIcon_de: ; 8ea17
ld l, e
ld h, d
jr GetIcon
-
+
GetIcon_a: ; 8ea1b
; Load icon graphics into VRAM starting from tile a.
ld l, a
ld h, 0
-
+
GetIcon: ; 8ea1e
; Load icon graphics into VRAM starting from tile hl.
; One tile is 16 bytes long.
+rept 4
add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
-
+endr
+
ld de, VTiles0
add hl, de
push hl
@@ -68675,7 +68876,7 @@ GetIcon: ; 8ea1e
ld e, a
ld d, [hl]
pop hl
-
+
lb bc, BANK(Icons), 8
call GetGFXUnlessMobile
@@ -68782,8 +68983,8 @@ INCLUDE "menu/mon_icons.asm"
SECTION "bank24", ROMX, BANK[$24]
-Function90000:: ; 90000
- call Function9001c
+AddPhoneNumber:: ; 90000
+ call _CheckCellNum
jr c, .asm_9000d
call Function9002d
jr nc, .asm_9000d
@@ -68797,8 +68998,8 @@ Function90000:: ; 90000
; 9000f
-Function9000f:: ; 9000f
- call Function9001c
+DelCellNum:: ; 9000f
+ call _CheckCellNum
jr nc, .asm_90017
xor a
ld [hl], a
@@ -68809,11 +69010,11 @@ Function9000f:: ; 9000f
ret
; 90019
-Function90019:: ; 90019
- jp Function9001c
+CheckCellNum:: ; 90019
+ jp _CheckCellNum
; 9001c
-Function9001c: ; 9001c
+_CheckCellNum: ; 9001c
ld hl, wdc7c
ld b, $a
.asm_90021
@@ -68863,7 +69064,7 @@ Function90040: ; 90040
push bc
push hl
ld c, a
- call Function9001c
+ call _CheckCellNum
jr c, .asm_9005b
ld hl, Buffer1
inc [hl]
@@ -68917,7 +69118,7 @@ CheckPhoneCall:: ; 90074 (24:4074)
cp b
jr nz, .no_call
- call Function2d05
+ call GetMapHeaderPhoneServiceNybble
and a
jr nz, .no_call
@@ -68946,7 +69147,7 @@ Function900ad: ; 900ad (24:40ad)
push bc
push de
push af
- callba Functionc000
+ callba CheckTime
pop af
and $7
and c
@@ -68977,7 +69178,7 @@ Function900bf: ; 900bf (24:40bf)
ret
Function900de: ; 900de (24:40de)
- callba Functionc000
+ callba CheckTime
ld a, c
ld [EngineBuffer1], a ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
ld hl, wd040
@@ -69024,7 +69225,7 @@ Function900de: ; 900de (24:40de)
ret
Function90136:: ; 90136 (24:4136)
- ld a, [wdc31]
+ ld a, [wSpecialPhoneCallID]
and a
jr z, .asm_90171
dec a
@@ -69039,8 +69240,9 @@ Function90136:: ; 90136 (24:4136)
call _hl_
jr nc, .asm_90171
call Function90178
+rept 2
inc hl
- inc hl
+endr
ld a, [hli]
ld e, a
push hl
@@ -69071,7 +69273,7 @@ UnknownScript_0x90173: ; 0x90173
; 0x90178
Function90178: ; 90178 (24:4178)
- ld a, [wdc31]
+ ld a, [wSpecialPhoneCallID]
dec a
ld c, a
ld b, 0
@@ -69081,7 +69283,7 @@ Function90178: ; 90178 (24:4178)
ret
Function90188: ; 90188
- ld a, [wd19a]
+ ld a, [wPermission]
cp $1
jr z, .asm_90195
cp $2
@@ -69100,7 +69302,7 @@ Function90199: ; 90199 (24:4199)
ld a, [InLinkBattle]
and a
jr nz, .asm_901e7
- call Function2d05
+ call GetMapHeaderPhoneServiceNybble
and a
jr nz, .asm_901e7
ld a, b
@@ -69143,7 +69345,7 @@ Function90199: ; 90199 (24:4199)
.asm_901e7
ld b, BANK(UnknownScript_0x90209)
ld de, UnknownScript_0x90209
- call Function2674
+ call ExecuteCallbackScript
ret
.asm_901f0
@@ -69155,7 +69357,7 @@ Function90199: ; 90199 (24:4199)
ld [wd004], a
ld b, BANK(UnknownScript_0x90205)
ld de, UnknownScript_0x90205
- call Function2674
+ call ExecuteCallbackScript
ret
; 90205 (24:4205)
@@ -69208,7 +69410,7 @@ UnknownScript_0x90241: ; 0x90241
callasm Function9026f
ptcall wd048
closetext
- callasm Function902eb
+ callasm HangUp
loadmovesprites
callasm Function113e5
end
@@ -69243,84 +69445,85 @@ Function9026f: ; 9026f
; 9027c
Function9027c: ; 9027c (24:427c)
- call Function9033f
- call Function90357
- call Function90292
- call Function90357
- call Function90375
- call Function90357
- call Function90292
+ call Phone_StartRinging
+ call Phone_Wait20Frames
+ call Phone_CallerTextboxWithName
+ call Phone_Wait20Frames
+ call Phone_CallerTextbox
+ call Phone_Wait20Frames
+ call Phone_CallerTextboxWithName
ret
-Function90292: ; 90292 (24:4292)
+Phone_CallerTextboxWithName: ; 90292 (24:4292)
ld a, [wdbf9]
ld b, a
call Function90363
ret
-Function9029a:: ; 9029a
+PhoneCall:: ; 9029a
ld a, b
- ld [DefaultFlypoint], a
+ ld [PhoneScriptBank], a
ld a, e
- ld [wd003], a
+ ld [PhoneCallerLo], a
ld a, d
- ld [wd004], a
- call Function902b3
- call Function902b3
+ ld [PhoneCallerHi], a
+ call Phone_FirstOfTwoRings
+ call Phone_FirstOfTwoRings
callba Function1060d3
ret
; 902b3
-Function902b3: ; 902b3
- call Function9033f
- call Function90357
- call Function902c9
- call Function90357
- call Function90375
- call Function90357
- call Function902c9
+Phone_FirstOfTwoRings: ; 902b3
+ call Phone_StartRinging
+ call Phone_Wait20Frames
+ call Phone_CallerTextboxWithName2
+ call Phone_Wait20Frames
+ call Phone_CallerTextbox
+ call Phone_Wait20Frames
+ call Phone_CallerTextboxWithName2
ret
; 902c9
-Function902c9: ; 902c9
- call Function90375
+Phone_CallerTextboxWithName2: ; 902c9
+ call Phone_CallerTextbox
hlcoord 1, 2
ld [hl], $62
+rept 2
inc hl
- inc hl
- ld a, [wd002]
+endr
+ ld a, [PhoneScriptBank]
ld b, a
- ld a, [wd003]
+ ld a, [PhoneCallerLo]
ld e, a
- ld a, [wd004]
+ ld a, [PhoneCallerHi]
ld d, a
call Function90069
ret
; 902e3
-Function902e3: ; 902e3 (24:42e3)
+Phone_NoSignal: ; 902e3 (24:42e3)
ld de, SFX_NO_SIGNAL
call PlaySFX
- jr Function902f1
-
-Function902eb:: ; 902eb
- call Function9031d
- call Function90355
-Function902f1:
- call Function9032f
- call Function90355
- call Function9033b
- call Function90355
- call Function9032f
- call Function90355
- call Function9033b
- call Function90355
- call Function9032f
- call Function90355
- call Function9033b
- call Function90355
+ jr Phone_CallEnd
+
+HangUp:: ; 902eb
+ call HangUp_Beep
+ call HangUp_Wait20Frames
+Phone_CallEnd:
+ call HangUp_BoopOn
+ call HangUp_Wait20Frames
+ call HangUp_BoopOff
+ call HangUp_Wait20Frames
+ call HangUp_BoopOn
+ call HangUp_Wait20Frames
+ call HangUp_BoopOff
+ call HangUp_Wait20Frames
+ call HangUp_BoopOn
+ call HangUp_Wait20Frames
+ call HangUp_BoopOff
+ call HangUp_Wait20Frames
ret
; 90316
@@ -69330,7 +69533,7 @@ Function90316: ; 90316
ret
; 9031d
-Function9031d: ; 9031d
+HangUp_Beep: ; 9031d
ld hl, UnknownText_0x9032a
call PrintText
ld de, SFX_HANG_UP
@@ -69344,7 +69547,7 @@ UnknownText_0x9032a: ; 9032a
; 9032f
-Function9032f: ; 9032f
+HangUp_BoopOn: ; 9032f
ld hl, UnknownText_0x90336
call PrintText
ret
@@ -69356,25 +69559,25 @@ UnknownText_0x90336: ; 0x90336
; 0x9033b
-Function9033b: ; 9033b
+HangUp_BoopOff: ; 9033b
call SpeechTextBox
ret
; 9033f
-Function9033f: ; 9033f
+Phone_StartRinging: ; 9033f
call WaitSFX
ld de, SFX_CALL
call PlaySFX
- call Function90375
- call Function1ad2
+ call Phone_CallerTextbox
+ call DrawOnMap
callba Function4d188
ret
; 90355
-Function90355: ; 90355
- jr Function90357
+HangUp_Wait20Frames: ; 90355
+ jr Phone_Wait20Frames
-Function90357
+Phone_Wait20Frames
ld c, 20
call DelayFrames
callba Function4d188
@@ -69384,11 +69587,12 @@ Function90357
Function90363: ; 90363 (24:4363)
push bc
- call Function90375
+ call Phone_CallerTextbox
hlcoord 1, 1
ld [hl], $62
+rept 2
inc hl
- inc hl
+endr
ld d, h
ld e, l
pop bc
@@ -69396,8 +69600,8 @@ Function90363: ; 90363 (24:4363)
ret
-Function90375: ; 90375
- ld hl, TileMap
+Phone_CallerTextbox: ; 90375
+ hlcoord 0, 0
ld b, $2
ld c, $12
call TextBox
@@ -69463,8 +69667,9 @@ Function903a9: ; 903a9 (24:43a9)
ld c, b
ld b, 0
ld hl, Unknown_903d6
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld e, a
ld d, [hl]
@@ -69492,7 +69697,7 @@ String_9040d: db "BUENA:", $22, " DISC JOCKEY@"
Function90423: ; 90423 (24:4423)
push hl
push bc
- callba Function3994c
+ callba GetTrainerName
pop bc
pop hl
ret
@@ -69757,7 +69962,7 @@ Function90672: ; 90672 (24:4672)
Function90783: ; 90783 (24:4783)
xor a
ld [hBGMapMode], a ; $ff00+$d4
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
xor a
call ByteFill
@@ -69837,8 +70042,9 @@ Function907f1: ; 907f1
push hl
call Function907de
pop de
+rept 2
inc de
- inc de
+endr
ld a, $9c
ld [de], a
inc de
@@ -69852,9 +70058,9 @@ Function907f1: ; 907f1
ld [hl], a
pop hl
call Function90859
+rept 3
inc hl
- inc hl
- inc hl
+endr
ret
; 90810
@@ -70040,7 +70246,7 @@ GFX_9090b: ; 9090b
INCBIN "gfx/unknown/09090b.2bpp"
; 90913
-Function90913: ; 90913
+Special_SetDayOfWeek: ; 90913
ld a, [$ffaa]
push af
ld a, $1
@@ -70079,8 +70285,8 @@ Function90913: ; 90913
call Functiona57
call Function90993
jr nc, .asm_9096a
- call Function1c07
- call Function1ad2
+ call ExitMenu
+ call DrawOnMap
ld hl, UnknownText_0x90a44
call PrintText
call YesNoBox
@@ -70156,8 +70362,9 @@ Function909de: ; 909de
ld e, a
ld d, 0
ld hl, Unknown_909f2
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -70634,7 +70841,7 @@ Function90d9e: ; 90d9e (24:4d9e)
Function90da8: ; 90da8 (24:4da8)
xor a
ld [hBGMapMode], a
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, TileMapEnd - TileMap
ld a, $4f
call ByteFill
@@ -70776,7 +70983,7 @@ Function90e98: ; 90e98 (24:4e98)
hlcoord 17, 2
inc a
ld [hli], a
- call Function2d05
+ call GetMapHeaderPhoneServiceNybble
and a
ret nz
hlcoord 18, 2
@@ -70784,7 +70991,7 @@ Function90e98: ; 90e98 (24:4e98)
ret
Function90eb0: ; 90eb0 (24:4eb0)
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $8
ld a, $4f
call ByteFill
@@ -70802,7 +71009,7 @@ Function90eb0: ; 90eb0 (24:4eb0)
ld a, [de]
bit 1, a
call nz, Function90ef2
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $46
call Function90ef7
ret
@@ -70838,8 +71045,9 @@ Function90f04: ; 90f04 (24:4f04)
ld e, a
ld d, 0
ld hl, Jumptable_90f13
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -71312,7 +71520,7 @@ Function91171: ; 91171 (24:5171)
ret
Function911eb: ; 911eb (24:51eb)
- call Function2d05
+ call GetMapHeaderPhoneServiceNybble
and a
jr nz, .asm_91234
ld hl, Options
@@ -71343,7 +71551,7 @@ Function911eb: ; 911eb (24:51eb)
inc [hl]
ret
.asm_91234
- callba Function902e3
+ callba Phone_NoSignal
ld hl, OutOfServiceAreaText
call PrintText
ld a, $8
@@ -71369,7 +71577,7 @@ Function91256: ; 91256 (24:5256)
ld a, [hJoyPressed] ; $ff00+$a7
and $3
ret z
- callba Function902eb
+ callba HangUp
ld a, $8
ld [wcf63], a
ld hl, UnknownText_0x914ce
@@ -71443,7 +71651,7 @@ Function912b7: ; 912b7 (24:52b7)
hlcoord 1, 10
ld [hl], a
hlcoord 1, 4
- ld a, [wc6d1]
+ ld a, [wc6d1]
ld bc, $28
call AddNTimes
ld [hl], "▶"
@@ -71459,23 +71667,24 @@ Function912d8: ; 912d8 (24:52d8)
ld [hli], a
dec c
jr nz, .asm_912e1
+rept 2
inc hl
- inc hl
+endr
dec b
jr nz, .asm_912df
- ld a, [wc6d2]
+ ld a, [wc6d2]
ld e, a
ld d, $0
ld hl, wdc7c
add hl, de
xor a
- ld [wc6d0], a
+ ld [wc6d0], a
.asm_912f8
ld a, [hli]
push hl
push af
hlcoord 2, 4
- ld a, [wc6d0]
+ ld a, [wc6d0]
ld bc, $28
call AddNTimes
ld d, h
@@ -71484,9 +71693,9 @@ Function912d8: ; 912d8 (24:52d8)
ld b, a
call Function90380
pop hl
- ld a, [wc6d0]
+ ld a, [wc6d0]
inc a
- ld [wc6d0], a
+ ld [wc6d0], a
cp $4
jr c, .asm_912f8
call Function912b7
@@ -71521,11 +71730,11 @@ Function9131e: ; 9131e
Function91342: ; 91342 (24:5342)
ld hl, wdc7c
- ld a, [wc6d2]
+ ld a, [wc6d2]
ld e, a
ld d, 0
add hl, de
- ld a, [wc6d1]
+ ld a, [wc6d1]
ld e, a
ld d, 0
add hl, de
@@ -71570,7 +71779,7 @@ Function91342: ; 91342 (24:5342)
call PlaceString
pop de
xor a
- ld [wc6d4], a
+ ld [wc6d4], a
call Function9141d
call WaitBGMap
@@ -71603,11 +71812,11 @@ Function91342: ; 91342 (24:5342)
.asm_913c1
ld hl, 2
add hl, de
- ld a, [wc6d4]
+ ld a, [wc6d4]
inc a
cp [hl]
jr nc, .asm_91398
- ld [wc6d4], a
+ ld [wc6d4], a
call Function9141d
jr .asm_91398
@@ -71622,11 +71831,12 @@ Function91342: ; 91342 (24:5342)
and B_BUTTON
jr nz, Function913f1
- ld a, [wc6d4]
+ ld a, [wc6d4]
ld e, a
ld d, 0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -71641,9 +71851,9 @@ Function913f1: ; 913f1
Function913f9: ; 913f9
ld hl, UnknownText_0x914d8
- call Function1d4f
+ call MenuTextBox
call YesNoBox
- call Function1c07
+ call ExitMenu
jr c, .asm_91419
call Function9131e
xor a
@@ -71772,7 +71982,7 @@ Function914ab: ; 914ab (24:54ab)
ret
Function914bb: ; 914bb (24:54bb)
- ld hl, TileMap
+ hlcoord 0, 0
.asm_914be
ld a, [de]
cp $ff
@@ -71851,8 +72061,9 @@ Function9164e: ; 9164e (24:564e)
ld a, [hl]
and a
ret z
+rept 2
dec [hl]
- dec [hl]
+endr
jr .update
.up
@@ -71860,8 +72071,9 @@ Function9164e: ; 9164e (24:564e)
ld a, [hl]
cp 80
ret nc
+rept 2
inc [hl]
- inc [hl]
+endr
.update
@@ -71875,8 +72087,9 @@ UpdateRadioStation: ; 9166f (24:566f)
jr z, .asm_91682
cp d
jr z, .asm_91686
+rept 2
inc hl
- inc hl
+endr
jr .asm_91676
.asm_91682
@@ -71891,7 +72104,7 @@ UpdateRadioStation: ; 9166f (24:566f)
push de
jp [hl]
.asm_9168e
- ld a, [wc6d9]
+ ld a, [wc6d9]
and a
ret z
xor a
@@ -71904,9 +72117,9 @@ UpdateRadioStation: ; 9166f (24:566f)
; 916a1 (24:56a1)
Function916a1: ; 916a1
- ld [wc6d9], a
+ ld [wc6d9], a
ld a, [hli]
- ld [wc6da], a
+ ld [wc6da], a
ld a, [hli]
ld [wc6db], a
ret
@@ -72033,8 +72246,8 @@ EVOLUTION_RADIO EQU 10
Function91753: ; 91753 (24:5753)
xor a ; OAKS_POKEMON_TALK
- ld [wd002], a
- ld [wd005], a
+ ld [wd002], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72043,9 +72256,9 @@ Function91753: ; 91753 (24:5753)
Function91766: ; 91766 (24:5766)
ld a, POKEDEX_SHOW
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72054,9 +72267,9 @@ Function91766: ; 91766 (24:5766)
Function9177b: ; 9177b (24:577b)
ld a, POKEMON_MUSIC
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72065,9 +72278,9 @@ Function9177b: ; 9177b (24:577b)
Function91790: ; 91790 (24:5790)
ld a, LUCKY_CHANNEL
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72076,9 +72289,9 @@ Function91790: ; 91790 (24:5790)
Function917a5: ; 917a5 (24:57a5)
ld a, BUENAS_PASSWORD
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72095,9 +72308,9 @@ NotBuenasPasswordName: db "@"
Function917d5: ; 917d5 (24:57d5)
ld a, UNOWN_RADIO
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72106,9 +72319,9 @@ Function917d5: ; 917d5 (24:57d5)
Function917ea: ; 917ea (24:57ea)
ld a, PLACES_AND_PEOPLE
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72117,9 +72330,9 @@ Function917ea: ; 917ea (24:57ea)
Function917ff: ; 917ff (24:57ff)
ld a, LETS_ALL_SING
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72129,9 +72342,9 @@ Function917ff: ; 917ff (24:57ff)
Function91814: ; 91814
ld a, ROCKET_RADIO
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72141,9 +72354,9 @@ Function91814: ; 91814
Function91829: ; 91829 (24:5829)
ld a, POKE_FLUTE_RADIO
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72152,9 +72365,9 @@ Function91829: ; 91829 (24:5829)
Function9183e: ; 9183e (24:583e)
ld a, EVOLUTION_RADIO
- ld [wd002], a
+ ld [wd002], a
xor a
- ld [wd005], a
+ ld [wd005], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Function9187c
@@ -72168,7 +72381,7 @@ Function91853: ; 91853
Function91854: ; 91854 (24:5854)
push de
ld a, e
- ld [wc6dc], a
+ ld [wc6dc], a
ld de, MUSIC_NONE
call PlayMusic
pop de
@@ -72180,7 +72393,7 @@ Function91854: ; 91854 (24:5854)
Function91868: ; 91868 (24:5868)
push de
ld a, $fe
- ld [wc6dc], a
+ ld [wc6dc], a
ld de, MUSIC_NONE
call PlayMusic
pop de
@@ -72189,9 +72402,9 @@ Function91868: ; 91868 (24:5868)
ret
Function9187c: ; 9187c (24:587c)
- ld [wc6d9], a
+ ld [wc6d9], a
ld a, l
- ld [wc6da], a
+ ld [wc6da], a
ld a, h
ld [wc6db], a
ret
@@ -72200,8 +72413,8 @@ NoRadioStation: ; 91888 (24:5888)
call NoRadioMusic
call NoRadioName
xor a
- ld [wc6d9], a
- ld [wc6da], a
+ ld [wc6d9], a
+ ld [wc6da], a
ld [wc6db], a
ld a, $1
ld [hBGMapMode], a ; $ff00+$d4
@@ -72211,7 +72424,7 @@ NoRadioMusic: ; 9189d (24:589d)
ld de, MUSIC_NONE
call PlayMusic
ld a, $ff
- ld [wc6dc], a
+ ld [wc6dc], a
ret
NoRadioName: ; 918a9 (24:58a9)
@@ -72384,7 +72597,7 @@ Function91a04: ; 91a04
ld bc, $0006
hlcoord 1, 0
call ByteFill
- ld hl, TileMap
+ hlcoord 0, 0
ld [hl], $6
hlcoord 7, 0
ld [hl], $17
@@ -72404,46 +72617,47 @@ Function91a04: ; 91a04
ret
; 91a53
-Function91a53: ; 91a53
+PlayRadio: ; 91a53
ld hl, Options
ld a, [hl]
push af
set 4, [hl]
- call Function91a87
+ call .PlayStation
ld c, 100
call DelayFrames
-.asm_91a62
+.loop
call Functiona57
ld a, [hJoyPressed]
and A_BUTTON | B_BUTTON
- jr nz, .asm_91a7f
+ jr nz, .stop
ld a, [wc6da]
ld l, a
ld a, [wc6db]
ld h, a
ld a, [wc6d9]
and a
- jr z, .asm_91a7a
+ jr z, .zero
rst FarCall
-.asm_91a7a
+.zero
call DelayFrame
- jr .asm_91a62
+ jr .loop
-.asm_91a7f
+.stop
pop af
ld [Options], a
call Function91492
ret
; 91a87
-Function91a87: ; 91a87
- ld a, $ff
+.PlayStation: ; 91a87
+ ld a, -1
ld [EnemyTurnsTaken], a
- ld hl, Jumptable_91ab9
+ ld hl, .StationPointers
ld d, $0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -72468,7 +72682,7 @@ Function91a87: ; 91a87
ret
; 91ab9
-Jumptable_91ab9: ; 91ab9
+.StationPointers: ; 91ab9
dw Function91acb
dw Function91753
dw Function91766
@@ -72483,33 +72697,33 @@ Jumptable_91ab9: ; 91ab9
Function91acb: ; 91acb
call IsInJohto
and a
- jr nz, .asm_91ade
+ jr nz, .kanto
call UpdateTime
ld a, [TimeOfDay]
and a
jp z, Function91766
jp Function91753
-.asm_91ade
+.kanto
jp Function917ea
; 91ae1
Function91ae1: ; 91ae1
ld a, e
and a
- jr nz, .asm_91aec
+ jr nz, .kanto
call Function91ff2
call FillJohtoMap
ret
-.asm_91aec
+.kanto
call Function91ff2
call FillKantoMap
ret
; 91af3
-Function91af3: ; 91af3
+_FlyMap: ; 91af3
call WhiteBGMap
call ClearTileMap
call ClearSprites
@@ -72530,26 +72744,26 @@ Function91af3: ; 91af3
ld b, $2
call GetSGBLayout
call Function32f9
-.asm_91b29
+.loop
call Functiona57
ld hl, hJoyPressed
ld a, [hl]
- and $2
- jr nz, .asm_91b4a
+ and B_BUTTON
+ jr nz, .pressedB
ld a, [hl]
- and $1
- jr nz, .asm_91b4e
+ and A_BUTTON
+ jr nz, .pressedA
call Function91b73
call Function91c17
callba Function8cf69
call DelayFrame
- jr .asm_91b29
+ jr .loop
-.asm_91b4a
- ld a, $ff
- jr .asm_91b5a
+.pressedB
+ ld a, -1
+ jr .exit
-.asm_91b4e
+.pressedA
ld a, [DefaultFlypoint]
ld l, a
ld h, 0
@@ -72558,7 +72772,7 @@ Function91af3: ; 91af3
add hl, de
ld a, [hl]
-.asm_91b5a
+.exit
ld [DefaultFlypoint], a
pop af
ld [$ffaa], a
@@ -72627,57 +72841,57 @@ Function91b73: ; 91b73
TownMapBubble: ; 91bb5
; Draw the bubble containing the location text in the town map HUD
-
+
; Top-left corner
- ld hl, TileMap + 1 ; (1,0)
+ hlcoord 1, 0
ld a, $30
ld [hli], a
-
+
; Top row
ld bc, 16
ld a, " "
call ByteFill
-
+
; Top-right corner
ld a, $31
ld [hl], a
- ld hl, TileMap + 1 + 20 ; (1,1)
-
-
+ hlcoord 1, 1
+
+
; Middle row
ld bc, 18
ld a, " "
call ByteFill
-
-
+
+
; Bottom-left corner
- ld hl, TileMap + 1 + 40 ; (1,2)
+ hlcoord 1, 2
ld a, $32
ld [hli], a
-
+
; Bottom row
ld bc, 16
ld a, " "
call ByteFill
-
+
; Bottom-right corner
ld a, $33
ld [hl], a
-
-
+
+
; Print "Where?"
- ld hl, TileMap + 2 ; (2,0)
+ hlcoord 2, 0
ld de, .Where
call PlaceString
-
+
; Print the name of the default flypoint
call .Name
-
+
; Up/down arrows
- ld hl, TileMap + 18 + 20 ; (18,1)
+ hlcoord 18, 1
ld [hl], $34
ret
-
+
.Where
db "Where?@"
@@ -72690,10 +72904,10 @@ TownMapBubble: ; 91bb5
ld de, Flypoints
add hl, de
ld e, [hl]
-
+
callba GetLandmarkName
-
- ld hl, TileMap + 2 + 20 ; (2,1)
+
+ hlcoord 2, 1
ld de, StringBuffer1
call PlaceString
ret
@@ -72799,114 +73013,114 @@ Function91c8f: ; 91c8f
; 91c90
FlyMap: ; 91c90
-
+
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
-
+
; If we're not in a valid location, i.e. Pokecenter floor 2F,
; the backup map information is used
-
+
cp SPECIAL_MAP
jr nz, .CheckRegion
-
+
ld a, [BackupMapGroup]
ld b, a
ld a, [BackupMapNumber]
ld c, a
call GetWorldMapLocation
-
+
.CheckRegion
; The first 46 locations are part of Johto. The rest are in Kanto
cp KANTO_LANDMARK
jr nc, .KantoFlyMap
-
+
.JohtoFlyMap
; Note that .NoKanto should be modified in tandem with this branch
-
+
push af
-
+
; Start from New Bark Town
ld a, FLY_NEW_BARK
ld [DefaultFlypoint], a
-
+
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
ld a, FLY_MT_SILVER
ld [EndFlypoint], a
-
+
; Fill out the map
call FillJohtoMap
call .MapHud
pop af
call TownMapPlayerIcon
ret
-
+
.KantoFlyMap
-
+
; The event that there are no flypoints enabled in a map is not
; accounted for. As a result, if you attempt to select a flypoint
; when there are none enabled, the game will crash. Additionally,
; the flypoint selection has a default starting point that
; can be flown to even if none are enabled
-
+
; To prevent both of these things from happening when the player
; enters Kanto, fly access is restricted until Indigo Plateau is
; visited and its flypoint enabled
-
+
push af
ld c, SPAWN_INDIGO
call HasVisitedSpawn
and a
jr z, .NoKanto
-
+
; Kanto's map is only loaded if we've visited Indigo Plateau
-
+
; Flypoints begin at Pallet Town...
ld a, FLY_PALLET
ld [StartFlypoint], a
; ...and end at Indigo Plateau
ld a, FLY_INDIGO
ld [EndFlypoint], a
-
+
; Because Indigo Plateau is the first flypoint the player
; visits, it's made the default flypoint
ld [DefaultFlypoint], a
-
+
; Fill out the map
call FillKantoMap
call .MapHud
pop af
call TownMapPlayerIcon
ret
-
+
.NoKanto
; If Indigo Plateau hasn't been visited, we use Johto's map instead
-
+
; Start from New Bark Town
ld a, FLY_NEW_BARK
ld [DefaultFlypoint], a
-
+
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
ld a, FLY_MT_SILVER
ld [EndFlypoint], a
-
+
call FillJohtoMap
-
+
pop af
-
+
.MapHud
call TownMapBubble
call TownMapPals
-
+
ld hl, VBGMap0 ; BG Map 0
call TownMapBGUpdate
-
+
call TownMapMon
ld a, c
ld [wd003], a
@@ -73029,7 +73243,7 @@ Function91dcd: ; 91dcd
ret
.asm_91ddc
- ld hl, TileMap
+ hlcoord 0, 0
ld de, Sprites
ld bc, $00a0
call CopyBytes
@@ -73037,14 +73251,14 @@ Function91dcd: ; 91dcd
; 91de9
Function91de9: ; 91de9
- ld hl, TileMap
- ld bc, $0014
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
ld a, $7f
call ByteFill
hlcoord 0, 1
ld a, $6
ld [hli], a
- ld bc, $0012
+ ld bc, SCREEN_HEIGHT
ld a, $7
call ByteFill
ld [hl], $17
@@ -73066,7 +73280,7 @@ Function91e1e: ; 91e1e
ld [wd003], a
ld e, a
callba Function2a01f
- ld de, TileMap
+ decoord 0, 0
ld hl, Sprites
.asm_91e2e
ld a, [de]
@@ -73093,7 +73307,7 @@ Function91e1e: ; 91e1e
.asm_91e4d
ld hl, Sprites
- ld de, TileMap
+ decoord 0, 0
ld bc, $00a0
call CopyBytes
ret
@@ -73210,25 +73424,25 @@ TownMapBGUpdate: ; 91ee4
ld [hBGMapAddress], a
ld a, h
ld [$ffd7], a
-
+
; Only update palettes on CGB
ld a, [hCGB]
and a
jr z, .tiles
-
+
; BG Map mode 2 (palettes)
ld a, 2
ld [hBGMapMode], a
-
+
; The BG Map is updated in thirds, so we wait
; 3 frames to update the whole screen's palettes.
ld c, 3
call DelayFrames
-
+
.tiles
; Update BG Map tiles
call WaitBGMap
-
+
; Turn off BG Map update
xor a
ld [hBGMapMode], a
@@ -73238,12 +73452,12 @@ TownMapBGUpdate: ; 91ee4
FillJohtoMap: ; 91eff
ld de, JohtoMap
jr FillTownMap
-
+
FillKantoMap: ; 91f04
ld de, KantoMap
-
+
FillTownMap: ; 91f07
- ld hl, TileMap
+ hlcoord 0, 0
.loop
ld a, [de]
cp $ff
@@ -73257,24 +73471,24 @@ FillTownMap: ; 91f07
TownMapPals: ; 91f13
; Assign palettes based on tile ids
- ld hl, TileMap
- ld de, AttrMap
+ hlcoord 0, 0
+ decoord 0, 0, AttrMap
ld bc, 360
.loop
; Current tile
ld a, [hli]
push hl
-
+
; HP/borders use palette 0
cp $60
jr nc, .pal0
-
+
; The palette data is condensed to nybbles,
; least-significant first.
ld hl, TownMapPalMap
srl a
jr c, .odd
-
+
; Even-numbered tile ids take the bottom nybble...
add l
ld l, a
@@ -73284,7 +73498,7 @@ TownMapPals: ; 91f13
ld a, [hl]
and %111
jr .update
-
+
.odd
; ...and odd ids take the top.
add l
@@ -73296,10 +73510,10 @@ TownMapPals: ; 91f13
swap a
and %111
jr .update
-
+
.pal0
xor a
-
+
.update
pop hl
ld [de], a
@@ -73318,7 +73532,7 @@ TownMapPalMap:
; 91f7b
TownMapMon: ; 91f7b
-; Draw the FlyMon icon at town map location in
+; Draw the FlyMon icon at town map location in
; Get FlyMon species
ld a, [CurPartyMon]
@@ -73328,16 +73542,16 @@ TownMapMon: ; 91f7b
add hl, de
ld a, [hl]
ld [wd265], a
-
+
; Get FlyMon icon
ld e, 8 ; starting tile in VRAM
callba GetSpeciesIcon
-
+
; Animation/palette
ld de, $0000
ld a, $0
call Function3b2a
-
+
ld hl, 3
add hl, bc
ld [hl], 8
@@ -73350,14 +73564,14 @@ TownMapMon: ; 91f7b
TownMapPlayerIcon: ; 91fa6
; Draw the player icon at town map location in a
push af
-
+
callba GetPlayerIcon
-
+
; Standing icon
ld hl, $8100
ld c, 4 ; # tiles
call Request2bpp
-
+
; Walking icon
ld hl, $00c0
add hl, de
@@ -73367,7 +73581,7 @@ TownMapPlayerIcon: ; 91fa6
ld c, 4 ; # tiles
ld a, BANK(ChrisSpriteGFX) ; does nothing
call Request2bpp
-
+
; Animation/palette
ld de, $0000
ld b, $0a ; Male
@@ -73378,17 +73592,17 @@ TownMapPlayerIcon: ; 91fa6
.asm_91fd3
ld a, b
call Function3b2a
-
+
ld hl, $0003
add hl, bc
ld [hl], $10
-
+
pop af
ld e, a
push bc
callba GetLandmarkCoords
pop bc
-
+
ld hl, 4
add hl, bc
ld [hl], e
@@ -73562,7 +73776,7 @@ Function923b8: ; 923b8
INCLUDE "data/wild/fish.asm"
-Function926c7:
+_SlotMachine:
ld hl, Options
set 4, [hl]
call Function926f7
@@ -73614,7 +73828,7 @@ Function926f7: ; 926f7 (24:66f7)
ld de, $9250
call Decompress
ld hl, SlotsTilemap
- ld de, TileMap
+ decoord 0, 0
ld bc, 20 * 12
call CopyBytes
ld hl, rLCDC ; $ff40
@@ -73745,9 +73959,9 @@ Function9282c: ; 9282c
ld a, [hl]
xor $20
ld [hli], a
+rept 3
inc hl
- inc hl
- inc hl
+endr
dec c
jr nz, .asm_92839
ret
@@ -73758,8 +73972,9 @@ Function92844: ; 92844 (24:6844)
ld e, a
ld d, 0
ld hl, Jumptable_92853
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -74234,9 +74449,9 @@ Function92b22: ; 92b22 (24:6b22)
ld a, [hl]
add d
ld [hli], a
+rept 3
inc hl
- inc hl
- inc hl
+endr
dec e
jr nz, .asm_92b49
ret
@@ -74296,8 +74511,9 @@ Function92b83: ; 92b83 (24:6b83)
add $8
ld [hli], a
ld a, [de]
+rept 2
inc a
- inc a
+endr
ld [hli], a
srl a
srl a
@@ -74336,8 +74552,9 @@ Function92bd4: ; 92bd4 (24:6bd4)
ld e, [hl]
ld d, 0
ld hl, Jumptable_92be4
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -74715,8 +74932,9 @@ Function92dca: ; 92dca
ld [hl], $0
ld hl, $0000
add hl, bc
+rept 2
dec [hl]
- dec [hl]
+endr
ld a, $1
ld [wcf64], a
ret
@@ -74836,8 +75054,9 @@ Function92e94: ; 92e94
ld e, a
ld d, 0
ld hl, Jumptable_92ebd
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -74938,8 +75157,9 @@ Function92f1d: ; 92f1d
ld e, a
ld d, 0
ld hl, Jumptable_92f48
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -75194,8 +75414,8 @@ Function9307c: ; 9307c (24:707c)
call PrintText
ld hl, MenuDataHeader_0x930d6
call LoadMenuDataHeader
- call Function1d81
- call Function1c17
+ call InterpretMenu2
+ call WriteBackup
ret c
ld a, [wcfa9]
ld b, a
@@ -75277,12 +75497,12 @@ Function930e9: ; 930e9 (24:70e9)
.asm_930fd
ld hl, UnknownText_9311f
call PrintText
- call Function1d58
+ call LoadMenuTextBox
lb bc, 14, 12
call PlaceYesNoBox
ld a, [wcfa9]
dec a
- call Function1c17
+ call WriteBackup
and a
jr nz, .asm_93118
and a
@@ -75346,9 +75566,9 @@ Function93158: ; 93158 (24:7158)
ld e, a
ld d, 0
ld hl, Unknown_93195
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ld de, StringBuffer2
ld bc, $4
call CopyBytes
@@ -75397,10 +75617,9 @@ Function931ba: ; 931ba
hlcoord 18, 17
ld [hl], $ee
ld hl, UnknownText_0x931db
+rept 4
inc bc
- inc bc
- inc bc
- inc bc
+endr
ret
; 931db
@@ -75459,8 +75678,9 @@ Function9321d: ; 9321d (24:721d)
ld e, [hl]
ld d, 0
ld hl, Jumptable_9322d
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -75528,8 +75748,9 @@ Function93289: ; 93289 (24:7289)
ld hl, $6
add hl, bc
ld a, [hl]
+rept 2
inc [hl]
- inc [hl]
+endr
cp $48
jr nc, .asm_932a3
and $3
@@ -75556,8 +75777,9 @@ Function932ac: ; 932ac (24:72ac)
ld e, [hl]
ld d, 0
ld hl, Jumptable_932bc
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -75703,7 +75925,7 @@ INCLUDE "tilesets/data_5.asm"
SECTION "bank2E", ROMX, BANK[$2E]
-Functionb8000:: ; b8000
+ReturnFromMapSetupScript:: ; b8000
xor a
ld [hBGMapMode], a
callba Functionb800a
@@ -75839,7 +76061,7 @@ Functionb80c6: ; b80c6
; b80d3
Functionb80d3: ; b80d3
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $2
ld c, $12
call Functionb8115
@@ -75868,15 +76090,15 @@ Functionb8101: ; b8101 (2e:4101)
ld c, $0
push hl
ld hl, StringBuffer1
-.asm_b8107
+.loop
ld a, [hli]
cp $50
- jr z, .asm_b8113
+ jr z, .stop
cp $25
- jr z, .asm_b8107
+ jr z, .loop
inc c
- jr .asm_b8107
-.asm_b8113
+ jr .loop
+.stop
pop hl
ret
@@ -75884,149 +76106,166 @@ Functionb8101: ; b8101 (2e:4101)
Functionb8115: ; b8115
ld de, AttrMap - TileMap
add hl, de
+rept 2
inc b
- inc b
- inc c
+endr
+rept 2
inc c
+endr
ld a, $87
-.asm_b811f
+.loop
push bc
push hl
-.asm_b8121
+.inner_loop
ld [hli], a
dec c
- jr nz, .asm_b8121
+ jr nz, .inner_loop
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
pop bc
dec b
- jr nz, .asm_b811f
+ jr nz, .loop
ret
; b812f
Functionb812f: ; b812f
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $61
ld [hli], a
ld a, $62
- call Functionb8164
+ call .Fill5Words
ld a, $64
ld [hli], a
ld a, $65
ld [hli], a
- call Functionb815b
+ call .Fill18Bytes
ld a, $6b
ld [hli], a
ld a, $66
ld [hli], a
- call Functionb815b
+ call .Fill18Bytes
ld a, $6c
ld [hli], a
ld a, $67
ld [hli], a
ld a, $68
- call Functionb8164
+ call .Fill5Words
ld a, $6a
ld [hl], a
ret
; b815b
-Functionb815b: ; b815b
- ld c, $12
+.Fill18Bytes: ; b815b
+ ld c, 18
ld a, $6d
-.asm_b815f
+.loop
ld [hli], a
dec c
- jr nz, .asm_b815f
+ jr nz, .loop
ret
; b8164
-Functionb8164: ; b8164
- ld c, $5
- jr .asm_b816a
+.Fill5Words: ; b8164
+ ld c, 5
+ jr .enterloop
-.asm_b8168
- ld [hli], a
+.continueloop
+rept 2
ld [hli], a
+endr
-.asm_b816a
+.enterloop
inc a
+rept 2
ld [hli], a
- ld [hli], a
+endr
dec a
dec c
- jr nz, .asm_b8168
+ jr nz, .continueloop
ret
; b8172
-Functionb8172: ; b8172
+CheckForSignpostItems: ; b8172
+; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry.
call GetMapScriptHeaderBank
ld [Buffer1], a
+; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
ld a, [XCoord]
- add $5
+ add SCREEN_WIDTH / 4
ld [wd1ed], a
ld a, [YCoord]
- add $4
+ add SCREEN_HEIGHT / 4
ld [wd1ec], a
+; Get the pointer for the first signpost header in the map...
ld hl, wdc02
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wdc01]
+; ... before even checking to see if there are any signposts on this map.
+ ld a, [wCurrentMapSignpostCount]
and a
- jr z, .asm_b81dd
-.asm_b8194
+ jr z, .nosignpostitems
+; For i = 1:wCurrentMapSignpostCount...
+.loop
+; Store the counter in Buffer2, and store the signpost header pointer in the stack.
ld [Buffer2], a
push hl
- call Functionb81e2
+; Get the Y coordinate of the signpost.
+ call .GetFarByte
ld e, a
+; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost.
ld a, [wd1ec]
sub e
- jr c, .asm_b81d2
- cp $9
- jr nc, .asm_b81d2
- call Functionb81e2
+ jr c, .next
+ cp SCREEN_HEIGHT / 2
+ jr nc, .next
+; Is the X coordinate of the signpost on the screen? If not, go to the next signpost.
+ call .GetFarByte
ld d, a
ld a, [wd1ed]
sub d
- jr c, .asm_b81d2
- cp $a
- jr nc, .asm_b81d2
- call Functionb81e2
- cp $7
- jr nz, .asm_b81d2
+ jr c, .next
+ cp SCREEN_WIDTH / 2
+ jr nc, .next
+; Is this signpost a hidden item? If not, go to the next signpost.
+ call .GetFarByte
+ cp SIGNPOST_ITEM
+ jr nz, .next
+; Has this item already been found? If not, set off the Itemfinder.
ld a, [Buffer1]
call GetFarHalfword
ld a, [Buffer1]
call GetFarHalfword
ld d, h
ld e, l
- ld b, $2
+ ld b, CHECK_FLAG
call EventFlagAction
ld a, c
and a
- jr z, .asm_b81df
+ jr z, .itemnearby
-.asm_b81d2
+.next
+; Restore the signpost header pointer and increment it by the length of a signpost header.
pop hl
- ld bc, $0005
+ ld bc, 5
add hl, bc
+; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range.
ld a, [Buffer2]
dec a
- jr nz, .asm_b8194
+ jr nz, .loop
-.asm_b81dd
+.nosignpostitems
xor a
ret
-.asm_b81df
+.itemnearby
pop hl
scf
ret
; b81e2
-Functionb81e2: ; b81e2
+.GetFarByte: ; b81e2
ld a, [Buffer1]
call GetFarByte
inc hl
@@ -76193,8 +76432,9 @@ GetTreeMons: ; b82d2
ld e, a
ld d, 0
ld hl, TreeMons
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
@@ -76379,9 +76619,9 @@ SelectTreeMon: ; b841f
.loop
sub [hl]
jr c, .ok
+rept 3
inc hl
- inc hl
- inc hl
+endr
jr .loop
.ok
@@ -76533,2111 +76773,7 @@ KrisFishingGFX: ; b8582
INCBIN "gfx/unknown/0b8582.2bpp"
; b8612
-
-PlayRadioShow: ; b8612
- ld a, [wd002]
- cp 8
- jr nc, .ok
- ld a, [StatusFlags2]
- bit 0, a
- jr z, .ok
- call IsInJohto
- and a
- jr nz, .ok
- ld a, 7
- ld [wd002], a
-.ok
- ld a, [wd002]
- ld e, a
- ld d, 0
- ld hl, Jumptable_b863a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_b863a: ; b863a (2e:463a)
- dw Functionb8742
- dw Functionb8a46
- dw Functionb8b35
- dw Functionb8bdc
- dw Functionb8f12
- dw Functionb8cbf
- dw Functionb8b50
- dw Functionb8e72
- dw Functionb8ef7
- dw Functionb8f00
- dw Functionb8f09
- dw Functionb8752
- dw Functionb875a
- dw Functionb8762
- dw Functionb8810
- dw Functionb8818
- dw Functionb883e
- dw Functionb8854
- dw Functionb88d9
- dw Functionb8a6c
- dw Functionb8aa4
- dw Functionb8aac
- dw Functionb8ab4
- dw Functionb8b40
- dw Functionb8b48
- dw Functionb8b63
- dw Functionb8b6b
- dw Functionb8b7d
- dw Functionb8b8f
- dw Functionb8b5b
- dw Functionb8bf5
- dw Functionb8bfd
- dw Functionb8c05
- dw Functionb8c0d
- dw Functionb8c15
- dw Functionb8c1d
- dw Functionb8c25
- dw Functionb8c3e
- dw Functionb8c46
- dw Functionb8c4e
- dw Functionb8c56
- dw Functionb8c5e
- dw Functionb8c6e
- dw Functionb8c76
- dw Functionb8cca
- dw Functionb8cd2
- dw Functionb8cf2
- dw Functionb8d56
- dw Functionb8ded
- dw Functionb8e28
- dw Functionb8e7d
- dw Functionb8e85
- dw Functionb8e8d
- dw Functionb8e95
- dw Functionb8e9d
- dw Functionb8ea5
- dw Functionb8ead
- dw Functionb8eb5
- dw Functionb8ebd
- dw Functionb896e
- dw Functionb8994
- dw Functionb89a9
- dw Functionb89c6
- dw Functionb89d7
- dw Functionb8f3f
- dw Functionb8f47
- dw Functionb8f55
- dw Functionb909c
- dw Functionb90a4
- dw Functionb90ac
- dw Functionb90c5
- dw Functionb90d2
- dw Functionb90da
- dw Functionb90e2
- dw Functionb90ea
- dw Functionb90f2
- dw Functionb90fa
- dw Functionb9102
- dw Functionb910a
- dw Functionb9112
- dw Functionb911a
- dw Functionb9122
- dw Functionb912a
- dw Functionb9152
- dw Functionb8728
- dw Functionb8abc
- dw Functionb8ac4
- dw Functionb8acc
-
-
-Functionb86ea: ; b86ea (2e:46ea)
- ld [wd003], a
- ld hl, wd00c
- ld a, [wd005]
- cp $2
- jr nc, .asm_b870a
- inc hl
- ld [hl], $0
- inc a
- ld [wd005], a
- cp $2
- jr nz, .asm_b870a
- bccoord 1, 16
- call Function13e5
- jr .asm_b870d
-.asm_b870a
- call PrintTextBoxText
-.asm_b870d
- ld a, $54
- ld [wd002], a
- ld a, $64
- ld [wd004], a
- ret
-; b8718 (2e:4718)
-
-Functionb8718: ; b8718
- push hl
- ld b, $28
-.asm_b871b
- ld a, [hl]
- cp $e8
- jr nz, .asm_b8722
- ld [hl], $7f
-
-.asm_b8722
- inc hl
- dec b
- jr nz, .asm_b871b
- pop hl
- ret
-; b8728
-
-Functionb8728: ; b8728 (2e:4728)
- ld hl, wd004
- ld a, [hl]
- and a
- jr z, .asm_b8731
- dec [hl]
- ret
-.asm_b8731
- ld a, [wd003]
- ld [wd002], a
- ld a, [wd005]
- cp $1
- call nz, Functionb8a0b
- jp Functionb8a17
-
-Functionb8742: ; b8742 (2e:4742)
- ld a, $5
- ld [wd006], a
- call Functionb91eb
- ld hl, UnknownText_0xb8820
- ld a, $b
- jp Functionb9221
-
-Functionb8752: ; b8752 (2e:4752)
- ld hl, UnknownText_0xb8825
- ld a, $c
- jp Functionb9221
-
-Functionb875a: ; b875a (2e:475a)
- ld hl, UnknownText_0xb882a
- ld a, $d
- jp Functionb9221
-
-Functionb8762: ; b8762 (2e:4762)
- call Random
- and $1f
- cp $f
- jr nc, Functionb8762
- ld hl, Unknown_b87f2
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld b, [hl]
- inc hl
- ld c, [hl]
- push bc
-
- ld hl, WildMons1
-.loop
- ld a, BANK(WildMons1)
- call GetFarByte
- cp $ff
- jr z, .asm_b87ec
- inc hl
- cp b
- jr nz, .next
- ld a, BANK(WildMons1)
- call GetFarByte
- cp c
- jr z, .asm_b8796
-.next
- dec hl
- ld de, $2f
- add hl, de
- jr .loop
-
-.asm_b8796
- inc hl
- inc hl
- inc hl
- inc hl
-
-.not3
- call Random
- and 3
- cp 3
- jr z, .not3
-
- ld bc, $e
- call AddNTimes
-.asm_b87a9
- call Random
- and 7
- cp 2
- jr c, .asm_b87a9
- cp 5
- jr nc, .asm_b87a9
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- inc hl
- ld a, BANK(WildMons1)
- call GetFarByte
- ld [wd265], a
- ld [CurPartySpecies], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wd050
- ld bc, $b
- call CopyBytes
-
- pop bc
- call GetWorldMapLocation
- ld e, a
- callba GetLandmarkName
- ld hl, UnknownText_0xb882f
- call Functionb91dc
- ld a, $e
- jp Functionb86ea
-
-.asm_b87ec
- pop bc
- ld a, $0
- jp Functionb86ea
-; b87f2 (2e:47f2)
-
-Unknown_b87f2: ; b87f2
- map ROUTE_29
- map ROUTE_46
- map ROUTE_30
- map ROUTE_32
- map ROUTE_34
- map ROUTE_35
- map ROUTE_37
- map ROUTE_38
- map ROUTE_39
- map ROUTE_42
- map ROUTE_43
- map ROUTE_44
- map ROUTE_45
- map ROUTE_36
- map ROUTE_31
-; b8810
-
-Functionb8810: ; b8810 (2e:4810)
- ld hl, UnknownText_0xb8834
- ld a, $f
- jp Functionb9221
-
-Functionb8818: ; b8818 (2e:4818)
- ld hl, UnknownText_0xb8839
- ld a, $10
- jp Functionb9221
-; b8820 (2e:4820)
-
-UnknownText_0xb8820: ; 0xb8820
- ; MARY: PROF.OAK'S
- text_jump UnknownText_0x1bc81a
- db "@"
-; 0xb8825
-
-UnknownText_0xb8825: ; 0xb8825
- ; #MON TALK!
- text_jump UnknownText_0x1bc82d
- db "@"
-; 0xb882a
-
-UnknownText_0xb882a: ; 0xb882a
- ; With me, MARY!
- text_jump UnknownText_0x1bc83a
- db "@"
-; 0xb882f
-
-UnknownText_0xb882f: ; 0xb882f
- ; OAK: @ @
- text_jump UnknownText_0x1bc84b
- db "@"
-; 0xb8834
-
-UnknownText_0xb8834: ; 0xb8834
- ; may be seen around
- text_jump UnknownText_0x1bc858
- db "@"
-; 0xb8839
-
-UnknownText_0xb8839: ; 0xb8839
- ; @ .
- text_jump UnknownText_0x1bc86d
- db "@"
-; 0xb883e
-
-Functionb883e: ; b883e (2e:483e)
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, UnknownText_0xb884f
- ld a, $11
- jp Functionb9221
-; b884f (2e:484f)
-
-UnknownText_0xb884f: ; 0xb884f
- ; MARY: @ 's
- text_jump UnknownText_0x1bc876
- db "@"
-; 0xb8854
-
-Functionb8854: ; b8854 (2e:4854)
- call Random
- and $f
- ld e, a
- ld d, 0
- ld hl, Unknown_b8869
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, $12
- jp Functionb9221
-; b8869 (2e:4869)
-
-Unknown_b8869: ; b8869
- dw UnknownText_0xb8889
- dw UnknownText_0xb888e
- dw UnknownText_0xb8893
- dw UnknownText_0xb8898
- dw UnknownText_0xb889d
- dw UnknownText_0xb88a2
- dw UnknownText_0xb88a7
- dw UnknownText_0xb88ac
- dw UnknownText_0xb88b1
- dw UnknownText_0xb88b6
- dw UnknownText_0xb88bb
- dw UnknownText_0xb88c0
- dw UnknownText_0xb88c5
- dw UnknownText_0xb88ca
- dw UnknownText_0xb88cf
- dw UnknownText_0xb88d4
-; b8889
-
-UnknownText_0xb8889: ; 0xb8889
- ; sweet and adorably
- text_jump UnknownText_0x1bc885
- db "@"
-; 0xb888e
-
-UnknownText_0xb888e: ; 0xb888e
- ; wiggly and slickly
- text_jump UnknownText_0x1bc89a
- db "@"
-; 0xb8893
-
-UnknownText_0xb8893: ; 0xb8893
- ; aptly named and
- text_jump UnknownText_0x1bc8af
- db "@"
-; 0xb8898
-
-UnknownText_0xb8898: ; 0xb8898
- ; undeniably kind of
- text_jump UnknownText_0x1bc8c1
- db "@"
-; 0xb889d
-
-UnknownText_0xb889d: ; 0xb889d
- ; so, so unbearably
- text_jump UnknownText_0x1bc8d6
- db "@"
-; 0xb88a2
-
-UnknownText_0xb88a2: ; 0xb88a2
- ; wow, impressively
- text_jump UnknownText_0x1bc8ea
- db "@"
-; 0xb88a7
-
-UnknownText_0xb88a7: ; 0xb88a7
- ; almost poisonously
- text_jump UnknownText_0x1bc8fe
- db "@"
-; 0xb88ac
-
-UnknownText_0xb88ac: ; 0xb88ac
- ; ooh, so sensually
- text_jump UnknownText_0x1bc913
- db "@"
-; 0xb88b1
-
-UnknownText_0xb88b1: ; 0xb88b1
- ; so mischievously
- text_jump UnknownText_0x1bc927
- db "@"
-; 0xb88b6
-
-UnknownText_0xb88b6: ; 0xb88b6
- ; so very topically
- text_jump UnknownText_0x1bc93a
- db "@"
-; 0xb88bb
-
-UnknownText_0xb88bb: ; 0xb88bb
- ; sure addictively
- text_jump UnknownText_0x1bc94e
- db "@"
-; 0xb88c0
-
-UnknownText_0xb88c0: ; 0xb88c0
- ; looks in water is
- text_jump UnknownText_0x1bc961
- db "@"
-; 0xb88c5
-
-UnknownText_0xb88c5: ; 0xb88c5
- ; evolution must be
- text_jump UnknownText_0x1bc975
- db "@"
-; 0xb88ca
-
-UnknownText_0xb88ca: ; 0xb88ca
- ; provocatively
- text_jump UnknownText_0x1bc989
- db "@"
-; 0xb88cf
-
-UnknownText_0xb88cf: ; 0xb88cf
- ; so flipped out and
- text_jump UnknownText_0x1bc999
- db "@"
-; 0xb88d4
-
-UnknownText_0xb88d4: ; 0xb88d4
- ; heart-meltingly
- text_jump UnknownText_0x1bc9ae
- db "@"
-; 0xb88d9
-
-Functionb88d9: ; b88d9 (2e:48d9)
- call Random
- and $f
- ld e, a
- ld d, 0
- ld hl, Unknown_b88fe
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd006]
- dec a
- ld [wd006], a
- ld a, $d
- jr nz, .asm_b88fb
- ld a, $5
- ld [wd006], a
- ld a, $3b
-.asm_b88fb
- jp Functionb9221
-; b88fe (2e:48fe)
-
-Unknown_b88fe: ; b88fe
- dw UnknownText_0xb891e
- dw UnknownText_0xb8923
- dw UnknownText_0xb8928
- dw UnknownText_0xb892d
- dw UnknownText_0xb8932
- dw UnknownText_0xb8937
- dw UnknownText_0xb893c
- dw UnknownText_0xb8941
- dw UnknownText_0xb8946
- dw UnknownText_0xb894b
- dw UnknownText_0xb8950
- dw UnknownText_0xb8955
- dw UnknownText_0xb895a
- dw UnknownText_0xb895f
- dw UnknownText_0xb8964
- dw UnknownText_0xb8969
-; b891e
-
-UnknownText_0xb891e: ; 0xb891e
- ; cute.
- text_jump UnknownText_0x1bc9c0
- db "@"
-; 0xb8923
-
-UnknownText_0xb8923: ; 0xb8923
- ; weird.
- text_jump UnknownText_0x1bc9c8
- db "@"
-; 0xb8928
-
-UnknownText_0xb8928: ; 0xb8928
- ; pleasant.
- text_jump UnknownText_0x1bc9d1
- db "@"
-; 0xb892d
-
-UnknownText_0xb892d: ; 0xb892d
- ; bold, sort of.
- text_jump UnknownText_0x1bc9dd
- db "@"
-; 0xb8932
-
-UnknownText_0xb8932: ; 0xb8932
- ; frightening.
- text_jump UnknownText_0x1bc9ee
- db "@"
-; 0xb8937
-
-UnknownText_0xb8937: ; 0xb8937
- ; suave & debonair!
- text_jump UnknownText_0x1bc9fd
- db "@"
-; 0xb893c
-
-UnknownText_0xb893c: ; 0xb893c
- ; powerful.
- text_jump UnknownText_0x1bca11
- db "@"
-; 0xb8941
-
-UnknownText_0xb8941: ; 0xb8941
- ; exciting.
- text_jump UnknownText_0x1bca1d
- db "@"
-; 0xb8946
-
-UnknownText_0xb8946: ; 0xb8946
- ; groovy!
- text_jump UnknownText_0x1bca29
- db "@"
-; 0xb894b
-
-UnknownText_0xb894b: ; 0xb894b
- ; inspiring.
- text_jump UnknownText_0x1bca33
- db "@"
-; 0xb8950
-
-UnknownText_0xb8950: ; 0xb8950
- ; friendly.
- text_jump UnknownText_0x1bca40
- db "@"
-; 0xb8955
-
-UnknownText_0xb8955: ; 0xb8955
- ; hot, hot, hot!
- text_jump UnknownText_0x1bca4c
- db "@"
-; 0xb895a
-
-UnknownText_0xb895a: ; 0xb895a
- ; stimulating.
- text_jump UnknownText_0x1bca5d
- db "@"
-; 0xb895f
-
-UnknownText_0xb895f: ; 0xb895f
- ; guarded.
- text_jump UnknownText_0x1bca6c
- db "@"
-; 0xb8964
-
-UnknownText_0xb8964: ; 0xb8964
- ; lovely.
- text_jump UnknownText_0x1bca77
- db "@"
-; 0xb8969
-
-UnknownText_0xb8969: ; 0xb8969
- ; speedy.
- text_jump UnknownText_0x1bca81
- db "@"
-; 0xb896e
-
-Functionb896e: ; b896e (2e:496e)
- callba Function91868
- ld hl, UnknownText_0xb8993
- call PrintText
- call WaitBGMap
- ld hl, UnknownText_0xb898e
- call PrintText
- ld a, $3c
- ld [wd002], a
- ld a, $64
- ld [wd004], a
- ret
-; b898e (2e:498e)
-
-UnknownText_0xb898e: ; 0xb898e
- ; #MON
- text_jump UnknownText_0x1bca8b
- db "@"
-; 0xb8993
-
-UnknownText_0xb8993: ; 0xb8993
- db "@"
-; 0xb8994
-
-Functionb8994: ; b8994 (2e:4994)
- ld hl, wd004
- dec [hl]
- ret nz
- hlcoord 9, 14
- ld de, String_b89a4
- ld a, $3d
- jp Functionb8a00
-; b89a4 (2e:49a4)
-
-String_b89a4:
- db "#MON@"
-; b89a9
-
-Functionb89a9: ; b89a9 (2e:49a9)
- ld hl, wd004
- dec [hl]
- ret nz
- hlcoord 1, 16
- ld de, String_b89b9
- ld a, $3e
- jp Functionb8a00
-; b89b9 (2e:49b9)
-
-String_b89b9:
- db "#MON Channel@"
-; b89c6
-
-Functionb89c6: ; b89c6 (2e:49c6)
- ld hl, wd004
- dec [hl]
- ret nz
- hlcoord 12, 16
- ld de, String_b89d6
- ld a, $3f
- jp Functionb8a00
-; b89d6 (2e:49d6)
-
-String_b89d6:
- db "@"
-; b89d7
-
-Functionb89d7: ; b89d7 (2e:49d7)
- ld hl, wd004
- dec [hl]
- ret nz
- ld de, $1d
- callab Function91854
- ld hl, UnknownText_0xb89ff
- call PrintText
- ld a, $d
- ld [wd003], a
- xor a
- ld [wd005], a
- ld a, $54
- ld [wd002], a
- ld a, $a
- ld [wd004], a
- ret
-; b89ff (2e:49ff)
-
-UnknownText_0xb89ff: ; 0xb89ff
- db "@"
-; 0xb8a00
-
-Functionb8a00: ; b8a00 (2e:4a00)
- ld [wd002], a
- ld a, $64
- ld [wd004], a
- jp PlaceString
-
-Functionb8a0b: ; b8a0b (2e:4a0b)
- hlcoord 0, 15
- decoord 0, 13
- ld bc, $28
- jp CopyBytes
-
-Functionb8a17: ; b8a17 (2e:4a17)
- hlcoord 1, 15
- ld bc, $12
- ld a, $7f
- call ByteFill
- hlcoord 1, 16
- ld bc, $12
- ld a, $7f
- jp ByteFill
-
-Functionb8a2d: ; b8a2d (2e:4a2d)
- push hl
- push de
- ld a, [CurPartySpecies]
- dec a
- rlca
- rlca
- and 3
- ld hl, .pokedexbanks
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-; b8a42 (2e:4a42)
-
-.pokedexbanks
- db BANK(PokedexEntries1)
- db BANK(PokedexEntries2)
- db BANK(PokedexEntries3)
- db BANK(PokedexEntries4)
-; b8a46
-
-Functionb8a46: ; b8a46 (2e:4a46)
- call Functionb91eb
-.asm_b8a49
- call Random
- cp CELEBI
- jr nc, .asm_b8a49
- ld c, a
- push bc
- ld a, c
- call CheckCaughtMon
- pop bc
- jr z, .asm_b8a49
- inc c
- ld a, c
- ld [CurPartySpecies], a
- ld [wd265], a
- call GetPokemonName
- ld hl, UnknownText_0xb8b30
- ld a, $13
- jp Functionb9221
-
-Functionb8a6c: ; b8a6c (2e:4a6c)
- ld a, [CurPartySpecies]
- dec a
- ld hl, PokedexDataPointerTable
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, BANK(PokedexDataPointerTable)
- call GetFarHalfword
- call Functionb8a2d
- push af
- push hl
- call Functionb8af3
- dec hl
- ld [hl], $57
- ld hl, wd26b
- call Functionb91dc
- pop hl
- pop af
- call Functionb8b11
- inc hl
- inc hl
- inc hl
- inc hl
- ld a, l
- ld [wd26b], a
- ld a, h
- ld [wd26c], a
- ld a, $14
- jp Functionb86ea
-
-Functionb8aa4: ; b8aa4 (2e:4aa4)
- call Functionb8ad4
- ld a, $15
- jp Functionb86ea
-
-Functionb8aac: ; b8aac (2e:4aac)
- call Functionb8ad4
- ld a, $16
- jp Functionb86ea
-
-Functionb8ab4: ; b8ab4 (2e:4ab4)
- call Functionb8ad4
- ld a, $55
- jp Functionb86ea
-
-Functionb8abc: ; b8abc (2e:4abc)
- call Functionb8ad4
- ld a, $56
- jp Functionb86ea
-
-Functionb8ac4: ; b8ac4 (2e:4ac4)
- call Functionb8ad4
- ld a, $57
- jp Functionb86ea
-
-Functionb8acc: ; b8acc (2e:4acc)
- call Functionb8ad4
- ld a, $1
- jp Functionb86ea
-
-Functionb8ad4: ; b8ad4 (2e:4ad4)
- ld a, [wd26b]
- ld l, a
- ld a, [wd26c]
- ld h, a
- ld a, [wd26d]
- push af
- push hl
- call Functionb8af3
- dec hl
- ld [hl], $57
- ld hl, wd26b
- call Functionb91dc
- pop hl
- pop af
- call Functionb8b11
- ret
-
-Functionb8af3: ; b8af3 (2e:4af3)
- ld de, wd26d
- ld bc, $13
- call FarCopyBytes
- ld hl, wd26b
- ld [hl], $0
- inc hl
- ld [hl], $4f
- inc hl
-.asm_b8b05
- ld a, [hli]
- cp $50
- ret z
- cp $4e
- ret z
- cp $5f
- ret z
- jr .asm_b8b05
-
-Functionb8b11: ; b8b11 (2e:4b11)
- ld d, a
-.asm_b8b12
- ld a, d
- call GetFarByte
- inc hl
- cp $50
- jr z, .asm_b8b23
- cp $4e
- jr z, .asm_b8b23
- cp $5f
- jr nz, .asm_b8b12
-.asm_b8b23
- ld a, l
- ld [wd26b], a
- ld a, h
- ld [wd26c], a
- ld a, d
- ld [wd26d], a
- ret
-; b8b30 (2e:4b30)
-
-UnknownText_0xb8b30: ; 0xb8b30
- ; @ @
- text_jump UnknownText_0x1bca91
- db "@"
-; 0xb8b35
-
-Functionb8b35: ; b8b35 (2e:4b35)
- call Functionb8b90
- ld hl, UnknownText_0xb8baa
- ld a, $17
- jp Functionb9221
-
-Functionb8b40: ; b8b40 (2e:4b40)
- ld hl, UnknownText_0xb8baf
- ld a, $18
- jp Functionb9221
-
-Functionb8b48: ; b8b48 (2e:4b48)
- ld hl, UnknownText_0xb8bb4
- ld a, $19
- jp Functionb9221
-
-Functionb8b50: ; b8b50 (2e:4b50)
- call Functionb8b90
- ld hl, UnknownText_0xb8bb9
- ld a, $1d
- jp Functionb9221
-
-Functionb8b5b: ; b8b5b (2e:4b5b)
- ld hl, UnknownText_0xb8bbe
- ld a, $19
- jp Functionb9221
-
-Functionb8b63: ; b8b63 (2e:4b63)
- ld hl, UnknownText_0xb8bc3
- ld a, $1a
- jp Functionb9221
-
-Functionb8b6b: ; b8b6b (2e:4b6b)
- call GetWeekday
- and 1
- ld hl, UnknownText_0xb8bc8
- jr z, .asm_b8b78
- ld hl, UnknownText_0xb8bcd
-.asm_b8b78
- ld a, $1b
- jp Functionb9221
-
-Functionb8b7d: ; b8b7d (2e:4b7d)
- call GetWeekday
- and 1
- ld hl, UnknownText_0xb8bd2
- jr z, .asm_b8b8a
- ld hl, UnknownText_0xb8bd7
-.asm_b8b8a
- ld a, $1c
- jp Functionb9221
-
-Functionb8b8f: ; b8b8f (2e:4b8f)
- ret
-
-Functionb8b90: ; b8b90 (2e:4b90)
- call Function1052
- call PrintText
- ld de, MUSIC_POKEMON_MARCH
- call GetWeekday
- and 1
- jr z, .done
- ld de, MUSIC_POKEMON_LULLABY
-.done
- callab Function91854
- ret
-; b8baa (2e:4baa)
-
-UnknownText_0xb8baa: ; 0xb8baa
- ; BEN: #MON MUSIC
- text_jump UnknownText_0x1bca99
- db "@"
-; 0xb8baf
-
-UnknownText_0xb8baf: ; 0xb8baf
- ; CHANNEL!
- text_jump UnknownText_0x1bcaab
- db "@"
-; 0xb8bb4
-
-UnknownText_0xb8bb4: ; 0xb8bb4
- ; It's me, DJ BEN!
- text_jump UnknownText_0x1bcab6
- db "@"
-; 0xb8bb9
-
-UnknownText_0xb8bb9: ; 0xb8bb9
- ; FERN: #MUSIC!
- text_jump UnknownText_0x1bcac8
- db "@"
-; 0xb8bbe
-
-UnknownText_0xb8bbe: ; 0xb8bbe
- ; With DJ FERN!
- text_jump UnknownText_0x1bcad8
- db "@"
-; 0xb8bc3
-
-UnknownText_0xb8bc3: ; 0xb8bc3
- ; Today's @ ,
- text_jump UnknownText_0x1bcae8
- db "@"
-; 0xb8bc8
-
-UnknownText_0xb8bc8: ; 0xb8bc8
- ; so let us jam to
- text_jump UnknownText_0x1bcaf6
- db "@"
-; 0xb8bcd
-
-UnknownText_0xb8bcd: ; 0xb8bcd
- ; so chill out to
- text_jump UnknownText_0x1bcb09
- db "@"
-; 0xb8bd2
-
-UnknownText_0xb8bd2: ; 0xb8bd2
- ; #MON March!
- text_jump UnknownText_0x1bcb1b
- db "@"
-; 0xb8bd7
-
-UnknownText_0xb8bd7: ; 0xb8bd7
- ; #MON Lullaby!
- text_jump UnknownText_0x1bcb29
- db "@"
-; 0xb8bdc
-
-Functionb8bdc: ; b8bdc (2e:4bdc)
- call Functionb91eb
- callab Functionc434
- jr nc, .asm_b8bed
- callab Functionc422
-.asm_b8bed
- ld hl, UnknownText_0xb8c7e
- ld a, $1e
- jp Functionb9221
-
-Functionb8bf5: ; b8bf5 (2e:4bf5)
- ld hl, UnknownText_0xb8c83
- ld a, $1f
- jp Functionb9221
-
-Functionb8bfd: ; b8bfd (2e:4bfd)
- ld hl, UnknownText_0xb8c88
- ld a, $20
- jp Functionb9221
-
-Functionb8c05: ; b8c05 (2e:4c05)
- ld hl, UnknownText_0xb8c8d
- ld a, $21
- jp Functionb9221
-
-Functionb8c0d: ; b8c0d (2e:4c0d)
- ld hl, UnknownText_0xb8c92
- ld a, $22
- jp Functionb9221
-
-Functionb8c15: ; b8c15 (2e:4c15)
- ld hl, UnknownText_0xb8c97
- ld a, $23
- jp Functionb9221
-
-Functionb8c1d: ; b8c1d (2e:4c1d)
- ld hl, UnknownText_0xb8c9c
- ld a, $24
- jp Functionb9221
-
-Functionb8c25: ; b8c25 (2e:4c25)
- ld hl, StringBuffer1
- ld de, wdc9f
- ld bc, $8205
- call PrintNum
- ld a, $50
- ld [StringBuffer1 + 5], a
- ld hl, UnknownText_0xb8ca1
- ld a, $25
- jp Functionb9221
-
-Functionb8c3e: ; b8c3e (2e:4c3e)
- ld hl, UnknownText_0xb8ca6
- ld a, $26
- jp Functionb9221
-
-Functionb8c46: ; b8c46 (2e:4c46)
- ld hl, UnknownText_0xb8c9c
- ld a, $27
- jp Functionb9221
-
-Functionb8c4e: ; b8c4e (2e:4c4e)
- ld hl, UnknownText_0xb8ca1
- ld a, $28
- jp Functionb9221
-
-Functionb8c56: ; b8c56 (2e:4c56)
- ld hl, UnknownText_0xb8cab
- ld a, $29
- jp Functionb9221
-
-Functionb8c5e: ; b8c5e (2e:4c5e)
- ld hl, UnknownText_0xb8cb0
- call Random
- and a
- ld a, $3
- jr nz, .asm_b8c6b
- ld a, $2a
-.asm_b8c6b
- jp Functionb9221
-
-Functionb8c6e: ; b8c6e (2e:4c6e)
- ld hl, UnknownText_0xb8cb5
- ld a, $2b
- jp Functionb9221
-
-Functionb8c76: ; b8c76 (2e:4c76)
- ld hl, UnknownText_0xb8cba
- ld a, $3
- jp Functionb9221
-; b8c7e (2e:4c7e)
-
-UnknownText_0xb8c7e: ; 0xb8c7e
- ; REED: Yeehaw! How
- text_jump UnknownText_0x1bcb39
- db "@"
-; 0xb8c83
-
-UnknownText_0xb8c83: ; 0xb8c83
- ; y'all doin' now?
- text_jump UnknownText_0x1bcb4d
- db "@"
-; 0xb8c88
-
-UnknownText_0xb8c88: ; 0xb8c88
- ; Whether you're up
- text_jump UnknownText_0x1bcb60
- db "@"
-; 0xb8c8d
-
-UnknownText_0xb8c8d: ; 0xb8c8d
- ; or way down low,
- text_jump UnknownText_0x1bcb73
- db "@"
-; 0xb8c92
-
-UnknownText_0xb8c92: ; 0xb8c92
- ; don't you miss the
- text_jump UnknownText_0x1bcb86
- db "@"
-; 0xb8c97
-
-UnknownText_0xb8c97: ; 0xb8c97
- ; LUCKY NUMBER SHOW!
- text_jump UnknownText_0x1bcb9a
- db "@"
-; 0xb8c9c
-
-UnknownText_0xb8c9c: ; 0xb8c9c
- ; This week's Lucky
- text_jump UnknownText_0x1bcbaf
- db "@"
-; 0xb8ca1
-
-UnknownText_0xb8ca1: ; 0xb8ca1
- ; Number is @ !
- text_jump UnknownText_0x1bcbc2
- db "@"
-; 0xb8ca6
-
-UnknownText_0xb8ca6: ; 0xb8ca6
- ; I'll repeat that!
- text_jump UnknownText_0x1bcbd6
- db "@"
-; 0xb8cab
-
-UnknownText_0xb8cab: ; 0xb8cab
- ; Match it and go to
- text_jump UnknownText_0x1bcbe9
- db "@"
-; 0xb8cb0
-
-UnknownText_0xb8cb0: ; 0xb8cb0
- ; the RADIO TOWER!
- text_jump UnknownText_0x1bcbfe
- db "@"
-; 0xb8cb5
-
-UnknownText_0xb8cb5: ; 0xb8cb5
- ; …Repeating myself
- text_jump UnknownText_0x1bcc11
- db "@"
-; 0xb8cba
-
-UnknownText_0xb8cba: ; 0xb8cba
- ; gets to be a drag…
- text_jump UnknownText_0x1bcc25
- db "@"
-; 0xb8cbf
-
-Functionb8cbf: ; b8cbf (2e:4cbf)
- call Functionb91eb
- ld hl, UnknownText_0xb8ce3
- ld a, $2c
- jp Functionb9221
-
-Functionb8cca: ; b8cca (2e:4cca)
- ld hl, UnknownText_0xb8ce8
- ld a, $2d
- jp Functionb9221
-
-Functionb8cd2: ; b8cd2 (2e:4cd2)
- ld hl, UnknownText_0xb8ced
- call Random
- cp $7b
- ld a, $2e
- jr c, .asm_b8ce0
- ld a, $30
-.asm_b8ce0
- jp Functionb9221
-; b8ce3 (2e:4ce3)
-
-UnknownText_0xb8ce3: ; 0xb8ce3
- ; PLACES AND PEOPLE!
- text_jump UnknownText_0x1bcc3a
- db "@"
-; 0xb8ce8
-
-UnknownText_0xb8ce8: ; 0xb8ce8
- ; Brought to you by
- text_jump UnknownText_0x1bcc4f
- db "@"
-; 0xb8ced
-
-UnknownText_0xb8ced: ; 0xb8ced
- ; me, DJ LILY!
- text_jump UnknownText_0x1bcc63
- db "@"
-; 0xb8cf2
-
-Functionb8cf2: ; b8cf2 (2e:4cf2)
- call Random
- and $7f
- inc a
- cp $43
- jr nc, Functionb8cf2
- push af
- ld hl, Unknown_b8d3e
- ld a, [StatusFlags]
- bit 6, a
- jr z, .asm_b8d14
- ld hl, Unknown_b8d43
- ld a, [KantoBadges]
- cp %11111111
- jr nz, .asm_b8d14
- ld hl, Unknown_b8d4b
-.asm_b8d14
- pop af
- ld c, a
- ld de, $1
- push bc
- call IsInArray
- pop bc
- jr c, Functionb8cf2
- push bc
- callab Function3952d
- ld de, StringBuffer1
- call CopyName1
- pop bc
- ld b, $1
- callab Function3994c
- ld hl, UnknownText_0xb8d51
- ld a, $2f
- jp Functionb9221
-; b8d3e (2e:4d3e)
-
-Unknown_b8d3e: db $0b, $0d, $0e, $0f, $10
-Unknown_b8d43: db $11, $12, $13, $15, $1a, $23, $2e, $40
-Unknown_b8d4b: db $09, $0a, $0c, $2a, $3f
- db $ff
-; b8d51
-
-UnknownText_0xb8d51: ; 0xb8d51
- ; @ @ @
- text_jump UnknownText_0x1bcc72
- db "@"
-; 0xb8d56
-
-Functionb8d56: ; b8d56 (2e:4d56)
- call Random
- and $f
- ld e, a
- ld d, 0
- ld hl, Unknown_b8d7d
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Random
- cp $a
- ld a, $5
- jr c, .asm_b8d7a
- call Random
- cp $7b
- ld a, $2e
- jr c, .asm_b8d7a
- ld a, $30
-.asm_b8d7a
- jp Functionb9221
-; b8d7d (2e:4d7d)
-
-Unknown_b8d7d: ; b8d7d
- dw UnknownText_0xb8d9d
- dw UnknownText_0xb8da2
- dw UnknownText_0xb8da7
- dw UnknownText_0xb8dac
- dw UnknownText_0xb8db1
- dw UnknownText_0xb8db6
- dw UnknownText_0xb8dbb
- dw UnknownText_0xb8dc0
- dw UnknownText_0xb8dc5
- dw UnknownText_0xb8dca
- dw UnknownText_0xb8dcf
- dw UnknownText_0xb8dd4
- dw UnknownText_0xb8dd9
- dw UnknownText_0xb8dde
- dw UnknownText_0xb8de3
- dw UnknownText_0xb8de8
-; b8d9d
-
-UnknownText_0xb8d9d: ; 0xb8d9d
- ; is cute.
- text_jump UnknownText_0x1bcc80
- db "@"
-; 0xb8da2
-
-UnknownText_0xb8da2: ; 0xb8da2
- ; is sort of lazy.
- text_jump UnknownText_0x1bcc8b
- db "@"
-; 0xb8da7
-
-UnknownText_0xb8da7: ; 0xb8da7
- ; is always happy.
- text_jump UnknownText_0x1bcc9e
- db "@"
-; 0xb8dac
-
-UnknownText_0xb8dac: ; 0xb8dac
- ; is quite noisy.
- text_jump UnknownText_0x1bccb1
- db "@"
-; 0xb8db1
-
-UnknownText_0xb8db1: ; 0xb8db1
- ; is precocious.
- text_jump UnknownText_0x1bccc3
- db "@"
-; 0xb8db6
-
-UnknownText_0xb8db6: ; 0xb8db6
- ; is somewhat bold.
- text_jump UnknownText_0x1bccd4
- db "@"
-; 0xb8dbb
-
-UnknownText_0xb8dbb: ; 0xb8dbb
- ; is too picky!
- text_jump UnknownText_0x1bcce8
- db "@"
-; 0xb8dc0
-
-UnknownText_0xb8dc0: ; 0xb8dc0
- ; is sort of OK.
- text_jump UnknownText_0x1bccf8
- db "@"
-; 0xb8dc5
-
-UnknownText_0xb8dc5: ; 0xb8dc5
- ; is just so-so.
- text_jump UnknownText_0x1bcd09
- db "@"
-; 0xb8dca
-
-UnknownText_0xb8dca: ; 0xb8dca
- ; is actually great.
- text_jump UnknownText_0x1bcd1a
- db "@"
-; 0xb8dcf
-
-UnknownText_0xb8dcf: ; 0xb8dcf
- ; is just my type.
- text_jump UnknownText_0x1bcd2f
- db "@"
-; 0xb8dd4
-
-UnknownText_0xb8dd4: ; 0xb8dd4
- ; is so cool, no?
- text_jump UnknownText_0x1bcd42
- db "@"
-; 0xb8dd9
-
-UnknownText_0xb8dd9: ; 0xb8dd9
- ; is inspiring!
- text_jump UnknownText_0x1bcd54
- db "@"
-; 0xb8dde
-
-UnknownText_0xb8dde: ; 0xb8dde
- ; is kind of weird.
- text_jump UnknownText_0x1bcd64
- db "@"
-; 0xb8de3
-
-UnknownText_0xb8de3: ; 0xb8de3
- ; is right for me?
- text_jump UnknownText_0x1bcd78
- db "@"
-; 0xb8de8
-
-UnknownText_0xb8de8: ; 0xb8de8
- ; is definitely odd!
- text_jump UnknownText_0x1bcd8b
- db "@"
-; 0xb8ded
-
-Functionb8ded: ; b8ded (2e:4ded)
- call Random
- cp $9
- jr nc, Functionb8ded
- ld hl, Unknown_b8e11
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld b, [hl]
- inc hl
- ld c, [hl]
- call GetWorldMapLocation
- ld e, a
- callba GetLandmarkName
- ld hl, UnknownText_0xb8e23
- ld a, $31
- jp Functionb9221
-; b8e11 (2e:4e11)
-
-Unknown_b8e11: ; b8e11
- map PALLET_TOWN
- map ROUTE_22
- map PEWTER_CITY
- map CERULEAN_POLICE_STATION
- map ROUTE_12
- map ROUTE_11
- map ROUTE_16
- map ROUTE_14
- map CINNABAR_POKECENTER_2F_BETA
-; b8e23
-
-UnknownText_0xb8e23: ; 0xb8e23
- ; @ @
- text_jump UnknownText_0x1bcda0
- db "@"
-; 0xb8e28
-
-Functionb8e28: ; b8e28 (2e:4e28)
- call Random
- and $f
- ld e, a
- ld d, 0
- ld hl, Unknown_b8e52
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Functionb91dc
- call Random
- cp $a
- ld a, $5
- jr c, .asm_b8e4f
- call Random
- cp $7b
- ld a, $2e
- jr c, .asm_b8e4f
- ld a, $30
-.asm_b8e4f
- jp Functionb86ea
-; b8e52 (2e:4e52)
-
-Unknown_b8e52: ; b8e52
- dw UnknownText_0xb8d9d
- dw UnknownText_0xb8da2
- dw UnknownText_0xb8da7
- dw UnknownText_0xb8dac
- dw UnknownText_0xb8db1
- dw UnknownText_0xb8db6
- dw UnknownText_0xb8dbb
- dw UnknownText_0xb8dc0
- dw UnknownText_0xb8dc5
- dw UnknownText_0xb8dca
- dw UnknownText_0xb8dcf
- dw UnknownText_0xb8dd4
- dw UnknownText_0xb8dd9
- dw UnknownText_0xb8dde
- dw UnknownText_0xb8de3
- dw UnknownText_0xb8de8
-; b8e72
-
-Functionb8e72: ; b8e72 (2e:4e72)
- call Functionb91eb
- ld hl, UnknownText_0xb8ec5
- ld a, $32
- jp Functionb9221
-
-Functionb8e7d: ; b8e7d (2e:4e7d)
- ld hl, UnknownText_0xb8eca
- ld a, $33
- jp Functionb9221
-
-Functionb8e85: ; b8e85 (2e:4e85)
- ld hl, UnknownText_0xb8ecf
- ld a, $34
- jp Functionb9221
-
-Functionb8e8d: ; b8e8d (2e:4e8d)
- ld hl, UnknownText_0xb8ed4
- ld a, $35
- jp Functionb9221
-
-Functionb8e95: ; b8e95 (2e:4e95)
- ld hl, UnknownText_0xb8ed9
- ld a, $36
- jp Functionb9221
-
-Functionb8e9d: ; b8e9d (2e:4e9d)
- ld hl, UnknownText_0xb8ede
- ld a, $37
- jp Functionb9221
-
-Functionb8ea5: ; b8ea5 (2e:4ea5)
- ld hl, UnknownText_0xb8ee3
- ld a, $38
- jp Functionb9221
-
-Functionb8ead: ; b8ead (2e:4ead)
- ld hl, UnknownText_0xb8ee8
- ld a, $39
- jp Functionb9221
-
-Functionb8eb5: ; b8eb5 (2e:4eb5)
- ld hl, UnknownText_0xb8eed
- ld a, $3a
- jp Functionb9221
-
-Functionb8ebd: ; b8ebd (2e:4ebd)
- ld hl, UnknownText_0xb8ef2
- ld a, $7
- jp Functionb9221
-; b8ec5 (2e:4ec5)
-
-UnknownText_0xb8ec5: ; 0xb8ec5
- ; … …Ahem, we are
- text_jump UnknownText_0x1bcda8
- db "@"
-; 0xb8eca
-
-UnknownText_0xb8eca: ; 0xb8eca
- ; TEAM ROCKET!
- text_jump UnknownText_0x1bcdba
- db "@"
-; 0xb8ecf
-
-UnknownText_0xb8ecf: ; 0xb8ecf
- ; After three years
- text_jump UnknownText_0x1bcdc9
- db "@"
-; 0xb8ed4
-
-UnknownText_0xb8ed4: ; 0xb8ed4
- ; of preparation, we
- text_jump UnknownText_0x1bcddd
- db "@"
-; 0xb8ed9
-
-UnknownText_0xb8ed9: ; 0xb8ed9
- ; have risen again
- text_jump UnknownText_0x1bcdf2
- db "@"
-; 0xb8ede
-
-UnknownText_0xb8ede: ; 0xb8ede
- ; from the ashes!
- text_jump UnknownText_0x1bce05
- db "@"
-; 0xb8ee3
-
-UnknownText_0xb8ee3: ; 0xb8ee3
- ; GIOVANNI! @ Can you
- text_jump UnknownText_0x1bce17
- db "@"
-; 0xb8ee8
-
-UnknownText_0xb8ee8: ; 0xb8ee8
- ; hear?@ We did it!
- text_jump UnknownText_0x1bce2e
- db "@"
-; 0xb8eed
-
-UnknownText_0xb8eed: ; 0xb8eed
- ; @ Where is our boss?
- text_jump UnknownText_0x1bce44
- db "@"
-; 0xb8ef2
-
-UnknownText_0xb8ef2: ; 0xb8ef2
- ; @ Is he listening?
- text_jump UnknownText_0x1bce5c
- db "@"
-; 0xb8ef7
-
-Functionb8ef7: ; b8ef7 (2e:4ef7)
- call Functionb91eb
- ld a, $1
- ld [wd005], a
- ret
-
-Functionb8f00: ; b8f00 (2e:4f00)
- call Functionb91eb
- ld a, $1
- ld [wd005], a
- ret
-
-Functionb8f09: ; b8f09 (2e:4f09)
- call Functionb91eb
- ld a, $1
- ld [wd005], a
- ret
-
-Functionb8f12: ; b8f12 (2e:4f12)
- call Functionb9169
- jp nc, Functionb8f22
- ld a, [wd005]
- and a
- jp z, Functionb912a
- jp Functionb90c5
-
-Functionb8f22: ; b8f22 (2e:4f22)
- call Functionb91eb
- ld a, [hBGMapMode] ; $ff00+$d4
- push af
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld de, String_b9171
- hlcoord 2, 9
- call PlaceString
- pop af
- ld [hBGMapMode], a ; $ff00+$d4
- ld hl, UnknownText_0xb9182
- ld a, $40
- jp Functionb9221
-
-Functionb8f3f: ; b8f3f (2e:4f3f)
- ld hl, UnknownText_0xb9187
- ld a, $41
- jp Functionb9221
-
-Functionb8f47: ; b8f47 (2e:4f47)
- call Functionb9169
- ld hl, UnknownText_0xb918c
- jp c, Functionb90b9
- ld a, $42
- jp Functionb9221
-
-Functionb8f55: ; b8f55 (2e:4f55)
- call Functionb9169
- jp c, Functionb90c5
- ld a, [wdc4a]
- ld hl, wdc1f
- bit 7, [hl]
- jr nz, .asm_b8f83
-.asm_b8f65
- call Random
- and $f
- cp $b
- jr nc, .asm_b8f65
- swap a
- ld e, a
-.asm_b8f71
- call Random
- and $3
- cp $3
- jr nc, .asm_b8f71
- add e
- ld [wdc4a], a
- ld hl, wdc1f
- set 7, [hl]
-.asm_b8f83
- ld c, a
- call Functionb8f8f
- ld hl, UnknownText_0xb9191
- ld a, $43
- jp Functionb9221
-
-Functionb8f8f: ; b8f8f
- ld a, c
- swap a
- and $f
- ld hl, Unknown_b8ff9
- ld d, 0
- ld e, a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
- ld b, a
- push hl
- inc hl
- ld a, c
- and $f
- ld c, a
- push hl
- ld hl, Jumptable_b8fb8
- ld e, b
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- call _hl_
- pop hl
- ld c, [hl]
- ret
-; b8fb8
-
-
-Jumptable_b8fb8: ; b8fb8 (2e:4fb8)
- dw Functionb8fc0
- dw Functionb8fc7
- dw Functionb8fce
- dw Functionb8fde
-
-
-Functionb8fc0: ; b8fc0 (2e:4fc0)
- call Functionb8fd5
- call GetPokemonName
- ret
-
-Functionb8fc7: ; b8fc7 (2e:4fc7)
- call Functionb8fd5
- call GetItemName
- ret
-
-Functionb8fce: ; b8fce (2e:4fce)
- call Functionb8fd5
- call GetMoveName
- ret
-
-Functionb8fd5: ; b8fd5 (2e:4fd5)
- ld h, 0
- ld l, c
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ret
-
-Functionb8fde: ; b8fde (2e:4fde)
- ld a, c
- and a
- jr z, .asm_b8feb
-.asm_b8fe2
- ld a, [de]
- inc de
- cp $50
- jr nz, .asm_b8fe2
- dec c
- jr nz, .asm_b8fe2
-.asm_b8feb
- ld hl, StringBuffer1
-.asm_b8fee
- ld a, [de]
- inc de
- ld [hli], a
- cp $50
- jr nz, .asm_b8fee
- ld de, StringBuffer1
- ret
-; b8ff9 (2e:4ff9)
-
-Unknown_b8ff9: ; b8ff9
- dw Unknown_b900f
- dw Unknown_b9014
- dw Unknown_b9019
- dw Unknown_b901e
- dw Unknown_b9023
- dw Unknown_b9028
- dw Unknown_b902d
- dw Unknown_b905a
- dw Unknown_b906d
- dw Unknown_b9072
- dw Unknown_b9077
-; b900f
-
-Unknown_b900f: db 0, 10, CYNDAQUIL, TOTODILE, CHIKORITA
-Unknown_b9014: db 1, 12, FRESH_WATER, SODA_POP, LEMONADE
-Unknown_b9019: db 1, 12, POTION, ANTIDOTE, PARLYZ_HEAL
-Unknown_b901e: db 1, 12, POKE_BALL, GREAT_BALL, ULTRA_BALL
-Unknown_b9023: db 0, 10, PIKACHU, RATTATA, GEODUDE
-Unknown_b9028: db 0, 10, HOOTHOOT, SPINARAK, DROWZEE
-Unknown_b902d: db 3, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
-Unknown_b905a: db 3, 6, "FLYING@", "BUG@", "GRASS@"
-Unknown_b906d: db 2, 12, TACKLE, GROWL, MUD_SLAP
-Unknown_b9072: db 1, 12, X_ATTACK, X_DEFEND, X_SPEED
-Unknown_b9077: db 3, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
-; b909c
-
-Functionb909c: ; b909c (2e:509c)
- ld hl, UnknownText_0xb9196
- ld a, $44
- jp Functionb9221
-
-Functionb90a4: ; b90a4 (2e:50a4)
- ld hl, UnknownText_0xb919b
- ld a, $45
- jp Functionb9221
-
-Functionb90ac: ; b90ac (2e:50ac)
- call Functionb9169
- ld hl, UnknownText_0xb91a0
- jr c, Functionb90b9
- ld a, $4
- jp Functionb9221
-
-Functionb90b9: ; b90b9 (2e:50b9)
- push hl
- ld hl, wdc1f
- res 7, [hl]
- pop hl
- ld a, $46
- jp Functionb9221
-
-Functionb90c5: ; b90c5 (2e:50c5)
- ld hl, wdc1f
- res 7, [hl]
- ld hl, UnknownText_0xb91d2
- ld a, $47
- jp Functionb9221
-
-Functionb90d2: ; b90d2 (2e:50d2)
- ld hl, UnknownText_0xb91a5
- ld a, $48
- jp Functionb9221
-
-Functionb90da: ; b90da (2e:50da)
- ld hl, UnknownText_0xb91aa
- ld a, $49
- jp Functionb9221
-
-Functionb90e2: ; b90e2 (2e:50e2)
- ld hl, UnknownText_0xb91af
- ld a, $4a
- jp Functionb9221
-
-Functionb90ea: ; b90ea (2e:50ea)
- ld hl, UnknownText_0xb91b4
- ld a, $4b
- jp Functionb9221
-
-Functionb90f2: ; b90f2 (2e:50f2)
- ld hl, UnknownText_0xb91b9
- ld a, $4c
- jp Functionb9221
-
-Functionb90fa: ; b90fa (2e:50fa)
- ld hl, UnknownText_0xb91be
- ld a, $4d
- jp Functionb9221
-
-Functionb9102: ; b9102 (2e:5102)
- ld hl, UnknownText_0xb91c3
- ld a, $4e
- jp Functionb9221
-
-Functionb910a: ; b910a (2e:510a)
- ld hl, UnknownText_0xb91c8
- ld a, $4f
- jp Functionb9221
-
-Functionb9112: ; b9112 (2e:5112)
- ld hl, UnknownText_0xb91cd
- ld a, $50
- jp Functionb9221
-
-Functionb911a: ; b911a (2e:511a)
- ld hl, UnknownText_0xb91d2
- ld a, $51
- jp Functionb9221
-
-Functionb9122: ; b9122 (2e:5122)
- ld hl, UnknownText_0xb91d2
- ld a, $52
- jp Functionb9221
-
-Functionb912a: ; b912a (2e:512a)
- ld a, [hBGMapMode] ; $ff00+$d4
- push af
- callba NoRadioMusic
- callba NoRadioName
- pop af
- ld [hBGMapMode], a ; $ff00+$d4
- ld hl, wdc1f
- res 7, [hl]
- ld a, $4
- ld [wd002], a
- xor a
- ld [wd005], a
- ld hl, UnknownText_0xb91d7
- ld a, $53
- jp Functionb9221
-
-Functionb9152: ; b9152 (2e:5152)
- ld a, $4
- ld [wd002], a
- xor a
- ld [wd005], a
- call Functionb9169
- jp nc, Functionb8f12
- ld hl, UnknownText_0xb91d7
- ld a, $53
- jp Functionb9221
-
-Functionb9169: ; b9169 (2e:5169)
- call UpdateTime
- ld a, [hHours] ; $ff00+$94
- cp $12
- ret
-; b9171 (2e:5171)
-
-String_b9171:
- db "BUENA'S PASSWORD@"
-; b9182
-
-UnknownText_0xb9182: ; 0xb9182
- ; BUENA: BUENA here!
- text_jump UnknownText_0x1bce72
- db "@"
-; 0xb9187
-
-UnknownText_0xb9187: ; 0xb9187
- ; Today's password!
- text_jump UnknownText_0x1bce87
- db "@"
-; 0xb918c
-
-UnknownText_0xb918c: ; 0xb918c
- ; Let me think… It's
- text_jump UnknownText_0x1bce9a
- db "@"
-; 0xb9191
-
-UnknownText_0xb9191: ; 0xb9191
- ; @ !
- text_jump UnknownText_0x1bceae
- db "@"
-; 0xb9196
-
-UnknownText_0xb9196: ; 0xb9196
- ; Don't forget it!
- text_jump UnknownText_0x1bceb7
- db "@"
-; 0xb919b
-
-UnknownText_0xb919b: ; 0xb919b
- ; I'm in GOLDENROD's
- text_jump UnknownText_0x1bcec9
- db "@"
-; 0xb91a0
-
-UnknownText_0xb91a0: ; 0xb91a0
- ; RADIO TOWER!
- text_jump UnknownText_0x1bcedc
- db "@"
-; 0xb91a5
-
-UnknownText_0xb91a5: ; 0xb91a5
- ; BUENA: Oh my…
- text_jump UnknownText_0x1bceeb
- db "@"
-; 0xb91aa
-
-UnknownText_0xb91aa: ; 0xb91aa
- ; It's midnight! I
- text_jump UnknownText_0x1bcefb
- db "@"
-; 0xb91af
-
-UnknownText_0xb91af: ; 0xb91af
- ; have to shut down!
- text_jump UnknownText_0x1bcf0d
- db "@"
-; 0xb91b4
-
-UnknownText_0xb91b4: ; 0xb91b4
- ; Thanks for tuning
- text_jump UnknownText_0x1bcf22
- db "@"
-; 0xb91b9
-
-UnknownText_0xb91b9: ; 0xb91b9
- ; in to the end! But
- text_jump UnknownText_0x1bcf36
- db "@"
-; 0xb91be
-
-UnknownText_0xb91be: ; 0xb91be
- ; don't stay up too
- text_jump UnknownText_0x1bcf4b
- db "@"
-; 0xb91c3
-
-UnknownText_0xb91c3: ; 0xb91c3
- ; late! Presented to
- text_jump UnknownText_0x1bcf5e
- db "@"
-; 0xb91c8
-
-UnknownText_0xb91c8: ; 0xb91c8
- ; you by DJ BUENA!
- text_jump UnknownText_0x1bcf73
- db "@"
-; 0xb91cd
-
-UnknownText_0xb91cd: ; 0xb91cd
- ; I'm outta here!
- text_jump UnknownText_0x1bcf86
- db "@"
-; 0xb91d2
-
-UnknownText_0xb91d2: ; 0xb91d2
- ; …
- text_jump UnknownText_0x1bcf96
- db "@"
-; 0xb91d7
-
-UnknownText_0xb91d7: ; 0xb91d7
- ;
- text_jump UnknownText_0x1bcf99
- db "@"
-; 0xb91dc
-
-Functionb91dc: ; b91dc (2e:51dc)
- ld a, [hl]
- cp $16 ; TX_FAR
- jp z, Function3a90
- ld de, wd00c
- ld bc, $28
- jp CopyBytes
-
-Functionb91eb: ; b91eb (2e:51eb)
- ld a, [wd005]
- and a
- ret nz
- call Function1052
- call PrintText
- ld hl, RadioChannelSongs
- ld a, [wd002]
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- callab Function91854
- ret
-; b920b (2e:520b)
-
-RadioChannelSongs: ; b920b
- dw MUSIC_POKEMON_TALK
- dw MUSIC_POKEMON_CENTER
- dw MUSIC_TITLE
- dw MUSIC_GAME_CORNER
- dw MUSIC_BUENAS_PASSWORD
- dw MUSIC_VIRIDIAN_CITY
- dw MUSIC_BICYCLE
- dw MUSIC_ROCKET_OVERTURE
- dw MUSIC_POKE_FLUTE_CHANNEL
- dw MUSIC_RUINS_OF_ALPH_RADIO
- dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
-; b9221
-
-Functionb9221: ; b9221 (2e:5221)
- push af
- call Functionb91dc
- pop af
- jp Functionb86ea
+INCLUDE "engine/radio.asm"
Functionb9229: ; b9229
ld a, [CurPartyMon]
@@ -78733,8 +76869,9 @@ Functionb92b8: ; b92b8
cp $ff
jr z, .asm_b92e6
inc c
+rept 2
inc hl
- inc hl
+endr
jr .asm_b92d9
.asm_b92e6
@@ -78882,7 +77019,7 @@ Functionb93d2: ; b93d2
ld c, $8
call Functionb9915
ld a, $31
- ld hl, TileMap
+ hlcoord 0, 0
call Functionb98a8
hlcoord 1, 17
call Functionb98a8
@@ -79071,7 +77208,7 @@ Functionb9582: ; b9582
ld c, $8
call Functionb990c
ld a, $31
- ld hl, TileMap
+ hlcoord 0, 0
call Functionb98dc
hlcoord 0, 1
call Functionb98e3
@@ -79233,7 +77370,7 @@ Functionb9710: ; b9710
ld c, $8
call Functionb990c
ld a, $31
- ld hl, TileMap
+ hlcoord 0, 0
call Functionb98a8
hlcoord 1, 17
call Functionb98a8
@@ -79373,7 +77510,7 @@ Functionb984e: ; b984e
; b9858
Functionb9858: ; b9858
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $31
ld [hli], a
inc a
@@ -79395,7 +77532,7 @@ Functionb9858: ; b9858
; b987b
Functionb987b: ; b987b
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $31
ld [hli], a
inc a
@@ -79452,7 +77589,7 @@ Functionb98ba: ; b98ba
Functionb98bd: ; b98bd
ld [hl], a
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
inc a
ld [hl], a
@@ -79493,7 +77630,7 @@ Functionb98de: ; b98de
Functionb98e3: ; b98e3
ld b, $10
- ld de, $0014
+ ld de, SCREEN_WIDTH
.asm_b98e8
ld [hl], a
add hl, de
@@ -79523,7 +77660,7 @@ Functionb98fc: ; b98fc
ld [hli], a
inc a
ld [hl], a
- ld bc, $0012
+ ld bc, SCREEN_HEIGHT
add hl, bc
inc a
ld [hli], a
@@ -79562,8 +77699,9 @@ Functionb991e: ; b991e
.asm_b991e
ld a, [de]
inc de
+rept 2
ld [hli], a
- ld [hli], a
+endr
dec c
jr nz, .asm_b991e
ret
@@ -80007,8 +78145,9 @@ Functione0000: ; e0000
call Functione0057
ld hl, Unknown_e008b
pop bc
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld e, a
ld d, [hl]
@@ -80109,7 +78248,7 @@ Functione00ed: ; e00ed (38:40ed)
ret
; e00ee (38:40ee)
-Functione00ee: ; e00ee (38:40ee)
+_CardFlip: ; e00ee (38:40ee)
ld hl, Options
set 4, [hl]
call WhiteBGMap
@@ -80155,13 +78294,13 @@ Functione00ee: ; e00ee (38:40ee)
ld [wcf65], a
ld de, MUSIC_GAME_CORNER
call PlayMusic
-.asm_e0170
+.MasterLoop
ld a, [wcf63]
bit 7, a
- jr nz, .asm_e017c
- call Functione0191
- jr .asm_e0170
-.asm_e017c
+ jr nz, .leavethegame
+ call .CardFlip
+ jr .MasterLoop
+.leavethegame
call WaitSFX
ld de, SFX_QUIT_SLOTS
call PlaySFX
@@ -80171,75 +78310,76 @@ Functione00ee: ; e00ee (38:40ee)
res 4, [hl]
ret
-Functione0191: ; e0191 (38:4191)
+.CardFlip: ; e0191 (38:4191)
ld a, [wcf63]
ld e, a
ld d, 0
- ld hl, Jumptable_e01a0
- add hl, de
+ ld hl, .Jumptable
+rept 2
add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; e01a0 (38:41a0)
-Jumptable_e01a0: ; e01a0
- dw Functione01b5
- dw Functione01d2
- dw Functione0217
- dw Functione02b7
- dw Functione02da
- dw Functione0314
- dw Functione031e
- dw Functione0360
+.Jumptable: ; e01a0
+ dw .AskPlayWithThree
+ dw .DeductCoins
+ dw .ChooseACard
+ dw .PlaceYourBet
+ dw .CheckTheCard
+ dw .TabulateTheResult
+ dw .PlayAgain
+ dw .Quit
; e01b0
-Functione01b0: ; e01b0
+.Increment: ; e01b0
ld hl, wcf63
inc [hl]
ret
; e01b5
-Functione01b5: ; e01b5
- ld hl, UnknownText_0xe01cd
+.AskPlayWithThree: ; e01b5
+ ld hl, .PlayWithThreeCoinsText
call Functione0489
call YesNoBox
- jr c, .asm_e01c7
+ jr c, .SaidNo
call Functione0366
- call Functione01b0
+ call .Increment
ret
-.asm_e01c7
+.SaidNo
ld a, $7
ld [wcf63], a
ret
; e01cd
-UnknownText_0xe01cd: ; 0xe01cd
+.PlayWithThreeCoinsText: ; 0xe01cd
; Play with three coins?
text_jump UnknownText_0x1c5793
db "@"
; 0xe01d2
-Functione01d2: ; e01d2
+.DeductCoins: ; e01d2
ld a, [Coins]
ld h, a
ld a, [Coins + 1]
ld l, a
ld a, h
and a
- jr nz, .asm_e01ef
+ jr nz, .deduct ; You have at least 256 coins.
ld a, l
cp 3
- jr nc, .asm_e01ef
- ld hl, UnknownText_0xe0212
+ jr nc, .deduct ; You have at least 3 coins.
+ ld hl, .NotEnoughCoinsText
call Functione0489
ld a, $7
ld [wcf63], a
ret
-.asm_e01ef
+.deduct
ld de, -3
add hl, de
ld a, h
@@ -80254,24 +78394,24 @@ Functione01d2: ; e01d2
ld a, $1
ld [hBGMapMode], a
call WaitSFX
- call Functione01b0
+ call .Increment
ret
; e0212
-UnknownText_0xe0212: ; 0xe0212
+.NotEnoughCoinsText: ; 0xe0212
; Not enough coins…
text_jump UnknownText_0x1c57ab
db "@"
; 0xe0217
-Functione0217: ; e0217
+.ChooseACard: ; e0217
xor a
ld [hBGMapMode], a
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $0c09
call Functione04e5
hlcoord 9, 0
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld a, [wc6e8]
call AddNTimes
ld [hl], $f5
@@ -80288,15 +78428,15 @@ Functione0217: ; e0217
hlcoord 2, 6
call Functione03c1
call WaitBGMap
- ld hl, UnknownText_0xe02b2
+ ld hl, .ChooseACardText
call Functione0489
xor a
ld [wcf66], a
-.asm_e025c
+.loop
call Functiona57
ld a, [$ffa9]
and $1
- jr nz, .asm_e027c
+ jr nz, .next
ld de, SFX_KINESIS
call PlaySFX
call Functione0849
@@ -80306,13 +78446,13 @@ Functione0217: ; e0217
ld a, [hl]
xor $1
ld [hl], a
- jr .asm_e025c
+ jr .loop
-.asm_e027c
+.next
ld de, SFX_SLOT_MACHINE_START
call PlaySFX
ld a, $3
-.asm_e0284
+.loop2
push af
call Functione0849
ld c, $4
@@ -80322,7 +78462,7 @@ Functione0217: ; e0217
call DelayFrames
pop af
dec a
- jr nz, .asm_e0284
+ jr nz, .loop2
ld hl, wcf66
ld a, [hl]
push af
@@ -80333,41 +78473,41 @@ Functione0217: ; e0217
call Functione04e5
pop af
ld [wcf66], a
- call Functione01b0
+ call .Increment
ret
; e02b2
-UnknownText_0xe02b2: ; 0xe02b2
+.ChooseACardText: ; 0xe02b2
; Choose a card.
text_jump UnknownText_0x1c57be
db "@"
; 0xe02b7
-Functione02b7: ; e02b7
- ld hl, UnknownText_0xe02d5
+.PlaceYourBet: ; e02b7
+ ld hl, .PlaceYourBetText
call Functione0489
-.asm_e02bd
+.betloop
call Functiona57
ld a, [$ffa9]
and $1
- jr nz, .asm_e02d1
+ jr nz, .betdone
call Functione089c
call Functione0960
call DelayFrame
- jr .asm_e02bd
+ jr .betloop
-.asm_e02d1
- call Functione01b0
+.betdone
+ call .Increment
ret
; e02d5
-UnknownText_0xe02d5: ; 0xe02d5
+.PlaceYourBetText: ; 0xe02d5
; Place your bet.
text_jump UnknownText_0x1c57ce
db "@"
; 0xe02da
-Functione02da: ; e02da
+.CheckTheCard: ; e02da
xor a
ld [$ff9b], a
call Functione0960
@@ -80379,8 +78519,9 @@ Functione02da: ; e02da
ld e, a
ld d, $0
ld hl, wc6d0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [wcf66]
ld e, a
add hl, de
@@ -80393,62 +78534,62 @@ Functione02da: ; e02da
call Functione03ac
call Functione03ec
call Function3200
- call Functione01b0
+ call .Increment
ret
; e0314
-Functione0314: ; e0314
+.TabulateTheResult: ; e0314
call Functione0637
call Functiona80
- call Functione01b0
+ call .Increment
ret
; e031e
-Functione031e: ; e031e
+.PlayAgain: ; e031e
call ClearSprites
- ld hl, UnknownText_0xe0356
+ ld hl, .PlayAgainText
call Functione0489
call YesNoBox
- jr nc, .asm_e0330
- call Functione01b0
+ jr nc, .Continue
+ call .Increment
ret
-.asm_e0330
+.Continue
ld a, [wc6e8]
inc a
ld [wc6e8], a
cp $c
- jr c, .asm_e034d
+ jr c, .KeepTheCurrentDeck
call Functione04c1
ld a, $1
ld [hBGMapMode], a
call Functione0366
- ld hl, UnknownText_0xe035b
+ ld hl, .CardsShuffledText
call PrintText
- jr .asm_e0350
+ jr .LoopAround
-.asm_e034d
+.KeepTheCurrentDeck
call Functione0534
-.asm_e0350
+.LoopAround
ld a, $1
ld [wcf63], a
ret
; e0356
-UnknownText_0xe0356: ; 0xe0356
+.PlayAgainText: ; 0xe0356
; Want to play again?
text_jump UnknownText_0x1c57df
db "@"
; 0xe035b
-UnknownText_0xe035b: ; 0xe035b
+.CardsShuffledText: ; 0xe035b
; The cards have been shuffled.
text_jump UnknownText_0x1c57f4
db "@"
; 0xe0360
-Functione0360: ; e0360
+.Quit: ; e0360
ld hl, wcf63
set 7, [hl]
ret
@@ -80541,8 +78682,9 @@ Functione03ec: ; e03ec
ld e, a
ld d, 0
ld hl, Unknown_e0459
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld e, a
ld d, [hl]
@@ -80550,10 +78692,10 @@ Functione03ec: ; e03ec
ld bc, $0017
add hl, bc
ld [hl], e
- ld bc, $0012
+ ld bc, SCREEN_HEIGHT
add hl, bc
ld a, d
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld b, $3
.asm_e0418
push hl
@@ -80633,7 +78775,7 @@ String_e04bc:
Functione04c1: ; e04c1 (38:44c1)
xor a
ld [hBGMapMode], a ; $ff00+$d4
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $29
call ByteFill
@@ -80759,20 +78901,22 @@ Functione055f: ; e055f
and a
jr nz, .asm_e0575
hlcoord 13, 3
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $36
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $37
ret
.asm_e0575
hlcoord 13, 3
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $36
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3d
ret
@@ -80785,20 +78929,22 @@ Functione0583: ; e0583
and a
jr nz, .asm_e0599
hlcoord 13, 4
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $3b
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3a
ret
.asm_e0599
hlcoord 13, 4
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $3d
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3a
ret
@@ -80811,20 +78957,22 @@ Functione05a7: ; e05a7
and a
jr nz, .asm_e05bd
hlcoord 13, 6
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $36
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $38
ret
.asm_e05bd
hlcoord 13, 6
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $36
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3d
ret
@@ -80837,20 +78985,22 @@ Functione05cb: ; e05cb
and a
jr nz, .asm_e05e1
hlcoord 13, 7
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $3c
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3a
ret
.asm_e05e1
hlcoord 13, 7
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $3d
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3a
ret
@@ -80863,20 +79013,22 @@ Functione05ef: ; e05ef
and a
jr nz, .asm_e0605
hlcoord 13, 9
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $36
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $39
ret
.asm_e0605
hlcoord 13, 9
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $36
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3d
ret
@@ -80889,20 +79041,22 @@ Functione0613: ; e0613
and a
jr nz, .asm_e0629
hlcoord 13, 10
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $3c
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3a
ret
.asm_e0629
hlcoord 13, 10
+rept 2
add hl, bc
- add hl, bc
+endr
ld [hl], $3d
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hl], $3a
ret
@@ -81355,8 +79509,9 @@ Functione08b8: ; e08b8
ld [hl], a
cp $3
jr c, .asm_e08e2
+rept 2
dec [hl]
- dec [hl]
+endr
jp Functione0959
.asm_e08e2
@@ -81384,8 +79539,9 @@ Functione08ef: ; e08ef
ld [hl], a
cp $4
ret nc
+rept 2
inc [hl]
- inc [hl]
+endr
jr Functione0959
Functione090a: ; e090a
@@ -81414,8 +79570,9 @@ Functione090a: ; e090a
ld [hl], a
cp $3
jr c, .asm_e0931
+rept 2
dec [hl]
- dec [hl]
+endr
jr Functione0959
.asm_e0931
@@ -81443,8 +79600,9 @@ Functione093d: ; e093d
ld [hl], a
cp $6
ret nc
+rept 2
inc [hl]
- inc [hl]
+endr
Functione0959: ; e0959
ld de, SFX_POKEBALLS_PLACED_ON_TABLE
@@ -81463,8 +79621,9 @@ Functione0960: ; e0960
.asm_e096d
call Functione0398
+rept 2
add hl, hl
- add hl, hl
+endr
ld de, Unknown_e0981
add hl, de
ld a, [hli]
@@ -81683,7 +79842,7 @@ Functione0c37: ; e0c37 (38:4c37)
ld a, [hCGB] ; $ff00+$e6
and a
ret z
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $168
xor a
call ByteFill
@@ -81820,8 +79979,8 @@ Functione1190: ; e1190
ld de, $8ed0
call Decompress
call Functione17a3
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $ee
call ByteFill
hlcoord 4, 3
@@ -81965,8 +80124,9 @@ Functione12ca: ; e12ca
ld e, a
ld d, 0
ld hl, Jumptable_e12d9
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -82146,7 +80306,7 @@ Functione13e4: ; e13e4
; e13ee
Functione13ee: ; e13ee
- ld de, $0014
+ ld de, SCREEN_WIDTH
.asm_e13f1
push bc
push hl
@@ -82196,7 +80356,7 @@ Functione141f: ; e141f
push hl
call Functione1481
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld b, $3
.asm_e1431
ld c, $3
@@ -82225,7 +80385,7 @@ Functione1441: ; e1441
call Functione1463
ld a, [hl]
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld b, $3
.asm_e1456
ld c, $3
@@ -82248,12 +80408,12 @@ Functione1463: ; e1463
add hl, de
ld a, [wcf65]
ld e, a
+rept 4
add hl, de
+endr
+rept 2
add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
+endr
ret
; e1475
@@ -82554,10 +80714,9 @@ Functione16c7: ; e16c7
ld l, a
call Functione16e2
pop hl
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
pop af
dec a
jr nz, .asm_e16cc
@@ -82613,8 +80772,9 @@ Functione17a3: ; e17a3
ld e, a
ld d, 0
ld hl, Unknown_e17bd
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -82649,7 +80809,7 @@ INCBIN "gfx/unknown/0e1bab.2bpp.lz"
LZ_e1c9b: ; e1c9b
INCBIN "gfx/unknown/0e1c9b.2bpp.lz"
-Functione1e5b: ; e1e5b (38:5e5b)
+_DummyGame: ; e1e5b (38:5e5b)
call Functione1e67
call DelayFrame
.asm_e1e61
@@ -82674,7 +80834,7 @@ Functione1e67: ; e1e67 (38:5e67)
ld hl, wc300
ld [hli], a
ld [hl], $0
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
xor a
call ByteFill
@@ -82711,8 +80871,9 @@ Functione1ed2: ; e1ed2 (38:5ed2)
ld e, a
ld d, 0
ld hl, Jumptable_e1ee1
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -82752,10 +80913,9 @@ Functione1efb: ; e1efb
xor a
ld [wc708], a
ld hl, wc703
+rept 4
ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
ld [wc709], a
@@ -82948,8 +81108,9 @@ Functione2010: ; e2010
ld [wc6fd], a
ld hl, wc709
ld e, [hl]
+rept 2
inc [hl]
- inc [hl]
+endr
ld d, $0
hlcoord 5, 0
add hl, de
@@ -82982,9 +81143,9 @@ Functione2084: ; e2084
call Functione2128
ld hl, UnknownText_0xe2093
pop bc
+rept 3
inc bc
- inc bc
- inc bc
+endr
ret
; e2093
@@ -83070,9 +81231,9 @@ Functione2101: ; e2101
dec a
ld l, a
ld h, 0
+rept 3
add hl, hl
- add hl, hl
- add hl, hl
+endr
ld de, Unknown_e2110
add hl, de
ret
@@ -83093,7 +81254,7 @@ Functione2128: ; e2128
inc a
ld [hld], a
inc a
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hli], a
inc a
@@ -83107,7 +81268,7 @@ Functione2142: ; e2142
ld a, $1
ld [hli], a
ld [hld], a
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
ld [hli], a
ld [hl], a
@@ -83117,11 +81278,11 @@ Functione2142: ; e2142
; e2152
Functione2152: ; e2152
- ld hl, TileMap
- ld bc, $0168
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $1
call ByteFill
- ld hl, TileMap
+ hlcoord 0, 0
ld de, String_e2177
call PlaceString
hlcoord 15, 0
@@ -83389,10 +81550,10 @@ Functione245d: ; e245d (38:645d)
Functione247d: ; e247d (38:647d)
ld hl, BillsPCDepositMenuDataHeader
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [wcfa9]
call Function1d4b
- call Function1d81
+ call InterpretMenu2
jp c, BillsPCDepositFuncCancel
ld a, [wcfa9]
dec a
@@ -83400,8 +81561,9 @@ Functione247d: ; e247d (38:647d)
ld e, a
ld d, 0
ld hl, BillsPCDepositJumptable
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -83433,7 +81595,7 @@ BillsPCDepositFuncDeposit: ; e24a9 (38:64a9)
BillsPCDepositFuncStats: ; e24c8 (38:64c8)
call Function1d6e
call Functione2f7e
- call Function1c07
+ call ExitMenu
call PCMonInfo
call Functione2def
ld [CurPartySpecies], a
@@ -83455,7 +81617,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0)
call PlaceYesNoBox
ld a, [wcfa9]
dec a
- call Function1c07
+ call ExitMenu
and a
jr nz, .asm_e252c
ld a, [wcb2b]
@@ -83504,7 +81666,7 @@ BillsPCDepositMenuData: ; 0xe2545 (38:6545)
; 0xe2564 (38:6564)
Functione2564: ; e2564
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $4
ld c, $8
call ClearBox
@@ -83653,10 +81815,10 @@ Functione2655: ; e2655 (38:6655)
Functione2675: ; e2675 (38:6675)
ld hl, BillsPCWithdrawMenuDataHeader
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [wcfa9]
call Function1d4b
- call Function1d81
+ call InterpretMenu2
jp c, BillsPCWithdrawFuncCancel
ld a, [wcfa9]
dec a
@@ -83664,8 +81826,9 @@ Functione2675: ; e2675 (38:6675)
ld e, a
ld d, 0
ld hl, BillsPCWithdrawJumptable
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -83697,7 +81860,7 @@ BillsPCWithdrawFuncWithdraw: ; e26a1 (38:66a1)
BillsPCWithdrawFuncStats: ; e26c0 (38:66c0)
call Function1d6e
call Functione2f7e
- call Function1c07
+ call ExitMenu
call PCMonInfo
call Functione2def
ld [CurPartySpecies], a
@@ -83717,7 +81880,7 @@ BillsPCWithdrawFuncRelease: ; e26d8 (38:66d8)
call PlaceYesNoBox
ld a, [wcfa9]
dec a
- call Function1c07
+ call ExitMenu
and a
jr nz, .asm_e2720
ld a, [wcb2b]
@@ -83914,10 +82077,10 @@ Functione283d: ; e283d
Functione285d: ; e285d
ld hl, MenuDataHeader_0xe28c3
- call Function1d3c
+ call CopyMenuDataHeader
ld a, [wcfa9]
call Function1d4b
- call Function1d81
+ call InterpretMenu2
jp c, Functione28bd
ld a, [wcfa9]
dec a
@@ -83925,8 +82088,9 @@ Functione285d: ; e285d
ld e, a
ld d, 0
ld hl, Jumptable_e2881
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -83956,7 +82120,7 @@ Functione2887: ; e2887
Functione28a5: ; e28a5
call Function1d6e
call Functione2f7e
- call Function1c07
+ call ExitMenu
call PCMonInfo
call Functione2def
ld [CurPartySpecies], a
@@ -84413,9 +82577,9 @@ Functione2b6d: ; e2b6d (38:6b6d)
ld e, a
ld d, $0
ld hl, wc801
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ld a, [hl]
and a
jr z, .asm_e2bc6
@@ -84522,9 +82686,9 @@ Functione2c2c: ; e2c2c (38:6c2c)
ld e, a
ld d, 0
ld hl, OverworldMap
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ld e, l
ld d, h
hlcoord 9, 4
@@ -84538,9 +82702,9 @@ Functione2c2c: ; e2c2c (38:6c2c)
ld de, $28
add hl, de
pop de
+rept 3
inc de
- inc de
- inc de
+endr
pop af
dec a
jr nz, .asm_e2c53
@@ -84779,9 +82943,9 @@ Functione2def: ; e2def (38:6def)
ld e, a
ld d, $0
ld hl, OverworldMap
+rept 3
add hl, de
- add hl, de
- add hl, de
+endr
ld a, [hl]
ret
@@ -84894,7 +83058,7 @@ Functione2ed5: ; e2ed5
dec c
jr nz, .asm_e2ed7
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
@@ -85120,7 +83284,7 @@ Functione307c: ; e307c (38:707c)
callba Functione039
ld a, [CurPartySpecies]
call PlayCry
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $f08
call ClearBox
hlcoord 8, 14
@@ -85174,7 +83338,7 @@ Functione30fa: ; e30fa (38:70fa)
callba Functione039
ld a, [CurPartySpecies]
call PlayCry
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $f08
call ClearBox
hlcoord 8, 14
@@ -85209,7 +83373,7 @@ Functione30fa: ; e30fa (38:70fa)
ret
Functione3180: ; e3180 (38:7180)
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $f08
call ClearBox
hlcoord 8, 14
@@ -85288,8 +83452,9 @@ Functione31e7: ; e31e7
.asm_e321d
ld hl, Jumptable_e3245
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -85491,9 +83656,9 @@ Functione3396: ; e3396 (38:7396)
ld c, b
ld b, 0
ld hl, Unknown_e33a6
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld b, a
ld a, [hli]
@@ -85532,8 +83697,9 @@ Functione33d0: ; e33d0 (38:73d0)
Functione33df: ; e33df (38:73df)
ld e, a
ld d, $0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -85591,7 +83757,7 @@ Functione35aa: ; e35aa (38:75aa)
call Functione36cf
call Functione379c
ld hl, MenuDataHeader_0xe35f1
- call Function1d3c
+ call CopyMenuDataHeader
xor a
ld [wd0e4], a
hlcoord 0, 4
@@ -85605,13 +83771,13 @@ Functione35aa: ; e35aa (38:75aa)
call Functione36f9
jr .asm_e35b0
.asm_e35de
- call Function1c17
+ call WriteBackup
ret
Functione35e2: ; e35e2 (38:75e2)
xor a
ld [hBGMapMode], a ; $ff00+$d4
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
ld a, $7f
call ByteFill
@@ -85703,9 +83869,9 @@ Functione366c: ; e366c (38:766c)
ld c, a
ld b, 0
ld hl, Unknown_e36a5
+rept 3
add hl, bc
- add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld b, a
call GetSRAMBank
@@ -85752,7 +83918,7 @@ Unknown_e36a5: ; e36a5
; e36cf
Functione36cf: ; e36cf (38:76cf)
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $2
ld c, $12
call TextBox
@@ -85774,8 +83940,8 @@ String_e36f1: ; e36f1
Functione36f9: ; e36f9 (38:76f9)
ld hl, MenuDataHeader_0xe377b
call LoadMenuDataHeader
- call Function1d81
- call Function1c07
+ call InterpretMenu2
+ call ExitMenu
ret c
ld a, [wcfa9]
cp $1
@@ -85916,7 +84082,7 @@ _OptionsMenu: ; e41d0
push af
ld [hl], $1
call WhiteBGMap
- ld hl, TileMap
+ hlcoord 0, 0
ld b, $10
ld c, $12
call TextBox
@@ -85926,7 +84092,7 @@ _OptionsMenu: ; e41d0
xor a
ld [wcf63], a
ld c, $6 ;number of items on the menu minus 1 (for cancel)
-.asm_e41f3 ;this loop will display the settings of each option when the menu is opened
+.asm_e41f3 ;this next will display the settings of each option when the menu is opened
push bc
xor a
ld [$ffa9], a
@@ -85994,8 +84160,9 @@ GetOptionPointer: ; e42d6
ld e, a ;copy it to de
ld d, 0
ld hl, .Pointers
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -86051,8 +84218,9 @@ Options_TextSpeed: ; e42f5
.NonePressed
ld b, 0
ld hl, .Strings
+rept 2
add hl, bc
- add hl, bc
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -86270,8 +84438,9 @@ Options_Print: ; e4424
.NonePressed
ld b, $0
ld hl, .Strings
+rept 2
add hl, bc
- add hl, bc
+endr
ld e, [hl]
inc hl
ld d, [hl]
@@ -86475,7 +84644,7 @@ OptionsControl: ; e452a
Functione455c: ; e455c
hlcoord 1, 1
- ld de, $0014
+ ld de, SCREEN_WIDTH
ld c, $10
.asm_e4564
ld [hl], $7f
@@ -86607,8 +84776,9 @@ Functione4670: ; e4670
ld e, a
ld d, 0
ld hl, Jumptable_e467f
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -86705,8 +84875,9 @@ Functione46ed: ; e46ed (39:46ed)
ld e, [hl]
ld d, 0
ld hl, Jumptable_e46fd
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -86802,8 +84973,9 @@ Functione4776: ; e4776 (39:4776)
ld e, a
ld d, $0
ld hl, Unknown_e47ac
+rept 2
add hl, de
- add hl, de
+endr
ld a, [rSVBK] ; $ff00+$70
push af
ld a, $5
@@ -86848,7 +85020,7 @@ Unknown_e47ac: ; e47ac
RGB 26, 19, 02
RGB 26, 19, 00
;' e47cc
-
+
GameFreakLogo: ; e47cc
INCBIN "gfx/splash/logo.1bpp"
; e48ac
@@ -86917,8 +85089,9 @@ Functione490f: ; e490f
ld e, a
ld d, 0
ld hl, IntroScenes
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -87287,7 +85460,7 @@ IntroScene9: ; e4c04 (39:4c04)
xor a
ld [hLCDStatCustom], a ; $ff00+$c6
call ClearSprites
- ld hl, AttrMap
+ hlcoord 0, 0, AttrMap
ld bc, $f0
ld a, $1
call ByteFill
@@ -87445,8 +85618,9 @@ Functione4d36: ; e4d36 (39:4d36)
ret z
cp c
jr z, .asm_e4d48
+rept 2
inc hl
- inc hl
+endr
jr .asm_e4d3d
.asm_e4d48
ld a, [hli]
@@ -88115,15 +86289,16 @@ Functione51dc: ; e51dc (39:51dc)
ret
Functione5223: ; e5223 (39:5223)
+rept 3
add a
- add a
- add a
+endr
ld e, a
ld d, $0
ld hl, BGPals
add hl, de
+rept 2
inc hl
- inc hl
+endr
ld a, [wcf65]
and $3f
cp $1f
@@ -88149,8 +86324,9 @@ Functione5223: ; e5223 (39:5223)
pop hl
push hl
ld hl, Unknown_e5288
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -88161,8 +86337,9 @@ Functione5223: ; e5223 (39:5223)
ld [hli], a
push hl
ld hl, Unknown_e52c8
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -88173,8 +86350,9 @@ Functione5223: ; e5223 (39:5223)
ld [hli], a
push hl
ld hl, Unknown_e5308
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld d, [hl]
ld e, a
@@ -88227,9 +86405,9 @@ Functione5348: ; e5348 (39:5348)
.asm_e5353
ld a, [wcf65]
and $7
+rept 3
add a
- add a
- add a
+endr
ld c, a
ld a, [rSVBK] ; $ff00+$70
push af
@@ -88277,17 +86455,16 @@ Palette_e5395: ; e5395
; e539d
Functione539d: ; e539d (39:539d)
+rept 3
add a
- add a
- add a
+endr
ld e, a
ld d, $0
ld hl, BGPals
add hl, de
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
ld a, [wcf65]
add a
ld c, a
@@ -88349,7 +86526,7 @@ Functione541b: ; e541b (39:541b)
ld a, $6
ld [rSVBK], a ; $ff00+$70
ld hl, Unkn1Pals
- ld de, TileMap
+ decoord 0, 0
ld b, $12
.asm_e542a
ld c, $14
@@ -88384,7 +86561,7 @@ Functione5441: ; e5441 (39:5441)
ret
Functione5451: ; e5451 (39:5451)
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $168
.asm_e5457
ld a, [hl]
@@ -88535,8 +86712,9 @@ Functione552f: ; e552f (39:552f)
.asm_e5548
ld hl, LYOverrides + $5f
ld a, [hl]
+rept 2
inc a
- inc a
+endr
ld bc, $31
call ByteFill
ld a, [LYOverrides + 0]
@@ -89276,8 +87454,9 @@ Functionfb57e: ; fb57e
ld [CurSpecies], a
call GetBaseData
ld hl, wcbea
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [BaseType1]
cp [hl]
jr nz, .asm_fb5db
@@ -89368,7 +87547,7 @@ Functionfb634: ; fb634
pop de
inc de
pop hl
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
inc c
@@ -89575,7 +87754,7 @@ Functionfb877: ; fb877
call LowVolume
call WhiteBGMap
call ClearTileMap
- call Function1ad2
+ call DrawOnMap
call ClearSprites
ld a, [wPokedexStatus]
push af
@@ -89593,7 +87772,7 @@ Functionfb877: ; fb877
pop af
ld [wPokedexStatus], a
call MaxVolume
- call Function4b6
+ call FadeToWhite
ld a, [hSCX]
add $fb
ld [hSCX], a
@@ -89620,18 +87799,19 @@ Functionfb8c8: ; fb8c8
ret
; fb8f1
-Functionfb8f1: ; fb8f1
+ConvertMon_2to1: ; fb8f1
+; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
push bc
push hl
ld a, [wd265]
ld b, a
ld c, 0
- ld hl, Unknown_fb91c
-.asm_fb8fc
+ ld hl, Pokered_MonIndices
+.loop
inc c
ld a, [hli]
cp b
- jr nz, .asm_fb8fc
+ jr nz, .loop
ld a, c
ld [wd265], a
pop hl
@@ -89639,12 +87819,13 @@ Functionfb8f1: ; fb8f1
ret
; fb908
-Functionfb908: ; fb908
+ConvertMon_1to2: ; fb908
+; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
push bc
push hl
ld a, [wd265]
dec a
- ld hl, Unknown_fb91c
+ ld hl, Pokered_MonIndices
ld b, 0
ld c, a
add hl, bc
@@ -89655,7 +87836,7 @@ Functionfb908: ; fb908
ret
; fb91c
-Unknown_fb91c: ; fb91c
+Pokered_MonIndices: ; fb91c
db RHYDON
db KANGASKHAN
db NIDORAN_M
@@ -89947,8 +88128,9 @@ Functionfba2e: ; fba2e (3e:7a2e)
ld e, a
ld d, 0
ld hl, UnownWords
+rept 2
add hl, de
- add hl, de
+endr
ld a, [hli]
ld e, a
ld d, [hl]
@@ -89992,51 +88174,61 @@ UnownWords: ; fba5a
dw UnownWord26
; fba90
-UnownWord1: db $40, $4d, $46, $51, $58, $ff ; ANGRY
-UnownWord2: db $41, $44, $40, $51, $ff ; BEAR
-UnownWord3: db $42, $47, $40, $52, $44, $ff ; CHASE
-UnownWord4: db $43, $48, $51, $44, $42, $53, $ff ; DIRECT
-UnownWord5: db $44, $4d, $46, $40, $46, $44, $ff ; ENGAGE
-UnownWord6: db $45, $48, $4d, $43, $ff ; FIND
-UnownWord7: db $46, $48, $55, $44, $ff ; GIVE
-UnownWord8: db $47, $44, $4b, $4f, $ff ; HELP
-UnownWord9: db $48, $4d, $42, $51, $44, $40, $52, $44, $ff ; INCREASE
-UnownWord10: db $49, $4e, $48, $4d, $ff ; JOIN
-UnownWord11: db $4a, $44, $44, $4f, $ff ; KEEP
-UnownWord12: db $4b, $40, $54, $46, $47, $ff ; LAUGH
-UnownWord13: db $4c, $40, $4a, $44, $ff ; MAKE
-UnownWord14: db $4d, $54, $59, $59, $4b, $44, $ff ; NUZZLE
-UnownWord15: db $4e, $41, $52, $44, $51, $55, $44, $ff ; OBSERVE
-UnownWord16: db $4f, $44, $51, $45, $4e, $51, $4c, $ff ; PERFORM
-UnownWord17: db $50, $54, $48, $42, $4a, $44, $4d, $ff ; QUICKEN
-UnownWord18: db $51, $44, $40, $52, $52, $54, $51, $44, $ff ; REASSURE
-UnownWord19: db $52, $44, $40, $51, $42, $47, $ff ; SEARCH
-UnownWord20: db $53, $44, $4b, $4b, $ff ; TELL
-UnownWord21: db $54, $4d, $43, $4e, $ff ; UNDO
-UnownWord22: db $55, $40, $4d, $48, $52, $47, $ff ; VANISH
-UnownWord23: db $56, $40, $4d, $53, $ff ; WANT
-UnownWord24: db $57, $57, $57, $57, $57, $ff ; XXXXX
-UnownWord25: db $58, $48, $44, $4b, $43, $ff ; YIELD
-UnownWord26: db $59, $4e, $4e, $4c, $ff ; ZOOM
+unownword: macro
+x = 1
+ rept STRLEN(\1)
+ db STRSUB(\1, x, 1) - $40
+x = x + 1
+ endr
+ db -1
+endm
+
+
+UnownWord1: unownword "ANGRY"
+UnownWord2: unownword "BEAR"
+UnownWord3: unownword "CHASE"
+UnownWord4: unownword "DIRECT"
+UnownWord5: unownword "ENGAGE"
+UnownWord6: unownword "FIND"
+UnownWord7: unownword "GIVE"
+UnownWord8: unownword "HELP"
+UnownWord9: unownword "INCREASE"
+UnownWord10: unownword "JOIN"
+UnownWord11: unownword "KEEP"
+UnownWord12: unownword "LAUGH"
+UnownWord13: unownword "MAKE"
+UnownWord14: unownword "NUZZLE"
+UnownWord15: unownword "OBSERVE"
+UnownWord16: unownword "PERFORM"
+UnownWord17: unownword "QUICKEN"
+UnownWord18: unownword "REASSURE"
+UnownWord19: unownword "SEARCH"
+UnownWord20: unownword "TELL"
+UnownWord21: unownword "UNDO"
+UnownWord22: unownword "VANISH"
+UnownWord23: unownword "WANT"
+UnownWord24: unownword "XXXXX"
+UnownWord25: unownword "YIELD"
+UnownWord26: unownword "ZOOM"
; fbb32
-Functionfbb32: ; fbb32
- callba Function50000
- jr c, .asm_fbb9e
+Special_CheckMagikarpLength: ; fbb32
+ callba SelectMonFromParty
+ jr c, .declined
ld a, [CurPartySpecies]
cp MAGIKARP
- jr nz, .asm_fbba4
+ jr nz, .not_magikarp
ld a, [CurPartyMon]
ld hl, PartyMon1Species
ld bc, PartyMon2 - PartyMon1
call AddNTimes
push hl
- ld bc, $0015
+ ld bc, MON_DVS
add hl, bc
ld d, h
ld e, l
pop hl
- ld bc, $0006
+ ld bc, MON_ID
add hl, bc
ld b, h
ld c, l
@@ -90049,7 +88241,7 @@ Functionfbb32: ; fbb32
ld de, wdfe8
ld c, $2
call StringCmp
- jr nc, .asm_fbb98
+ jr nc, .not_long_enough
ld hl, Buffer1
ld de, wdfe8
ld a, [hli]
@@ -90066,17 +88258,17 @@ Functionfbb32: ; fbb32
ld [ScriptVar], a
ret
-.asm_fbb98
+.not_long_enough
ld a, $2
ld [ScriptVar], a
ret
-.asm_fbb9e
+.declined
ld a, $1
ld [ScriptVar], a
ret
-.asm_fbba4
+.not_magikarp
xor a
ld [ScriptVar], a
ret
@@ -90119,7 +88311,7 @@ Functionfbbdb: ; fbbdb
INCLUDE "battle/magikarp_length.asm"
-Functionfbcd2: ; fbcd2
+Special_MagikarpHouseSign: ; fbcd2
ld a, [wdfe8]
ld [Buffer1], a
ld a, [wdfe9]
@@ -90212,8 +88404,9 @@ DoWeatherModifiers: ; fbda4
jr z, .ApplyModifier
.NextWeatherType
+rept 2
inc de
- inc de
+endr
jr .CheckWeatherType
@@ -90238,8 +88431,9 @@ DoWeatherModifiers: ; fbda4
jr z, .ApplyModifier
.NextWeatherMove
+rept 2
inc de
- inc de
+endr
jr .CheckWeatherMove
.ApplyModifier
@@ -90710,8 +88904,9 @@ GetTradeAttribute: ; 0xfcdc2
ld e, a
ld d, 0
ld hl, NPCTrades
+rept 2
add hl, de
- add hl, de
+endr
pop de
add hl, de
ret
@@ -90799,10 +88994,10 @@ GetTradeMonNames: ; fce1b
call Functionfcdf4
ld hl, StringBuffer1
-.next
+.loop
ld a, [hli]
cp "@"
- jr nz, .next
+ jr nz, .loop
dec hl
push hl
@@ -90844,8 +89039,9 @@ PrintTradeText: ; fcf38
call AddNTimes
ld a, [wcf64]
ld c, a
+rept 2
add hl, bc
- add hl, bc
+endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -91025,12 +89221,12 @@ Functionfcfec:: ; fcfec
ld a, [wd45c]
and a
ret nz
- call Function2d05
+ call GetMapHeaderPhoneServiceNybble
and a
ret nz
xor a
ld [wdc18], a
- call Functionfd044
+ call CheckBalance_MomItem2
ret nc
call Functionfd0c3
ret nc
@@ -91047,23 +89243,23 @@ UnknownScript_0xfd00f: ; 0xfd00f
; 0xfd017
Functionfd017: ; fd017
- call Functionfd0a6
+ call MomBuysItem_DeductFunds
call Functionfd0eb
ld a, [wdc18]
and a
- jr nz, .asm_fd027
+ jr nz, .ok
ld hl, wdc17
inc [hl]
-.asm_fd027
- ld a, $1
+.ok
+ ld a, 1
ld [wdbf9], a
ld bc, wd03f
- ld hl, $0
+ ld hl, 0
add hl, bc
- ld [hl], $0
+ ld [hl], 0
inc hl
- ld [hl], $1
- ld hl, $9
+ ld [hl], 1
+ ld hl, 9
add hl, bc
ld a, $3f
ld [hli], a
@@ -91074,50 +89270,50 @@ Functionfd017: ; fd017
ret
; fd044
-Functionfd044: ; fd044
+CheckBalance_MomItem2: ; fd044
ld a, [wdc17]
- cp $a
- jr nc, .asm_fd065
- call Functionfd117
+ cp 10
+ jr nc, .nope
+ call GetItemFromMom
ld a, [hli]
- ld [$ffc3], a
+ ld [hMoneyTemp], a
ld a, [hli]
ld [$ffc4], a
ld a, [hli]
ld [$ffc5], a
ld de, wd851
- ld bc, $ffc3
- callba Function1600b
- jr nc, .asm_fd067
+ ld bc, hMoneyTemp
+ callba CheckMoney
+ jr nc, .have_enough_money
-.asm_fd065
- jr .asm_fd069
+.nope
+ jr .check_have_2300
-.asm_fd067
+.have_enough_money
scf
ret
-.asm_fd069
- ld hl, $ffc3
- ld [hl], $0
+.check_have_2300
+ ld hl, hMoneyTemp
+ ld [hl], (2300 / $10000) ; $00
inc hl
- ld [hl], $8
+ ld [hl], ((2300 % $10000) / $100) ; $08
inc hl
- ld [hl], $fc
-.asm_fd074
+ ld [hl], (2300 % $100) ; $fc
+.loop
ld de, wdc19
ld bc, wd851
- callba Function1600b
- jr z, .asm_fd08b
- jr nc, .asm_fd089
+ callba CheckMoney
+ jr z, .exact
+ jr nc, .less_than
call Functionfd099
- jr .asm_fd074
+ jr .loop
-.asm_fd089
+.less_than
xor a
ret
-.asm_fd08b
+.exact
call Functionfd099
ld a, 5
call RandomRange
@@ -91129,43 +89325,43 @@ Functionfd044: ; fd044
Functionfd099: ; fd099
ld de, wdc19
- ld bc, $ffc3
+ ld bc, hMoneyTemp
callba Function16053
ret
; fd0a6
-Functionfd0a6: ; fd0a6 (3f:50a6)
- call Functionfd117
- ld de, $3
+MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
+ call GetItemFromMom
+ ld de, 3
add hl, de
ld a, [hli]
- ld [$ffc3], a
+ ld [hMoneyTemp], a
ld a, [hli]
ld [$ffc4], a
ld a, [hli]
ld [$ffc5], a
ld de, wd851
- ld bc, $ffc3
- callba Function15ffa
+ ld bc, hMoneyTemp
+ callba TakeMoney
ret
Functionfd0c3: ; fd0c3
- call Functionfd117
- ld de, $0006
+ call GetItemFromMom
+ ld de, 6
add hl, de
ld a, [hli]
- cp $1
- jr z, .asm_fd0db
+ cp 1
+ jr z, .not_doll
ld a, [hl]
ld c, a
- ld b, $1
- callba Function26ef1
+ ld b, 1
+ callba DecorationFlagAction_c
scf
ret
-.asm_fd0db
+.not_doll
ld a, [hl]
ld [CurItem], a
ld a, $1
@@ -91177,115 +89373,123 @@ Functionfd0c3: ; fd0c3
Functionfd0eb: ; fd0eb (3f:50eb)
- call Functionfd117
- ld de, $6
+ call GetItemFromMom
+ ld de, 6 ; field
add hl, de
ld a, [hli]
- ld de, UnknownScript_0xfd0fd
- cp $1
+ ld de, Script_MomBoughtItem
+ cp 1
ret z
- ld de, UnknownScript_0xfd10a
+ ld de, Script_MomBoughtDoll
ret
; fd0fd (3f:50fd)
-UnknownScript_0xfd0fd: ; 0xfd0fd
- writetext UnknownText_0xfd1b1
- writetext UnknownText_0xfd1b6
- writetext UnknownText_0xfd1bb
- writetext UnknownText_0xfd1c0
+Script_MomBoughtItem: ; 0xfd0fd
+ writetext _MomText_HiHowAreYou
+ writetext _MomText_FoundAnItem
+ writetext _MomText_BoughtWithYourMoney
+ writetext _MomText_ItsInPC
end
; 0xfd10a
-UnknownScript_0xfd10a: ; 0xfd10a
- writetext UnknownText_0xfd1b1
- writetext UnknownText_0xfd1c5
- writetext UnknownText_0xfd1bb
- writetext UnknownText_0xfd1ca
+Script_MomBoughtDoll: ; 0xfd10a
+ writetext _MomText_HiHowAreYou
+ writetext _MomText_FoundADoll
+ writetext _MomText_BoughtWithYourMoney
+ writetext _MomText_ItsInRoom
end
; 0xfd117
-Functionfd117: ; fd117
+GetItemFromMom: ; fd117
ld a, [wdc18]
and a
- jr z, .asm_fd123
+ jr z, .zero
dec a
- ld de, Unknown_fd136
- jr .asm_fd12e
+ ld de, MomItems_1
+ jr .incave
-.asm_fd123
+.zero
ld a, [wdc17]
- cp $a
- jr c, .asm_fd12b
+ cp 10 ; length of MomItems_2
+ jr c, .ok
xor a
-.asm_fd12b
- ld de, Unknown_fd15e
+.ok
+ ld de, MomItems_2
-.asm_fd12e
+.incave
ld l, a
ld h, 0
+rept 3 ; multiply hl by 8
add hl, hl
- add hl, hl
- add hl, hl
+endr
add hl, de
ret
; fd136
-Unknown_fd136: ; fd136
- db $00, $00, $00, $00, $02, $58, $01, SUPER_POTION
- db $00, $00, $00, $00, $00, $5a, $01, ANTIDOTE
- db $00, $00, $00, $00, $00, $b4, $01, POKE_BALL
- db $00, $00, $00, $00, $01, $c2, $01, ESCAPE_ROPE
- db $00, $00, $00, $00, $01, $f4, $01, GREAT_BALL
+momitem: macro
+; money to trigger, cost, kind, item
+ dt \1
+ dt \2
+ db \3, \4
+ENDM
+
+
+MomItems_1: ; fd136
+ momitem 0, 600, MOM_ITEM, SUPER_POTION
+ momitem 0, 90, MOM_ITEM, ANTIDOTE
+ momitem 0, 180, MOM_ITEM, POKE_BALL
+ momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
+ momitem 0, 500, MOM_ITEM, GREAT_BALL
; fd15e
-Unknown_fd15e: ; fd15e
- db $00, $03, $84, $00, $02, $58, $01, SUPER_POTION
- db $00, $0f, $a0, $00, $01, $0e, $01, REPEL
- db $00, $1b, $58, $00, $02, $58, $01, SUPER_POTION
- db $00, $27, $10, $00, $07, $08, $02, $23 ; CHARMANDER_DOLL
- db $00, $3a, $98, $00, $0b, $b8, $01, MOON_STONE
- db $00, $4a, $38, $00, $02, $58, $01, SUPER_POTION
- db $00, $75, $30, $00, $12, $c0, $02, $20 ; CLEFAIRY_DOLL
- db $00, $9c, $40, $00, $03, $84, $01, HYPER_POTION
- db $00, $c3, $50, $00, $1f, $40, $02, $1e ; PIKACHU_DOLL
- db $01, $86, $a0, $00, $59, $10, $02, $1a ; SNORLAX_DOLL
+MomItems_2: ; fd15e
+ momitem 900, 600, MOM_ITEM, SUPER_POTION
+ momitem 4000, 270, MOM_ITEM, REPEL
+ momitem 7000, 600, MOM_ITEM, SUPER_POTION
+ momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
+ momitem 15000, 3000, MOM_ITEM, MOON_STONE
+ momitem 19000, 600, MOM_ITEM, SUPER_POTION
+ momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
+ momitem 40000, 900, MOM_ITEM, HYPER_POTION
+ momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
+ momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
; fd1ae
db 0, 0, 0 ; XXX
-UnknownText_0xfd1b1: ; 0xfd1b1
+_MomText_HiHowAreYou: ; 0xfd1b1
; Hi, ! How are you?
text_jump UnknownText_0x1bc615
db "@"
; 0xfd1b6
-UnknownText_0xfd1b6: ; 0xfd1b6
+_MomText_FoundAnItem: ; 0xfd1b6
; I found a useful item shopping, so
text_jump UnknownText_0x1bc62a
db "@"
; 0xfd1bb
-UnknownText_0xfd1bb: ; 0xfd1bb
+_MomText_BoughtWithYourMoney: ; 0xfd1bb
; I bought it with your money. Sorry!
text_jump UnknownText_0x1bc64e
db "@"
; 0xfd1c0
-UnknownText_0xfd1c0: ; 0xfd1c0
+_MomText_ItsInPC: ; 0xfd1c0
; It's in your PC. You'll like it!
text_jump UnknownText_0x1bc673
db "@"
; 0xfd1c5
-UnknownText_0xfd1c5: ; 0xfd1c5
+_MomText_FoundADoll: ; 0xfd1c5
; While shopping today, I saw this adorable doll, so
text_jump UnknownText_0x1bc693
db "@"
; 0xfd1ca
-UnknownText_0xfd1ca: ; 0xfd1ca
+_MomText_ItsInRoom: ; 0xfd1ca
; It's in your room. You'll love it!
text_jump UnknownText_0x1bc6c7
db "@"
@@ -91311,10 +89515,10 @@ Function104000:: ; 104000
; 104006
Function104006: ; 104006
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld hl, w6_d000 + $400
call Function104263
- ld de, TileMap
+ decoord 0, 0
ld hl, w6_d000
call Function10425f
ld a, $0
@@ -91334,7 +89538,7 @@ Function10402d:: ; 10402d
; 104033
Function104033: ; 104033
- ld de, TileMap
+ decoord 0, 0
ld hl, w6_d000
call Function10425f
ld a, $0
@@ -91350,7 +89554,7 @@ Function104047: ; 104047
; 10404d
Function10404d: ; 10404d
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld hl, $d400
call Function104263
ld a, $1
@@ -91366,10 +89570,10 @@ Function104061:: ; 104061
; 104067
Function104067: ; 104067
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld hl, $d400
call Function104263
- ld de, TileMap
+ decoord 0, 0
ld hl, w6_d000
call Function10425f
call DelayFrame
@@ -91396,10 +89600,10 @@ Function104099: ; 104099
; 1040a2
Function1040a2: ; 1040a2
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld hl, $d400
call Function104263
- ld de, TileMap
+ decoord 0, 0
ld hl, w6_d000
call Function10425f
call DelayFrame
@@ -91466,10 +89670,10 @@ Function104110:: ; 104110
; 104116
Function104116: ; 104116
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld hl, $d400
call Function104263
- ld de, TileMap
+ decoord 0, 0
ld hl, w6_d000
call Function10425f
call DelayFrame
@@ -91496,11 +89700,11 @@ Function104148: ; 104148 (41:4148)
; 10414e (41:414e)
Function10414e: ; 10414e
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld hl, $d400
call Function104263
ld c, $ff
- ld de, TileMap
+ decoord 0, 0
ld hl, w6_d000
call Function104265
ld a, $1
@@ -91736,10 +89940,9 @@ Function104284:: ; 104284
ld a, b
ld l, c
ld h, $0
+rept 4
add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
+endr
ld b, h
ld c, l
ld h, d
@@ -91796,9 +89999,9 @@ Function1042d6: ; 1042d6
ld a, b
ld l, c
ld h, $0
+rept 3
add hl, hl
- add hl, hl
- add hl, hl
+endr
ld c, l
ld b, h
ld h, d
@@ -91826,10 +90029,10 @@ Function104303: ; 104303
Function104309:
ld hl, w6_d000
- ld de, TileMap
+ decoord 0, 0
call Function10433a
ld hl, w6_d000 + $80
- ld de, AttrMap
+ decoord 0, 0, AttrMap
call Function10433a
ld a, $1
ld [rVBK], a ; $ff00+$4f
@@ -91877,20 +90080,20 @@ FishEmote: INCBIN "gfx/emotes/fish.2bpp"
FishingRodGFX: INCBIN "gfx/misc/fishing.2bpp"
-Function1045b0: ; 1045b0
- call Function210f
- call Function2e50
- call Function2e5d
+RunCallback_05_03: ; 1045b0
+ call Clearwc7e8
+ call ResetMapBufferEventFlags
+ call ResetFlashIfOutOfCave
call GetCurrentMapTrigger
- call Function2e56
+ call ResetBikeFlags
ld a, $5
- call Function263b
+ call RunMapCallback
-Function1045c4: ; 1045c4
+RunCallback_03: ; 1045c4
callba Function97df9
ld a, $3
- call Function263b
- call Function2cff
+ call RunMapCallback
+ call GetMapHeaderTimeOfDayNybble
ld [wc2d0], a
ret
@@ -92042,7 +90245,7 @@ EnteredConnection: ; 1046c4
ret
; 1046c6
-Function1046c6: ; 1046c6
+LoadWarpData: ; 1046c6
call Function1046df
call Function104718
ld a, [wd146]
@@ -92110,7 +90313,7 @@ Function104718: ; 104718 (41:4718)
ld [wdcb3], a
ret
-Function104750: ; 104750
+LoadMapTimeOfDay: ; 104750
ld hl, VramState
res 6, [hl]
ld a, $1
@@ -92147,12 +90350,12 @@ Function104770: ; 104770 (41:4770)
ret
Function1047a3: ; 1047a3 (41:47a3)
- ld de, TileMap
+ decoord 0, 0
call Function1047b4
ld a, [hCGB] ; $ff00+$e6
and a
ret z
- ld de, AttrMap
+ decoord 0, 0, AttrMap
ld a, $1
ld [rVBK], a ; $ff00+$4f
@@ -92177,7 +90380,7 @@ Function1047b4: ; 1047b4 (41:47b4)
ld [rVBK], a ; $ff00+$4f
ret
-Function1047cf: ; 1047cf
+LoadGraphics: ; 1047cf
call LoadTilesetHeader
call Function2821
xor a
@@ -92189,14 +90392,14 @@ Function1047cf: ; 1047cf
callba Function106594
ret
-Function1047eb: ; 1047eb
+LoadMapPalettes: ; 1047eb
ld b, $9
jp GetSGBLayout
; 1047f0
-Function1047f0: ; 1047f0
+RefreshMapSprites: ; 1047f0
call ClearSprites
- callba Functionb8000
+ callba ReturnFromMapSetupScript
call Function2914
callba Function579d
callba Function154f7
@@ -92212,60 +90415,60 @@ Function1047f0: ; 1047f0
ld [wd45b], a
ret
-Function104820:: ; 104820 (41:4820)
+CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
ld a, [wd151]
- cp $ff
+ cp STANDING
ret z
and a
- jr z, .asm_104837
- cp $1
- jr z, .asm_104846
- cp $2
- jr z, .asm_104851
- cp $3
- jr z, .asm_10485c
+ jr z, .down
+ cp UP
+ jr z, .up
+ cp LEFT
+ jr z, .left
+ cp RIGHT
+ jr z, .right
and a
ret
-.asm_104837
+.down
ld a, [MapY]
- sub $4
+ sub 4
ld b, a
ld a, [MapHeight]
add a
cp b
- jr z, .asm_10486b
+ jr z, .ok
and a
ret
-.asm_104846
+.up
ld a, [MapY]
- sub $4
- cp $ff
- jr z, .asm_10486b
+ sub 4
+ cp -1
+ jr z, .ok
and a
ret
-.asm_104851
+.left
ld a, [MapX]
sub $4
- cp $ff
- jr z, .asm_10486b
+ cp -1
+ jr z, .ok
and a
ret
-.asm_10485c
+.right
ld a, [MapX]
- sub $4
+ sub 4
ld b, a
ld a, [MapWidth]
add a
cp b
- jr z, .asm_10486b
+ jr z, .ok
and a
ret
-.asm_10486b
+.ok
scf
ret
-Function10486d:: ; 10486d
+GetCoordOfUpperLeftCorner:: ; 10486d
ld hl, OverworldMap
ld a, [XCoord]
bit 0, a
@@ -92313,7 +90516,7 @@ Function10486d:: ; 10486d
; 1048ba
-Function1048ba: ; 1048ba (41:48ba)
+DoMysteryGift: ; 1048ba (41:48ba)
call ClearTileMap
call ClearSprites
call WaitBGMap
@@ -92389,7 +90592,7 @@ Function1048ba: ; 1048ba (41:48ba)
call Function105069
pop bc
jr nz, .asm_104990
- callab Function26ef5
+ callab GetDecorationName_c
ld h, d
ld l, e
ld de, StringBuffer1
@@ -92417,7 +90620,7 @@ Function1049af: ; 1049af (41:49af)
Function1049b4: ; 1049b4 (41:49b4)
ld hl, UnknownText_0x104a02
call PrintText
- jp Function1048ba
+ jp DoMysteryGift
Function1049bd: ; 1049bd (41:49bd)
ld hl, UnknownText_0x104a07
@@ -92523,8 +90726,9 @@ Function104a56: ; 104a56 (41:4a56)
ld hl, $abe6
ld e, a
ld d, $0
+rept 2
add hl, de
- add hl, de
+endr
ld a, [wc901]
ld [hli], a
ld a, [wc902]
@@ -93372,30 +91576,28 @@ Function105033: ; 105033 (41:5033)
Function105038: ; 105038 (41:5038)
ld a, $20
ld [rJOYP], a ; $ff00+$0
+rept 2
ld a, [rJOYP] ; $ff00+$0
- ld a, [rJOYP] ; $ff00+$0
+endr
cpl
and $f
swap a
ld b, a
ld a, $10
ld [rJOYP], a ; $ff00+$0
+rept 6
ld a, [rJOYP] ; $ff00+$0
- ld a, [rJOYP] ; $ff00+$0
- ld a, [rJOYP] ; $ff00+$0
- ld a, [rJOYP] ; $ff00+$0
- ld a, [rJOYP] ; $ff00+$0
- ld a, [rJOYP] ; $ff00+$0
+endr
cpl
and $f
or b
ld c, a
- ld a, [$ffc3]
+ ld a, [hMoneyTemp]
xor c
and c
ld [$ffc4], a
ld a, c
- ld [$ffc3], a
+ ld [hMoneyTemp], a
ld a, $30
ld [rJOYP], a ; $ff00+$0
ret
@@ -93436,7 +91638,7 @@ Function105091: ; 105091 (41:5091)
pop bc
jr z, .asm_1050b0
push bc
- callab Function26f02
+ callab SetSpecificDecorationFlag
pop bc
.asm_1050b0
inc c
@@ -93445,16 +91647,16 @@ Function105091: ; 105091 (41:5091)
jr c, .asm_105096
jp CloseSRAM
-Function1050b9: ; 1050b9
+Special_UnlockMysteryGift: ; 1050b9
call Function105106
ld hl, $abe3
ld a, [hl]
inc a
- jr nz, .asm_1050c5
+ jr nz, .ok
ld [hld], a
ld [hl], a
-.asm_1050c5
+.ok
jp CloseSRAM
; 1050c8
@@ -93565,14 +91767,14 @@ Function105153: ; 105153 (41:5153)
ld a, BANK(MysteryGiftGFX)
ld bc, $430
call FarCopyBytes
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $42
ld bc, $168
call ByteFill
hlcoord 3, 7
ld bc, $90f
call ClearBox
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $0
ld [hli], a
inc a
@@ -93746,20 +91948,18 @@ Function1056eb: ; 1056eb (41:56eb)
ld b, $8
.asm_1056f2
dec [hl]
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
dec b
jr nz, .asm_1056f2
ld hl, Sprites + $20
ld b, $8
.asm_1056ff
inc [hl]
+rept 4
inc hl
- inc hl
- inc hl
- inc hl
+endr
dec b
jr nz, .asm_1056ff
dec c
@@ -93870,14 +92070,14 @@ Function1057d7: ; 1057d7 (41:57d7)
ld a, BANK(MysteryGiftJP_GFX)
ld bc, $80
call FarCopyBytes
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $3f
ld bc, $168
call ByteFill
hlcoord 3, 7
ld bc, $90f
call ClearBox
- ld hl, TileMap
+ hlcoord 0, 0
ld a, $0
ld [hli], a
inc a
@@ -94037,38 +92237,38 @@ UsedMoveText: ; 105db9
ld a, [hBattleTurn]
and a
jr nz, .start
-
+
ld a, [wPlayerMoveStruct + MOVE_ANIM]
call UpdateUsedMoves
-
+
.start
ld a, BATTLE_VARS_LAST_MOVE
call GetBattleVarAddr
ld d, h
ld e, l
-
+
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
-
+
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld [wd265], a
-
+
push hl
callba Function34548
pop hl
jr nz, .grammar
-
+
; update last move
ld a, [wd265]
ld [hl], a
ld [de], a
-
+
.grammar
call GetMoveGrammar
; wd265 now contains MoveGrammar
-
-
+
+
; everything except 'instead' made redundant in localization
; check obedience
@@ -94076,7 +92276,7 @@ UsedMoveText: ; 105db9
and a
ld hl, UsedMove2Text
ret nz
-
+
; check move grammar
ld a, [wd265]
cp $3
@@ -94125,20 +92325,20 @@ MoveNameText: ; 105e23
GetUsedMoveTextEnder: ; 105e28
; get start address
ld hl, .endusedmovetexts
-
+
; get move id
ld a, [wd265]
-
+
; 2-byte pointer
add a
-
+
; seek
push bc
ld b, $0
ld c, a
add hl, bc
pop bc
-
+
; get pointer to usedmovetext ender
ld a, [hli]
ld h, [hl]
@@ -94184,7 +92384,7 @@ GetMoveGrammar: ; 105e5c
ld a, [wd265]
ld c, a
ld b, $0
-
+
; read grammar table
ld hl, MoveGrammar
.loop
@@ -94201,12 +92401,12 @@ GetMoveGrammar: ; 105e5c
; next grammar type
inc b
jr .loop
-
+
.end
; wd265 now contains move grammar
ld a, b
ld [wd265], a
-
+
; we're done
pop bc
ret
@@ -94247,7 +92447,7 @@ MoveGrammar: ; 105e7a
db PSYCH_UP
db EXTREMESPEED
db 0 ; end set
-
+
; 1
db RECOVER
db TELEPORT
@@ -94256,7 +92456,7 @@ MoveGrammar: ; 105e7a
db AMNESIA
db FLAIL
db 0 ; end set
-
+
; 2
db MEDITATE
db AGILITY
@@ -94267,7 +92467,7 @@ MoveGrammar: ; 105e7a
db STRUGGLE
db SCARY_FACE
db 0 ; end set
-
+
; 3
db POUND
db SCRATCH
@@ -94308,7 +92508,7 @@ MoveGrammar: ; 105e7a
db ATTRACT
db ROCK_SMASH
db 0 ; end set
-
+
; all other moves = 4
db $ff ; end
; 105ed0
@@ -94322,9 +92522,9 @@ UpdateUsedMoves: ; 105ed0
ld hl, PlayerUsedMoves
; get move id
ld b, a
-; loop count
+; next count
ld c, NUM_MOVES
-
+
.loop
; get move from the list
ld a, [hli]
@@ -94337,7 +92537,7 @@ UpdateUsedMoves: ; 105ed0
; next byte
dec c
jr nz, .loop
-
+
; if the list is full and the move hasn't already been used
; shift the list back one byte, deleting the first move used
; this can occur with struggle or a new learned move
@@ -94357,13 +92557,13 @@ UpdateUsedMoves: ; 105ed0
ld a, b
ld [PlayerUsedMoves + 3], a
jr .quit
-
+
.add
; go back to the byte we just inced from
dec hl
; add the new move
ld [hl], b
-
+
.quit
; list updated
pop bc
@@ -94555,9 +92755,9 @@ Function105fe3: mobile ; 105fe3
inc [hl]
jr nz, .asm_106001
ld a, $ff
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
.asm_106001
@@ -94585,9 +92785,9 @@ Function106008: mobile ; 106008
inc [hl]
jr nz, .asm_106027
ld a, $ff
+rept 3
ld [hli], a
- ld [hli], a
- ld [hli], a
+endr
ld [hl], a
.asm_106027
@@ -94660,7 +92860,7 @@ Function10609b: mobile ; 10609b
ld hl, $a036
jp Function10611d
-Function1060a2: mobile ; 1060a2
+Mobile_HealParty: mobile ; 1060a2
ld hl, $a039
jp Function10611d
@@ -94972,19 +93172,19 @@ Function1061ef:: ; 1061ef
ld de, ._9
.asm_106256
+rept 3
inc de
- inc de
- inc de
- dec a
+endr
+rept 2
dec a
+endr
.asm_10625b
push af
call Function1062b2
call Function1062ff
+rept 4
inc de
- inc de
- inc de
- inc de
+endr
pop af
dec a
jr nz, .asm_10625b
@@ -95055,9 +93255,9 @@ Function1062b2: ; 1062b2
sbc b
ld [hMathBuffer], a
ld a, [de]
+rept 3
inc de
- inc de
- inc de
+endr
ld b, a
ld a, [hProduct]
sbc b
@@ -95564,7 +93764,7 @@ INCBIN "gfx/misc/unown_font.2bpp"
; 1dc1b0
Function1dc1b0: ; 1dc1b0
- ld hl, TileMap
+ hlcoord 0, 0
ld de, wca90
ld bc, $0154
call CopyBytes
@@ -95603,7 +93803,7 @@ Function1dc1b0: ; 1dc1b0
call nz, FarString
ld hl, wcaa3
ld [hl], $35
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
ld b, $f
.asm_1dc20a
@@ -95632,11 +93832,11 @@ Function1dc213: ; 1dc213
ld [hl], $38
inc hl
ld a, $39
- ld bc, $0012
+ ld bc, SCREEN_HEIGHT
call ByteFill
ld [hl], $3a
ld hl, wcb1c
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld a, $32
call ByteFill
ld a, [wd265]
@@ -95656,7 +93856,7 @@ Function1dc213: ; 1dc213
Function1dc26a: ; 1dc26a
push de
- ld de, $0014
+ ld de, SCREEN_WIDTH
.asm_1dc26e
ld [hl], a
add hl, de
@@ -95788,7 +93988,7 @@ Function1dc381: ; 1dc381
inc [hl]
.asm_1dc469
- ld hl, TileMap
+ hlcoord 0, 0
call Function378b
call WaitBGMap
ld b, $3
@@ -95807,12 +94007,12 @@ Function1dc47b: ; 1dc47b
xor a
ld [MonType], a
callba Function5084a
- ld hl, TileMap
+ hlcoord 0, 0
ld b, 15
ld c, 18
call TextBox
ld bc, SCREEN_WIDTH
- ld de, TileMap
+ decoord 0, 0
hlcoord 0, 1
call CopyBytes
hlcoord 7, 0
@@ -96044,7 +94244,7 @@ Function1de171: ; 1de171 (77:6171)
ld bc, $f0b
call ClearBox
ld a, $34
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $b
call ByteFill
ld a, $39
@@ -96079,7 +94279,7 @@ Function1de171: ; 1de171 (77:6171)
Function1de1d1: ; 1de1d1 (77:61d1)
ld a, $34
- ld hl, TileMap
+ hlcoord 0, 0
ld bc, $b
call ByteFill
ld a, $39
@@ -96164,7 +94364,7 @@ Function1de247: ; 1de247
Function1de27f: ; 1de27f
push de
- ld de, $0014
+ ld de, SCREEN_WIDTH
.asm_1de283
ld [hl], a
add hl, de
@@ -96205,7 +94405,7 @@ DudeAutoInput_A: ; 1de29f
db A_BUTTON, $00
db NO_INPUT, $ff ; end
; 1de2a5
-
+
DudeAutoInput_RightA: ; 1de2a5
db NO_INPUT, $08
db D_RIGHT, $00
@@ -96213,7 +94413,7 @@ DudeAutoInput_RightA: ; 1de2a5
db A_BUTTON, $00
db NO_INPUT, $ff ; end
; 1de2af
-
+
DudeAutoInput_DownA: ; 1de2af
db NO_INPUT, $fe
db NO_INPUT, $fe