Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Final Fantasy/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Final Fantasy.


Intro Values

  • 0x37F30 to 0x38000 (00D0) = Intro text, #$00 ends text
  • 0x3A12C to 0x----- (0001) = Intro text background color, original value = #$01
  • 0x3A2E3 to 0x----- (0001) = Text 'default' color after flicker, returns to this color
  • 0x3A2B8 to 0x----- (0001) = Text color that the above flicker math routine is applied to
  • 0x3A2C8 to 0x----- (0001) = Intro fade-in speed. Lower = fast & higher = slower, original value = #$0F
  • 0x3EB40 to 0x----- (0001) = Text color after flicker effect has been applied on text line
  • 0x3EB48 to 0x----- (0001) = Text 'color number 02' after flicker effect

Game Selecting Values

  • 0x3A263 - 0x3A281 (001F) = New Game/Continue/Respond Rate text
  • 0x384B8 - 0x384C7 (0010) = Copyright (for Square and Nintendo) text
  • 0x36843 - 0x36843 (0010) = Copyright (for Square and Nintendo) text

Starting Items

For Tents/Cabins/Houses and the Potions, the number given is the amount of them with which you start (eg., to start with 10 heal potions, set the byte at $3049 to $0A). For the rest, supply any non-zero value to start with that item.

  • 0x3026 to 0x----- (0001) = Sets off bridge scene prematurarly when game starts
  • 0x3031 to 0x----- (0001) = Lute
  • 0x3032 to 0x----- (0001) = Crown
  • 0x3033 to 0x----- (0001) = Crystal
  • 0x3034 to 0x----- (0001) = Herb
  • 0x3035 to 0x----- (0001) = Mystic Key
  • 0x3036 to 0x----- (0001) = TNT
  • 0x3037 to 0x----- (0001) = Adamant
  • 0x3038 to 0x----- (0001) = Slab
  • 0x3039 to 0x----- (0001) = Ruby
  • 0x303A to 0x----- (0001) = Rod
  • 0x303B to 0x----- (0001) = Floater
  • 0x303C to 0x----- (0001) = Chime
  • 0x303D to 0x----- (0001) = Tail
  • 0x303E to 0x----- (0001) = Cube
  • 0x303F to 0x----- (0001) = Bottle
  • 0x3040 to 0x----- (0001) = Oxyale
  • 0x3041 to 0x----- (0001) = Canoe appears on items screen (not working Canoe)
  • 0x3042 to 0x----- (0001) = Orb 1
  • 0x3043 to 0x----- (0001) = Orb 2
  • 0x3044 to 0x----- (0001) = Orb 3
  • 0x3045 to 0x----- (0001) = Orb 4
  • 0x3046 to 0x----- (0001) = Tents
  • 0x3047 to 0x----- (0001) = Cabins
  • 0x3048 to 0x----- (0001) = Houses
  • 0x3049 to 0x----- (0001) = Heal Potions
  • 0x304A to 0x----- (0001) = Pure Potions
  • 0x304B to 0x----- (0001) = Soft Potions

Starting Stats

There are 11 bytes for each character. 5 bytes with the value of "00" are used to seperate each character. It is currently unknown what the 11th byte is used for. Bytes are ordered as follows: Fighter, Thief, Black Belt, Red Mage, White Mage, Black Mage.

  • 0x3050 to 0x----- (0001) = Fighter's Listing Byte (normally 00)
  • 0x3051 to 0x----- (0001) = Fighter's Starting HP (normally 23)
  • 0x3052 to 0x----- (0001) = Fighter's Starting Strength (normally 14)
  • 0x3053 to 0x----- (0001) = Fighter's Starting Agility (normally 05)
  • 0x3054 to 0x----- (0001) = Fighter's Starting Intellect (normally 01)
  • 0x3055 to 0x----- (0001) = Fighter's Starting Vitality (normally 0A)
  • 0x3056 to 0x----- (0001) = Fighter's Starting Luck (normally 05)
  • 0x3057 to 0x----- (0001) = Fighter's Starting Damage (normally 0A)
  • 0x3058 to 0x----- (0001) = Fighter's Starting Hit% (normally 0A)
  • 0x3059 to 0x----- (0001) = Fighter's Starting Evade% (normally 35)

  • 0x3060 to 0x----- (0001) = Thief's Listing Byte (normally 01)
  • 0x3061 to 0x----- (0001) = Thief's Starting HP (normally 1E)

