Claim set · data/claims/lufia-tables.yaml

Lufia & the Fortress of Doom's data tables (USA ROM, read from its bytes and our own disassembly of the code that reads them)

Game: Lufia & the Fortress of Doom.

Each of the 165 monsters has a record reached through a table of 165 offsets at the start of the monster data: a 10-letter name, then fixed fields, then an ailment group (a mask byte and one byte per set bit), an element group (a mask and one byte per set bit of its low 7), and a count byte with that many more. The battle loader copies the name and the fixed bytes into the fighter, widening the bytes at +24 to +26 to words; the reward code reads the experience as a word at +27, the gold as a word at +30, the dropped item at +32 and its rate at +33. Lufia Forge names the words at +16, +20 and +22 HP, ATP and DFP and treats the word at +18 as MP, the bytes at +24 to +26 M.DEF, AGL and MGR, the byte at +12 the element the monster is weak to and +13 the physical damage it then takes in sixteenths, and the element group's bytes magic damage multipliers in sixteenths. 77 monsters carry a drop. HP runs up to 65535 (Gades). lufia-tables/monsters

No.MonsterHPMPATPDFPM.DEFAGLMGREXPGoldDropDrop rate (of 255)Weak toWeak-element hitsMagic damage by elementAilment bytes
0Big Newt11010604521Grilled Newt25Water 19/16Paralysis 12
1Bore Worm2103010011973Fire24/16Fire 24/16
2Jellyfish16013703832Fire24/16Fire 24/16
3Anemone170151006852Fire24/16Fire 24/16
4Earwig170141008843
5Frog44245218720383920Fire24/16Fire 27/16, Water 4/16
6Rat30032130209106
7Nettles180171108878Fire24/16Fire 24/16, Water 8/16
8Madshroom130121205532Potion12Ice24/16Ice 24/16
9Spider180141307843
10Beetle470924882593828Ice24/16Ice 25/16
11Spike Newt420382301891912Poison Pin51
12Green Orb160201309865Opal7Sleep 255
13Mini Demon2550361631212136Potion51
14Ghoul127012036045822560Potion25Sleep 255
15Flamefreak120121042704618847Fry Pan7
16Giant Newt27034180128117Grilled Newt76Fire24/16Fire 24/16
17Skeleton900884023405340Sleep 255
18Crazy Jar1014088613046252555Magic Jar51Sleep 255
19Mummy650642222215396Antidote25Fire28/16Fire 32/16Sleep 255
20Giant Bat2463414012994Water22/16Water 22/16
21Red Orb5212743622518456Emerald7Sleep 255
22Mini Crab30046260129177Pot2Bolt22/16Bolt 22/16, Water 8/16
23Poison Rat56064222258328Poison Pin25
24Land Worm1604218661764344008
25Big Meany110121083204220909Ear Tip5
26Horrorquin7608868740179539Gown7
27Straw Man7307058730124810Long Nail102Fire24/16Fire 32/16Sleep 255
28Tarantula7209242035186833
29Yeoman90013940060020034Hi Arrows25Bolt24/16Bolt 24/16
30Kobold1604012081385Mid Arrow76
31Willowisp3044030000121293736Bolt 0/16Death 255
32Chomp Weed9701053203606037Fire25/16Fire 32/16
33Mud Man70168832622274538Sleep 255
34Jellybean98208032032357038Fire24/16Fire 24/16
35Killer Bee320921203604141Poison Pin76Ice24/16Ice 24/16
36Red Magi28750121518332042Hi Magic51
37Pin Lizard92013862552016045Ice24/16Ice 32/16
38Swordspook470701242003043Scimitar3Death 255
39Dummy000000000
40Nightmare80409032229255246
41Blue Wolf63010632218153848
42Orc720982002704347
43Dark Demon103788427422910050Hi Potion51
44Zombie410582001901850Sleep 255
45Blue Meany10312120304432014048
46Nail Man15841557822703360048Straw Doll102Fire28/16Fire 32/16Sleep 255
47Giant Oak13036134283433213554Fire24/16Fire 32/16
48Flamespook48406228317243955Water32/16Fire 0/16, Ice 24/16, Water 32/16
49Spellsnail85101006042406452Fire19/16Water 8/16
50Gargoyle1060982703909754Fire22/16Fire 22/16
51Harpie1100130612252025057
52Crazy Pot40105814225103458Magic Jar76
53Fight3506114018102060Bolt24/16Bolt 24/16
54Werewolf150019261066041061Ice 4/16
55Archer8007830032154660Foul Water25Bolt24/16Bolt 32/16
56Terrorquin10010145128327045360163Ex Potion51
57Mace Man1200138680491711064Bolt24/16Bolt 28/16
58Goblin3205216016121662Awaken25
59Dark Elf821082821040188568Mind Gourd25
60Dummy000000000
61Zooster138014748569033570Stone Cure7
62Blue Wisp6114903000012523020070Bolt 0/16Death 255
63Ghost Mail520684021502874Light Armor5Death 255
64Dracu Rose3205820016132273Hi Arrows51Fire24/16Fire 24/16
65Sabrespook12001959819700550142Buster Sword3Death 255
66Frogula13924100111444426569Antidote51Ice24/16Ice 32/16, Water 3/16
67Sand Man54328852527285968Smoke Ball12Water24/16Water 32/16
68Axe Knight132251689413626531077Tower Shield3Bolt22/16Bolt 32/16
69Mud Ghoul22802392633680495240Hi Bomb25Sleep 255
70Dummy000000000
71Rok12730120386372612880Swing Wing25
72Blue Skull1705018256148058550192Sleep 255, Death 255
73Green Magi149200042346855750350Hi Magic51
74Huge Bunny3805616124121483Ribbon7
75Ice Snake104014852555024080Sleep Arrow25Ice24/16Ice 32/16
76Sting850120341340010080Poison Pin25
77Evil Clam1670212961178079387Earring7Fire22/16Fire 22/16, Water 3/16
78Baby Crab2662219161285Small Knife2Fire19/16Fire 19/16, Water 8/16
79Lobsteron1170160886553026089Goblet2Fire22/16Fire 32/16, Water 3/16
80Sea Snake171020848973073090Power Gourd5Fire22/16Fire 22/16, Water 3/16
81Magura236302588842960140091Fire24/16Fire 24/16, Water 0/16
82Manta Ray224023011035920140093Fire24/16Fire 28/16, Water 0/16
83Killer Eel1280145541161025595Fire24/16Fire 28/16, Water 3/16
84Starfish171018548956045092Fire24/16Fire 24/16, Water 3/16
85Halloween72501491492483423097Puzzle Arrow25
86Red Wolf1751219260127820700186Ice 3/16
87Trap Harp241018836166025290100Ex Potion7Fire24/16Fire 24/16
88Gold Orc1250148366380130100Small Knife7
89Mega Frog3898244681790601200500Miracle7Ice24/16Ice 24/16, Water 3/16
90Cave Rok1540154346760450200
91Armor Lord10901486814450180107Ex Potion5Bolt22/16Bolt 32/16
92Mad Wolf191402439822100671250210Ice 3/16
93Demon Mace15250196122237845700340Morning Star5Bolt22/16Bolt 32/16
94Dummy000000000
95Dark Spook139818996639085800214Gloom Guard5Sleep 255, Death 255
96Crazy Pine190820040176156380107Power Gourd7Fire24/16Fire 32/16
97Steel Lord1830248183329635975218Grand Blade5Bolt22/16Bolt 32/16
98Roozard24048181141012107Apron7
99Zaurus1571218544217040470208Ice22/16Ice 28/16
100Fire Plate180602482554090671100226Might Armor2Sleep 255, Death 255
101Sand Rose1070108602905533Hi Potion25Fire24/16Fire 32/16
102Mad Lily28401955814510340113Fire22/16Fire 22/16
103Jelly Bolt1531416284136644400117Fire22/16Fire 32/16, Water 3/16
104Red Star1570152493480240116Fire22/16Fire 32/16, Water 3/16
105Psychoclam1022014510694840275133Fire22/16Fire 25/16, Water 3/16
106Sea Dragon27915240924092612000300Dragon Tooth12Fire22/16Fire 28/16, Water 0/16
107Waterspout24230300214531301403000400Fire24/16Water 0/16
108Berserker154023011421860850240Gloom Arrow15
109Werefrog1631520244116845550400Great Potion2Ice22/16Ice 28/16, Water 8/16
110Rock Golem2620265255637501550240Sleep 255, Death 255
111Lizard Man1580235124318830725242Carbo Shield5Ice20/16Ice 32/16
112Basilisk1951001967636840850244Stone Cure25
113Gorgon294026180459401900246Stone Cure12
114Efreet288152711444193801900300Hi Potion25Water24/16Fire 0/16, Water 28/16
115Vampire1716018078378060900400Hi Magic25Sleep 255
116Salamander2062020244228890925260Grilled Newt127Ice20/16Fire 0/16, Ice 25/16
117Mega Atlas308032578299002929400Power Potion5Blast 0/16
118Red Skull28860294174661081202400264
119Megaturtle26650277160228401300266Ice24/16Ice 24/16, Blast 3/16
120Mad Knight27915263102209601750266Ex Potion12Bolt24/16Bolt 32/16
121Mad Cleric199999100192148981203333274Ex Magic12
122Eye Curse1581517876368013650266Ice22/16Ice 32/16
123Zaurus Rex305182999635981052100286Fire 28/16, Ice 0/16
124Manticore18201984017730750400Mind Potion2
125Gloom2238270108801102001999290Miracle7Sleep 255, Death 255
126Barient3150307170279502300290Might Helmet2Bolt20/16Bolt 32/16
127Hydra3211002871004790981850300Might Sword1
128Troll285020552137715800300Water 3/16
129Griffon2520238663990551500300
130Dragon567176325196491001202800330Dragon Arrow25
131Act Demon343100347226941401603666550Foul Water12
132Gold Golem3700380310102135033331000Sleep 255, Death 255
133Electromaz24924310212601201503000500Water24/16Blast 0/16Sleep 255, Death 255
134Whirlwind18936300152601601403000400Blast24/16Ice 0/16Sleep 255, Death 255
135Fire Wave20630280168421301403000500Water24/16Fire 0/16Sleep 255, Death 255
136Humungus3600346200509802850308Blast 0/16
137Wing Lion2892031984381001002700322Spell Potion5
138Act Hydra378999340194461301403456400
139Act Dragon705303602556315018040001000Diamond Ring7
140Redcore10165535150300002501000133334000Fire 0/16, Ice 0/16, Bolt 0/16, Water 0/16, Blast 0/16Paralysis 255, Sleep 255, Confuse 8, Death 255
141Greencore20065535250300002501400650008000Fire 0/16, Ice 0/16, Bolt 0/16, Water 0/16, Blast 0/16Paralysis 255, Sleep 255, Confuse 8, Death 255
142Mimick2965535703000063300663339Fire 0/16, Ice 0/16, Bolt 0/16, Water 0/16, Blast 0/16Paralysis 255, Sleep 255, Confuse 8, Death 255
143Mimicker496553513000012555402999813Fire 0/16, Ice 0/16, Bolt 0/16, Water 0/16, Blast 0/16Paralysis 255, Sleep 255, Confuse 8, Death 255
144Gades655351009991001800Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
145Gades280051234020355140108300000Bolt 20/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
146Amon2600102428120065140140300000Fire 20/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
147Erim2600153622019182140176300000Bolt 3/16, Water 20/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
148Daos3000204832821260140160300000Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
149Guard Daos6304100004403318214519000Bolt 25/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
150Phantasm6401609578122642800500Paralysis 255, Sleep 4, Confuse 4, Death 255, Mute 255
151Follower88833311012414403814001000Paralysis 255, Sleep 4, Confuse 4, Death 255, Mute 4
152Dark Ghost920100015016518655023002000Bolt 20/16, Water 8/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
153Guardian14119999200225457710050005000Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
154Pirates288020012940905732321Water 8/16Paralysis 255, Sleep 4, Confuse 8, Death 6
155Pirates348065535258166188090260003776Water 3/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
156Oil Dragon46506553527516527110116310003820Fire 4/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
157Nazeby546865535126083130148500000Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
158Demon Lord48832303122050111Death 255
159Goblins1180462661612100168Sleep 255, Death 255
160Apprentice3001000066460162200200Death 255
161Gades400065535440283721587650000Bolt 22/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
162Amon38001000029128263140161650000Fire 20/16Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
163Daos42001000028030082156170650000Paralysis 255, Sleep 255, Confuse 255, Death 255, Mute 255
164Bosun12886553515814933100881032721Water 6/16Paralysis 255, Sleep 255, Confuse 4, Death 255, Mute 255
CodeLufia & the Fortress of Doom (USA) · 0x5800-0x5949 — the monster offset table at $00:D800: 165 words, each an offset from $D800 (the first, $014A, is twice the count)Lufia & the Fortress of Doom (USA) · 0x594A-0x7D90 — the 165 records at $00:D94A-$FD90, each followed by the monster's battle scriptLufia & the Fortress of Doom (USA) · 0xF67D-0xF68F — $01:F67D-$F68F: Y = the word at $D800 + 2 x monster (the record's offset)Lufia & the Fortress of Doom (USA) · 0xF570-0xF665 — $01:F570-$F665, the battle loader: copy the 10-byte name (spaces as 0), bytes +10 to +23 one to one, +24 to +26 each into a word, +27 to +35 one to one; then the ailment and element groups (mask byte, one byte per set bit, 8 and 7 bits) and the counted bytes; then M.DEF x 4, the HP with its random bonus into current and maximum HP, and MPLufia & the Fortress of Doom (USA) · 0x43C26-0x43CA6 — $08:BC26-$BCA6, a defeated monster's rewards: add the experience word (fighter +$1F, record +27) to the battle's total; gold word (+$22, record +30) plus a random bonus; if the item byte (+$24, record +32) isn't 0 and random(255) < the rate byte (+$25, record +33), it is the dropLufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataOffsets.cs#L36-L39// u16 pointers relative to the table start. // +0 name (10) +10 type/flags +12 weakness +14 graphic +15 palette // +16 HP +20 ATP +22 DFP (u16) +24 M.DEF +25 AGL +26 MGR (u8) // +27 EXP (u16) +30 GP (u16) +32 item dropped +33 drop rate (/255)Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/MonsterEditorViewModel.cs#L34-L38private static readonly int[] UnknownFields = { 11, 29 }; public static readonly string[] ElementNames = { "Fire", "Ice", "Bolt", "Water", "Blast", "Light", "Dark" }; /// <summary>Spell damage per element (the record's second masked group).</summary> public ObservableCollection<ElementRow> MagicElements { get; } = new(ElementNames.Select(n => new ElementRow { Name = n })); /// <summary>Physical damage from attacks of the "weak against" element, in percent (+13, in 16ths).</summary>Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/MonsterEditorViewModel.cs#L337if (rom.ReadUInt16Le(o + 18) == 0) { rom.WriteUInt16Le(o + 18, 40); gaveMp = true; } // a caster needs MPLufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Core/Battle/MonsterTable.cs#L227-L233// ── magic elements: the record's second masked group (bit n = element n + 1, one multiplier byte per set bit) ── /// <summary>Elements the battle code reads per target ($08:BFFD, 7 entries): 1 Fire .. 5 Blast, and 6 Light, /// 7 Dark, which the game never uses but handles the same way.</summary> public const int ElementCount = 7; /// <summary>Magic damage multipliers in 16ths for elements 1-7 (0 = normal damage).</summary>Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataLabels.cs#L139-L140public static readonly string[] Ailments = { "Paralysis", "Stone", "Sleep", "Confuse", "Poison", "Death", "Mute", "Mirror" };Checked by claude-agent, 2026-11-08 — disassembled the offset lookup at $01:F67D, the battle loader at $01:F570 and the reward routine at $08:BC26 from the ROM, and decoded every record through the offset table with a scratch reader that walks the same groups the loader walks; Lufia Forge's field names quotedRevised after a check by a second AI model, 2026-11-08.

