pret / pokered

Disassembly of Pokémon Red/Blue
3.94k stars 965 forks source link

Label the last two multi-purpose WRAM locations, `wd0b5` and `wd11e` #456

Open Rangi42 opened 1 month ago

Rangi42 commented 1 month ago

After these are identified, tools/unnamed.py should be removed and the GitHub workflow should stop sending its output to Discord.

Rangi42 commented 1 month ago

Here's wd11e and its other labels so far:

wPokeBallCaptureCalcTemp::
; lower nybble: number of shakes
; upper nybble: number of animations to play
wPokeBallAnimData::
wUsingPPUp::
wMaxPP::
; 0 for player, non-zero for enemy
wCalculateWhoseStats::
wTypeEffectiveness::
wMoveType::
wNumSetBits::
; used as a Pokemon and Item storage value. Also used as an output value for CountSetBits
wd11e::
    db

It approximately corresponds to these labels at $01:D151 in pokegold:

wNamedObjectIndex::
wTextDecimalByte::
wTempByteValue::
wNumSetBits::
wTypeMatchup::
wCurType::
wTempSpecies::
wTempIconSpecies::
wTempTMHM::
wTempPP::
wNextBoxOrPartyIndex::
wChosenCableClubRoom::
wBreedingCompatibility::
wMoveGrammar::
wApplyStatLevelMultipliersToEnemy::
wUsePPUp::
    db
Rangi42 commented 1 month ago

wd0b5 roughly corresponds to these bytes in pokegold:

wBattleMode::
; 0: overworld
; 1: wild battle
; 2: trainer battle
    db

wTempWildMonSpecies:: db

wOtherTrainerClass::
; class (Youngster, Bug Catcher, etc.) of opposing trainer
; 0 if opponent is a wild Pokémon, not a trainer
    db

; BATTLETYPE_* values
wBattleType:: db

    ds 1

wOtherTrainerID::
; which trainer of the class that you're fighting
; (Joey, Mikey, Albert, etc.)
    db

wForcedSwitch:: db

wTrainerClass:: db

(Note the labels after it, e.g. wMonHeader corresponds to wCurBaseData, wDamage to wCurDamage, wd11e and its corresponding labels, etc.)