SNES Development
Seiken Densetsu 3

Seiken Densetsu 3 / Secret of Mana 2

RAM Map

AddressDescription
7E1C10Current Music
7E6018Last Level
7E6028Current Level
7E8700-7E897FSolidity Set L1
7E8980-7E8BFFSolidity Set L2
7FCCF2Monster HP Current
7FE32CMusic For Loaded Game
7FEDF2HP Current
7FEE02HP Max
7FFA13Monster Index
7FFEECCurrent Level

ROM Map

AddressDescription
C05297-C052C6Decompression Assembly (World Map Graphics, instructions are stored to RAM and executed there)
C052C7-C0537BDecompression Routine (World Map Graphics)
C0EA03-C0FA42Dialogue Script-Related
C0EA70 Read Event Script Pointer
C0EA87 Read Event Script Bank
C239CA-C23CB8Decompression Routine (Graphic Sets)
C2418D-C2437ADecompression Routine (Tilesets)
C243DA-C2441CDecompression Routine (Solidity Sets)
C24527-C24876Decompression Routine (Tilemaps)
C2AAF0-C2AC03Decompression Routine (World Map Tilemap)
C403A0 Read Action Script Opcode
C42F5D-C4C4CDDialogue Script-Related Routines
C49561 Load “Closed Garden” Track for Load Game Menu
C51E90-C51F2ABRR Sample Pointers (52 samples, 3 bytes each)
C51F2B-C52064BRR Sample Relative Volumes, Pitches
C52065-C52148SPC Data Pointers (70 SPCs, 3 bytes each)
C53FC9-C735D9SPC Data
C73903-C9A6DEBRR Sample Data
CA0000-CA7FFFWorld Map Sub-Map Graphics (Uncompressed)
CAFA00-CAFFFFCursor Graphics (Uncompressed)
CB040A-CB0B09Palette Set Pointers (7 pointers each = 14 bytes each) (bank $CD)
CB0B0A-CB49DBTilemap Offsets, Dynamic Data (from 01,00 of location data @ CB73DC)
CB49DC-CB73DBExit Fields
CB73DC-CB9F5FLocation Data
CB9F60-CBFFBFExit Field Index Packs
CBD9D2-CBE1C3Tilemaps (Compressed)
CBFFC0-CBFFFFPriority Sets
CC0000-CC05FFMonster Pack Collection
CC0600-CC09FFMonster Packs
CC0A00-CC0CFFMonster Packs
CC0D00-CC0FFFNPC Packs (256 items, 3 bytes each)
CC1000-CC1899Graphics Packs
CC189A-CC6161Solidity Sets (Compressed)
CC6162-CCE20DNPC Maps (Dynamic Lengths)
CC67F4-CC6820NPC Map for Location 0018 (Rabite Forest from Castle City Jad)
CC6811 Level of first 3 Monsters
CCE20E-CCF600Tilemaps (Compressed)
CCFC00-CCFC79Animation String Pointers
CCFC7A-CCFFFFAnimation Strings
CD0000-CD00D7Tileset L1 Pointers (72 items, 3 bytes each)
CD00D8-CD01AFTileset L2 Pointers (72 items, 3 bytes each)
CD01B0-CD023FSolidity Set L1 Pointers (bank $CC)(72 items, 2 bytes each)
CD0240-CD02CFSolidity Set L2 Pointers (bank $CC)(72 items, 2 bytes each)
CD02D0-CD060BGraphics Pointers (276 items, 3 bytes each)
CD0750-CD0A3CTileset Packs
CD0A3D-CD3550Sprite Palettes
CD1EB7 Kevin’s Palette
CD3551-CDA314Palette Sets
CDBFDF-CDC9A7Tilemaps (Compressed)
CE0000-CFD284Tilesets (Compressed)
CFD720-CFE5ABTilemaps (Compressed)
D10000-D111FFMonster Stats
D12A40-D12B83Sprite Mold Pointers
D133D0-D1393FMonster Base HPs
D134F2 Werewolf Base HP
D1F5E0-......Monster XPs
D1F61C Dark Battum XP
D22D92-D2F817Dialogue Script-Related
D30A13-D3F301Dialogue Script-Related
D50000-D72FFFMold Packs and Mold Data for Sprites
D52581-D525..Mold Pack for Kevin (2 bytes each)
D7C400-D7D5FFSprite Graphics, Magic, etc. (Uncompressed)
D7DC00-D7E1FFGraphics, Kevin, Wolf Head (Uncompressed)
D7F600-D7FA..Numeral Graphics, etc. (Uncompressed)
D80000-E3DFFFSprite Graphics (Uncompressed)
E60000-E7CBFFMagic, Attack Effect Graphics (Uncompressed)
E80000-E801FFPointers to World Map Tilemap Chunks
E80200-E803FFPointers to Holy Land Tilemap Chunks
E80400-E88947World Map Tilemap Chunks (Compressed)
E88948-E8A598Holy Land Tilemap Chunks (Compressed)
E8B000-E8BD83Tilemaps (Compressed)
E8E800-E8EFFFWorld Map Mini-Map (Uncompressed)
E8F000-E8FFFFBattle Numerals, Symbols (2BPP, Uncompressed)
E90000-E90001Pointer to Holy Land Animated GFX
E90002-E90003Pointer to World Map Animated GFX
E90004-E9291EWorld Map GFX (Compressed)
E9291F-E92E9BHoly Land Animated GFX (Compressed)
E92E9C-......World Map Animated GFX (Compressed)
E96080-......World Map Palettes
EA0000-EFFFFFTilemaps (Compressed)
F00000-F6FFFFLocation Graphics (Compressed)
F70000-F77FFFAnimated Graphics (Uncompressed)
F7E8C4-F7FC8FItem Effect Graphics (Uncompressed)
F7FC90-F7FFFFTilemaps (Compressed)
F80000-F811FFEvent Scripts
F81200-F869FFDialogue Script-Related
F90200-F9B1F0Dialogue Script-Related
F94000-F95FFFTitle Screen BG Clouds (Uncompressed)
F96D36 Event Scripts: Karl attacks Kevin
FAB1F1-FAFFFFDialogue Script-Related
FB0000-FBECA1Event Scripts
FC0000-FCAE88Tilemaps (Compressed)
FCF500-FD41FFUncompressed Graphics
FE2E00-FE4DFFEvent Script Pointers
FE2F00-FE8F7BLetter Characters, Symbols (Uncompressed)
FE4E00-FE55FFEvent Script Bank Indexes (+ $F8)
FEA6F5-......Title Screen FG Graphics (Compressed)
FEFA60-......Title Screen BG Graphics (Compressed)