Names are as the ROM spells them, with the "@" the game's text uses inside a name read as a space. The ailment bytes follow Lufia Forge's order of the mask's bits (Paralysis, Stone, Sleep, Confuse, Poison, Death, Mute, Mirror) and the element bits its order (Fire, Ice, Bolt, Water, Blast, Light, Dark); an empty cell is a clear bit. The bytes at +11 and +29, a type byte at +10 and the graphic at +14 are left out. Monster numbers are the game's ids, from 0.

Each of the 256 items has a record reached through a table of 256 offsets: a 12-letter name, bytes at +12 to +15, a word at +16, a mask byte at +20, one record-relative pointer for each set bit of the mask's low six, and then a list of three-byte properties (an id and a word) ended by 0, which the record reader spreads into one word per property id. The equip code takes a weapon's property 14 second byte as the wearer's hit byte (255 when it is 0), property 22 as the weapon's special, and averages the nonzero property 23 bytes of the other five pieces into the wearer's encounter byte. The other meanings are Lufia Forge's alone: it names +12 the type, +13 the equipment slot (1 weapon to 6 ring), the high four bits of +14 who can equip it (Hero, Lufia, Aguro, Jerin), the word at +16 the price, and the property ids 5 ATP, 6 DFP, 7 MGR, 8 AGL, 9 STR, 10 INT, 14 weight and hit chance, and the rest. 163 items have a slot by that reading; the 57 with a nonzero mask (the usable ones) have pointers before their property list. lufia-tables/items

