• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
March 28, 2024, 05:02:32 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


Question on programing FFT

Started by Asakawa, June 13, 2015, 02:16:36 pm

3lric

Understood, however I think what Xif said here:

Quote
Some people prefer C. Nobody here does though. At least with ASM you will know immediately if your hack is going to fit in your limited amount of space of not.


Is the best answer you are going to get since when it comes to FFT hacking/modding she has a better understanding of how it works than anyone else on the forum.

Fact of the matter is that if you intended to reverse engineer the game, you would more than likely be alone in doing so, as the amount of work wouldn't simply be taxing, but closer to insane. Our intent is not to discourage you, but to provide the facts. I would honestly hate for you to start such an endeavour under the impression that we are a larger community than we are. You clearly are interested in what we do here and so the best way to proceed would be to start jumping in and learning some of this stuff and what it would take to do, which in turn would give you a better understanding and likely answer a lot of your questions in a way that's easier to understand.
  • Modding version: PSX

Darkholme

June 21, 2015, 08:12:20 pm #21 Last Edit: June 22, 2015, 03:55:14 pm by Darkholme
Quote from: Asakawa on June 21, 2015, 01:44:40 am
I asked but have not received the answer so I wanted to ask you :(. I want to know to get an idea of what can be done with the ASM in the game. I don't know of the  limits so I wondered if you guys new if it was possible. All the answers just let me get an idea of where to go.


I also looked into this idea several years back. I'm not one of the regulars here, but I'm around from time to time, and have been around from time to time for quite a while, and here is what I have to say about reverse-engineering the game (as someone with a BSc in Computer Science and work experience developing software for a living):

It would be significantly easier to use the data you can see in the editors that exist (probably by copy-pasting and manual data entry, but you could also write a fairly simple tool to extract it automatically), the game sprites & textures, and the information in the battle mechanics handbook (slightly inaccurate in a few places though it may be) and make a new game engine using modern software development tools, than it would ever be to reverse-engineer the game and work with that.

Even if you could get a functional decompilation of FFT, which will recompile appropriately and work the same (not a small task), the code resulting from such an automatic decompilation would be an unreadable mess, which would take a great deal of time to interpret, document, and organize.

The only reason I can possibly think of to do this is if you need it to run on an actual PSX - and I can't imagine why you would want to do that.

If you're thinking of making a game from scratch, I'd suggest you learn to work in Unity. You can write software in that that you can port to basically every major system right now (IIRC including some of the consoles, but definitely Mac, Windows, Linux, Android, and iOS).

Asakawa

Sorry guys! It looks like the question got a little more complex than I thought it would get. Thank you all for that generous input :). I only wondered how hard it would be to reverse engineer the game to see if we could get something readable in C, but after surfing around the web I got similar answers like the ones that were presented here. You guys have done a great job at providing me with information :). I think the thread should be finished here. I did not quite get the answer I wanted regarding the possibility  of adding a group of stats like in Tactics Ogre for PSX (Would the space allow for that? Would it conflict with the current FFT design?), but that is fine! The question might be too complex to ask :(. Anyway, I will mark this as solved and thank you all for the wonderful replies :).