Chrono Trigger PC Reverse Engineering - Help wanted

Started by Asylum, November 10, 2019, 07:20:20 PM

Previous topic - Next topic

Asylum


I've been working on reverse engineering parts of the Chrono Trigger PC build on and off for about a year using IDA Pro. It is actually a direct port of the SNES version. It appears that Square Enix wrote a lifter for 65C816 assembly that outputs C++ and then built off of the output of that, refactoring as much of the lifted codebase as they could. Some portions of the engine are straight C++; other parts are a mess of bit ops. I recently learned that the Android version was accidentally linked with partial debug information, so I've been referencing that to annotate more of the code. Initially I worked off of Geiger's notes and they helped me discover and annotate the field map script interpreter and the battle script interpreter.

I've successfully hooked the game with a proxy directinput dll and overridden some scripting functions in my early experiments (about a year ago?). I've been doing this alone for a while now. I'm trying to find others with reverse engineering experience who would like to help/take over the project. My intention is to slowly rip out parts of the engine via hooking into a seperate DLL until I have a recompilable codebase for the Chrono Trigger engine. If anyone would like to help please message me on this forum. Experience with the original SNES CT engine would be awesome too since large portions of the original game logic are still the lifted SNES assembly.

My current IDA Pro database for the Win32 version can be downloaded here: https://www.dropbox.com/s/2scov0yezhlsdcn/Chrono%20Trigger.idb?dl=0

Mauron

I have experience with SNES Chrono Trigger, but not a lot of dedication to a PC based project. I would be very interested in comparing our notes.
Mauron wuz here.

Freestate

Good Oportunity to enhance that shitty port with many many things. Ai upscaled videos, Orchestated OST, extra sprites and missions...  ;)

Asylum

Quote from: Freestate on November 11, 2019, 02:18:58 PM
Good Oportunity to enhance that shitty port with many many things. Ai upscaled videos, Orchestated OST, extra sprites and missions...  ;)

Thats a bit out of the scope of this project. Right now the focus is to produce a recompilable build of the game engine. That itself would normally be an insane task but I believe the project is in a state right now where it could be achieved with the help of at least one other person.


Chronosplit

QuoteIt is actually a direct port of the SNES version.
I most likely don't have the knowledge required, but this is quite interesting.  Could this be similar to what they did with FFVI on the same platform?  I remember it also having a GBA rom inside.  But what about the DS-only content?

Asylum

Quote from: Chronosplit on November 13, 2019, 10:05:11 AM
I most likely don't have the knowledge required, but this is quite interesting.  Could this be similar to what they did with FFVI on the same platform?  I remember it also having a GBA rom inside.  But what about the DS-only content?
The rom is not inside actually. They used an 68k asm to C translator and then built around that. The rom data sections were split into resources that the game engine loads, which is why TF can be used to edit CT pc maps. The nds version also works this way, there are actually leftover reference to the DS in the PC and Android versions.

The DS content likely works the same way. One of the reasons I think why the DS content mostly consists of uninteresting fetch quests is that the original source code for the SNES version was lost, so they had to reverse engineer how the engine worked in order to implement new content.

G061

I'm of no help myself but I am in a discord group with like minded hackers interested in doing the same thing you are. I mentioned your thread and they asked me to leave an invite to the group: https://discord.gg/kXwYzd might find the help you want there.