Hi there!
I'm working on a Final Fantasy IX modding tool called Hades Workshop. It is aiming to allow to edit most of Final Fantasy IX's content. Quite a big project and I don't know if I will ever decide when it's finished
//============== THE TOOL =================//The features so far:- Can mod Final Fantasy IX PSX files, in .bin format and in any language version,
- Can mod Final Fantasy IX Steam games,
- Read and edit datas about:
--- Spells the party can cast,
--- Supporting abilities the party can use,
--- Commands the party has,
--- Default stats of the party members,
--- Items' features,
--- Items sold in shops,
--- Statistics, attacks and AI of enemies,
--- Tetra Master cards,
--- Text, dialogs and charmap,
--- Game's script,
--- MIPS script and CIL script,
--- Model exporting/importing (exporting Battle Scenes only for PSX, more for Steam),
--- Backgrounds (view only in PSX, view/replace in Steam),
--- Steam resources exporter/importer,
--- Spell animation sequencing,
--- Includes a game Randomizer.
- Works under Windows only (you may recompile the source code I redistribute or use wine under linux).
It may be a good idea to have a look at the help (F2).
Since the version 0.41, Hades Workshop is partly compatible with Albeoris's Memoria Engine Modification tool for the Steam version of the game:
- It can produce .csv files suitable for Memoria's usage,
- It can produce independant asset files and, using the incorporated tool "Unity Assets Viewer", can import those assets into modded archives,
- However, it cannot use Memoria's modded DLL to
read game's data: a backup containing a non-Memoria Assembly-CSharp.dll has to be used as input (the archives, "p0dataX.bin" and other "XXXX.assets" files, can be used to read game's data even if they are modded using Memoria, which makes the use of the Unity Assets Viewer tool non-necessary to do a mod compatible with Memoria).
Credits:I made the program, obviously, but I got helped a lot by your wiki (
http://wiki.qhimm.com/view/FF9) for cluster datas format of the PSX version and by
http://finalfantasy.wikia.com/ occasionally.
Other than that, LandonRay and Zande made quite an useful work in data finding, Zidane_2 wrote most of the other tools about FFIX before me.
The launcher image on has been drawn by Maxa'. You can check his
Deviant-Art page here.
Please tell me if you get any suggestion/bug report/feedback to share.
Here are the download links:HADES WORKSHOPGithub projectThe older versions can be found hereThank you for your attention
//=============== THE MODS =================//Here are some of the mods that were made using this tool by various people. Go see their description for more detailed informations.
Difficulty Tweak (PSX/PC): Made by Iamthehorker, this mod increases the MP cost of the abilities and make the battles tougher. The gameplay itself is preserved, so it really is an increase of difficulty for an augmented playthrough. If you think that the boss battles end too quickly or if you never saw the use of the ethers/elixirs, this mod is a way to go. It also allows Steiner to equip the Save of the Queen in the end-game.
Save The Queen (PSX): A mod made by ThisGuyAreSick2. It allows Steiner to use the allmighty Save The Queen. It also changes the way you synthesize it (it's made in the Black Mage Village in disc 4).
FF9.2.2 (PSX/PC): A mod made by Vir to improve the Perfect Stats challenge balancing. It removes the forced exp battle so a true lvl 1 game can be made. It also fixes the Thunder Slash glitch. Vir also made a
Fixed Stats Mod which removes the primary stat variations from games to games and have a normalized stat progression.
HD Background (PC): This mod made by Fraggoso for the Steam version of the game improves the backgrounds on the field and make it fit more with the upscale of the characters. There is also a
Highres Texture mod, applying the same process to the other textures of the game.
David Bowie Edition (PC): A mod made by Clem Fandango.
Alternate Fantasy (PSX/PC): My own mod. It modifies a bit of everything in the game but mostly change the abilities and the gameplay in battles.
Also, you can find
here the different tiny mods I made over the years.
//============== HELP AND TIPS =================//This topic is now more than 30 pages long. Different people asked for help at different points and I always tried to give a complete answer. You can thus find details in this topic about subtilities of the game, or how a feature of HW works, or how to do some precise thing. Since I don't want everyone to read the whole topic thoroughly, here are links to answers to these kind of questions.
Compatibility with Albeoris's Memoria tool (Steam version)Here is how the compatibility with Memoria works (easiest setting):
SETTING:1) Have both versions of the game, Memoria-modded (MM) and non-Memoria modded (NMM).
2) Copy all the archives from MM into NMM (the archives are the files "p0dataX.bin", "resources.assets", "mainData", "levelX" and "sharedassetsX.assets"). Do
NOT copy the DLLs.
USAGE:3) From that point, always open the NMM version when using Hades Workshop.
4) When saving Steam mods, choose the options "Spreadsheets" and "Unity archives".
5) The archives generated by Hades Workshop then go in the MM folders at the same place as usual; the .csv files go in "StreamingAssets/Data" (which is a folder created by Memoria).
5-bis) When using the Moguri mod, the files inside "StreamingAssets" must be put in the Moguri mod installation folder instead (usually something like "C:\Program Files\Moguri Mod\StreamingAssets") because the Moguri mod duplicates that folder and redirects the game to the duplicate...
With this, all the features of Memoria are kept, even the ones that would possibly be added in the future. The only things that don't survive to these operations are a couple of features of Hades Workshop (from the top of my head: the changes of the enemies' battlegrounds and everything in the CIL code panel).
Very useful informationsA list of spells specially handled by the engineAbout the random encounter rateHow to use "GetRandom" to generate a random number in a rangeDeclaring local and global variables in scriptsBasic example of reading a field scriptDetailed example of adding a cutscene and a hunt sidequestChanging properly the content of a chestTypical NPC dialog scriptAdd a (N)PC on the fieldTriggering conditions of special functions (Main, Loop, Counter, etc.)Helping with the development of HWUsing Field 3D Models for enemies (Steam)Making temporary characters available in the party menu (
Part 1 -
Part 2)
Using the Background Editor (Steam)Properly adding a new enemy to a battle (Steam)Changing the battle music of specific battles (Steam)Making sure that a specific playable character is always in the party (Steam and PSX) + changing Zidane's model on the field (Steam)Modding spell effect: explanation (Steam)Modding Supporting Abilities: HP/MP +X% (Steam)Modding Supporting Abilities: Auto-status and Immunes (Steam)Modding Statuses: changing the tick of Poison/Venom/Regen (Steam)dnSpy: Add a trance to Cinna, Blank, Marcus and/or Beatrix (Steam)dnSpy: Bypass the limit of spells in different commands + separating the temporary/permanent character slots (Steam)dnSpy & Memoria: Add a new music to the game without replacing an existing oneLess but still useful informationsSide effects of Initial/Auto-statusesBypass the enemies' Max HP limitChecking if a character is in the team in-battleEnabling an enemy attack depending on the party statsMake Zorn & Thorn battle more difficultRemoving Dagger's depression effect in-battleAbout Ragtime Mouse quizz and reward scriptUnlocking manually a few of the "Hidden Scenes"Skipping the script that makes Dagger unlearn her summonsMake Mini-Theater Ship obtainable as a key itemRemoving Excalibur II time condition manuallyEnsure that characters enter the party at level 1List of animation IDs and who use themDelay the availability of some chocographsManually extracting a Beatrix mod out of Alternate FantasyHow to mix some of the standard modsA word about background and walkmeshesHW format for text file batchingList of Music IDBug when making a multi-hit spell animation (PSX)Adding custom text font (PSX)Using Memory card saves after modding (PSX)Fixing "The Collector" Tetra Master bug (PSX)Change the initial items + hex-hack to give supporting abilities to Beatrix (PSX)MIPS editing + controlling someone else than Zidane in fields for PSXGrudge's MIPS spell formula (PSX)Adding/Replacing 3D Models - buggy (Steam)Removing (some of) the bubbles appearing when you get close to NPC on SteamRemoving the stat growth of characters (Steam)Modding Magic Stone growth of characters (Steam)Modding the stat growth and upper bound of characters (Steam)Skipping the last two cinematics of the game (Steam)A few informations about Special Effects models and why they are maybe the most difficult thing to mod (
Explanation message -
Explanation video)
dnSpy: fixing a bug with weapons floating mid-air at the start of some battles (Steam)dnSpy: Fixing the descriptions of Carbuncle's and Fenrir's alternate forms (Steam)//================ BONUS =================//Simplified Game ScriptsHere are some scripts of systems or mini-games that are of some interest if you wish to know how the game works in-depth.
FFIX Code FolderHidden dialogsHere are some few interesting secret dialogs, never used in the game.
I've also made a patch to enable some of them in-game:
Hidden Dialogs (PSX)Hidden Dialogs (PC)And a
video showing the patch's content.
Don't hesitate to tell me if you find more unused dialogs: I'll add them to the list ^^
Alexandria [Over the roofs...]Puck “So, Vivi... Is this your first time in Alexandria?”
Vivi “Uh... Um... Yeah. I bought my ticket from a moogle wearing a hat...”
Puck “Bad luck! If I ever find that moogle, I'll hurt him plenty!”
Vivi “Uh... Thanks...”
Puck “Alright! Just a little farther 'til we can see the stage!”
Ruined Prima Vista [Steiner's bitterness][1/3]
Steiner “Those bastards... If they plan to demand a ransom, they're wasting their time. I'll see to it that they receive nothing!”
[2/3]
Steiner “Wretched thieves... I'll see them all hanged!”
[3/3]
Steiner “Those bastards... They will never get away with this!”
Dali's Inn [Do you need a reason to kidnap a princess?]Zidane “Okay, maybe it’s none of my business.”
Zidane “But can’t you at least tell me where you’re going?”
[Later on the cutscene]
Zidane “Oh, it’s only a drag because of Rusty.”
Observatory Mountain [Good and Evil with Grampa Morrid]Steiner “Alexandria, off course! Burmecia started the war, and we lost our king as a result.”
Morrid “Many wars were fought before the Lindblum Airship Revolution.”
Morrid “Alexandria intiated some of the wars against Burmecia. Now, can you tell me who was right or wrong?”
Steiner “I-I am not talking about the past! I am talking about the future!”
Morrid “What will you do if Alexandria starts a war?”
Steiner “When will the cargo ship arrive!?”
Gizamaluke's Grotto [Entering Burmecia]Burmecian Soldier “This is the Gizamaluke's Grotto. It is Burmecia's border.”
Burmecian Soldier “No one is allowed inside without the king's permission.”
Cleyra [Meeting with the King and the High Priest] translated from japanese by luksyFreya “It has been some time, Your Majesty.”
King of Burmecia “Ah, Freya, well met.”
King of Burmecia “The High Priest and I welcome you.”
High Priest of Cleyra “My Lady.”
High Priest of Cleyra “It would appear that this predicament no longer concerns Burmecia alone.”
Freya “I understand, Your Holiness.”
Freya “And yet...”
Freya “I fear my strength alone may not suffice.”
King “Freya...I know what troubles you.”
King “I must apologize for earlier.”
King “Can you ever forgive me?”
King “No! off course you cannot.”
King “But the fate of the people of Burmecia now hangs by but a thread.”
Occupied Lindblum Castle [Reaching Cid]Don't get caught by the enemy!
Jump out when she looks away!
Man “The regent is waiting for you at the Base Level.”
Man “The enemy is busy loading supplies. Go down on the lift, now!”
Man “Once you get on the lift, my comrades will take care of the rest.”
Zidane “So, I just take the lift to the Base Level without getting caught?”
Yeah...
Zidane “Piece o' cake! Leave everything to me.”
Huh?
Is anybody there...?
A tail?
Meeow!
Oh, it's only a cat...
Zidane (Wow, that was a close one.)
Man “(You idiot!)”
Man “Whatever you do, don't get caught!”
Man “What's wrong? The regent is waiting at the Base Level.”
Man “Go now, or you'll get caught!”
Zidane “I gotta run while she's looking away.”
Occupied Lindblum Castle [The Ancient World Map]Regent Cid “That is a national treasure of Lindblum!”
Regent Cid “It was passed down through my ancestors, since the days of the first regent.”
Regent Cid “It was probably made before our continent was covered in the Mist...”
Regent Cid “That is an ancient map of the entire world!”
Alexandria [Balloon Mini-game] translated from french by meGirl “You want to play with us?”
Girl “You've got some time to gather balloons and give them to the boys behind us!”
Girl “You get more time depending on the color of the balloon that you bring.”
Green → 5 more seconds
Yellow → 10 more seconds
Blue → 15 more seconds
Red → 30 more seconds
Girl “All the three of us have a balloon and we are somewhere on the square.”
Girl “Well... Start!”
Boy “X more seconds! You have Y points!”
Final [The 2 worlds' fusion]The Iifa Tree could not be stopped...
Gaia and Terra's fusion
caused global chaos,
destroying many cities and
taking many lives...