A fork of CSE2 providing support and optimization for running on a Sun Ultra 1.
So our workaround for making usleep thread-safe mostly worked in that it fixed one of the things making it thread-unsafe, but it seems that sigsuspend, which usleep uses, is also not thread-safe, since sometimes one of our two threads would freeze, stuck inside sigsuspend. So instead of usleep, we're using a trick that Stacken member map suggested: using select. Calling select with no file descriptors to work on will have it block on the kernel level until its timeout is hit. This acts as a sleep. As it turns out, this seems to completely solve our sleep-related problems, and massively reduces the amount of audio buffer underruns as a nice bonus! |
||
---|---|---|
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.