Reference ยท Content

Game data tables

The balance data compiled into the overlays. Every table here is an array of structs whose layout the DWARF gives in full, so the field names are the original ones; tools/tables.py dump ELF NAME --overlay gcmn prints any of them. Tables are read after the overlay's constructors have run.

Inventory

tableoverlayVAelementrowssize
enemyTblgcmn0x005f1e70ccEnemyTable303448
skillTblgcmn0x0061f4a0ccSkillParam30456
BossSkillTblgcmn0x00696ce0ccSkillParam6156
itemTblEgcmn0x00624350ccItemParam29120
itemTblDgcmn0x00623900ccItemParam7220
equipmentWeapon1Tblgcmn0x0063f560ccEquipmentParam8272
equipmentWeapon2Tblgcmn0x00640c70ccEquipmentParam7772
equipmentWeapon3Tblgcmn0x00642220ccEquipmentParam9772
equipmentWeapon4Tblgcmn0x00643d70ccEquipmentParam7572
equipmentWeapon5Tblgcmn0x00645290ccEquipmentParam7472
equipmentWeapon6Tblgcmn0x00646760ccEquipmentParam7672
equipmentHeadTblgcmn0x0063a8d0ccEquipmentParam6972
equipmentBodyTblgcmn0x0063bc40ccEquipmentParam6872
equipmentArmTblgcmn0x0063cf60ccEquipmentParam6772
equipmentLegTblgcmn0x0063e240ccEquipmentParam6872
bossTblgcmn0x006130b0ccBossParamData49104
LevelUpParamTblgcmn0x005d1800ccLevelUpTbl1836
spcAIParamgcmn0x00653ca0ccAIParam1836
storeConditiongcmn0x0072fb00ccStoreCondition18112
EditDungeongcmn0x00695cd0EDITDUNGEON8824
bookItemListgcmn0x005d2f40BOOKITEMDATA1898
_g_cinemaSkillNamegcmn0x005eb040CINEMASKILLNAME_T7212
charTbldemo0x0040dc80ccSpcParamData1892

enemyTbl, skillTbl and BossSkillTbl are declared without a length; the row counts come from their ELF symbol sizes (135,744, 17,024 and 3,416 bytes).

Shared records

Enemies, bosses and party characters share a base record, shown flattened as base.* (param.base.* in enemyTbl):

name        char *      display name
ccsname     char *      the model's CCS file, a DATA.BIN name without ".CCS"
type        s32
id          s32
level       s32
exp         s32
gold        s32
height      f32         collision
width       f32         collision
msg         pointer     the address of the row's message table

followed by maxHP, maxSP, and elm: battleAbility (pAtk, pDef, pHit, pEva, mAtk, mDef, mHit, mEva), attribute (soil, water, fire, wind, thunder, dark) and tolerance (spirit, body). Equipment carries the same elm block plus name, ccsname and auraSW. Print tools/dwarf1.py type SLUS_202.67 ccEnemyTable for the full layouts.

What the fields drive is on the engine pages. The enemy type bits, Exdefense (+0x64), the AI fields, entry and the skill and item effect fields are in battle (the skill types, hit and damage, enemy AI, items). How an area's enemyOfs and the lists enemyList00..enemyList46 pick the rows it registers is in area words and in battle's "Where the entries come from"; story areas take column 6.

Content

  • Party (charTbl, 18): Kite, Mia, Orca, Marlo, Sanjuro, Nuke Usagimaru, Balmung, Moonstone, Piros, Wiseman, Elk, Natsume, Rachel, Gardenia, Terajima Ryoko, BlackRose, Mistral, Helba.
  • Bosses (bossTbl, 49): Skeith, Inis, Magus, Fidhell, Gorre, Macha, Tarvos, Corbenik and later forms, Cubia and its cores, the Gomoras, and nine entries whose names are still Japanese.
  • Enemies: 303 rows, 279 distinct names; three rows at level 95-99 are named San=Hi/, AAAAAAA, DDDDDDD.

Other volumes

The same tables exist in every volume. tools/battle.py finds them from their accessor functions, since the stripped volumes' carried names are missing or wrong for some. For example, MUT's carried skillTbl points 0x11b0 bytes into the table, whose real start is 0x0064e2f0. What changes:

  • INF to MUT:
    • charTbl and LevelUpParamTbl go from 18 to 21 rows; Kite now starts at level 30.
    • skillTbl, 33 rows: the summons hit harder (atk 150/250/350/450 become 250/350/450/550), the Kruz element goes from 80 to 100, and Meooow's cost goes from 20 to 70.
    • BossSkillTbl goes from 61 to 79 rows, with display names instead of internal ones.
    • enemyTbl changes in 127 rows ("Temple Night" becomes "Temple Knight") and bossTbl in 27 ("Inis" becomes "Innis").
    • Armour changes mostly as smaller pHit/pEva penalties. Weapons 1, 4 and 6 each gain a row: "Last Betrayal", "Fate Encounter", "Ludicrous".
  • MUT to OUT: skillTbl 20 rows (the Don/Zot dmgRates go up), enemyTbl 84 rows, 10 equipment and 51 item name fixes, and charTbl 15 rows.
  • OUT to QUA: only charTbl, in 14 rows.
  • expCalcTbl, ccEntryRaceTbl, dataDrainErosionTbl and the erosion table are identical in all four.

Unknown

Nothing.