SNES Development
Final Fantasy - Mystic Quest

Final Fantasy - Mystic Quest

ROM Map

The ROM Map describes various offsets, some could be broken down further and just haven’t been expanded up on, but data structures are provided for those linked to.

OffsetCategoryDescription
007140 - 0071BCPointer / Map Sprite Build Pointers
007ACF - 007DBFPointer / More Sprite Builders (Monsters?)
007DCF - Pointer / Monster Sprite Map Pointers
007E4F - 007FBFUnused / Free Space / 未使用領域
007FC0 - 007FD5Header / Game’s Title
013A55 - 013BFFUnused / Free Space / 未使用領域
014275 - 0146FEMonster / Enemy Stat Offsets
0146FFUnused / Free Space / 未使用領域
017ED2 - 017FFFUnused / Free Space / 未使用領域
018BF5Text / Shop Text
0195D9Text / “New Game”
01953AText / “Save Completed”
0196A4Text / “Empty!”
019A65Text / Status Screen
019D3FText / Custom Screen
01A003Text / “Give Up?”
01A336Text / Name Selection and stuff
01A412 - 01A431Unused / Free Space / 未使用領域
01AB0CText / Menu Text
01B10EText / Battle Menu
01B80D - 01BA85Text / Credits
01BC85 - 01CD84Text / Text Block 1
01CE8D - 01CF36Text / Text Block 2
01D0B7 - 01D2BCText / Text Block 3
01D2D2 - 01D635Text / Battle Script
01D73A - 01FC50Text / Text Block
020000 - 0217FFGraphic / Items
021800 - 02183FPointer / Item Tile Pointers (Palette)
0210C0 - 027FFFGraphic / Sprite Bank 1
028000 - 028C7FPalette / Palette for Sprite Bank 2
028C80 - 02F280Graphic / Sprite Bank 2
02F360 - 02F72APointer / Palette Pointers for Bank 2
02FED5 - 02FFFFUnused / Free Space / 未使用領域
030000 - 033FC0Graphic / Something to do with world map data
033FC1 - 037BC0Graphic / Spell Animations
037BC1 - 037CD4Graphic / Spell Movement Animation? / Pointers?
037CD5 - 037FFFUnused / Free Space / 未使用領域
038000 - 03802FPalette / Text and Menu Palettes Four Colors each
03D7F4 - 03DDC3Palette / Sprite Palettes (8 colors)
03DDC4 - 03EB43Graphic / World Map Sprites (FIREBURG)
03F837 - 03FFFFUnused / Free Space / 未使用領域
040000Pointer / World Map Tile Config?
041408 - 0415EDPointer / Hill of Destiny Tile Configuration?
047DBE - 047FFFUnused / Free Space / 未使用領域
048000 - 04845FPalette / Monster & Background Palettes
048460 - 0485F4Pointer / Enemy Sprite Pointers
0485F5 - 04FFA4Monster / Enemy Battle Sprites and damage #’s
050618 - 057FF7Monster / Boss Sprite Bank 1
05971C - 05EB4BMonster / Boss Sprite Bank 2
060EDA - 060F11Text / Title Screen Text
060F14Pointer / VRAM Title Screen Pointers
062A4C - 0636EBGraphic / Title Screen Tiles
0636EC - 06372BPalette / Title Screen Palettes?
063ED0 - 06411FText / Map Locations
064120 - 06441FText / Item Names
064420 - 064B9FText / Attack Names
064BA0 - 0650BFMonster / Enemy Names
06BDAEAudio / SPC Pointers
06BDFFAudio / BRR Pointers
06BEA1 - 06C1E1Audio / Instrument Sample IndexesInstrument List
06C201Audio / BRR Samples
0750FDAudio / SPC SequencesSilence
078573Audio / SPC SequencesBattle 1
078B68Audio / SPC SequencesBattle 2
079320Audio / SPC SequencesBattle 3
079B73Audio / SPC SequencesVictory!
079E0AAudio / SPC SequencesWorld
079F87Audio / SPC SequencesFossil Labyrinth
07A29AAudio / SPC SequencesDungeon of Ice
07A84EAudio / SPC SequencesLava Dome
07AE4EAudio / SPC SequencesMountain Range of Whirlwinds
07B20BAudio / SPC SequencesDungeon and Waterfall
07B504Audio / SPC SequencesMiddle Tower
07B779Audio / SPC SequencesLast Castle
07BF2EAudio / SPC SequencesBeautiful Forest
07C2F8Audio / SPC SequencesShrine of Light
07C743Audio / SPC SequencesCity of Earth ~ Foresta
07CC41Audio / SPC SequencesCity of Ice ~ Aquaria
07D151Audio / SPC SequencesCity of Fire ~ Fireburg
07DA03Audio / SPC SequencesCity of Wind ~ Windaria
07DF42Audio / SPC SequencesRock ‘n’ Roll
07E410Audio / SPC SequencesRock Theme
07E810Audio / SPC SequencesFanfare of Friendship
07E8C2Audio / SPC SequencesMystic Ballad
07EAABAudio / SPC SequencesHill of Fate
07EEDDAudio / SPC SequencesMystic Quest
07F473Audio / SPC SequencesEnding
07FBD3Audio / SPC SequencesThe Crystal

Data Tables

Monsters

Below are the pointers to each monsters data, each en

