mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Document more quirks and bugs
This commit is contained in:
parent
7df5d4f25e
commit
f0b01a4eea
@ -16,6 +16,7 @@ CURRENT_MAP_HEIGHT = \2_HEIGHT
|
|||||||
db \4
|
db \4
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
; Connections go in order: north, south, west, east
|
||||||
connection: MACRO
|
connection: MACRO
|
||||||
;\1: direction
|
;\1: direction
|
||||||
;\2: map name
|
;\2: map name
|
||||||
|
@ -8,6 +8,18 @@ INCLUDE "data/pokemon/evos_attacks_pointers.asm"
|
|||||||
|
|
||||||
|
|
||||||
EvosAttacks::
|
EvosAttacks::
|
||||||
|
; Evos+attacks data structure:
|
||||||
|
; - Evolution methods:
|
||||||
|
; * db EVOLVE_LEVEL, level, species
|
||||||
|
; * db EVOLVE_ITEM, used item, species
|
||||||
|
; * db EVOLVE_TRADE, held item (or -1 for none), species
|
||||||
|
; * db EVOLVE_HAPPINESS, TR_* constant (ANYTIME, MORNDAY, NITE), species
|
||||||
|
; * db EVOLVE_STAT, level, ATK_*_DEF constant (LT, GT, EQ), species
|
||||||
|
; - db 0 ; no more evolutions
|
||||||
|
; - Learnset (in increasing level order):
|
||||||
|
; * db level, move
|
||||||
|
; - db 0 ; no more level-up moves
|
||||||
|
|
||||||
|
|
||||||
BulbasaurEvosAttacks:
|
BulbasaurEvosAttacks:
|
||||||
db EVOLVE_LEVEL, 16, IVYSAUR
|
db EVOLVE_LEVEL, 16, IVYSAUR
|
||||||
@ -831,7 +843,7 @@ AbraEvosAttacks:
|
|||||||
db 0 ; no more level-up moves
|
db 0 ; no more level-up moves
|
||||||
|
|
||||||
KadabraEvosAttacks:
|
KadabraEvosAttacks:
|
||||||
db EVOLVE_TRADE, $ff, ALAKAZAM
|
db EVOLVE_TRADE, -1, ALAKAZAM
|
||||||
db 0 ; no more evolutions
|
db 0 ; no more evolutions
|
||||||
db 1, TELEPORT
|
db 1, TELEPORT
|
||||||
db 1, KINESIS
|
db 1, KINESIS
|
||||||
@ -875,7 +887,7 @@ MachopEvosAttacks:
|
|||||||
db 0 ; no more level-up moves
|
db 0 ; no more level-up moves
|
||||||
|
|
||||||
MachokeEvosAttacks:
|
MachokeEvosAttacks:
|
||||||
db EVOLVE_TRADE, $ff, MACHAMP
|
db EVOLVE_TRADE, -1, MACHAMP
|
||||||
db 0 ; no more evolutions
|
db 0 ; no more evolutions
|
||||||
db 1, LOW_KICK
|
db 1, LOW_KICK
|
||||||
db 1, LEER
|
db 1, LEER
|
||||||
@ -989,7 +1001,7 @@ GeodudeEvosAttacks:
|
|||||||
db 0 ; no more level-up moves
|
db 0 ; no more level-up moves
|
||||||
|
|
||||||
GravelerEvosAttacks:
|
GravelerEvosAttacks:
|
||||||
db EVOLVE_TRADE, $ff, GOLEM
|
db EVOLVE_TRADE, -1, GOLEM
|
||||||
db 0 ; no more evolutions
|
db 0 ; no more evolutions
|
||||||
db 1, TACKLE
|
db 1, TACKLE
|
||||||
db 1, DEFENSE_CURL
|
db 1, DEFENSE_CURL
|
||||||
@ -1248,7 +1260,7 @@ GastlyEvosAttacks:
|
|||||||
db 0 ; no more level-up moves
|
db 0 ; no more level-up moves
|
||||||
|
|
||||||
HaunterEvosAttacks:
|
HaunterEvosAttacks:
|
||||||
db EVOLVE_TRADE, $ff, GENGAR
|
db EVOLVE_TRADE, -1, GENGAR
|
||||||
db 0 ; no more evolutions
|
db 0 ; no more evolutions
|
||||||
db 1, HYPNOSIS
|
db 1, HYPNOSIS
|
||||||
db 1, LICK
|
db 1, LICK
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
Trainers:
|
Trainers:
|
||||||
; Trainer data structure:
|
; Trainer data structure:
|
||||||
; db "NAME@", TRAINERTYPE_* constant
|
; - db "NAME@", TRAINERTYPE_* constant
|
||||||
; 1 to 6 Pokémon:
|
; - 1 to 6 Pokémon:
|
||||||
; * for TRAINERTYPE_NORMAL: db level, species
|
; * for TRAINERTYPE_NORMAL: db level, species
|
||||||
; * for TRAINERTYPE_ITEM: db level, species, item
|
; * for TRAINERTYPE_ITEM: db level, species, item
|
||||||
; * for TRAINERTYPE_MOVES: db level, species, 4 moves
|
; * for TRAINERTYPE_MOVES: db level, species, 4 moves
|
||||||
; * for TRAINERTYPE_ITEM_MOVES: db level, species, item, 4 moves
|
; * for TRAINERTYPE_ITEM_MOVES: db level, species, item, 4 moves
|
||||||
; db -1 ; end
|
; - db -1 ; end
|
||||||
|
|
||||||
|
|
||||||
FalknerGroup:
|
FalknerGroup:
|
||||||
|
@ -48,6 +48,7 @@ These are known bugs and glitches in the original Pokémon Crystal game: code th
|
|||||||
- [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation)
|
- [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation)
|
||||||
- [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect)
|
- [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect)
|
||||||
- [Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly](#only-the-first-three-evosattacks-evolution-entries-can-have-stone-compatibility-reported-correctly)
|
- [Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly](#only-the-first-three-evosattacks-evolution-entries-can-have-stone-compatibility-reported-correctly)
|
||||||
|
- [`EVOLVE_STAT` can break Stone compatibility reporting](#evolve_stat-can-break-stone-compatibility-reporting)
|
||||||
- [`ScriptCall` can overflow `wScriptStack` and crash](#scriptcall-can-overflow-wscriptstack-and-crash)
|
- [`ScriptCall` can overflow `wScriptStack` and crash](#scriptcall-can-overflow-wscriptstack-and-crash)
|
||||||
- [`LoadSpriteGFX` does not limit the capacity of `UsedSprites`](#loadspritegfx-does-not-limit-the-capacity-of-usedsprites)
|
- [`LoadSpriteGFX` does not limit the capacity of `UsedSprites`](#loadspritegfx-does-not-limit-the-capacity-of-usedsprites)
|
||||||
- [`ChooseWildEncounter` doesn't really validate the wild Pokémon species](#choosewildencounter-doesnt-really-validate-the-wild-pokémon-species)
|
- [`ChooseWildEncounter` doesn't really validate the wild Pokémon species](#choosewildencounter-doesnt-really-validate-the-wild-pokémon-species)
|
||||||
@ -1299,6 +1300,39 @@ This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` i
|
|||||||
**Fix:** Change `ld bc, 10` to `ld bc, wStringBuffer2 - wStringBuffer1` to support up to six Stone entries.
|
**Fix:** Change `ld bc, 10` to `ld bc, wStringBuffer2 - wStringBuffer1` to support up to six Stone entries.
|
||||||
|
|
||||||
|
|
||||||
|
## `EVOLVE_STAT` can break Stone compatibility reporting
|
||||||
|
|
||||||
|
This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/party_menu.asm](/engine/party_menu.asm):
|
||||||
|
|
||||||
|
```asm
|
||||||
|
.loop2
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .nope
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
cp EVOLVE_ITEM
|
||||||
|
jr nz, .loop2
|
||||||
|
```
|
||||||
|
|
||||||
|
**Fix:**
|
||||||
|
|
||||||
|
```asm
|
||||||
|
.loop2
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .nope
|
||||||
|
cp EVOLVE_STAT
|
||||||
|
jr nz, .not_four_bytes
|
||||||
|
inc hl
|
||||||
|
.not_four_bytes
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
cp EVOLVE_ITEM
|
||||||
|
jr nz, .loop2
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## `ScriptCall` can overflow `wScriptStack` and crash
|
## `ScriptCall` can overflow `wScriptStack` and crash
|
||||||
|
|
||||||
In [engine/scripting.asm](/engine/scripting.asm):
|
In [engine/scripting.asm](/engine/scripting.asm):
|
||||||
|
Loading…
Reference in New Issue
Block a user