No.ItemType byteSlotWho equipsPriceATPDFPSTRINTAGLMGRWeightHitOther properties (Lufia Forge's names; bytes)
0Nothing10
1Knife2weaponHLAJ101310255
2Club2weaponHA1202820255
3Mace2weaponLJ6004520255
4Dagger2weaponHLAJ501915255
5Long Knife2weaponLJ1802440255
6Short Sword2weaponHA3603930255
7Rod2weaponLJ48007528255
8Gladius2weaponHA1530016880255
9Glass Robe2weaponLJ72008825255
10Brone Sword2weaponHA14007140255
11Staff2weaponLJ3603735255
12Scimitar2weaponHA21009050255
13Rapier2weaponLJ24006630255
14Long Sword2weaponHA480011550255
15Long Staff2weaponLJ12005640255
16Axe2weaponHA300010480255
17Spear2weaponHA7805345255
18Morning Star2weaponHA9600142100255
19Catwhip2weaponLJ1560012160255
20Battle Axe2weaponHA1200015585255
21Hammer Rod2weaponLJ96009855255
22Trident2weaponHA780012860255
23Silver Rod2weaponLJ1200011250255
24Silver Sword2weaponHA2400019290255
25Buster Sword2weaponHA2800021790255
26Zircon Rod2weaponJ1920016050255
27Great Axe2weaponHA18600180100255
28Grand Blade2weaponHA3800024485255
29Zircon Axe2weaponA4800028885255
30Zircon Sword2weaponH4200025675255
31Broad Sword6weaponHA12008175255weapon special 1,0
32Broad Rod6weaponLJ12005075255weapon special 1,0
33Luck Blade6weaponA240040080127weapon special 2,0
34Gloom Pick6weaponLJ480005051weapon special 3,0
35Dual Blade2weaponH03000255
36Dress2armorLJ1204100
37Cloth2armorHLAJ1408150
38Cloth Armor2armorHA24012250
39Robe2armorLJ26011200
40Tan Armor2armorHA48016300
41Tan Robe2armorLJ54015250
42Light Armor2armorHA300028350
43Light Robe2armorLJ336024300
44Chain Mail2armorHA96020450
45Chain Cloth2armorLJ110018350
46Plate Cloth2armorLJ570031500
47Brone Armor2armorHA140024600
48Quilted Silk2armorLJ480028350
49Half Mail2armorHA420032650
50Brone Robe2armorLJ150021450
51Silver Armor2armorHA720042700
52Silver Robe2armorLJ840034500
53Plate Mail2armorHA580036800
54Zircon Robe2armorJ1200044550
55Zircon Armor2armorHA1200050750
56Clear Silk2armorLJ1000037500encounter 147,0
57Bracelet2shieldLJ90270
58Tan Shield2shieldHLAJ1805150
59Wood Shield2shieldHA3607200
60Buckler2shieldHA100013140
61Wood Wrist2shieldLJ4808210
62Kite Shield2shieldHA140015200
63Round Shield2shieldHA192018300
64Round Wrist2shieldLJ260015260
65Brone Shield2shieldHA72010330
66Tower Shield2shieldHA460025600
67Large Shield2shieldHA340020400
68Silver Wrist2shieldLJ280020280
69Silver Plate2shieldHA380023450
70Zircon Wrist2shieldJ840025300
71Zircon Plate2shieldHA840030450
72Cloth Helm2helmetHA120250
73Tan Helm2helmetHA2405100
74Hair Band2helmetLJ210270
75Wood Helm2helmetHA5408140
76Glass Cap2helmetLJ4604100
77Brone Helm2helmetHA120011210
78Red Beret2helmetLJ22008140
79Iron Helm2helmetHA250014300
80Plate Cap2helmetLJ380010170
81Plate Helm2helmetHA490016240
82Glass Beret2helmetLJ10006150
83Silver Helm2helmetHA740018270
84Sakret2helmetLJ620012220
85Zircon Beret2helmetJ960016250
86Zircon Helm2helmetHA1020025300
87Sandal2shoesHLAJ50220
88Cloth Shoes2shoesHLAJ300440
89Tan Shoes2shoesHLAJ840650
90Spike Shoes2shoesHA20005480
91Heeled Shoes2shoesLJ30005240
92Wind Shoes2shoesHA3900550
93Wind Heels2shoesLJ4900550
94Knife Shoes2shoesHA6000105100
95Needle Heels2shoesLJ720010280
96Sonic Shoes2shoesHA86005840
97Sonic Heels2shoesLJ102003820
98Sword Shoes2shoesHA11000158150
99Cat Heels2shoesLJ11400153120
100Mach Shoes2shoesHA116001050
101Mach Heels2shoesLJ122001030
102Power Ring2ringHLAJ120010element/slayer 0,0
103HiPower Ring2ringHLAJ600040element/slayer 0,0
104Daze Ring2ringHLAJ240084element/slayer 0,0
105Hi Daze Ring2ringHLAJ96004010element/slayer 0,0
106Mind Ring2ringHLAJ60003010element/slayer 0,0
107Sonic Ring2ringHLAJ48005element/slayer 0,0
108Mach Ring2ringHLAJ1080015element/slayer 0,0
109Undead Ring2ringHLAJ960element/slayer 0,4
110Ghost Ring2ringHLAJ1440element/slayer 0,3
111Dragon Ring2ringHLAJ3800element/slayer 0,7
112Sea Ring2ringHLAJ4440element/slayer 0,6
113Fly Ring2ringHLAJ1960element/slayer 0,1
114Water Ring2ringHLAJ2680element/slayer 4,0
115Fire Ring2ringHLAJ3600element/slayer 1,0
116Ice Ring2ringHLAJ4000element/slayer 2,0
117Electro Ring2ringHLAJ3920element/slayer 3,0
118Flash Ring2ringHLAJ3000element/slayer 0,0; spell element boost 3,28; element resist 3,8
119Flame Ring2ringHLAJ8000element/slayer 0,0; spell element boost 1,25; element resist 1,8
120Water Ring2ringHLAJ6000element/slayer 0,0; spell element boost 4,25; element resist 4,8
121Blast Ring2ringHLAJ10000element/slayer 0,0; spell element boost 5,24; element resist 5,8
122Frost Ring2ringHLAJ7000element/slayer 0,0; spell element boost 2,24; element resist 2,8
123Might Armor2armorHA6000010010800
124Might Shield2shieldHAJ360006532450
125Might Helmet2helmetHAJ10200352419300
126Gloom Ring2ringHLAJ6900ailment chance 6,127
127Gloom Voice129600
128Dummy10
129Brone Breast2shieldLJ84010300
130Carbo Sword2weaponHA3360023285255
131Carbo Plate2armorHA1080046750
132Carbo Shield2shieldHA600028550
133Carbo Helm2helmetHA890020290
134Carbo Cap2helmetLJ850014240
135Gloom Guard2ringHLAJ36005element/slayer 0,0; ailment resist 6,255
136Diamond Ring2ringHLAJ7200ring flags 2,0
137Engage Ring2ringHLAJ6000ring flags 4,0
138Monster Ring2ringHLAJ1200encounter 192,0
139Blue Ring2ringHLAJ4000108element/slayer 0,0
140Yellow Ring2ringHLAJ50002020element/slayer 0,0
141Red Ring2ringHLAJ4000105element/slayer 0,0
142Purple Ring2ringHLAJ60001010425element/slayer 0,0
143Green Ring2ringHLAJ4000444104element/slayer 0,0
144White Ring2ringHLAJ1000040204element/slayer 0,0
145Black Ring2ringHLAJ120001051040element/slayer 0,0
146Heavy Ring2ringHLAJ4000801200element/slayer 0,0
147Wave Ring2ringHLAJ30000302015815element/slayer 0,0
148Potion1938
149Hi Potion193400
150Ex Potion1933000
151Hi Magic1931000
152Ex Magic1936000
153Antidote1936
154Sweet Water6510
155Foul Water6510
156Awaken12910
157Stone Cure193100
158Mystery Pin12930
159Shriek1295
160Swing Wing6580
161Magic Guard12950
162Power Gourd129100
163Mind Gourd129100
164Power Potion650
165Spell Potion650
166Speed Potion650
167Mind Potion650
168Great Potion650
169Float6550
170Smoke Ball12980
171Arrow1292
172Mid Arrow12950
173Big Arrow129100
174Arrows12910
175Hi Arrows129100
176Ex Arrows129200
177Dragon Arrow129200
178Sleep Arrow1295
179Puzzle Arrow1298
180Stun Arrow12915
181Gloom Arrow12980
182Bomb129100
183Hi Bomb129250
184Ex Bomb129500
185Miracle1935000
186Revive193500
187Pear Cider19310
188Sour Cider19320
189Lime Cider19320
190Plum Cider19330
191Apple Cider1931000
192Hair Band2helmetLJ30110use data 0,0; animation 0,0
193Brooch2helmetLJ50110use data 0,0; animation 0,0
194Earring2helmetLJ80110use data 0,0; animation 0,0
195Necklace2helmetLJ100110use data 0,0; animation 0,0
196Stuffed Bear12950
197Stuffed Dog12910
198Stuffed Pig12910
199Emerald2ringHLAJ200use data 0,0; animation 0,0
200Opal2ringHLAJ100use data 0,0; animation 0,0
201Goblet12910
202Ear Tip1295
203Empty Bottle1292
204Gown2armorLJ100210use data 0,0; animation 0,0
205Ribbon2helmetLJ50110use data 0,0; animation 0,0
206Fry Pan2weaponHLAJ5053255use data 0,0; animation 0,0
207Small Knife2weaponHLAJ70101255use data 0,0; animation 0,0
208Pot2helmetHLAJ60310use data 0,0; animation 0,0
209Chop Block2shieldHLAJ30210use data 0,0; animation 0,0
210Apron2armorHLAJ60210use data 0,0; animation 0,0
211Dragon Egg10use data 0,0; animation 0,0
212Crown12000use data 0,0; animation 0,0
213Secret Map1500use data 0,0; animation 0,0
214Miracle Gem11400use data 0,0; animation 0,0
215Silver Wick12300use data 0,0; animation 0,0
216Royal Statue15000use data 0,0; animation 0,0
217Silver Tarot11800use data 0,0; animation 0,0
218Golden Pawn13600use data 0,0; animation 0,0
219Crown Jewels2helmetHLAJ120004100
220Wind Flute1294600
221Escape65200
222Magic Jar19310
223Dragon Tooth129120
224Grilled Newt1932
225Poison Pin12910
226Might Sword2weaponHA950038030255
227Straw Doll110use data 0,0; animation 0,0
228Long Nail14use data 0,0; animation 0,0
229Bomb1100use data 0,0; animation 0,0
230Alumina10use data 0,0; animation 0,0
231Power Oil10use data 0,0; animation 0,0
232Elven Bow2weaponJ28005838255
233Artea's Bow2weaponJ2400010050255
234Might Bow2weaponJ3000014862255
235Dummy650use data 0,0; animation 0,0
236Dummy650use data 0,0; animation 0,0
237Dummy650use data 0,0; animation 0,0
238Dummy650use data 0,0; animation 0,0
239Free Door650use data 0,0; animation 0,0
240Sheran Key650use data 0,0; animation 0,0
241Letter650use data 0,0; animation 0,0
242Dais Key650use data 0,0; animation 0,0
243Shrine Key650use data 0,0; animation 0,0
244Pirate Key650use data 0,0; animation 0,0
245Light Key650use data 0,0; animation 0,0
246Oil Key650use data 0,0; animation 0,0
247Green Jade650use data 0,0; animation 0,0
248Red Sapphire650use data 0,0; animation 0,0
249Blue Jade650use data 0,0; animation 0,0
250Purple Newt650use data 0,0; animation 0,0
251Glasdar Key650use data 0,0; animation 0,0
252Magic Flavor650use data 0,0; animation 0,0
253Fairy Kiss650use data 0,0; animation 0,0
254Not Use650use data 0,0; animation 0,0
255Not Use650use data 0,0; animation 0,0
CodeLufia & the Fortress of Doom (USA) · 0x55800-0x559FF — the item offset table at $0A:D800: 256 words, each an offset from $D800Lufia & the Fortress of Doom (USA) · 0x55A00-0x5787F — the records from $0A:DA00, to the end of the last property listLufia & the Fortress of Doom (USA) · 0x47AD0-0x47AE2 — $08:FAD0-$FAE2: X = $D800 + the word at $D800 + 2 x item (data bank $0A)Lufia & the Fortress of Doom (USA) · 0x47999-0x47A2C — $08:F999-$FA2C, the record reader: clear $50 bytes; copy the 12-byte name (spaces as 0), then +12 to +20; for each set bit of the +20 mask's low six take a record-relative pointer; then, for every item, for each [id, word] entry until 0, store the word at $17C9 + 2 x (id - 1)Lufia & the Fortress of Doom (USA) · 0x47858-0x478D1 — $08:F858-$F8D1, the equip step for one party member: read the weapon; hit byte $1760,X = $17E4 (property 14's second byte), or $FF if 0; weapon special $176C,X = $17F3 (property 22); then for the other five pieces, sum and count the nonzero $17F5 bytes (property 23) and store their average at $1768,X unless it is $FFLufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataOffsets.cs#L28-L30// 256 x u16 pointers, relative to the table start. // +0 name (12) +12 type +13 equip slot +14 equip flags (hi nibble = who, lo nibble = target) // +15 icon +16 price (u16) +18..+20 ? +21.. property/effect data (00 terminated)Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataLabels.cs#L15-L30public static readonly ByteOption[] ItemTypes = { new(0x00, "00 ?"), new(0x01, "01 None / key item"), new(0x02, "02 Equipment"), new(0x06, "06 Equipment with special effect"), new(0x41, "41 Used out of battle"), new(0x81, "81 Used in battle"), new(0xC1, "C1 Used in & out of battle"), }; public static readonly ByteOption[] EquipSlots = { …Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataLabels.cs#L59-L66var known = new Dictionary<int, string> { [0x05] = "ATP", [0x06] = "DFP", [0x07] = "MGR", [0x08] = "AGL", [0x09] = "STR", [0x0A] = "INT", [0x0C] = "Element / slayer type (a, b)", [0x0D] = "Ailment resist (a = ailment 1-8, b = x/16, FF immune)", [0x0E] = "Weight (a) / hit chance (b, weapon)", [0x0F] = "Element resist (element, x/16)", [0x10] = "Spell element boost (element, x/16)", [0x11] = "Ailment chance boost (bits, x/16)", [0x12] = "Inflict on hit (bits, chance /255; needs patch)", [0x13] = "Item use data", [0x14] = "Ring flags", [0x15] = "Animation / sound (items)", [0x16] = "Weapon special (1 drain, 3 death)", [0x17] = "Encounter rate (?)",Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/ItemEditorViewModel.cs#L93-L97int equip = rom.ReadByte(o + 14); EquipHero = (equip & 0x10) != 0; EquipLufia = (equip & 0x20) != 0; EquipAguro = (equip & 0x40) != 0; EquipJerin = (equip & 0x80) != 0;Checked by claude-agent, 2026-11-08 — disassembled the record reader at $08:F999, its offset lookup at $08:FAD0 and the equip step at $08:F858 from the ROM, and decoded all 256 records with a scratch reader that walks the property list the same way; Lufia Forge's names for the type, slot, character bits and property ids quotedRevised after a check by a second AI model, 2026-11-08.

