Skip to content

NeoKesha/OpenSanityNeo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSanityNeo

OpenSanityNeo is Crash Twinsanity (XBOX PAL) decompilation\disassembly project, made using Ghidra and code generation script. Goal of this project is to achieve accurate disassembly of the game able to be built back, then one by one manually replace assembly with C\C++ Code Generation script and Ghidra project are not published yet, but will be later.

What it can do? What's the catch?

Right now this project is just x86 disassembly. However, all(most of) addresses were resolved into labels and static library references are correctly linked, allowing for heavy modification of game's code and date, as well as custom code injection such as debugging and logging code. Right now this decompilation isn't perfect, giving crashes and glitches there and there.

How to build

  1. Clone repository
  2. In the same folder where repository is create "runtime" folder and put NeoXBOX (download) contents there
  3. Additionally, one level higher, create "Content" folder and put Crash Twinsanity game files there. After build, default.xbe will be copied there
  4. Additionally, edit build.bat to your preferences
  5. Additionally, add "Levels\School\Madame\ambercor" line at command.txt to boot into something "playable" and avoid crash at beach into cutscene.

What is NeoXBOX?

NeoXBOX is a mini Xbox SDK bundle, containing Visual Studio tools (Assembler, Compiler, Linker), XBE image builder and XboxSDK libs and include. It's lightweight and don't require Windows XP virtual machine to work. XboxSDK contents are aquired from Internet Archive: https://archive.org/details/xbox-sdks Download bundle: https://drive.google.com/file/d/1uI7oD7KNx8ic8WATWsD50uFFylAJhy6a

List of Playable chunks

  • Slip and Slide if start normally
  • Rockslide if start normally
  • All of Levels\School\Crash\
  • All of Levels\School\Sch_Hub\
  • All of Levels\AltEarth\Core\
  • All of Levels\School\Boiler\ except boiler_2
  • All of Levels\Ice\IceClimb\ except bergext and caveent
  • Half of Levels\Ice\HighSeas\
  • Levels\School\Madame\Ambercor (turn left)
  • Levels\AltEarth\Hub\Coreent
  • Levels\AltEarth\Hub\Slipjoin
  • Levels\AltEarth\Hub\Alta
  • Levels\AltEarth\Hub\altdoc_c
  • Levels\AltEarth\Lab\Psycho
  • Levels\AltEarth\Lab\Altlabin
  • Levels\AltEarth\Lab\Labext Earth and Ice Hub are unchecked yet

When will you release Ghidra project and Code Generation script?

Ghidra project and Code Generation script will be released after code generation process will be ironed out, fixing crashes and glitches it produces right now. If you want those files for research purposes, contact me on Twinsanity Modding server: https://discord.gg/Q5nHRUm

Will it be 100% accurate decompilation?

No. While instruction disassembly is 95%-100% accurate, librarry versions are different, as well as code and data layout. Little to be done about it and nothing worth the effort.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages