tac08/RG350
A downloadable emulator
NOW WITH PNG SUPPORT!
tac08 is an emulation of the runtime part of the Pico-8 fantasy console. It takes a .p8 (text format) or .p8.png (png format) Pico-8 cart file and runs it closely as possible to the real Pico-8 software.
This version of tac08 has been compiled to run on an RG350 handheld console and compatibles (such as the Pocket Go v2 & the GCW Zero).
Many thanks to all that have donated to the project so far. Both financially and with kind words. Your generosity has been most surprising during these difficult times.
The Games are provided on this page in the file sample_games.zip are written by myself, no games written by third parties are available on this page. Game carts must be saved from Pico8, in order to play on this emulator.
This emulator is still very much in development, while testing I have found that most games will play just fine, there may some that do not play correctly at all, please leave a comment if you find a cart that does not work.
This following items still need work:
- Sound: While sound is working now, work is still needed to implement all the effects pico8 uses.
- More compatibility improvements.
If you enjoy this emulator please consider making a donation, this will allow me to continue development and in the future support other consoles.
Enjoy!
version history:
- 0.0.1 - 02-JUL-2020 - initial version released to itch.io
- 0.0.2 - 13-JUL-2020 - Much better performance. Neary all games run at correct speed. API compatibility with pico8 0.2.1b
- 0.0.3 - 29-AUG-2020 - Sound working
- 0.0.4 - 09-SEP-2020 - Minor API compatibility fixes & RG350 X & Y buttons mapped onto Pico8 buttons so that any 2 adjacent button can be used as the 2 Pico8 buttons.
- 0.1.1 - 14-OCT-2020 - PNG, multicart and lots of other fixes. check out the devlog for this release.
- 0.1.2 - 15-OCT-2020 - fixed bug that stopped some older png carts from loading
Status | In development |
Category | Tool |
Rating | Rated 4.6 out of 5 stars (10 total ratings) |
Author | 0xCAFED00D |
Tags | Emulator, handheld, PICO-8, rg350 |
Code license | MIT License |
Install instructions
- Download tac08.zip and extract the taco8.opk file.
- Take out your SD Card from the RG350 and insert it into your computer.
- Copy the tac08.opk file to the /APPS folder on the SD Card
- Make a "pico8" folder in the /ROMS folder on the SD Card.
- Copy your carts to the /ROMS/pico8 folder.
- Your carts can now be either in TEXT (cart.p8) format or PNG (cart.p8.png)
Development log
- v0.1.2 - bug fix.Oct 15, 2020
- v0.1.1 - PNG support!!Oct 14, 2020
- Coming soon.....Sep 27, 2020
- tac08 v0.0.4Sep 09, 2020
- full screen on rg350m fix test.Aug 31, 2020
- Sound!Aug 29, 2020
- tac08 0.0.2Jul 14, 2020
Comments
Log in with itch.io to leave a comment.
a bunch of games don't work. Hope you update this sometime soon!
Hellooooo, any update in 2023 ? with your opk i can playing with lot of pico game, thanks again !!!
You can ask some money for an update ? It may be good for the motivation...
Well, very good job... a new released this year ? ... to have more games running on Tac08.
any hints for running this on rg280v?
It's running on RG280V, i have it.... BUT not the last games. We need a update for TAC08..... The question is : A new release this year ?
Will it run on rg351v?
no, but I'm sure you can run the actual pico8 on that machine as it has an arm cpu
It sure can, but I don't consider it worth the 15$ I would rather use taco as I only want terra the terraria demake.
Hey man! I have been enjoying playing pico-8 games on my Anbernic rg280v, all thanks to the hard work you've put into the tac08 emulator. That being said, I am having trouble playing about half of my game library. The two most common errors are acting like the cartridge is about to boot and then kicking me back out to the cart selection menu, and the other issue being "Error in cart" followed by the file path followed by a description of the error and then "invalid escape sequence near" etc. etc.
Long story short, I was wondering if you plan to make the tac08 emulator more compatible with the RG280v device?
And if there is anything I can do that would help that process? I don't have any background in programming or coding, but I am willing to learn if it means getting my favorite pico8 games running on my favorite handheld. Thanks!
Hey man. I got your emulator, and I can't make it work
When I give it a .p8.png file, it gives me the loading screen, blacks out the screen, and then crashes.
When I give it a .p8 text file, it gives this error:
$$cartloader.p8$$.error
When I reset from there, it gives this error:
$$errordisplay.p8$$.error
Wondering if you could help? Thanks!
anyway to know compatibility version of pico-8?
Thanks! Great work! I love my RG350 & PICO-8. Please update ASAP!
Just donated $5, thanks for the great work! It would be awesome if Celeste Classic 2 was running!
Hi anyway to get updated source code ? Or get an updated version for powkiddy v90 / new bittboy / pocket go on MiyooCFW ?
no, it doesn't, however as it uses an arm CPU that same as a rg351 the standard version of pico8 should run on it?
Good to know ! I was thinking of updating but not if it cancels out this marvelous emulator. Thanks for the heads up !
(updated 05-20-21)
Hi, wanted to know if you had done anymore work to this. While this runs some of the Pico-8 library on my RG-350, it runs none of the carts I wrote. Why ? I use FLIP() and fixed loops, not _Update() or _Draw().
Currently I donated $2 as this is the amount you suggested and if you can get your Taco to run this code listed as well as the command CSTORE() which run fine in Pico-8, I sure would appreciate it and I will donate an additional $40 in support of your work.
$20 for getting FLIP() to work.
And an additional $20 for getting CSTORE() and MEMCPY() to work (it must be both) so I can load/save the sprite set at 8192-bytes which I normally use for extended saved data.
repeat
for i=0,127 do
for j=0,127 do
pset(j,i,rnd(16))
end
end
flip()
until false
CSTORE() that comes with Pico-8 is not recognized as a command in your emulator. This command is vital when it comes to saving off external files. Without it you are limited to accessing only 256-bytes of remote memory per program. A serious limitation.
So even more than getting the code above to work is CSTORE().
Also Pico-8 is now at version 0.2.2c so there is a lot of catching up for you to do if you so choose !
https://www.lexaloffle.com/pico-8.php?page=manual
Hope to hear from you soon ...
--dw817
It is great. It works with RG-280V.
I donate, support the completion of tac8, which works more perfectly.
Hello, I´m trying to work on a parser/serializer for p8 files, have you open sourced this or anything that could help me with thits? thanks
EDIT: I found the repository on github, will take a look, but if you don´t mind pointing me the file I should read, it would be helpful! thanks
EDIT2: I´m guessing this one? https://github.com/0xcafed00d/tac08/blob/master/src/pico_cart.cpp
Hello , I noticed that the git repository of this project didn't get updated in quiet a while. Was it abandoned or are you planing to make further updates?
It looks like the last update on the git repo was march 2020, and the last update here on itch.io was much later, in october 2020. My guess is that the developer chose to go closed-source with this project.
Any chance to see this working on ps vita? Or is it even possible, given the ps vita hardware?
https://vitadb.rinnegatamante.it/#/info/623
Put the png gane in ux0/p8carts
Crashing with celeste classic 2
https://www.lexaloffle.com/bbs/?tid=41282
thanks for reporting this I hadn't had a chance to test It. currently I'm trying to get poom running, I'll look at Celeste 2 after that
thanks, fixed now, will be in the next release
You rule 😎
Hello! I have played many games on pocket go 2 thanks to your emulator :) Is it useful to bring bugs to you? Below are copies of recent crashes (thanks for log file saving!); I don’t know which are things added to lua by pico8 that are not yet supported by tac08, or which are bugs that the game authors should fix (but I assume that games work with pico8).
pieces of cake: plays, gets some graphical glitches when there are combos, then at some point restarts
arcanenectar-0.p8.png:273: title_goblet:update(): attempt to index global ‘title_goblet’ (a nil value)
cyclo-8.p8.png:289: local disty = abs(s-j): attempt to call global ‘pal’ (a table value)
deflektor.p8.png:105: self.state.entitylist[idx]=nil: bad argument #1 to ‘remove’ (position out of bounds)
flipknight-0.p8.png:94: copytable(self, obj): bad argument #2 to ‘remove’ (number expected, got string)
frog_home.p8.png:244: local dy+=(self.my*2): unexpected symbol near +=
moonmissions.p8.png:557: stars[star_screen_x][star_screen_y]={}: ‘end’ expected (to close ‘do’ at line 553) near <eol>
wolfhunter-0.p8.png:174: print(line, x, y, color): ‘end’ expected (to close ‘do’ at line 170) near <eol>
thanks for reporting these. Some have already been fixed, currently I'm trying to get poom running, I'll look at some of the others after that.
I tested this on an RG350P, and unfortunately non of my three pico-8 games run very well. Mostly just poor framerate, but the audio doesn't sound right either.
So cool! Love having pico8 running on handheld hardware.
I'm also a RG280V user so if you ever find the time to fix the errors the others have been reporting (mainly frame-rate being at 150%) that would be awesome.
Added a small donation, keep up the great work!
I updated the firmware on the 280V as MehStrongBadMeh mentioned earlier and that solves the framerate issue. The main bugs I notice now are that the music doesn't sound right in many games and sometimes some graphics are missing.
What firmware version did you update to? I just updated my 280V to OpenDingux Beta 2021-01-12 but now I'm just getting black screen for tac08.
Ok, just read MehStrongBadMeh response where he mentions the firmware :)
Added a little donation as an incentive for you to try some of my pico8 games on this. So far, I haven't been very successful with them (Quasar Kid seems to try but the framerate is really really bad).
Anyway, keep up the good work and I look forward to future update to this :)
thanks for the contribution! I'm currently working my way though a list of compatibility issues so will gladly any issues in your games to the list.
Exciting!
Just got set up on my new RG280V. Running into a consistent problem on stock firmware where it is running the games too fast. For example, most 30fps games end up running at ~46fps. This, predictably, leads to them playing at about 1.5x speed as a result, making things very hard. Not really sure what is causing it. No other apps on my RG280V are experiencing this speed issue.
Beta firmware results in a black screen on launch, so that is a non-starter.
I did a check with a stopwatch. It does run about 50 % faster.
I have seen this with one or 2 games on the 350, but its interesting that it does it all games on the 280v. I'll have need to have a look at the frame timing code. i suspect its skipping frames when it does not need to.
Interesting development. The Stock-Based Rogue firmware for RG280V was just updated to v1.7.10u7 which, seemingly accidentally, fixes this speed problem in Tac08. Carts now run at the proper speed while using this firmware.
thats odd. its strange it do not affect other emulators. I'm still going to give the frame rate code a good going over though
Finally received my RG280V and tac08 looks great on it! 😀
Feature suggestions: Would it be possible to enable an option to swap A and B? Also if L1 and R1 could double as A and B one could play racing games or FEZ more comfortably (also swappable)
Bug report: 1. when loading API.P8 (part of a default install) the flipped recolored bunny sprites don't show up.
2. In the lower right corner the vertical text does not show up (the text on the left and on the right side uses two variants of looping through a list that LUA provides, apparently only one works.
3. There is a Poke 0x5f2c command to change the internal pico-resolution to 64x64, for example in cart Nyan cat. That does not work. See cart #14897.
4. Super Poulet Poulet and it's soundtrack run about 10 to 20 % too fast. (On the Pi 0 they run too slow)
thanks for the reports, the next version will have a config file you can edit to change things like button mappings.
Added a contribution too by the way.
Thanks, it is very much appreciated.
Your emulator is just awesome !!!
I just upgraded my rg350 to the new opendingux beta and now, I only have the sound working. Screen remains black.
Can you have a look and give it a fix ?
This New OD have New drivers, ipu... Also works on gcw0 ! Would be great.
Thanks
it's on my todo list
Is there a way to change the screen scaling? I run it on an RG350M and the scaling is full-screen non-integer which looks uneven.
the next version will have a configuration for setting screen options.
Looking forward to it!
I also wanted to add that I got the RG350M mainly because of your fantastic work. Thank you!
That's cool, because I got into pico-8 after watching your fantastic breakout hero videos!
@Krystman See my review of the RG280V as the most pico PICO-8 handheld yet. Because of it's higher resolution there a practically no scaling issues.
@pixelpunker There are different RG350s. The RG280V has a higher resolution than the original RG350 but lower than the RG350M. Also you say no scaling issues but I see you rocking a 128x128 Pico8 full-screen on a 480x320 panel. If you can't see that it doesn't scale evenly I'm going to take your impressions with a dose of salt.
The ratio of input to output resolution with this panel is 2.5. While this does not allow flawless scaling the resulting pattern is very regular: 1 original px is mapped to 2, then to 3px, then to 2 and so on. I come from a gpicase with a 320x240 panel where this pattern is totally irregular because of the ratio 1.875.
Yes, you can still see it, mainly in some lines of text, but barely. And I prefer the sharpness of this approach to the blurriness of bilinear filtering.
There is a best of both worlds though, you do an integer upscale, then a bilinear downscale. E.g. I set my pi0s internal resolution to 1024x768. If you have high enough dpi like we have in todays smartphones the issue tends to go away.
Love it so much! Thanks for your hard work on this emulator. So happy to be able to play Pico-8 on my RG350M.
Glad you are enjoying it!
Thank you for your excellent work. I do have a problem on my GCW Zero though. The game will load and seems fine, but none of the buttons seem to work. Am I doing something wrong?
That's odd. I've had reports from people who have the GCW Zero that it works OK. Are you running the stock firmware or something custom?
That was it! I was on the may firmware, and I did the 8-20-2014 update, everything fixed it's self. Thank you!
good news! Glad that helped. Enjoy!
Any chance of a version that will run on the Retroid Pocket 2. Thanks
That would be amazing! I have an RP2 ordered, and the only thing that makes me sad about moving from the RG350 to the RP2 is losing tac08.
Looks like 4 Giga Boss Fights has text palette issues in tac08 - the boss kill counter is yellow when it's supposed to be white, and the white text for the title screen and boss name splash screens renders as the same black as the background, making them unreadable.
Thanks for all your hard work!
Thanks for the report. There are so many games its impossible for me to test everything, so I rely on reports like this to help find compatibility issues. I've added it to the list for the next compatibility fix update.
oh, and thanks for the donation. 😁
I've fixed this. it will be available in the next release, when i've fixed a few other compatibility issues.
Very excited about this update! I'm going to do another video on Tac08 later this week. Thanks for all of your hard work!
Cool, I'll look forward to that. Would you mind If i put links to your webpage/videos on the tac08 product page? I think it would be helpful for new users setting up the emulator.
Hi, absolutely, thanks for asking! Always happy to help.
Heya, here is the new video:
Really great video!
Hey 0xCAFED00D, I had asked a month or two ago about porting tac08 to RetroFW and you seemed willing to look into it. Since then, one of the talented RetroFW devs took your most recent posted source and was able to port it without much hassle, but it is the older code from before you had sound etc. working. Aside from that, it worked fantastically.
Do you plan to release the updated source in the near future? The dev in question is possibly willing to port the updated code to RetroFW, and possibly also Bittboy, and GKD350h, maybe saving you some time and effort and helping spread the love :)
If I could I would release the code now, however for reasons I cannot go into in a public forum I am not able to at the moment. Hopefully soon.
Is there a compiled version for bittboy / pocket go v1?
it's on my to-do list.
Thanks. It will be welcome.
Thank you so much for this! I opted for $10 in the "Name your own price", because that's still a steal for this amazing app. Pico-8 is such a perfect fit for the RG350, and the games work beautifully. Really looking forward to the .png support in the next version!
Thanks for the comments and donation. Every bit helps a great deal. It's taken a bit longer to get the PNG loading than I initially hoped it would, but it's looking good for a release before the end of the week.
Awesome! No rush. I know development takes time. I always run into 100 unexpected issues any time I hit a new part of an API, file spec, etc.
We all really appreciate the app. It adds so much value to the RG350!
thank you for this superb emulator. I have problemas running multicartridge games like picoware or picoarcade.
the next version will have multicart support! Coming soon!
I cannot get the Ad Astra demo to run. Just black screen. Perhaps I am doing something wrong? Also, would it be possible to support .png as the ROM format?
The Ad Astra demo seems to work ok. Make sure you are running the latest version (updated this year by zep) as the original version released in 2016 is not compatible with current versions of pico8 or tac08.
Yes. PNG support is on my TODO list. 😀
I used the source from this link https://www.lexaloffle.com/bbs/?pid=26835, which does not work in the emulator on my PowKiddy Q80 (I am using version 0.0.4 from Sep 9).
I could not find any newer build. of the demo
Just taking the source from the BBS page is not enough, as it is not in the correct cart format and does not contain any of the assets (sprites, maps, SFX, music). Load the cart into pico8 and save the game out as a p8 text cart.
Ahh, thanks.
0xCAFED00D is there any way you could or would be willing to port this to RetroFW? It is closely related to OpenDingux and PICO 8 games would be very well suited for the devices that run that firmware
https://github.com/retrofw
Side note: I'm using this on an RG280M, it works near perfectly there, no resolution issues, just the known issues with sound effects and a small selection of games not working. This is currently my favorite reason to own a 280!
I'm currently working on a number of compatibility fixes and a port to another platform (I'm not going to say what platform yet!) after that I'll have a look into retrofw. Thanks for the report about the rg280M.
Awesome! Thank you so much for the great work and willingness to consider other platforms. PICO 8 is awesome and just seems so perfect for hhandhelds. Thank you again!
This would be so incredible! I commented on your Youtube video (thanks for the reply)! Pretty please port it to as many platforms as you can I want so badly to be playing this on my handhelds! (currently using Bittboy PocketGo V1 and Android phone) Thanks so much for all your hard work! Fingers crossed! Any way to get a notification when you drop this?)
Sorry, didn't see your message on youtube. The best way to get a notification is to follow me on itch.io
Not to worry you did reply to me on youtube! My username is just different :) Thanks again for all the great work, I'll keep my fingers crossed!
Hello again CafeDood! I asked around the Discord community and one of the talented devs there agreed to try to port your fantastic tac08 to SDL 1.2 and RetroFW. However, the source files on the github are older, from March, and don't contain any of your recent improvements including working sound.
Is there any way you might be able to post the updated source?
Edit: I'm sorry, I was reading the older comments and see you did say you would not post updated force until you were happy with it. That said, once you do, it looks like the port to RetroFW will be a done deal.
The recently released RG280V would be a perfect fit for PICO-8 because of it's tiny form factor. As it's the same chip as in the RG280M it should run fine however the 280V has a different screen resolution: 480*320 with a 4:3 aspect ratio (non-square pixels). Would Tac08 look correctly on this device?
Because of the non-square pixels of the RG280V the image would need to be scaled up to 360x320 to look perfectly square. To increase the sharpness it would be best to do an integer 6x upscale to 768x768 and then do a bilinear downscale. I noticed a big increase in sharpness while doing something similar for the GPIcase's screen.
That, an interesting technique, I had not thought of that. I'll have a play with it and see what I can do.
Here are two images, one bilinear upscaled from 128x128 to 320x320:
Tthe other is integer-upscaled to 768x768 and then bilinearly downscaled to 320x320.
thanks for the info, I've added this to my to-do list.
It should do, I dont have one, but so far no one has complained that it doesnt. :-)
This is great! I've played about a dozen games with this and they run perfectly.
I have noticed a couple of bugs for certain carts on my RG350M where behaviour is different than on the Pico-8. I don't know if you want to go through the trouble of playing these games to reproduce the bugs, but I'll report them anyway:
Dank Tomb: After finding a save point, if you quit the game and launch the cart again, it does not load properly. The items are glitched out in the bottom of the screen. (Save point is a bit of a ways into the game, at some point it will tell you it saved progress.)
Mystic Realm Dizzy: When talking to a character, the text does not display/wrap properly. The closest character that demonstrates the bug is to the left of the starting point on the other side of the water and past the bees.
Thanks. Reports like these are really useful, as it's hard for me to find the time to play every game fully (as much as I would like to!)
I'm currently working a round of compatibility fixes in around 5 or 6 games that have problems and I will add these games to my list.
Quite often fixing a problem with 1 game will solve the problems with many.
Thanks again for the feedback and the really detailed reports.
Noticed following issue:
Tower of Archeos : gives a script error, after selection of the game mode
Hope this info helps in finding the problem
thanks, that's really useful. I'll add it to the list.
This is now fixed. I'm aiming to release a new version in a few days
Great, eager to try it out
These 2 bugs are now fixed. You may need to delete progress from the games menu, in dank tomb, as it may have corrupted the save file. I'm aiming to release a new version in a few days
That's awesome! Can't wait!