Log In  

I have seen a number of pico-8 home-made consoles and had an idea: what if there was a pico-8 operating system, designed for making that sort of thing.

--If I am confusing or missing big parts of the idea, please let me know!

here is what I came up with:

1 .p8cart file:
this is a (renamed) folder formatted like this:

------.p8cart folder------

game.p8
data folder
subcart folder

--data folder--
this is where the game data saves to
--subcart folder--
all extra cards loaded by the main game go here

old idea:

Main OS:
-gets up, down, left, right, Z, X from up to 2 input sources (2 controllers for example)

-creates it's own save location (so it is entirely self contained)

-loads custom filetype (more on this later)

-free?

-NO EDITOR OF ANY KIND

Interface:

-has folder for local carts

-searches for special filetype on any external devices (ex:usb)

-only one tab: games
this tab would list all local carts, as well as any carts found on a external device.

Special filetype:
-the os would load cart files which would be something like .p8cart
these would be like .p8.png BUT would not allow access to source code/sprites

-can be made with save cartname.p8cart

P#112334 2022-05-26 17:59 ( Edited 2022-06-02 19:25)

good idea

P#112338 2022-05-26 18:42

@zep what do you think about this?

P#112623 2022-06-02 14:46

It is a huge undertaking to make an operating system. I don’t think that it would fit as a lexaloffle project at all.

P#112625 2022-06-02 15:36

A lot of it is really just slight changes to the current system
ex: cart list could just instead list carts from specified folder
new filetype could just be an extension change
save cartdata to local folder, rather than appdata
loads directly into cart list

(the operating system part could just be done via command (not part of the application but done by the user) to run it on device startup and I'm not sure about reading things like usb for data)

P#112626 2022-06-02 15:53

MMMMMM GAMEBOI LIKE
Maybe like a SNES classic menu?

P#112627 2022-06-02 16:13

snes classic menu + favorites tab of splore is kind of my idea

P#112628 2022-06-02 16:17

> A lot of it is really just slight changes to the current system

No, it really isn’t. An operating system is responsible for connecting to all hardware components, managing programs, starting user sessions, displaying windows… It is a ton more than what pico-8 is doing.

P#112634 2022-06-02 17:49

Hmm thanks for pointing that out

P#112635 2022-06-02 17:55

Better new idea: in main post

P#112641 2022-06-02 19:32

(just a note: your youtube and itch links are broken — you’re supposed to put usernames only, not full addresses)

P#115293 2022-08-06 01:13

k

P#115338 2022-08-07 01:17
1

What pico8 really needs is for the at least the player software to be opensourced. I understand why it hasn't been, at the end of the day pico8 is a product. However, we already have the web player. If the official pico8 player was open sourced, it would be easier for hardware projects to run pico8 games. So far, every project outside the pocket chip has had to be essentially made from scratch. Most lack features as well

P#115362 2022-08-07 12:02

unless I remember wrong, zep has said that a runtime library for pico8 will be released some time after we get 1.0. of course the full program will still be interesting for the editors and splore.

P#115375 2022-08-07 16:28 ( Edited 2022-08-07 16:28)

I make arcade machines that are just raspberry pi's that boot in about 2 seconds directly to a pico8 cartridge...is that what you mean?

P#117457 2022-09-15 03:50

uuuh, @queequeg i have a couple of questions. I'm doing that too at the moment and i really want to put it in a bar.
1.Do you use a coin acceptor, and if so, how do you utilize it? My plan is custom games where the "insert coin" thing is just a press from Player3 or 4 using one of the open pins on the controller board.
2.How do you avoid the player getting out of pico8 without stripping the pause button? Or do you strip it and keep one game running at a time?
3.What display did you use?
4.Did you go for one or two players?

Thanks in advance :)

