A fork of CSE2 providing support and optimization for running on a Sun Ultra 1.
Find a file
Clownacy 14442eaaba
Add some background information to the readme
Also removed the link to the woefully-neglected 'Bug Fixes.txt'.
2019-09-05 19:37:44 +00:00
assets Convert resource file to forward-slash path separators 2019-09-05 14:08:03 +01:00
devilution Move the MSVC2003 stuff to the main folder 2019-09-05 13:42:33 +01:00
src An accuracy improvement in Triangle.cpp 2019-09-05 17:04:07 +01:00
.gitattributes Added .gitattributes for normalisation and normalized a few sources files to LF (from CRLF) 2019-05-03 12:27:11 +02:00
.gitignore Move the MSVC2003 stuff to the main folder 2019-09-05 13:42:33 +01:00
CSE2.sln Move the MSVC2003 stuff to the main folder 2019-09-05 13:42:33 +01:00
CSE2.vcproj The EXE now has its functions in the exact same order as the original 2019-09-05 16:42:16 +01:00
Makefile Add .exe file extensions to the Makefile 2019-09-04 14:01:51 +00:00
README.md Add some background information to the readme 2019-09-05 19:37:44 +00:00
screenshot.png New screenshot 2019-09-01 19:00:42 +01:00

Cave Story Engine 2

Cave Story Engine 2 is a decompilation of Cave Story.

Screenshot

Background

In 2007, a Linux port of Cave Story was made by Peter Mackey and Simon Parzer. Details about it can be found in Peter's old blog. This port received an update in 2011, including two shiny new executables. What Peter and Simon didn't realise was that they left huge amounts of debugging information in these executables, including the names of every C++ source file, and the variables and functions they contained.

Another important element was that, when Pixel made Cave Story, he compiled it with no optimisations. This left the generated assembly code extremely verbose and easy to read. It also made the code very decompiler-friendly. Additionally, the EXE's Rich Header told us exactly what compiler was used: Visual C++ .NET 2003.

The last thing of note was that some of Cave Story's source code actually saw a release: the game's Organya sound engine was released on GitHub in early 2018. This provided an insight into Pixel's coding style, and made decompiling Organya much easier.

Together, these findings are a goldmine of information on the game's inner-workings and source code, making a decompilation feasible.

Building

Visual Studio .NET 2003

Of course, project files for Visual Studio .NET 2003 are available.

Visual Studio .NET 2003 was used by Pixel to create the original Doukutsu.exe, so these project files allow us to check the accuracy of the decompilation by comparing the generated assembly code to that of the original executable. The tool for this can be found in the 'devilution' folder.

Makefile (MinGW-w64)

Run 'make' in this folder, preferably with some of the following settings:

  • RELEASE=1 - Compile a release build (optimised, stripped, etc.)
  • STATIC=1 - Produce a statically-linked executable (so you don't need to bundle DLL files)
  • JAPANESE=1 - Enable the Japanese-language build (instead of the unofficial Aeon Genesis English translation)
  • FIX_BUGS=1 - Fix various bugs in the game
  • DEBUG_SAVE=1 - Re-enable the dummied-out 'Debug Save' option, and the ability to drag-and-drop save files onto the window

Licensing

Being a decompilation, the majority of the code in this project belongs to Daisuke "Pixel" Amaya - not us. We've yet to agree on a license for our own code.