Claim set · data/claims/chrono-trigger-tables.yaml

Chrono Trigger's data tables (dscotton's ct_disassembly)

Game: Chrono Trigger.

Each of the 256 enemy slots has 23 bytes of stats, which the battle copies into the enemy's combatant record as it loads the enemy: HP (two bytes), level, five status bytes, Stamina, Speed, Magic, Hit, Evade, Magic Defense, Attack and Defense, four elemental bytes, and three more bytes. HP goes to both current and maximum HP. chrono-trigger-tables/enemies

No.EnemyHPLevelStaminaSpeedMagicHitEvadeMagic DefenseAttackDefenseLightningShadowWaterFireStatus bytesBytes 20-22
0Nu1234110110100105011270404040400 FF 00 00 0000 08 10
1Reptite921510107191030202000404040400 FF 00 00 0000 00 00
2Terrasaur10902610915281330702300404040400 00 00 00 0000 00 10
3Kilwala1601210111017980201270404040400 00 00 00 0000 00 00
4Krawlie50081013510085044150040204047F FF 00 00 0000 03 10
5Hench180191094221150331270404040100 00 00 00 0000 00 00
6Omicrone101011010015011270404040400 00 00 00 0000 00 01
7Martello1245441018542185011270404040400 00 00 00 0000 40 00
8Bellbird941310871795081270404040400 FF 00 00 0000 00 00
9Panel187544109454218502551270404040400 FF 00 00 0040 00 00
1018000481011410020501001270404040400 FF 00 00 00E0 02 00
11582351011035165011270404040200 00 00 00 0000 00 0F
12BlueImp1311081865041270404040400 00 00 00 0000 00 00
13GreenImp3221081865041270404040400 00 00 00 0000 00 00
14StoneImp30028101313291450631270404040400 00 00 00 0000 00 00
15MudImp1200261010151001380652500404040400 FF 00 00 0080 02 00
16Roly2421271865051270404040400 00 00 00 0000 00 00
17Poly997106112730111270404040400 00 00 00 0000 00 00
18Rolypoly5091010114850142300404040400 00 00 00 0000 00 00
19RolyRider3021071865061270404040400 00 00 00 0040 00 01
202000321014101001550401270404040400 FF 00 00 0080 02 00
21BlueEaglet162194665061270404040400 06 00 00 0000 00 01
22GoldEaglet400151067191050211270404040400 00 00 00 0000 00 00
23RedEaglet40017101514191050281700404048000 00 00 00 0000 00 00
242000321014101001550601270404040400 FF 00 00 0080 02 00
25AvianChaos456104161275031270404040400 00 00 00 0040 00 00
26ImpAce54121091016950151270404040400 00 00 00 0040 00 00
27BantamImp25030101212311450321270404040400 FF 00 00 0040 00 00
28Gnasher9031071971081270303030200 00 00 00 0000 00 03
29Gnawer210131011351795051270404040400 FF 00 00 0000 00 0D
306031095961071800304040200 02 00 00 0000 00 01
31500030101330100100652552500000000000 FF 00 00 0080 02 0F
32Ruminator150040101310391750501274040040400 00 00 00 0000 00 0D
334800300830100100651702500000000000 FF 00 00 00C0 02 00
34Octopod130710810127908770204040400 04 00 00 0000 10 0A
35Octoblush801210771693016200040404047F FF 00 00 0000 10 00
36Octobino101011010015011270404040400 00 00 00 0040 08 00
37Zeal12000481012201002050501270404040400 FF 00 00 0080 03 0E
38FlyTrap3161705520105010640404040400 FF 00 00 0000 00 00
39MeatEater7571066121050131270404040300 02 00 00 0000 00 00
40ManEater2502910912301465701270404040400 00 00 00 0000 00 07
41Krakker5003610910361650841270404040400 FF 00 00 0000 08 0F
42Egder160151010719100181500401040400 FF 00 00 0000 08 00
43Defunct1450201014402311502551270484040200 FF 00 00 0080 80 00
44Departed1650401014103917952551920484040200 FF 00 00 0080 80 0B
45Deceased110121081016950172500484040400 FF 00 00 0080 80 0B
46Decedent676101171270121270284040200 04 00 00 0080 00 00
47Macabre58237101051001650921270404040400 FF 00 00 0082 00 12
48Reaper1450401015100175001270484040200 FF 00 00 0082 00 10
49Guard60610871275091270404040400 00 00 00 0000 00 01
50Sentry12804001018539175011270404040200 FF 00 00 0044 80 12
51FreeLancer11014108718950201270404040400 FF 00 00 0000 00 00
52Outlaw1822110108241250401270004040000 FF 00 00 0000 00 00
53GigaMutant5800451011351001965262550404040400 FF 00 00 0080 02 0E
544950471010101001965222550404040400 FF 00 00 0080 02 14
55TerraMutant7800481012151002050282550404040400 FF 00 00 0080 02 15
56200004910161010020100282558484848400 FF 00 00 0080 02 14
57Juggler4502010810231150102530404040200 FF 00 00 0000 08 00
58Retinite10003010820100140451278484008400 FF 00 00 00C0 02 00
59Mage480341077341570401270404040400 00 00 00 0000 08 00
6013801333100175011270404040400 00 00 00 00E0 02 00
61Reptite33625101110271350401500804040400 FF 00 00 0000 00 0C
62BlueShield246109312710082530000000000 FF 00 00 0040 00 00
63YoduDe24610431270800101010100 FF 00 00 0040 00 00
64Incognito1104510147043191002552530000000000 FF 00 00 0040 00 00
65PeepingDoom1451014704319502551270404040400 FF 00 00 0040 00 00
66BossOrb850461016150441950221270404040400 FF 00 00 0080 00 14
67SideKick1250451016154380100501270000000000 FF 00 00 0080 00 00
68101097100150842008484848400 FF 00 00 0080 02 00
69JinnBottle97121011516950172530404040400 04 00 00 0000 08 00
70Evilweevil158171087201025271920404040400 FF 00 00 0000 00 0F
71Tempurite88121071016950202550404040400 00 00 00 0000 00 00
72Diablos504101321065061270404040400 00 00 00 0000 00 00
73Gargoyle26031101112321550601000404040400 00 00 00 0000 00 00
74Grimalkin12019101110221150351270404040200 FF 00 00 0000 00 02
75Hench495107011710102000202020200 00 00 00 0000 00 00
761501510101019100121920808080800 FF 00 00 0000 00 00
77Croaker100161011020105011270404040400 00 00 00 0000 00 00
78Amphibite100161011020105011270404040400 00 00 00 0000 00 00
79BullFrog100161011020105011270404040400 00 00 00 0000 00 00
80MadBat1841010710145051270404040400 04 00 00 0000 00 0A
81Vamp1201910117221330121270404040400 FF 00 00 0000 00 0E
82Scouter3003010820311450322200384848400 FF 00 00 0002 08 00
83Flyclops900471081044195011271010101000 FF 00 00 0002 00 07
84Bugger10071015712750101270304040800 06 00 00 0080 40 00
85Debugger12091011314850121270304040800 06 00 00 0080 40 00
86Debuggest102435106123516501001270304040400 7F 00 00 0080 40 00
87Sorcerer220201010823110101278484840200 FF 00 00 0000 08 00
88Jinn450331016853315100762550404040400 FF 00 00 0000 08 00
89Barghest45033101085331570761270404040400 FF 00 00 0000 08 00
903000040106125100175012548F8F8F8F00 FF 00 00 0080 02 13
91Crater808108513825151270404040800 00 00 00 0000 00 00
92Volcano2572410810261250251278100018100 FF 00 00 0000 00 00
93Shitake15817105720100271270404040400 FF 00 00 0000 00 00
94Hetake1411052865041270404040400 00 00 00 0000 00 00
95Rubble515301016101007510011400000000000 FF 00 00 0080 00 00
9600107101001030641000404040400 FF 00 00 0080 02 00
97Shist2502310110251260351800404040400 FF 00 00 0000 00 00
98Pahoehoe25023101610251250351350000000000 FF 00 00 0000 00 10
99Nereid1381210821695051500301040400 FF 00 00 0000 10 00
10010110101010015012530404040400 FF 00 00 0000 00 06
101Mohavor40028108272950501601000804040800 FF 00 00 0000 00 00
102Shadow1710105127508160040404047F FF 00 00 0004 80 00
103250005010131010020502551270404040400 FF 00 00 00E0 03 00
104Base884010711539179911270404040400 FF 00 00 0004 80 11
105Acid1010101331589952550220202000 FF 00 00 0000 00 00
106Alkaline9810121213890152500220202000 FF 00 00 0000 00 00
107Ion152171011020105011270404040400 FF 00 00 0000 00 00
108Anion1521710910201050501270404040400 FF 00 00 0080 00 00
109Thrasher66635101010035167080830404040400 00 00 00 0000 00 00
1101000046101215010019502551270404040400 FF 00 00 00E0 02 00
111LavosSpawn1350046101616100191002552530000000000 FF 00 00 00E0 02 00
112Lasher66635101110351650110830404040400 00 00 00 0000 00 00
113Goblin146141015101890500404040400 00 00 00 0000 00 00
114Ogre101011010015011270404040400 00 00 00 0000 00 00
115CaveBat1081210131016105052550404040400 FF 00 00 0000 00 00
116Ogan1461410121018975352400808080800 00 00 00 0000 00 0B
117Flunky3902210107241230281270184010100 00 00 00 0000 00 03
118Groupie390231097251230421270184010100 00 00 00 0000 00 01
119101011010015011270404040400 00 00 00 0080 02 00
120101011010015011270404040400 00 00 00 0000 00 00
121WingedApe45018101110211190311270404040400 00 00 00 0000 00 00
122CaveApe43623101110251290501000404040400 FF 00 00 0000 00 00
123Megasaur8301810825211140332300404040400 00 00 00 0000 00 00
124Omnicrone21860111100750421270000000000 00 00 00 0000 00 0C
125Beast83030101010311450401700404040400 00 00 00 0080 00 00
126BlueBeast5000291071010014501001500404000200 00 00 00 0080 02 00
127RedBeast5000291071010014501001500404020000 00 00 00 0080 02 00
128Turret7002010161023823011400000000000 FF 00 00 0000 00 00
129Lizardactyl950381012120371750801278404040400 04 00 00 0002 00 00
130123411011100105011270404040400 FF 00 00 0000 08 10
131AvianRex32724101510261250551270304040400 FF 00 00 0000 00 00
132Blob10504510825431950251270400020400 FF 00 00 0000 00 12
133Alien13504610125441950241270404040400 FF 00 00 0000 00 14
134Rat4571017012120101270401040400 00 00 00 0000 00 01
135Gremlin1101810177211150172500404040400 00 00 00 0000 00 00
136Runner1961510910191030272000404040400 00 00 00 0000 00 00
137Proto212891010814850111270403040400 7F 00 00 0080 40 01
138Proto3256111091216950141270403040400 7F 00 00 0080 40 01
139Proto410243810713717501001270304040400 7F 00 00 0080 40 00
140Bug898101051385081270404040400 00 00 00 0000 40 00
141Beetle1211073865051270404040400 00 00 00 0000 00 00
142Goon2800451012301001950301278484040400 FF 00 00 0080 00 14
143Cyrus200040101501001710050255000000007F FF 00 00 0084 03 00
144Yakra92061010910075016127040404047F FF 00 00 0080 03 00
145RainFrog1001610110100105011270404040400 00 00 00 0080 02 00
146Gato76118810065071270404040400 FF 00 00 0000 00 01
147DragonTank266710831006609160050404047F FF 00 00 00C0 02 00
148Grinder20871010710066040120060404057F FF 00 00 00C0 02 00
149Golem70003410152210015501051270404040400 04 00 00 0080 02 01
150Synchrite225047101281001950221270404040400 FF 00 00 0000 40 14
151Masa10001510771001050281270404040400 00 00 00 0080 02 00
152Mune100015109111001050181270404040400 00 00 00 0080 02 00
15336001610116100105040127070404047F FF 00 00 0080 03 0B
154Azala270020101151001130352300404040400 00 00 00 0080 02 00
155Nizbel420018109331001110060252040404047F FF 00 00 0080 03 00
156NizbelII650027016351001350851270404040400 FF 00 00 0080 03 02
157Slash320021101461001250401270808080800 FF 00 00 0080 03 01
158Slash520022101471001260701270808000800 FF 00 00 0080 03 0B
159Flea412021010101001260451500606060400 FF 00 00 0080 03 08
160FleaPlus400037108221001650851270404040400 00 00 00 0080 02 00
161Dalton350032101501001550201270404040400 FF 00 00 0080 03 00
162DaltonPlus2800321010201001550201270404040400 FF 00 00 0080 02 00
163Mutant3001010128100850131270402040400 00 00 00 0000 00 0A
164MetalMute1980481013131002050201270404040400 00 00 00 0000 00 0F
165SuperSlash4000371091510016502001270404040400 FF 00 00 0080 02 00
166Ozzie76212101210100910001270000000000 FF 00 00 0080 03 00
167Ozzie10002310111001210012550808080800 FF 00 00 2080 02 00
168GreatOzzie6000381084010017501601270404040400 FF 00 00 0080 02 00
169Heckran21001310161610095040253040404047F FF 00 00 0080 03 00
170Gigasaur2250351010923516302552550404040400 00 00 00 0000 00 00
171Leaper800351013853516302001920404040400 00 00 00 0000 00 00
172FossilApe1800351012103516801801000404040400 00 00 00 0000 00 00
173TankHead60051087678540000404007F FF 00 00 00C0 02 00
174FrogKing101011010015011270404040400 00 00 00 0000 00 00
175Octorider100101010715850131800404040400 00 00 00 0000 00 00
176Zeal200005010141510020502551270404040400 FF 00 00 00E0 02 14
1772800048101171002099342554040404000 FF 00 00 00E0 02 00
1782800016101111002099342554040404000 FF 00 00 00E0 02 00
179Zombor800131012710095035175048F8F0400 FF 00 00 0080 02 0D
180960131087100950161278F04048F00 FF 00 00 0080 02 00
1814800300830100100651702500000000000 FF 00 00 00C0 02 00
182500030101330100100652552500000000000 FF 00 00 0080 02 0F
183Display13801333100175011270404040400 00 00 00 0060 02 00
184MegaMutant4600451010101001950351270404040400 FF 00 00 0080 02 0F
1853850451010101001950221270404040400 FF 00 00 0080 02 14
186SuperSlash25003510111010016501501270404040400 00 00 00 0080 02 00
187FleaPlus2500351091510016501201270404040400 00 00 00 0080 02 00
188BlackTyrano1050020101181001110012530404040400 FF 00 00 00E0 07 00
189RustTyrano2500035101330100165011270404040400 FF 00 00 00E0 03 00
190MotherBrain50002310131100125011270404040400 FF 00 00 00E0 03 00
19104010161810010010012550000000000 FF 00 00 00E0 03 00
192AtroposXR6000381011101001750381270404040400 00 00 00 0080 02 14
193Cybot180049101210462050321270404040400 7F 00 00 0000 40 14
194Lavos1200810144100850161270404040000 FF 00 00 00E0 02 00
195Lavos21001310161610095040253040404047F FF 00 00 00E0 03 00
196Lavos960131087100950161278F04048F00 FF 00 00 00E0 02 00
197Lavos36001610116100105040127070404047F FF 00 00 00E0 03 0B
198Lavos420018109271001110060252040404047F FF 00 00 00E0 03 00
199YakraXIII180004510142010019502001270404040400 FF 00 00 0080 03 00
200Tubster215048101225010020501281270484040300 FF 00 00 0080 02 14
201Lavos666620101131001150702308484848400 FF 00 00 00E0 02 01
202Lavos266710831007609160050404047F FF 00 00 00E0 02 00
203200005010165010020100452550404040400 FF 00 00 00E0 03 00
20412000501016501002050251270404040400 FF 00 00 00E0 02 00
205Lavos8000501016501002050251270404040400 FF 00 00 00E0 02 00
206LavosCore10000500162110020501001270404040400 FF 00 00 00E0 02 16
207Bit20071010210075061270404040400 FF 00 00 0000 02 00
208Byte192351096351650401920404040400 7F 00 00 0000 40 00
209GigaGaia950032107151001550501270404040400 FF 00 00 00E0 02 00
2102000321014101001550401270404040400 FF 00 00 0080 02 00
2112000321014101001550601270404040400 FF 00 00 0080 02 00
212Guardian1200810144100850161270404040000 FF 00 00 00E0 02 00
213RedScout3003210960321550322208403840300 FF 00 00 0002 08 00
214BlueScout30032101042321550322208484038400 FF 00 00 0002 08 00
215LavosSpawn1000037101616100161002552530000000000 FF 00 00 00E0 02 00
21640003710101510016502551270404040400 FF 00 00 00E0 02 00
217LaserGuard4003010104031143011000304040400 FF 00 00 0000 00 00
21845051087678540000404007F FF 00 00 00C0 02 00
21920871010710076040120060404057F FF 00 00 00C0 02 00
22020071010210075061270404040400 FF 00 00 0080 02 00
221101011010015011270404040400 00 00 00 0080 02 00
222800131012710095035175048F8F0400 FF 00 00 0080 02 0D
223270020101151001130352300404040400 00 00 00 0080 02 00
224Spekkio35091081010015012530404040400 FF 00 00 0084 02 00
225Spekkio8001910115510015012530404040400 FF 00 00 0084 02 00
226Spekkio220029101315010015012530404040400 FF 00 00 0084 02 00
227Spekkio480039101412010015012530404040400 FF 00 00 0084 02 00
228Spekkio1000098101512510017011270404040400 FF 00 00 0084 02 00
229Spekkio2000099101620010018511270404040400 FF 00 00 0084 02 00
230Lavos1050020101181001110012530404040400 FF 00 00 00E0 07 00
231Lavos950032107151001550501270404040400 FF 00 00 00E0 02 00
232Lavos10003010820100140451278484018400 FF 00 00 00E0 02 00
233Lavos50002310131100125011270404040400 FF 00 00 00E0 03 00
234Lavos2500035101330100165011270404040400 FF 00 00 00E0 03 00
235Lavos30000201016210011501801270404040400 FF 00 00 00E0 03 00
236Lavos1000015101211002050731270404040400 FF 00 00 00E0 03 00
2372000501016401002050401278484848400 FF 00 00 00E0 02 00
238Hexapod100028109103514502001920804040800 FF 00 00 0000 00 0B
239300005010164010020100402550404040400 FF 00 00 00E0 02 00
240101011510015011270404040400 00 00 00 0000 02 00
2411000011011010065011270404040400 FF 00 00 00E0 02 00
242RolyBomber991101131006011270101010100 FF 00 00 0000 00 00
243GolemBoss15000341016181001550401270404040400 FF 00 00 0080 02 01
244Johnny408321097321550681270404040400 00 00 00 0000 00 00
245Basher1503510510351650601270404040400 00 00 00 0000 00 01
246SonofSun120004010164510017100502550000000000 FF 00 00 0084 02 00
24730000401061251001799102548484848400 FF 00 00 0000 02 13
248RSeries150101091100850121270304040700 FF 00 00 0080 02 0B
249Magus666620101181001150702308484848400 FF 00 00 0080 02 01
250Magus6666371091910016501001270404040400 FF 00 00 0080 02 00
2513333371091910016501001270404040400 00 00 00 0080 02 00
252101011010015011270404040400 00 00 00 0000 00 00
253101011010015011270404040400 00 00 00 0000 00 00
254101011010015011270404040400 00 00 00 0000 00 00
255101011010015011270404040400 00 00 00 0000 00 00
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L1681-L1761Battle_LoadEnemyStats: TDC ;FDB438|7B | ; Copies a 23-byte enemy record from EnemyStatData $CC4700 + id*0x17 into the battle combatant stat record. Field map (rec->battle): 0x00-01->+3/+5 & +4/+6; 0x02->+0x12; 0x03-07->+0x22; 0x08-0F->+0x37; 0x10-13 elem defenses->+0x3F ($5E6C array); 0x14-16->+0x19. Enemy id from $7EAF0D,x. TAY ;FDB439|A8 | ; STY.B $04 ;FDB43A|8404 |000004; LDA.W !Enemy03OriginalIndex,X ;FDB43C|BD0DAF |7EAF0D; STA.B $04 ;FDB43F|8504 |000004; REP #$20 ;FDB441|C220 | ; ASL A ;FDB443|0A | ; ASL A ;FDB444|0A | ; ASL A ;FDB445|0A | ; STA.B $00 ;FDB446|8500 |000000; ASL A ;FDB448|0A | ; CLC ;FDB449|18 | ; …Chrono Trigger (USA) · 0xc4700-0xc5dff — $CC:4700-$CC:5DFFChrono Trigger (USA) · 0xc6500-0xc6fff — $CC:6500-$CC:6FFFct_disassembly: Chrono Trigger (US v1.0) disassembly · battle_work.asm#L40-L48BatWork_CurPower = $5E63 ; +0x36 live Power BatWork_CurStamina = $5E64 ; +0x37 live Stamina BatWork_CurSpeed = $5E65 ; +0x38 live Speed BatWork_CurMagic = $5E66 ; +0x39 live Magic BatWork_CurHit = $5E67 ; +0x3A live Hit (accuracy) BatWork_CurEvade = $5E68 ; +0x3B live Evade BatWork_CurMagDef = $5E69 ; +0x3C live Magic Defense BatWork_CurAttack = $5E6A ; +0x3D live Attack BatWork_CurDefense = $5E6B ; +0x3E live Defensect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L30489-L30521Battle_ApplyElemResist: LDA.W $B190 ;C1EF3A|AD90B1 |7EB190; Elemental resistance. ENTRY: reached ONLY via the byte8 TechFxHandler dispatch -- handler 10 (C1EF39 = TDC + fall-through here) or handler 11 (C1EFBC, after the damage multiplier). No direct callers, so a tech gets elemental resistance ONLY if its byte8 selects handler 10/11 (elemental techs); physical combos (handler 2) skip it. A = attack element $7EB190. Despite looking like a bitmask, the consumer is a PRIORITY CASCADE, not a multi-bit test: BIT #$80 Lightning(idx0) / #$40 Shadow(idx1) / #$20 Water(idx2) / #$10 Fire(idx3), and the FIRST set bit branches straight out -- only the HIGHEST set bit is honored, lower bits are ignored. So an attack has exactly ONE element (the field is effectively a priority-encoded enum Lightning>Shadow>Water>Fire; a multi-element value like $30 = Water|Fire resolves to Water only). Only the high nibble selects element. The low nibble is an attack-CLASS tag (0x00 support/no-damage incl. heals, 0x02 magical/elemental damage, 0x04 physical damage -- mutually exclusive; e.g. Antipode $42 = Shadow + magical). It is maintained consistently across the whole table but is INERT at runtime: byte3's ONLY consumer in the ROM is this load -> $B190, and the cascade tests only the high nibble (0x02/0x04/0x00 are all "no element" to it). Actual physical-vs-magical behavior comes from the property record, not this nibble. The chosen index reads target per-element defense $7E5E6C,x (x = target base $7EB1F6 + index) and scales damage once. Absorb/immune flag pass at $C1E575 (target flags $7E5E4E/$7E5E53). STA.B $2C ;C1EF3D|852C |00002C; BIT.B #$80 ;C1EF3F|8980 | ; BEQ + ;C1EF41|F003 |C1EF46; TDC ;C1EF43|7B | ; BRA ++ ;C1EF44|8016 |C1EF5C; ; | | ; + BIT.B #$40 ;C1EF46|8940 | ; BEQ + ;C1EF48|F004 |C1EF4E; LDA.B #$01 ;C1EF4A|A901 | ; BRA ++ ;C1EF4C|800E |C1EF5C; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L1268-L1292StatBoost_BitmaskApply: LDA.L CharInitData,X ;FDB15F|BF0000CC|CC0000; applies capped +0x0A boosts to current stats (+36 power cap 99, +38 speed cap 16, ...) selected by a bitmask byte read from CC0000,X. Purpose TBD (stat tab / tonic?). NOT the join routine despite reading CharInitData base STA.B $04 ;FDB163|8504 |000004; BPL + ;FDB165|1011 |FDB178; LDX.B $00 ;FDB167|A600 |000000; LDA.W $0036,X ;FDB169|BD3600 |7E0036; CLC ;FDB16C|18 | ; ADC.B $0A ;FDB16D|650A |00000A; CMP.B #$63 ;FDB16F|C963 | ; BCC ++ ;FDB171|9002 |FDB175; LDA.B #$63 ;FDB173| ; | | ; ++ STA.W $0036,X ;FDB175|9D3600 |7E0036; …Checked by claude, 2026-11-08 — read the routine that loads an enemy's record and the offsets it writes each byte to, then read the 256 records from the ROM; names from the enemy name table at $CC:6500, 11 bytes eachRevised after a check by a second AI model, 2026-11-08.

