A fork of CSE2 providing support and optimization for running on a Sun Ultra 1.
When using the X shared memory extension, the X server may start reading the buffer at a time when the client is writing to it. This can result in the next unfinished frame flashing onto the screen. The canonical way to solve this is to wait for an event to come in signaling that it's safe to continue, but that would add considerable latency to rendering. Instead, we bet on the fact that it won't take all that long, and so we double-buffer. We have two buffers shared with the X server and swap them at the end of each frame. We only draw to the one not being displayed. That way the X server should always have time to read out a full finished frame. |
||
---|---|---|
assets | ||
bin2h | ||
cmake | ||
DoConfig | ||
external | ||
game_english | ||
game_japanese | ||
src | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
CMakeLists.txt | ||
LICENCE.txt | ||
manual-build-maker.lisp | ||
PHILOSOPHY.md | ||
README.md | ||
screenshot.png |
Cave Story for Solaris
This is a fork of CSE2 that implements a Solaris 2.6 compatible backend, and optimizes parts of the game to run at an acceptable speed on a Sun Ultra 1 workstation. As such, it contains only the portable
branch, as the accurate
branch is of zero use here.
Building
While CSE2 normally uses CMake, this fork instead uses a poorly cobbled together Makefile generator, as the latest version of CMake available on our target is too old. This will eventually be overhauled to be slightly more useful.
Licensing (from the original README)
Being a decompilation, the majority of the code in this project is proprietary and belongs to Daisuke "Pixel" Amaya.
Modifications and custom code are made available under the MIT licence. See
LICENCE.txt
for details.