Merge pull request #530 from Rangi42/master

[RTM] Finish removing address comments, split out mart_constants.asm, and other tweaks
This commit is contained in:
yenatch
2018-06-24 22:38:08 -04:00
committed by GitHub
31 changed files with 176 additions and 175 deletions

View File

@@ -28,6 +28,7 @@ INCLUDE "constants/map_constants.asm"
INCLUDE "constants/map_data_constants.asm" INCLUDE "constants/map_data_constants.asm"
INCLUDE "constants/map_object_constants.asm" INCLUDE "constants/map_object_constants.asm"
INCLUDE "constants/map_setup_constants.asm" INCLUDE "constants/map_setup_constants.asm"
INCLUDE "constants/mart_constants.asm"
INCLUDE "constants/menu_constants.asm" INCLUDE "constants/menu_constants.asm"
INCLUDE "constants/mobile_constants.asm" INCLUDE "constants/mobile_constants.asm"
INCLUDE "constants/move_constants.asm" INCLUDE "constants/move_constants.asm"

View File

@@ -129,49 +129,3 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_BRIGHTPOWDER const HELD_BRIGHTPOWDER
const HELD_78 const HELD_78
const HELD_FOCUS_BAND 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

View File

@@ -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

View File

@@ -158,6 +158,7 @@ NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2 GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2
WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 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) NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)

View File

@@ -1,7 +1,7 @@
NONTALKABLE EQUS "db" NONTALKABLE EQUS "db"
TALKABLE EQUS "db TALK +" TALKABLE EQUS "db TALK +"
TileCollisionTable:: ; 4ce1f TileCollisionTable::
; entries correspond to COLL_* constants ; entries correspond to COLL_* constants
NONTALKABLE LANDTILE ; COLL_FLOOR NONTALKABLE LANDTILE ; COLL_FLOOR
NONTALKABLE LANDTILE ; COLL_01 NONTALKABLE LANDTILE ; COLL_01
@@ -259,4 +259,3 @@ TileCollisionTable:: ; 4ce1f
NONTALKABLE LANDTILE ; fd NONTALKABLE LANDTILE ; fd
NONTALKABLE LANDTILE ; fe NONTALKABLE LANDTILE ; fe
NONTALKABLE WALLTILE ; COLL_FF NONTALKABLE WALLTILE ; COLL_FF
; 4cf1f

View File

@@ -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

View File

@@ -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

View File

