summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants.asm1
-rw-r--r--constants/item_data_constants.asm46
-rw-r--r--constants/mart_constants.asm44
-rw-r--r--constants/pokemon_data_constants.asm1
-rw-r--r--data/collision_permissions.asm3
-rw-r--r--data/pokemon/unused_pic_banks.asm17
-rw-r--r--data/unused_53d84.asm13
-rw-r--r--docs/bugs_and_glitches.md59
-rw-r--r--docs/design_flaws.md39
-rw-r--r--docs/menu.md8
-rw-r--r--engine/battle/move_effects/present.asm14
-rw-r--r--engine/events/fish.asm2
-rw-r--r--engine/gfx/crystal_layouts.asm2
-rw-r--r--engine/gfx/player_gfx.asm2
-rw-r--r--engine/items/mart.asm40
-rw-r--r--engine/link/link_2.asm10
-rw-r--r--engine/menus/naming_screen.asm2
-rw-r--r--engine/overworld/map_object_action.asm2
-rw-r--r--engine/overworld/map_objects.asm3
-rw-r--r--engine/overworld/wildmons.asm12
-rw-r--r--engine/pokemon/bills_pc.asm7
-rw-r--r--engine/printer/printer_serial.asm2
-rw-r--r--home/menu_window.asm6
-rw-r--r--home/scrolling_menu.asm2
-rw-r--r--main.asm2
-rw-r--r--mobile/mobile_22.asm2
-rw-r--r--mobile/mobile_41.asm3
-rw-r--r--mobile/mobile_46.asm2
-rw-r--r--mobile/mobile_5f.asm2
-rw-r--r--sram.asm2
-rw-r--r--wram.asm1
31 files changed, 176 insertions, 175 deletions
diff --git a/constants.asm b/constants.asm
index 5dcbc57be..28736a1a9 100644
--- a/constants.asm
+++ b/constants.asm
@@ -28,6 +28,7 @@ INCLUDE "constants/map_constants.asm"
INCLUDE "constants/map_data_constants.asm"
INCLUDE "constants/map_object_constants.asm"
INCLUDE "constants/map_setup_constants.asm"
+INCLUDE "constants/mart_constants.asm"
INCLUDE "constants/menu_constants.asm"
INCLUDE "constants/mobile_constants.asm"
INCLUDE "constants/move_constants.asm"
diff --git a/constants/item_data_constants.asm b/constants/item_data_constants.asm
index e503f3057..9d463d7d4 100644
--- a/constants/item_data_constants.asm
+++ b/constants/item_data_constants.asm
@@ -129,49 +129,3 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_BRIGHTPOWDER
const HELD_78
const HELD_FOCUS_BAND
-
-
-; mart types (see engine/items/mart.asm)
- const_def
- const MARTTYPE_STANDARD
- const MARTTYPE_BITTER
- const MARTTYPE_BARGAIN
- const MARTTYPE_PHARMACY
- const MARTTYPE_ROOFTOP
-
-; Marts indexes (see data/items/marts.asm)
- const_def
- const MART_CHERRYGROVE
- const MART_CHERRYGROVE_DEX
- const MART_VIOLET
- const MART_AZALEA
- const MART_CIANWOOD
- const MART_GOLDENROD_2F_1
- const MART_GOLDENROD_2F_2
- const MART_GOLDENROD_3F
- const MART_GOLDENROD_4F
- const MART_GOLDENROD_5F_1
- const MART_GOLDENROD_5F_2
- const MART_GOLDENROD_5F_3
- const MART_GOLDENROD_5F_4
- const MART_OLIVINE
- const MART_ECRUTEAK
- const MART_MAHOGANY_1
- const MART_MAHOGANY_2
- const MART_BLACKTHORN
- const MART_VIRIDIAN
- const MART_PEWTER
- const MART_CERULEAN
- const MART_LAVENDER
- const MART_VERMILION
- const MART_CELADON_2F_1
- const MART_CELADON_2F_2
- const MART_CELADON_3F
- const MART_CELADON_4F
- const MART_CELADON_5F_1
- const MART_CELADON_5F_2
- const MART_FUCHSIA
- const MART_SAFFRON
- const MART_MT_MOON
- const MART_INDIGO_PLATEAU
- const MART_UNDERGROUND
diff --git a/constants/mart_constants.asm b/constants/mart_constants.asm
new file mode 100644
index 000000000..c4834f524
--- /dev/null
+++ b/constants/mart_constants.asm
@@ -0,0 +1,44 @@
+; mart types (see engine/items/mart.asm)
+ const_def
+ const MARTTYPE_STANDARD
+ const MARTTYPE_BITTER
+ const MARTTYPE_BARGAIN
+ const MARTTYPE_PHARMACY
+ const MARTTYPE_ROOFTOP
+
+; Marts indexes (see data/items/marts.asm)
+ const_def
+ const MART_CHERRYGROVE
+ const MART_CHERRYGROVE_DEX
+ const MART_VIOLET
+ const MART_AZALEA
+ const MART_CIANWOOD
+ const MART_GOLDENROD_2F_1
+ const MART_GOLDENROD_2F_2
+ const MART_GOLDENROD_3F
+ const MART_GOLDENROD_4F
+ const MART_GOLDENROD_5F_1
+ const MART_GOLDENROD_5F_2
+ const MART_GOLDENROD_5F_3
+ const MART_GOLDENROD_5F_4
+ const MART_OLIVINE
+ const MART_ECRUTEAK
+ const MART_MAHOGANY_1
+ const MART_MAHOGANY_2
+ const MART_BLACKTHORN
+ const MART_VIRIDIAN
+ const MART_PEWTER
+ const MART_CERULEAN
+ const MART_LAVENDER
+ const MART_VERMILION
+ const MART_CELADON_2F_1
+ const MART_CELADON_2F_2
+ const MART_CELADON_3F
+ const MART_CELADON_4F
+ const MART_CELADON_5F_1
+ const MART_CELADON_5F_2
+ const MART_FUCHSIA
+ const MART_SAFFRON
+ const MART_MT_MOON
+ const MART_INDIGO_PLATEAU
+ const MART_UNDERGROUND
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index 3d27e5877..379546c45 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -158,6 +158,7 @@ NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2
WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2
+FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
diff --git a/data/collision_permissions.asm b/data/collision_permissions.asm
index 867bacbb0..2307ec98a 100644
--- a/data/collision_permissions.asm
+++ b/data/collision_permissions.asm
@@ -1,7 +1,7 @@
NONTALKABLE EQUS "db"
TALKABLE EQUS "db TALK +"
-TileCollisionTable:: ; 4ce1f
+TileCollisionTable::
; entries correspond to COLL_* constants
NONTALKABLE LANDTILE ; COLL_FLOOR
NONTALKABLE LANDTILE ; COLL_01
@@ -259,4 +259,3 @@ TileCollisionTable:: ; 4ce1f
NONTALKABLE LANDTILE ; fd
NONTALKABLE LANDTILE ; fe
NONTALKABLE WALLTILE ; COLL_FF
-; 4cf1f
diff --git a/data/pokemon/unused_pic_banks.asm b/data/pokemon/unused_pic_banks.asm
new file mode 100644
index 000000000..2ede9c3f9
--- /dev/null
+++ b/data/pokemon/unused_pic_banks.asm
@@ -0,0 +1,17 @@
+; This was a table of Pokémon sprite banks in the 1997 G/S prototype.
+; See pokegold-spaceworld's gfx/pokemon/pkmn_pic_banks.asm.
+
+Unreferenced_MonPicBanks:
+ ; last mon in bank, bank #
+ db RAICHU, $15 + 0
+ db DUGTRIO, $15 + 1
+ db GRAVELER, $15 + 2
+ db KRABBY, $15 + 3
+ db STARMIE, $15 + 4
+ db ARTICUNO, $15 + 5
+ db ARIADOS, $15 + 6 ; JARANRA in pokegold-spaceworld
+ db ESPEON, $15 + 7 ; KOUNYA in pokegold-spaceworld
+ db OCTILLERY, $15 + 8 ; BOMBSEEKER in pokegold-spaceworld
+ db LARVITAR, $15 + 9 ; NYULA in pokegold-spaceworld
+ db $ff, $15 + 10
+ db $ff, $15 + 11
diff --git a/data/unused_53d84.asm b/data/unused_53d84.asm
deleted file mode 100644
index 026ec5275..000000000
--- a/data/unused_53d84.asm
+++ /dev/null
@@ -1,13 +0,0 @@
-Unreferenced_53d84:
- db $1a, $15
- db $33, $16
- db $4b, $17
- db $62, $18
- db $79, $19
- db $90, $1a
- db $a8, $1b
- db $c4, $1c
- db $e0, $1d
- db $f6, $1e
- db $ff, $1f
- db $ff, $20
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index 9133923ab..786c51ab3 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -162,7 +162,7 @@ This is a bug with `DittoMetalPowder` in [engine/battle/effect_commands.asm](/en
This is a bug with `BattleCommand_BellyDrum` in [engine/battle/move_effects/belly_drum.asm](/engine/battle/move_effects/belly_drum.asm):
```asm
-BattleCommand_BellyDrum: ; 37c1a
+BattleCommand_BellyDrum:
; bellydrum
; This command is buggy because it raises the user's attack
; before checking that it has enough HP to use the move.
@@ -180,7 +180,7 @@ BattleCommand_BellyDrum: ; 37c1a
**Fix:**
```asm
-BattleCommand_BellyDrum: ; 37c1a
+BattleCommand_BellyDrum:
; bellydrum
callfar GetHalfMaxHP
callfar CheckUserHasEnoughHP
@@ -293,7 +293,7 @@ This bug affects Attract, Curse, Foresight, Mean Look, Mimic, Nightmare, Spider
This is a bug with `CheckHiddenOpponent` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
-CheckHiddenOpponent: ; 37daa
+CheckHiddenOpponent:
; BUG: This routine should account for Lock-On and Mind Reader.
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
@@ -390,7 +390,7 @@ This is a bug in how `wAttackMissed` is never set by BeatUp, even when none of t
This bug can be fixed in a plethora of ways, but the most straight-forward would be in `BattleCommand_BeatUpFailText` in [engine/battle/move_effects/beat_up.asm](/engine/battle/move_effects/beat_up.asm), as that's always ran before the king's rock effect.
```asm
-BattleCommand_BeatUpFailText: ; 355b5
+BattleCommand_BeatUpFailText:
; beatupfailtext
ld a, [wBeatUpHitAtLeastOnce]
@@ -403,7 +403,7 @@ BattleCommand_BeatUpFailText: ; 355b5
**Fix:**
```asm
-BattleCommand_BeatUpFailText: ; 355b5
+BattleCommand_BeatUpFailText:
; beatupfailtext
ld a, [wBeatUpHitAtLeastOnce]
@@ -428,7 +428,7 @@ This bug existed for all battles in Gold and Silver, and was only fixed for sing
This is a bug with `BattleCommand_Present` in [engine/battle/move_effects/present.asm](/engine/battle/move_effects/present.asm):
```asm
-BattleCommand_Present: ; 37874
+BattleCommand_Present:
; present
ld a, [wLinkMode]
@@ -451,7 +451,7 @@ BattleCommand_Present: ; 37874
**Fix:**
```asm
-BattleCommand_Present: ; 37874
+BattleCommand_Present:
; present
push bc
@@ -484,13 +484,13 @@ This is a bug with `AI_Smart_MeanLook` in [engine/battle/ai/scoring.asm](/engine
In [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
-BattleCheckTypeMatchup: ; 347c8
+BattleCheckTypeMatchup:
ld hl, wEnemyMonType1
ld a, [hBattleTurn]
and a
jr z, CheckTypeMatchup
ld hl, wBattleMonType1
-CheckTypeMatchup: ; 347d3
+CheckTypeMatchup:
; There is an incorrect assumption about this function made in the AI related code: when
; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
; offensive type in a will make this function do the right thing. Since a is overwritten,
@@ -515,7 +515,7 @@ CheckTypeMatchup: ; 347d3
This is a bug with `AI_HealStatus` in [engine/battle/ai/items.asm](/engine/battle/ai/items.asm):
```asm
-AI_HealStatus: ; 384e0
+AI_HealStatus:
ld a, [wCurOTMon]
ld hl, wOTPartyMon1Status
ld bc, PARTYMON_STRUCT_LENGTH
@@ -530,7 +530,6 @@ AI_HealStatus: ; 384e0
ld hl, wEnemySubStatus5
res SUBSTATUS_TOXIC, [hl]
ret
-; 384f7
```
**Fix:** Uncomment `ld hl, wEnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`.
@@ -600,7 +599,7 @@ This can bring Pokémon straight from level 1 to 100 by gaining just a few exper
This is a bug with `CalcExpAtLevel` in [engine/pokemon/experience.asm](/engine/pokemon/experience.asm):
```asm
-CalcExpAtLevel: ; 50e47
+CalcExpAtLevel:
; (a/b)*n**3 + c*n**2 + d*n - e
ld a, [wBaseGrowthRate]
add a
@@ -614,7 +613,7 @@ CalcExpAtLevel: ; 50e47
**Fix:**
```asm
-CalcExpAtLevel: ; 50e47
+CalcExpAtLevel:
; (a/b)*n**3 + c*n**2 + d*n - e
ld a, d
cp 1
@@ -821,7 +820,7 @@ This is a bug with `HaircutOrGrooming` in [engine/events/haircut.asm](/engine/ev
INCLUDE "data/events/happiness_probabilities.asm"
-CopyPokemonName_Buffer1_Buffer3: ; 746e
+CopyPokemonName_Buffer1_Buffer3:
ld hl, wStringBuffer1
ld de, wStringBuffer3
ld bc, MON_NAME_LENGTH
@@ -831,14 +830,14 @@ CopyPokemonName_Buffer1_Buffer3: ; 746e
In [data/events/happiness_probabilities.asm](/data/events/happiness_probabilities.asm):
```asm
-HappinessData_DaisysGrooming: ; 746b
+HappinessData_DaisysGrooming:
db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance
```
**Fix:**
```asm
-HappinessData_DaisysGrooming: ; 746b
+HappinessData_DaisysGrooming:
db $80, 2, HAPPINESS_GROOMING ; 50% chance
db $ff, 2, HAPPINESS_GROOMING ; 50% chance
```
@@ -916,7 +915,7 @@ This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [engine/battle/core.asm](
This is a bug with `CalcMagikarpLength.BCLessThanDE` in [engine/events/magikarp.asm](/engine/events/magikarp.asm):
```asm
-.BCLessThanDE: ; fbc9a
+.BCLessThanDE:
; Intention: Return bc < de.
; Reality: Return b < d.
ld a, b
@@ -926,7 +925,6 @@ This is a bug with `CalcMagikarpLength.BCLessThanDE` in [engine/events/magikarp.
ld a, c
cp e
ret
-; fbca1
```
**Fix:** Delete `ret nc`.
@@ -939,7 +937,7 @@ This is a bug with `CalcMagikarpLength.BCLessThanDE` in [engine/events/magikarp.
This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle/battle_transition.asm](/engine/battle/battle_transition.asm):
```asm
-StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
+StartTrainerBattle_DetermineWhichAnimation:
; The screen flashes a different number of times depending on the level of
; your lead Pokemon relative to the opponent's.
; BUG: wBattleMonLevel and wEnemyMonLevel are not set at this point, so whatever
@@ -966,15 +964,13 @@ StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
ld a, [hl]
ld [wJumptableIndex], a
ret
-; 8c38f (23:438f)
-.StartingPoints: ; 8c38f
+.StartingPoints:
; entries correspond to TRANS_* constants
db BATTLETRANSITION_CAVE
db BATTLETRANSITION_CAVE_STRONGER
db BATTLETRANSITION_NO_CAVE
db BATTLETRANSITION_NO_CAVE_STRONGER
-; 8c393
```
*To do:* Fix this bug.
@@ -1108,7 +1104,7 @@ This is a bug with `DoPlayerMovement.CheckWarp` in [engine/overworld/player_move
The exact cause is unknown, but a workaround exists for `DexEntryScreen_MenuActionJumptable.Cry` in [engine/pokedex/pokedex.asm](/engine/pokedex/pokedex.asm):
```asm
-.Cry: ; 40340
+.Cry:
call Pokedex_GetSelectedMon
ld a, [wd265]
call GetCryIndex
@@ -1121,7 +1117,7 @@ The exact cause is unknown, but a workaround exists for `DexEntryScreen_MenuActi
**Workaround:**
```asm
-.Cry: ; 40340
+.Cry:
ld a, [wCurPartySpecies]
call PlayMonCry
ret
@@ -1365,7 +1361,7 @@ This is a bug with `PokeBallEffect` in [engine/items/item_effects.asm](/engine/i
This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/pokemon/party_menu.asm](/engine/pokemon/party_menu.asm):
```asm
-.DetermineCompatibility: ; 50268
+.DetermineCompatibility:
ld de, wStringBuffer1
ld a, BANK(EvosAttacksPointers)
ld bc, 2
@@ -1461,7 +1457,7 @@ ScriptCall:
In [engine/overworld/overworld.asm](/engine/overworld/overworld.asm):
```asm
-LoadSpriteGFX: ; 14306
+LoadSpriteGFX:
; Bug: b is not preserved, so it's useless as a next count.
; Uncomment the lines below to fix.
@@ -1487,7 +1483,6 @@ LoadSpriteGFX: ; 14306
; pop bc
ld a, l
ret
-; 1431e
```
**Fix:** Uncomment `push bc` and `pop bc`.
@@ -1498,7 +1493,7 @@ LoadSpriteGFX: ; 14306
In [engine/overworld/wildmons.asm](/engine/overworld/wildmons.asm):
```asm
-ChooseWildEncounter: ; 2a14f
+ChooseWildEncounter:
...
ld a, b
ld [wCurPartyLevel], a
@@ -1513,7 +1508,7 @@ ChooseWildEncounter: ; 2a14f
...
-ValidateTempWildMonSpecies: ; 2a4a0
+ValidateTempWildMonSpecies:
; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a.
```
@@ -1564,7 +1559,7 @@ In [engine/overworld/events.asm](/engine/overworld/events.asm):
In [engine/events/bug_contest/contest_2.asm](/engine/events/bug_contest/contest_2.asm):
```asm
-CheckBugContestContestantFlag: ; 139ed
+CheckBugContestContestantFlag:
; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
; Bug: If a >= NUM_BUG_CONTESTANTS when this is called,
@@ -1581,7 +1576,6 @@ CheckBugContestContestantFlag: ; 139ed
ld b, CHECK_FLAG
call EventFlagAction
ret
-; 139fe
INCLUDE "data/events/bug_contest_flags.asm"
```
@@ -1594,7 +1588,7 @@ However, `a < NUM_BUG_CONTESTANTS` should always be true, so in practice this is
In [home/init.asm](/home/init.asm):
```asm
-ClearWRAM:: ; 25a
+ClearWRAM::
; Wipe swappable WRAM banks (1-7)
; Assumes CGB or AGB
@@ -1611,7 +1605,6 @@ ClearWRAM:: ; 25a
cp 8
jr nc, .bank_loop ; Should be jr c
ret
-; 270
```
**Fix:** Change `jr nc, .bank_loop` to `jr c, .bank_loop`.
diff --git a/docs/design_flaws.md b/docs/design_flaws.md
index 7494d5d68..3536acd9f 100644
--- a/docs/design_flaws.md
+++ b/docs/design_flaws.md
@@ -28,7 +28,7 @@ ENDM
The offset is translated into a correct bank by `FixPicBank` in [engine/gfx/load_pics.asm](/engine/gfx/load_pics.asm):
```asm
-FixPicBank: ; 511c5
+FixPicBank:
; This is a thing for some reason.
PICS_FIX EQU $36
@@ -46,7 +46,7 @@ GLOBAL PICS_FIX
pop hl
ret
-.PicsBanks: ; 511d4
+.PicsBanks:
db BANK("Pics 1") ; BANK("Pics 1") + 0
db BANK("Pics 2") ; BANK("Pics 1") + 1
db BANK("Pics 3") ; BANK("Pics 1") + 2
@@ -298,7 +298,7 @@ NUM_TMS = const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
`GetTMHMNumber` and `GetNumberedTMHM` in [engine/items/items.asm](/engine/items/items.asm) have to compensate for this:
```asm
-GetTMHMNumber:: ; d407
+GetTMHMNumber::
; Return the number of a TM/HM by item id c.
ld a, c
; Skip any dummy items.
@@ -315,7 +315,7 @@ GetTMHMNumber:: ; d407
ld c, a
ret
-GetNumberedTMHM: ; d417
+GetNumberedTMHM:
; Return the item id of a TM/HM by number c.
ld a, c
; Skip any gaps.
@@ -341,7 +341,7 @@ Move `ITEM_C3` and `ITEM_DC` above all the TMs in every table of item data.
Modify engine/items/items.asm:
```asm
-GetTMHMNumber:: ; d407
+GetTMHMNumber::
; Return the number of a TM/HM by item id c.
ld a, c
sub TM01
@@ -349,7 +349,7 @@ GetTMHMNumber:: ; d407
ld c, a
ret
-GetNumberedTMHM: ; d417
+GetNumberedTMHM:
; Return the item id of a TM/HM by number c.
ld a, c
add TM01
@@ -366,7 +366,7 @@ GetNumberedTMHM: ; d417
Three separate routines do the same derivation; `GetDexEntryPointer` in [engine/pokedex/pokedex_2.asm](/engine/pokedex/pokedex_2.asm):
```asm
-GetDexEntryPointer: ; 44333
+GetDexEntryPointer:
; return dex entry pointer b:de
push hl
ld hl, PokedexDataPointerTable
@@ -460,7 +460,7 @@ PokedexShow_GetDexEntryBank:
`_Sine` in [engine/math/sine.asm](/engine/math/sine.asm):
```asm
-_Sine:: ; 84d9
+_Sine::
; a = d * sin(e * pi/32)
ld a, e
calc_sine_wave
@@ -469,11 +469,11 @@ _Sine:: ; 84d9
`Sprites_Cosine` and `Sprites_Sine` in [engine/gfx/sprites.asm](/engine/gfx/sprites.asm):
```asm
-Sprites_Cosine: ; 8e72a
+Sprites_Cosine:
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough
-Sprites_Sine: ; 8e72c
+Sprites_Sine:
; a = d * sin(a * pi/32)
calc_sine_wave
```
@@ -481,37 +481,34 @@ Sprites_Sine: ; 8e72c
`BattleAnim_Cosine` and `BattleAnim_Sine` in [engine/battle_anims/functions.asm](/engine/battle_anims/functions.asm):
```asm
-BattleAnim_Cosine: ; ce732 (33:6732)
+BattleAnim_Cosine:
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough
-BattleAnim_Sine: ; ce734 (33:6734)
+BattleAnim_Sine:
; a = d * sin(a * pi/32)
calc_sine_wave BattleAnimSineWave
...
-BattleAnimSineWave: ; ce77f
+BattleAnimSineWave:
sine_table 32
-; ce7bf
```
`StartTrainerBattle_DrawSineWave` in [engine/battle/battle_transition.asm](/engine/battle/battle_transition.asm):
```asm
-StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7)
+StartTrainerBattle_DrawSineWave:
calc_sine_wave
-; 8c768
```
And `CelebiEvent_Cosine` in [engine/events/celebi.asm](/engine/events/celebi.asm):
```asm
-CelebiEvent_Cosine: ; 49b3b (12:5b3b)
+CelebiEvent_Cosine:
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
calc_sine_wave
-; 49bae
```
They all rely on `calc_sine_wave` in [macros/code.asm](/macros/code.asm):
@@ -586,7 +583,7 @@ ENDM
In [engine/tilesets/tileset_anims.asm](/engine/tilesets/tileset_anims.asm):
```asm
-GetForestTreeFrame: ; fc54c
+GetForestTreeFrame:
; Return 0 if a is even, or 2 if odd.
and a
jr z, .even
@@ -609,16 +606,14 @@ GetForestTreeFrame: ; fc54c
.even
xor a
ret
-; fc56d
```
**Fix:**
```asm
-GetForestTreeFrame: ; fc54c
+GetForestTreeFrame:
; Return 0 if a is even, or 2 if odd.
and 1
add a
ret
-; fc56d
```
diff --git a/docs/menu.md b/docs/menu.md
index 80d64ada1..67403bf15 100644
--- a/docs/menu.md
+++ b/docs/menu.md
@@ -54,8 +54,8 @@ Call state for functions in `MenuData` of `ScrollingMenu`:
```
All of them:
-[MenuSelection] = Current item. -1 is the CANCEL item.
-[MenuSelectionQuantity] = Quantity of the current item.
+[wMenuSelection] = Current item. -1 is the CANCEL item.
+[wMenuSelectionQuantity] = Quantity of the current item.
Function1: Called to display a menu entry.
de = Cursor position in TileMap
@@ -90,7 +90,7 @@ db -1 ; cancel
...
```
-In case it's 1, `[MenuSelectionQuantity]` will simply contain the next entry.
+In case it's 1, `[wMenuSelectionQuantity]` will simply contain the next entry.
## `_2DMenu`
@@ -208,7 +208,7 @@ StringPointers:
Call state for `DisplayFunction`:
```
-[MenuSelection] = Current item. -1 is the CANCEL item.
+[wMenuSelection] = Current item. -1 is the CANCEL item.
de = Cursor position in TileMap
```
diff --git a/engine/battle/move_effects/present.asm b/engine/battle/move_effects/present.asm
index 2bbea8028..f0949558f 100644
--- a/engine/battle/move_effects/present.asm
+++ b/engine/battle/move_effects/present.asm
@@ -32,12 +32,12 @@ BattleCommand_Present:
.next
ld a, [hli]
cp -1
- jr z, .heal_effect ; 378a4 $11
+ jr z, .heal_effect
cp b
- jr nc, .got_power ; 378a7 $4
+ jr nc, .got_power
inc c
inc hl
- jr .next ; 378ab $f4
+ jr .next
.got_power
ld a, c
@@ -56,12 +56,12 @@ BattleCommand_Present:
ld hl, AICheckPlayerMaxHP
ld a, [hBattleTurn]
and a
- jr z, .got_hp_fn_pointer ; 378c9 $3
+ jr z, .got_hp_fn_pointer
ld hl, AICheckEnemyMaxHP
.got_hp_fn_pointer
ld a, BANK(AICheckPlayerMaxHP)
rst FarCall
- jr c, .already_fully_healed ; 378d1 $20
+ jr c, .already_fully_healed
ld hl, GetQuarterMaxHP
call CallBattleCore
@@ -73,12 +73,12 @@ BattleCommand_Present:
call StdBattleTextBox
call BattleCommand_SwitchTurn
call UpdateOpponentInParty
- jr .do_animation ; 378f1 $11
+ jr .do_animation
.already_fully_healed
call BattleCommand_SwitchTurn
call _CheckBattleScene
- jr nc, .do_animation ; 378f9 $9
+ jr nc, .do_animation
call AnimateFailedMove
ld hl, RefusedGiftText
call StdBattleTextBox
diff --git a/engine/events/fish.asm b/engine/events/fish.asm
index ec3e9a727..9d695a908 100644
--- a/engine/events/fish.asm
+++ b/engine/events/fish.asm
@@ -11,7 +11,7 @@ Fish:
call GetFishGroupIndex
ld hl, FishGroups
-rept 7
+rept FISHGROUP_DATA_LENGTH
add hl, de
endr
call .Fish
diff --git a/engine/gfx/crystal_layouts.asm b/engine/gfx/crystal_layouts.asm
index bc7aa3292..b9686701c 100644
--- a/engine/gfx/crystal_layouts.asm
+++ b/engine/gfx/crystal_layouts.asm
@@ -1,4 +1,4 @@
-GetMysteryGift_MobileAdapterLayout: ; 4930f (mobile)
+GetMysteryGift_MobileAdapterLayout:
ld a, b
cp SCGB_RAM
jr nz, .not_ram
diff --git a/engine/gfx/player_gfx.asm b/engine/gfx/player_gfx.asm
index 04208905a..9954143a8 100644
--- a/engine/gfx/player_gfx.asm
+++ b/engine/gfx/player_gfx.asm
@@ -72,7 +72,7 @@ ShowPlayerNamingChoices:
INCLUDE "data/player_names.asm"
-GetPlayerNameArray: ; 88318 This Function is never called
+Unreferenced_GetPlayerNameArray:
ld hl, wPlayerName
ld de, MalePlayerNameArray
ld a, [wPlayerGender]
diff --git a/engine/items/mart.asm b/engine/items/mart.asm
index 53b94249b..a683a4b44 100644
--- a/engine/items/mart.asm
+++ b/engine/items/mart.asm
@@ -26,7 +26,7 @@ OpenMartDialog::
MartDialog:
ld a, 0
ld [wEngineBuffer1], a
- xor a
+ xor a ; STANDARDMART_HOWMAYIHELPYOU
ld [wEngineBuffer5], a
call StandardMart
ret
@@ -103,7 +103,7 @@ LoadMartPointer:
ld [wMartPointer + 1], a
ld hl, wCurMart
xor a
- ld bc, 16
+ ld bc, wCurMartEnd - wCurMart
call ByteFill
xor a
ld [wEngineBuffer5], a
@@ -129,17 +129,27 @@ GetMart:
ld b, BANK(Marts)
ret
+; StandardMart.MartFunctions indexes
+ const_def
+ const STANDARDMART_HOWMAYIHELPYOU ; 0
+ const STANDARDMART_TOPMENU ; 1
+ const STANDARDMART_BUY ; 2
+ const STANDARDMART_SELL ; 3
+ const STANDARDMART_QUIT ; 4
+ const STANDARDMART_ANYTHINGELSE ; 5
+
StandardMart:
.loop
ld a, [wEngineBuffer5]
ld hl, .MartFunctions
rst JumpTable
ld [wEngineBuffer5], a
- cp $ff
+ cp -1
jr nz, .loop
ret
.MartFunctions:
+; entries correspond to STANDARDMART_* constants
dw .HowMayIHelpYou
dw .TopMenu
dw .Buy
@@ -151,7 +161,7 @@ StandardMart:
call LoadStandardMenuHeader
ld hl, Text_Mart_HowMayIHelpYou
call PrintText
- ld a, $1 ; top menu
+ ld a, STANDARDMART_TOPMENU
ret
.TopMenu:
@@ -165,13 +175,13 @@ StandardMart:
cp $2
jr z, .sell
.quit
- ld a, $4 ; Come again!
+ ld a, STANDARDMART_QUIT
ret
.buy
- ld a, $2 ; buy
+ ld a, STANDARDMART_BUY
ret
.sell
- ld a, $3 ; sell
+ ld a, STANDARDMART_SELL
ret
.Buy:
@@ -179,27 +189,27 @@ StandardMart:
call FarReadMart
call BuyMenu
and a
- ld a, $5 ; Anything else?
+ ld a, STANDARDMART_ANYTHINGELSE
ret
.Sell:
call ExitMenu
call SellMenu
- ld a, $5 ; Anything else?
+ ld a, STANDARDMART_ANYTHINGELSE
ret
.Quit:
call ExitMenu
ld hl, Text_Mart_ComeAgain
call MartTextBox
- ld a, $ff ; exit
+ ld a, -1
ret
.AnythingElse:
call LoadStandardMenuHeader
ld hl, Text_Mart_AnythingElse
call PrintText
- ld a, $1 ; top menu
+ ld a, STANDARDMART_TOPMENU
ret
FarReadMart:
@@ -444,7 +454,7 @@ BuyMenuLoop:
jr c, .cancel
ld de, wMoney
ld bc, hMoneyTemp
- ld a, $3 ; useless load
+ ld a, 3 ; useless load
call CompareMoney
jr c, .insufficient_funds
ld hl, wNumItems
@@ -452,7 +462,7 @@ BuyMenuLoop:
jr nc, .insufficient_bag_space
ld a, [wMartItemID]
ld e, a
- ld d, $0
+ ld d, 0
ld b, SET_FLAG
ld hl, wBargainShopFlags
call FlagAction
@@ -508,7 +518,7 @@ BargainShopAskPurchaseQuantity:
ld [wItemQuantityChangeBuffer], a
ld a, [wMartItemID]
ld e, a
- ld d, $0
+ ld d, 0
ld b, CHECK_FLAG
ld hl, wBargainShopFlags
call FlagAction
@@ -517,7 +527,7 @@ BargainShopAskPurchaseQuantity:
jr nz, .SoldOut
ld a, [wMartItemID]
ld e, a
- ld d, $0
+ ld d, 0
ld hl, wMartPointer
ld a, [hli]
ld h, [hl]
diff --git a/engine/link/link_2.asm b/engine/link/link_2.asm
index ed7a7e2c9..9406e43bb 100644
--- a/engine/link/link_2.asm
+++ b/engine/link/link_2.asm
@@ -66,22 +66,22 @@ LinkTextbox2:
add hl, de
.loop
push hl
- ld a, "┌"
+ ld a, $79
ld [hli], a
ld a, " "
call .PlaceRow
- ld [hl], "─"
+ ld [hl], $7a
pop hl
ld de, SCREEN_WIDTH
add hl, de
dec b
jr nz, .loop
- ld a, "┐"
+ ld a, $7b
ld [hli], a
- ld a, "│"
+ ld a, $7c
call .PlaceRow
- ld [hl], "└"
+ ld [hl], $7d
ret
.PlaceRow:
diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm
index 9d633bb3f..f269e32ad 100644
--- a/engine/menus/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
@@ -925,7 +925,7 @@ INCBIN "gfx/naming_screen/middle_line.1bpp"
NamingScreenGFX_UnderLine:
INCBIN "gfx/naming_screen/underline.1bpp"
-_ComposeMailMessage: ; 11e75 (mail?)
+_ComposeMailMessage:
ld hl, wNamingScreenDestinationPointer
ld [hl], e
inc hl
diff --git a/engine/overworld/map_object_action.asm b/engine/overworld/map_object_action.asm
index 613e3b099..2c4834a3d 100644
--- a/engine/overworld/map_object_action.asm
+++ b/engine/overworld/map_object_action.asm
@@ -190,7 +190,7 @@ SetFacingShadow:
ld [hl], FACING_SHADOW
ret
-SetFacingEmote: ; 4582 emote
+SetFacingEmote:
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], FACING_EMOTE
diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm
index 0846f01b1..d0cfd8741 100644
--- a/engine/overworld/map_objects.asm
+++ b/engine/overworld/map_objects.asm
@@ -2159,7 +2159,8 @@ Function55e0::
jr nz, .loop
ret
-Function5602: ; 5602, called at battle start
+Function5602:
+; called at battle start
call Function5645 ; clear sprites
ld a, PLAYER
call Function5629 ; respawn player
diff --git a/engine/overworld/wildmons.asm b/engine/overworld/wildmons.asm
index eef618156..ae611d4ca 100644
--- a/engine/overworld/wildmons.asm
+++ b/engine/overworld/wildmons.asm
@@ -86,7 +86,7 @@ FindNest:
ld a, [hli]
ld c, a
inc hl
- ld a, 3
+ ld a, NUM_WATERMON
call .SearchMapForMon
jr nc, .next_water
ld [de], a
@@ -94,7 +94,7 @@ FindNest:
.next_water
pop hl
- ld bc, 3 * 3
+ ld bc, WATER_WILDDATA_LENGTH
add hl, bc
jr .FindWater
@@ -264,7 +264,7 @@ ChooseWildEncounter:
inc hl
inc hl
ld a, [wTimeOfDay]
- ld bc, $e
+ ld bc, NUM_GRASSMON * 2
call AddNTimes
ld de, GrassMonProbTable
@@ -655,7 +655,7 @@ UpdateRoamMons:
jr nc, .update_loop ; invalid index, try again
inc hl
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
ld a, [wRoamMons_LastMapGroup]
@@ -796,7 +796,7 @@ RandomUnseenWildMon:
jr z, .randloop1
dec a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area.
@@ -870,7 +870,7 @@ RandomPhoneWildMon:
call Random
and %11
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
inc hl
diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm
index d2de035ae..c5904e9b0 100644
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -226,20 +226,19 @@ BillsPCDepositFuncCancel:
ld [wJumptableIndex], a
ret
-BillsPCDepositMenuHeader: ; 0xe253d (38:653d)
+BillsPCDepositMenuHeader:
db MENU_BACKUP_TILES ; flags
menu_coords 9, 4, SCREEN_WIDTH - 1, 13
dw .MenuData
db 1 ; default option
-.MenuData: ; 0xe2545 (38:6545)
+.MenuData:
db STATICMENU_CURSOR ; flags
db 4 ; items
db "DEPOSIT@"
db "STATS@"
db "RELEASE@"
db "CANCEL@"
-; 0xe2564 (38:6564)
Unreferenced_BillsPCClearThreeBoxes:
hlcoord 0, 0
@@ -405,7 +404,7 @@ BillsPC_Withdraw:
ld l, a
jp hl
-.dw ; e2699 (38:6699) #mark
+.dw
dw .withdraw ; Withdraw
dw .stats ; Stats
dw .release ; Release
diff --git a/engine/printer/printer_serial.asm b/engine/printer/printer_serial.asm
index b7422cac4..e8f106ac4 100644
--- a/engine/printer/printer_serial.asm
+++ b/engine/printer/printer_serial.asm
@@ -27,7 +27,7 @@ PrinterJumptableIteration:
ld l, a
jp hl
-.Jumptable: ; 84031 (21:4031)
+.Jumptable:
dw Print_InitPrinterHandshake ; 00
dw Printer_CheckConnectionStatus ; 01
dw Printer_WaitSerial ; 02
diff --git a/home/menu_window.asm b/home/menu_window.asm
index c279b8c56..49536d5f0 100644
--- a/home/menu_window.asm
+++ b/home/menu_window.asm
@@ -41,14 +41,14 @@ RestoreTileBackup::
ld [hli], a
dec de
dec c
- jr nz, .col ; 0x1c3b $fa
+ jr nz, .col
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .row ; 0x1c44 $ef
+ jr nz, .row
ret
@@ -60,7 +60,7 @@ PopWindow::
ld [de], a
inc de
dec b
- jr nz, .loop ; 0x1c50 $fa
+ jr nz, .loop
ret
GetMenuBoxDims::
diff --git a/home/scrolling_menu.asm b/home/scrolling_menu.asm
index 1662f8113..cf8e02fa8 100644
--- a/home/scrolling_menu.asm
+++ b/home/scrolling_menu.asm
@@ -40,7 +40,7 @@ InitScrollingMenu::
pop bc
jp TextBox
-JoyTextDelay_ForcehJoyDown:: ; 354b joypad
+JoyTextDelay_ForcehJoyDown::
call DelayFrame
ld a, [hInMenu]
diff --git a/main.asm b/main.asm
index 6cdf4d5a4..fe0c76f99 100644
--- a/main.asm
+++ b/main.asm
@@ -264,7 +264,7 @@ INCLUDE "engine/gfx/load_pics.asm"
INCLUDE "engine/pokemon/move_mon_wo_mail.asm"
INCLUDE "data/pokemon/base_stats.asm"
INCLUDE "data/pokemon/names.asm"
-INCLUDE "data/unused_53d84.asm"
+INCLUDE "data/pokemon/unused_pic_banks.asm"
UnknownEggPic::
; Another egg pic. This is shifted up a few pixels.
diff --git a/mobile/mobile_22.asm b/mobile/mobile_22.asm
index f556a6291..54d79efe0 100644
--- a/mobile/mobile_22.asm
+++ b/mobile/mobile_22.asm
@@ -1035,7 +1035,7 @@ ClearScreenArea:
ld a, $18
ld [hli], a
dec c
- jr nz, .asm_89713 ; 0x8971c $f5
+ jr nz, .asm_89713
ret
Function8971f:
diff --git a/mobile/mobile_41.asm b/mobile/mobile_41.asm
index 98dfe5ebd..b96a145ad 100644
--- a/mobile/mobile_41.asm
+++ b/mobile/mobile_41.asm
@@ -810,7 +810,8 @@ Mobile_AlwaysReturnNotCarry:
or a
ret
-Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
+Function106331:
+; called by Mobile_DummyReturnFalse in Crystal-J
; check ~[4:b000] == [7:a800]
ld a, $4
call GetSRAMBank
diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm
index 534835ac2..1f7ab27d0 100644
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -5130,7 +5130,7 @@ String_11a7ac:
db "データ<NO>よみこみを"
next "ちゅうし しますか?@"
-String_11a7c1: ; 11a7c1 ; new news?
+String_11a7c1:
db "あたらしい ニュースは"
next "ありません でした@"
diff --git a/mobile/mobile_5f.asm b/mobile/mobile_5f.asm
index 13cb091da..675dfebc4 100644
--- a/mobile/mobile_5f.asm
+++ b/mobile/mobile_5f.asm
@@ -5076,7 +5076,7 @@ String_17fe63:
next "せつめいしょを ごらんください"
db "@"
-String_17fe9a: ; 17fe9a ; unused
+String_17fe9a: ; unused
db "ポケモンニュースが"
next "あたらしくなっているので"
next "レポートを おくれません"
diff --git a/sram.asm b/sram.asm
index 6e8ed950e..2cd457e61 100644
--- a/sram.asm
+++ b/sram.asm
@@ -208,7 +208,7 @@ sBattleTowerSaveFileFlags:: db
sBattleTowerReward:: db
; team of previous trainer
-sBTMonOfTrainers:: ; 0xbe51
+sBTMonOfTrainers:: ; be51
sBTMonPrevTrainer1:: db
sBTMonPrevTrainer2:: db
sBTMonPrevTrainer3:: db
diff --git a/wram.asm b/wram.asm
index 6cf4d037b..723a293ff 100644
--- a/wram.asm
+++ b/wram.asm
@@ -1629,7 +1629,6 @@ wMartItem7BCD:: ds 3
wMartItem8BCD:: ds 3
wMartItem9BCD:: ds 3
wMartItem10BCD:: ds 3
-wMartItemBCDEnd::
NEXTU ; d002
; town map data