ValueMonster Name
14475Brownie
14483MintMint
14491Red Cap
1449FMad Plant
144ADPlant Man
144BBLive Oak
144C9Slime
144D7Jelly
144E5Ooze
144F3Poison Toad
14501Giant Toad
1450FMad toad
1451DBasilisk
1452BFlazzard
14539Salamand
14547Sand Worm
14555Land Worm
14563Leech
14571Skeleton
1457FRed Bone
1458DSkulder
1459BRoc
145A9Sparna
145B7Garuda
145C5Zombie
145D3Mummy
145E1Desert Hag
145EFWater Hag
145FDNinja
1460BShadow
14619Sphinx
14627Manticor
14635Centaur
14643NiteMare
14651Stooney Roost
1465FHot Wings
1466DGhost
1467BSpector
14689Gather
14697Beholder
146A5Fangpire
146B3Vampire
146C1Mage
146CFSorcerer
146DDLand Turtle
146EBAdamant Turtle
146F9Scorpion
14707Snipion
14715Werewolf
14723Cerberus
14731EdgeHog
1473FSting Rat
1474DLamia
1475BNaga
14769Avizzard
14777Gargoyle
14785Gorgun
14793Minotaur Zombie
147A1Phanquid
147AFFreezer Crab
147BDIflyte
147CBStheno
147D9Chimera
147E7Thanatos
147F5Stone Golem
14803Skullerus Rex
14811Behemoth
1481FMinotaur
1482DSquidite
1483BSnow Crab
14849Jinn
14857Medusa
14865Gidrah
14873Dullihan
14881Flameosaurus Rex
1488FIce Golem
1489DDual Headed Hydra
148ABTwin Headed Hydra
148B9Pazuzu
148C7Zuh
148D5Dark King

Data Structures

Monster Structure

The monster structure is 14 bytes long.

00 - 01  HP
02       Strength
03       Defense
04       Speed
05       Magic
06       Strength Element
07       Strength Element
08       (Unknown)
09       (Unknown)
10       (Unknown)
11       (Unknown)
12       Weak Element
13       Counter %

Text

Text Compression

The premise is simple. 8x8 tiles programmed in binary, with 0 representing transparent and 1 representing white.

for example, 53= 01010011. This repeats itself 8 times vertically to create a tile.

There will be two value for each row. The transparent, and the shown. Simple rule: Both must add up to FF. If you see a tile where something adds up to more than that, then it isn’t a tile.
To see the tiles, use a hex editor of some kind. Set the row width to 64 in decimal, or 40h. The values for a tile will then line up vertically.

I will list the starting values for said tiles. A tile, lined up with width as told, will look like this:

t1v1
t2v2
t3v3
t4v4
t5v5
t6v6
t7v7
t8v8

t = transparent, v = visible

Here are the starting bytes to each tile found so far in said format.
Compressed Tiles (For use in bottom spot of screen):

$384a4: Auto (Two Tiles)
$384a8: Manual (Three Tiles)
$38630: Top Left Corner
$38632: Bot Left Corner
$38634: Top Right Corner
$38636: Bot Right Corner
$38638: Vertical Line
$3863a: Horizontal Line
$3863c: Horizontal to right of name (One pixel less on left side)
$3863e: End (Three Tiles)
$3864a: Compressed L
$3863c: Compressed E
$3863e: Compressed V

The following only work in talking text:

$38830: g
$38832: j
$38834: p
$38836: q
$38838: y
$3883A: h

The tiles for shrunk (see: level on bottom) numbers begin at $38A30 and goes from 0 to 9.
Tiles $38A44 - $38A4E are unknown usage.
Tiles $38A50 are full sized, from 0-9 and then A-F (F = $38A6E).
Tiles starting from $38C30 - $38C6E are G-Z (Z = $38C56), followed by a-l (l = $38C6E).
Tiles starting with $38E30 - $38E4A are tiles for m-z. For the $38Exx group:

4c = !
4E = ?
50 = ,
52 = '
54 = .
56 & 58 = "

The others will be decoded soon, but should be punctuation, probably running through $38E6E.

Audio

Sample Index

ValueInstrument
00Nothing
01Guitar
02Kick Drum
03Brass Section
04Distortion Guitar
05Synth Bass
06Flute 1
07Hihat
08Flute 2
09Rock Organ
0AElectric Bass
0BSnare Drum (Loop)
0CStrings
0DConga Drum
0ETrumpet
0FXylophone
10Cymbal Crash
11Timpani
12Wood Block

SPC Sequence Samples

ValueInstrument
00Triangle Waveform
01Triangle Waveform (Synth Church Organ)
02Square Waveform
03Saw Waveform (Overdrive)
04Saw Waveform (Synth Trumpet)
05Square Waveform (Overdrive)
06Saw Waveform (?)
07Triangle Waveform (Bell)
08Triangle Wwaveform (Overdrive)
09Saw Waveform (Overdrive)
0ASaw Waveform (Synth Bass)
0BSine Waveform (Flute)
0C-3FNothing

SPC Commands

D2 xx      change instrument volume to xx
D4 xx      Pan= 00-7F Left, 80-FF Right

E2               
E3         
E4 xx      Change instrument octave to xx
EA xx      Change instrument to xx
EB xx      
EC xx yy   
ED xx      
EE xx      

F1
F2      
F3 xx      Set tempo to xx (slower?)
F4 xx      Set tempo to xx (faster?)
F5 xx      Set echo to xx
F6 xx
F7 xx yy
F8 xx      Set global sequence volume to xx
F9
FA
FB
FC
FD xx

BRR Pointers

PointerDescription
01C20D
21C80D
2ECC0D
08E80D
FFF50D
5DFA0D
FB000E
300D0E
16140E
4E140E
06220E
65310E
A24D0E
84550E
C45C0E
6E690E
4A770E
F3810E

Information described by JCE3000GT.