@@ -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): This is a bug with `BattleCommand_BellyDrum` in [engine/battle/move_effects/belly_drum.asm](/engine/battle/move_effects/belly_drum.asm):
```asm ```asm
BattleCommand_BellyDrum: ; 37c1a BattleCommand_BellyDrum:
; bellydrum ; bellydrum
; This command is buggy because it raises the user's attack ; This command is buggy because it raises the user's attack
; before checking that it has enough HP to use the move. ; before checking that it has enough HP to use the move.
@@ -180,7 +180,7 @@ BattleCommand_BellyDrum: ; 37c1a
**Fix:** **Fix:**
```asm ```asm
BattleCommand_BellyDrum: ; 37c1a BattleCommand_BellyDrum:
; bellydrum ; bellydrum
callfar GetHalfMaxHP callfar GetHalfMaxHP
callfar CheckUserHasEnoughHP 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): This is a bug with `CheckHiddenOpponent` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm ```asm
CheckHiddenOpponent: ; 37daa CheckHiddenOpponent:
; BUG: This routine should account for Lock-On and Mind Reader. ; BUG: This routine should account for Lock-On and Mind Reader.
ld a, BATTLE_VARS_SUBSTATUS3_OPP ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar 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. 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 ```asm
BattleCommand_BeatUpFailText: ; 355b5 BattleCommand_BeatUpFailText:
; beatupfailtext ; beatupfailtext
ld a, [wBeatUpHitAtLeastOnce] ld a, [wBeatUpHitAtLeastOnce]
@@ -403,7 +403,7 @@ BattleCommand_BeatUpFailText: ; 355b5
**Fix:** **Fix:**
```asm ```asm
BattleCommand_BeatUpFailText: ; 355b5 BattleCommand_BeatUpFailText:
; beatupfailtext ; beatupfailtext
ld a, [wBeatUpHitAtLeastOnce] 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): This is a bug with `BattleCommand_Present` in [engine/battle/move_effects/present.asm](/engine/battle/move_effects/present.asm):
```asm ```asm
BattleCommand_Present: ; 37874 BattleCommand_Present:
; present ; present
ld a, [wLinkMode] ld a, [wLinkMode]
@@ -451,7 +451,7 @@ BattleCommand_Present: ; 37874
**Fix:** **Fix:**
```asm ```asm
BattleCommand_Present: ; 37874 BattleCommand_Present:
; present ; present
push bc 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): In [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm ```asm
BattleCheckTypeMatchup: ; 347c8 BattleCheckTypeMatchup:
ld hl, wEnemyMonType1 ld hl, wEnemyMonType1
ld a, [hBattleTurn] ld a, [hBattleTurn]
and a and a
jr z, CheckTypeMatchup jr z, CheckTypeMatchup
ld hl, wBattleMonType1 ld hl, wBattleMonType1
CheckTypeMatchup: ; 347d3 CheckTypeMatchup:
; There is an incorrect assumption about this function made in the AI related code: when ; 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 ; 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, ; 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): This is a bug with `AI_HealStatus` in [engine/battle/ai/items.asm](/engine/battle/ai/items.asm):
```asm ```asm
AI_HealStatus: ; 384e0 AI_HealStatus:
ld a, [wCurOTMon] ld a, [wCurOTMon]
ld hl, wOTPartyMon1Status ld hl, wOTPartyMon1Status
ld bc, PARTYMON_STRUCT_LENGTH ld bc, PARTYMON_STRUCT_LENGTH
@@ -530,7 +530,6 @@ AI_HealStatus: ; 384e0
ld hl, wEnemySubStatus5 ld hl, wEnemySubStatus5
res SUBSTATUS_TOXIC, [hl] res SUBSTATUS_TOXIC, [hl]
ret ret
; 384f7
``` ```
**Fix:** Uncomment `ld hl, wEnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`. **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): This is a bug with `CalcExpAtLevel` in [engine/pokemon/experience.asm](/engine/pokemon/experience.asm):
```asm ```asm
CalcExpAtLevel: ; 50e47 CalcExpAtLevel:
; (a/b)*n**3 + c*n**2 + d*n - e ; (a/b)*n**3 + c*n**2 + d*n - e
ld a, [wBaseGrowthRate] ld a, [wBaseGrowthRate]
add a add a
@@ -614,7 +613,7 @@ CalcExpAtLevel: ; 50e47
**Fix:** **Fix:**
```asm ```asm
CalcExpAtLevel: ; 50e47 CalcExpAtLevel:
; (a/b)*n**3 + c*n**2 + d*n - e ; (a/b)*n**3 + c*n**2 + d*n - e
ld a, d ld a, d
cp 1 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" INCLUDE "data/events/happiness_probabilities.asm"
CopyPokemonName_Buffer1_Buffer3: ; 746e CopyPokemonName_Buffer1_Buffer3:
ld hl, wStringBuffer1 ld hl, wStringBuffer1
ld de, wStringBuffer3 ld de, wStringBuffer3
ld bc, MON_NAME_LENGTH ld bc, MON_NAME_LENGTH
@@ -831,14 +830,14 @@ CopyPokemonName_Buffer1_Buffer3: ; 746e
In [data/events/happiness_probabilities.asm](/data/events/happiness_probabilities.asm): In [data/events/happiness_probabilities.asm](/data/events/happiness_probabilities.asm):
```asm ```asm
HappinessData_DaisysGrooming: ; 746b HappinessData_DaisysGrooming:
db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance db $ff, 2, HAPPINESS_GROOMING ; 99.6% chance
``` ```
**Fix:** **Fix:**
```asm ```asm
HappinessData_DaisysGrooming: ; 746b HappinessData_DaisysGrooming:
db $80, 2, HAPPINESS_GROOMING ; 50% chance db $80, 2, HAPPINESS_GROOMING ; 50% chance
db $ff, 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): This is a bug with `CalcMagikarpLength.BCLessThanDE` in [engine/events/magikarp.asm](/engine/events/magikarp.asm):
```asm ```asm
.BCLessThanDE: ; fbc9a .BCLessThanDE:
; Intention: Return bc < de. ; Intention: Return bc < de.
; Reality: Return b < d. ; Reality: Return b < d.
ld a, b ld a, b
@@ -926,7 +925,6 @@ This is a bug with `CalcMagikarpLength.BCLessThanDE` in [engine/events/magikarp.
ld a, c ld a, c
cp e cp e
ret ret
; fbca1
``` ```
**Fix:** Delete `ret nc`. **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): This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle/battle_transition.asm](/engine/battle/battle_transition.asm):
```asm ```asm
StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365) StartTrainerBattle_DetermineWhichAnimation:
; The screen flashes a different number of times depending on the level of ; The screen flashes a different number of times depending on the level of
; your lead Pokemon relative to the opponent's. ; your lead Pokemon relative to the opponent's.
; BUG: wBattleMonLevel and wEnemyMonLevel are not set at this point, so whatever ; 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 a, [hl]
ld [wJumptableIndex], a ld [wJumptableIndex], a
ret ret
; 8c38f (23:438f)
.StartingPoints: ; 8c38f .StartingPoints:
; entries correspond to TRANS_* constants ; entries correspond to TRANS_* constants
db BATTLETRANSITION_CAVE db BATTLETRANSITION_CAVE
db BATTLETRANSITION_CAVE_STRONGER db BATTLETRANSITION_CAVE_STRONGER
db BATTLETRANSITION_NO_CAVE db BATTLETRANSITION_NO_CAVE
db BATTLETRANSITION_NO_CAVE_STRONGER db BATTLETRANSITION_NO_CAVE_STRONGER
; 8c393
``` ```
*To do:* Fix this bug. *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): The exact cause is unknown, but a workaround exists for `DexEntryScreen_MenuActionJumptable.Cry` in [engine/pokedex/pokedex.asm](/engine/pokedex/pokedex.asm):
```asm ```asm
.Cry: ; 40340 .Cry:
call Pokedex_GetSelectedMon call Pokedex_GetSelectedMon
ld a, [wd265] ld a, [wd265]
call GetCryIndex call GetCryIndex
@@ -1121,7 +1117,7 @@ The exact cause is unknown, but a workaround exists for `DexEntryScreen_MenuActi
**Workaround:** **Workaround:**
```asm ```asm
.Cry: ; 40340 .Cry:
ld a, [wCurPartySpecies] ld a, [wCurPartySpecies]
call PlayMonCry call PlayMonCry
ret 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): This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/pokemon/party_menu.asm](/engine/pokemon/party_menu.asm):
```asm ```asm
.DetermineCompatibility: ; 50268 .DetermineCompatibility:
ld de, wStringBuffer1 ld de, wStringBuffer1
ld a, BANK(EvosAttacksPointers) ld a, BANK(EvosAttacksPointers)
ld bc, 2 ld bc, 2
@@ -1461,7 +1457,7 @@ ScriptCall:
In [engine/overworld/overworld.asm](/engine/overworld/overworld.asm): In [engine/overworld/overworld.asm](/engine/overworld/overworld.asm):
```asm ```asm
LoadSpriteGFX: ; 14306 LoadSpriteGFX:
; Bug: b is not preserved, so it's useless as a next count. ; Bug: b is not preserved, so it's useless as a next count.
; Uncomment the lines below to fix. ; Uncomment the lines below to fix.
@@ -1487,7 +1483,6 @@ LoadSpriteGFX: ; 14306
; pop bc ; pop bc
ld a, l ld a, l
ret ret
; 1431e
``` ```
**Fix:** Uncomment `push bc` and `pop bc`. **Fix:** Uncomment `push bc` and `pop bc`.
@@ -1498,7 +1493,7 @@ LoadSpriteGFX: ; 14306
In [engine/overworld/wildmons.asm](/engine/overworld/wildmons.asm): In [engine/overworld/wildmons.asm](/engine/overworld/wildmons.asm):
```asm ```asm
ChooseWildEncounter: ; 2a14f ChooseWildEncounter:
... ...
ld a, b ld a, b
ld [wCurPartyLevel], a 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. ; 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): In [engine/events/bug_contest/contest_2.asm](/engine/events/bug_contest/contest_2.asm):
```asm ```asm
CheckBugContestContestantFlag: ; 139ed CheckBugContestContestantFlag:
; Checks the flag of the Bug Catching Contestant whose index is loaded in a. ; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
; Bug: If a >= NUM_BUG_CONTESTANTS when this is called, ; Bug: If a >= NUM_BUG_CONTESTANTS when this is called,
@@ -1581,7 +1576,6 @@ CheckBugContestContestantFlag: ; 139ed
ld b, CHECK_FLAG ld b, CHECK_FLAG
call EventFlagAction call EventFlagAction
ret ret
; 139fe
INCLUDE "data/events/bug_contest_flags.asm" 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): In [home/init.asm](/home/init.asm):
```asm ```asm
ClearWRAM:: ; 25a ClearWRAM::
; Wipe swappable WRAM banks (1-7) ; Wipe swappable WRAM banks (1-7)
; Assumes CGB or AGB ; Assumes CGB or AGB
@@ -1611,7 +1605,6 @@ ClearWRAM:: ; 25a
cp 8 cp 8
jr nc, .bank_loop ; Should be jr c jr nc, .bank_loop ; Should be jr c
ret ret
; 270
``` ```
**Fix:** Change `jr nc, .bank_loop` to `jr c, .bank_loop`. **Fix:** Change `jr nc, .bank_loop` to `jr c, .bank_loop`.

