Geez-Louise, has it really been that long since the last update?
Scope-creep is a real pain. This update just kind of kept accumulating features, meaning the earlier ones have been kept hidden all this time. Anyway, here's CSE2 v2.1.
CSE2 v2.1
Binaries:
CSE2 - Portable
CSE2 - Enhanced
Perhaps the biggest thing in this update is the port to the Wii U - yep, both the portable and the enhanced branches have been brought to the Wii U. And, unlike Cucky's Wii port, this one is built straight from unmodified CSE2 sources, so it should be much easier to maintain and keep up-to-date. The magic of mainlining.
To play CSE2 on the Wii U, your console will need to be soft-modded, with the Homebrew Launcher installed.
The next biggest change is probably the enhanced branch's new in-game settings menu: now, instead of relying on the DoConfig tool, you can change the settings from within the game itself. Unfortunately, a few options don't take effect until the game is restarted.
The settings available in this menu include...
* Keyboard input rebinding
* Controller input rebinding
* Resolution
* Framerate
* V-sync
* Smooth sprite scrolling
* Soundtrack
Notably, you can now perform full input rebinding. No need for a hacky old hardcoded WASD layout like the DLL loader had.
You might have also noticed the soundtrack option. Like the DLL loader, there is now a user-friendly way to switch between the game's original Organya soundtrack, and various others - namely Nicalis's, and Vince94's SNES soundtrack.
The addition of a soundtrack option marks a change in the direction of the enhanced branch: for all this time, the enhanced branch was intended as an improved version of the engine for modders, yet many people merely use it as a way to play an improved version of Cave Story. Now the branch has been repurposed to suit this unintended audience, while a new branch, enhanced-lite, has been introduced to fulfil the original goal of meeting the needs of modders.
Supporting multiple soundtracks complicates work for modders, who would either have to create multiple versions of each custom song, or disable soundtracks they are not interested in supporting. Because of this, support for multiple soundtracks is not present in the enhanced-lite branch. Currently, this is the only difference between the two branches, but in the future this will likely change.
Playing alternate soundtracks in-game requires copying each soundtrack's .ogg files to the `data/Soundtracks` folder. Each soundtrack gets its own subfolder.
Now for the more boring technical changes...
CSE2 no longer has a hard-dependency on SDL2. This is what enabled the Wii U port to be made. Much like CSE2's various 'render-backends', all platform-specific logic has been split-off to its own selection of backends. Notably, on PC, developers now have the option of using the much-lighter GLFW3 in lieu of SDL2.
Additionally, a new renderer has been added: OpenGLES2. This is handy for the Raspberry Pi, particularly the 3B+, where the SDLTexture backend would struggle to meet 60FPS at 2x internal resolution. This could also be handy in the future for a mobile port.
Modders might be interested to know that, thanks to GabrielRavier, the <PHY TSC command has been added. Likewise, <MIM has been fixed, so that it persists across reboots (previously it was not being saved to Profile.dat). It appears I never documented the new TSC commands in any of these update posts. Whoops. But yeah, currently <PHY, <MIM, and <MS4 are available.
Since the last update, I've also fixed an issue with the audio mixer, which caused a nasty persistent hanging problem on everyone's PC but mine. Sorry about that.
And... I think that's it. This update was long overdue, but there's still so much left that I want to get done in the future. For now, I hope you enjoy what's here.