Names are the ROM's own text; a slot whose name holds no text is left blank. The loader writes the five status bytes into the second of the combatant record's two status sets (record bytes $22-$26) and copies the last two of them into the first set; bytes 8-19 go to record bytes $37-$42 and bytes 20-22 to $19-$1B. Stat names are the disassembly's labels for the combatant record's bytes $36-$3E (Power, Stamina, Speed, Magic, Hit, Evade, Magic Defense, Attack, Defense), which the stat boost code bears out for Power at $36 (capped at 99) and Speed at $38 (capped at 16); enemies have no Power byte. The elemental resistance code reads the four elemental bytes, $3F-$42, in the order of the attack element's bits $80, $40, $20 and $10, which the disassembly names Lightning, Shadow, Water and Fire; $04 is the common value. Status and elemental bytes are listed in hexadecimal.

Each of the 256 enemy slots has 7 bytes of rewards: experience and gold (two bytes each), the item it drops after the battle, a second item, and tech points. After a battle the game adds each defeated enemy's experience, gold and tech points to the totals, then its drop unless the drop byte is 0: when the drop and the second item differ, the drop goes on the list of items won only if the enemy's drop flag is set and a roll of 0 to 99 comes under 90; when they are the same item, it goes on a second list without a roll. Each list holds three items; an item already on a list is not added again, and one that finds its list full is lost. chrono-trigger-tables/enemy-rewards

No.EnemyExperienceGTech pointsDropSecond item
0Nu248030Mop
1Reptite7202PetalMagma Hand
2Terrasaur25304Lapis
3Kilwala4202Petal
4Krawlie1005005Mid Ether
5Hench932002
6Omicrone4556008
7Martello55440010HyperEther
8Bellbird271002Heal
9Panel80055012Speed Tab
10000MegaElixir
111513708
12BlueImp2121
13GreenImp4241Tonic
14StoneImp1263006Mid Ether
15MudImp354100010Speed Tab
16Roly3251Tonic
17Poly7352Ether
18Rolypoly31501Mid Tonic
19RolyRider5402
20000
21BlueEaglet3321Heal
22GoldEaglet5702FeatherEther
23RedEaglet6902Feather
24000
25AvianChaos4181
26ImpAce11451
27BantamImp2225506AlloyBlade
28Gnasher8701Revive
29Gnawer263002
308801
31000
32Ruminator42240018MegaElixir
33000
34Octopod12101Mid Ether
35Octoblush28351
36Octobino1462504
37Zeal000MegaElixirMegaElixir
38FlyTrap8602PetalDream Bow
39MeatEater19601Ether
40ManEater2537506Pearl Edge
41Krakker3783008
42Egder1801
43Defunct4745008LapisElixir
44Departed5555008LapisHyperEther
45Deceased38202
46Decedent12901
47Macabre4275008EtherFull Ether
48Reaper5187008Elixir
49Guard10701Tonic
50Sentry4674008Full EtherHyperEther
51FreeLancer391252Barrier
52Outlaw104903
53GigaMutant1500200080Wall Ring
54000Hit Ring
55TerraMutant20003800100MuscleRing
56000Power Seal
57Juggler1282203
58Retinite1600200060Speed Tab
59Mage3225508LapisBarrier
60000
61Reptite12604Mid Tonic
62BlueShield11451TonicTonic
63YoduDe11451TonicTonic
64Incognito378200010MuscleRing
65PeepingDoom37845010
66BossOrb07500
67SideKick5000100
68000
69JinnBottle34502Shield
70Evilweevil8102FeatherDream Gun
71Tempurite32452
72Diablos10601
73Gargoyle21606Big Hand
74Grimalkin1141803
75Hench111351
7626301Mid Tonic
77Croaker66002 Fangs2 Fangs
78Amphibite66002 Horns2 Horns
79BullFrog1272004
80MadBat6751
81Vamp58702
82Scouter2342508Lapis
83Flyclops575012Gold Stud
84Bugger18451
85Debugger24501
86Debuggest4524508ShieldElixir
87Sorcerer1112203Mid Ether
88Jinn3034008Lapis
89Barghest3764008Shield
90000
91Crater15351
92Volcano22207Lapis
93Shitake11102Petal
94Hetake3161Tonic
95Rubble10000100Mid EtherMid Ether
96000
97Shist9403Petal
98Pahoehoe9403Petal
99Nereid221001Ether
1001441002
101Mohavor34855015Shield
102Shadow14501
103000
104Base3776508
105Acid33201Barrier
106Alkaline45401
107Ion72002 Feathers2 Feathers
108Anion72022 Petals2 Petals
109Thrasher3182508
11024502500120Haste Helm
111LavosSpawn000Safe Helm
112Lasher3658508
113Goblin32802
114Ogre3486508
115CaveBat28401Revive
116Ogan32802Shield
117Flunky1132102
118Groupie1271702
119000
1203828008
121WingedApe12302FangRuby Vest
122CaveApe12303Fang
123Megasaur14702FangAeon Blade
124Omnicrone22551Ether
125Beast2044505R{e7}bow Helm
126BlueBeast3008008MermaidCap
127RedBeast3008008Elixir
128Turret15000100Mid EtherMid Ether
129Lizardactyl44408HyperEther
130000
131AvianRex12903Feather
132Blob753125010BarrierMagic Ring
133Alien80411008ShieldMagic Tab
134Rat1801
135Gremlin51702
136Runner4802Horn
137Proto222501Tonic
138Proto333601Full Tonic
139Proto44778008BarrierElixir
140Bug2601Heal
141Beetle3151
142Goon85080015ElixirNova Armor
143Cyrus000
144Yakra506005
145RainFrog64002 Feathers2 Feathers
146Gato1001Power Meal
147DragonTank405005
148Grinder000
149Golem1000200035Magic Tab
150Synchrite75590012HyperEtherGold Erng
151Masa2002002
152Mune2002002
153500150010
154Azala800010Magic Tab
155Nizbel500010Third Eye
156NizbelII880015Third Eye
157Slash000
158Slash500150010
159Flea500100010Flea Vest
160FleaPlus2500100030Flea Vest
161Dalton1000250030Power Meal
162DaltonPlus2500200040Power Meal
163Mutant22301Full Tonic
164MetalMute685110016HyperEther
165SuperSlash2500200030Slasher 2
166Ozzie301002OzziePants
167Ozzie000OzziePants
168GreatOzzie2500100020OzziePants
169Heckran250150010
170Gigasaur58445015BarrierRuby Armor
171Leaper41236010ShieldElixir
172FossilApe53345015LapisMegaElixir
173TankHead000
174FrogKing101001
175Octorider30452
176Zeal000MegaElixir
177000PrismDress
178000Prism Helm
179Zombor350150010
180000
181500020
182500020
183Display000Elixir
184MegaMutant900150050Elixir
185000Vigil Hat
186SuperSlash2000200020
187FleaPlus2000200020
188BlackTyrano1000015Power Tab
189RustTyrano3800200040Red Mail
190MotherBrain3000300040Blue Mail
191000
192AtroposXR000
193Cybot72875016HyperEtherPower Meal
194Lavos000
195Lavos000
196Lavos000
197Lavos000
198Lavos000
199YakraXIII3500200040MegaElixirWhite Mail
200Tubster85080020ElixirPower Tab
201Lavos000
202Lavos000
203000
204000
205Lavos000
206LavosCore000
207Bit000
208Byte37808
209GigaGaia3000300030Speed Tab
210000
211000
212Guardian30010005
213RedScout2342508Barrier
214BlueScout2342508Shield
215LavosSpawn000
216747500120ElixirElixir
217LaserGuard3461208Full Tonic
218000
219000
220000
221000
222000
223000
224Spekkio000
225Spekkio000
226Spekkio000
227Spekkio000
228Spekkio000
229Spekkio000
230Lavos000
231Lavos000
232Lavos000
233Lavos000
234Lavos000
235Lavos000
236Lavos000
237000
238Hexapod40860015LapisBarrier
239000
240000
241000
242RolyBomber721003
243GolemBoss2500200040
244Johnny2461508
245Basher37708
246SonofSun3800200040Black Mail
247000Elixir
248RSeries801001
249Magus1500300015
250Magus3000400050MegaElixir
251101001
252101001
253101001
254101001
255101001
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L481-L558LDA.L EnemyRewardTable,X ;FDABD6|BF005ECC|CC5E00; CLC ;FDABDA|18 | ; ADC.W !TotalAmountExpWon ;FDABDB|6D8CB2 |7EB28C; STA.W !TotalAmountExpWon ;FDABDE|8D8CB2 |7EB28C; LDA.L UNREACH_CC5E02,X ;FDABE1|BF025ECC|CC5E02; CLC ;FDABE5|18 | ; ADC.W !TotalAmountGoldWon_B2A5 ;FDABE6|6DA5B2 |7EB2A5; STA.W !TotalAmountGoldWon_B2A5 ;FDABE9|8DA5B2 |7EB2A5; TDC ;FDABEC|7B | ; SEP #$20 ;FDABED|E220 | ; LDA.L UNREACH_CC5E06,X ;FDABEF|BF065ECC|CC5E06; REP #$20 ;FDABF3|C220 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L29795-L29819LDA.W $B2CC ;C1EA1B| STA.B $20 ;C1EA1E| JSR.W Battle_DispatchTechFx ;C1EA20| LDA.B $1A ;C1EA23| BEQ _LEA40 ;C1EA25| LDX.B $0C ;C1EA27| LDA.W $AE5A,X ;C1EA29| BIT.B #$80 ;C1EA2C| BEQ _LEA40 ;C1EA2E| AND.B #$7F ;C1EA30| STA.W $AE5A,X ;C1EA32| INC.W $B3BF ;C1EA35| …Chrono Trigger (USA) · 0xc5e00-0xc64ff — $CC:5E00-$CC:64FFChecked by claude, 2026-11-08 — read the battle-end sums of experience (bytes 0-1), gold (2-3) and tech points (6), the drop code on byte 4 and its two lists, and the steal helper that takes byte 5 or byte 4; then read the 256 records from the ROMRevised after a check by a second AI model, 2026-11-08.

