Expanding Names and Renaming
[Incomplete!]
I will use this thread to share information to those who wish to have a guide to hex hacking - specifically to do the task of renaming spells, esper names, attacks, lores, and items, among other things. I've always been bothered by the translation of spells, espers and everything else in the game, but it wasn't until this summer that I decided to learn hex myself and start doing these changes after seeing metroidquest's hack "the eternal crystals". Though I'm far from finished, I believe people should have easy access to this data.
Helpful information:
--Final Fantasy 6 Banks (Some information as of the location of the data you need is located here: )
http://slickproductions.org/docs.php?id=FF6
Before I start, please keep the following detail in mind:
1- If you wish to edit something IN BATTLE, then you'd best look for the disassembly banks "C1" and "C2", as the battle data is contained in these files.
2 - If you wish to edit something in the MENUS, then look for the disassembly bank "C3".
This means that the game is accessing data for battles and menus from one address.
1 - Magic Spells in the game
In Menu:
C3/4FA1: A20300 LDX #$0003 (X position of left half of spells)
C3/4FAC: A21000 LDX #$0010 (X position of right half of spells)
C3/4FB5: A00700 LDY #$0007 (spell letter length)
C3/4FBA: A067F5 LDY #$F567 (spell name address)
C3/4FBF: A9E6 LDA #$E6 (spell name bank)
C3/5052: A2929E LDX #$9E92 (position of spell progress)
C3/5AF9: A2929E LDX #$9E92 (space between spell name and ':')
C3/87CB: AE3421 LDX $2134
In Battle:
C1/601A: A907 LDA #$07 (7 = spell name length)
C1/6031: BF68F5E6 LDA $E6F568,X (Load Spell name X)
C1/65E8: A907 LDA #$07 (from C1/65AA)(7 = spell name length)
C1/65F3: BF67F5E6 LDA $E6F567,X (Load Spell name X)
C1/6B1D: A907 LDA #$07
C1/6B2E: BF67F5E6 LDA $E6F567,X (Load spell name X)
In simpler words, the "address" E6 F5 67 contains the spell names in the ROM (that is, using the HIROM notation).
Spells are limited to 7 characters, including the icon that specifies whether it's a healing, attack or support spell. So if you'd like to expand the spell names in battle, for example, to 10 characters, you would need to replace the "07" bytes in the C1 bank (addresses C1/601A, C1/65E8 and C1/6B1D) to "0A".
When increasing the number of characters from 7 to 10 in the example, you will run into a problem: you will see that to successfully rename the spells you will need to overwrite some data from other parts of the game, which will in turn screw up your ROM. You will need to make some space in your ROM to create the new spell names.
That is where the addresses C1/6031 , C1/65F3 , and C1/6B2E come into play. When you create the new spell names, you will need to "tell the ROM" to "look for the new spell names" in the address you've created them. If the spell data is created at "F0 11 03", then I would need to change the three locations above mentioned from the old address to "F0 11 03".
2 - Lore Names:
In Menu:
C3/525D: A20300 LDX #$0003 (Starting position of Lore list in menu)
C3/5266: A00A00 LDY #$000A (lore name length)
C3/526B: A0FDF9 LDY #$F9FD (lore name address)
C3/5270: A9E6 LDA #$E6 (lore name bank)
C3/5295: A2959E LDX #$9E95 (position of ... in lore menu)
C3/5C91: B7818BA8AB9E00 (position of and word "Lore")
In Battle:
C1/6665: A90A LDA #$0A (from C1/665E)(10 = lore name length)
C1/6670: BFFDF9E6 LDA $E6F9FD,X (Load Lore name X)
Lore Names are 10 characters long (both in battle and in the menu). You will need to create the new lore names in a new address and tell the rom to look for the new names.
3 -Esper Names:
In MENU:
C3/34F4: A00800 LDY #$0008 (esper name length)
C3/34F7: BFE1F6E6 LDA $E6F6E1,X (Load Esper name)
C3/34F0: 0A ASL A
C3/34F1: 0A ASL A
C3/34F2: 0A ASL A
C3/3508: A00800 LDY #$0008
C3/54E6: A20300 LDX #$0003 (X position of left half of espers)
C3/54F1: A21100 LDX #$0011 (X position of right half of espers)
C3/54FA: A00800 LDY #$0008 (esper name length)
C3/54FF: A0E1F6 LDY #$F6E1 (esper name address)
C3/5504: A9E6 LDA #$E6 (esper name bank)
C3/5539: A2939E LDX #$9E93
C3/555D: A00C00 LDY #$000C (esper name is 8 letters, 1 for space, 3 more for MP cost)
C3/59BD: 0A ASL A
C3/59BE: 0A ASL A
C3/59BF: 0A ASL A
C3/59C0: AA TAX
C3/59C1: A00800 LDY #$0008 (Indirectly says below is 8 chars long)
C3/59C4: BFE1F6E6 LDA $E6F6E1,X (Load Esper X's name)
In BATTLE:
C1/5FF3: A908 LDA #$08 (8 = Esper name length)
C1/6007: BFE1F6E6 LDA $E6F6E1,X (Load Esper name X)
C1/65D0: A908 LDA #$08 (8 = Esper name length)
C1/65DB: BFE1F6E6 LDA $E6F6E1,X (Load Esper name X)
C1/668D: A908 LDA #$08 (from C1/6686)(Sets name length?)
C1/6698: BFE1F6E6 LDA $E6F6E1,X (Loads Esper name X)
C2/E091: 04 03 TSB $03 (Change the 04 bit)
For esper names, the easy part comes in editing the names in battle.
4- Item Names
In Menu:
C3/2714: A90D LDA #$0D (13 = item name length)
C3/271F: BF00B3D2 LDA $D2B300,X (Get letter at D2B300 + (index * 13) of item name)
C3/80D4: A90D LDA #$0D
C3/80DF: A00D00 LDY #$000D (Start the count of letters at 13)
C3/80E2: BF00B3D2 LDA $D2B300,X (Load letter X of item name)
C3/85BC: BF348DC3 LDA $C38D34,X (grab " can be used by:")
C3/85C7: C01100 CPY #$0011 (length of " can be used by:" ??)
C3/85CE: E00D00 CPX #$000D (at most, uses the full item name length before putting in "can be used by:")
C3/900D: A00D00 LDY #$000D
C3/9010: BF00B3D2 LDA $D2B300,X (load item X name)
C3/901F: A00D00 LDY #$000D (item name length)
C3/9D3D: A00D00 LDY #$000D (in equip screen, when manually equipping)
C3/9D40: BF00B3D2 LDA $D2B300,X (item name)
C3/9D4F: A00D00 LDY #$000D (write 13 blank spaces)
C3/C07D: A90D LDA #$0D
C3/C088: A00D00 LDY #$000D (item name length in shops)
C3/C08B: BF00B3D2 LDA $D2B300,X (item name)
C3/80ED: A9C1 LDA #$C1 (colon in the font)
C3/80F6: A01000 LDY #$0010 (blank out item name, colon, and quantity)
C3/93FF: A21B7A LDX #$7A1B (position of the R-hand slot)
C3/9411: A29B7A LDX #$7A9B (position of the L-hand slot)
C3/9451: A21B7B LDX #$7B1B (accessory, slot 1)
C3/945F: A29B7B LDX #$7B9B (accessory, slot 2)
In Battle:
C1/6052: A90D LDA #$0D (13 = item name length)
C1/6069: BF01B3D2 LDA $D2B301,X (Load item name X)
C1/6527: A90D LDA #$0D (13 = item name length)
C1/6530: BF00B3D2 LDA $D2B300,X (Loads Item name X)
C1/653D: A907 LDA #$07
C1/654B: BF006FD2 LDA $D26F00,X (Loads Weapon/Armor type word X)
C1/6561: A90D LDA #$0D
C1/6568: A90D LDA #$0D
C1/6574: A90D LDA #$0D (13 = item name length)
C1/6578: BF00B3D2 LDA $D2B300,X (Loads Item name X)
C1/6A47: A90D LDA #$0D (13 = item name length)
C1/6A58: BF00B3D2 LDA $D2B300,X (Loads Item name X)
C1/6A91: A90D LDA #$0D (13 = item name length)
C1/6AA2: BF00B3D2 LDA $D2B300,X (Loads Item name X)
I will use this thread to share information to those who wish to have a guide to hex hacking - specifically to do the task of renaming spells, esper names, attacks, lores, and items, among other things. I've always been bothered by the translation of spells, espers and everything else in the game, but it wasn't until this summer that I decided to learn hex myself and start doing these changes after seeing metroidquest's hack "the eternal crystals". Though I'm far from finished, I believe people should have easy access to this data.
Helpful information:
--Final Fantasy 6 Banks (Some information as of the location of the data you need is located here: )
http://slickproductions.org/docs.php?id=FF6
Before I start, please keep the following detail in mind:
1- If you wish to edit something IN BATTLE, then you'd best look for the disassembly banks "C1" and "C2", as the battle data is contained in these files.
2 - If you wish to edit something in the MENUS, then look for the disassembly bank "C3".
This means that the game is accessing data for battles and menus from one address.
1 - Magic Spells in the game
In Menu:
C3/4FA1: A20300 LDX #$0003 (X position of left half of spells)
C3/4FAC: A21000 LDX #$0010 (X position of right half of spells)
C3/4FB5: A00700 LDY #$0007 (spell letter length)
C3/4FBA: A067F5 LDY #$F567 (spell name address)
C3/4FBF: A9E6 LDA #$E6 (spell name bank)
C3/5052: A2929E LDX #$9E92 (position of spell progress)
C3/5AF9: A2929E LDX #$9E92 (space between spell name and ':')
C3/87CB: AE3421 LDX $2134
In Battle:
C1/601A: A907 LDA #$07 (7 = spell name length)
C1/6031: BF68F5E6 LDA $E6F568,X (Load Spell name X)
C1/65E8: A907 LDA #$07 (from C1/65AA)(7 = spell name length)
C1/65F3: BF67F5E6 LDA $E6F567,X (Load Spell name X)
C1/6B1D: A907 LDA #$07
C1/6B2E: BF67F5E6 LDA $E6F567,X (Load spell name X)
In simpler words, the "address" E6 F5 67 contains the spell names in the ROM (that is, using the HIROM notation).
Spells are limited to 7 characters, including the icon that specifies whether it's a healing, attack or support spell. So if you'd like to expand the spell names in battle, for example, to 10 characters, you would need to replace the "07" bytes in the C1 bank (addresses C1/601A, C1/65E8 and C1/6B1D) to "0A".
When increasing the number of characters from 7 to 10 in the example, you will run into a problem: you will see that to successfully rename the spells you will need to overwrite some data from other parts of the game, which will in turn screw up your ROM. You will need to make some space in your ROM to create the new spell names.
That is where the addresses C1/6031 , C1/65F3 , and C1/6B2E come into play. When you create the new spell names, you will need to "tell the ROM" to "look for the new spell names" in the address you've created them. If the spell data is created at "F0 11 03", then I would need to change the three locations above mentioned from the old address to "F0 11 03".
2 - Lore Names:
In Menu:
C3/525D: A20300 LDX #$0003 (Starting position of Lore list in menu)
C3/5266: A00A00 LDY #$000A (lore name length)
C3/526B: A0FDF9 LDY #$F9FD (lore name address)
C3/5270: A9E6 LDA #$E6 (lore name bank)
C3/5295: A2959E LDX #$9E95 (position of ... in lore menu)
C3/5C91: B7818BA8AB9E00 (position of and word "Lore")
In Battle:
C1/6665: A90A LDA #$0A (from C1/665E)(10 = lore name length)
C1/6670: BFFDF9E6 LDA $E6F9FD,X (Load Lore name X)
Lore Names are 10 characters long (both in battle and in the menu). You will need to create the new lore names in a new address and tell the rom to look for the new names.
3 -Esper Names:
In MENU:
C3/34F4: A00800 LDY #$0008 (esper name length)
C3/34F7: BFE1F6E6 LDA $E6F6E1,X (Load Esper name)
C3/34F0: 0A ASL A
C3/34F1: 0A ASL A
C3/34F2: 0A ASL A
C3/3508: A00800 LDY #$0008
C3/54E6: A20300 LDX #$0003 (X position of left half of espers)
C3/54F1: A21100 LDX #$0011 (X position of right half of espers)
C3/54FA: A00800 LDY #$0008 (esper name length)
C3/54FF: A0E1F6 LDY #$F6E1 (esper name address)
C3/5504: A9E6 LDA #$E6 (esper name bank)
C3/5539: A2939E LDX #$9E93
C3/555D: A00C00 LDY #$000C (esper name is 8 letters, 1 for space, 3 more for MP cost)
C3/59BD: 0A ASL A
C3/59BE: 0A ASL A
C3/59BF: 0A ASL A
C3/59C0: AA TAX
C3/59C1: A00800 LDY #$0008 (Indirectly says below is 8 chars long)
C3/59C4: BFE1F6E6 LDA $E6F6E1,X (Load Esper X's name)
In BATTLE:
C1/5FF3: A908 LDA #$08 (8 = Esper name length)
C1/6007: BFE1F6E6 LDA $E6F6E1,X (Load Esper name X)
C1/65D0: A908 LDA #$08 (8 = Esper name length)
C1/65DB: BFE1F6E6 LDA $E6F6E1,X (Load Esper name X)
C1/668D: A908 LDA #$08 (from C1/6686)(Sets name length?)
C1/6698: BFE1F6E6 LDA $E6F6E1,X (Loads Esper name X)
C2/E091: 04 03 TSB $03 (Change the 04 bit)
For esper names, the easy part comes in editing the names in battle.
4- Item Names
In Menu:
C3/2714: A90D LDA #$0D (13 = item name length)
C3/271F: BF00B3D2 LDA $D2B300,X (Get letter at D2B300 + (index * 13) of item name)
C3/80D4: A90D LDA #$0D
C3/80DF: A00D00 LDY #$000D (Start the count of letters at 13)
C3/80E2: BF00B3D2 LDA $D2B300,X (Load letter X of item name)
C3/85BC: BF348DC3 LDA $C38D34,X (grab " can be used by:")
C3/85C7: C01100 CPY #$0011 (length of " can be used by:" ??)
C3/85CE: E00D00 CPX #$000D (at most, uses the full item name length before putting in "can be used by:")
C3/900D: A00D00 LDY #$000D
C3/9010: BF00B3D2 LDA $D2B300,X (load item X name)
C3/901F: A00D00 LDY #$000D (item name length)
C3/9D3D: A00D00 LDY #$000D (in equip screen, when manually equipping)
C3/9D40: BF00B3D2 LDA $D2B300,X (item name)
C3/9D4F: A00D00 LDY #$000D (write 13 blank spaces)
C3/C07D: A90D LDA #$0D
C3/C088: A00D00 LDY #$000D (item name length in shops)
C3/C08B: BF00B3D2 LDA $D2B300,X (item name)
C3/80ED: A9C1 LDA #$C1 (colon in the font)
C3/80F6: A01000 LDY #$0010 (blank out item name, colon, and quantity)
C3/93FF: A21B7A LDX #$7A1B (position of the R-hand slot)
C3/9411: A29B7A LDX #$7A9B (position of the L-hand slot)
C3/9451: A21B7B LDX #$7B1B (accessory, slot 1)
C3/945F: A29B7B LDX #$7B9B (accessory, slot 2)
In Battle:
C1/6052: A90D LDA #$0D (13 = item name length)
C1/6069: BF01B3D2 LDA $D2B301,X (Load item name X)
C1/6527: A90D LDA #$0D (13 = item name length)
C1/6530: BF00B3D2 LDA $D2B300,X (Loads Item name X)
C1/653D: A907 LDA #$07
C1/654B: BF006FD2 LDA $D26F00,X (Loads Weapon/Armor type word X)
C1/6561: A90D LDA #$0D
C1/6568: A90D LDA #$0D
C1/6574: A90D LDA #$0D (13 = item name length)
C1/6578: BF00B3D2 LDA $D2B300,X (Loads Item name X)
C1/6A47: A90D LDA #$0D (13 = item name length)
C1/6A58: BF00B3D2 LDA $D2B300,X (Loads Item name X)
C1/6A91: A90D LDA #$0D (13 = item name length)
C1/6AA2: BF00B3D2 LDA $D2B300,X (Loads Item name X)
10-12-2010, 10:11 AM
hey I've been meaning to tell u, I spoke with Lord J about your findings and if u are able to finish (char names, spell names, esper names etc.) he is going to make his new editor compatible with those changes, as well as apply a patch within his editor to add these changes as well (he will obviously give u the credit seeing as how I gave him your name lolz)
"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"
-HNIC
10-12-2010, 11:51 PM
My progress is:
Spell Names - 100% Menu, 100% Battle
Esper Names - 80% Menu, 95% Battle - Problems in displaying correct esper names in menu and status window. In battle, found a glitch for MP display after the esper's name.
Esper Attack Names - 100% Battle
Dance - 100% Battle, 100% Menu
Magitek Attacks - 100% Battle
Lore Names - 100% Battle, 100% Menu
Item Names - 95% Battle, 0% Menu - There's a glitch in battle that omits the first three letters of a weapon and I'm not sure how to fix. This distorts the Tools names as well.
Enemy Attacks - 100% Battle
But thanks a lot for doing that first step! Maybe I can contact Lord J now, but you must get some credit as well as you went ahead and told him about the improvements I'm working on.
I wasn't thinking about editing the character's names, mainly because I doubt they will fit in battle (they may go out of the borders). That may cause problems in the menu (main window and status window) as well. I may give it a try sometime (maybe that way we can play as "orthros").
Spell Names - 100% Menu, 100% Battle
Esper Names - 80% Menu, 95% Battle - Problems in displaying correct esper names in menu and status window. In battle, found a glitch for MP display after the esper's name.
Esper Attack Names - 100% Battle
Dance - 100% Battle, 100% Menu
Magitek Attacks - 100% Battle
Lore Names - 100% Battle, 100% Menu
Item Names - 95% Battle, 0% Menu - There's a glitch in battle that omits the first three letters of a weapon and I'm not sure how to fix. This distorts the Tools names as well.
Enemy Attacks - 100% Battle
But thanks a lot for doing that first step! Maybe I can contact Lord J now, but you must get some credit as well as you went ahead and told him about the improvements I'm working on.
I wasn't thinking about editing the character's names, mainly because I doubt they will fit in battle (they may go out of the borders). That may cause problems in the menu (main window and status window) as well. I may give it a try sometime (maybe that way we can play as "orthros").
10-13-2010, 10:46 AM
actually the minimum letters 4 a character's name without it going over the menu is 8 or 9 (I think 9 but some1 else said 8)
but it can be fixed, Metroid Quest and the Pandora's Box team know how to go about it
but there is nothing wrong with sending them a PM and showing them what u got
MQ however does not seem to like to share his knowledge like that (I could be wrong but I just haven't seen it like that)
but it can be fixed, Metroid Quest and the Pandora's Box team know how to go about it
but there is nothing wrong with sending them a PM and showing them what u got
MQ however does not seem to like to share his knowledge like that (I could be wrong but I just haven't seen it like that)
"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"
-HNIC
10-14-2010, 10:17 PM
Heh, I agree that MQ does not reveal his findings at all. He will only hints to what you should do next, but finding the data is up to you.
11-09-2010, 03:46 AM
Poco, I wonder if you could move this thread to hex editing? I lost the file where I documented all the findings and i for sure don't wanna lose this thread
11-09-2010, 03:47 AM
np man consider it moved, srry that u guys cant post it up there yet, the site is under construction
"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"
-HNIC
11-09-2010, 04:07 AM
Thanks Thanks bro
11-09-2010, 04:12 AM
np man :p
"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"
-HNIC
(10-13-2010, 10:46 AM)Poco Loco Wrote: actually the minimum letters 4 a character's name without it going over the menu is 8 or 9 (I think 9 but some1 else said 8)
but it can be fixed, Metroid Quest and the Pandora's Box team know how to go about it
but there is nothing wrong with sending them a PM and showing them what u got
MQ however does not seem to like to share his knowledge like that (I could be wrong but I just haven't seen it like that)
I saw that on Pandora's Box the actor names are up to 8-9 letters long:
http://www.youtube.com/watch?v=HYIUWCKGe...re=related
But in battle the names are cut off to 6 letters:
http://www.youtube.com/watch?v=lY7qfHaH_Hc
That should be interesting, I'll take a look at it in these days.
Poco, for the summon command in the improvement patch, if you go to the address
C2/4E49 00
and replace 00 by 02 you'll fix the aiming problems with the summon command (and it works properly). The only problem is that the command is enabled even when you have no espers equipped, I'm taking a second look at the fix lenophis made to make it compatible with the improvement patch.
« Next Oldest | Next Newest »
Users browsing this thread: 1 Guest(s)