P#117500 2022-09-16 06:08
  1. I have used coin acceptors. I feel like I wouldn't anymore. The amount of money it collects is not significant, in a bar the game is more of a feature than a money maker. Well, I should say that I can rarely find a place to put games. People really don't get it these days. The coin acceptors I used are like 50 bucks too, that's a consideration. I had a thing about coin acceptors but I got it out of my system.
    Anyway yes, just assign a key for the coin acceptor and hook your interface up to the coin acceptor microswitch. I assume by controller board you mean an Ipac or something, which is fine but also costs 50 bucks. What I do now is take apart a USB keyboard, pull out the little circuit board and throw away the rest. There is a little barcode of contacts on it. Hook it up to a computer and go to a keyboard tester website. This is annoying. Take a wire and short out pairs of contacts until you have all the inputs you need. Make a note of which pairs are what (2 from the left plus 3 from the right is one player down). Take an x-acto and scratch off the coating on there, you can't solder to it. Once it is shiny, solder a wire to both and hook those wire up to the contacts of your microswitches on your arcade button/joystick, voila. You've got a free interface- almost free, I find USB keyboards at reuse stores for 5 bucks. I've done this 5 or 6 times and it gets easier. Every once in a while you come across a keyboard that doesn't work for this- avoid the ones with a million media buttons and the really cheap ones. I'm pretty good with dell ones.
  2. Not so much stripping it as not wiring a switch up for it? The only multigame I made was for my kids and not in a retail setting- I stole the code for the "toy box game jam" to use as a menu system and when you load a cart out of that you can use this: load(cartname[cartnum],"back to arcade")
    which adds a 'back to arcade' option in the pause menu. Then I just added a pause button above the player controls so they can hit pause and navigate back to the menu rom. It works great. I've been adding games to it for years and it's over 400. That machine is a one player game, most pico8 games are one player games so I just decided to make it that way. You could also do what old neo geo games did, which was have a multicade with buttons to select which game you want. Just wire up another dedicated button or buttons. I had a game where I put a button on the top of the cabinet that switched between cart, just put a little code in both that loads the other cart.
  3. This is mainly good for smaller machines. I find the biggest old flat screen monitor I can...either at a thrift store or on the side of the road. As close to 4:3 aspect as you can get it...newer monitors suck obviously because they are "pillar boxed" with blank space because of their aspect ratios. But there are still nice old monitors everywhere. True, they don't have HDMI input, so if you are using rPi 3 like me you need to convert it to VGA. There are converters on amazon for 10 bucks or so that strip the audio out which you need to send to your amp. Anyway, with the monitor, stip the bezel off carefully. Careful with the buttons, you want to make it so you can reach those if you have to, and it's not a bad idea to make a note of which buttons are which because they usually aren't marked on the little circuit board. You might want to mess with the brightness and contrast now to get it where you want it for the game. Now, plug in your little raspberry pi running pico8 and you can see where the pico8 will display. You can take some black electricians tape and mark right on the display where the edge of that is. You've probably ended up with a square that is 10 1/4" by 10 1/4". Kind of small, but people stand close to arcade machines. I find the displays good to look at too, it should be pixel perfect with no upscaling or anything. Now you can cut a nice bezel out of 1/2" plywood or something that will perfectly cover everything except for the display portion of the screen. I just attach the bare monitor to the back of the wood with some braces. God forbid the monitor breaks someday. Then, and this is the only expensive thing you can't cheat on, get a piece of tempered glass to cover the whole bezel and monitor. Probably cost you 30-40 bucks. I've used Lexan and it scratches and even deformed slightly from the heat of the monitor.
    You didn't ask but then I send the sound to one of those 12V amps they sell in a metal housing for 12 bucks and use 1 or 2 3.5" speakers for sound. Plenty loud when pointed at the user through a grill.
  4. Depends on the game, most of the pico8 cabinets I made are kind of whimsical, so the ones I made were usually one player. Not for any reason.
    I made an 8 player game (!) but it's not pico8 and it's running on a little PC.
    Happy to help, hope that's all clear.
P#117514 2022-09-16 13:39

Oh I should also mention, you mentioned GPIO, I did figure out how to use the GPIO pins by doing memory pokes in Pico8, I had a game that needed to turn on lights and pumps and stuff so I hooked up a relay board to the GPIO pins of the rPi- HOWEVER I had to do it by running raspbian and booting to a pico8 cart after startup instead of the method I usually use, which I can't seem to find on the internet anymore...it boots straight to the cart? I guess the guy took his blog down. I think his name started with a G. In any case I wasn't smart enough to change his configs so that the GPIO pins were accessible.

P#117516 2022-09-16 14:20

Wow, thanks for that detailed answer! Here is were I am at.
I took an old laptop and installed a really slim linux distro and pico8. I thought i just let it boot straight to splore so you choose a game to display for the given day. I also would have skipped the pause button-but your way is neat, might give that a try. Maybe there should be a category for strictly arcady games with coin implementation. And i donˋt really care about the amount of money going in because i thought it could be a nice charity thing or maybe even a cut for the staff at the given location.
Ill use the laptop screen, so my arcadescreen will be around 11 inches too. Ill see how loud the speakers get, but I'll probably go for cheap secondhand USB-speakers.
As a controller I'm using one of the cheap 10€ arcade kits from amazon and just hook the coin acceptor up to it, mine just sends a blip when a coin goes through.
But the tempered glass is a great idea, i will do that.
I'll try to do an update once i REALLY build the thing :D The laptop and software part is done, but the rest is still missing.

P#117523 2022-09-16 15:10

My experience with laptops in this kind of setup is not great over the long term. Make sure the cabinet is vented well.
It's interesting, having the thing just be networked and using splore but it's not as good for pedestrian use IMO. Might be OK for a makerspace, but I think you'll just walk in and see it sitting there getting ignored on some busted game most of the time. I curated, like I said, over 400 games that I know all work (your half-life demake is one of them, for instance). So it's like a mini version of splore that won't feed people "tests" that first timers uploaded over and over again...
For instance, as soon as there is a new version of pico8 and people post games compiled with that version to the BBS, your machine will need to be updated or they won't work.

P#117528 2022-09-16 15:41

No way, that's very cool to hear! Can't imagine somebody on the other side of the world playing my game on an arcade machine! Thank you!
And yes, venitlation will be key, but it's cheap ultrabook that didn't didnt really use fans. I'll be sure to include an old CPU-fan though.
And that update thing is really annoying. I already have one arcade without a screen(so a controller with a raspi zero w inside) and updating it get's old quick, just like my anbernic with 351elec.

P#117538 2022-09-16 18:19 ( Edited 2022-09-16 18:20)

[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2024-03-29 09:36:29 | 0.022s | Q:36