The current URL is datacrystal.tcrf.net.
Final Fantasy 4 Advance/ROM map
The following article is a ROM map for Final Fantasy 4 Advance.
392A5C - Beginning of event pointers, which are relative and consist of 4 bytes.
0DBA00 - Beginning of map event pointers. Map events are 12 bytes long, and are used to place event data on maps. Event ID is the same as the pointer list at 392A5C. All treasure chests are also defined by this 12 byte data.
Format for treasure chests:
The first 2 bytes are the chest ID number. Next, are the chest content bytes, which are 6 bytes. The first 2 of those bytes are for items, the second 2 are for enemy encounters, and if the first 2 bytes are FFFF, the next 4 bytes are money amount. The next 2 bytes are used for what tile the chest turns to when the item is obtained. The last 2 bytes are currently unknown.
F0EEB - start of list for the item shop in Baron
395D8A - This is the encounter ID for Baigan. Changing this makes you fight a different monster.
0D95A4 - Map pointers. It alternates between graphic pointers and clipping pointers. Note that for treasure chests, co-ordinates are NOT used, but rather the first chest entry in that map's index will be in the first "chest" clipping, and go from top to bottom, left to right. Also note the map compression has not been cracked yet.
0D67F0 - warp data for the Black Mage room in Baron Castle. The first 2 bytes are map ID, and the second 2 bytes are exit locations. The rest is currently unknown.
Some data from JCE3000GT & Dragonsbrethren/DKK - Offsets are in Decimal and not Hex
- Character data:
994008
01 = Level
02 = Equippable Hand
03-04 = HP
05-06 = MP
07 = STR
08 = AGI
09 = STAM
10 = INT
11 = SPIRIT
12 = ? (0x00 value)
13-16 = Current EXP
17-18 = Right hand
19-20 = Amount in R-Hand
21-22 = Left hand
23-24 = Amount in L-Hand
25-26 = Head
27-28 = Body
29-30 = Arms
31-32 = Possibly status ailments?
- Shop data
986836 (18 bytes long possible and each shop length is pointer driven)
01-02 = Type of shop (00-Weapon, 01-Item, 02-Armor [unknown if there are any more shop type bytes)
03-18 = Items in integer form (example: 0100 is Fire Claw)
The shop closes with the following bytes FF00.
I do not have the pointer table yet...or not even 100% sure if it has one.
- Item bytes
- Items won from monsters
1028266
12 bytes each. Putting 4 of the same value makes that item 100% chance of winning from battle.
01 = % Chance of winning
02 = Empty byte (0x00)
03-12 = Items (use table above)
- Monster stats
1020180 = Various sizes and pointer driven. I do not have the pointer table yet.
This is a rough draft...and needs to be fixed once the pointer table is discovered.
Byte # = data type (length):
01-04 = HP (4 bytes)
05 = Experience (2)
07 = Gil (2)
08 = Unknown (1)
09 = Strength (1)
10 = Unknown (1)
11 = Defense (1)
12 = Unknown (1)
13 = Unknown (1)
14 = Unknown (1)
15 = Magic Defense (1)
16 = Unknown (1)
17-18 = Unknown (2)
19 = Unknown (1)
20 = Unknown (1)
21 = Unknown (1)
22 = Magic Power (1)
23 = Status Resistances (1)
24 = Monster Type (1)
25-56 = Unknown (?)
- Fonts
3D8CC0 = menu font (view in VisualBoy graphics mode with 1 tile width in any tile editor)
There are a total of 3 fonts the menu font is the third. The font uses some kind of odd format with width and overlapping tiles that we haven't 100% figured out yet.