This C source port of the original Celeste for the PICO-8 was originally developed by lemon32767.
In the original version, attention was paid to portability, but there was still some need for improvement. Especially since I really wanted to get the game to run on the Nokia N-Gage and was stuck with a very old compiler.
This fork aims to be more robust and portable than the original and should, at least in theory, be compilable from all platforms officially supported by SDL 2.
It has been confirmed to work on the following platforms:
- Linux
- Nintendo 3DS
- Nokia N-Gage
- Windows
- Playstation Portable
The easiest way to get ccleste up and running is Visual Studio 2022 with
C++ CMake tools for
Windows
installed. Simply open the cloned repository via File -> Open -> Folder
. Everything else is set up automatically and all required
dependencies are fetched at compile time.
The procedure for the Nokia N-Gage is the same as for Windows. You only need to install and set up the N-Gage SDK. in advance and select the respective build configuration in Visual Studio.
Please note: In order for the SDL executable to be executed properly by the launcher, the path in the file ngage_appui.cpp file must be adjusted accordingly. Unfortunately, I have not yet found a way to configure this dynamically.
In addition to the project configuration, the application launcher also needs to be customised. The associated files are located in the sub-folder res.
ccleste can also be compiled on Linux with the included CMake configuration.
mkdir build
cd build
cmake ..
make
You can find the homebrew toolchain here.
Currently there are no binary packages of SDL2 and SDL2_mixer, as such you need to compile both from source.
Note that you need to use the TREMOR
backend for SDL2_mixer, as using
the STB
backend will cause a crash about 1/3rd into the game. There
currently are issues with linking the TREMOR
backend which will
require you to manually link libogg
to the right of libvorbisidec
(SDL2_mixer 2.6.2).
You can then compile a .3dsx
executable with the following commands
cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=$DEVKITPRO/cmake/3DS.cmake -DCELESTE_P8_ENABLE_AUDIO=ON
cmake --build build
ccleste can also be compiled for the PSP with the included CMake configuration and the PSPDEV toolchain.
mkdir build
cd build
psp-cmake ..
make
It can also be build with audio support by adding the -DCELESTE_P8_ENABLE_AUDIO=ON
to the psp-cmake command, but the game runs at slightly above half speed with it.
PC | N-Gage | Action |
---|---|---|
LEFT | LEFT | Move left |
RIGHT | RIGHT | Move right |
DOWN | DOWN | Look down |
UP | UP | Look up |
Z/C | 7 | Jump |
X/V | 5 | Dash |
ESCAPE | Softkey (right) | Pause |
E | 3 | Toggle screenshake |
SHIFT+D | 2 | Load state |
SHIFT+S | 1 | Save state |
Hold F9 | Hold C | Reset |
F11 | Fullscreen | |
Delete | Softkey (left) | Quit |
Sound wave files are taken from the Celeste-Classic-GBA project, music *.ogg files were obtained by converting the *.wav dumps from PICO-8, which I did using audacity & ffmpeg.
The frame for the N-Gage version is based on Mountain at Dusk Background by ansimuz.
All credit for the original game goes to the original developers (Maddy Thorson & Noel Berry).