The disassembly's layout names byte 4 the charm item and byte 5 the drop; the battle-end code reads byte 4 as the drop. A helper the disassembly ties to Ayla's Charm takes byte 5 when a check it runs first succeeds and the first of the enemy's two item flags is set, and otherwise byte 4 when the second flag is set, clearing the flag it uses. Item names are the ROM's own text.

Cited by: Item drop table

The 89 weapon slots ($01-$59) each have a six-byte record (flags, price, who may equip it, a stat bonus, and an element bonus) and a five-byte one whose first byte is the weapon's attack; the menu takes the equipped weapon's as the weapon attack it works the character's attack from. chrono-trigger-tables/weapons

No.ItemPriceEquipped byAttackStat bonusByte 2Byte 3Byte 4Flags
1Wood Sword100Crono31000000
2Iron Blade350Crono71000000
3SteelSaber800Crono151000000
4Lode Sword4000Crono201000000
5Red Katana4500Crono30Magic +21000000
6Flint Edge6500Crono401000000
7Dark Saber8700Crono501000000
8Aeon Blade12500Crono701000000
9Demon Edge17000Crono90100C100
10AlloyBlade21000Crono1101000000
11Star Sword25000Crono1251000000
12VedicBlade30000Crono1351000000
13Kali Blade35000Crono1502000000
14Shiva Edge40000Crono17072F100
15Bolt Sword5000Crono251000000
16Slasher2Crono43Speed +21000014
17Bronze Bow80Marle32000000
18Iron Bow850Marle152000000
19Lode Bow1700Marle202000000
20Robin Bow2850Marle252000000
21Sage Bow4200Marle402000000
22Dream Bow5800Marle602000000
23CometArrow7800Marle802000000
24SonicArrow10000Marle1002027100
25Valkerye38000Marle1804000000
26Siren28000Marle1404026100
27002000000
28002000000
29002000000
30002000000
31Air Gun300Lucca52000000
32Dart Gun800Lucca72000000
33Auto Gun1200Lucca152000000
34PicoMagnum1800Lucca202000000
35Plasma Gun3200Lucca252028100
36Ruby Gun5800Lucca402000000
37Dream Gun7400Lucca602000000
38Megablast9800Lucca802000000
39Shock Wave11000Lucca1102029100
40WonderShot32000Lucca2504002100
41Graedus12000Lucca602018100
42002000000
43002000000
44002000000
45002000000
46Tin Arm1000Robo201000000
47Hammer Arm3500Robo251000000
48MirageHand5500Robo301000000
49Stone Arm7500Robo401000000
50DoomFinger9800Robo501000000
51Magma Hand11200Robo701000000
52MegatonArm15000Robo901000000
53Big Hand18000Robo1051000000
54Kaiser Arm21000Robo1201000000
55Giga Arm24000Robo1351000000
56Terra Arm28000Robo1501000000
57Crisis Arm2Robo1519100
58001000000
59BronzeEdge350Frog62300000
60Iron Sword1100Frog102300000
61Masamune2Frog752300014
62FlashBlade18000Frog902300000
63Pearl Edge22000Frog105230C100
64Rune Blade24000Frog120Magic +42300000
65BraveSword32000Frog1352300000
66Masamune2Frog2002300014
67Demon Hit26000Frog120230D100
68Fist1Ayla02000000
69Fist1Ayla02500000
70Fist1Ayla03000000
71Iron Fist1Ayla0352E100
72BronzeFist1Ayla01038100
73102000000
74102000000
75DarkScythe20000Magus1201000000
76Hurricane35000Magus1351000000
77StarScythe42000Magus1501000000
78DoomSickle2Magus1601016100
79Mop2Crono11000000
80Bent Sword10000014
81Bent Hilt10000014
82Masamune10000014
83Swallow38000Crono145Speed +33000000
84Slasher 22Crono1552200014
85Rainbow60000Crono2207000000
8610000000
8710000000
8810000000
8910000000
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L12969-L13031; Classifies item id A by category boundaries $5A/$7B/$94/$BC: stores class 0-4 to $04CC and the id relative to its class base to $04CE. Item_ClassifyId: PHX ;C28881|DA | ; PHP ;C28882|08 | ; SEP #$30 ;C28883|E230 | ; LDX.B #$00 ;C28885|A200 | ; ; | | ; - CMP.L DATA8_C288A8,X ;C28887|DFA888C2|C288A8; BCC + ;C2888B|9005 |C28892; INX ;C2888D|E8 | ; CPX.B #$04 ;C2888E|E004 | ; BCC - ;C28890|90F5 |C28887; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FF.asm#L538-L542DATA8_FFCF0E = $FFCF0E DATA8_FFCF18 = $FFCF18 DATA8_FFCF1D = $FFCF1D DATA8_FFCF27 = $FFCF27 StatTab_DerivedOffsetTable = $FFCF2BChrono Trigger (USA) · 0x288a7-0x288ac — $C2:88A7-$C2:88ACChrono Trigger (USA) · 0x3fcf0e-0x3fcf2b — $FF:CF0E-$FF:CF2Bct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14416-L14426Item_CheckCharCanEquip: PHX ;C293A8|DA | ; PHP ;C293A9|08 | ; SEP #$30 ;C293AA|E230 | ; LDX.W $04C9 ;C293AC|AEC904 |7E04C9; LDA.W $7A00,X ;C293AF|BD007A |7E7A00; STA.W $0D71 ;C293B2|8D710D |7E0D71; LDX.W $9A90 ;C293B5|AE909A |7E9A90; AND.L CharPartyFlagTable,X ;C293B8|3FBBF9FF|FFF9BB; PLP ;C293BC|28 | ; PLX ;C293BD|FA | ; RTS ;C293BE|60 | ;Chrono Trigger (USA) · 0x3ff9bb-0x3ff9c2 — $FF:F9BB-$FF:F9C2Chrono Trigger (USA) · 0xc0b5e-0xc15c3 — $CC:0B5E-$CC:15C3ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14996-L15070- SEP #$20 ;C298B7|E220 | ; LDA.B $00 ;C298B9|A500 |000000; JSR.W Item_GetStatsPtr ;C298BB|20AD88 |C288AD; LDY.B $00 ;C298BE|A400 |000000; LDA.L CharInitData,X ;C298C0|BF0000CC|CC0000; AND.B #$1E ;C298C4|291E | ; STA.W $7700,Y ;C298C6|990077 |7E7700; LDA.L DATA8_CC0003,X ;C298C9|BF0300CC|CC0003; STA.W $7A00,Y ;C298CD|99007A |7E7A00; LDA.L DATA8_CC0004,X ;C298D0|BF0400CC|CC0004; STA.W $7B00,Y ;C298D4|99007B |7E7B00; REP #$20 ;C298D7|C220 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L1250-L1356StatBoost_CheckAndApply: TDC ;FDB141|7B | ; LDX.B $08 ;FDB142|A608 |000008; LDA.L DATA8_CC0004,X ;FDB144|BF0400CC|CC0004; BNE StatBoost_ApplyIndexed ;FDB148|D003 |FDB14D; JMP.W CODE_JP_FDB200 ;FDB14A|4C00B2 |FDB200; ; | | ; ; Loads boost amount $0A from CC0001,X then falls into StatBoost_BitmaskApply (bitmask CC0000,X selects which stats +$36..$3C get +$0A, capped 99/16/255). StatBoost_ApplyIndexed: REP #$20 ;FDB14D|C220 | ; ASL A ;FDB14F|0A | ; CLC ;FDB150|18 | ; ADC.B $0E ;FDB151|650E |00000E; TAX ;FDB153|AA | ; …Chrono Trigger (USA) · 0xc29d7-0xc2a04 — $CC:29D7-$CC:2A04Chrono Trigger (USA) · 0xc06a4-0xc08bf — $CC:06A4-$CC:08BFChrono Trigger (USA) · 0xc0262-0xc0423 — $CC:0262-$CC:0423ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14147-L14264Menu_ComputeEquippedStats: PHP ;C2916E|08 | ; … JSR.W (DATA8_C291DB,X) ;C291B4|FCDB91 |C291DB; … LDA.B #$05 ;C291EB|A905 | ; STA.L !WRMPYA ;C291ED|8F024200|004202; LDA.W $0DB5 ;C291F1|ADB50D |7E0DB5; STA.L !WRMPYB ;C291F4|8F034200|004203; … Menu_AccumEquipSlotStats: PHP ;C29261|08 | ; … JSR.W (DATA8_C2926E,X) ;C29269|FC6E92 |C2926E; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L26365-L26410; gear record byte5 (CC0005+[$08]): bits7..4 select record field +0x3F/+0x40/+0x41/+0x42, low nibble = amount added (gear stat-boost effects) Battle_ApplyGearStatBonus: TDC ;C1CF69|7B | ; LDX.B $08 ;C1CF6A|A608 |000008; LDA.L DATA8_CC0005,X ;C1CF6C|BF0500CC|CC0005; BNE + ;C1CF70|D003 |C1CF75; JMP.W CODE_JP_C1CFBD ;C1CF72|4CBDCF |C1CFBD; ; | | ; + STA.B $04 ;C1CF75|8504 |000004; AND.B #$0F ;C1CF77|290F | ; STA.B $0A ;C1CF79|850A |00000A; LDA.B $04 ;C1CF7B|A504 |000004; BPL + ;C1CF7D|100B |C1CF8A; …Checked by claude, 2026-11-08 — read how the menu finds an item's two records (its class by id: weapons below $5A, armor to $7A, helmets to $93, accessories to $BB, the rest consumables; each class's base and size in bank $FF), which bytes it copies (flags, price, who may equip, stat-bonus index, and the first byte of the second record), the battle code that adds a stat bonus and an element bonus, and the equip check against the character bits $80 (Crono) to $02 (Magus); then read every record from the ROMRevised after a check by a second AI model, 2026-11-08.

Names are the ROM's own text (the US release's abbreviations, such as SteelSaber). Who equips an item is its fourth-byte mask; "all" is $FE, the seven characters. A stat bonus is an index into a table of two-byte entries, a mask of stats and one amount for all of them, capped at 99, except Speed at 16 and Evade, which stops only at 255; an element bonus is one byte whose high four bits pick elements and whose low four add to them. Element names follow the disassembly's order (Lightning, Shadow, Water, Fire). Flags are the first byte, in hexadecimal. No weapon has an element bonus. Bytes 2-4 of the second record are listed as stored: the disassembly calls byte 2 a damage spread and bytes 3-4 an on-hit technique and its switch.

The 32 armor slots ($5B-$7A) each have a six-byte record (flags, price, who may equip it, a stat bonus, and an element bonus) and a three-byte one whose first byte is its defense; the menu adds the equipped armor's and helmet's to the defense it totals. chrono-trigger-tables/armor

No.ItemPriceEquipped byDefenseStat bonusElement bonusEffectFlags
91Hide Tunic80all500
92Karate Gi300all1000
93BronzeMail520Crono, Robo, Frog, Magus1600
94MaidenSuit560Marle, Lucca, Ayla1800
95Iron Suit800all2500
96Titan Vest1200all3200
97Gold Suit1300all3900
98Ruby Vest3600all45Fire +500
99Dark Mail3800Crono, Robo, Frog, Magus45Magic Defense +500
100Mist Robe6800Marle, Lucca, Ayla5400
101Meso Mail6000all5200
102Lumin Robe6500Marle, Lucca, Ayla63Magic Defense +500
103Flash Mail8500Crono, Robo, Frog, Magus6400
104Lode Vest8500all7100
105Aeon Suit9000all7500
106ZodiacCape10000Marle, Lucca, Ayla80Magic Defense +1000
107Nova Armor11000Crono, Robo, Frog, Magus822D00
108PrismDress12000Marle, Lucca, Ayla993100
109Moon Armor13000Crono, Robo, Frog, Magus85Magic Defense +1000
110Ruby Armor14000all78Fire +1500
111RavenArmor15800Magus7600
112Gloom Cape16400Magus8400
113White Mail8200all701F00
114Black Mail8200all702000
115Blue Mail8200all702100
116Red Mail8200all702200
117White Vest5800all451A00
118Black Vest5800all451B00
119Blue Vest5800all451C00
120Red Vest5800all451D00
121Taban Vest2Lucca33Speed +2Fire +514
122Taban Suit2Lucca79Speed +3Fire +1514
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L12969-L13031; Classifies item id A by category boundaries $5A/$7B/$94/$BC: stores class 0-4 to $04CC and the id relative to its class base to $04CE. Item_ClassifyId: PHX ;C28881|DA | ; PHP ;C28882|08 | ; SEP #$30 ;C28883|E230 | ; LDX.B #$00 ;C28885|A200 | ; ; | | ; - CMP.L DATA8_C288A8,X ;C28887|DFA888C2|C288A8; BCC + ;C2888B|9005 |C28892; INX ;C2888D|E8 | ; CPX.B #$04 ;C2888E|E004 | ; BCC - ;C28890|90F5 |C28887; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FF.asm#L538-L542DATA8_FFCF0E = $FFCF0E DATA8_FFCF18 = $FFCF18 DATA8_FFCF1D = $FFCF1D DATA8_FFCF27 = $FFCF27 StatTab_DerivedOffsetTable = $FFCF2BChrono Trigger (USA) · 0x288a7-0x288ac — $C2:88A7-$C2:88ACChrono Trigger (USA) · 0x3fcf0e-0x3fcf2b — $FF:CF0E-$FF:CF2Bct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14416-L14426Item_CheckCharCanEquip: PHX ;C293A8|DA | ; PHP ;C293A9|08 | ; SEP #$30 ;C293AA|E230 | ; LDX.W $04C9 ;C293AC|AEC904 |7E04C9; LDA.W $7A00,X ;C293AF|BD007A |7E7A00; STA.W $0D71 ;C293B2|8D710D |7E0D71; LDX.W $9A90 ;C293B5|AE909A |7E9A90; AND.L CharPartyFlagTable,X ;C293B8|3FBBF9FF|FFF9BB; PLP ;C293BC|28 | ; PLX ;C293BD|FA | ; RTS ;C293BE|60 | ;Chrono Trigger (USA) · 0x3ff9bb-0x3ff9c2 — $FF:F9BB-$FF:F9C2Chrono Trigger (USA) · 0xc0b5e-0xc15c3 — $CC:0B5E-$CC:15C3ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14996-L15070- SEP #$20 ;C298B7|E220 | ; LDA.B $00 ;C298B9|A500 |000000; JSR.W Item_GetStatsPtr ;C298BB|20AD88 |C288AD; LDY.B $00 ;C298BE|A400 |000000; LDA.L CharInitData,X ;C298C0|BF0000CC|CC0000; AND.B #$1E ;C298C4|291E | ; STA.W $7700,Y ;C298C6|990077 |7E7700; LDA.L DATA8_CC0003,X ;C298C9|BF0300CC|CC0003; STA.W $7A00,Y ;C298CD|99007A |7E7A00; LDA.L DATA8_CC0004,X ;C298D0|BF0400CC|CC0004; STA.W $7B00,Y ;C298D4|99007B |7E7B00; REP #$20 ;C298D7|C220 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L1250-L1356StatBoost_CheckAndApply: TDC ;FDB141|7B | ; LDX.B $08 ;FDB142|A608 |000008; LDA.L DATA8_CC0004,X ;FDB144|BF0400CC|CC0004; BNE StatBoost_ApplyIndexed ;FDB148|D003 |FDB14D; JMP.W CODE_JP_FDB200 ;FDB14A|4C00B2 |FDB200; ; | | ; ; Loads boost amount $0A from CC0001,X then falls into StatBoost_BitmaskApply (bitmask CC0000,X selects which stats +$36..$3C get +$0A, capped 99/16/255). StatBoost_ApplyIndexed: REP #$20 ;FDB14D|C220 | ; ASL A ;FDB14F|0A | ; CLC ;FDB150|18 | ; ADC.B $0E ;FDB151|650E |00000E; TAX ;FDB153|AA | ; …Chrono Trigger (USA) · 0xc29d7-0xc2a04 — $CC:29D7-$CC:2A04ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L26365-L26410; gear record byte5 (CC0005+[$08]): bits7..4 select record field +0x3F/+0x40/+0x41/+0x42, low nibble = amount added (gear stat-boost effects) Battle_ApplyGearStatBonus: TDC ;C1CF69|7B | ; LDX.B $08 ;C1CF6A|A608 |000008; LDA.L DATA8_CC0005,X ;C1CF6C|BF0500CC|CC0005; BNE + ;C1CF70|D003 |C1CF75; JMP.W CODE_JP_C1CFBD ;C1CF72|4CBDCF |C1CFBD; ; | | ; + STA.B $04 ;C1CF75|8504 |000004; AND.B #$0F ;C1CF77|290F | ; STA.B $0A ;C1CF79|850A |00000A; LDA.B $04 ;C1CF7B|A504 |000004; BPL + ;C1CF7D|100B |C1CF8A; …Chrono Trigger (USA) · 0xc08c0-0xc0985 — $CC:08C0-$CC:0985Chrono Trigger (USA) · 0xc047e-0xc04e0 — $CC:047E-$CC:04E0ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14249-L14273; Dispatches on equip slot $0DAD (table C2926E): weapon rank $7C00 -> $0DB5; armor/helm add $7C00 defense into $0DB6; accessory: effect idx $7B00 -> CC29D7 bit mask adds boosts into $0DAE+ and HP +25%/50% for items $A0/$A1 -> $9B25. Menu_AccumEquipSlotStats: PHP ;C29261|08 | ; SEP #$30 ;C29262|E230 | ; LDA.W $0DAD ;C29264|ADAD0D |7E0DAD; ASL A ;C29267|0A | ; TAX ;C29268|AA | ; JSR.W (DATA8_C2926E,X) ;C29269|FC6E92 |C2926E; PLP ;C2926C|28 | ; RTS ;C2926D|60 | ; ; | | ; DATA8_C2926E = $C2926E incbin "data/bank_C2.bin":$926E..$9276 ;C2926E..C29276 …Checked by claude, 2026-11-08 — read how the menu finds an item's two records (its class by id: weapons below $5A, armor to $7A, helmets to $93, accessories to $BB, the rest consumables; each class's base and size in bank $FF), which bytes it copies (flags, price, who may equip, stat-bonus index, and the first byte of the second record), the battle code that adds a stat bonus and an element bonus, and the equip check against the character bits $80 (Crono) to $02 (Magus); then read every record from the ROMRevised after a check by a second AI model, 2026-11-08.

