I've been working on tac08 for the last few months and while it is still is in development, its probably at a stage that other people may find useful. Check it out on github here:
What is tac08?
tac08 is an emulation of the runtime part of the Pico-8 fantasy console written in C++. It takes a .p8 (text format) Pico-8 cart file and runs it closely as possible to the real Pico-8 software.
What isn't tac08?
tac08 is not a replacement for Pico-8, it provides none of the content creation components of Pico-8, such as code editing, sprite and map creation and music tools. You will still require a copy of Pico-8 to make games. Also if you just want to run Pico-8 games you will have a much better experience with Pico-8 than tac08
Why was tac08 written?
tac08's target audience are developers that want to do one or more of the following:
- To enable Pico-8 games to be run on platforms that Pico-8 itself does not run on.
- To embed Pico-8 games within other game engines.
- To make it possible to extend the Pico-8 api and allow games to use features not currently supported by Pico-8
tac08 was written for my own personal use (specifically for items 1 & 3 above) but I have decided to open source it as others may find it useful.
Check out the full(er) documentation here:
So far Linux, Mac OSX, Windows is still to be done, Android is in development, so is HTML5 using emscripten.
It should be easily portable to anything that uses SDL2.
It should be also easy to port to any other system that has a framebuffer and some form of input.
All the platform specific (SDL2) code is held in 2 files hal_core.cpp & hal_audio.cpp so once those files have been ported the rest should just work.
One of the things I would like to port it to is a microcontroller (esp32 or arm) with a small lcd display to make a cheap little handheld console.
The thing I'm very aware of is not to make something that would replace pico-8. It would not take much work to add a sprite editor, and map editor etc, then people could easily make pico-8 games without buying pico-8. I don't want to make something that completes with pico-8, and potentially take income away from Zep & Lexaloffle.
Debugging tools are a different matter though, for example tac08 already has that ability to dump API calls with with parameters in real time as the cart runs, just by changing a hash define and rebuilding tac08. I've found this very useful when fixing compatibility issues, so things like memory viewers are not out of the question.
I've created a video of the API dumping in action: https://asciinema.org/a/UrDdi4nHdCHZn6pyRs2qB3aHA
(you cant see the game running in the video as its just a terminal capture)
[Please log in to post a comment]