Main Menu Hand Cursor Data

  • 0x3B636 to 0x----- (0001) = X position of Character4 Sprite
  • 0x3B64A to 0x----- (0001) = Y position of Character4 Sprite
  • 0x3B8AC to 0x----- (0001) = X position of ORB 1
  • 0x3B8AE to 0x----- (0001) = Y position of ORB 1
  • 0x3B7E9 to 0x----- (0001) = X position of Character1 Hand Cursor
  • 0x3B7EA to 0x----- (0001) = Y position of Character1 Hand Cursor
  • 0x3B7EB to 0x----- (0001) = X position of Character2 Hand Cursor
  • 0x3B7EC to 0x----- (0001) = Y position of Character2 Hand Cursor
  • 0x3B7ED to 0x----- (0001) = X position of Character3 Hand Cursor
  • 0x3B7EE to 0x----- (0001) = Y position of Character3 Hand Cursor
  • 0x3B7EF to 0x----- (0001) = X position of Character4 Hand Cursor
  • 0x3B7F0 to 0x----- (0001) = Y position of Character4 Hand Cursor
  • 0x3B7F1 to 0x----- (0001) = Y position of ITEM Hand Cursor
  • 0x3B7F2 to 0x----- (0001) = Y position of MAGIC Hand Cursor
  • 0x3B7F3 to 0x----- (0001) = Y position of WEAPON Hand Cursor
  • 0x3B7F4 to 0x----- (0001) = Y position of STATUS Hand Cursor

Default Character Screen Data

  • 0x3A0C4 to 0x----- (0001) = X position of 4 letter name
  • 0x3A0C5 to 0x----- (0001) = Y position of 4 letter name
  • 0x3A0C6 to 0x----- (0001) = X position of Class Title
  • 0x3A0C7 to 0x----- (0001) = Y position of Class Title
  • 0x3A0C8 to 0x----- (0001) = X position of Character Sprite
  • 0x3A0C9 to 0x----- (0001) = Y position of Character Sprite
  • 0x3A0CA to 0x----- (0001) = X position of Background Window
  • 0x3A0CB to 0x----- (0001) = Y position of Background Window
  • 0x3A0CC to 0x----- (0001) = X position of Hand Cursor
  • 0x3A0CD to 0x----- (0001) = Y position of Hand Cursor

Random Window Stuff

  • 0x3E0AA to 0x----- (0001) = horizontal spacing between text and left boundary of window
  • 0x3E0B1 to 0x----- (0001) = vertical spacing between text and top boundary of window
  • 0x3E082 to 0x----- (0001) = horizontal window border subtraction
  • 0x3E089 to 0x----- (0001) = vertical window border subtraction