Who equips: H Hero, L Lufia, A Aguro, J Jerin, by Lufia Forge's reading of the high four bits of +14 (shown only for items with a slot). Weight and hit are the two bytes of property 14. Other properties are given as Lufia Forge names them, with their two bytes; "encounter" is its property 23, which only Clear Silk (item 56, byte 147) and Monster Ring (item 138, byte 192) carry. Usable items' effect data, reached through the pointers, isn't decoded here.

The 56 spells have records reached through a table of offsets: an 8-letter name, then bytes the spell reader copies from +8 to +20, among them a record-relative pointer at +12 to the effect data, which the reader turns into an address. The rest is Lufia Forge's reading: a usage byte at +8, a target byte at +10 and the MP cost at +11, effect codes (such as 1 restore HP, 5 restore all HP, 6 cure ailments, 11 elemental damage, 15 drain MP, 16 teleport, 17 float) and element numbers (1 Fire to 7 Dark); it reads the effect data as an effect byte, then for elemental damage an element, a power word and a random range; for healing and stat changes a kind, a power and a random range; for ailments a kind and a success rate. lufia-tables/spells

No.SpellMPUsage byteTarget byteEffectElementPowerRandom rangeSuccess rate
0Nothing000
1Flash21293elemental damageBolt246
2Bolt71293elemental damageBolt8020
3Thunder121293elemental damageBolt20550
4Spark61294elemental damageFire246
5Flame101294elemental damageFire8020
6Vulcan151294elemental damageFire16040
7Dew51294elemental damageWater82
8Water101294elemental damageWater6416
9Flood151294elemental damageWater13233
10Bang101295elemental damageBlast4812
11Blast151295elemental damageBlast9624
12Sunder201295elemental damageBlast14436
13Frost91295elemental damageIce328
14Blizzard131295elemental damageIce6416
15Glacier181295elemental damageIce12832
16Perish41293inflict ailment51
17Succumb81294inflict ailment25
18Drowsy31294inflict ailment76
19Fright41295inflict ailment102
20Drain31293lower stat45
21Dread51294lower stat65
22Deflect31294inflict ailment153
23Bounce51295inflict ailment153
24Absorb11293drain MP
25Fake41321raise stat228
26Trick51320raise stat248
27Confuse31294inflict ailment153
28Bravery31300raise stat278
29Courage51301raise stat254
30Shield21300raise stat278
31Protect51301raise stat256
32Mirror31300inflict ailment255
33Statue31300inflict ailment255
34Strong32000restore HP273
35Stronger52000restore HP855
36Champion82000restore all HP255127
37Boost152001restore HP855
38Valor352001restore all HP255127
39Poison22000cure ailment255
40Stun21360cure ailment255
41Dead102000cure ailment255
42Rally302000cure ailment255
43Stone52000cure ailment255
44Waken41361cure ailment255
45Warp8729teleport
46Escape8729teleport
47Float2729float
48Elf1729teleport
49Defake01294lower stat115
50Figual01294inflict ailment165
51Paraiz01294inflict ailment127
52Elegion01295elemental damage20550
53Elegi11295elemental damageBolt446
54Elegio11295elemental damageBolt10020
55Absobl01293drain MP
CodeLufia & the Fortress of Doom (USA) · 0xFDB00-0xFDB6F — the spell offset table at $1F:DB00: 56 words, each an offset from $DB00Lufia & the Fortress of Doom (USA) · 0xFE354-0xFE8CF — the records from $1F:E354Lufia & the Fortress of Doom (USA) · 0x47ABD-0x47ACF — $08:FABD-$FACF: X = $DB00 + the word at $DB00 + 2 x spell (data bank $1F)Lufia & the Fortress of Doom (USA) · 0x47A2D-0x47A6F — $08:FA2D-$FA6F, the spell reader: copy the 8-byte name, then +8 to +20; add the record's address to the word copied from +12Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataOffsets.cs#L52-L53// ── Spells: variable-length records with no pointer table, so the offsets are listed. // +0 name (8) +8 usage +10 target +11 MP +20 effect +21 sub-type +22.. effect parametersLufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/SpellEditorViewModel.cs#L104-L128switch (_effect) { case 0x01 or 0x05: IsCure = true; SubTypeOptions = GameDataLabels.WithValue(GameDataLabels.CureKinds, sub); Power = rom.ReadByte(o + 22); RandomPower = rom.ReadByte(o + 23); break; case 0x06 or 0x0E: IsAilment = true; foreach (var a in Ailments) a.IsSet = (sub & a.Bit) != 0; SuccessRate = rom.ReadByte(o + 22); …Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataLabels.cs#L102-L108public static readonly ByteOption[] Elements = { new(0, "0 None"), new(1, "1 Fire"), new(2, "2 Ice"), new(3, "3 Bolt"), new(4, "4 Water"), new(5, "5 Blast"), // the game never uses 6 and 7, but its damage code handles them like the others ($08:BFFD) new(6, "6 Light"), new(7, "7 Dark"), };Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataLabels.cs#L121-L126public static readonly string[] SpellEffects = { "00 Nothing", "01 Restore HP", "02 ?", "03 ?", "04 ?", "05 Restore all HP", "06 Cure ailment(s)", "07 Raise stat", "08 ?", "09 ?", "0A ?", "0B Elemental damage", "0C ?", "0D Lower stat", "0E Inflict ailment(s)", "0F Drain MP", "10 Teleport", "11 Float", "12 ?", };Checked by claude-agent, 2026-11-08 — disassembled the spell reader at $08:FA2D and its lookup at $08:FABD from the ROM, and decoded every record through the offset table and each record's effect pointer with a scratch reader; Lufia Forge's effect fields quotedRevised after a check by a second AI model, 2026-11-08.