Names are the ROM's own text (the US release's abbreviations, such as SteelSaber). Who equips an item is its fourth-byte mask; "all" is $FE, the seven characters. A stat bonus is an index into a table of two-byte entries, a mask of stats and one amount for all of them, capped at 99, except Speed at 16 and Evade, which stops only at 255; an element bonus is one byte whose high four bits pick elements and whose low four add to them. Element names follow the disassembly's order (Lightning, Shadow, Water, Fire). Flags are the first byte, in hexadecimal. The effect column is the second record's second byte, in hexadecimal; the disassembly reads it as switched on by the third byte and as an index into a table of three-byte entries at $CC:2A05 that set bits in the combatant's record (the four Mails' absorb an element).

The 24 helmet slots ($7C-$93) each have a six-byte record (flags, price, who may equip it, a stat bonus, and an element bonus) and a three-byte one whose first byte is its defense; the menu adds the equipped armor's and helmet's to the defense it totals. chrono-trigger-tables/helmets

No.ItemPriceEquipped byDefenseStat bonusElement bonusEffectFlags
124Hide Cap50all300
125BronzeHelm200all800
126Iron Helm500all1400
127Beret700Marle, Lucca, Ayla1700
128Gold Helm1200Crono, Robo, Frog, Magus1800
129Rock Helm2000all2000
130CeraTopper2500all2300
131Glow Helm2300Crono, Robo, Frog, Magus2500
132Lode Helm6500all2900
133Aeon Helm7800all3300
134Prism Helm8800all40Magic Defense +92D00
135Doom Helm9500Magus2900
136Dark Helm12000Crono, Robo, Frog, Magus35Shadow +500
137Gloom Helm13000Magus42Speed +12D00
138Safe Helm10000all381700
139Taban Helm2Lucca24Magic Defense +1014
140Sight Cap20000all302A00
141Memory Cap20000all302B00
142Time Hat30000all302C00
143Vigil Hat50000all362D00
144OzziePants2all453214
145Haste Helm12000all353300
146R{e7}bow Helm16000all35Lightning +500
147MermaidCap16000all35Water +500
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L12969-L13031; Classifies item id A by category boundaries $5A/$7B/$94/$BC: stores class 0-4 to $04CC and the id relative to its class base to $04CE. Item_ClassifyId: PHX ;C28881|DA | ; PHP ;C28882|08 | ; SEP #$30 ;C28883|E230 | ; LDX.B #$00 ;C28885|A200 | ; ; | | ; - CMP.L DATA8_C288A8,X ;C28887|DFA888C2|C288A8; BCC + ;C2888B|9005 |C28892; INX ;C2888D|E8 | ; CPX.B #$04 ;C2888E|E004 | ; BCC - ;C28890|90F5 |C28887; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FF.asm#L538-L542DATA8_FFCF0E = $FFCF0E DATA8_FFCF18 = $FFCF18 DATA8_FFCF1D = $FFCF1D DATA8_FFCF27 = $FFCF27 StatTab_DerivedOffsetTable = $FFCF2BChrono Trigger (USA) · 0x288a7-0x288ac — $C2:88A7-$C2:88ACChrono Trigger (USA) · 0x3fcf0e-0x3fcf2b — $FF:CF0E-$FF:CF2Bct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14416-L14426Item_CheckCharCanEquip: PHX ;C293A8|DA | ; PHP ;C293A9|08 | ; SEP #$30 ;C293AA|E230 | ; LDX.W $04C9 ;C293AC|AEC904 |7E04C9; LDA.W $7A00,X ;C293AF|BD007A |7E7A00; STA.W $0D71 ;C293B2|8D710D |7E0D71; LDX.W $9A90 ;C293B5|AE909A |7E9A90; AND.L CharPartyFlagTable,X ;C293B8|3FBBF9FF|FFF9BB; PLP ;C293BC|28 | ; PLX ;C293BD|FA | ; RTS ;C293BE|60 | ;Chrono Trigger (USA) · 0x3ff9bb-0x3ff9c2 — $FF:F9BB-$FF:F9C2Chrono Trigger (USA) · 0xc0b5e-0xc15c3 — $CC:0B5E-$CC:15C3ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14996-L15070- SEP #$20 ;C298B7|E220 | ; LDA.B $00 ;C298B9|A500 |000000; JSR.W Item_GetStatsPtr ;C298BB|20AD88 |C288AD; LDY.B $00 ;C298BE|A400 |000000; LDA.L CharInitData,X ;C298C0|BF0000CC|CC0000; AND.B #$1E ;C298C4|291E | ; STA.W $7700,Y ;C298C6|990077 |7E7700; LDA.L DATA8_CC0003,X ;C298C9|BF0300CC|CC0003; STA.W $7A00,Y ;C298CD|99007A |7E7A00; LDA.L DATA8_CC0004,X ;C298D0|BF0400CC|CC0004; STA.W $7B00,Y ;C298D4|99007B |7E7B00; REP #$20 ;C298D7|C220 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L1250-L1356StatBoost_CheckAndApply: TDC ;FDB141|7B | ; LDX.B $08 ;FDB142|A608 |000008; LDA.L DATA8_CC0004,X ;FDB144|BF0400CC|CC0004; BNE StatBoost_ApplyIndexed ;FDB148|D003 |FDB14D; JMP.W CODE_JP_FDB200 ;FDB14A|4C00B2 |FDB200; ; | | ; ; Loads boost amount $0A from CC0001,X then falls into StatBoost_BitmaskApply (bitmask CC0000,X selects which stats +$36..$3C get +$0A, capped 99/16/255). StatBoost_ApplyIndexed: REP #$20 ;FDB14D|C220 | ; ASL A ;FDB14F|0A | ; CLC ;FDB150|18 | ; ADC.B $0E ;FDB151|650E |00000E; TAX ;FDB153|AA | ; …Chrono Trigger (USA) · 0xc29d7-0xc2a04 — $CC:29D7-$CC:2A04ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L26365-L26410; gear record byte5 (CC0005+[$08]): bits7..4 select record field +0x3F/+0x40/+0x41/+0x42, low nibble = amount added (gear stat-boost effects) Battle_ApplyGearStatBonus: TDC ;C1CF69|7B | ; LDX.B $08 ;C1CF6A|A608 |000008; LDA.L DATA8_CC0005,X ;C1CF6C|BF0500CC|CC0005; BNE + ;C1CF70|D003 |C1CF75; JMP.W CODE_JP_C1CFBD ;C1CF72|4CBDCF |C1CFBD; ; | | ; + STA.B $04 ;C1CF75|8504 |000004; AND.B #$0F ;C1CF77|290F | ; STA.B $0A ;C1CF79|850A |00000A; LDA.B $04 ;C1CF7B|A504 |000004; BPL + ;C1CF7D|100B |C1CF8A; …Chrono Trigger (USA) · 0xc0986-0xc0a1b — $CC:0986-$CC:0A1BChrono Trigger (USA) · 0xc04e1-0xc052b — $CC:04E1-$CC:052Bct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14249-L14273; Dispatches on equip slot $0DAD (table C2926E): weapon rank $7C00 -> $0DB5; armor/helm add $7C00 defense into $0DB6; accessory: effect idx $7B00 -> CC29D7 bit mask adds boosts into $0DAE+ and HP +25%/50% for items $A0/$A1 -> $9B25. Menu_AccumEquipSlotStats: PHP ;C29261|08 | ; SEP #$30 ;C29262|E230 | ; LDA.W $0DAD ;C29264|ADAD0D |7E0DAD; ASL A ;C29267|0A | ; TAX ;C29268|AA | ; JSR.W (DATA8_C2926E,X) ;C29269|FC6E92 |C2926E; PLP ;C2926C|28 | ; RTS ;C2926D|60 | ; ; | | ; DATA8_C2926E = $C2926E incbin "data/bank_C2.bin":$926E..$9276 ;C2926E..C29276 …Checked by claude, 2026-11-08 — read how the menu finds an item's two records (its class by id: weapons below $5A, armor to $7A, helmets to $93, accessories to $BB, the rest consumables; each class's base and size in bank $FF), which bytes it copies (flags, price, who may equip, stat-bonus index, and the first byte of the second record), the battle code that adds a stat bonus and an element bonus, and the equip check against the character bits $80 (Crono) to $02 (Magus); then read every record from the ROMRevised after a check by a second AI model, 2026-11-08.

Names are the ROM's own text (the US release's abbreviations, such as SteelSaber). Who equips an item is its fourth-byte mask; "all" is $FE, the seven characters. A stat bonus is an index into a table of two-byte entries, a mask of stats and one amount for all of them, capped at 99, except Speed at 16 and Evade, which stops only at 255; an element bonus is one byte whose high four bits pick elements and whose low four add to them. Element names follow the disassembly's order (Lightning, Shadow, Water, Fire). Flags are the first byte, in hexadecimal. The effect column is the second record's second byte, in hexadecimal; the disassembly reads it as switched on by the third byte and as an index into a table of three-byte entries at $CC:2A05 that set bits in the combatant's record (the four Mails' absorb an element).

The 39 accessory slots ($95-$BB) each have a four-byte record (flags, price, and who may equip it) and a four-byte one; when the second byte of that has bit 6 set, its third byte is a stat bonus, as a weapon's is. chrono-trigger-tables/accessories

No.ItemEquipped byStat bonusEffect bytesPriceFlags
149BandanaallSpeed +100 40 01 00204
150RibbonallHit +200 40 02 00204
151PowerGloveallPower +200 40 03 00204
152DefenderallStamina +200 40 04 00204
153MagicScarfallMagic +200 40 05 00204
154Amuletall00 80 06 FF204
155Dash RingallSpeed +300 40 07 00204
156Hit RingallHit +1000 40 08 00204
157Power RingallPower +600 40 09 00204
158Magic RingallMagic +600 40 0A 00204
159Wall RingallMagic Defense +1000 40 0B 00204
160SilverErngall00 10 02 00204
161Gold Erngall00 10 05 00204
162SilverStudall20 00 00 00204
163Gold Studall20 00 00 00204
164SightScopeall00 00 00 00204
165Charm TopAyla00 00 00 00204
166Rage Bandall40 00 80 32204
167FrenzyBandall40 00 80 5A204
168Third Eyeall00 80 08 40204
169Walletall01 00 00 00204
170GreenDreamall00 80 05 80214
171Berserkerall00 80 09 84204
172PowerScarfallPower +400 40 0C 00204
173Speed BeltallSpeed +200 40 0D 00204
174Black RockMarle, Lucca, Magus00 00 00 00204
175Blue RockLucca, Robo, Magus00 00 00 00204
176SilverRockRobo, Frog, Ayla00 00 00 00204
177White RockMarle, Lucca, Ayla00 00 00 00204
178Gold RockFrog00 00 00 00204
179Hero MedalFrog00 00 00 00214
180MuscleRingallStamina +600 40 0F 00204
181Flea VestallMagic Defense +1200 40 11 00214
182Magic SealallMagic +5, Magic Defense +500 40 12 00204
183Power SealallPower +10, Stamina +1000 40 13 00204
184Relicall00 00 00 00204
185SeraphSongall00 80 09 20204
186Sun Shadesall00 80 09 02204
187PrismSpecsall00 80 09 08204
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L12969-L13031; Classifies item id A by category boundaries $5A/$7B/$94/$BC: stores class 0-4 to $04CC and the id relative to its class base to $04CE. Item_ClassifyId: PHX ;C28881|DA | ; PHP ;C28882|08 | ; SEP #$30 ;C28883|E230 | ; LDX.B #$00 ;C28885|A200 | ; ; | | ; - CMP.L DATA8_C288A8,X ;C28887|DFA888C2|C288A8; BCC + ;C2888B|9005 |C28892; INX ;C2888D|E8 | ; CPX.B #$04 ;C2888E|E004 | ; BCC - ;C28890|90F5 |C28887; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FF.asm#L538-L542DATA8_FFCF0E = $FFCF0E DATA8_FFCF18 = $FFCF18 DATA8_FFCF1D = $FFCF1D DATA8_FFCF27 = $FFCF27 StatTab_DerivedOffsetTable = $FFCF2BChrono Trigger (USA) · 0x288a7-0x288ac — $C2:88A7-$C2:88ACChrono Trigger (USA) · 0x3fcf0e-0x3fcf2b — $FF:CF0E-$FF:CF2Bct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14416-L14426Item_CheckCharCanEquip: PHX ;C293A8|DA | ; PHP ;C293A9|08 | ; SEP #$30 ;C293AA|E230 | ; LDX.W $04C9 ;C293AC|AEC904 |7E04C9; LDA.W $7A00,X ;C293AF|BD007A |7E7A00; STA.W $0D71 ;C293B2|8D710D |7E0D71; LDX.W $9A90 ;C293B5|AE909A |7E9A90; AND.L CharPartyFlagTable,X ;C293B8|3FBBF9FF|FFF9BB; PLP ;C293BC|28 | ; PLX ;C293BD|FA | ; RTS ;C293BE|60 | ;Chrono Trigger (USA) · 0x3ff9bb-0x3ff9c2 — $FF:F9BB-$FF:F9C2Chrono Trigger (USA) · 0xc0b5e-0xc15c3 — $CC:0B5E-$CC:15C3ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14996-L15070- SEP #$20 ;C298B7|E220 | ; LDA.B $00 ;C298B9|A500 |000000; JSR.W Item_GetStatsPtr ;C298BB|20AD88 |C288AD; LDY.B $00 ;C298BE|A400 |000000; LDA.L CharInitData,X ;C298C0|BF0000CC|CC0000; AND.B #$1E ;C298C4|291E | ; STA.W $7700,Y ;C298C6|990077 |7E7700; LDA.L DATA8_CC0003,X ;C298C9|BF0300CC|CC0003; STA.W $7A00,Y ;C298CD|99007A |7E7A00; LDA.L DATA8_CC0004,X ;C298D0|BF0400CC|CC0004; STA.W $7B00,Y ;C298D4|99007B |7E7B00; REP #$20 ;C298D7|C220 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FD.asm#L1250-L1356StatBoost_CheckAndApply: TDC ;FDB141|7B | ; LDX.B $08 ;FDB142|A608 |000008; LDA.L DATA8_CC0004,X ;FDB144|BF0400CC|CC0004; BNE StatBoost_ApplyIndexed ;FDB148|D003 |FDB14D; JMP.W CODE_JP_FDB200 ;FDB14A|4C00B2 |FDB200; ; | | ; ; Loads boost amount $0A from CC0001,X then falls into StatBoost_BitmaskApply (bitmask CC0000,X selects which stats +$36..$3C get +$0A, capped 99/16/255). StatBoost_ApplyIndexed: REP #$20 ;FDB14D|C220 | ; ASL A ;FDB14F|0A | ; CLC ;FDB150|18 | ; ADC.B $0E ;FDB151|650E |00000E; TAX ;FDB153|AA | ; …Chrono Trigger (USA) · 0xc29d7-0xc2a04 — $CC:29D7-$CC:2A04Chrono Trigger (USA) · 0xc0a1c-0xc0abb — $CC:0A1C-$CC:0ABBChrono Trigger (USA) · 0xc052c-0xc05cb — $CC:052C-$CC:05CBChecked by claude, 2026-11-08 — read how the menu finds an item's two records (its class by id: weapons below $5A, armor to $7A, helmets to $93, accessories to $BB, the rest consumables; each class's base and size in bank $FF), which bytes it copies (flags, price, who may equip, stat-bonus index, and the first byte of the second record), the battle code that adds a stat bonus and an element bonus, and the equip check against the character bits $80 (Crono) to $02 (Magus); then read every record from the ROMRevised after a check by a second AI model, 2026-11-08.

Names are the ROM's own text (the US release's abbreviations, such as SteelSaber). Who equips an item is its fourth-byte mask; "all" is $FE, the seven characters. A stat bonus is an index into a table of two-byte entries, a mask of stats and one amount for all of them, capped at 99, except Speed at 16 and Evade, which stops only at 255; an element bonus is one byte whose high four bits pick elements and whose low four add to them. Element names follow the disassembly's order (Lightning, Shadow, Water, Fire). Flags are the first byte, in hexadecimal. The effect bytes are the second record, in hexadecimal. The menu adds a quarter of maximum HP for item $A0 (SilverErng) and half for $A1 (Gold Erng), to at most 999. Prices of 2 belong to accessories the game never sells.

The 53 slots from $BD to $F1 hold the consumables and key items, each with a three-byte record (flags and price) and a four-byte one that the item-use code reads for its effect. chrono-trigger-tables/consumables