View File

@@ -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): The offset is translated into a correct bank by `FixPicBank` in [engine/gfx/load_pics.asm](/engine/gfx/load_pics.asm):
```asm ```asm
FixPicBank: ; 511c5 FixPicBank:
; This is a thing for some reason. ; This is a thing for some reason.
PICS_FIX EQU $36 PICS_FIX EQU $36
@@ -46,7 +46,7 @@ GLOBAL PICS_FIX
pop hl pop hl
ret ret
.PicsBanks: ; 511d4 .PicsBanks:
db BANK("Pics 1") ; BANK("Pics 1") + 0 db BANK("Pics 1") ; BANK("Pics 1") + 0
db BANK("Pics 2") ; BANK("Pics 1") + 1 db BANK("Pics 2") ; BANK("Pics 1") + 1
db BANK("Pics 3") ; BANK("Pics 1") + 2 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: `GetTMHMNumber` and `GetNumberedTMHM` in [engine/items/items.asm](/engine/items/items.asm) have to compensate for this:
```asm ```asm
GetTMHMNumber:: ; d407 GetTMHMNumber::
; Return the number of a TM/HM by item id c. ; Return the number of a TM/HM by item id c.
ld a, c ld a, c
; Skip any dummy items. ; Skip any dummy items.
@@ -315,7 +315,7 @@ GetTMHMNumber:: ; d407
ld c, a ld c, a
ret ret
GetNumberedTMHM: ; d417 GetNumberedTMHM:
; Return the item id of a TM/HM by number c. ; Return the item id of a TM/HM by number c.
ld a, c ld a, c
; Skip any gaps. ; 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: Modify engine/items/items.asm:
```asm ```asm
GetTMHMNumber:: ; d407 GetTMHMNumber::
; Return the number of a TM/HM by item id c. ; Return the number of a TM/HM by item id c.
ld a, c ld a, c
sub TM01 sub TM01
@@ -349,7 +349,7 @@ GetTMHMNumber:: ; d407
ld c, a ld c, a
ret ret
GetNumberedTMHM: ; d417 GetNumberedTMHM:
; Return the item id of a TM/HM by number c. ; Return the item id of a TM/HM by number c.
ld a, c ld a, c
add TM01 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): Three separate routines do the same derivation; `GetDexEntryPointer` in [engine/pokedex/pokedex_2.asm](/engine/pokedex/pokedex_2.asm):
```asm ```asm
GetDexEntryPointer: ; 44333 GetDexEntryPointer:
; return dex entry pointer b:de ; return dex entry pointer b:de
push hl push hl
ld hl, PokedexDataPointerTable ld hl, PokedexDataPointerTable
@@ -460,7 +460,7 @@ PokedexShow_GetDexEntryBank:
`_Sine` in [engine/math/sine.asm](/engine/math/sine.asm): `_Sine` in [engine/math/sine.asm](/engine/math/sine.asm):
```asm ```asm
_Sine:: ; 84d9 _Sine::
; a = d * sin(e * pi/32) ; a = d * sin(e * pi/32)
ld a, e ld a, e
calc_sine_wave calc_sine_wave
@@ -469,11 +469,11 @@ _Sine:: ; 84d9
`Sprites_Cosine` and `Sprites_Sine` in [engine/gfx/sprites.asm](/engine/gfx/sprites.asm): `Sprites_Cosine` and `Sprites_Sine` in [engine/gfx/sprites.asm](/engine/gfx/sprites.asm):
```asm ```asm
Sprites_Cosine: ; 8e72a Sprites_Cosine:
; a = d * cos(a * pi/32) ; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2) add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough ; fallthrough
Sprites_Sine: ; 8e72c Sprites_Sine:
; a = d * sin(a * pi/32) ; a = d * sin(a * pi/32)
calc_sine_wave 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): `BattleAnim_Cosine` and `BattleAnim_Sine` in [engine/battle_anims/functions.asm](/engine/battle_anims/functions.asm):
```asm ```asm
BattleAnim_Cosine: ; ce732 (33:6732) BattleAnim_Cosine:
; a = d * cos(a * pi/32) ; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2) add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough ; fallthrough
BattleAnim_Sine: ; ce734 (33:6734) BattleAnim_Sine:
; a = d * sin(a * pi/32) ; a = d * sin(a * pi/32)
calc_sine_wave BattleAnimSineWave calc_sine_wave BattleAnimSineWave
... ...
BattleAnimSineWave: ; ce77f BattleAnimSineWave:
sine_table 32 sine_table 32
; ce7bf
``` ```
`StartTrainerBattle_DrawSineWave` in [engine/battle/battle_transition.asm](/engine/battle/battle_transition.asm): `StartTrainerBattle_DrawSineWave` in [engine/battle/battle_transition.asm](/engine/battle/battle_transition.asm):
```asm ```asm
StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7) StartTrainerBattle_DrawSineWave:
calc_sine_wave calc_sine_wave
; 8c768
``` ```
And `CelebiEvent_Cosine` in [engine/events/celebi.asm](/engine/events/celebi.asm): And `CelebiEvent_Cosine` in [engine/events/celebi.asm](/engine/events/celebi.asm):
```asm ```asm
CelebiEvent_Cosine: ; 49b3b (12:5b3b) CelebiEvent_Cosine:
; a = d * cos(a * pi/32) ; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2) add %010000 ; cos(x) = sin(x + pi/2)
calc_sine_wave calc_sine_wave
; 49bae
``` ```
They all rely on `calc_sine_wave` in [macros/code.asm](/macros/code.asm): 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): In [engine/tilesets/tileset_anims.asm](/engine/tilesets/tileset_anims.asm):
```asm ```asm
GetForestTreeFrame: ; fc54c GetForestTreeFrame:
; Return 0 if a is even, or 2 if odd. ; Return 0 if a is even, or 2 if odd.
and a and a
jr z, .even jr z, .even
@@ -609,16 +606,14 @@ GetForestTreeFrame: ; fc54c
.even .even
xor a xor a
ret ret
; fc56d
``` ```
**Fix:** **Fix:**
```asm ```asm
GetForestTreeFrame: ; fc54c GetForestTreeFrame:
; Return 0 if a is even, or 2 if odd. ; Return 0 if a is even, or 2 if odd.
and 1 and 1
add a add a
ret ret
; fc56d
``` ```