Lufia Forge lists the 56 record offsets by hand and says the spells have no pointer table; the reader at $08:FABD reads one at $1F:DB00, whose 56 entries give the same offsets. Effect names are Lufia Forge's. Spell 0, Nothing, points past its own record and has no effect here.

On each level-up, unless a flag the game's event code sets and clears is set (not identified here), the game walks the new level's character's list of (level, spell) pairs, ended by $FF, skipping pairs whose level is 0, and teaches each spell whose level equals the new level; the Hero, Lufia and Jerin have lists, and the code skips Aguro's slot. The lists hold 63 pairs. lufia-tables/spells-learned

CharacterLevelSpell
Hero1Bravery
Hero4Strong
Hero7Float
Hero10Drain
Hero13Poison
Hero16Statue
Hero19Stronger
Hero22Stone
Hero25Courage
Hero28Champion
Hero31Fright
Hero34Dread
Hero37Fake
Hero39Trick
Hero41Rally
Hero44Succumb
Hero47Valor
Lufia0Flash
Lufia0Waken
Lufia1Drowsy
Lufia3Shield
Lufia5Dew
Lufia7Strong
Lufia9Drain
Lufia11Deflect
Lufia13Bang
Lufia15Stronger
Lufia17Absorb
Lufia19Fright
Lufia21Bolt
Lufia23Water
Lufia25Courage
Lufia27Boost
Lufia29Protect
Lufia31Blast
Lufia33Perish
Lufia35Bounce
Lufia37Flood
Lufia39Sunder
Lufia41Thunder
Lufia43Succumb
Jerin0Spark
Jerin0Strong
Jerin0Warp
Jerin0Escape
Jerin0Poison
Jerin0Stun
Jerin0Frost
Jerin16Absorb
Jerin18Confuse
Jerin20Stronger
Jerin22Flame
Jerin24Stone
Jerin26Dead
Jerin28Boost
Jerin30Blizzard
Jerin32Mirror
Jerin34Vulcan
Jerin36Champion
Jerin38Glacier
Jerin40Trick
Jerin42Rally
Jerin46Valor
CodeLufia & the Fortress of Doom (USA) · 0x467EB-0x467F2 — $08:E7EB: each slot's offset into the lists (Hero 0, Lufia $23, Jerin $54)Lufia & the Fortress of Doom (USA) · 0x46E0D-0x46E8D — the (level, spell) lists at $08:EE0DLufia & the Fortress of Doom (USA) · 0x46650-0x4665D — $08:E650-$E65D: the growth counter + 1, the increment step, then the spell step is skipped if $14DA isn't 0 (set at $01:C0B5, cleared at $01:D725)Lufia & the Fortress of Doom (USA) · 0x4665E-0x46683 — $08:E65E-$E683: unless the slot is 2 (Aguro): Y = the slot's offset; for each pair: 0 skips, $FF ends, a level equal to the new level learns the spellChecked by claude-agent, 2026-11-08 — disassembled the level-up routine's spell step at $08:E65E from the ROM and decoded the three lists through the offsets at $08:E7EBRevised after a check by a second AI model, 2026-11-08.

Pairs with level 0 are in the lists but the level-up step skips them; Lufia Forge reads them as spells known from the start, which this pass didn't check.

Eight character records of 29 bytes each hold a character's state when they join: level, a growth counter, six stat words (HP, MP, AGL, INT, STR, MGR), the experience, the experience for the next level and the increment (three bytes each), and six equipment bytes. The join routine fills party slot id mod 4 only when the slot's level is 0: from a level kept aside for the slot if there is one, else by copying the record; so Maxim, Selan, Guy and Artea (records 4-7, the prologue party) take the slots of the Hero, Lufia, Aguro and Jerin; Lufia Forge names the records and the stats. lufia-tables/characters

Value: character Hero, Lufia, Aguro, Jerin, Maxim, Selan, Guy, Artea · level 1, 1, 5, 14, 78, 77, 77, 75 · Growth counter 0, 0, 0, 0, 64, 64, 64, 64 · HP 23, 22, 62, 98, 611, 478, 717, 622 · MP 10, 18, 0, 56, 370, 629, 0, 514 · STR 6, 4, 20, 25, 234, 145, 255, 211 · INT 4, 9, 5, 22, 127, 250, 88, 249 · AGL 4, 7, 7, 21, 122, 129, 103, 164 · MGR 2, 5, 6, 22, 222, 254, 153, 217 · EXP 0, 0, 0, 0, 4929582, 5461525, 5597236, 6372597 · Next level at 15, 17, 105, 502, 4932398, 5467202, 5606451, 6379964 · Increment 15, 17, 105, 502, 176163, 199526, 183253, 147202 · weapon Knife, Small Knife, Short Sword, Elven Bow, Dual Blade, Silver Rod, Zircon Axe, Artea's Bow · armor Cloth, Dress, Cloth Armor, Light Robe, Zircon Armor, Silver Robe, Zircon Armor, Zircon Robe · shield null, null, null, null, Zircon Plate, Silver Wrist, Silver Plate, Zircon Wrist · helmet null, null, null, null, Zircon Helm, Sakret, Silver Helm, Zircon Beret · shoes Sandal, Sandal, Cloth Shoes, Tan Shoes, Sword Shoes, Cat Heels, Mach Shoes, Cat Heels · ring null, null, null, null, Wave Ring, Flash Ring, White Ring, Hi Daze Ring

CodeLufia & the Fortress of Doom (USA) · 0x46D25-0x46E0C — the eight records at $08:ED25Lufia & the Fortress of Doom (USA) · 0x46A9F-0x46B66 — $08:EA9F-$EB66, the join routine: slot = character mod 4; nothing if the slot's level ($156F,X) isn't 0; if $1577,X isn't 0 it becomes the level and no record is copied; record = $08:ED25 + 29 x character; level and counter, then six words into the stats and their band starts, nine bytes into experience, next and increment, six bytes into the equipmentLufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataOffsets.cs#L11-L13// 8 records x 29 bytes: Hero, Lufia, Aguro, Jerin, Maxim, Selan, Guy, Artea // +0 level +1 ? +2 HP +4 MP +6 AGL +8 INT +10 STR +12 MGR (u16 each) // +14 EXP (u24) +17..+22 ? +23 weapon +24 armor +25 shield +26 helmet +27 shoes +28 ringChecked by claude-agent, 2026-11-08 — disassembled the join routine at $08:EA9F from the ROM and decoded the eight records; equipment bytes read as item numbers through the item tableRevised after a check by a second AI model, 2026-11-08.

The order of the six stat words is Lufia Forge's (+2 HP, +4 MP, +6 AGL, +8 INT, +10 STR, +12 MGR); the level-up code's stat order (HP, MP, STR, INT, AGL, MGR) reaches the same words. The Hero's name comes from the player.

Stat growth is a table of 6 stats by 7 bands by the 4 party slots: at each level-up a stat becomes its value at the start of the current band of 16 level-ups plus the band's byte times the level-ups so far into it (1 to 16) over 16, rounded, plus a random -2 to +2 when that gain isn't 0, and it never goes down; the band start moves up at the 16th level-up of a band. The stat names come from the characters' records, whose stat names are Lufia Forge's. lufia-tables/growth

