Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Final Fantasy IX: Engine modification

Coders and would-be coders alike, this is the place to talk about programming.
Post Reply
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Final Fantasy IX: Engine modification

Post by Albeoris »

A new version is available: (09.06.2016)
Git: https://github.com/Albeoris/Memoria
Build: https://yadi.sk/d/FVB-1Qs3rJwnz

Features:
  • Disable/Enable cheats
  • Fast battles (Skip waiting or turn-based)
  • Save/Load anywhere (Alt+F5 / Alt+F9)
  • Edit game data
  • All of characters available
  • Easy rope jumping
  • Change the game font
  • Export text resources
  • Import text resources
Important:
Update the game to the last version first!
Delete Memoria.ini from a previously installation.

Future:
  • Import text resources
  • Export/import graphics resources
  • Exit to main menu
  • Redesign the battle menu
  • Rewrite the game engine
First run:
  • Run game.
  • If there is no error you will see "Memoria.ini" file in the game directory.
  • If something went wrong you will see error in the "Memoria.log"
  • If you not see "Memoria.log" try to run game with administrator rights
  • If you see "Sharing violation on path" then close applications that hold this file
  • If you see "at Memoria.CsvReader.Read" then fix files in the StreamingAssets\Data directory or delete them and patch again.
  • If the error persists see "\FINAL FANTASY IX\x64(or x86)\FF9_Data\output_log.txt"

    Configuration:
    • Close the game
    • Open Memoria.ini via any text editor (notepad for example)
    • Change "Enable" value from 0 to 1.
    • Specify other params
    • Save Memoria.ini
    • Run the game
Feedback, pull requests and issues are welcome.
Last edited by Albeoris on Thu Jun 09, 2016 6:32 pm, edited 11 times in total.
WRS
ultra-veteran
ultra-veteran
Posts: 603
Joined: Fri Nov 06, 2009 12:13 am
Has thanked: 74 times
Been thanked: 137 times

Re: Final Fantasy IX: Engine modification

Post by WRS »

woah cool! i missed the steam sale so haven't bought it yet..... but wanted to tear down their engine too. they're using unity?!?

i loved that tetra master minigame so much :ninja:
Useful tool links:
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Re: Final Fantasy IX: Engine modification

Post by Albeoris »

Yeah. :)
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Re: Final Fantasy IX: Engine modification

Post by Albeoris »

Update. :)
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Re: Final Fantasy IX: Engine modification

Post by Albeoris »

Update:
+ All of characters available
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Final Fantasy IX: Engine modification

Post by lionheartuk »

This is great.

When you mention there are plans to export graphics.
Will that include the walkmesh, as right now I'd like to extract the walkmesh for various scenes, but no tools seem to be able to do this because the walkmesh isn't being rendered, so nothing picks it up.

I would try NinjaRipper on the game, however there seems to be no way to get Ninja Ripper to work with this game at all due to it having the annoying launcher.
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Re: Final Fantasy IX: Engine modification

Post by Albeoris »

lionheartuk wrote:This is great.

When you mention there are plans to export graphics.
Will that include the walkmesh, as right now I'd like to extract the walkmesh for various scenes, but no tools seem to be able to do this because the walkmesh isn't being rendered, so nothing picks it up.

I would try NinjaRipper on the game, however there seems to be no way to get Ninja Ripper to work with this game at all due to it having the annoying launcher.
Unfortunately, I do not know anything about 3D-formats, so I cannot export a walkmesh in a convenient format.

It's just magic words for me:

Code: Select all

public class WalkMeshTriangle
{
  public int floorIdx;
  public int triIdx;
  public Vector3[] originalVertices;
  public Vector3 originalCenter;
  public Vector3[] transformedVertices;
  public Vector3 transformedCenter;
  public Rect transformedRect;
  public float transformedZ;
  public int[] neighborIdx;
  public int cost;
  public int pathCost;
  public WalkMeshTriangle next;
  public WalkMeshTriangle nextListElem;
  public ushort triFlags;
}
If you can write a serializer for WalkMesh I can add it to the Memoria. :)
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Re: Final Fantasy IX: Engine modification

Post by Albeoris »

+ Import text resources
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Final Fantasy IX: Engine modification

Post by lionheartuk »

Albeoris wrote:
lionheartuk wrote:This is great.

When you mention there are plans to export graphics.
Will that include the walkmesh, as right now I'd like to extract the walkmesh for various scenes, but no tools seem to be able to do this because the walkmesh isn't being rendered, so nothing picks it up.

I would try NinjaRipper on the game, however there seems to be no way to get Ninja Ripper to work with this game at all due to it having the annoying launcher.
Unfortunately, I do not know anything about 3D-formats, so I cannot export a walkmesh in a convenient format.

It's just magic words for me:

Code: Select all

public class WalkMeshTriangle
{
  public int floorIdx;
  public int triIdx;
  public Vector3[] originalVertices;
  public Vector3 originalCenter;
  public Vector3[] transformedVertices;
  public Vector3 transformedCenter;
  public Rect transformedRect;
  public float transformedZ;
  public int[] neighborIdx;
  public int cost;
  public int pathCost;
  public WalkMeshTriangle next;
  public WalkMeshTriangle nextListElem;
  public ushort triFlags;
}
If you can write a serializer for WalkMesh I can add it to the Memoria. :)
Unfortunately, much to my chagrin, that isn't my specialty at all. I'd love to help but I've no idea about that side of things myself.
Albeoris
beginner
Posts: 35
Joined: Thu Oct 16, 2014 12:40 am
Been thanked: 16 times

Re: Final Fantasy IX: Engine modification

Post by Albeoris »

Now I can attach debugger to the Final Fantasy IX! ^^
You can do that for the most of Unity games.

Image
Image
Post Reply