Switch P8: Difference between revisions
From GameBrew
More actions
Created page with "{{Infobox Switch Homebrews |title=Switch P8 |image=switchp8.png |description=Pico-8 emulator. |author=voliva |lastupdated=2025/06/25 |type=Computer |version=0.3.2 |license=MIT |download=https://dlhb.gamebrew.org/switchhomebrews/switchp8.7z |website=https://github.com/voliva/ps4-p8/ |source=https://github.com/voliva/ps4-p8/ |donation= }} An emulator to run pico-8 cartridges on a Switch built on [https://devkitpro.org/ devkitPro]. Pico-8 is a Fantasy Programmable Console..." |
No edit summary |
||
| Line 4: | Line 4: | ||
|description=Pico-8 emulator. | |description=Pico-8 emulator. | ||
|author=voliva | |author=voliva | ||
|lastupdated=2025/ | |lastupdated=2025/07/05 | ||
|type=Computer | |type=Computer | ||
|version=0. | |version=0.4.1 | ||
|license=MIT | |license=MIT | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/switchp8.7z | |download=https://dlhb.gamebrew.org/switchhomebrews/switchp8.7z | ||
| Line 44: | Line 44: | ||
== Changelog == | == Changelog == | ||
'''v0.4.1''' | |||
*Features | |||
**Custom font compatibility | |||
**Support games with their own rendering loop through "flip". Save states for these games will not work yet. | |||
*Compatibility fixes | |||
**stat(table) should behave like stat(0) | |||
**printing backspaces | |||
**stop looping SFX after length mark | |||
**tonum("") should return empty instead of 0 | |||
**time() should go in exact intervals based on frame rate instead of the actual time. | |||
'''v0.4.0''' | |||
**switch: Move all application data (cartridges, savestates, etc.) to /switch/switch-p8 to reduce clutter. | |||
**enable pico-8 saves without needing a specific folder setup. | |||
**splore: add a context menu accessible with "pause" (button +) to save a BBS cartridge to the local SD. | |||
**local cartridges: add a context menu to delete cartridges from the local SD. | |||
**add animation to splore cartridges | |||
*Fixes | |||
**implement pico-8 load() function, a function that loads external cartridges. | |||
**avoid skipping too many frames | |||
'''v0.3.2''' | '''v0.3.2''' | ||
* Fixes | * Fixes | ||
Revision as of 09:04, 13 July 2025
| Switch P8 | |
|---|---|
| General | |
| Author | voliva |
| Type | Computer |
| Version | 0.4.1 |
| License | MIT License |
| Last Updated | 2025/07/05 |
| Links | |
| Download | |
| Website | |
| Source | |
An emulator to run pico-8 cartridges on a Switch built on devkitPro.
Pico-8 is a Fantasy Programmable Console made by Lexaloffle Games. This emulator is compatible with built pico-8 cartridges in PNG format, to build your own games you will need the original Pico-8 console
Project status:
- This is a work-in-progress. Compatibility is still limited, but there are many cartridges it can run already.
print: It prints text on the screen, but it's missing some P8SCII control codes, non-ascii characters.- Sprites: Done
- Sfx: Playable. Room of improvement for sound quality, and sound filters are missing (damp, buzz, reverb, etc.)
- Music: Playable.
- Menu: WIP.
- Memory manipulation: Almost complete.
- Maps: Done.
- Custom P8-Lua: Some edge cases missing.
Features
- Modified lua interpreter compatible with pico8's lua.
- 16-bit fixed point decimal arithemtic just like pico8.
- Save states (at the moment simplistic, one save state per cartridge).
- The most used predefined pico8 functions are implemented: 90 functions implemented out of 105
Installation
Copy the .nro to sdmc:/switch/SwitchP8/.
Release comes with a set of bundled games which have been used to improve the compatibility.
More .p8.png cartridges can be bundled with the .pkg file by adding them into /assets/misc folder, or they will be loaded in runtime from console's /data/p8-cartridges folder.
A list of some playable cartridges can be found here
Changelog
v0.4.1
- Features
- Custom font compatibility
- Support games with their own rendering loop through "flip". Save states for these games will not work yet.
- Compatibility fixes
- stat(table) should behave like stat(0)
- printing backspaces
- stop looping SFX after length mark
- tonum("") should return empty instead of 0
- time() should go in exact intervals based on frame rate instead of the actual time.
v0.4.0
- switch: Move all application data (cartridges, savestates, etc.) to /switch/switch-p8 to reduce clutter.
- enable pico-8 saves without needing a specific folder setup.
- splore: add a context menu accessible with "pause" (button +) to save a BBS cartridge to the local SD.
- local cartridges: add a context menu to delete cartridges from the local SD.
- add animation to splore cartridges
- Fixes
- implement pico-8 load() function, a function that loads external cartridges.
- avoid skipping too many frames
v0.3.2
- Fixes
fget(_, nil)tostring(float)was not showing the correct numbertonum(nil)crash,str[number]indexing was returning null.split()would convert "-" to "0"min()andmax()with nil valuespairs(nil)should return an empty iterator
- p8scii
- inline binary characters (
\^.) - inline hex characters (
\^:)
- inline binary characters (
- Cartridges used to try these
v0.3.1
- Switch version.
- Fix crash on exit, set metadata, update readme, adjust resolution.
External links
- GitHub - https://github.com/voliva/ps4-p8/
- ForTheUsers - https://hb-app.store/switch/SwitchP8