CharacterStatBand 1Band 2Band 3Band 4Band 5Band 6Band 7
HeroHP11712213512810310856
HeroMP417611295443521
HeroSTR4070634810127
HeroINT21353825677
HeroAGL21323226897
HeroMGR405640318107
LufiaHP909799107816342
LufiaMP1151381411361086628
LufiaSTR304032291277
LufiaINT48806340272828
LufiaAGL2836261625167
LufiaMGR60575745491114
AguroHP138147160162987949
AguroMP0000000
AguroSTR83855831141414
AguroINT19232712667
AguroAGL302420171177
AguroMGR30453731460
JerinHP135145156120755642
JerinMP113132138104644428
JerinSTR60704516344
JerinINT699056391421
JerinAGL5750241814107
JerinMGR72564028662
CodeEight character records of 29 bytes each hold a character's state when they join: level, a growth counter, six stat words (HP, MP, AGL, INT, STR, MGR), the experience, the experience for the next level and the increment (three bytes each), and six equipment bytes. The join routine fills party slot id mod 4 only when the slot's level is 0: from a level kept aside for the slot if there is one, else by copying the record; so Maxim, Selan, Guy and Artea (records 4-7, the prologue party) take the slots of the Hero, Lufia, Aguro and Jerin; Lufia Forge names the records and the stats. CodeLufia & the Fortress of Doom (USA) · 0x46C69-0x46D10 — the growth bytes at $08:EC69: 28 per stat (7 bands x 4 slots)Lufia & the Fortress of Doom (USA) · 0x467C7-0x467EA — $08:E7C7-$E7EA: per stat, its growth bytes, its current value and its band startLufia & the Fortress of Doom (USA) · 0x46692-0x466B8 — $08:E692-$E6B8: band x 4 + slot from the counter's high four bits; step = counter's low four bits + 1Lufia & the Fortress of Doom (USA) · 0x4673D-0x467C6 — $08:E73D-$E7C6, one stat: gain = (growth x step + 8) / 16; if gain isn't 0, add random(5) - 2; new = band start + gain; if new > current, current = new; at step 16 the band start = newChecked by claude-agent, 2026-11-08 — disassembled the level-up routine's stat step at $08:E73D and its tables at $08:E7C7 from the ROM, and decoded the 168 growth bytesRevised after a check by a second AI model, 2026-11-08.

Bands 1-7 cover growth counters 0-15, 16-31 and so on; a counter past 111 would read past the band bytes. The four slots' bytes also serve the prologue party, which uses the same slots.

Cited by: Growth rate

Experience to reach each level, computed from the level-up code: a character levels when their experience reaches the stored next-level value (to a cap of 99); then the increment grows by itself shifted right once for each of the character's five thresholds the growth counter plus 1 has reached, by nothing once all five are reached, and the next level comes at next plus the new increment. Level 99 takes 6,857,436 (Hero), 7,017,992 (Lufia), 6,620,349 (Aguro) and 7,124,086 (Jerin). lufia-tables/experience

LevelHeroLufiaAguroJerin
100
21517
34551
4105119
52252550
6405459105
7675765315
810801224735
9168719121575
10259729442835
11396244924725
12566864277087
137800884510039
141046511867137290
15137961564418341502
161795920365241061506
172316226266313123514
182901532904403197530
1935599403715045113554
2043006487716184922590
2151338582217467133885
2260711688528909548003
23712558081110532265650
24831179426412357787708
2596461109398144113115280
26111473126423167216149745
27128361145576193206188518
28147360167123222444232137
29168733191363255336281208
30192777218633292339336412
31219826249311333967398516
32250256283823380798468383
33284489322649433482546983
34323001366328492751630495
35366327415466559428719226
36415068470746630272813502
37469901532936705543913670
385315886028997855181013838
396009856816078704911114006
406790567701539607741214174
4176200686423310566991314342
4285014096419311526241414510
43943782107040012485491514678
441043276117660713444741614846
451148988128281414403991715014
461254700138902115363241815182
471360412149522816322491915350
481466124160143517281742015518
491571836170764218240992115686
501677548181384919200242215854
511783260192005620159492316022
521888972202626321118742416190
531994684213247022077992516358
542100396223867723037242616526
552206108234488423996492716694
562311820245109124955742816862
572417532255729825914992917030
582523244266350526874243017198
592628956276971227833493117366
602734668287591928792743217534
612840380298212629751993317702
622946092308833330711243417870
633051804319454031670493518038
643157516330074732629743618206
653263228340695433588993718374
663368940351316134548243818542
673474652361936835507493918710
683580364372557536466744018878
693686076383178237425994119046
703791788393798938385244219214
713897500404419639344494319382
724003212415040340303744419550
734108924425661041262994519718
744214636436281742222244619886
754320348446902443181494720054
764426060457523144140744820222
774531772468143845099994920390
784637484478764546059245020558
794743196489385247018495120726
804848908500005947977745220894
814954620510626648936995321062
825060332521247349896245421230
835166044531868050855495521398
845271756542488751814745621566
855377468553109452773995721734
865483180563730153733245821902
875588892574350854692495922070
885694604584971555651746022238
895800316595592256610996122406
905906028606212957570246222574
916011740616833658529496322742
926117452627454359488746422910
936223164638075060447996523078
946328876648695761407246623246
956434588659316462366496723414
966540300669937163325746823582
976646012680557864284996923750
986751724691178565244247023918
996857436701799266203497124086
CodeEight character records of 29 bytes each hold a character's state when they join: level, a growth counter, six stat words (HP, MP, AGL, INT, STR, MGR), the experience, the experience for the next level and the increment (three bytes each), and six equipment bytes. The join routine fills party slot id mod 4 only when the slot's level is 0: from a level kept aside for the slot if there is one, else by copying the record; so Maxim, Selan, Guy and Artea (records 4-7, the prologue party) take the slots of the Hero, Lufia, Aguro and Jerin; Lufia Forge names the records and the stats. CodeLufia & the Fortress of Doom (USA) · 0x46D11-0x46D24 — the five thresholds per slot at $08:ED11: Hero 5 11 17 40 45; Lufia 5 11 17 40 43; Aguro 5 7 14 31 37; Jerin 5 7 13 20 24Lufia & the Fortress of Doom (USA) · 0x46601-0x4663F — $08:E601-$E63F: if the level isn't 0 and experience >= next (three bytes) and the level isn't 99: level + 1Lufia & the Fortress of Doom (USA) · 0x466B9-0x4673C — $08:E6B9-$E73C: for Y = 0 to 4: stop if counter + 1 < threshold Y; at Y = 4 the addition is 0; else halve it; increment += it; next += incrementChecked by claude-agent, 2026-11-08 — disassembled the level-up routine at $08:E601 and its increment step at $08:E6B9 from the ROM; the table is our computation from each character record's level, counter, next and increment and the thresholdsRevised after a check by a second AI model, 2026-11-08.

Each column starts at the character's level in their record (Aguro and Jerin join above level 1) with the record's experience; the growth counter goes up by one before the increment step.

Cited by: Growth rate

The game has 86 shop numbers, each an offset into the shop records; a record is a type byte, then item numbers, ended by 0, and a type of 0 is no shop. 70 have stock. Lufia Forge names the types 2 weapons, 3 armor, 4 weapons and armor, 5 items and 7 accessories, and the town of each shop; types 1 (shop 45, no stock), 6 (four shops of ciders) and 8 (shop 13, stuffed animals) it leaves unnamed. lufia-tables/shops