Data Structures

Tilemap Offsets

3 bytes per offset, a string is terminated by FF
2 string are read: 1st for tilemap L1, 2nd for tilemap L2
1st pointer of a string points to the compressed tilemap, the rest are unknown

Exit Fields

(4 bytes per field

00      dest X coord
01      dest Y coord
        d6-d7   facing direction
03,02   destination

Location Data

By location index @ 7E6028, 1114 items, 10 bytes each

01,00   tilemap pack (+ $CB0000 = dynamic data, terminated by FF)
02      map pack (* 7 + $CD0750)
03      palette set
04
05
07,06   exit field index pack (+ $CB0000)
09,08   NPC map pointer (+ $CC0000)

Exit Field Index Packs

2 bytes per pointer, packs are dynamic size

some pointers: & 0x7FF * 2 + $CB49DC = offset of exit field
...yet others (& 0x7FF) look like actual location indexes?

Priority Sets

4 bytes each

00      d0-d4   Enable Mosaic
01      d0-d4   Enable Mainscreen
02      d0-d4   Enable Subscreen
03      d0-d4   Color Math
        d6      Half Intensity
        d7      Minus Subscreen

Monster Pack Collection

256 items, 6 bytes each

* 4 + $CC0600 = monster pack

Monster Packs

CC0600-CC09FF: 256 items, 4 bytes each

* 3 + $CC0A00/CC0D00 = monster/NPC pack

CC0A00-CC0CFF: 256 items, 3 bytes each

Graphics Packs

Dynamic, each string terminated by FFFF

* 3 + $CD02D0 = offset of pointer

Solidity Sets

Compressed, 2 bytes per tile

00      d0      SE Quadrant
        d1      SW Quadrant
        d2      NE Quadrant
        d3      NW Quadrant
        d4      N Edge Blocked
        d5      Can Slide Against
        d6      W Edge Blocked
01      d7      Exit Trigger Enabled

Animation Strings

00      d6,7    if clear, 4-byte length
        d6      unknown, 3-byte length if set
        d7      unknown, 1-byte length if set
        if d6/d7 clear: & 0x0F * 0x80 = offset of VRAM to draw to
01,02   unknown if 00,d6/d7 set
03,02   if d6/d7 clear: + $F70000 = offset of animation graphics

Tileset Packs

107 items, 7 bytes each

00      Tileset L1 (* 2 + $CD01B0 = offset of pointer)
01      Tileset L2 (* 2 + $CD01B0 = offset of pointer)
02      Scrolling L2
        d0-d2   Speed
        d3      Enable Scrolling
03      & 0x0F = Priority Set
04      Animation Index
        * 2 + CCFC00 = pointer's offset
06,05   Graphics Pack (bank $CC)

Palette Sets

180 bytes each, 6 palettes per set, 30 bytes per palette

Monster Stats

128 items, 36 bytes each

00      sprite
01      palette
04-02   pointer to action script

Sprite Mold Pointers

2 bytes each, 162 items total

* 4 + $D50000 = offset of mold pack
Duran, Kevin, Hawk, Angela, Carlie, Lise (the rest are NPCs)

Monster Base HPs

696 items, 2 bytes each

(level - 1) * 14

Monster XPs

3 bytes each

00 ?
01 ?
02 ?

Data Tables

Monsters

There’s a total of 128 monsters.

IndexSetName
00MonsterShell Hunter
01MonsterMyconid
02MonsterDarth Matango
03MonsterGoblin
04MonsterGoblin Lord
05MonsterBeast Master
06MonsterPoron
07MonsterPorobin Hood
08MonsterPorobin Leader
09MonsterDuck Soldier
0AMonsterDuck General
0BMonsterArmor Knight
0CMonsterSilver Knight
0DMonsterSword Master
0EMonsterDark Lord
0FMonsterNinja
10MonsterNinja Master
11MonsterNight Blade
12MonsterGal Bee
13MonsterLady Bee
14MonsterQueen Bee
15MonsterMagician
16MonsterWizard
17MonsterHigh Wizard
18MonsterDark Priest
19MonsterNecro-mancer
1AMonsterEvil Shaman
1BMonsterSlime
1CMonsterSlime Prince
1DMonsterGrell
1EMonsterGrell Mage
1FMonsterShape-shifter
20MonsterShadow-zero
21MonsterRabite
22MonsterRabilion
23MonsterKing Rabite
24MonsterGreat Rabite
25MonsterMolebear
26MonsterNeedlion
27MonsterPakkun Lizard
28MonsterPakkun Dragon
29MonsterFiredrake
2AMonsterBasilisk
2BMonsterMachine Golem
2CMonsterGuardian
2DMonsterDeath Machine
2EMonsterOgre Box
2FMonsterKaiser Mimic
30MonsterUnicorn Head
31MonsterGold Unicorn
32MonsterEvil Sword
33MonsterElement Sword
34MonsterAssassin Bug
35MonsterRuster Bug
36MonsterMega Crawler
37MonsterGiga Crawler
38MonsterCocka-trice
39MonsterNeedle-bird
3AMonsterCockabird
3BMonsterWerewolf
3CMonsterBlack Fang
3DMonsterSilver Wolf
3EMonsterBloody Wolf
3FMonsterWolf Devil
40MonsterHarpy
41MonsterSiren
42MonsterBound Wolf
43MonsterKerberos
44MonsterBulette
45MonsterGold Bulette
46MonsterSpecter
47MonsterGhost
48MonsterPoto
49MonsterMama Poto
4AMonsterPapa Poto
4BMonsterPetit Dragon
4CMonsterFrost Dragon
4DMonsterPetit Tiamat
4EMonsterDragon Zombie
4FMonsterChibi-Devil
50MonsterGremlin
51MonsterLesser Demon
52MonsterGreat Demon
53MonsterPakkun Baby
54MonsterPakkuri Baby
55MonsterZombie
56MonsterGhoul
57MonsterCarmilla
58MonsterCarmilla Queen
59MonsterSahagin
5AMonsterPetit Poseidon
5BMonsterSea Serpent
5CMonsterSea Dragon
5DMonsterBattum
5EMonsterDark Battum
5FMonsterBoulder
60MonsterPower Boulder
61BossesMachine Golems
62BossesGenova
63BossesBill and Ben
64BossesFull Metal Hagger
65BossesJewel Eater
66BossesTzenker
67BossesGorva
68BossesBlack Rabite
69BossesLugar
6ABosses(unknown)
6BBossesGildervine
6CBossesBeast King
6DBossesFlamekhan
6EBossesQueen of Reason
6FBossesKoren
70BossesDeathjester
71BossesJagan
72BossesBigeau
73BossesDarkshine Knight
74BossesHeath
75BossesGod-Beast Fiegmund
76BossesGod-Beast Xan Bie
77BossesGod-Beast Land Umber
78BossesGod-Beast Dangaard
79BossesGod-Beast Lightgazer
7ABossesGod-Beast Zable-Fahr
7BBossesGod-Beast Dolan
7CBossesGod-Beast Mispolm
7DBossesDragon Emperor
7EBossesDark Lich
7FBossesArchdemon
00NPC SetNinja Master
01NPC SetNight Blade
02NPC SetGal Bee
03NPC SetLady Bee
04NPC SetQueen Bee
05NPC SetMagician
06NPC SetWizard
07NPC SetHigh Wizard
08NPC SetDark Priest
09NPC SetNecromancer
0ANPC SetEvil Shaman
0BNPC SetSlime
0CNPC SetSlime Prince
0DNPC SetGrell
0ENPC SetGrell Mage
0FNPC SetShape-Shifter
10NPC SetRabite
11NPC SetBattum
12NPC SetBound Wolf
13NPC SetBattum, Zombie
14NPC SetBattum, Molebear
15NPC SetMolebear
16NPC SetRabite, Myconid
17NPC SetMagician, Machine Golem
18NPC SetAssassin Bug, Poron
19NPC SetAssassin Bug, Gal Bee
1ANPC SetAssassin Bug, Gal Bee
1BNPC SetRabilion
1CNPC SetNeedle Bird, Chibi-Devil
1DNPC SetChibi-Devil, Harpy
1ENPC SetHarpy, Armor Knight
1FNPC SetChibi-Devil, Evil Sword
00      mem addr (+ $7E2F00)
01      compare value @ mem addr, skip NPC if not within range
        d0-3    max value
        d4-7    min value
02      NPC pack
03      NPC type
        d0-3    if == 15, monster(s)
        d7      enable event trigger?
05,04   event script pointer

if not monster(s)...
06      X coord
07      Y coord
08      sprite index

else...
06      level of monsters
07,08   X,Y coord of 1st monster
09,0A   X,Y coord of 2nd monster
0B,0C   X,Y coord of 3rd monster

2nd and 3rd monsters are optional; terminated by 0xFF

LEVEL 18 (Rabite Forest, from CCJ)

32 03 10 
8F 00 0E 
01 
04 08 
8D 0D 
49 1F 

32 03 10 
8F 00 0E 
01 
88 2C 
FF      terminate npc string

32      
4F      d0-3
        d4-7
16      NPC set (* 6 + $CC0000 = NPC set)
8F      d0-3
        d4-7
00 0E 
08      level of monsters
04 08   X,Y coord of NPC 0
8D 0D   X,Y coord of NPC 1
49 1F   X,Y coord of NPC 2

32 4F 16 
8F 00 0E 
08      level of monsters
88 2C   X,Y coord of NPC 3
FF      terminate npc string

FF      terminate map string


LEVEL 811 (Castle City Jad, Weapon/Armor)

38      mem addr (+ $7E2F00)
00      d0-3    if mem addr >=, skip NPC
        d4-7    if mem addr <, skip NPC
                if d0-3 < d4-7, branch to $C27AE4
                else skip NPC
9B      NPC set
A0      NPC type
        if & 0x0F == 0x0F, monster (else, non-monster)
        d4  
        d5  
        d6  
        d7  enable event trigger
60 81   event pointer
47 07   X,Y coord of NPC 0
13      sprite index (in set)

38 
2F 
9B      NPC set
A0 
87 89   event pointer
47 07   X,Y coord of NPC 1
13      sprite index (in set)

20 
1F 80 
A0 50 41 
0B 09 
22 

FF 

$D104A4 Rabite (36 bytes)
00      sprite ($1A = Rabite)
01      palette ($21 = Rabite)
04-02   action script

00  1
01  1
02  1
03  1
04  2
05  1
06  1
07  1
08  1
09  1
0A  1
0B  1
0C  1
0D  2
0E  1
0F  1
10  2
11  2
12  2
13  2
14  3
15  4   jump to address (3,2,1)
16  2
17  4   jump to address (3,2)
18  2
19  2
1A  2
1B  2
1C  2
1D  2
1E  2
1F  2
20-2F   1
30-3F   1
40  2
41  2
42  2
43  2
44  2
45  2
46  2
47  2
48-4F   2   load script from pointer @ beg. of banks $D2-D9 resp.
50-5F   2   branching commands: 1,0 & 0xFFF = branch (signed)
60-6F   2   branching commands: 1,0 & 0xFFF = branch (signed)
70-7F   2
80  2
81  2
82  2
83  2
84-8F   1
90-EF   1
F0  2
F1  2
F2  2
F3  2
F4  2
F5  2
F6  2
F7  2
F8  1
F9  1
FA  1
FB  1
FC  1
FD  1
FE  1
FF  1

$D25799 Rabite action script
04 00 
15 DD E1 D2     pointer to address ($D2E1DD)
FD 
F8 
18 36 
15 74 57 D2     pointer to address ($D25774)
E2 
42 CF 
15 2E 39 D3     pointer to address ($D3392E)
FD 
05 
0A 

04 00 
16 05 84 
17 02 02 00 
C2 
57 06 
00 
C2 
57 D8 
57 10 
05 
CC 
40 88 
0D 02 
DC 
70 0A 

15 6A 56 D2     pointer to address ($D2566A)

CD 
40 F6 
0D 03 
F9 
50 00 
05 
0A 


05      d5-7    HP
07      d0-4    
08      d0-6
09      attack script
0A      d0-6    
0B      d0-6    
0C      d0-6    
0D      d0-6    
0E      d0-6
0F      d0-6
10      
11      
12      
13      
14      
15      

11  Night Blade 13 11 F5 42 D2 A0 00 1E 01 00 01 A8 B9 B4 D4 D4 FA 00 00 10 00 20 00 00 00 21 00 00 00 00 00 00 00 10 03 03 
16  Wizard      15 16 0E 46 D2 A0 00 1E A3 32 00 AE 05 BA CB E3 FC 00 00 00 3F 00 00 00 00 21 00 00 00 00 00 00 00 10 03 03 
21  Rabite      1A 21 99 57 D2 A0 00 5A D1 E4 89 B0 E2 D5 E3 E3 FD 00 00 00 00 00 40 00 00 21 00 00 00 00 00 00 00 10 03 03 

Levels

Number(s)Name
0011Lakeshore Village Astoria
0016Lakeshore Village Astoria
0017Sub-zero Snowfield
0018 - 0020Rabite Forest
0021 - 0023Rabite Forest
0031 - 0042Cave of the Waterfalls
0043(between HCW and CotW)
0044 - 0051Holy City Wendel + houses
0053Castle City Jad
0054Corobokkle Forest
0055 - 0063Castle City Jad houses
0064(between CCJ and RF)
0066(seashore)
0102 - 0124Labyrinth of Ice Walls
0143 - 0162Valley of Flames
0222 - 0231Gemstone Valley Dorian
0327Beast Kingdom, from Moonlight Forest
0400 - ….Beast Kingdom Castle
0451 - 0472Molebear Highlands
0494 - 0503Golden Road
0549 - 0559Sub-zero Snowfield
0560 - 0567Desert of Scorching Heat
0644 - 0649Lampflower Forest
0662 - 0673Lampflower Forest
0677 - 0699Moonlight Forest
0860 - 0883Jungle of Illusion
0958 - 0978Forest of Wonder
1059 - 1098Dragon’s Hole

Molds

D5283F
24      & 0x0F = chunk count
        d4
        d5
        d6
        d7
32 

each byte (or word if lower nibble clear) is a chunk
3E      d0      load NW tile
        d1      load NE tile
        d2      load SW tile
        d3      load SE tile
        d4
        d5
        d6,7    mirror,invert
00 40   00      lower nibble clear, ie. same as last chunk
        01      d6,7    mirror,invert
2F      d6,7    mirror,invert
4A      d6,7    mirror,invert

F0      X pos of sprite from screen center (-10 here)
F0      Y pos of sprite from screen center (-10 here)

48      d0-3    N shift of 2nd chunk pair (8px here)
        d4-7    W shift of 2nd chunk pair (4px here)

80 01   & 0xFFE0 = offset of graphics, 1st chunk
E0 1E
C0 01   & 0xFFE0 = offset of graphics, 2nd chunk
21 1F
C1 04   & 0xFFE0 = offset of graphics, 3rd chunk
20 1F
C0 04   & 0xFFE0 = offset of graphics, 4th chunk

SRAM Format

Open your saveram file in your hex editor. Seiken Densetsu 3 has three save logs; each one takes up 0x800 bytes. The first 0x70 bytes, from 00 to 6F, are a kind of header – it’s the info that appears on the save / load screen, and has no effect on your actual game.

All addresses in this document will be for log 1; if you want to hack log 2, add 0x800; if you want to hack log 3, add 0x1000. For example, maximum MP for character 1, log 1 is at 0x1FF. Max MP for character 1, log 2 is at 0x9FF. Speaking of maximum MP, let’s hack that right now, so you can get the hang of hacking Remember, values are always in reverse byte order.

SRAM Checksum

A checksum is the sum of all bytes in a file (or a certain part of it) that’s used to check for file integrity. When you save your game, Seiken Densetsu 3 adds up all the bytes in your save log and writes that 2-byte sum at the end of your save log. When you come back to the game, it adds up all the bytes in the save log again and compares that to the stored checksum. If those two sums don’t match, Seiken Densetsu 3 assumes that the save log is corrupt (maybe the battery failed or something) or doesn’t exist.

This is a problem when you want to hack your saved game, because if you change the data without changing the checksum appropriately, Seiken Densetsu 3 will think the log is corrupt, and you’ll get the dreaded “No Save File.” When you’re making only small changes, like you did in the Quick Start section, it’s easy to fix the checksum, but if you make a lot of big changes, it’ll be a lot easier to just recalculate the checksum. Hex Workshop has an easy way to do this. If you’re using something else, it’s up to you to figure out.

To calculate the checksum we will simply add all the bytes, excluding the last 2, in a log together, a simple Checksum 16. Select the proper block of data. The first 0x70 bytes of each save log are a kind of header and aren’t included in the checksum. Start at 0x70 and select all the way down through 0x7FD. This is a total of 0x78E bytes for log 1. If this is a working save log you’re looking at, the checksum you’ve calculated will be the same as the 2-byte value at 0x7FE of your saveram.

After you finish making all your changes to your save file, you need to fix the checksum before you can play it. Follow the above procedure. Take the value you’ve calculated and write it over the old checksum at 0x7FE.

General Stats

I don’t know exactly where each character’s data block begins and ends. For the first character, the first value I know is current HP at 0x172-0x173, and the last value I know is maximum MP at 0x1FF-0x200. I do know that each character’s data takes up 0xFF bytes.

Important: All these following addresses will be for the first character’s data. If you want to hack the second character’s data, add 0xFF to the address. If you want to hack the third character, add 0x1FE. For instance, character one’s current HP is at 0x172-0x173; character two’s is at 0x271-0x272, and character three’s is at 0x370-0x371.

Attack, Evade, Defense and Magic Defense are determined by your stats and equipment, so any changes to these won’t be permanent.

GroupOffsetLengthDescription
Character 1 Stats0x01720x02Current HP
Character 1 Stats0x01740x02Current MP
Character 1 Stats0x01760x01Strength
Character 1 Stats0x01770x01Agility
Character 1 Stats0x01780x01Vitality
Character 1 Stats0x01790x01Intelligence
Character 1 Stats0x017A0x01Spirit
Character 1 Stats0x017B0x01Luck
Character 1 Stats0x017C0x02Total Experience / 50000
Character 1 Stats0x017E0x02Remainder of (Total Experience / 50000)
Character 1 Class0x01850x01Counter Gauge Maximum (04, 07, or 09)
Character 1 Stats0x01860x02Experience for Next Level / 50000
Character 1 Stats0x01880x02Remainder of (Exp. for Next Level / 50000)
Character 1 Stats0x018A0x01Experience Level
Character 1 Class0x018C0x01Class Family (Base Class)
Character 1 Class0x018D0x01Class Changes
Character 1 Class0x018E0x01Light-Dark Scale
Character 1 Equipment0x018F0x01Weapon
Character 1 Equipment0x01900x01Helmet
Character 1 Equipment0x01910x01Armor
Character 1 Equipment0x01920x01Ring
Character 1 Equipment0x01930x01Shield
Character 1 Stats0x01A70x02Attack Power
Character 1 Stats0x01AE0x01Evade Rate
Character 1 Stats0x01AF0x02Defense Power
Character 1 Stats0x01B10x02Magic Defense Power
Character 1 Equipment0x01B50x06Spare Weapons
Character 1 Equipment0x01C50x06Spare Helmets
Character 1 Equipment0x01CD0x06Spare Armor
Character 1 Equipment0x01D50x06Spare Rings
Character 1 Equipment0x01DD0x06Spare Shields
Character 1 Magic0x01E50x0BSpells
Character 1 Magic0x01F10x0BSpell Targeting Values
Character 1 Stats0x01FD0x02Max HP
Character 1 Stats0x01FF0x02Max MP
Party Data: Miscellaneous0x04910x02Luck
Party Data: Item Ring0x07560x09Items
Party Data: Item Ring0x07600x09Item Quantities
Party Data: Storage0x06A50x66Item-by-Item Quantities

Equipment

Weapons

A value of 0x00 is Nothing. 0x01-0x1E are Swords. 0x1F-0x2A are cool-looking “Nothing” swords with varying attack power. Each character’s weapons take up 0x2A values: 0x01 is the first sword, 0x2B is the first glove, 0x55 is the first dagger, 0x7F is the first rod, 0xA9 is the first flail, and 0xD3 is the first spear. Sorry, no matter what weapon a character is equipped with, they’ll look and fight the same as ever.

Armor, Helmets, Rings & Shields

0x00 is Nothing. 0x01-0x48 are helmets; each character takes up 0x0C values. 0x49-0x7E are rings; each character takes up 0x09 values. 0x7F-0xF6 are armor; each character takes up 0x14 values. 0xF7-0xFF are all shields! (I wonder if they’re all available in the actual game.) Notice that you can put any armor type in any spot, which can lead to strange stats.

Magic

GroupCodeSpell
Character Spells: Earth0x00(No Spell)
Character Spells: Earth0x01Diamond Missile
Character Spells: Earth0x02Earthquake
Character Spells: Earth0x03Stone Cloud
Character Spells: Earth0x04Protect Up
Character Spells: Earth0x05Speed Down
Character Spells: Earth0x06Diamond Saber
Character Spells: Air0x07(Air Spell)
Character Spells: Air0x08(Air Spell)
Character Spells: Air0x09(Air Spell)
Character Spells: Air0x0A(Air Spell)
Character Spells: Air0x0B(Air Spell)
Character Spells: Air0x0C(Air Spell)
Character Spells: Water0x0D(Water Spell)
Character Spells: Water0x0E(Water Spell)
Character Spells: Water0x0F(Water Spell)
Character Spells: Water0x10(Water Spell)
Character Spells: Water0x11(Water Spell)
Character Spells: Water0x12(Water Spell)
Character Spells: Fire0x13(Fire Spell)
Character Spells: Fire0x14(Fire Spell)
Character Spells: Fire0x15(Fire Spell)
Character Spells: Fire0x16(Fire Spell)
Character Spells: Fire0x17(Fire Spell)
Character Spells: Fire0x18(Fire Spell)
Character Spells: Dark0x19(Dark Spell)
Character Spells: Dark0x1A(Dark Spell)
Character Spells: Dark0x1B(Dark Spell)
Character Spells: Dark0x1C(Dark Spell)
Character Spells: Dark0x1D(Dark Spell)
Character Spells: Dark0x1E(Dark Spell)
Character Spells: Light0x1F(Light Spell)
Character Spells: Light0x20(Light Spell)
Character Spells: Light0x21(Light Spell)
Character Spells: Light0x22(Light Spell)
Character Spells: Light0x23(Light Spell)
Character Spells: Light0x24(Light Spell)
Character Spells: Moon0x25(Moon Spell)
Character Spells: Moon0x26(Moon Spell)
Character Spells: Moon0x27(Moon Spell)
Character Spells: Moon0x28(Moon Spell)
Character Spells: Moon0x29(Moon Spell)
Character Spells: Moon0x2A(Moon Spell)
Character Spells: Tree0x2B(Tree Spell)
Character Spells: Tree0x2C(Tree Spell)
Character Spells: Tree0x2D(Tree Spell)
Character Spells: Tree0x2E(Tree Spell)
Character Spells: Tree0x2F(Tree Spell)
Character Spells: Tree0x30(Tree Spell)
0x31Detect
Assorted Spells and Techniques0x32
Assorted Spells and Techniques0x33
Assorted Spells and Techniques0x34
Assorted Spells and Techniques0x35
Assorted Spells and Techniques0x36
Assorted Spells and Techniques0x37
Assorted Spells and Techniques0x38
Assorted Spells and Techniques0x39
Assorted Spells and Techniques0x3A
Assorted Spells and Techniques0x3B
Assorted Spells and Techniques0x3C
Assorted Spells and Techniques0x3D
Assorted Spells and Techniques0x3E
Assorted Spells and Techniques0x3F
Assorted Spells and Techniques0x40
Assorted Spells and Techniques0x41
Assorted Spells and Techniques0x42
Assorted Spells and Techniques0x43
Assorted Spells and Techniques0x44
Assorted Spells and Techniques0x45
Assorted Spells and Techniques0x46
Assorted Spells and Techniques0x47
Assorted Spells and Techniques0x48
Assorted Spells and Techniques0x49
Assorted Spells and Techniques0x4A
Assorted Spells and Techniques0x4B
Assorted Spells and Techniques0x4C
Assorted Spells and Techniques0x4D
Assorted Spells and Techniques0x4E
Assorted Spells and Techniques0x4F
Second / Third Level Power Attacks0x50
Second / Third Level Power Attacks0x51
Second / Third Level Power Attacks0x52
Second / Third Level Power Attacks0x53
Second / Third Level Power Attacks0x54
Second / Third Level Power Attacks0x55
Second / Third Level Power Attacks0x56
Second / Third Level Power Attacks0x57
Second / Third Level Power Attacks0x58
Second / Third Level Power Attacks0x59
Second / Third Level Power Attacks0x5A
Second / Third Level Power Attacks0x5B
Second / Third Level Power Attacks0x5C
Second / Third Level Power Attacks0x5D
Second / Third Level Power Attacks0x5E
Second / Third Level Power Attacks0x5F
Second / Third Level Power Attacks0x60
Second / Third Level Power Attacks0x61
Second / Third Level Power Attacks0x62
Second / Third Level Power Attacks0x63
Second / Third Level Power Attacks0x64
Second / Third Level Power Attacks0x65
Second / Third Level Power Attacks0x66
Second / Third Level Power Attacks0x67
Second / Third Level Power Attacks0x68
Second / Third Level Power Attacks0x69
Second / Third Level Power Attacks0x6A
Second / Third Level Power Attacks0x6B
Second / Third Level Power Attacks0x6C
Second / Third Level Power Attacks0x6D
Second / Third Level Power Attacks0x6E
Second / Third Level Power Attacks0x6F
Second / Third Level Power Attacks0x70
Second / Third Level Power Attacks0x71
Second / Third Level Power Attacks0x72
Second / Third Level Power Attacks0x73
Second / Third Level Power Attacks0x74
Second / Third Level Power Attacks0x75
Second / Third Level Power Attacks0x76
Second / Third Level Power Attacks0x77
Second / Third Level Power Attacks0x78
Second / Third Level Power Attacks0x79
Thrown Weapons0x7A
Thrown Weapons0x7B
Thrown Weapons0x7C
Thrown Weapons0x7D
Thrown Weapons0x7E
Thrown Weapons0x7F
Thrown Weapons0x80
Thrown Weapons0x81
Thrown Weapons0x82
Thrown Weapons0x83
Enemies’ Special Attacks0x84
Enemies’ Special Attacks0x85
Enemies’ Special Attacks0x86
Enemies’ Special Attacks0x87
Enemies’ Special Attacks0x88
Enemies’ Special Attacks0x89
Enemies’ Special Attacks0x8A
Enemies’ Special Attacks0x8B
Enemies’ Special Attacks0x8C
Enemies’ Special Attacks0x8D
Enemies’ Special Attacks0x8E
Enemies’ Special Attacks0x8F
Enemies’ Special Attacks0x90
Enemies’ Special Attacks0x91
Enemies’ Special Attacks0x92
Enemies’ Special Attacks0x93Black Rain
Enemies’ Special Attacks0x94
Enemies’ Special Attacks0x95
Enemies’ Special Attacks0x96
Enemies’ Special Attacks0x97
Enemies’ Special Attacks0x98
Enemies’ Special Attacks0x99
Enemies’ Special Attacks0x9A
Enemies’ Special Attacks0x9BHyper Cannon
Enemies’ Special Attacks0x9CHell Southern Cross
Enemies’ Special Attacks0x9D
Enemies’ Special Attacks0x9E
Enemies’ Special Attacks0x9F
Enemies’ Special Attacks0xA0
Enemies’ Special Attacks0xA1
Enemies’ Special Attacks0xA2
Enemies’ Special Attacks0xA3Mr. Death God
Enemies’ Special Attacks0xA4
Enemies’ Special Attacks0xA5
Enemies’ Special Attacks0xA6
Enemies’ Special Attacks0xA7
Enemies’ Special Attacks0xA8
Enemies’ Special Attacks0xA9
Enemies’ Special Attacks0xAA
Enemies’ Special Attacks0xAB
Enemies’ Special Attacks0xAC
Enemies’ Special Attacks0xAD
Enemies’ Special Attacks0xAE
“magicXX’s”0xAFVisual Effects for Bosses Dying
“magicXX’s”0xB0Visual Effects for Bosses Dying
“magicXX’s”0xB1Visual Effects for Bosses Dying
“magicXX’s”0xB2Visual Effects for Bosses Dying
“magicXX’s”0xB3Visual Effects for Bosses Dying
“magicXX’s”0xB4Visual Effects for Bosses Dying
“magicXX’s”0xB5Visual Effects for Bosses Dying
Enemies’ Special Attacks0xB6
Enemies’ Special Attacks0xB7
Enemies’ Special Attacks0xB8
Enemies’ Special Attacks0xB9Spiral Moon
Enemies’ Special Attacks0xBA
Enemies’ Special Attacks0xBB
Enemies’ Special Attacks0xBC
Enemies’ Special Attacks0xBD
Enemies’ Special Attacks0xBE
Enemies’ Special Attacks0xBF
Enemies’ Special Attacks0xC0
Enemies’ Special Attacks0xC1
Enemies’ Special Attacks0xC2
Enemies’ Special Attacks0xC3
Enemies’ Special Attacks0xC4
Enemies’ Special Attacks0xC5
Enemies’ Special Attacks0xC6
Enemies’ Special Attacks0xC7
Enemies’ Special Attacks0xC8
Enemies’ Special Attacks0xC9
Enemies’ Special Attacks0xCA
Enemies’ Special Attacks0xCB
Enemies’ Special Attacks0xCC
Enemies’ Special Attacks0xCD
Enemies’ Special Attacks0xCE
Enemies’ Special Attacks0xCFFlare
SBD’s0xD0
SBD’s0xD1
SBD’s0xD2
SBD’s0xD3
Enemies’ Special Attacks0xD4
Enemies’ Special Attacks0xD5
Enemies’ Special Attacks0xD6
Enemies’ Special Attacks0xD7
Enemies’ Special Attacks0xD8
Enemies’ Special Attacks0xD9
Enemies’ Special Attacks0xDA
SBD’s0xDB
SBD’s0xDC
SBD’s0xDD
SBD’s0xDE
SBD’s0xDD
SBD’s0xE0
SBD’s0xE1
SBD’s0xE2
SBD’s0xE3
SBD’s0xE4
SBD’s0xE5
SBD’s0xE6
SBD’s0xE7Leave Area
SBD’s0xE8Call Flammie
SBD’s0xE9
SBD’s0xEA
SBD’s0xEB
SBD’s0xEC
SBD’s0xED
SBD’s0xEE
SBD’s0xEF
SBD’s0xF0
SBD’s0xF1
SBD’s0xF2
SBD’s0xF3
SBD’s0xF4
SBD’s0xF5
SBD’s0xF6
SBD’s0xF7
SBD’s0xF8
SBD’s0xF9
SBD’s0xFA
SBD’s0xFB
SBD’s0xFC
SBD’s0xFD
SBD’s0xFE
SBD’s0xFF

Detect was apparently dummied out and has no description or effect. Second and Third Level Power Attacks you can “cast” for 0 MP, though be warned that if the “wrong” character uses an attack, it’ll look funny at best, and crash the game at worst. Enemies’ Special Attacks (and trap effects, etc.); like character techs, they don’t consume any MP. Most “SBD’s” are just visual effects.

Spell Targeting has a valid range between 0x01 and 0x04: 01 is One, 02 is All, 03 is One/All, and 04 is caster (for ally-targeted spells) or last ally targeted (for enemy-targeted spells).

Class

Class family is a value from 00 to 05, with 00 being the Fighter classes, 01 being the Grappler classes, and so on. Class changes is 00 for the base class, 01 for a second-level class, and 02 for a third-level class. Light-dark scale can range between 00 and 03, with 00 being light-light and 03 being dark-dark.

Class FamilyCodeClass NameTech Attack
Fighter00 00 00Fighter
Fighter00 01 00Knight3-Step Cut
Fighter00 01 01GladiatorWhirlwind Sword
Fighter00 02 00PaladinFlashing Sword
Fighter00 02 01LordMagic Circle
Fighter00 02 02SwordmasterVacuum Blade
Fighter00 02 03DuelistEruption Sword
Grappler01 00 00Grappler
Grappler01 01 00MonkWhirlwind Kick, Tornado Throw
Grappler01 01 01BashkarWater-Moon Slice, Bastard Slam
Grappler01 02 00God HandByakko Shockwave, Stardust Bomb
Grappler01 02 01Warrior MonkGenbu 100-Kick, Blow Impact
Grappler01 02 02DervishSuzaku Sky Dance, Veritubach
Grappler01 02 03Death HandSeiryuu Death Fist, Dead Crush
Thief02 00 00Thief
Thief02 01 00RangerFlying Swallow Toss
Thief02 01 01NinjaSilhouette Slice
Thief02 02 00WandererDance of Roses
Thief02 02 01RogueThousand Slice
Thief02 02 02NightbladeSplit-Image Slice
Magician03 00 00Magician
Magician03 01 00SorceressPink Typhoon
Magician03 01 01DelvarStar Attack
Magician03 02 00Grand DivinaSpiral Rod
Magician03 02 01ArchmageDancing Rod
Magician03 02 02Rune Master10 Tons
Magician03 02 03MagusHot Shot
Cleric04 00 00Cleric
Cleric04 01 00PriestessJump
Cleric04 01 01EnchantressDash
Cleric04 02 00BishopChopChop
Cleric04 02 01SageBoomBoom
Cleric04 02 02NecromancerCraaaazy
Cleric04 02 03Evil ShamanHugeHuge
Amazoness05 00 00Amazoness
Amazoness05 01 00ValkyrieVacuum Surge Spear
Amazoness05 01 01Rune MaidenFlying Heaven Spear
Amazoness05 02 00VanadisLight Ball Spear
Amazoness05 02 01Star LancerFalling Star
Amazoness05 02 02Dragon MasterDragon Fang Spear
Amazoness05 02 03Fenrir KnightHundred Flower Dance

Party Data

Item Ring

0x00 is Nothing. 0x01-0x18 are third-level class items. 0x19-0x1E are seeds. 0x1F-0x4E are magic items; these are arranged just like the spells they correspond to. 0x4F-0x52 are thrown weapons. 0x53-0x59 are recovery items. 0x5A-0x66 are special items, quest items, and dummied items (including 5A Magical Rope and 60 Dreamsee Herb). 0x67 on are Nothings.

Storage

This long list corresponds to the values that are used on your item ring. That is, 0x6A5 is how many Nothings you have in storage, 0x6A6 is how many Paladin Proofs, etc. A value of 0x00 means you don’t have that item in storage, obviously. If you set all of these values to 0x01, you’ll have one of every item in storage.

Notes

  • Mode7 GFX are drawn in 8BPP linear format
  • World Map Tilemaps are drawn on 8x8 tile basis

Information mostly from giangurgolo. SRAM Format originally written by Jair from the Vale, expanded up and corrected by various others.