No.ItemPriceEffect bytesFlags
189Tonic1080 80 01 3282
190Mid Tonic10080 81 04 3282
191Full Tonic70080 82 0A 3282
192Ether80080 40 01 0A82
193Mid Ether200080 41 03 0A82
194Full Ether600080 42 06 0A82
195Elixir2000080 C2 0F 0082
196HyperEther1000080 42 0F 0082
197MegaElixir5000080 C2 0F 0082
198Heal1004 00 00 0080
199Revive20004 80 01 F280
200Shelter15008 C2 0F 0002
201Power Meal210 00 00 0002
202Lapis50080 81 04 3282
203Barrier500040 04 40 0080
204Shield500040 04 04 0080
205Power Tab1002 0B 01 0002
206Magic Tab1002 0E 01 0002
207Speed Tab1000 00 00 0002
208Petal000 00 00 000C
209Fang000 00 00 000C
210Horn000 00 00 000C
211Feather000 00 00 000C
212Seed000 00 00 001C
213Bike Key000 00 00 001C
214Pendant000 00 00 001C
215Gate Key000 00 00 001C
216PrismShard000 00 00 001C
217C{e8} Trigger000 00 00 001C
218Tools000 00 00 001C
219Jerky000 00 00 001C
220Dreamstone000 00 00 001C
221Race Log000 00 00 000C
222Moon Stone000 00 00 001C
223Sun Stone000 00 00 001C
224Ruby Knife000 00 00 001C
225Yakra Key000 00 00 001C
226Clone000 00 00 001C
227Toma{e7}s Pop000 00 00 001C
2282 Petals0FF FF FF FF0C
2292 Fangs0FF FF FF FF0C
2302 Horns0FF FF FF FF0C
2312 Feathers0FF FF FF FF0C
2320FF FF FF FF0C
2330FF FF FF FF0C
2340FF FF FF FF0C
2350FF FF FF FF0C
2360FF FF FF FF0C
2370FF FF FF FF0C
2380FF FF FF FF0C
2390FF FF FF FF0C
2400FF FF FF FF0C
2410FF FF FF FF0C
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L12969-L13031; Classifies item id A by category boundaries $5A/$7B/$94/$BC: stores class 0-4 to $04CC and the id relative to its class base to $04CE. Item_ClassifyId: PHX ;C28881|DA | ; PHP ;C28882|08 | ; SEP #$30 ;C28883|E230 | ; LDX.B #$00 ;C28885|A200 | ; ; | | ; - CMP.L DATA8_C288A8,X ;C28887|DFA888C2|C288A8; BCC + ;C2888B|9005 |C28892; INX ;C2888D|E8 | ; CPX.B #$04 ;C2888E|E004 | ; BCC - ;C28890|90F5 |C28887; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_FF.asm#L538-L542DATA8_FFCF0E = $FFCF0E DATA8_FFCF18 = $FFCF18 DATA8_FFCF1D = $FFCF1D DATA8_FFCF27 = $FFCF27 StatTab_DerivedOffsetTable = $FFCF2BChrono Trigger (USA) · 0x288a7-0x288ac — $C2:88A7-$C2:88ACChrono Trigger (USA) · 0x3fcf0e-0x3fcf2b — $FF:CF0E-$FF:CF2Bct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14416-L14426Item_CheckCharCanEquip: PHX ;C293A8|DA | ; PHP ;C293A9|08 | ; SEP #$30 ;C293AA|E230 | ; LDX.W $04C9 ;C293AC|AEC904 |7E04C9; LDA.W $7A00,X ;C293AF|BD007A |7E7A00; STA.W $0D71 ;C293B2|8D710D |7E0D71; LDX.W $9A90 ;C293B5|AE909A |7E9A90; AND.L CharPartyFlagTable,X ;C293B8|3FBBF9FF|FFF9BB; PLP ;C293BC|28 | ; PLX ;C293BD|FA | ; RTS ;C293BE|60 | ;Chrono Trigger (USA) · 0x3ff9bb-0x3ff9c2 — $FF:F9BB-$FF:F9C2Chrono Trigger (USA) · 0xc0b5e-0xc15c3 — $CC:0B5E-$CC:15C3Chrono Trigger (USA) · 0xc0abc-0xc0b5d — $CC:0ABC-$CC:0B5DChrono Trigger (USA) · 0xc05cc-0xc06a3 — $CC:05CC-$CC:06A3ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L26711-L26740TAX ;C1D1D4|AA | ; STX.B $16 ;C1D1D5|8616 |000016; STX.B $18 ;C1D1D7|8618 |000018; STX.B $1A ;C1D1D9|861A |00001A; TDC ;C1D1DB|7B | ; LDA.W $B18C ;C1D1DC|AD8CB1 |7EB18C; ASL A ;C1D1DF|0A | ; ASL A ;C1D1E0|0A | ; TAX ;C1D1E1|AA | ; LDA.L UNREACH_CC05CF,X ;C1D1E2|BFCF05CC|CC05CF; AND.B #$3F ;C1D1E6|293F | ; STA.B $16 ;C1D1E8|8516 |000016; …Checked by claude, 2026-11-08 — read how the menu finds the two records by item class and copies the flags and price, and the battle item code's reads of the second record; then read the records from the ROMChecked by a second AI model, 2026-11-08.

Names are the ROM's own text; slots $E8-$F1 have no name and $FF effect bytes. The effect bytes are listed in hexadecimal: the disassembly reads the first as the effect type (bit 7 restores HP or MP), the second as what it restores, and the last two as a multiplier and an amount (Tonic $01 and $32, Mid Tonic $04 and $32).

Chrono Trigger has 24 shop lists: a table of 24 pointers in bank $CC, the first list starting right after them, each to a list of item numbers ended by 0. Opening a shop copies its list, picked by the shop's number, into RAM and counts it to the first 0. The price the shop charges is the item record's price times a 16-bit factor kept at $7F:01CD, over 256 and rounded up, at least 1, and 65,000 when the product passes 24 bits. chrono-trigger-tables/shops

No.ItemsItems
0Iron Blade, Lode Sword2
1Iron Blade, Dart Gun, Karate Gi, BronzeHelm, Tonic, Heal, Revive, Shelter8
2SteelSaber, Iron Bow, BronzeMail, MaidenSuit, BronzeHelm, Tonic, Heal, Revive, Shelter9
3Auto Gun, Iron Suit, Iron Helm, Tonic, Heal, Revive, Shelter7
4Red Katana, Robin Bow, Plasma Gun, Hammer Arm, Titan Vest, Tonic, Mid Tonic, Heal, Shelter9
5Tonic, Mid Tonic, Heal, Revive, Shelter5
6Gold Suit, Beret, Tonic, Mid Tonic, Heal, Revive, Shelter7
7Tonic, Mid Tonic, Full Tonic, Heal, Revive, Shelter, Ether7
8Tonic, Mid Tonic, Heal3
9Star Sword, SonicArrow, Shock Wave, Kaiser Arm, Rune Blade, Hurricane, Aeon Suit, Aeon Helm, Tonic, Mid Tonic, Full Tonic, Heal, Revive, Shelter, Ether, Mid Ether16
10AlloyBlade, Big Hand, Pearl Edge, Lode Vest, Lode Helm, Tonic, Mid Tonic, Full Tonic, Heal, Revive, Shelter, Ether12
11Tonic, Mid Tonic, Full Tonic, Heal, Revive, Shelter, Ether7
12SteelSaber, Iron Bow, Dart Gun, Karate Gi, BronzeMail, BronzeHelm, Tonic, Heal, Revive, Shelter10
13Demon Edge, CometArrow, Megablast, MegatonArm, FlashBlade, Lumin Robe, Flash Mail, Glow Helm, Tonic, Mid Tonic, Full Tonic, Heal, Revive, Shelter, Ether15
14Tonic, Mid Tonic, Full Tonic, Ether, Mid Ether, Heal, Revive, Shelter8
15Tonic, Mid Tonic, Full Tonic, Ether, Mid Ether, Heal, Revive, Shelter8
16Karate Gi, BronzeHelm2
17Tonic, Heal, Revive, Shelter4
180
19Auto Gun, Iron Suit, Iron Helm, Tonic, Mid Tonic, Heal, Revive, Shelter8
20SteelSaber, Iron Bow, BronzeMail, MaidenSuit, BronzeHelm, Tonic, Heal, Revive, Shelter, Mid Tonic10
21Iron Blade, SteelSaber, Demon Edge, Lumin Robe, Flash Mail, Glow Helm, Tonic, Mid Tonic, Full Tonic, Heal, Revive, Shelter, Ether13
22Sight Cap, Memory Cap, Time Hat, Vigil Hat4
23Mid Tonic, Full Tonic, Mid Ether, Full Ether, HyperEther5
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L22873-L22881LDA.B $71 ;C2DAF5|A571 |000071; AND.W #$00FF ;C2DAF7|29FF00 | ; ASL A ;C2DAFA|0A | ; TAX ;C2DAFB|AA | ; LDA.L DATA8_CC2C6D,X ;C2DAFC|BF6D2CCC|CC2C6D; TAX ;C2DB00|AA | ; LDY.W #$1000 ;C2DB01|A00010 | ; LDA.W #$001F ;C2DB04|A91F00 | ; MVN $7E,$CC ;C2DB07|547ECC | ;Chrono Trigger (USA) · 0xc2c6d-0xc2d67 — $CC:2C6D-$CC:2D67ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L23081-L23096Menu_ShopCountBuyList: PHP ;C2DCBE|08 | ; SEP #$30 ;C2DCBF|E230 | ; LDY.B #$00 ;C2DCC1|A000 | ; ; | | ; - LDA.W !Unknown,Y ;C2DCC3|B90010 |7E1000; BEQ + ;C2DCC6|F003 |C2DCCB; INY ;C2DCC8|C8 | ; BRA - ;C2DCC9|80F8 |C2DCC3; ; | | ; + STY.W $104A ;C2DCCB|8C4A10 |7E104A; LDA.B #$00 ;C2DCCE|A900 | ; ; | | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L22933-L22971REP #$30 ;C2DBA0|C230 | ; LDA.L $7F01CD ;C2DBA2|AFCD017F|7F01CD; STA.B $04 ;C2DBA6|8504 |000004; LDA.W #$0002 ;C2DBA8|A90200 | ; STA.B $02 ;C2DBAB|8502 |000002; STZ.B $22 ;C2DBAD|6422 |000022; ; | | ; - LDX.B $22 ;C2DBAF|A622 |000022; LDA.W !Unknown,X ;C2DBB1|BD0010 |7E1000; AND.W #$00FF ;C2DBB4|29FF00 | ; BEQ + ;C2DBB7|F02D |C2DBE6; ASL A ;C2DBB9|0A | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L27231-L27264; Variant of Menu_MulAccumByteList: first runs it with multiplicand $00, then reruns the loop with multiplicand $01 accumulating into $3F,Y (Y=1) - a two-byte multiplicand spread over two passes. Menu_MulAccumByteList2: PHP ;C2FD58|08 | ; JSR.W Menu_MulAccumByteList ;C2FD59|2068FD |C2FD68; SEP #$30 ;C2FD5C|E230 | ; LDA.B $01 ;C2FD5E|A501 |000001; STA.L !WRMPYA ;C2FD60|8F024200|004202; LDY.B #$01 ;C2FD64|A001 | ; BRA + ;C2FD66|8011 |C2FD79; ; | | ; ; Hardware-multiply accumulate: for each byte $04,X (X=$51..$02-1) computes $00 * $04,X and adds the 16-bit product into $3E,Y (Y starts at $51); $3E/$40 cleared first. Menu_MulAccumByteList: PHP ;C2FD68|08 | ; REP #$30 ;C2FD69|C230 | ; …Checked by claude, 2026-11-08 — read the shop screen's setup, which indexes the pointer table by the shop number and copies 32 bytes of its list, then read the lists from the ROMRevised after a check by a second AI model, 2026-11-08.

Shop 18's list is empty. Item names are the ROM's own text.

The treasure table gives each of the 512 locations a range of four-byte chest records: the chest's tile (two bytes, which the map code masks to an index into the location's tile arrays) and its contents, an item number, or gold when the top bit is set (the low 15 bits times 2), or nothing when the next bit is set. A location whose first record has tile 0 uses another location's chests. 244 chests are listed: 228 items and 16 of gold. chrono-trigger-tables/treasure

LocationTile, first byteTile, second byteContents
0000474765534 G
000C491857342 G
000D1123Tonic
000E418100 G
00161843Full Ether
00173643MegaElixir
001A3037Lapis
001A2639HyperEther
001A2739Elixir
001E116BronzeMail
002A322Mid Ether
002F1211MagicScarf
00302319Ether
00311953Mid Ether
00311237Ether
00334544Shelter
00474732Shelter
00474454Ether
00474853Mid Tonic
00475153Ether
00478311500 G
00471432Lode Sword
0047146Shelter
00474953Mid Tonic
0048366Mid Tonic
006Dthe chests of location $12E
006E137Full Ether
007065Tonic
00701715PowerGlove
00791843BronzeMail
007A3643Ether
007B526Ether
007D326Mid Ether
0082348SteelSaber
00823542Tonic
00823742Revive
0083167Tonic
0083177Heal
00832619Iron Sword
0083432Shelter
008C1337Mid Tonic
008C1224Shelter
008D114MagicScarf
008E1015500 G
008E254Ether
008E1860MirageHand
008F215Shelter
008F32Gold Suit
008F2712Mid Ether
00903742SilverStud
00905058SilverErng
00905727300 G
0090597Mid Tonic
00903310Mid Ether
009157Revive
00911625300 G
0092118Mid Tonic
00921711Mid Ether
00922010Gold Helm
00922324Revive
0093479600 G
00956018Mid Ether
009E5056Mid Ether
009E5055Mid Ether
00A0511Full Ether
00A0198Lapis
00A02524Aeon Suit
00A0721Elixir
00A188Full Tonic
00A11875000 G
00A12816HyperEther
00A12626Aeon Helm
00A1827Memory Cap
00A1720Full Ether
00A11816MuscleRing
00A73023Dark Mail
00A7347DoomFinger
00A91234Shelter
00A9434Mid Ether
00AA426Mist Robe
00AB3328Barrier
00AE4648Mist Robe
00AE6048MagicScarf
00AF559Speed Belt
00B3234Full Ether
00B3744Gloom Cape
00B3844Gloom Helm
00B3944DoomSickle
00B4449Dash Ring
00B4469Sight Cap
00C31550Sight Cap
00C34329FrenzyBand
00C42825Lapis
00C4616ZodiacCape
00C42952Blue Rock
00C4751Full Ether
00C6129Mid Ether
00C8367100 G
00C8437Ether
00C92422MaidenSuit
00C92522Tonic
00C92622Ether
00CB528Speed Belt
00CB588Defender
00D1537Charm Top
00D1555Full Ether
00D1575Wallet
00D3721Gold Stud
00D3821Full Ether
00D42437Lode Sword
00D41314Lode Bow
00D42448Berserker
00D53354Ether
00D72626Mid Ether
00DC637Lumin Robe
00DC737Elixir
00DC837Hit Ring
00DC937Gold Erng
00DE5439Elixir
00DF4228Mid Tonic
00E03511Race Log
00E5346Shelter
00E62749Hammer Arm
00E6947Titan Vest
00E7358Mid Tonic
00E7622Robin Bow
00E72028Ether
00E7432Mid Ether
00E91940Shelter
00E91941Ether
00EA4140Bolt Sword
00EB4621Plasma Gun
00EC275600 G
00EC345Rage Band
00EC2734Bolt Sword
00F5143Magic Ring
00F5737Dark Helm
00F5253Memory Cap
00F65917Wall Ring
01002027Full Tonic
0100256Full Ether
0100257HyperEther
0100433Vigil Hat
0101555Full Tonic
010160750000 G
01026120Elixir
01026122Lapis
01036240400 G
01036241Mid Ether
01043336VedicBlade
01081520Giga Arm
01082112StarScythe
01082918BraveSword
010C1930Full Ether
010C2731MegaElixir
010C24115000 G
010C4544Lapis
011248Berserker
011A199Mid Tonic
011A2113Revive
011A323Mid Ether
011A143Heal
011A1146Mid Tonic
011A3446Mid Ether
011A3323Mid Tonic
011A4322Revive
011A5145Shelter
011D2755Mid Ether
011D3441Mid Ether
011D3754Full Tonic
011E3512Full Ether
011E1716Ruby Vest
011E323Full Tonic
011F2142Full Ether
011F853Rock Helm
0125105Mid Ether
01251347Mid Tonic
01262939Meso Mail
0129448CeraTopper
0129548Mid Ether
012Cthe chests of location $129
012E5339Full Tonic
012E4912Mid Ether
012Fthe chests of location $06E
01312541Tonic
01313641Meso Mail
01311450Revive
01311956CeraTopper
01392719MegaElixir
01392830000 G
013A5017Magic Seal
013B27MegaElixir
013B216Nova Armor
013B227Elixir
013B137Haste Helm
013B1316MegaElixir
013B1327Vigil Hat
013C1653Speed Tab
013D26ZodiacCape
013E434MegaElixir
013F5135Power Seal
013F6160Speed Tab
0142358Elixir
01421915Speed Tab
01421415MegaElixir
0145316Speed Tab
014516White Rock
0145146MegaElixir
015844Mid Ether
01885343Barrier
0188563Shield
0188559Lode Vest
018853Barrier
01881913Lapis
01892656Full Ether
01892738Barrier
0189343Lapis
0189731Shield
0189430Shelter
018A3352Lode Helm
018B5020Full Ether
018B3714Time Hat
01953732Aeon Suit
01953016Rune Blade
01961151Star Sword
01964310Aeon Helm
0197523Shock Wave
01971356SonicArrow
01973436Kaiser Arm
01972461Demon Hit
019D185Elixir
01B54140Mid Ether
01B85616Elixir
01B85414HyperEther
01B85413Lapis
01D41328Tonic
01D52730Mid Ether
01D6426Revive
01D7211Mid Ether
01D769Lapis
01D7259Barrier
01D72911Shelter
01E01328100 G
01E61328Elixir
01E71328HyperEther
01E81328HyperEther
01E91328Shelter
01EAthe chests of location $131
01EFthe chests of location $0F5
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C0.asm#L22979-L23036LDA.L DATA8_F5F000 ;C0A73C|AF00F0F5|F5F000; STA.B $06 ;C0A740|8506 |001D06; LDA.W $0100 ;C0A742|AD0001 |000100; AND.W #$01FF ;C0A745|29FF01 | ; _C0LA748: ASL A ;C0A748|0A | ; TAX ;C0A749|AA | ; LDA.L DATA8_F5F002,X ;C0A74A|BF02F0F5|F5F002; STA.B $56 ;C0A74E|8556 |001D56; LDA.L DATA8_F5F000,X ;C0A750|BF00F0F5|F5F000; CMP.B $56 ;C0A754|C556 |001D56; BEQ + ;C0A756|F061 |C0A7B9; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C0.asm#L3906-L3931LDX.B $DD ;C01E54|A6DD |0001DD; REP #$20 ;C01E56|C220 | ; LDA.L A5LocationMapBlackbirdOverhead_0002,X ;C01E58|BF0200F5|F50002; BMI ++ ;C01E5C|301D |C01E7B; BIT.W #$4000 ;C01E5E|890040 | ; BEQ +++ ;C01E61|F003 |C01E66; SEP #$20 ;C01E63| RTS ;C01E65| ; | | ; +++ AND.W #$01FF ;C01E66|29FF01 | ; STA.L !IndexItemTextControl ;C01E69|8F00027F|7F0200; TAY ;C01E6D|A8 | ; …Chrono Trigger (USA) · 0x35f000-0x35f401 — $F5:F000-$F5:F401Chrono Trigger (USA) · 0x35f402-0x35f7e5 — $F5:F402-$F5:F7E5Checked by claude, 2026-11-08 — read the routine that marks a location's chests on its map (the pointer pair per location, the redirect when a record's tile is 0) and the one that opens a chest (gold, empty, or item), then read every record from the ROMRevised after a check by a second AI model, 2026-11-08.