ShopType byteStock
12Dagger, Knife
23Dress, Cloth, Cloth Helm, Sandal
35Potion, Antidote, Sweet Water, Arrow
45Potion, Antidote, Arrow
56Pear Cider, Sour Cider, Plum Cider
75Potion, Antidote, Shriek, Swing Wing, Arrow, Arrows
82Club, Long Knife, Dagger, Knife
93Cloth Armor, Robe, Bracelet, Cloth Helm, Hair Band, Sandal
105Sweet Water, Potion, Antidote, Swing Wing
115Magic Guard, Power Gourd, Mind Gourd, Arrow, Arrows, Bomb
127Earring, Hair Band, Brooch, Necklace
138Stuffed Bear, Stuffed Dog, Stuffed Pig
142Short Sword, Staff, Club, Long Knife
153Tan Armor, Tan Robe, Tan Shield, Tan Helm, Glass Cap, Cloth Shoes
165Potion, Antidote, Awaken, Stone Cure, Shriek, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
173Tan Armor, Tan Robe, Tan Shield, Tan Helm, Glass Cap, Cloth Shoes
182Short Sword, Staff, Club, Long Knife
205Sweet Water, Potion, Antidote, Mystery Pin, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd, Swing Wing
213Chain Mail, Chain Cloth, Wood Shield, Wood Wrist, Wood Helm, Glass Cap, Cloth Shoes
222Spear, Mace, Short Sword, Staff, Mid Arrow, Arrows, Bomb
232Long Sword, Axe, Rapier, Scimitar, Big Arrow, Hi Arrows, Bomb
245Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Swing Wing, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
253Light Armor, Light Robe, Buckler, Brone Shield, Brone Breast, Brone Helm, Glass Beret, Tan Shoes
272Great Axe, Gladius, Hammer Rod, Big Arrow, Ex Arrows, Hi Bomb
283Plate Mail, Plate Cloth, Large Shield, Round Shield, Round Wrist, Plate Helm, Plate Cap, Knife Shoes, Needle Heels, Wind Shoes, Wind Heels
295Sweet Water, Potion, Antidote, Mystery Pin, Shriek, Swing Wing, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
302Brone Sword, Long Staff, Spear, Mace, Mid Arrow, Hi Arrows, Bomb
313Brone Armor, Brone Robe, Brone Shield, Brone Breast, Brone Helm, Glass Cap, Tan Shoes
345Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
357Emerald, Opal
365Hi Potion, Hi Magic, Swing Wing, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
374Rod, Trident, Quilted Silk, Glass Beret, Heeled Shoes, Big Arrow, Hi Arrows, Hi Bomb
415Hi Potion, Hi Magic, Magic Guard, Power Gourd, Mind Gourd, Dragon Arrow, Sleep Arrow, Puzzle Arrow, Stun Arrow, Gloom Arrow, Float, Smoke Ball
422Morning Star, Gloom Pick, Hammer Rod, Trident, Glass Robe, Scimitar, Gladius
443Quilted Silk, Kite Shield, Hair Band, Glass Beret, Knife Shoes, Heeled Shoes
451
474Goblet, Ear Tip, Empty Bottle, Gown
484Clear Silk, Secret Map
492Gladius, Hammer Rod, Battle Axe, Glass Robe, Mid Arrow, Hi Arrows, Bomb
503Plate Mail, Plate Cloth, Round Shield, Round Wrist, Plate Helm, Plate Cap, Wind Shoes, Wind Heels, Spike Shoes, Heeled Shoes
515Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
524Battle Axe, Glass Robe, Morning Star, Rod, Half Mail, Quilted Silk, Kite Shield, Red Beret, Wind Shoes, Heeled Shoes, Hi Potion, Swing Wing
562Buster Sword, Silver Sword, Silver Rod, Big Arrow, Ex Arrows, Hi Bomb
575Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
583Carbo Plate, Clear Silk, Tower Shield, Silver Armor, Silver Plate, Silver Wrist, Silver Helm, Sakret, Sonic Shoes, Sonic Heels, Knife Shoes, Needle Heels
593Zircon Armor, Zircon Robe, Zircon Plate, Zircon Wrist, Zircon Helm, Zircon Beret, Mach Shoes, Mach Heels
602Zircon Sword, Zircon Axe, Zircon Rod, Big Arrow, Ex Arrows, Ex Bomb
615Sweet Water, Ex Potion, Ex Magic, Power Gourd, Mind Gourd, Float, Smoke Ball
626Pear Cider, Sour Cider, Lime Cider, Plum Cider
632Silver Sword, Silver Rod, Great Axe, Hammer Rod, Big Arrow, Ex Arrows, Hi Bomb
643Silver Armor, Silver Robe, Silver Plate, Silver Wrist, Silver Helm, Plate Cap, Knife Shoes, Needle Heels, Wind Shoes, Wind Heels
655Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
664Carbo Sword, Carbo Plate, Carbo Shield, Carbo Helm, Carbo Cap, Catwhip, Sonic Shoes, Sonic Heels, Float, Hi Potion, Big Arrow, Ex Arrows
672Grand Blade, Carbo Sword, Catwhip, Big Arrow, Ex Arrows, Ex Bomb
683Carbo Plate, Carbo Shield, Carbo Helm, Carbo Cap, Silver Robe, Silver Wrist, Sonic Shoes, Sonic Heels, Sword Shoes, Cat Heels
695Float, Hi Potion, Hi Magic, Magic Guard, Power Gourd, Mind Gourd, Float, Smoke Ball, Stone Cure
712Grand Blade, Carbo Sword, Catwhip, Big Arrow, Ex Arrows, Ex Bomb
723Carbo Plate, Carbo Shield, Carbo Helm, Carbo Cap, Catwhip, Clear Silk, Sonic Shoes, Sonic Heels, Sword Shoes, Cat Heels, Gown, Ribbon
735Hi Potion, Hi Magic, Magic Guard, Power Gourd, Mind Gourd, Float, Smoke Ball, Stone Cure
746Sour Cider, Plum Cider, Lime Cider
754Morning Star, Rod, Trident, Half Mail, Quilted Silk, Buckler, Iron Helm, Glass Beret, Spike Shoes
765Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
775Fry Pan, Small Knife, Pot, Chop Block, Apron, Goblet
786Apple Cider
802Battle Axe, Glass Robe, Morning Star, Rod, Mid Arrow, Hi Arrows, Hi Bomb
813Half Mail, Quilted Silk, Kite Shield, Brone Breast, Iron Helm, Glass Beret, Spike Shoes, Wind Shoes, Heeled Shoes, Wind Heels
825Sweet Water, Hi Potion, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Swing Wing, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
832Axe, Rapier, Scimitar, Big Arrow, Hi Arrows, Bomb
843Brone Armor, Brone Robe, Brone Shield, Brone Breast, Brone Helm, Glass Cap, Tan Shoes
855Hi Potion, Hi Magic, Antidote, Awaken, Mystery Pin, Stone Cure, Shriek, Swing Wing, Smoke Ball, Magic Guard, Power Gourd, Mind Gourd
CodeLufia & the Fortress of Doom (USA) · 0xEC5B-0xED06 — the shop offset table at $01:EC5B: 86 words, each an address in bank $01Lufia & the Fortress of Doom (USA) · 0xED5B-0xEFE7 — the records from $01:ED5BLufia & the Fortress of Doom (USA) · 0x51CD-0x51FD — $00:D1CD-$D1FD: the shop's word from $01:EC5B; its first byte, the type: 0 ends; then each item byte until 0Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataLabels.cs#L75-L94public static readonly ByteOption[] ShopTypes = { new(0, "0 Nothing"), new(1, "1 Unused (?)"), new(2, "2 Weapons"), new(3, "3 Armor"), new(4, "4 Weapons & armor"), new(5, "5 Items"), new(6, "6 Battle"), new(7, "7 Accessories"), new(8, "8 Battle"), new(9, "9 Unused (?)"), }; /// <summary>Shop locations (index = shop id).</summary> public static readonly string[] ShopTowns = { "Unused", "Alekia", "Alekia", "Alekia", "Chatam", "Treck", "Unused", "Treck", "Treck", "Treck", "Lorbenia", "Lorbenia", "Lorbenia", "Lorbenia", "Lorbenia", "Lorbenia", "Grenoble", "Grenoble", "Grenoble", "Unused", "Medan", "Medan", "Medan", "Jenoba", "Jenoba", "Jenoba", "Unused", "Linze", …Checked by claude-agent, 2026-11-08 — disassembled the shop reader at $00:D1CD from the ROM and decoded the 86 records; prices are the items' price wordsRevised after a check by a second AI model, 2026-11-08.

Shop numbers are the game's, from 0. Prices are in the items table. Lufia Forge's town names for each number aren't checked against the maps here.

A random battle's encounter group (1-69) points to a list of subgroups: each monster draw picks one of the listed subgroups at random, then counts random(4) + 1 steps through its non-empty monster slots, wrapping round to the first, and takes 1-3 of the monster it stops on. So a subgroup with empty slots favours its first ones: subgroup 1 (Big Newt, Madshroom, Jellyfish) gives Big Newt 2 draws in 4 (computed). lufia-tables/encounter-groups

GroupSubgroups
11
21, 3
32, 3, 4
44, 5
55, 6
66, 7
78, 9
811, 13
912, 13
1014, 15
1114, 17
1217, 18, 19
1318, 19
1418, 19
1524, 25
1625, 26, 27, 25, 26, 27, 64
1730, 31
1826, 28, 29
1931, 32
2034, 35
2134, 35
2235, 37
2340, 41
2435, 37
2545, 46
2646, 48
2745, 46, 47
2846, 47, 48
291, 2
3048
312, 4, 5
324, 5
336, 7, 8
3410, 11
3511, 13, 14
3613, 15, 13, 15, 63
3715, 16, 17
3820, 21
3920, 22
4020, 23
4148
4227, 28, 29, 64
4328, 29, 30
4432, 33, 34
4534, 36, 37
4641, 42
4736, 38, 39, 36, 38, 39, 65
4837, 38, 40, 37, 38, 40, 65
4937, 39, 41, 37, 65
5039, 43, 44
5145, 46, 47
5246, 47, 48
5347, 48, 49
5447, 48, 49
5548, 49, 50
5648, 49, 51
5750, 51
5851, 52
5952, 54, 52, 54, 66
6052, 53
6153, 54
6256, 57
6357, 58
6458, 59
6544, 59
6659, 60
6760, 61
6861, 62
6967
CodeLufia & the Fortress of Doom (USA) · 0x45A60-0x45BE1 — the group pointers at $08:DA60 (69 words, each an address in bank $08) and the lists: a count, then subgroup numbersLufia & the Fortress of Doom (USA) · 0x459D2-0x45A5F — $08:D9D2-$DA5F, one draw: for a formation below $E6: subgroup = list[random(count)]; slot = random(4) + 1, counted through the subgroup's non-$FF ids; count = random(3) + 1The 67 subgroups each hold four monster ids ($FF empty). CodeChecked by claude-agent, 2026-11-08 — disassembled the draw at $08:D9D2 from the ROM and decoded the 69 listsRevised after a check by a second AI model, 2026-11-08.

A subgroup listed twice in a group is drawn twice as often. Which group a map uses comes from the world map's zone grid or the map's setup script (Lufia Forge), not read here.

The 67 subgroups each hold four monster ids ($FF empty). lufia-tables/encounter-subgroups

