Celeste Classic
A downloadable game
An unofficial port of Celeste Classic from PICO-8 to Playdate.
How to play
Download the game and sideload it to your Playdate device. (You can refer to the official Sideloading Playdate games documentation.)
If you don’t own a Playdate, you can play in the Playdate Simulator on Windows, macOS or Linux. Download and install the Playdate SDK. Place the .pdx
file in the PlaydateSDK/Disk/Games/
folder. (The .pdx
available for download has been compiled on macOS. If you play on another system, you’ll need to recompile the game. The source code is available on GitHub.)
Changes
Celeste Classic on Playdate was made to be as faithful as possible to the original game on PICO-8. But here are a few notable changes:
The game is in black and white only. A lot of visual elements have an outline to make them more readable. But this does not impact their original hitbox.
The game is rendered at 256×240 from the original 128×128. Four pixel lines are cropped at the top and bottom of the screen. The game can be played at its original resolution by disabling the Fullscreen option available in the game’s menu.
Assist mode is available under the game’s menu. This allows players to skip a level, change the game speed to 0.5×, get infinite dashes, and enable invincibility. If assist mode is used during a run, a mention is added on each level in the lower right corner, as well as in the pause screen and the final score screen.
Credits
Celeste Classic is an original game on PICO-8 by Noel Berry and Maddy Thorson.
PICO-8 and the PICO-8 font are the property of Lexaloffle Games.
Playdate is a registered trademark of Panic.
The Playdate port was done by Rémi Parmentier.
Thanks to Alex Larioza for help and tips on performance optimizations. And thanks to the wonderful people on Discord (orkn, Grhmhome, Drew-Lo, Gamma, Kiwi, Tristianski, jeffamphetamines, PizzaDev, Kucromy, GuvBubbs, NickSr, Andrew, DoctorMikeReddy, natch, rasith, Braillynn, fnc12) for their feedback.
License
This project is under the CC BY-NC-SA 4.0 license. While it is unclear what license the original Celeste Classic is under, this is the license used by further EXOK projects like Oldeste or Celeste 2.
Support
This game is available for free here on itch and on GitHub in respect with the original license. You can choose to make a donation. If you want to support me and my work, please consider making a donation here or on my other titles available on Playdate :
- Playorama, a cranky video player for the Playdate.
- 2048 for Playdate, a port of the popular puzzle game for the Playdate.
Status | Released |
Rating | Rated 4.7 out of 5 stars (23 total ratings) |
Author | hteumeuleu |
Genre | Platformer |
Made with | Playdate |
Tags | 1-bit, celeste, Open Source, Playdate |
Asset license | Creative Commons Attribution_NonCommercial_ShareAlike v4.0 International |
Average session | A few minutes |
Languages | English |
Accessibility | Color-blind friendly, High-contrast |
Links | Source code, Twitter/X |
Download
Click download now to get access to the following files:
Development log
- Celeste Classic is now available on Playdate!Apr 05, 2023
Comments
Log in with itch.io to leave a comment.
Any plans to port the sequel as well?
This is an incredible port and I love playing it on my Playdate. I've beaten it twice and will definitely finish it again.
I loved this game, and seeing it in this version just proves how amazing it is. Even without the colors, it's a masterpie maybe even more than before!
I can't seem to sideload it on my PlayDate. Whenever I upload it and refresh on the PlayDate it doesn't come up. Any possibility that I can try with 1.0.2 of Celeste please?
You can find older releases on GitHub: https://github.com/hteumeuleu/celeste/releases
But I’d be surprised if this made any difference. How do you side load ? (Online or via USB)? What is your PlaydateOS version?
Online via the PlayDate site. I’m on the latest firmware of PlayDate. (2.4.1)
Update: I tried v1.0.2 and that version worked.
That’s super weird… but I’m glad you got it sorted out!
love the port!
how hard do you think would it be to port something like foreverred using this as the base? Its another pico-8 game based on celeste, though with many new levels and a couple new mechanics.
Thanks for your kind words. I would say porting a mod shouldn't be too hard considering most of the engine is done and should likely be the exact same. So the work would mostly consist in porting the assets (sprites and tiles) and levels.
I'm currently working on an update and I'm thinking about a way to implement mods (either specific ones made for Playdate or ones from Pico-8 cartridges). I'll see if this goes anywhere.
interesting!
thanks for the reply and good luck on the update
Absolutely excellent and what I consider the best and most "real" game on Playdate thus far.
What a great port. Can you give a bit more information on the port process? How hard would it be to port other pico games to PD?
Thank you for your kind words. My process was to first grab all game code and assets from the PICO-8 using command line exports from the PICO-8 dev kit. Then, since both PICO-8 and Playdate can use Lua, I polyfilled all functions used in the game in PICO-8 to work similarly on the Playdate. But this turned out to be terribly slow (around 5 FPS) and not very legible (not everything looked good straigtaway in 1-bit). So then I started the slow process of optimizing things part by part, both in code and graphism. Most of the time, this meant replacing things draw frame by frame in PICO-8 by using Sprites in the Playdate SDK. You can go through the commit history on Github of how it went (https://github.com/hteumeuleu/celeste/commits/main?after=dd20c9898cbac5b25a40aa8...).
This is seriously so amazing! I’m only a few screens in, but you did an awesome job porting this to the Playdate from what I’ve seen so far. Controls and movement feel just as smooth and precise as the original! I do miss the original soundtrack, but I understand why it had to be changed and I can always just listen to it on my phone while playing if I want (not that there’s anything wrong with the music in the port, I’m just used to the original)
Thank you for your kind words. However, please note that the music in this port is the exact same as the original one. This is a port of the original Celeste Classic for PICO-8, not a port or demake of the popular Celeste game on modern consoles. It was made by the same two core people than the Celeste game on consoles, Maddy Thorson and Noel Berry. They deserve all the credits for the controls, movement and soundtrack.
ohhhh ok, sorry for the confusion
Hey there. Thanks for your kind comment. I’m not very familiar with Terraria, but by the look of it, it doesn’t seem like the source code is available, and the game looks graphically very far from the Playdate’s constraints. I’m sure a demake would be possible but I don’t feel up for it.
Is the FPS counter supposed to be on in the shipping version? I assume that’s what’s in the upper left corner?
The FPS counter appears or disappears whenever you do a full crank turn. (But in practice it toggles just by hitting the zero degree spot which is upwards.) I should probably move this to its own option menu screen at some point. Thanks for your feedback.
Awesome port, I thoroughly enjoyed playing it on the playdate.
I did notice one "bug" though. In the original pico 8 version, collecting strawberries gives you back your boosts, like balloons.
However in this version, you don't get your boosts back from strawberries. This is pretty unnoticeable unless you are trying to speedrun the game, in which it means some strategies are broken.
Great port though, thanks for bringing this game to playdate!
Oh shoot! I never would have realized this. There was indeed a bug related to this. I fixed this and pushed a new version (1.0.2). Thank you!
Awesome!
I actually found one more bug. This one is even more of an edge case, and I'm surprised I even found it. On 700M, if you are on a cloud and the cloud brings you into the spikes, the spikes will just push you off the cloud instead of killing you. I tested on the Pico version and the spikes should kill you.
Oh wow, thanks for reporting this. Collisions with spikes is indeed something I had to heavily work on to improve performance. And I guess I messed something up here… I'll look into this and get you updated here as soon as I'll fix it. Thanks again for reporting this bug.
I was able to fix this issue and pushed a new release (1.0.3). Thanks again for your interest and for reporting this issue.
💯
Thank you!
you should make Celeste 2 as well
Thanks, I'll think about it!
Man I want this stupid little device so bad.
Just install the emulator to play its games
this is awesome!
What is this, a grand adventure about climbing a mountain and finding your true identity for ants?
Jokes aside this is an incredible remake. Kudos!!
I can't get past the first screen lmao. Killer job porting tho
Same here! And I don't want to bypass anything with assists, nor do I want to seek out spoilers, but I feel like I'm totally missing something. I read a comment above about the crank above and maybe that's what I'm missing...
`A` is for Jump. `B` is for a Dash. If you feel stuck, you can try looking for a let's play on Youtube to see the path you're supposed to take.
Un grand merci 👌
This is so cool
Very thankful the for near instantaneous respawns and the magic you created in the physics/movement on the Playdate. Easily the best feeling platformer I have played yet.
Just to be clear: this is a port of the original Celeste game by Maddy Thorson and Noel Berry. I’m only responsible for bringing this to Playdate (making both the technical and graphical adjustments required to make it work).
you should make a YouTube channel and document how you did it.
Excellent work, another game to play during call shifts :)
oh yeah everything seems fine here wait a minute🤣
Awesome!!! I loved playing it on Playdate.
This is awesome!
No way.
Wow, what an effort!! Well done can't wait to see you next project!! Well done!!