Locations are the game's location numbers, in hexadecimal. Gold is shown as the amount the chest message gets, twice the stored 15 bits.

A character needs 20 experience to go from level 1 to 2 and 51250 to go from 98 to 99, 1743570 in all; level 99 is the cap, where the table's entry is 0. Every character uses the same table. chrono-trigger-tables/experience

LevelTo next levelTotal at this level
1200
24020
37060
4110130
5160240
6220400
7300620
8400920
95201320
106501840
117902490
129403280
1311004220
1412705320
1514506590
1616408040
1718409680
18205011520
19227013570
20250015840
21274018340
22299021080
23325024070
24352027320
25380030840
26409034640
27439038730
28470043120
29502047820
30535052840
31569058190
32604063880
33640069920
34677076320
35715083090
36754090240
37794097780
388350105720
398770114070
409200122840
419640132040
4210090141680
4310550151770
4411020162320
4511500173340
4611990184840
4712490196830
4813000209320
4913520222320
5014050235840
5114590249890
5215140264480
5315700279620
5416270295320
5516850311590
5617440328440
5718040345880
5818650363920
5919270382570
6019900401840
6120540421740
6221190442280
6321850463470
6422520485320
6523200507840
6623890531040
6724590554930
6825300579520
6926020604820
7026750630840
7127490657590
7228240685080
7329000713320
7429770742320
7530550772090
7631340802640
7732140833980
7832950866120
7933770899070
8034600932840
8135440967440
82362901002880
83371501039170
84380201076320
85389001114340
86397901153240
87406901193030
88416001233720
89425201275320
90434501317840
91443901361290
92453401405680
93463001451020
94472701497320
95482501544590
96492401592840
97502401642080
98512501692320
9901743570
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31580-L31663Battle_LevelUpCheck: LDA.B #$FF ;C1F7B9|A9FF | ; One level-up step: if gained XP $B28C >= XP-to-next (record +0x2B), subtract it, INC level (+0x12, cap 99 = $63), set level-up result flag ($B2B0,X bit7), reload +0x2B from XpToNextLevelTable CC2632[newLevel*2]; else deduct gained XP from +0x2B STA.W $B28B ;C1F7BB|8D8BB2 |7EB28B; LDX.W $B285 ;C1F7BE|AE85B2 |7EB285; LDA.W $001D,X ;C1F7C1|BD1D00 |7E001D; AND.B #$80 ;C1F7C4|2980 | ; BEQ + ;C1F7C6|F003 |C1F7CB; JMP.W Battle_LevelUpCheck_CapCheck ;C1F7C8| ; | | ; + LDX.W $B285 ;C1F7CB|AE85B2 |7EB285; LDA.W $0012,X ;C1F7CE|BD1200 |7E0012; CMP.B #$63 ;C1F7D1|C963 | ; BCC + ;C1F7D3|9010 |C1F7E5; …Chrono Trigger (USA) · 0xc2632-0xc26f9 — $CC:2632-$CC:26F9Checked by claude, 2026-11-08 — read the level-up step (gained experience against the record's experience-to-next, the level raised to at most 99, the next requirement read from the table by the new level) and read the 100 entries from the ROMChecked by a second AI model, 2026-11-08.

The total column sums the table from level 1.

Cited by: Growth rate

Each character has eight two-byte entries, the tech points to learn each of their eight techniques in turn. After a battle the tech points won go toward the next technique; on learning it, the next entry becomes the target and what was won beyond the old one carries over. While the next technique's record has its magic bit set, the character gains no tech points toward it until that character's magic flag is set. chrono-trigger-tables/tech-points

Value: character Crono, Marle, Lucca, Robo, Frog, Ayla, Magus · Technique 1 5, 10, 10, 0, 10, 10, 0 · Technique 2 90, 50, 60, 0, 15, 60, 0 · Technique 3 0, 0, 0, 5, 0, 100, 0 · Technique 4 200, 150, 160, 150, 160, 200, 400 · Technique 5 500, 250, 250, 400, 250, 400, 400 · Technique 6 400, 400, 400, 600, 400, 600, 400 · Technique 7 800, 600, 600, 800, 600, 800, 900 · Technique 8 1000, 900, 1000, 1000, 1000, 1000, 900

Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31065-L31236Battle_AwardTp: LDX.W $B2DB ;C1F39A|AEDBB2 |7EB2DB; Award battle TP ($B2DB) to the char: while TP >= next-tech requirement (TpToNextTechTable CC26FA[char*16 + learned*2] vs running TP $5E5A,X), call Tech_Learn and carry the remainder; then add TP to BatWork_TechPoints (+0x16, 24-bit), cap 9,999,999 STX.B $30 ;C1F39D|8630 |000030; … - LDA.B #$FF ;C1F39F|A9FF | ; STA.W $B2DA ;C1F3A1|8DDAB2 |7EB2DA; JSR.W Tech_GetNextTechId ;C1F3A4|205FF4 |C1F45F; TDC ;C1F3A7|7B | ; LDA.W $B2DA ;C1F3A8|ADDAB2 |7EB2DA; CMP.B #$FF ;C1F3AB|C9FF | ; BEQ + ;C1F3AD|F06A |C1F419; LDA.W $B2D1 ;C1F3AF|ADD1B2 |7EB2D1; REP #$20 ;C1F3B2|C220 | ; …Chrono Trigger (USA) · 0xc26fa-0xc2769 — $CC:26FA-$CC:2769Checked by claude, 2026-11-08 — read the routine that awards tech points (the next technique's requirement from the table by character and techniques learned, the carry-over, the cap) and read the 56 entries from the ROMRevised after a check by a second AI model, 2026-11-08.

Entry 1 is also each character's starting requirement in their starting record. Robo's first two entries and Magus's first three are 0. The magic flag is one bit for each character, which the disassembly ties to Spekkio.

Each character's maximum HP grows by a fixed amount per level, set by up to four level brackets of two bytes each (the bracket's last level and the gain), and is capped at 999. A level-up adds the gain of the first bracket whose last level is at or above the new level. chrono-trigger-tables/hp-growth

CharacterNew levelHP per level
Crono2-1013
Crono11-2115
Crono22-4821
Crono49-9910
Marle2-1211
Marle13-2314
Marle24-9918
Lucca2-1213
Lucca13-2415
Lucca25-3216
Lucca33-9918
Robo2-710
Robo8-1615
Robo17-9920
Frog2-1012
Frog11-2114
Frog22-2919
Frog30-9920
Ayla2-1915
Ayla20-2717
Ayla28-4623
Ayla47-9910
Magus2-2710
Magus28-4028
Magus41-4522
Magus46-9918
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31665-L31704Battle_ApplyHpMpGrowth: TDC ;C1F871|7B | ; Per level gained: scan HpGrowthTable CC258A[charId*8] (4 pairs [maxLevel, gain]) for first maxLevel >= level, add gain to MaxHP (+0x05, cap 999); same with MpGrowthTable CC25C2 for MaxMP (+0x09, cap 99) TAX ;C1F872|AA | ; STX.B $10 ;C1F873|8610 |000010; ; | | ; - TDC ;C1F875|7B | ; LDX.W $B285 ;C1F876|AE85B2 |7EB285; LDA.W !TemporaryValues,X ;C1F879|BD0000 |7E0000; ASL A ;C1F87C|0A | ; ASL A ;C1F87D|0A | ; ASL A ;C1F87E|0A | ; CLC ;C1F87F|18 | ; ADC.B $10 ;C1F880|6510 |000010; …Chrono Trigger (USA) · 0xc258a-0xc25c1 — $CC:258A-$CC:25C1Checked by claude, 2026-11-08 — read the HP half of the growth routine (the bracket scan by character, the gain added to the record's maximum HP, the cap) and read the brackets from the ROMChecked by a second AI model, 2026-11-08.

Levels are the level reached. A bracket whose last level is $FF covers the rest; the listing stops at 99.

Cited by: Growth rate

Each character's maximum MP grows by a fixed amount per level, set by up to four level brackets of two bytes each (the bracket's last level and the gain), and is capped at 99. A level-up adds the gain of the first bracket whose last level is at or above the new level. chrono-trigger-tables/mp-growth