Battle Values

  • 0x31751 to 0x----- (0001) = all characters default sprite staring X coordinates
  • 0x3175F to 0x----- (0001) = character 1 default sprite Y coordinate
  • 0x31764 to 0x----- (0001) = character 2 default sprite Y coordinate
  • 0x31769 to 0x----- (0001) = character 3 default sprite Y coordinate
  • 0x3176E to 0x----- (0001) = character 4 default sprite Y coordinate
  • 0x3E0C8 to 0x----- (0001) = where (on name table) to load left window tile, original vaue $FA
  • 0x3E0CD to 0x----- (0001) = where (on name table) to load background tile, original vaue $FF
  • 0x3E0D5 to 0x----- (0001) = where (on name table) to load right tile, original vaue $FB
  • 0x3E11F to 0x----- (0001) = where (on name table) to load upper-left tile, original vaue $F7
  • 0x3E124 to 0x----- (0001) = where (on name table) to load top tile, original vaue $F8
  • 0x3E12C to 0x----- (0001) = where (on name table) to load upper-right tile, original vaue $F9
  • 0x3F2F5 to 0x----- (0001) = main battle border X & Y position
  • 0x3F2FA to 0x----- (0001) = main battle border Width (should not be below 3)
  • 0x3F2FC to 0x----- (0001) = main battle border Height (should not be below 3)
  • 0x3F301 to 0x----- (0001) = character battle border X position
  • 0x3F306 to 0x----- (0001) = character battle border Y position
  • 0x3F308 to 0x----- (0001) = character battle border Width
  • 0x3F30A to 0x----- (0001) = character battle border Height
  • 0x3F3E0 to 0x----- (0001) = stat battle width for all 4 stat windows
  • 0x3F30F to 0x----- (0001) = stat battle x position for all 4 stat windows
  • 0x3F311 to 0x----- (0001) = stat battle window 4 y position
  • 0x3F316 to 0x----- (0001) = stat battle window 3 y position
  • 0x3F31B to 0x----- (0001) = stat battle window 2 y position
  • 0x3F320 to 0x----- (0001) = stat battle window 1 y position
  • 0x3F355 to 0x----- (00010 = row 1 BG x position
  • 0x3F39D to 0x----- (0001) = how many tiles the first section of the BG should draw
  • 0x3F3AA to 0x----- (0001) = how many tiles the second section of the BG should draw
  • 0x3F35D to 0x----- (0001) = row 1 BG environment tile set (00,04,08,0C)
  • 0x3F364 to 0x----- (0001) = row 2 BG environment tile set (00,04,08,0C)
  • 0x3F36B to 0x----- (0001) = row 3 BG environment tile set (00,04,08,0C)
  • 0x3F372 to 0x----- (0001) = row 4 BG environment tile set (00,04,08,0C)
  • 0x3F410 to 0x3F44F (0040) = Battle Screen Attribute Data
  • 0x3F9F5 to 0x----- (0001) = Enemy window X coordinate
  • 0x3F9F6 to 0x----- (0001) = Enemy window Y coordinate
  • 0x3F9F7 to 0x----- (0001) = Enemy window Width
  • 0x3F9F8 to 0x----- (0001) = Enemy window Height
  • 0x3F9FA to 0x----- (0001) = current Attacker window X coordinate
  • 0x3F9FB to 0x----- (0001) = current Attacker window Y coordinate
  • 0x3F9FC to 0x----- (0001) = current Attacker window Width
  • 0x3F9FD to 0x----- (0001) = current Attacker window Height
  • 0x3F9FF to 0x----- (0001) = current Attacker text X coordinate
  • 0x3FA00 to 0x----- (0001) = current Attacker text Y coordinate
  • 0x3FA02 to 0x----- (0001) = hit number window X coordinate
  • 0x3FA03 to 0x----- (0001) = hit number window Y coordinate
  • 0x3FA04 to 0x----- (0001) = hit number window Width
  • 0x3FA05 to 0x----- (0001) = hit number window Height
  • 0x3FA07 to 0x----- (0001) = hit number text X coordinate
  • 0x3FA08 to 0x----- (0001) = hit number text Y coordinate
  • 0x3FA0A to 0x----- (0001) = current Attackee window X coordinate
  • 0x3FA0B to 0x----- (0001) = current Attackee window Y coordinate
  • 0x3FA0C to 0x----- (0001) = current Attackee window Width
  • 0x3FA0D to 0x----- (0001) = current Attackee window Height
  • 0x3FA0F to 0x----- (0001) = current Attackee text X coordinate
  • 0x3FA10 to 0x----- (0001) = current Attackee text Y coordinate
  • 0x3FA12 to 0x----- (0001) = Attack Status window X coordinate
  • 0x3FA13 to 0x----- (0001) = Attack Status window Y coordinate
  • 0x3FA14 to 0x----- (0001) = Attack Status window Width
  • 0x3FA15 to 0x----- (0001) = Attack Status window Height
  • 0x3FA17 to 0x----- (0001) = Attack Status text X coordinate
  • 0x3FA18 to 0x----- (0001) = Attack Status text Y coordinate
  • 0x3FA1A to 0x----- (0001) = Battle Info window X coordinate
  • 0x3FA1B to 0x----- (0001) = Battle Info window Y coordinate
  • 0x3FA1C to 0x----- (0001) = Battle Info window Width
  • 0x3FA1D to 0x----- (0001) = Battle Info window Height
  • 0x3FA1F to 0x----- (0001) = Battle Info text X coordinate
  • 0x3FA20 to 0x----- (0001) = Battle Info text Y coordinate
  • 0x3FA22 to 0x----- (0001) = Magic window X coordinate
  • 0x3FA23 to 0x----- (0001) = Magic window Y coordinate
  • 0x3FA24 to 0x----- (0001) = Magic window Width
  • 0x3FA25 to 0x----- (0001) = Magic window Height
  • 0x3FA27 to 0x----- (0001) = Drink window X coordinate
  • 0x3FA28 to 0x----- (0001) = Drink window Y coordinate
  • 0x3FA29 to 0x----- (0001) = Drink window Width
  • 0x3FA2A to 0x----- (0001) = Drink window Height
  • 0x3FA2C to 0x----- (0001) = Battle options window X coordinate
  • 0x3FA2D to 0x----- (0001) = Battle options window Y coordinate
  • 0x3FA2E to 0x----- (0001) = Battle options window Width
  • 0x3FA2F to 0x----- (0001) = Battle options window Height
  • 0x3FA31 to 0x----- (0001) = "FIGHT" battle X coordinate
  • 0x3FA32 to 0x----- (0001) = "FIGHT" battle Y coordinate
  • 0x3FA33 to 0x----- (0001) = Text pointer byte (Low)
  • 0x3FA34 to 0x----- (0001) = Text pointer byte (High)
  • 0x3FA36 to 0x----- (0001) = "MAGIC" battle X coordinate
  • 0x3FA37 to 0x----- (0001) = "MAGIC" battle Y coordinate
  • 0x3FA38 to 0x----- (0001) = Text pointer byte (Low)
  • 0x3FA39 to 0x----- (0001) = Text pointer byte (High)
  • 0x3FA3B to 0x----- (0001) = "DRINK" battle X coordinate
  • 0x3FA3C to 0x----- (0001) = "DRINK" battle Y coordinate
  • 0x3FA3D to 0x----- (0001) = Text pointer byte (Low)
  • 0x3FA3E to 0x----- (0001) = Text pointer byte (High)
  • 0x3FA40 to 0x----- (0001) = "ITEM" battle X coordinate
  • 0x3FA41 to 0x----- (0001) = "ITEM" battle Y coordinate
  • 0x3FA42 to 0x----- (0001) = Text pointer byte (Low)
  • 0x3FA43 to 0x----- (0001) = Text pointer byte (High)
  • 0x3FA45 to 0x----- (0001) = "RUN" battle X coordinate
  • 0x3FA46 to 0x----- (0001) = "RUN" battle Y coordinate
  • 0x3FA47 to 0x----- (0001) = Text pointer byte (Low)
  • 0x3FA48 to 0x----- (0001) = Text pointer byte (High)
  • 0x3FA49 to 0x----- (0001) = Pattern table location for "FIGHT" tiles (through 3FA4C)
  • 0x3FA4E to 0x----- (0001) = Pattern table location for "MAGIC" tiles (through 3FA51)
  • 0x3FA53 to 0x----- (0001) = Pattern table location for "DRINK" tiles (through 3FA56)
  • 0x3FA58 to 0x----- (0001) = Pattern table location for "ITEM" tiles (through 3FA5B)
  • 0x3FA5D to 0x----- (0001) = Pattern table location for "RUN" tiles (through 3FA5F)
  • 0x3FA61 to 0x----- (0001) = value for which string to display in Enemy name slot 1
  • 0x3FA63 to 0x----- (0001) = value for which string to display in Enemy name slot 2
  • 0x3FA65 to 0x----- (0001) = value for which string to display in Enemy name slot 3
  • 0x3FA67 to 0x----- (0001) = value for which string to display in Enemy name slot 4

World map data

See Final Fantasy I:World map data.