A fork of CSE2 providing support and optimization for running on a Sun Ultra 1.
Find a file
John Lorentzson 82e7864903 Add double-buffering to avoid screen flashes with XShm
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.
2025-04-26 14:44:58 +02:00
assets RISC OS port 2020-10-20 17:33:36 +01:00
bin2h Overhaul bin2h 2020-09-03 22:14:13 +01:00
cmake RISC OS port 2020-10-20 17:33:36 +01:00
DoConfig Drop DoConfig to 30FPS 2020-11-03 20:23:00 +00:00
external Update FreeType to 2.10.4 2020-10-20 23:17:00 +01:00
game_english Update the 'licence.txt's 2020-11-03 20:28:24 +00:00
game_japanese Update the 'licence.txt's 2020-11-03 20:28:24 +00:00
src Add double-buffering to avoid screen flashes with XShm 2025-04-26 14:44:58 +02:00
.gitattributes Mark TSC files as binary, not text 2020-01-09 06:32:10 +00:00
.gitignore Add Emacs backup files to .gitignore 2025-04-04 22:08:13 +02:00
.travis.yml Add SDL1 builds to Travis 2020-10-20 18:39:33 +01:00
CMakeLists.txt Add use of XShm for faster transfer speeds between game and X server 2025-04-09 14:57:32 +02:00
LICENCE.txt Update portable branch with licence boilerplates 2020-10-23 19:18:13 +01:00
manual-build-maker.lisp Make manual-build-maker.lisp generate Makefile instead of shell script 2025-04-10 22:51:45 +02:00
PHILOSOPHY.md More PHILOSOPHY.md tidying 2020-09-14 13:29:27 +01:00
README.md Update README.md for the Solaris fork 2025-04-25 12:09:05 +02:00
screenshot.png Update screenshot 2020-09-04 00:44:29 +01:00

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.