CharacterNew levelMP per level
Crono2-342
Crono35-991
Marle2-332
Marle34-991
Lucca2-362
Lucca37-991
Robo2-282
Robo29-991
Frog2-312
Frog32-991
Ayla2-342
Ayla35-991
Magus2-352
Magus36-991
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31665-L31746Battle_ApplyHpMpGrowth: TDC ;C1F871|7B | ; Per level gained: scan HpGrowthTable CC258A[charId*8] (4 pairs [maxLevel, gain]) for first maxLevel >= level, add gain to MaxHP (+0x05, cap 999); same with MpGrowthTable CC25C2 for MaxMP (+0x09, cap 99) TAX ;C1F872|AA | ; STX.B $10 ;C1F873|8610 |000010; ; | | ; - TDC ;C1F875|7B | ; LDX.W $B285 ;C1F876|AE85B2 |7EB285; LDA.W !TemporaryValues,X ;C1F879|BD0000 |7E0000; ASL A ;C1F87C|0A | ; ASL A ;C1F87D|0A | ; ASL A ;C1F87E|0A | ; CLC ;C1F87F|18 | ; ADC.B $10 ;C1F880|6510 |000010; …Chrono Trigger (USA) · 0xc25c2-0xc25f9 — $CC:25C2-$CC:25F9Checked by claude, 2026-11-08 — read the MP half of the growth routine (the bracket scan by character, the gain added to the record's maximum MP, the cap) and read the brackets from the ROMChecked by a second AI model, 2026-11-08.

Levels are the level reached. A bracket whose last level is $FF covers the rest; the listing stops at 99.

On each level-up the game recomputes six of a character's base stats as their level-1 value plus the growth rate times (level − 1) divided by 100, rounded down: Power, Stamina, Hit, Evade, Magic and Magic Defense, each capped at 99. Speed is not recomputed (its rate is 0 for everyone), and is capped at 50. chrono-trigger-tables/stat-growth

Value: character Crono, Marle, Lucca, Robo, Frog, Ayla, Magus · power 1.4, 0.3, 0.28, 1.6, 1.3, 1.5, 1.2 · stamina 1.65, 0.7, 0.8, 1.78, 1.6, 1.72, 1 · hit 0.3, 0.3, 0.42, 0.42, 0.32, 0.72, 0.78 · evade 0.38, 0.36, 0.32, 0.3, 0.42, 0.8, 0.66 · magic 0.42, 0.9, 1, 0.52, 0.52, 0.3, 1.13 · Magic Defense 1.6, 1.72, 1.68, 1.3, 1.63, 1.52, 1.75 · speed 0, 0, 0, 0, 0, 0, 0

Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31403-L31556Battle_LevelUp_RecomputeStats: JSR.W Battle_ApplyHpMpGrowth ;C1F630|2071F8 |C1F871; (mid-routine label) recomputes base stats from level-1 baseline + StatGrowthTable per stat; char ID from record +00 indexes table … ADC.W #StatGrowthTable-CharInitData ;C1F64A|69FA25 | ; index origin is CharInitData($CC0000); reach StatGrowthTable via the delta … LDA.L CharInitData,X ;C1F656|BF0000CC|CC0000; … LDA.W $0012,X ;C1F660|BD1200 |7E0012; DEC A ;C1F663|3A | ; … JSR.W Battle_Mul16 ;C1F667|200BC9 |C1C90B; … LDX.W #$0064 ;C1F66E|A26400 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31557-L31578TDC ;C1F791|7B | ; TAY ;C1F792|A8 | ; LDX.W $B285 ;C1F793|AE85B2 |7EB285; ; | | ; - LDA.W $000B,X ;C1F796|BD0B00 |7E000B; CMP.B #$63 ;C1F799|C963 | ; BCC + ;C1F79B|9005 |C1F7A2; LDA.B #$63 ;C1F79D| STA.W $000B,X ;C1F79F| ; | | ; + INX ;C1F7A2|E8 | ; INY ;C1F7A3|C8 | ; …Chrono Trigger (USA) · 0xc25fa-0xc2631 — $CC:25FA-$CC:2631Checked by claude, 2026-11-08 — read the recompute routine (each rate times level − 1, over 100, added to the level-1 value kept in the record at bytes $2F-$35, written to bytes $0B-$11; the caps) and read the 7 rates per character from the ROMRevised after a check by a second AI model, 2026-11-08.

Rates are per level, as the table's hundredths. The rates are stored in the order Power, Stamina, Speed, Hit, Evade, Magic, Magic Defense, which differs from the record's order (Power, Stamina, Speed, Magic, Hit, Evade, Magic Defense). An eighth row of zeros follows Magus's.

Cited by: Growth rate

A new game copies seven 80-byte character records from the start of bank $CC into RAM, one per playable character: level, HP, MP, the seven base stats, experience, the four pieces of equipment, the experience and tech points to the next level and technique, and the level-1 stats that growth starts from. chrono-trigger-tables/starting-stats

Value: character Crono, Marle, Lucca, Robo, Frog, Ayla, Magus · level 1, 1, 2, 10, 5, 18, 37 · HP 70, 65, 75, 235, 128, 335, 650 · MP 8, 12, 14, 24, 17, 38, 84 · power 5, 2, 2, 21, 9, 35, 51 · stamina 8, 6, 6, 26, 14, 38, 43 · speed 12, 8, 6, 6, 11, 13, 12 · magic 5, 8, 8, 7, 8, 8, 50 · hit 8, 8, 8, 9, 9, 22, 20 · evade 8, 8, 8, 8, 9, 25, 33 · Magic Defense 2, 8, 10, 12, 9, 26, 72 · Experience 0, 0, 20, 1840, 240, 11520, 97780 · weapon Wood Sword, Bronze Bow, Air Gun, Tin Arm, BronzeEdge, Fist, DarkScythe · armor Hide Tunic, Hide Tunic, Karate Gi, Titan Vest, BronzeMail, Ruby Vest, RavenArmor · helmet Hide Cap, Hide Cap, Hide Cap, Iron Helm, BronzeHelm, Rock Helm, Doom Helm · accessory Bandana, Ribbon, SightScope, Defender, PowerGlove, PowerScarf, Amulet · Experience to next 20, 20, 40, 650, 160, 2050, 9200 · Tech points to next 5, 10, 10, 5, 15, 10, 400

Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14647-L14659NewGame_SeedCharStatsAndTechs: PHP ;C2956E|08 | ; MVN $CC0000 -> $7E2600, 0x280 bytes: at new game, seeds all 7 CharInitData stat records ($CC0000, 0x50 each) AND the starting-tech tables that follow them (learned-count $CC0230, learned-mask $CC0237) into live WRAM ($7E2600 stats / $7E2830 count / $7E2837 mask). Called from C28048. This is why editing CharInitData changes stats only on a NEW game. REP #$30 ;C2956F|C230 | ; JSR.W NewGame_InitFlagsAndSettings ;C29571|20BB95 |C295BB; STZ.W !InventoryItem ;C29574|9C0024 |7E2400; LDX.W #$2400 ;C29577|A20024 | ; LDY.W #$2402 ;C2957A|A00224 | ; LDA.W #$01FD ;C2957D|A9FD01 | ; MVN $7E,$7E ;C29580|547E7E | ; LDX.W #$0000 ;C29583|A20000 | ; LDY.W #$2600 ;C29586|A00026 | ; LDA.W #$027F ;C29589|A97F02 | ; MVN $7E,$CC ;C2958C|547ECC | ; …Chrono Trigger (USA) · 0xc0000-0xc022f — $CC:0000-$CC:022Fct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L12938-L12951Menu_LoadCharRecordToBuf: STA.L !WRMPYA ;C28839|8F024200|004202; char id*0x50 + $7E2600 -> copy 0x4F-byte stat record to display buffer $7E9A90 ORA.B #$00 ;C2883D|0900 | ; BMI + ;C2883F|303F |C28880; LDA.B #$50 ;C28841|A950 | ; STA.L !WRMPYB ;C28843|8F034200|004203; NOP ;C28847|EA | ; REP #$31 ;C28848|C231 | ; LDA.W #$2600 ;C2884A|A90026 | ; ADC.L !RDMPYL ;C2884D|6F164200|004216; STA.B $6F ;C28851|856F |00006F; TAX ;C28853|AA | ; LDY.W #$9A90 ;C28854|A0909A | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · ramvars.asm#L103-L111!CronoPortrait = $7E2600 ; Crono Portrait !CronoHP = $7E2603 ; Crono current HP !CronoMaxHP = $7E2605 ; Crono max HP !CronoMP = $7E2607 ; Crono current MP !CronoMaxMP = $7E2609 ; Crono max MP !CronoPower = $7E260B ; Crono power !CronoStamina = $7E260C ; Crono stamina !CronoMagic = $7E260E ; Crono magic !CronoWeaponEquipped = $7E2629 ; Crono Weapon Equippedct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31403-L31556Battle_LevelUp_RecomputeStats: JSR.W Battle_ApplyHpMpGrowth ;C1F630|2071F8 |C1F871; (mid-routine label) recomputes base stats from level-1 baseline + StatGrowthTable per stat; char ID from record +00 indexes table … ADC.W #StatGrowthTable-CharInitData ;C1F64A|69FA25 | ; index origin is CharInitData($CC0000); reach StatGrowthTable via the delta … LDA.L CharInitData,X ;C1F656|BF0000CC|CC0000; … LDA.W $0012,X ;C1F660|BD1200 |7E0012; DEC A ;C1F663|3A | ; … JSR.W Battle_Mul16 ;C1F667|200BC9 |C1C90B; … LDX.W #$0064 ;C1F66E|A26400 | ; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31580-L31663Battle_LevelUpCheck: LDA.B #$FF ;C1F7B9|A9FF | ; One level-up step: if gained XP $B28C >= XP-to-next (record +0x2B), subtract it, INC level (+0x12, cap 99 = $63), set level-up result flag ($B2B0,X bit7), reload +0x2B from XpToNextLevelTable CC2632[newLevel*2]; else deduct gained XP from +0x2B STA.W $B28B ;C1F7BB|8D8BB2 |7EB28B; LDX.W $B285 ;C1F7BE|AE85B2 |7EB285; LDA.W $001D,X ;C1F7C1|BD1D00 |7E001D; AND.B #$80 ;C1F7C4|2980 | ; BEQ + ;C1F7C6|F003 |C1F7CB; JMP.W Battle_LevelUpCheck_CapCheck ;C1F7C8| ; | | ; + LDX.W $B285 ;C1F7CB|AE85B2 |7EB285; LDA.W $0012,X ;C1F7CE|BD1200 |7E0012; CMP.B #$63 ;C1F7D1|C963 | ; BCC + ;C1F7D3|9010 |C1F7E5; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31748-L31755Battle_AddXpToChar: REP #$20 ;C1F908|C220 | ; Add gained XP $B28C to char record total XP (+0x13, 24-bit), cap 9,999,999 LDA.W $0013,X ;C1F90A|BD1300 |7E0013; CLC ;C1F90D|18 | ; ADC.W !TotalAmountExpWon ;C1F90E|6D8CB2 |7EB28C; STA.W $0013,X ;C1F911|9D1300 |7E0013; BCC + ;C1F914|9005 |C1F91B; SEP #$20 ;C1F916| INC.W $0015,X ;C1F918|ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C2.asm#L14249-L14292; Dispatches on equip slot $0DAD (table C2926E): weapon rank $7C00 -> $0DB5; armor/helm add $7C00 defense into $0DB6; accessory: effect idx $7B00 -> CC29D7 bit mask adds boosts into $0DAE+ and HP +25%/50% for items $A0/$A1 -> $9B25. Menu_AccumEquipSlotStats: PHP ;C29261|08 | ; SEP #$30 ;C29262|E230 | ; LDA.W $0DAD ;C29264|ADAD0D |7E0DAD; ASL A ;C29267|0A | ; TAX ;C29268|AA | ; JSR.W (DATA8_C2926E,X) ;C29269|FC6E92 |C2926E; PLP ;C2926C|28 | ; RTS ;C2926D|60 | ; ; | | ; DATA8_C2926E = $C2926E incbin "data/bank_C2.bin":$926E..$9276 ;C2926E..C29276 …Checked by claude, 2026-11-08 — read the new-game copy of the records to $7E:2600, and the routines that read each field (level-up, growth, tech points), then read the seven records from the ROMRevised after a check by a second AI model, 2026-11-08.

HP and MP are both current and maximum. Speed includes no equipment: Crono's Bandana adds 1 to it in battle. Frog starts at level 5 and Robo at 10, Ayla at 18 and Magus at 37; the levels are the stored ones, not where the story has them join. The menu copies a record (character number times 80, from $7E:2600) to a buffer and reads the equipment there: the weapon at byte $29, two defense pieces at $27 and $28 (the starting records hold a helmet's number at $27 and an armor's at $28), and the accessory at $2A. Growth reads the level at $12 and the level-1 stats at $2F-$35 and writes the stats at $0B-$11; the level-up reads the experience to next at $2B, and the experience is three bytes at $13. HP and MP are at $03 and $07 by the disassembly's labels; tech points to next are at $2D, where the battle's copy of the record keeps them.

Each of the 116 named techniques (records 1-116) has an 11-byte record: a first byte whose low seven bits pick a targeting pattern and whose top bit gates the technique on the character's magic flag, and the effect component each of up to three participants brings. A participant's MP cost is its component's entry in a one-byte MP table, and a component marked with the high bit pays its MP but runs no effect. chrono-trigger-tables/techniques

No.TechniqueParticipantsMPComponentsTarget patternTarget bytesMagic gateRecord
1CycloneCrono210000 FF FF00 00 40 04 00 01 80 80 00 00 00
2SlashCrono220000 FF FF00 00 40 82 00 02 80 80 07 00 00
3LightningCrono230000 FF FFyes80 00 40 82 00 03 80 80 07 00 00
4SpincutCrono440000 FF FF00 00 40 04 00 04 80 80 00 00 00
5Lightning2Crono850000 FF FFyes80 00 40 82 00 05 80 80 07 00 00
6LifeCrono1060000 FF FFyes80 00 40 00 00 06 80 80 00 00 00
7ConfuseCrono1270000 FF FF00 00 40 04 00 07 80 80 14 00 00
8LuminaireCrono2080000 FF FFyes80 00 40 82 00 08 80 80 07 00 00
9AuraMarle190101 FF FF01 00 40 00 00 09 80 80 00 00 00
10ProvokeMarle1100101 FF FF01 00 40 02 00 0A 80 80 00 00 00
11IceMarle2110101 FF FFyes81 00 40 22 00 0B 80 80 07 00 00
12CureMarle2120101 FF FFyes81 00 40 00 00 0C 80 80 00 00 00
13HasteMarle6130101 FF FFyes81 00 40 00 00 0D 80 80 00 00 00
14Ice 2Marle8140101 FF FFyes81 00 40 22 00 0E 80 80 07 00 00
15Cure 2Marle5150101 FF FFyes81 00 40 00 00 0F 80 80 00 00 00
16Life 2Marle15160101 FF FFyes81 00 40 00 00 10 80 80 00 00 00
17Flame TossLucca1170202 FF FF02 00 40 12 00 11 80 80 07 00 00
18Hypno WaveLucca1180202 FF FF02 00 40 02 00 12 80 80 00 00 00
19FireLucca2190202 FF FFyes82 00 40 12 00 13 80 80 07 00 00
20NapalmLucca3200202 FF FFyes82 00 40 12 00 14 80 80 07 00 00
21ProtectLucca6210202 FF FFyes82 00 40 00 00 15 80 80 00 00 00
22Fire 2Lucca8220202 FF FFyes82 00 40 12 00 16 80 80 07 00 00
23Mega BombLucca15230202 FF FFyes82 00 40 12 00 17 80 80 07 00 00
24FlareLucca20240202 FF FFyes82 00 40 12 00 18 80 80 07 00 00
25RocketPunchRobo1250303 FF FF03 00 40 04 00 19 80 80 00 00 00
26Cure BeamRobo2260303 FF FF03 00 40 00 00 1A 80 80 00 00 00
27Laser SpinRobo3270303 FF FF03 00 40 42 00 1B 80 80 07 00 00
28Robo TackleRobo4280303 FF FF03 00 40 04 00 1C 80 80 00 00 00
29Heal BeamRobo3290303 FF FF03 00 40 00 00 1D 80 80 00 00 00
30Uzzi PunchRobo12300303 FF FF03 00 40 04 00 1E 80 80 00 00 00
31Area BombRobo14310303 FF FF03 00 40 12 00 1F 80 80 07 00 00
32ShockRobo17320303 FF FF03 00 40 82 00 20 80 80 07 00 00
33SlurpFrog1330404 FF FF04 00 40 00 00 21 80 80 00 00 00
34Slurp CutFrog2340404 FF FF04 00 40 04 00 22 80 80 00 00 00
35WaterFrog2350404 FF FFyes84 00 40 22 00 23 80 80 07 00 00
36HealFrog2360404 FF FFyes84 00 40 00 00 24 80 80 00 00 00
37Leap SlashFrog4370404 FF FF04 00 40 04 00 25 80 80 00 00 00
38Water 2Frog8380404 FF FFyes84 00 40 22 00 26 80 80 07 00 00
39Cure 2Frog5390404 FF FFyes84 00 40 00 00 27 80 80 00 00 00
40Frog SquashFrog15400404 FF FF04 00 40 04 00 28 80 80 00 00 00
41KissAyla1410505 FF FF05 00 40 00 00 29 80 80 00 00 00
42Rollo KickAyla2420505 FF FF05 00 40 04 00 2A 80 80 00 00 00
43Cat AttackAyla3430505 FF FF05 00 40 04 00 2B 80 80 00 00 00
44Rock ThrowAyla4440505 FF FF05 00 40 04 00 2C 80 80 00 00 00
45CharmAyla4450505 FF FF05 00 40 02 00 2D 80 80 0F 00 00
46Tail SpinAyla10460505 FF FF05 00 40 02 00 2E 80 80 00 00 00
47Dino TailAyla15470505 FF FF05 00 40 04 00 2F 80 80 00 00 00
48Triple KickAyla20480505 FF FF05 00 40 04 00 30 80 80 13 00 00
49Lightning2Magus8490606 FF FF06 00 40 82 00 31 80 80 07 00 00
50Ice 2Magus8500606 FF FF06 00 40 22 00 32 80 80 07 00 00
51Fire 2Magus8510606 FF FF06 00 40 12 00 33 80 80 07 00 00
52Dark BombMagus8520606 FF FF06 00 40 42 00 34 80 80 07 00 00
53Magic WallMagus8530606 FF FF06 00 40 00 00 35 80 80 00 00 00
54Dark MistMagus10540606 FF FF06 00 40 42 00 36 80 80 07 00 00
55Black HoleMagus15550606 FF FF06 00 40 02 00 37 80 80 24 00 00
56DarkMatterMagus20560606 FF FF06 00 40 42 00 38 80 80 07 00 00
57Aura WhirlMarle, Crono1 + 29, (1)2501 00 FF25 00 40 00 00 09 81 80 00 00 00
58Ice SwordCrono, Marle4 + 24, 110700 01 FF07 61 40 22 00 04 0B 80 08 08 00
59Ice Sword2?, Marle12 + 860, 140700 01 FF07 61 40 22 00 3C 0E 80 07 07 00
60Fire WhirlCrono, Lucca2 + 11, 170800 02 FF08 61 40 12 00 01 11 80 07 07 00
61Fire SwordCrono, Lucca4 + 24, 190800 02 FF08 61 40 12 00 04 13 80 08 08 00
62FireSword2?, Lucca12 + 860, 220800 02 FF08 61 40 12 00 3C 16 80 07 07 00
63Rocket RollCrono, Robo2 + 3(1), 270900 03 FF09 61 40 42 00 81 1B 80 00 09 00
64Max CycloneRobo, Crono3 + 4(27), 43103 00 FF31 41 40 04 00 9B 04 80 00 06 00
65Super VoltCrono, Robo8 + 175, 320900 03 FF09 71 40 82 00 05 20 80 08 08 00
66X StrikeCrono, ?2 + 21, 640A00 04 FF0A 41 40 04 00 01 40 80 03 03 00
67SwordStreamFrog, Crono2 + 435, 42704 00 FF27 61 40 22 00 23 04 80 08 08 00
68SpireFrog, Crono4 + 837, 52704 00 FF27 61 40 82 00 25 05 80 07 0B 00
69Drill KickAyla, Crono2 + 242, (1)2805 00 FF28 41 40 04 00 2A 81 80 05 00 00
70Volt BiteAyla, Crono3 + 243, (3)2805 00 FF28 40 40 82 00 2B 83 80 0B 00 00
71Falcon HitAyla, Crono4 + 4(44), 42805 00 FF28 41 40 04 00 AC 04 80 00 06 00
72AntipodeMarle, Lucca2 + 211, 190C01 02 FF0C 61 40 42 00 0B 13 80 07 07 00
73Antipode 2Marle, Lucca8 + 814, 220C01 02 FF0C 61 40 42 00 0E 16 80 09 09 00
74Antipode 3Marle, Lucca8 + 2014, 240C01 02 FF0C 61 40 42 00 0E 18 80 08 08 00
75Aura BeamMarle, Robo1 + 29, (26)0D01 03 FF0D 00 40 00 00 09 9A 80 00 00 00
76Ice TackleRobo, Marle4 + 228, 112903 01 FF29 61 40 22 00 1C 0B 80 09 09 00
77Cure TouchMarle, Robo5 + 315, (29)0D01 03 FF0D 00 40 00 00 0F 9D 80 00 00 00
78Ice WaterFrog, Marle2 + 235, 112A04 01 FF2A 61 40 22 00 23 0B 80 07 07 00
79GlacierFrog, Marle8 + 838, 142A04 01 FF2A 61 40 22 00 26 0E 80 09 09 00
80Double Cure?, Frog5 + 565, (39)0E01 04 FF0E 60 40 00 00 41 A7 80 00 00 00
81Twin Charm?, Marle4 + 167, (10)2B05 01 FF2B 40 40 02 00 43 8A 80 10 00 00
82Ice TossAyla, Marle4 + 244, 112B05 01 FF2B 61 40 22 00 2C 0B 80 07 07 00
83Cube TossAyla, Marle4 + 844, 142B05 01 FF2B 61 40 22 00 2C 0E 80 08 08 00
84Fire PunchRobo, Lucca1 + 225, 192C03 02 FF2C 61 40 12 00 19 13 80 07 07 00
85Fire TackleRobo, Lucca4 + 828, 222C03 02 FF2C 61 40 12 00 1C 16 80 09 09 00
86DoublevBombLucca, Robo15 + 1423, 311002 03 FF10 61 40 12 00 17 1F 80 09 09 00
87Flame KickAyla, Lucca2 + 242, 192D05 02 FF2D 61 40 12 00 2A 13 80 08 08 00
88Fire WhirlAyla, Lucca10 + 846, 222D05 02 FF2D 61 40 12 00 2E 16 80 09 09 00
89Blaze Kick?, Lucca20 + 861, 222D05 02 FF2D 61 40 12 00 3D 16 80 08 08 00
90Blade TossRobo, ?3 + 2(27), 641203 04 FF12 41 40 04 00 9B 40 80 00 06 00
91Bubble SnapRobo, Frog4 + 228, (35)1203 04 FF12 41 40 04 00 1C A3 80 06 00 00
92Cure WaveFrog, Robo5 + 339, (29)2E04 03 FF2E 00 40 00 00 27 9D 80 00 00 00
93Boogie?, Robo4 + 463, (28)2F05 03 FF2F 00 40 02 00 3F 9C 80 00 00 00
94Spin KickAyla, Robo2 + 342, (27)2F05 03 FF2F 41 40 04 00 2A 9B 80 06 00 00
95Beast TossAyla, Robo4 + 1244, 302F05 03 FF2F C1 40 04 00 2C 1E 80 03 03 00
96Slurp KissFrog, ?1 + 1(33), 681404 05 FF14 41 40 00 00 A1 44 80 00 00 00
97Bubble HitAyla, Frog2 + 242, (35)3005 04 FF30 41 40 04 00 2A A3 80 06 00 00
98Drop KickFrog, ?4 + 2037, 611404 05 FF14 C1 40 04 00 25 3D 80 04 00 00
99Red PinFrog, Lucca4 + 237, 191504 02 FF15 61 40 12 00 25 13 80 08 08 00
100Line BombFrog, Lucca4 + 15(37), 231504 02 FF15 61 40 12 00 A5 17 80 00 07 00
101Frog FlareFrog, Lucca15 + 2040, 241504 02 FF15 61 40 12 00 28 18 80 08 08 00
102Delta ForceCrono, Marle, Lucca8 + 8 + 85, 14, 221600 01 0216 62 40 42 00 05 0E 16 08 08 08
103Lifeline?, Marle, Robo15 + 15 + 362, (16), (27)1701 00 0317 00 40 00 00 3E 90 9B 00 00 00
104Arc ImpulseCrono, Frog, Marle4 + 4 + 84, 37, 141800 04 0118 62 40 22 00 04 25 0E 08 08 08
105Final Kick?, Crono, Marle20 + 8 + 861, 5, 141905 00 0119 62 40 42 00 3D 05 0E 08 08 08
106Fire ZoneRobo, Crono, Lucca4 + 4 + 8(28), 4, 221A03 00 021A 62 40 12 00 9C 04 16 00 0B 08
107Delta StormCrono, Lucca, Frog8 + 8 + 85, 22, 381B00 02 041B 62 40 42 00 05 16 26 08 08 08
108GatlingKick?, Crono, Lucca20 + 8 + 861, 5, 221C05 00 021C 62 40 42 00 3D 05 16 08 08 08
109Triple RaidCrono, Robo, ?2 + 4 + 21, 28, 641D00 03 041D C2 40 04 00 01 1C 40 03 03 03
110TwisterCrono, Robo, Ayla2 + 3 + 101, 27, 461E00 03 051E 63 40 42 00 01 1B 2E 09 09 09
1113D Attack?, Crono, ?20 + 2 + 261, 1, 641F05 00 041F C2 40 04 00 3D 01 40 03 03 03
112DarkEternalMarle, Lucca, Magus8 + 8 + 2014, 22, 562001 02 0620 62 40 42 00 0E 16 38 08 08 08
113Omega FlareLucca, Robo, Magus20 + 3 + 824, 27, 522102 03 0621 62 40 42 00 18 1B 34 08 08 08
114Spin StrikeFrog, Robo, Ayla4 + 4 + 1537, (28), (47)2204 03 0522 C2 40 04 00 25 9C AF 34 00 00
115PoyozoDanceMarle, Lucca, Ayla1 + 1 + 10(10), (18), 462301 02 0523 62 40 02 00 8A 92 2E 00 00 2E
116Grand Dream?, Marle, Robo15 + 15 + 366, (16), (29)2404 01 0324 42 40 04 00 42 90 9D 00 00 00
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L25793-L25856Tech_GetMpCostSlot0: TAX ;C1CB48|AA | ; Loc_C1CB49: STX.B $28 ;C1CB49|8628 |000028; LDA.B #$0B ;C1CB4B|A90B | ; TAX ;C1CB4D|AA | ; STX.B $2A ;C1CB4E|862A |00002A; JSR.W Battle_Mul16 ;C1CB50|200BC9 |C1C90B; LDX.B $2C ;C1CB53|A62C |00002C; LDA.L DATA8_CC1BF0,X ;C1CB55|BFF01BCC|CC1BF0; AND.B #$7F ;C1CB59|297F | ; TAX ;C1CB5B|AA | ; LDA.L TechMPCost,X ;C1CB5C|BF3B25CC|CC253B; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L27187-L27219Battle_TechParticipantLoop: TDC ;C1D5B9|7B | ; LDA.W $B2ED ;C1D5BA|ADEDB2 |7EB2ED; STA.W $AD8D ;C1D5BD|8D8DAD |7EAD8D; LDA.W $B2C7 ;C1D5C0|ADC7B2 |7EB2C7; REP #$20 ;C1D5C3|C220 | ; CLC ;C1D5C5|18 | ; ADC.W !TechIndexUseX ;C1D5C6|6DC3B2 |7EB2C3; TAX ;C1D5C9|AA | ; TDC ;C1D5CA|7B | ; SEP #$20 ;C1D5CB|E220 | ; LDA.L DATA8_CC1BF0,X ;C1D5CD|BFF01BCC|CC1BF0; STA.W $B2C8 ;C1D5D1|8DC8B2 |7EB2C8; …Chrono Trigger (USA) · 0xc1beb-0xc20f1 — $CC:1BEB-$CC:20F1Chrono Trigger (USA) · 0xc253b-0xc2582 — $CC:253B-$CC:2582Chrono Trigger (USA) · 0xc249f-0xc253a — $CC:249F-$CC:253AChrono Trigger (USA) · 0xc15c4-0xc1aca — $CC:15C4-$CC:1ACAct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31167-L31200Tech_GetNextTechId: TDC ;C1F45F|7B | ; For char $B2D1: base $3B = CC276A[char]; index = techs-learned count $7E2830[char] + $3B, x0x0B -> CharTechIdTables CC1BEB -> global tech-id of the char's NEXT tech to learn (id bit 0x80 = magic tech). LDA.W $B2D1 ;C1F460|ADD1B2 |7EB2D1; ASL A ;C1F463|0A | ; TAX ;C1F464|AA | ; LDA.L CharTechBaseTable,X ;C1F465|BF6A27CC|CC276A; STA.B $3B ;C1F469|853B |00003B; LDA.W $B2D1 ;C1F46B|ADD1B2 |7EB2D1; TAX ;C1F46E|AA | ; LDA.W !TechLearnNext1,X ;C1F46F|BD3028 |7E2830; CLC ;C1F472|18 | ; ADC.B $3B ;C1F473|653B |00003B; TAX ;C1F475|AA | ; …Checked by claude, 2026-11-08 — read the MP lookups for the three participant slots (record bytes 5-7, high bit masked, into the MP table), the targeting lookup (byte 0's low 7 bits times 3), and the loop that runs each participant's component unless its high bit is set; then read the records from the ROMRevised after a check by a second AI model, 2026-11-08.

Names are the ROM's own text. Components 1-56 are the seven characters' single techniques in order (eight each, Crono's first); a component in parentheses pays its MP without running an effect. Participants are named from their components. The record and target bytes are in hexadecimal; the record's other bytes are read by code this claim doesn't cover. The name table holds names for records 0-116 and ends at $CC:1ACB; seven more records follow technique 116 in the record table with no name text.

A table of 25 five-byte groups, ended by $FF, sets when double and triple techniques are learned: each group names its participants by character bits, its first technique and how many follow (three for each pair, one for each trio with Crono), and a list giving, per technique, how many single techniques each participant must know. After a battle the game checks each pair and the trio of the party against it. chrono-trigger-tables/combo-requirements

TechniqueParticipantsSingle techniques known
Aura WhirlCrono, MarleCrono 1, Marle 1
Ice SwordCrono, MarleCrono 4, Marle 3
Ice Sword2Crono, MarleCrono 7, Marle 6
Fire WhirlCrono, LuccaCrono 1, Lucca 1
Fire SwordCrono, LuccaCrono 4, Lucca 3
FireSword2Crono, LuccaCrono 7, Lucca 6
Rocket RollCrono, RoboCrono 1, Robo 3
Max CycloneCrono, RoboCrono 4, Robo 3
Super VoltCrono, RoboCrono 5, Robo 8
X StrikeCrono, FrogCrono 1, Frog 2
SwordStreamCrono, FrogCrono 4, Frog 3
SpireCrono, FrogCrono 5, Frog 5
Drill KickCrono, AylaCrono 1, Ayla 2
Volt BiteCrono, AylaCrono 3, Ayla 3
Falcon HitCrono, AylaCrono 4, Ayla 4
AntipodeMarle, LuccaMarle 3, Lucca 3
Antipode 2Marle, LuccaMarle 6, Lucca 6
Antipode 3Marle, LuccaMarle 6, Lucca 8
Aura BeamMarle, RoboMarle 1, Robo 2
Ice TackleMarle, RoboMarle 3, Robo 4
Cure TouchMarle, RoboMarle 7, Robo 5
Ice WaterMarle, FrogMarle 3, Frog 3
GlacierMarle, FrogMarle 6, Frog 6
Double CureMarle, FrogMarle 7, Frog 7
Twin CharmMarle, AylaMarle 2, Ayla 5
Ice TossMarle, AylaMarle 3, Ayla 4
Cube TossMarle, AylaMarle 6, Ayla 4
Fire PunchLucca, RoboLucca 3, Robo 1
Fire TackleLucca, RoboLucca 6, Robo 4
DoublevBombLucca, RoboLucca 7, Robo 7
Flame KickLucca, AylaLucca 3, Ayla 2
Fire WhirlLucca, AylaLucca 6, Ayla 6
Blaze KickLucca, AylaLucca 6, Ayla 8
Blade TossRobo, FrogRobo 3, Frog 2
Bubble SnapRobo, FrogRobo 4, Frog 3
Cure WaveRobo, FrogRobo 5, Frog 7
BoogieRobo, AylaRobo 4, Ayla 5
Spin KickRobo, AylaRobo 4, Ayla 2
Beast TossRobo, AylaRobo 6, Ayla 4
Slurp KissFrog, AylaFrog 1, Ayla 1
Bubble HitFrog, AylaFrog 3, Ayla 2
Drop KickFrog, AylaFrog 5, Ayla 8
Red PinLucca, FrogLucca 3, Frog 5
Line BombLucca, FrogLucca 7, Frog 5
Frog FlareLucca, FrogLucca 8, Frog 8
Delta ForceCrono, Marle, LuccaCrono 5, Marle 6, Lucca 6
LifelineCrono, Marle, RoboCrono 1, Marle 8, Robo 3
Arc ImpulseCrono, Marle, FrogCrono 4, Marle 6, Frog 5
Final KickCrono, Marle, AylaCrono 5, Marle 6, Ayla 8
Fire ZoneCrono, Lucca, RoboCrono 4, Lucca 6, Robo 3
Delta StormCrono, Lucca, FrogCrono 5, Lucca 6, Frog 6
GatlingKickCrono, Lucca, AylaCrono 5, Lucca 6, Ayla 8
Triple RaidCrono, Robo, FrogCrono 1, Robo 4, Frog 2
TwisterCrono, Robo, AylaCrono 1, Robo 3, Ayla 6
3D AttackCrono, Frog, AylaCrono 1, Frog 2, Ayla 8
Codect_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L30911-L30968LDX.W #$2778 ;C1F260|A27827 | ; DualTechReqTable (bank CC): post-battle combo-learn scan; sets bits in $283E+g STX.B $02 ;C1F263|8602 |000002; STZ.W $B2D2 ;C1F265|9CD2B2 |7EB2D2; ; | | ; -- LDX.B $02 ;C1F268|A602 |000002; LDA.L CharInitData,X ;C1F26A|BF0000CC|CC0000; CMP.B #$FF ;C1F26E|C9FF | ; BEQ + ;C1F270|F05E |C1F2D0; STA.B $08 ;C1F272|8508 |000008; LDA.W $B2D0 ;C1F274|ADD0B2 |7EB2D0; TAY ;C1F277|A8 | ; LDA.B $08 ;C1F278|A508 |000008; …ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C1.asm#L31303-L31336Tech_ComboReq_CheckOne: LDX.B $00 ;C1F565|A600 |000000; LDA.W !TemporaryValues,X ;C1F567|BD0000 |7E0000; AND.W $B2DF ;C1F56A|2DDFB2 |7EB2DF; BEQ + ;C1F56D|F003 |C1F572; JMP.W Tech_ComboReq_Next ;C1F56F|4C01F6 |C1F601; ; | | ; + TDC ;C1F572|7B | ; TAX ;C1F573|AA | ; STX.B $0E ;C1F574|860E |00000E; STX.B $10 ;C1F576|8610 |000010; LDA.B #$00 ;C1F578|A900 | ; STA.W $B2E9 ;C1F57A|8DE9B2 |7EB2E9; …Chrono Trigger (USA) · 0xc2778-0xc27f5 — $CC:2778-$CC:27F5Chrono Trigger (USA) · 0xc27fa-0xc28da — $CC:27FA-$CC:28DAChecked by claude, 2026-11-08 — read the post-battle scan (each group's participant mask against the party's pair and trio masks, its first technique, count and list pointer) and the check that each participant's count of techniques learned is at least the list's byte; then read the groups from the ROMChecked by a second AI model, 2026-11-08.

The 15 pairs are every pair of Crono, Marle, Lucca, Robo, Frog and Ayla; Magus has none. The ten trios here all include Crono. The other trios, the four that need a Rock and those without Crono, are not in this table: the disassembly points to separate requirement tables at $CC:2935 and $CC:2953.

The sound driver's song table holds 83 three-byte pointers to song scripts, numbered $00-$52; a request to play a song at or above the count byte before the table is ignored. This is the game's track listing by song number. chrono-trigger-tables/tracks

SongDisassembly's nameScript
$00Silence$CA:8ACC
$01Memories of Green$CA:8AF2
$02Wind Scene$CA:8FB3
$03Corridors of Time$CA:944E
$04Rhythm Wind Sky Earth$CA:9AB9
$05Ruined World$CA:9D85
$06Millennial Fair$CA:9EC3
$07Crono and Marle$CA:AAAA
$08Secret of the Forest$CA:ABF4
$09Zeal Palace$CA:B1B2
$0ADerelict Factory$CA:B522
$0BAylas Theme$CA:B94D
$0CCourage and Pride$CA:BC34
$0DLavos Theme$CA:C14E
$0ERobos Theme$CA:C8C0
$0FMorning Sunlight$CA:C67A
$10Manoria Cathedral$CA:D0EC
$11SFX Birds Waves$CA:D213
$12SFX Leenes Bell$CA:D355
$13Wings that Cross Time$CA:D3AE
$14Schalas Theme$CA:DD81
$15Delightful Spekkio$CA:E0F4
$16A Shot of Crisis$CA:E6DD
$17Kingdom Trial$CA:ED54
$18Chrono Trigger Theme$CA:F5FD
$19SFX Magus Flames$CB:010C
$1ASFX Wind$CB:0194
$1BVictory Fanfare$CB:0221
$1CTriumphant Jingle$CB:05E3
$1DAt the Bottom of Night$CB:0788
$1EPeaceful Days$CB:0B32
$1FA Strange Happening$CB:10F4
$20SFX Dripping$CB:13F2
$21SFX Water Flowing$CB:1456
$22SFX Howling Wind$CB:14D6
$23The Hidden Truth$CB:156C
$24A Prayer to the Road$CB:1A31
$25Huh$CB:1AF2
$26Day the World Revived$CB:1C16
$27Robo Gang Johnny$CB:1D59
$28Battle with Magus$CB:22E1
$29Boss Battle1$CB:2C06
$2AFrogs Theme$CB:340F
$2BGoodnight$CB:3A38
$2CBike Chase$CB:3B0B
$2DPeople Without Hope$CB:3E26
$2EMystery of the Past$CB:4275
$2FUnderground Sewer$CB:430E
$30A Premonition$CB:4796
$31Undersea Palace$CB:4A23
$32Last Battle$CB:4F0E
$33Dome16 Ruin$CB:5A6A
$34SFX Lavos Heartbeat$CB:60B1
$35SFX Blackbird Wind$CB:613F
$36Burn Bobonga$CB:61FB
$37SFX Time Warp$CB:658A
$38Primitive Mountain$CB:6627
$39World Revolution$CB:6F26
$3ASFX Lavos Scream$CB:7C50
$3BSealed Door$CB:7D57
$3CSilent Light$CB:8401
$3DFanfare3$CB:8B50
$3EThe End of Time$CB:8C61
$3FTo Far Away Times$CB:9064
$40Confusing Melody$CB:A338
$41SFX Chanting$CB:A454
$42Gatos Song$CB:A56B
$43SFX Wind2$CB:A6CD
$44Black Omen$CB:A729
$45Battle1$CB:AFA3
$46Tyran Castle$CB:B605
$47SFX Heavy Wind$CB:BFD6
$48Magus Castle$CB:C186
$49First Festival of Stars$CB:C2F9
$4ASFX High Wind$CB:CC53
$4BSFX Waves$CB:CD4C
$4CSFX Heavy Breathing$CB:CDBD
$4DEpilogue to Good Friends$CB:CE33
$4EBoss Battle2$CB:D315
$4FUnknown Jingle$CB:E040
$50Determination$CB:E13E
$51Battle2$CB:E88F
$52Singing Mountain$CB:EE21
Code notesct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C7.asm#L218-L221Audio_PlaySongCmd: SEP #$20 ;C701A1|E220 | ; cmd $10/$11/$14/$15 handler: arg = SONG number; loads song's instrument list (SongInstrumentTables), uploads missing instrument samples, plays sequence via SongSequencePtrs LDA.B $01 ;C701A3|A501 |001E01; CMP.L SongCount ;C701A5|CFE90AC7|C70AE9; BCS Audio_ServiceExit ;C701A9|B0E7 |C70192;ct_disassembly: Chrono Trigger (US v1.0) disassembly · bank_C7.asm#L636-L638TAX ;C7050C|AA | ; SEP #$20 ;C7050D|E220 | ; LDA.L SongSequencePtrs,X ;C7050F|BF180DC7|C70D18;Chrono Trigger (USA) · 0x70ae9-0x70ae9 — $C7:0AE9: the song countChrono Trigger (USA) · 0x70d18-0x70e10 — $C7:0D18: the song tableChecked by a second AI model, 2026-11-08.

Song numbers are hexadecimal, as the play requests give them. The names are the disassembly's, after the soundtrack's titles; the ROM holds no song titles. The disassembly's song constants write its decimal song numbers as hexadecimal from 10 on (its $10 is song $0A), so its constants above $09 are not the numbers the game uses; the song files' decimal numbers are.