Homebrew Cave Story Engine 2 for Nintendo 3DS

vbarros22

Well-Known Member
OP
Member
Joined
Jun 20, 2017
Messages
192
Trophies
0
Age
23
Location
Manaus, Amazonas
Website
mundowiihack.wordpress.com
XP
672
Country
Brazil
I made a post like that in Wii U side, now i want to share with you here that there is a 3DS port :toot:. Its made by a dev called Clownacy and all credits go to him.

Background from his GitHub page:
When Pixel made Cave Story, he compiled the original Windows EXE with no optimisations. This left the generated assembly code extremely verbose and easy to read. It also made the code very decompiler-friendly, since the assembly could be mapped directly back to the original C(++) code.

Technically, this alone made a decompilation feasible, as was the case for the Super Mario 64 decompilation project - however, there was more to be found...

In 2007, a Linux port of Cave Story was made by Peter Mackay and Simon Parzer. Details about it can be found on 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, as well as the variables, functions, and structs they contained.

This was a goldmine of information about not just the game's inner-workings, but its source code. This is the same lucky-break the Diablo decompilation project had. With it, much of the game's code was pre-documented and explained for us, saving us the effort of doing it ourselves. In fact, the combination of easy-to-decompile code, and a near-full set of function/variable names, reduced much of the decompilation process to mere copy-paste.

To top it all off, some of Cave Story's original source code would eventually see the light of day...

In early 2018, the Organya music engine was released on GitHub by an old friend of Pixel's. On top of providing an insight into Pixel's coding style, this helped with figuring out one of the most complex parts of Cave Story's codebase.

And... that's it! It's not often that a game this decompilable comes along, so I'm glad that Cave Story was one of them. Patching a dusty old executable from 2004 has its downsides.

https://github.com/Clownacy/CSE2/releases
 

Kwyjor

Well-Known Member
Member
Joined
May 23, 2018
Messages
1,844
Trophies
1
XP
2,235
Country
Canada
I never did get the full story of how this decompilation came to be, so this is nice. Aren't there multiple different projects now, though? And didn't Nicalis try to shut one of them down? Has Pixel commented at all? (Maybe he had a good reason for not releasing the source in the first place?)
 
General chit-chat
Help Users
    KennieDaMeanie @ KennieDaMeanie: Yes