The AROS Archives(anonymous IP:,146) 


   o Audio (101)
   o Datatype (15)
   o Demo (27)
   o Development (226)
   o Document (26)
   o Driver (18)
   o Emulation (57)
   o Game (435)
   o Graphics (186)
   o Library (23)
   o Network (51)
   o Office (13)
   o Utility (205)
   o Video (20)

Total files: 1403

Full index file
Recent index file

Part of aros exec
 Readme for:  Game » Platform »


Description: Tough platform game with retro sound & gfx.
Download:       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 2Mb
Version: 1.3.1
Date: 02 Nov 20
Author: lemon-sherbet, Matt Thorson & Noel Berry
Submitter: cavemann
Category: game/platform
License: Other
Distribute: yes
FileID: 2207
Comments: 0
Snapshots: 0
Videos: 0
Downloads: 18  (Current version)
18  (Accumulated)
Votes: 0 (0/0)  (30 days/7 days)

[Show comments] [Show snapshots] [Show videos] [Show content] [Replace file] 
# ccleste

This is a C source port of the [original celeste (Celeste classic)]
( for the PICO-8, designed
to be portable. PC and 3DS are the main supported platforms.

Go to (
for the latest pre-built binaries.

An experimental web port is also available

# Controls

|PC            |3DS                  |Action              |
| LEFT         | LEFT                | Move left          |
| RIGHT        | RIGHT               | Move right         |
| DOWN         | DOWN                | Look down          |
| UP           | UP                  | Look up            |
| Z/C          | A                   | Jump               |
| X/V          | B/X                 | Dash               |
| ESCAPE       | START               | Pause              |
| E            | L+R                 | Toggle screenshake |
| SHIFT+D      | Y+L                 | Load state         |
| SHIFT+S      | Y+R                 | Save state         |
| Hold F9      | Hold SELECT+START+Y | Reset              |
| F10          | SELECT              | Fullscreen         |
| Q            |                     | Quit               |

# credits

Sound wave files are taken from
music ogg files were obtained by converting the .wav dumps from pico 8,
which I did using audacity & ffmpeg.

All credit for the original game goes to the original developers
(Matt Thorson & Noel Berry).

# celeste.c + celeste.h is where the game code is, translated from
the pico 8 lua code by hand.

These files don't depend on anything other than the c standard library and
don't perform any allocations (it uses its own internal global state).

sdl12main.c provides a "frontend" written in SDL1.2 (plus SDL mixer)
which implements graphics and audio output. It can be compiled on
unix-like platforms by running make

3DS is also a supported platform. Compile to 3DS with: make -f Makefile.3ds

# this will generate ccleste.3dsx

You will need devkitPro with these dkp packages installed:
3ds-sdl, 3ds-sdl_mixer, libctru, devkitARM

Controller input is also supported on PC (SDL2 ver) and web version. The
controller must be plugged in when opening the game. Jump with A and dash
with B (xbox360 controller layout), move with d-pad or the left stick and
pause with start.

# TAS playback and the fixed point question

In order to playback a TAS, specify it as the first argument to the
program when running it. On Windows you can drag the TAS file to the
.exe to do this. The format for the TAS should be a text file that
looks like "0,0,3,5,1,34,0,", where each number is the input bitfield
and each frame is ended by a comma.

The inputs in the TAS should start in the first loading frame of 100m
(neglecting the title screen). When playing back a TAS the starting RNG
seed will always be the same.

Most other Celeste Classic ports use floating point numbers, but PICO-8
actually uses 16.16 fixed point numbers.

For casual play and RTA speedrunning, the discrepancies are minor enough to
be essentially negligible, however with TASing it might make a difference.
Defining the preprocessor macro `CELESTE_P8_FIXEDP` when compiling
celeste.c will use a bunch of preprocessor hacks to replace the float type
for all the code of that file with a fixed point type that matches that of
PICO-8. The use of this preprocessor macro requires compiling celeste.c
with a C++ compiler, however (but not linking with the C++ standard

Using make you can compile this fixed point version with
`make USE_FIXEDP=1`.

When playing back TASes made with other tools that work under the
assumption of ideal RNG for balloons (since their hitbox depends on that),
you can ensure that they do not desync by defining the preprocessor macro
`CELESTE_P8_HACKED_BALLOONS`, which will make balloons static and always
expand their hitbox to their full range.

Using make you can turn on this feature with `make HACKED_BALLOONS=1`.

You can combine both of these with `make HACKED_BALLOONS=1 USE_FIXEDP=1`.

Copyright © 2005 - 2020 The AROS Archives All Rights Reserved