Awesome! I'm just starting doing a 2D-platformer inspired on Sonic 2D games physics and wow I see you have really achieved. The player's movement really feels super similar to sonic games. Congratulations! :-)
Yeah, I wanted to add speedrunning with/without rings for more variations, but I got caught up in technical stuff. I’m currently focusing on cutting the game code and level memory usage to make it work in a native PICO-8 cart.
I don’t know how much time it will take though, so at the same time I’m setting up my next fan game which should have more room for tunable difficulty and speedrunning.
how do i play this? it's got multiple p8 files. I want the p8 (or else png) to run in an emulator for a linux handheld, so plz don't mention browser or buying pico8
As explained in the Disclaimers, the game currently doesn’t run on a native PICO-8 (mostly due to my custom patch to remove token limitation)… but I haven’t tested it on unofficial emulators (fake-08, zepto8) - I also use a Linux handheld, it uses ArkOS and zepto8 as fallback, but since I already own PICO-8 I just installed it instead and never got to try the emulator. So if your emulator has an option to ignore token limitation, it may be able to run it. Otherwise it will fail as soon as you enter in-game, with a token limit error message (but you should be able to see the title menu and maybe the stage intro).
I don’t have my handheld at the moment, but I suppose it would play multi-carts the same way as single carts: put all the .p8 files together in the usual carts folder, at the same level (in ArkOS each console has a dedicated folder, but they apparently keep the pico-8 folder itself for the official binary if you have it, so instead carts go to a sub-folder /roms/pico-8/carts). Alternatively, the .p8.png should also work.
Unfortunately, I cannot give you more information without knowing your specific setup, and the doc for your platform/emulator will probably be more useful to you. There is nothing special with the game itself so if you can run a single-cart game, you can probably run a multi-cart game the same way. The token limitation break is your biggest issue and it’s not specific to Linux/emulator.
I’m curious if some emulators can run the carts so tell me if you can make it work!
P.S.: and obviously there is the solution to run the Linux binary, I have done it myself but it was a hassle on a GameBoy-style handheld: I had to plug a keyboard via USB, press a combination of keys to enter Terminal mode, use the keyboard with command line to navigate to the game’s Linux binary and run it… And I’m not even sure input mapping was correct. So I didn’t recommend it to you. I wish ArkOS had some “Other” category where you can run arbirary binaries and it still provides you with some input remapping overlay, like Steam Big Picture + add external games to your library. But I get it’s not really it’s original purpose.
Are you talking about PICO-8 intentional visual glitch effect on reset? Yeah I find it cool too. If there’s an actual issue with reset though, it’s much more problematic.
Sorry, I have yet to add the shiny particles effect that was supposed to hint at the location of the emerald behind the leaves (it’s still visible but only by a few pixels). Same thing for the green emerald. I’m busy with other projects at the moment so I don’t have an ETA on this, but I’m glad you could find it!
Thanks! I never got a Game Gear, so I played most of the titles inside Sonic Adventure DX (also read they’d be put back in Origins). I admit it was harder to appreciate them so many years in the future, and after playing Sonic 1-3&K many times, but I had a few favorites. Oddly enough, my favorite, Tails Adventure, was not a speed platformer, but I really liked how Tails would auto-climb higher ground! I wanted to make a pixel art game with carefully crafted animations like that! (which… pico sonic doesn’t really have, but hopefully my future games will!)
So cool to see a new update of this great :) But like ever i can't play it because you are not using the official engine and i can't launch it in Batocera :(
For vanilla PICO-8, my last hope is to use PicoMap to reduce token/character count as explained in the last devlog. I’ll post a major update devlog if I manage to do this.
For Batocera, I have yet to upgrade the project to the more recent PICO-8 versions for 64-bit support (I assume it’s the reason for incompatibility according to https://forum.batocera.org/blog/6891-pico-8-official-becomes-64-bit), in fact code should be completely compatible, but patching a new version of PICO-8 is what takes time… and with PicoMap, I may not need patching anymore (or just the first patch to unlock token count, which is trivial compared to fast reloading patch, required by my custom multi-tilemap system), so it may not be worth the effort and I prefer waiting for PicoMap integration before upgrading PICO-8 once more.
Ok i understand, it's really not easy ... But if you think Pico-8 will add PicoMap later, for sure it can be a good idea to stand for it and use it. In Batocera i use every time the last engine. To me the best compatible possible. Thanks a lot for your answer
Actually I got the same issue with my Anbernic on ArkOS. I eventually managed to run some PICO-8 games as executable binaries by switching to the terminal. It’s not really convenient and I don’t remember if all inputs were working, though.
For my game, a native PICO-8 version will be better eventually. However I’m still interested in running Linux games on portable consoles in general, I’d be able to add standalone indie games that run at lower res!
Hi, thanks for your answer, for sure i know we can launch linux games on Batocera, i do it some times, and without script, it is already ready to use in ports games that can launch a .sh file. But it is not my goal, my pico8 games are all in pico8 directory, ready to launch with the readl pico8 exec. It is the best way to play them, and have all of them in the same place. It's why i always ask creators to share a PNG game format and use the real engine :( I understand you use a modified one, but i don't really understand why ... when i see Doom on VRRacing or so many other games that tric the official pico 8 engine to work... and it works :) But maybe it is hardest to release, i don't know ... ?
you couldnt add tails and other things because of some limits that the system has. but there *is* a way that you can bypass the limit. if you open up the p8 file using an code editor you can write any code without thinking of the limts pico 8 has.
That was beyond stellar. I couldnt find the grey, but got the others. Is there a music conversion program you use or did you manually recreate it in the pico8 music maker? And is this the default pico8 mapspace or did u use some kind of extended memory method? Is this going to go up on splore? Curious how u madeout with the sprite editor etc.
Sum-up: I worked from 8-bit remixes made by danooct1, then used FamiTracker to export source files to midi, followed by midi2pico. I still had to manually edit notes a lot, because I had to put everything on 4 channels to leave the 4th channel free for SFX.
For the level, I coded my own map streaming system: the level is made of sub-maps, each one being a standard PICO-8 map. When the camera gets close to a sub-map’s edge, the game automatically load the neighboring sub-map (combining half-maps when crossing horizontally or vertically, and quarter-maps when crossing diagonally). I use the general memory as a “buffer” for the copy-paste operations. However, this still requires a reload from cartridge operation when reaching new regions, so I had to patch PICO-8 binary to hide that extra loading time (with the new general memory at 0x8000 it may be possible to store more maps in live memory, I haven’t tried it yet). It also means that I did nothing special with the sprite editor (although I have multiple cartridges to store extra spritesheet, e.g. one dedicated to the title menu, one to Sonic, etc.)
For a future version, I’m considering using PicoMap (https://www.lexaloffle.com/bbs/?pid=91798) which handles everything from map data stored in runtime Lua memory. However, it is not compatible with the existing tilemap, which means I’d have to redraw the full map in PicoMap, and I don’t know how much time that would take… But something to keep in mind for future projects.
It’s not on splore for the reasons above, that it requires many cartridges for the title menu, intro/ending sequence, and above all the level data; and also that it requires binary patches to work. If I can make PicoMap work, we could have a single cartridge version running on vanilla PICO-8 with just the in-game (level) part.
Another PICO-8 game called “Dungeon Witches” did it, but I’m unsure whether or not it’s possible for this one yet. As an alternative, I could make a small demo level like bonevolt’s Sonic 2.5, which was also running on a single cartridge.
This is a really good recreation of Angel Island, even with more limited color pallets than that of the Genesis, this is visually great and a blast to play. I can't wait for more of this!
This is great, also my favorite emerald is the yellow one, you see it when you go on the jump ramp, but you have to drop from above to get it. Or you could hold right while spindashing off the ramp which isn't obvious, but feels better.
This is really cool! I did find a bug (I think it's a bug but there's always that small chance it's intentional) that allows the player to screen warp all the way to the end of the stage, it happened at the ramp after collecting the brown/8th emerald. again this demo is really cool and I'm glad it was made!
Wow, okay, I just fixed the bug that allowed you to fall below the ground and move to the end of the stage, but I didn’t know about this one. How do you do it?
You’re talking about the curved wall after the spring after the 8th/brown emerald right? (not the launch ramp before the yellow emerald)
Is it similar to the “wall escape” technique used by speedrunners on the Genesis games, which consist in entering a wall and running toward the left to get projected toward the right?
Yes I am talking about the curved wall after the brown/8th emerald, and yeah it was exactly like screen warp/ wall escape technique, it was the first thing I thought when I understood what happened and that's why I was unsure if it was intentional or not. The bug only happened on my first playthrough and unfortunately I haven't been able to recreate it since, I'll let you know if I do it again. but I remember using a spin dash while holding towards the right of the wall, I hope this works
That was the super nice-to-have feature on the list, but got dropped… Data change (increase speed) would probably be cheap, and it’s super cheap to recolor Sonic’s blue in yellow (as in the original game), but in reality you’d need dedicated sprites for most poses due to hair spikes change, and that would go out of budget (unless it was distributed on a separate cartridge!)
In fact, PICO-8 uses that (almost), you can grab data from other cartridges, just not code! In fact, I’m already at the limit, using all 16 cartridges… But I guess I could merge a few of them.
It was in the original plan, but dropped when I hit PICO-8’s code limit and realized the Fly mechanic would go over the limit (also I’d have to adjust levels to make emeralds harder to get, unless I make playing with Tails the “easy” mode).
How did you know about my secret plan?! It turns out that after Sonic Mania, both Sonic Team and Evening Star will be working on 3D platformers, and I won’t be applying to them any time soon… But I’m glad that what started as a “tech demo for my portfolio” ended up as a proper experience with an actual level to play through.
← Return to game
Comments
Log in with itch.io to leave a comment.
Awesome job! I no joke would love to see more levels.
Awesome! I'm just starting doing a 2D-platformer inspired on Sonic 2D games physics and wow I see you have really achieved. The player's movement really feels super similar to sonic games. Congratulations! :-)
Great exhibit for some lovely pixelart, music, and the coolest hedgehog I know.
Thanks!
If you fancy Sonic fan events, I’ll try to have some demo of my next fan game (Super Sonic Heroes) ready for SAGE 2025.
I was stuck on the home screen B4 I realized that z was enter just like every other game
its not bad it's just boring after the main game. Maybe add some more things to do after the main game? (it's ok if you cant do that.)
3 stars.
The 2 of em is from the gameplay
The other is from the goal of the game.
Yeah, I wanted to add speedrunning with/without rings for more variations, but I got caught up in technical stuff. I’m currently focusing on cutting the game code and level memory usage to make it work in a native PICO-8 cart.
I don’t know how much time it will take though, so at the same time I’m setting up my next fan game which should have more room for tunable difficulty and speedrunning.
Yeah maybe cut some Game Code/Level Memory so can add more things.
Pro Tip: You could try cutting the games looks in half.
how do i play this? it's got multiple p8 files. I want the p8 (or else png) to run in an emulator for a linux handheld, so plz don't mention browser or buying pico8
As explained in the Disclaimers, the game currently doesn’t run on a native PICO-8 (mostly due to my custom patch to remove token limitation)… but I haven’t tested it on unofficial emulators (fake-08, zepto8) - I also use a Linux handheld, it uses ArkOS and zepto8 as fallback, but since I already own PICO-8 I just installed it instead and never got to try the emulator. So if your emulator has an option to ignore token limitation, it may be able to run it. Otherwise it will fail as soon as you enter in-game, with a token limit error message (but you should be able to see the title menu and maybe the stage intro).
I don’t have my handheld at the moment, but I suppose it would play multi-carts the same way as single carts: put all the .p8 files together in the usual carts folder, at the same level (in ArkOS each console has a dedicated folder, but they apparently keep the pico-8 folder itself for the official binary if you have it, so instead carts go to a sub-folder /roms/pico-8/carts). Alternatively, the .p8.png should also work.
Unfortunately, I cannot give you more information without knowing your specific setup, and the doc for your platform/emulator will probably be more useful to you. There is nothing special with the game itself so if you can run a single-cart game, you can probably run a multi-cart game the same way. The token limitation break is your biggest issue and it’s not specific to Linux/emulator.
I’m curious if some emulators can run the carts so tell me if you can make it work!
P.S.: and obviously there is the solution to run the Linux binary, I have done it myself but it was a hassle on a GameBoy-style handheld: I had to plug a keyboard via USB, press a combination of keys to enter Terminal mode, use the keyboard with command line to navigate to the game’s Linux binary and run it… And I’m not even sure input mapping was correct. So I didn’t recommend it to you. I wish ArkOS had some “Other” category where you can run arbirary binaries and it still provides you with some input remapping overlay, like Steam Big Picture + add external games to your library. But I get it’s not really it’s original purpose.
Awesome job! I no joke would love to see more levels.
Nice game! :D
wow this game is actually cool
its funny watching the game crash when you hit reset cart (dont fix it please)
Are you talking about PICO-8 intentional visual glitch effect on reset? Yeah I find it cool too. If there’s an actual issue with reset though, it’s much more problematic.
The gray gems just isnt there
i found it but how was I supposed to figure that out? I just jumped randomly and got it.
Sorry, I have yet to add the shiny particles effect that was supposed to hint at the location of the emerald behind the leaves (it’s still visible but only by a few pixels). Same thing for the green emerald. I’m busy with other projects at the moment so I don’t have an ETA on this, but I’m glad you could find it!
finally finished it! the second one took me embarrassingly long to find hehe. really enjoyed the game tho!
Played a lot of Sonic on Game Gear. Takes me back!
Thanks! I never got a Game Gear, so I played most of the titles inside Sonic Adventure DX (also read they’d be put back in Origins). I admit it was harder to appreciate them so many years in the future, and after playing Sonic 1-3&K many times, but I had a few favorites. Oddly enough, my favorite, Tails Adventure, was not a speed platformer, but I really liked how Tails would auto-climb higher ground! I wanted to make a pixel art game with carefully crafted animations like that! (which… pico sonic doesn’t really have, but hopefully my future games will!)
Thits so Nostalgic, i love it!
So cool to see a new update of this great :)
But like ever i can't play it because you are not using the official engine and i can't launch it in Batocera :(
Thanks!
For vanilla PICO-8, my last hope is to use PicoMap to reduce token/character count as explained in the last devlog. I’ll post a major update devlog if I manage to do this.
For Batocera, I have yet to upgrade the project to the more recent PICO-8 versions for 64-bit support (I assume it’s the reason for incompatibility according to https://forum.batocera.org/blog/6891-pico-8-official-becomes-64-bit), in fact code should be completely compatible, but patching a new version of PICO-8 is what takes time… and with PicoMap, I may not need patching anymore (or just the first patch to unlock token count, which is trivial compared to fast reloading patch, required by my custom multi-tilemap system), so it may not be worth the effort and I prefer waiting for PicoMap integration before upgrading PICO-8 once more.
Ok i understand, it's really not easy ...
But if you think Pico-8 will add PicoMap later, for sure it can be a good idea to stand for it and use it. In Batocera i use every time the last engine. To me the best compatible possible. Thanks a lot for your answer
Actually I got the same issue with my Anbernic on ArkOS. I eventually managed to run some PICO-8 games as executable binaries by switching to the terminal. It’s not really convenient and I don’t remember if all inputs were working, though.
On Batocera it seems that you can display it on the interface by adding a launcher script: https://www.reddit.com/r/batocera/comments/mrpx2o/native_linux_games/
For my game, a native PICO-8 version will be better eventually. However I’m still interested in running Linux games on portable consoles in general, I’d be able to add standalone indie games that run at lower res!
Hi, thanks for your answer, for sure i know we can launch linux games on Batocera, i do it some times, and without script, it is already ready to use in ports games that can launch a .sh file.
But it is not my goal, my pico8 games are all in pico8 directory, ready to launch with the readl pico8 exec. It is the best way to play them, and have all of them in the same place. It's why i always ask creators to share a PNG game format and use the real engine :(
I understand you use a modified one, but i don't really understand why ... when i see Doom on VRRacing or so many other games that tric the official pico 8 engine to work... and it works :) But maybe it is hardest to release, i don't know ... ?
Got all 8 Emeralds on my first try, really nice game too.
You can do it! But I admit green on green is easy to miss, I’ll think about ways to make them stand out a little more.
hmmmm
but is a video at me not works :(
i got them all! :>
you couldnt add tails and other things because of some limits that the system has. but there *is* a way that you can bypass the limit. if you open up the p8 file using an code editor you can write any code without thinking of the limts pico 8 has.
its gooder than orginal 8 bit sonic games
awesome game I hope to see more in the future
Thanks! I’m working on a cosmetic update.
Nice I hope to see it and wish you the very best
we need more (or a dlc)
Best game I have played today
I GOT ALL EMERALS (:
wowee me too
Good job!
thank you
А я все собрала, кроме зелёного
I've got all emeralds except the green
:((
That was beyond stellar. I couldnt find the grey, but got the others. Is there a music conversion program you use or did you manually recreate it in the pico8 music maker? And is this the default pico8 mapspace or did u use some kind of extended memory method? Is this going to go up on splore? Curious how u madeout with the sprite editor etc.
Very good question!
I explained the audio conversion process here: https://github.com/hsandt/sonic-pico8#audio-1
Sum-up: I worked from 8-bit remixes made by danooct1, then used FamiTracker to export source files to midi, followed by midi2pico. I still had to manually edit notes a lot, because I had to put everything on 4 channels to leave the 4th channel free for SFX.
For the level, I coded my own map streaming system: the level is made of sub-maps, each one being a standard PICO-8 map. When the camera gets close to a sub-map’s edge, the game automatically load the neighboring sub-map (combining half-maps when crossing horizontally or vertically, and quarter-maps when crossing diagonally). I use the general memory as a “buffer” for the copy-paste operations. However, this still requires a reload from cartridge operation when reaching new regions, so I had to patch PICO-8 binary to hide that extra loading time (with the new general memory at 0x8000 it may be possible to store more maps in live memory, I haven’t tried it yet). It also means that I did nothing special with the sprite editor (although I have multiple cartridges to store extra spritesheet, e.g. one dedicated to the title menu, one to Sonic, etc.)
For a future version, I’m considering using PicoMap (https://www.lexaloffle.com/bbs/?pid=91798) which handles everything from map data stored in runtime Lua memory. However, it is not compatible with the existing tilemap, which means I’d have to redraw the full map in PicoMap, and I don’t know how much time that would take… But something to keep in mind for future projects.
It’s not on splore for the reasons above, that it requires many cartridges for the title menu, intro/ending sequence, and above all the level data; and also that it requires binary patches to work. If I can make PicoMap work, we could have a single cartridge version running on vanilla PICO-8 with just the in-game (level) part.
Another PICO-8 game called “Dungeon Witches” did it, but I’m unsure whether or not it’s possible for this one yet. As an alternative, I could make a small demo level like bonevolt’s Sonic 2.5, which was also running on a single cartridge.
This is a really good recreation of Angel Island, even with more limited color pallets than that of the Genesis, this is visually great and a blast to play. I can't wait for more of this!
Thanks! I can’t promise more content on this specific game, but I intend to work on more platform games one day!
I'll be looking forward to it then!
I've got them all
Congrats!
bro thats acrually sick
This is great, also my favorite emerald is the yellow one, you see it when you go on the jump ramp, but you have to drop from above to get it. Or you could hold right while spindashing off the ramp which isn't obvious, but feels better.
I LOVE YOUR GAME !!!
THIS IS AMAZING!!!!!!!!!!!!!
This is really cool! I did find a bug (I think it's a bug but there's always that small chance it's intentional) that allows the player to screen warp all the way to the end of the stage, it happened at the ramp after collecting the brown/8th emerald. again this demo is really cool and I'm glad it was made!
Thanks!
Wow, okay, I just fixed the bug that allowed you to fall below the ground and move to the end of the stage, but I didn’t know about this one. How do you do it?
You’re talking about the curved wall after the spring after the 8th/brown emerald right? (not the launch ramp before the yellow emerald)
Is it similar to the “wall escape” technique used by speedrunners on the Genesis games, which consist in entering a wall and running toward the left to get projected toward the right?
Yes I am talking about the curved wall after the brown/8th emerald, and yeah it was exactly like screen warp/ wall escape technique, it was the first thing I thought when I understood what happened and that's why I was unsure if it was intentional or not. The bug only happened on my first playthrough and unfortunately I haven't been able to recreate it since, I'll let you know if I do it again. but I remember using a spin dash while holding towards the right of the wall, I hope this works
is there some type of way to go super sonic if you restard the game with all emeralds?
That was the super nice-to-have feature on the list, but got dropped… Data change (increase speed) would probably be cheap, and it’s super cheap to recolor Sonic’s blue in yellow (as in the original game), but in reality you’d need dedicated sprites for most poses due to hair spikes change, and that would go out of budget (unless it was distributed on a separate cartridge!)
that seperate cartridge thing is actually a good idea
Time for some "Lock-on Technology"
In fact, PICO-8 uses that (almost), you can grab data from other cartridges, just not code! In fact, I’m already at the limit, using all 16 cartridges… But I guess I could merge a few of them.
This is such a good demake! Fantastic job
Thanks!
we need a tails version (not saying you have to)
It was in the original plan, but dropped when I hit PICO-8’s code limit and realized the Fly mechanic would go over the limit (also I’d have to adjust levels to make emeralds harder to get, unless I make playing with Tails the “easy” mode).
where green
Look up!
o
How did you know about my secret plan?! It turns out that after Sonic Mania, both Sonic Team and Evening Star will be working on 3D platformers, and I won’t be applying to them any time soon… But I’m glad that what started as a “tech demo for my portfolio” ended up as a proper experience with an actual level to play through.