View File

@@ -54,8 +54,8 @@ Call state for functions in `MenuData` of `ScrollingMenu`:
``` ```
All of them: All of them:
[MenuSelection] = Current item. -1 is the CANCEL item. [wMenuSelection] = Current item. -1 is the CANCEL item.
[MenuSelectionQuantity] = Quantity of the current item. [wMenuSelectionQuantity] = Quantity of the current item.
Function1: Called to display a menu entry. Function1: Called to display a menu entry.
de = Cursor position in TileMap 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` ## `_2DMenu`
@@ -208,7 +208,7 @@ StringPointers:
Call state for `DisplayFunction`: 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 de = Cursor position in TileMap
``` ```

View File

@@ -32,12 +32,12 @@ BattleCommand_Present:
.next .next
ld a, [hli] ld a, [hli]
cp -1 cp -1
jr z, .heal_effect ; 378a4 $11 jr z, .heal_effect
cp b cp b
jr nc, .got_power ; 378a7 $4 jr nc, .got_power
inc c inc c
inc hl inc hl
jr .next ; 378ab $f4 jr .next
.got_power .got_power
ld a, c ld a, c
@@ -56,12 +56,12 @@ BattleCommand_Present:
ld hl, AICheckPlayerMaxHP ld hl, AICheckPlayerMaxHP
ld a, [hBattleTurn] ld a, [hBattleTurn]
and a and a
jr z, .got_hp_fn_pointer ; 378c9 $3 jr z, .got_hp_fn_pointer
ld hl, AICheckEnemyMaxHP ld hl, AICheckEnemyMaxHP
.got_hp_fn_pointer .got_hp_fn_pointer
ld a, BANK(AICheckPlayerMaxHP) ld a, BANK(AICheckPlayerMaxHP)
rst FarCall rst FarCall
jr c, .already_fully_healed ; 378d1 $20 jr c, .already_fully_healed
ld hl, GetQuarterMaxHP ld hl, GetQuarterMaxHP
call CallBattleCore call CallBattleCore
@@ -73,12 +73,12 @@ BattleCommand_Present:
call StdBattleTextBox call StdBattleTextBox
call BattleCommand_SwitchTurn call BattleCommand_SwitchTurn
call UpdateOpponentInParty call UpdateOpponentInParty
jr .do_animation ; 378f1 $11 jr .do_animation
.already_fully_healed .already_fully_healed
call BattleCommand_SwitchTurn call BattleCommand_SwitchTurn
call _CheckBattleScene call _CheckBattleScene
jr nc, .do_animation ; 378f9 $9 jr nc, .do_animation
call AnimateFailedMove call AnimateFailedMove
ld hl, RefusedGiftText ld hl, RefusedGiftText
call StdBattleTextBox call StdBattleTextBox

View File

@@ -11,7 +11,7 @@ Fish:
call GetFishGroupIndex call GetFishGroupIndex
ld hl, FishGroups ld hl, FishGroups
rept 7 rept FISHGROUP_DATA_LENGTH
add hl, de add hl, de
endr endr
call .Fish call .Fish

View File

@@ -1,4 +1,4 @@
GetMysteryGift_MobileAdapterLayout: ; 4930f (mobile) GetMysteryGift_MobileAdapterLayout:
ld a, b ld a, b
cp SCGB_RAM cp SCGB_RAM
jr nz, .not_ram jr nz, .not_ram

View File

@@ -72,7 +72,7 @@ ShowPlayerNamingChoices:
INCLUDE "data/player_names.asm" INCLUDE "data/player_names.asm"
GetPlayerNameArray: ; 88318 This Function is never called Unreferenced_GetPlayerNameArray:
ld hl, wPlayerName ld hl, wPlayerName
ld de, MalePlayerNameArray ld de, MalePlayerNameArray
ld a, [wPlayerGender] ld a, [wPlayerGender]

View File

@@ -26,7 +26,7 @@ OpenMartDialog::
MartDialog: MartDialog:
ld a, 0 ld a, 0
ld [wEngineBuffer1], a ld [wEngineBuffer1], a
xor a xor a ; STANDARDMART_HOWMAYIHELPYOU
ld [wEngineBuffer5], a ld [wEngineBuffer5], a
call StandardMart call StandardMart
ret ret
@@ -103,7 +103,7 @@ LoadMartPointer:
ld [wMartPointer + 1], a ld [wMartPointer + 1], a
ld hl, wCurMart ld hl, wCurMart
xor a xor a
ld bc, 16 ld bc, wCurMartEnd - wCurMart
call ByteFill call ByteFill
xor a xor a
ld [wEngineBuffer5], a ld [wEngineBuffer5], a
@@ -129,17 +129,27 @@ GetMart:
ld b, BANK(Marts) ld b, BANK(Marts)
ret 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: StandardMart:
.loop .loop
ld a, [wEngineBuffer5] ld a, [wEngineBuffer5]
ld hl, .MartFunctions ld hl, .MartFunctions
rst JumpTable rst JumpTable
ld [wEngineBuffer5], a ld [wEngineBuffer5], a
cp $ff cp -1
jr nz, .loop jr nz, .loop
ret ret
.MartFunctions: .MartFunctions:
; entries correspond to STANDARDMART_* constants
dw .HowMayIHelpYou dw .HowMayIHelpYou
dw .TopMenu dw .TopMenu
dw .Buy dw .Buy
@@ -151,7 +161,7 @@ StandardMart:
call LoadStandardMenuHeader call LoadStandardMenuHeader
ld hl, Text_Mart_HowMayIHelpYou ld hl, Text_Mart_HowMayIHelpYou
call PrintText call PrintText
ld a, $1 ; top menu ld a, STANDARDMART_TOPMENU
ret ret
.TopMenu: .TopMenu:
@@ -165,13 +175,13 @@ StandardMart:
cp $2 cp $2
jr z, .sell jr z, .sell
.quit .quit
ld a, $4 ; Come again! ld a, STANDARDMART_QUIT
ret ret
.buy .buy
ld a, $2 ; buy ld a, STANDARDMART_BUY
ret ret
.sell .sell
ld a, $3 ; sell ld a, STANDARDMART_SELL
ret ret
.Buy: .Buy:
@@ -179,27 +189,27 @@ StandardMart:
call FarReadMart call FarReadMart
call BuyMenu call BuyMenu
and a and a
ld a, $5 ; Anything else? ld a, STANDARDMART_ANYTHINGELSE
ret ret
.Sell: .Sell:
call ExitMenu call ExitMenu
call SellMenu call SellMenu
ld a, $5 ; Anything else? ld a, STANDARDMART_ANYTHINGELSE
ret ret
.Quit: .Quit:
call ExitMenu call ExitMenu
ld hl, Text_Mart_ComeAgain ld hl, Text_Mart_ComeAgain
call MartTextBox call MartTextBox
ld a, $ff ; exit ld a, -1
ret ret
.AnythingElse: .AnythingElse:
call LoadStandardMenuHeader call LoadStandardMenuHeader
ld hl, Text_Mart_AnythingElse ld hl, Text_Mart_AnythingElse
call PrintText call PrintText
ld a, $1 ; top menu ld a, STANDARDMART_TOPMENU
ret ret
FarReadMart: FarReadMart:
@@ -444,7 +454,7 @@ BuyMenuLoop:
jr c, .cancel jr c, .cancel
ld de, wMoney ld de, wMoney
ld bc, hMoneyTemp ld bc, hMoneyTemp
ld a, $3 ; useless load ld a, 3 ; useless load
call CompareMoney call CompareMoney
jr c, .insufficient_funds jr c, .insufficient_funds
ld hl, wNumItems ld hl, wNumItems
@@ -452,7 +462,7 @@ BuyMenuLoop:
jr nc, .insufficient_bag_space jr nc, .insufficient_bag_space
ld a, [wMartItemID] ld a, [wMartItemID]
ld e, a ld e, a
ld d, $0 ld d, 0
ld b, SET_FLAG ld b, SET_FLAG
ld hl, wBargainShopFlags ld hl, wBargainShopFlags
call FlagAction call FlagAction
@@ -508,7 +518,7 @@ BargainShopAskPurchaseQuantity:
ld [wItemQuantityChangeBuffer], a ld [wItemQuantityChangeBuffer], a
ld a, [wMartItemID] ld a, [wMartItemID]
ld e, a ld e, a
ld d, $0 ld d, 0
ld b, CHECK_FLAG ld b, CHECK_FLAG
ld hl, wBargainShopFlags ld hl, wBargainShopFlags
call FlagAction call FlagAction
@@ -517,7 +527,7 @@ BargainShopAskPurchaseQuantity:
jr nz, .SoldOut jr nz, .SoldOut
ld a, [wMartItemID] ld a, [wMartItemID]
ld e, a ld e, a
ld d, $0 ld d, 0
ld hl, wMartPointer ld hl, wMartPointer
ld a, [hli] ld a, [hli]
ld h, [hl] ld h, [hl]

View File

@@ -66,22 +66,22 @@ LinkTextbox2:
add hl, de add hl, de
.loop .loop
push hl push hl
ld a, "┌" ld a, $79
ld [hli], a ld [hli], a
ld a, " " ld a, " "
call .PlaceRow call .PlaceRow
ld [hl], "─" ld [hl], $7a
pop hl pop hl
ld de, SCREEN_WIDTH ld de, SCREEN_WIDTH
add hl, de add hl, de
dec b dec b
jr nz, .loop jr nz, .loop
ld a, "┐" ld a, $7b
ld [hli], a ld [hli], a
ld a, "│" ld a, $7c
call .PlaceRow call .PlaceRow
ld [hl], "└" ld [hl], $7d
ret ret
.PlaceRow: .PlaceRow:

View File

@@ -925,7 +925,7 @@ INCBIN "gfx/naming_screen/middle_line.1bpp"
NamingScreenGFX_UnderLine: NamingScreenGFX_UnderLine:
INCBIN "gfx/naming_screen/underline.1bpp" INCBIN "gfx/naming_screen/underline.1bpp"
_ComposeMailMessage: ; 11e75 (mail?) _ComposeMailMessage:
ld hl, wNamingScreenDestinationPointer ld hl, wNamingScreenDestinationPointer
ld [hl], e ld [hl], e
inc hl inc hl

View File

@@ -190,7 +190,7 @@ SetFacingShadow:
ld [hl], FACING_SHADOW ld [hl], FACING_SHADOW
ret ret
SetFacingEmote: ; 4582 emote SetFacingEmote:
ld hl, OBJECT_FACING_STEP ld hl, OBJECT_FACING_STEP
add hl, bc add hl, bc
ld [hl], FACING_EMOTE ld [hl], FACING_EMOTE

View File

@@ -2159,7 +2159,8 @@ Function55e0::
jr nz, .loop jr nz, .loop
ret ret
Function5602: ; 5602, called at battle start Function5602:
; called at battle start
call Function5645 ; clear sprites call Function5645 ; clear sprites
ld a, PLAYER ld a, PLAYER
call Function5629 ; respawn player call Function5629 ; respawn player

View File

@@ -86,7 +86,7 @@ FindNest:
ld a, [hli] ld a, [hli]
ld c, a ld c, a
inc hl inc hl
ld a, 3 ld a, NUM_WATERMON
call .SearchMapForMon call .SearchMapForMon
jr nc, .next_water jr nc, .next_water
ld [de], a ld [de], a
@@ -94,7 +94,7 @@ FindNest:
.next_water .next_water
pop hl pop hl
ld bc, 3 * 3 ld bc, WATER_WILDDATA_LENGTH
add hl, bc add hl, bc
jr .FindWater jr .FindWater
@@ -264,7 +264,7 @@ ChooseWildEncounter:
inc hl inc hl
inc hl inc hl
ld a, [wTimeOfDay] ld a, [wTimeOfDay]
ld bc, $e ld bc, NUM_GRASSMON * 2
call AddNTimes call AddNTimes
ld de, GrassMonProbTable ld de, GrassMonProbTable
@@ -655,7 +655,7 @@ UpdateRoamMons:
jr nc, .update_loop ; invalid index, try again jr nc, .update_loop ; invalid index, try again
inc hl inc hl
ld c, a ld c, a
ld b, $0 ld b, 0
add hl, bc add hl, bc
add hl, bc add hl, bc
ld a, [wRoamMons_LastMapGroup] ld a, [wRoamMons_LastMapGroup]
@@ -796,7 +796,7 @@ RandomUnseenWildMon:
jr z, .randloop1 jr z, .randloop1
dec a dec a
ld c, a ld c, a
ld b, $0 ld b, 0
add hl, bc add hl, bc
add hl, bc add hl, bc
; We now have the pointer to one of the last (rarest) three wild Pokemon found in that area. ; 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 call Random
and %11 and %11
ld c, a ld c, a
ld b, $0 ld b, 0
add hl, bc add hl, bc
add hl, bc add hl, bc
inc hl inc hl

Some files were not shown because too many files have changed in this diff Show More