SubgroupMonsters
1Big Newt, Madshroom, Jellyfish
2Spider
3Anemone, Earwig
4Nettles, Baby Crab, Green Orb
5Giant Bat, Kobold, Bore Worm
6Giant Newt, Rat, Mini Demon, Roozard
7Mini Crab, Huge Bunny, Goblin
8Zombie, Fight, Red Magi
9Dracu Rose, Spike Newt, Frog
10Willowisp, Flamespook, Crazy Pot
11Ghost Mail, Swordspook
12Sand Man, Sand Rose
13Poison Rat, Beetle, Mummy
14Blue Wolf, Mud Man, Killer Bee
15Red Orb, Orc
16Straw Man, Nightmare
17Archer, Skeleton
18Chomp Weed
19Spellsnail, Tarantula
20Horrorquin, Gargoyle
21Frog, Jellybean, Dark Elf
22Flamefreak, Big Meany, Flamespook
23Willowisp, Sand Man, Dark Demon
24Mace Man, Rok
25Gold Orc, Sting
26Giant Oak, Pin Lizard
27Blue Meany, Armor Lord
28Blue Wisp, Ghoul
29Ice Snake, Crazy Jar
30Halloween, Yeoman
31Harpie, Frogula
32Axe Knight, Trap Harp
33Zooster, Terrorquin
34Mad Lily, Werewolf
35Crazy Pine, Land Worm
36Sabrespook, Cave Rok
37Zaurus, Werefrog
38Nail Man, Mud Ghoul
39Blue Skull, Vampire
40Green Magi, Eye Curse, Red Wolf
41Demon Mace, Manticore, Troll
42Lizard Man, Basilisk, Salamander
43Dark Spook, Berserker
44Fire Plate, Steel Lord
45Megaturtle, Griffon
46Mega Frog, Mad Wolf
47Rock Golem, Hydra
48Mad Knight, Efreet
49Zaurus Rex, Barient, Gorgon
50Gloom, Humungus, Wing Lion
51Dragon, Red Skull, Mad Cleric
52Waterspout, Electromaz, Whirlwind, Fire Wave
53Mega Atlas, Act Demon, Gold Golem
54Act Hydra, Act Dragon
55Flamespook
56Harpie, Red Star
57Killer Eel, Lobsteron, Psychoclam
58Jelly Bolt, Starfish
59Evil Clam, Sea Snake
60Fire Plate, Magura
61Manta Ray, Hydra
62Sea Dragon
63Mimick, Red Orb
64Mimicker, Blue Meany
65Redcore, Blue Skull
66Greencore, Electromaz
67Pirates, Pirates, Pirates, Pirates
CodeLufia & the Fortress of Doom (USA) · 0x45BE2-0x45CED — the subgroups at $08:DBE2, four ids eachLufia & the Fortress of Doom (USA) · 0x45A1D-0x45A2D — $08:DA1D-$DA2D: address = $DBE2 + 4 x (subgroup - 1)Checked by claude-agent, 2026-11-08 — disassembled the subgroup address step at $08:DA1D and decoded the 67 subgroupsChecked by a second AI model, 2026-11-08.

Formations $E6 to $FA are fixed: each has four monster slots, and a battle takes each slot's monster once, in order, an $FF slot giving no monster. lufia-tables/boss-formations

FormationMonsters
$E6Gades
$E7Gades
$E8Amon
$E9Erim
$EADaos
$EBGades
$ECAmon
$EDDaos
$EEGuard Daos
$EFDemon Lord, Demon Lord, Demon Lord, Demon Lord
$F0Goblins, Goblins, Goblins
$F1Apprentice
$F2Phantasm
$F3Follower
$F4Dark Ghost
$F5Guardian
$F6Pirates, Pirates, Pirates, Pirates
$F7Bosun, Pirates
$F8Oil Dragon
$F9Nazeby
$FAPirates, Pirates, Pirates, Pirates
CodeLufia & the Fortress of Doom (USA) · 0x45CEE-0x45D41 — the fixed formations at $08:DCEE, four ids eachLufia & the Fortress of Doom (USA) · 0x459E0-0x45A0B — $08:D9E0-$DA0B: a formation of $E6 or more reads $DCEE + 4 x (formation - $E6), one monster per draw for four draws, then $FFChecked by claude-agent, 2026-11-08 — disassembled the fixed-formation branch at $08:D9E0 and decoded the 21 formationsChecked by a second AI model, 2026-11-08.

Before the prologue the game's script gives the prologue party 10 stacks of items (Miracle x87, Ex Potion x62, Ex Magic x28, Revive x50, Awaken x92, Stone Cure x88, Mystery Pin x95, Shriek x91, Ex Arrows x36, Ex Bomb x29) and teaches Maxim 10 spells, Selan 8 and Artea 12. lufia-tables/prologue-script

Value
{
 "slot": [
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  1,
  1,
  1,
  1,
  1,
  1,
  1,
  1,
  3,
  3,
  3,
  3,
  3,
  3,
  3,
  3,
  3,
  3,
  3,
  3
 ],
 "spell": [
  "Valor",
  "Boost",
  "Champion",
  "Stronger",
  "Poison",
  "Stun",
  "Dead",
  "Stone",
  "Waken",
  "Protect",
  "Thunder",
  "Bolt",
  "Vulcan",
  "Glacier",
  "Blizzard",
  "Succumb",
  "Fake",
  "Mirror",
  "Flood",
  "Sunder",
  "Dread",
  "Mirror",
  "Bounce",
  "Trick",
  "Valor",
  "Champion",
  "Rally",
  "Courage",
  "Waken",
  "Warp"
 ],
 "item": [
  "Miracle",
  "Ex Potion",
  "Ex Magic",
  "Revive",
  "Awaken",
  "Stone Cure",
  "Mystery Pin",
  "Shriek",
  "Ex Arrows",
  "Ex Bomb"
 ],
 "count": [
  87,
  62,
  28,
  50,
  92,
  88,
  95,
  91,
  36,
  29
 ]
}
CodeLufia & the Fortress of Doom (USA) · 0x1BD8E-0x1BE05 — the prologue script's run of 3D cc ss (character slot cc learns spell ss) and 3E ii qq (give qq of item ii) commandsLufia & the Fortress of Doom (USA) · 0x11196-0x111A8 — $01:D196-$D1A8, command 3D: slot = the next byte AND 3; spell = the byte after; $08:E829 appends the spell to the slot's listLufia & the Fortress of Doom (USA) · 0x111A9-0x111CB — $01:D1A9-$D1CB, command 3E: item, count = the next two bytes; $08:F45A adds them to the bag (or $08:F49A takes the other path)Lufia & the Fortress of Doom (USA) · 0x46829-0x4684B — $08:E829-$E84B: find the slot list's first 0 at $158F + the slot's offset and store the spell thereLufia & the Fortress of Doom (USA) · 0x4745A-0x4747D — $08:F45A-$F47D: for an item 1 to $EF, walk the bag's pairs ($14F7 item, $14F8 count) to the item's own or the first empty one; the count is added while the stack stays below 100The prologue's party when its first map loads is Maxim at level 78, Selan 77, Guy 77 and Artea 75, with the stats and equipment stored in their character records, and the prologue's script has given them 10 items (87 Miracle, 62 Ex Potion, 28 Ex Magic, 50 Revive, 92 Awaken, 88 Stone Cure, 95 Mystery Pin, 91 Shriek, 36 Ex Arrows, 29 Ex Bomb) and taught Maxim 10, Selan 8 and Artea 12 spells. Measured in MesenCE from power-on, pressing A every 10 frames with Start on every fourth press, about 60 frames (60 to 69) after the prologue's first map is entered. VerifiedLufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · LufiaForge/LufiaForge/Modules/GameData/GameDataOffsets.cs#L48-L50// ── Final (prologue) party's items: 10 "give item" script commands: 3E item qty public const int FinalPartyItems = 0x1BDE9; public const int FinalPartyItemCount = 10;Lufia Forge: a ROM hack toolkit for Lufia & the Fortress of Doom (SNES) · research-event-commands.md#L136-L137| 3D | $D196 | 3 | cc, ss = spell | Character cc learns spell ss (appended to first free slot of its spell list, $08:E829). | no | $158F/$15AF/$15CF spell lists | confirmed | $08:E84C maps cc 0->$158F, 1->$15AF, 2->$158F(!), 3->$15CF. | | 3E | $D1A9 | 3 | ii = item, qq = qty | Give item. Clears flag FF; $08:F45A checks room, $08:F49A adds (stacks to 99, 60 slots). **Flag FF set = did not fit / failed.** Items F0-FF are key items stored as bits in $15EF. | no | $14F7 inventory, $15EF, flag FF | confirmed | Ex `3E E6 01`. |Checked by claude-agent, 2026-11-08 — disassembled the handlers of commands 3D and 3E at $01:D196 and $01:D1A9 and the routines they call, and decoded the command run from the ROM; the prologue-party probe found the same bag and spell lists in RAMRevised after a check by a second AI model, 2026-11-08.

Slot 0 is Maxim, 1 Selan, 3 Artea; Guy (slot 2) learns none. Lufia Forge's FinalPartyItems offset, 0x1BDE9, is the first give-item command's item byte; the command itself starts at 0x1BDE8.