mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
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:
commit
91f914718a
@ -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"
|
||||||
|
@ -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
|
|
||||||
|
44
constants/mart_constants.asm
Normal file
44
constants/mart_constants.asm
Normal 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
|
@ -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)
|
||||||
|
|
||||||
|
@ -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
|
|
||||||
|
17
data/pokemon/unused_pic_banks.asm
Normal file
17
data/pokemon/unused_pic_banks.asm
Normal 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
|
@ -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
|
|
@ -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`.
|
||||||
|
@ -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
|
|
||||||
```
|
```
|
||||||
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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]
|
||||||
|
@ -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]
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -226,20 +226,19 @@ BillsPCDepositFuncCancel:
|
|||||||
ld [wJumptableIndex], a
|
ld [wJumptableIndex], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BillsPCDepositMenuHeader: ; 0xe253d (38:653d)
|
BillsPCDepositMenuHeader:
|
||||||
db MENU_BACKUP_TILES ; flags
|
db MENU_BACKUP_TILES ; flags
|
||||||
menu_coords 9, 4, SCREEN_WIDTH - 1, 13
|
menu_coords 9, 4, SCREEN_WIDTH - 1, 13
|
||||||
dw .MenuData
|
dw .MenuData
|
||||||
db 1 ; default option
|
db 1 ; default option
|
||||||
|
|
||||||
.MenuData: ; 0xe2545 (38:6545)
|
.MenuData:
|
||||||
db STATICMENU_CURSOR ; flags
|
db STATICMENU_CURSOR ; flags
|
||||||
db 4 ; items
|
db 4 ; items
|
||||||
db "DEPOSIT@"
|
db "DEPOSIT@"
|
||||||
db "STATS@"
|
db "STATS@"
|
||||||
db "RELEASE@"
|
db "RELEASE@"
|
||||||
db "CANCEL@"
|
db "CANCEL@"
|
||||||
; 0xe2564 (38:6564)
|
|
||||||
|
|
||||||
Unreferenced_BillsPCClearThreeBoxes:
|
Unreferenced_BillsPCClearThreeBoxes:
|
||||||
hlcoord 0, 0
|
hlcoord 0, 0
|
||||||
@ -405,7 +404,7 @@ BillsPC_Withdraw:
|
|||||||
ld l, a
|
ld l, a
|
||||||
jp hl
|
jp hl
|
||||||
|
|
||||||
.dw ; e2699 (38:6699) #mark
|
.dw
|
||||||
dw .withdraw ; Withdraw
|
dw .withdraw ; Withdraw
|
||||||
dw .stats ; Stats
|
dw .stats ; Stats
|
||||||
dw .release ; Release
|
dw .release ; Release
|
||||||
|
@ -27,7 +27,7 @@ PrinterJumptableIteration:
|
|||||||
ld l, a
|
ld l, a
|
||||||
jp hl
|
jp hl
|
||||||
|
|
||||||
.Jumptable: ; 84031 (21:4031)
|
.Jumptable:
|
||||||
dw Print_InitPrinterHandshake ; 00
|
dw Print_InitPrinterHandshake ; 00
|
||||||
dw Printer_CheckConnectionStatus ; 01
|
dw Printer_CheckConnectionStatus ; 01
|
||||||
dw Printer_WaitSerial ; 02
|
dw Printer_WaitSerial ; 02
|
||||||
|
@ -41,14 +41,14 @@ RestoreTileBackup::
|
|||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec de
|
dec de
|
||||||
dec c
|
dec c
|
||||||
jr nz, .col ; 0x1c3b $fa
|
jr nz, .col
|
||||||
|
|
||||||
pop hl
|
pop hl
|
||||||
ld bc, SCREEN_WIDTH
|
ld bc, SCREEN_WIDTH
|
||||||
add hl, bc
|
add hl, bc
|
||||||
pop bc
|
pop bc
|
||||||
dec b
|
dec b
|
||||||
jr nz, .row ; 0x1c44 $ef
|
jr nz, .row
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ PopWindow::
|
|||||||
ld [de], a
|
ld [de], a
|
||||||
inc de
|
inc de
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop ; 0x1c50 $fa
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
GetMenuBoxDims::
|
GetMenuBoxDims::
|
||||||
|
@ -40,7 +40,7 @@ InitScrollingMenu::
|
|||||||
pop bc
|
pop bc
|
||||||
jp TextBox
|
jp TextBox
|
||||||
|
|
||||||
JoyTextDelay_ForcehJoyDown:: ; 354b joypad
|
JoyTextDelay_ForcehJoyDown::
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
|
|
||||||
ld a, [hInMenu]
|
ld a, [hInMenu]
|
||||||
|
2
main.asm
2
main.asm
@ -264,7 +264,7 @@ INCLUDE "engine/gfx/load_pics.asm"
|
|||||||
INCLUDE "engine/pokemon/move_mon_wo_mail.asm"
|
INCLUDE "engine/pokemon/move_mon_wo_mail.asm"
|
||||||
INCLUDE "data/pokemon/base_stats.asm"
|
INCLUDE "data/pokemon/base_stats.asm"
|
||||||
INCLUDE "data/pokemon/names.asm"
|
INCLUDE "data/pokemon/names.asm"
|
||||||
INCLUDE "data/unused_53d84.asm"
|
INCLUDE "data/pokemon/unused_pic_banks.asm"
|
||||||
|
|
||||||
UnknownEggPic::
|
UnknownEggPic::
|
||||||
; Another egg pic. This is shifted up a few pixels.
|
; Another egg pic. This is shifted up a few pixels.
|
||||||
|
@ -1035,7 +1035,7 @@ ClearScreenArea:
|
|||||||
ld a, $18
|
ld a, $18
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_89713 ; 0x8971c $f5
|
jr nz, .asm_89713
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Function8971f:
|
Function8971f:
|
||||||
|
@ -810,7 +810,8 @@ Mobile_AlwaysReturnNotCarry:
|
|||||||
or a
|
or a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
|
Function106331:
|
||||||
|
; called by Mobile_DummyReturnFalse in Crystal-J
|
||||||
; check ~[4:b000] == [7:a800]
|
; check ~[4:b000] == [7:a800]
|
||||||
ld a, $4
|
ld a, $4
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
|
@ -5130,7 +5130,7 @@ String_11a7ac:
|
|||||||
db "データ<NO>よみこみを"
|
db "データ<NO>よみこみを"
|
||||||
next "ちゅうし しますか?@"
|
next "ちゅうし しますか?@"
|
||||||
|
|
||||||
String_11a7c1: ; 11a7c1 ; new news?
|
String_11a7c1:
|
||||||
db "あたらしい ニュースは"
|
db "あたらしい ニュースは"
|
||||||
next "ありません でした@"
|
next "ありません でした@"
|
||||||
|
|
||||||
|
@ -5076,7 +5076,7 @@ String_17fe63:
|
|||||||
next "せつめいしょを ごらんください"
|
next "せつめいしょを ごらんください"
|
||||||
db "@"
|
db "@"
|
||||||
|
|
||||||
String_17fe9a: ; 17fe9a ; unused
|
String_17fe9a: ; unused
|
||||||
db "ポケモンニュースが"
|
db "ポケモンニュースが"
|
||||||
next "あたらしくなっているので"
|
next "あたらしくなっているので"
|
||||||
next "レポートを おくれません"
|
next "レポートを おくれません"
|
||||||
|
2
sram.asm
2
sram.asm
@ -208,7 +208,7 @@ sBattleTowerSaveFileFlags:: db
|
|||||||
sBattleTowerReward:: db
|
sBattleTowerReward:: db
|
||||||
|
|
||||||
; team of previous trainer
|
; team of previous trainer
|
||||||
sBTMonOfTrainers:: ; 0xbe51
|
sBTMonOfTrainers:: ; be51
|
||||||
sBTMonPrevTrainer1:: db
|
sBTMonPrevTrainer1:: db
|
||||||
sBTMonPrevTrainer2:: db
|
sBTMonPrevTrainer2:: db
|
||||||
sBTMonPrevTrainer3:: db
|
sBTMonPrevTrainer3:: db
|
||||||
|
Loading…
Reference in New Issue
Block a user