v0.1 ⌊ALPHA⌉
Claim set · data/claims/celeste-classic.yaml

Celeste Classic (C# port in NoelFB/Celeste, Source/PICO-8/Classic.cs)

Game: Celeste classic.

Celeste Classic's grace counter resets to 6 on the ground and drops by 1 before each airborne jump check, so jumps work for 5 updates after leaving a ledge. celeste-classic/grace-frames

About: Celeste classic Coyote time

Value: 6 updates

T3 code-verifiedCeleste: released class files (NoelFB/Celeste) · Source/PICO-8/Classic.cs#L233-L243if (on_ground) { grace = 6; … else if (grace > 0) grace--;Celeste: released class files (NoelFB/Celeste) · Source/PICO-8/Classic.cs#L297-L304if (jbuffer > 0) { if (grace > 0) { // normal jump … grace = 0;Checked by claude, 2026-10-20 — read player.update in Classic.cs at the pinned commit

The port's readme says it "tries to be as close to 1-1 with the original LUA code as it can"; the atlas hasn't read the original PICO-8 cart for this claim.

Cited by: Coyote time

Inside Celeste, the Celeste Classic port skips every second frame to run at 30 Hz, so its 5 grace updates last about 0.17 s. celeste-classic/update-rate

About: Celeste classic Coyote time

Value: 30 Hz

T2 primary statementCeleste: released class files (NoelFB/Celeste) · Source/PICO-8/Emulator.cs#L268-L273// this is a pretty dumb hack but because Celeste is locked to 60fps // and PICO-8 runs at 30 ... we just skip every 2nd frame … skipFrame = !skipFrame; if (skipFrame) return;Checked by claude, 2026-10-20 — read Emulator.Update at the pinned commit

Cited by: Coyote time

Celeste Classic sets its jump buffer, jbuffer, to 4 on a new press and otherwise counts it down by 1 each update. celeste-classic/jump-buffer

About: Celeste classic Jump buffering

Value: 4 updates

T3 code-verifiedCeleste: released class files (NoelFB/Celeste) · Source/PICO-8/Classic.cs#L223-L228var jump = E.btn(G.k_jump) && !p_jump; p_jump = E.btn(G.k_jump); if (jump) jbuffer = 4; else if (jbuffer > 0) jbuffer--;Celeste: released class files (NoelFB/Celeste) · Source/PICO-8/Classic.cs#L297if (jbuffer > 0)Checked by claude, 2026-10-20 — read player.update (L223-L228 and the jump check at L297) in Classic.cs at the pinned commit

The jump check accepts any jbuffer above 0, so a press counts on its own update and the next 3. A jump sets jbuffer back to 0.

Cited by: Coyote time