Technical Side of Things
To run PICO-8 games, I'd imagine the system would be a Linux machine, with a customized OS that only has the dependencies, a theme that looks VERY similar to the PICO-8 start-up screen, and doesn't show output.
(Just a thought) All it would need are the dependencies required to run PICO-8, and a small amount of flash storage that holds the system information (saying this is a well-hacked up version of Linux), along with the PICO-8 software.
Outer storage would probably be best accomplished by an SD Card slot (or a Flash drive, if you wish). The outer storage would be used to hold the games (and I guess also update the firmware), but what should we do if there isn't one detected? We could either run one of the Demo games (kinda like the Sega Master System, but not hidden), or just show a screen that says "No SD Card found!".
Console Design
There are quite a few Microconsoles out at the time of this writing that look just like slabs of black plastic. LAME!
This machine probably wouldn't be very powerful (It likely wouldn't need to be), so it probably could be around the same size, but have vibrant colors and curved edges to it.
If the controllers aren't wireless, no problem! The ports could be in the front!
Speaking of ports, we haven't talked of Video Output yet!
I'm feeling Composite, S-Video, and HDMI (would probably need a good scaler for that).
Practically any connection could work, so long as it can output at least 144p.
We could tuck these in the Back, along with the power cable.
Ah yes, the power cable!
An AC Adapter is handy, but you'd have to get them STRAIGHT from Lexaloffle (which is something that I don't think they want to mess with).
Using DC would be a good choice, since you can get a cable and not worry about breaking your system, but it might take up more space in the casing to convert the power.
Now, for that SD Card Port, it would be convienient to be in the front of the Console, nestled in between the Controller ports (if there are any).
There could be two buttons on the console: MENU and POWER. Let's nestle these near the front.
Finally, the PICO-8 logo would be printed on the remaining space for the top.
Controller Design
Note on Input:
If the input is handled as an 8-bit variable, then it could be handled like this:
It's got the exact amount of buttons that the Sega Master System has (I'm noticing a trend here) if you count the Pause button on the Console, so if need be, we could alter the design of the SMS controller a bit and call it a day, or we could make a brand new design, like I have!
Thank you for reading this wall of text!
This stuff is fun to think about, and I like some of your ideas.
I imagine a "system cart" that is somewhat like the PS4 manager; runs on boot, lets you run/quit/download/delete carts, maybe poke at the hardware a little. The pause button just switches the console back and forth from system cart to game cart.
Unrelated to that..
Sometimes I feel there is a second fantasy console lurking in the background, the Pico-PC. This is what we're actually running when we make our Pico-8 games. In my mind it looks like a magenta VIC-20/C64 with a trackball on the side instead of fkeys.
Creative thought of the pause menu, cheep!
But, perhaps it could be handled by the Dev, by having a "change game" option on the Menu screen of a game.
Also, perhaps the pausing could be coded by the developers, but there could be a "demo" pause function built into every new cartridge that simply pauses the game, and this could be built on by other developers(inventory, status screen, etc.).
EDIT: Oops! I forgot to ask you!
What don't you like about my ideas?
Two thoughts are stronger than one.
Pico-8 reminds me a lot more of the ZX spectrum or BBC micro type early home computers than a game consoles, I think that would be the most logical direction to go design wise. However, this tread was about a game console.
Unless you go completely custom for mass producing, the best bet is to use something already available as the base. I'm thinking of either just going with the Raspberry Pi 2 and building a case around it, or if you want to create your own board and such, use the Raspberry Pi Compute Module. Runs on 5V, it has all the outputs we need and has an easy IO port for additional buttons and features, and should be beefy enough.
For the carts, definitely something chunkier than just an SD card slot.
The simplest way would be CompactFlash, as they are still produced, there are a lot of old cards that are otherwise useless, and <anything> to CompactFlash adapters are very, very common.
So, in theory, commercial games could be sold just like gameboy games were, but home users could use SD card adapers.
Most older consoles had a cart of sorts inside them that ran the main OS with some memory checking and basic stuff, and then transferred the control to the cart itself. Pico-8 could have one as well, basically booting a program with some splash screens and a neat jingle, then autoloading the inserted cart.
AFAIK, loading a new program inside another is not possible at this moment, tough.
[EDIT] seems to be possible with some tricks : https://www.lexaloffle.com/bbs/?tid=2238
Design wise, I'm thinking of something that is basically a cross between the Gamecube and SNES. Pretty close to how it is in the Pico-8 Zine. Maybe slightly less tall.
http://img.itch.io/aW1hZ2UvMzM0NTIvMTQ1MDYyLmpwZw==/original/YrBiE7.jpg
Quote:
Outer storage would probably be best accomplished by an SD Card slot (or a Flash drive, if you wish). The outer storage would be used to hold the games (and I guess also update the firmware), but what should we do if there isn't one detected? We could either run one of the Demo games (kinda like the Sega Master System, but not hidden), or just show a screen that says "No SD Card found!". |
No, IMHO we should drop to Pico's interpreter (command mode) like old computers did with basic. Either USB keyboard would be used for that, or the console would come in keyboard (like old computers). As for using other editors (esp. map and gfx) either we could use usb mice, or the pad itself (d-pad would move cursor and a/b buttons would be clicking).
There's no other joy as developing on the actual hardware
Hmm...
Darkhog, that's pretty good, but that functionality could add to the price of the PICO-8 (But only by $20, for the license).
There could be 2 versions of this system: Consumer and Developer, the latter of which adds a license.
Both would be the same otherwise, but they'd probably need a USB port for the Keyboard.
Compact Flash, pretty good idea John Edwa.
A little bulkier, yet still smaller than a NES cartridge.
Skyrunner, Pico itself is only $15, it's Voxatron+Pico that is $20. Plus if we'd gonna manufacture the thing, I'm sure deal with Zep could be arranged (e.g. free license in exchange for % of sales).
//edit: I'd also love handheld version of Pico-8 console. Obviously no dev tools attached, but it could use same carts.
The "target hardware" page shows a Raspberry Pi running Pico-8. It shouldn't be too hard to make that.
Heck, there's a kit for a microboard computer called the "ODroid" (it's a cheaper Pi clone) that includes the parts needed to make a built-in screen. I gotta wonder how well that would work.
I see it as a handheld that could read the carts optically from paper. That way you could print out carts from the web. The front of the cart would look like the png carts, but it would have a back side that would be some kind of QR-like machine readable barcode, possibly multicoloured so as to store more data, that folds behind the front, allowing you to possibly sandwich cardboard in the middle or laminating it for durability.
You could then insert the cart into the handheld, it would read it in, and you could start playing there. The back of the device would expose the front of the card, like a Game Boy.
I made a quick mock-up what a SNES styled, top loading CompactFlash pico-8 cartridge could look like, trying to stay with the current design. Red overlay denotes the area that would definitely be hidden inside the machine, if one would use the more robust connector. While you can technically just make a hole with the pins directly inside, as many CF card readers do to save space, they would be much less tolerant on hash handling, which gaming consoles should survive.
One thing that physical cartidges have that is missing from the virtual ones is the back side. So the front could just be full view of the title picture (With some space on the sides, maybe vertical "Pico-8" branding ?), and all the other info could be printed on the back. Kinda like Atari 2600 cartridges.
Oh, how a miniature NES slot loading mechanism for CF cards would be awesome...
On other note, I've been thinking of how the controller could look like.
Mostly that a real old school joystick (TAC-2 for Amiga in mind) could be pretty awesome, but this being pico-8, it should be small.
Like, real small.
No, even smaller.
Hmmm....
Well, if the idea of small cartridges is kept, then they could be the cheapest CF cards ever.
Also, we wouldn't need any Write pins on the console (I don't know how these things work, okay?).
Potentially, this could make it so that it's something LIKE a CF card, but make it proprietary. ;)
Possible Pinout
Of course, that would make us have to develop it, then make a SD Card Adapter.
But, It'll make copying a little harder, making paid games an option!
Nice idea! As long as we don't have to re-insert it a dozen times to play. XD
Custom made would be nicer, but unfeasable unless you plan to make and sell thousands. A console like this would most likely be a very niche hobby project, so the best way to approach is would be something people could build themselves. That means using common parts and enclosures, 3d printing etc
Eventually if it gets popular enough, someone could start selling ready made cases, kits or even whole consoles.
But just the tooling cost to create a custom plastic shell for the game cartridge would be around $10k, not to mention all the other costs, all up front. There is a reason why hardware kickstarter projects ask for 500k and plan to sell thousands of units up front. It' really is that expensive.
I think a better way is to have it on android. from there you can buy a pad for mobile and tablets. if the machine has hdmi output, then you can go to any tv and get pico running as home console
This is distanced from what you all are on about, but... Since Pico carts are stored in image files, it wouldn't be far-fetched to store that visual data layer on the back of a cartridge for something like QR scanning right? You could make a format for little papercraft cartridges that anybody could DIY and distribute for fun.
QR codes at best can store around 3KB, or one tenth of the required data for a Pico-8 cartridge.
A QR-code for a pico-8 cart would look something like this:
I've had an idea and done some research: what about smart cards? They are extremely cheap, widely available and in a variety of storage options many of which would easily store a PICO-8 game, are satifyingly large to make collection enjoyable.
Since this is Pico-8 we're talking about, how about microsd cards? Or regular SDs. The reason I suggest this instead of CF is that SDs are cheaper, available practically at every store and fit the look of cart's image almost perfectly.
A P8 cart:
A SD card:
Granted, I'd prefer something like PCEngine's HuCard, but it would be probably too costly.
I've seen plenty of sites listing eeprom-enabled smart cards for less than $3 with far more memory than you can use for one game. It seems they're common for ID purposes and are easily available in bulk or in smaller hobbyist quantities. That would be pretty much exactly a HuCard, but reprogrammable.
The problem with smartcards is that they look too modern and someone may think that you're forging IDs/credit cards if you suddenly start to order high quantities of these. No such worries when you'd start buying SD cards in bulk. Also, as a bonus SDs are small (even regular ones) so it wouldn't be a hassle to make say Pico-8 handheld, then pack bunch of games on few cards and go for a trip. Plus such handheld could recognize if there are several "roms" on SD and present you with a simple menu.
Oh lord, that opens up possibilities for Multicarts.
NOT THE BOOTLEGS!
I vote SD Cards, provided that we can find CHEAP ones.
Why cheap?
- They're not as capacitive (Not a problem here)
- They're not as fast as other SD Cards (They don't need to be)
The cheapest I could find, though, were 4gb cards at $4.00.
Maybe we need to make a deal with manufacturers...
Eh, SD cards don't have a nice chunky feel to them at all and they don't really look like game cartridges. I do agree they would work better for a handheld, but not really for a home console. We aren't really making a PS vita here. We are creating something compared to a NES.
And CF cards really aren't that big compared to SD cards.
And this is a comparison between NES cartridge and a CF card (+ gigantic usb adapter)
Well, in all honesty, it doesn't matter, as long as it fits the description I put above.
Also, I like the chunkiness of a CF card, but if need be, we can use SD for slimness.
CF cards have that unfortunate quality that they are way more pricey than SD cards. Using SD for the design means it is easier for people to produce carts because media is cheap and easily available (looked at aliexpress and some offers are for under $1).
Also, this doesn't look like game cart either, yet this was used in actual consoles:
http://www.retroblog.fr/wp-content/uploads/2009/07/DSC00242.JPG
//edit: From what I've googled, it looks like SD cards are cheapest writable media on the market (right after blank CDs which we'll probably won't use).
//edit: And if for some reason you want it chunky, I'm sure you could 3D print case where you put SD card inside and then all that into a Pico machine. Sorta like PCBs were mounted inside nes carts.
Cheapest would be bare 64KB flash chips. Well under 20 cents a piece.
Just stick that chip on its own on a PCB, add basic track connectors, and leave everything else in the console itself.
That's how the Atari 2600 did its thing.
@JohnEdwa: I'd use serial QSPI NVRAM. It's lower density than flash, but doesn't get device fatigue, it also has a very low pin count (you can operate it off 4~8 depends depending on how many datalines you want to use)
Also: You should look up the Atari Lynx. It has very similar features. It's basically just a 4BPP framebuffer with a resizing sprite blitter, and some chippy audio channels wired up to a bunch of DACs. The system itself was 64kB of DRAM for the main memory (65c02 processor), and the cartridge was accessed serially through some very weird registers.
[quote]Cheapest would be bare 64KB flash chips. Well under 20 cents a piece.
Just stick that chip on its own on a PCB, add basic track connectors, and leave everything else in the console itself.
That's how the Atari 2600 did its thing.[/quote]
And I suppose I can just waltz in into Wal-Mart, Tesco, Carrefour, etc. and buy those "bare flash chips"? Plus I think making PCBs is outside of capabilities of most people there.
You see, SDs are both cheap and available literally everywhere.
@darkhog, You used to, then Radio Shack shut down.
But there are two different schools of though here. You either choose something completely ready made, like an SD or CF card, and use those with no modifications. Or, you create something completely custom, a proprietary cartridge that you need to design and manufacture.
What you don't do is take an SD card with bazillion times more space than needed, and then stick that into something that requires custom tooling. It just combines the bad sides of both things.
All I'm saying is that the CF card is a very good compromise.
They are relatively inexpensive, readily available, look and feel like tiny cartridges.
Sure, SD cards are cheaper and more common, but they make for a horrible cart for a retro inspired gaming console. They are about as far away from retro as using a touchscreen for the controller would. They are literally the most modern and common way to transfer and store mobile data around. Well, until we make "Pico-8 the DropCloud super DRM edition".
But hey, it's pointless to argue it here, whoever makes a console can use whatever they like.
If someone starts making these to sell, they use what makes the most sense cost wise.
SD cards if they plan to sell a few hundred, CF cards if they like the looks and a custom cart if they plan to sell thousands.
I'm most likely going to make a one-off, and I might go for MMC cards as I happen to have... uh... 50 old 32meg cards or something. Hell, I have a bunch of old memory cards for the original Sony Playstation. Now wouldn't that be a cool pico-8 cart, eh ?
Bottom line is, lets forget the storage memory, and lets concentrate on other aspects.
Like for example, the controllers. Much more interesting than memory cards.
To be honest, it's the most important thing here. As long as the thing works fast enough not to lag and inst distractingly loud, the controller is the only thing the user will care about in a while.
How about using regular 9pin NES controllers here? B/A would be mapped to action button, start/select would either do nothing or act as turbo a/turbo b
@darkhog: If you're using an SD card, you'd want a way to exit an application to return to the console (Select a new program). Select would be a good way to provide that. I'm sure we could find a reason to use start (hard-pause maybe? remote power?)
@darkhog NES uses a 7 pin, proprietary connector you can't buy from anywhere. The only 9 pin connector I know of is the old D9 pc gamepad connector.
You can get USB versions of most old controllers. Most are low quality copies. the only one that holds up is the official USB Sega Saturn pad.
I think it would be awesome to use an old 3.5" Floppy Disk for cartridges. Just a Pi and a USB Drive could do the trick.
But if you want to go mobile with it, my GameKid project will be a perfect fit :) http://robotloveskitty.com/gamekid/
Not quite, the screen resolution does not match.
PICO-8 = 128 x 128
GameKid = 320 x 240
Even doubling P8 to 256x256 would cut off 16 pixels -one doubled sprite height
:(
Hmm how did I miss all this chat about console building?
I've been mulling over the idea myself and thought it might be easier to just make it all simple.
Controller wise a simple USB keyboard turned controller could work, or bluetooth etc.
Something 3D printable preferably with an easy to snap together old school blocky design.
Perhaps put a switch on each controller to switch from player 1 or 2 mode set of keyboard keys. If another controller is plugged in it would likely share the keyboard input so just use the switch to pick a player mode.
Also laziness when playing two players with one controller, or by one self heh.
A little bit of extra wiring would have to be done but it would be simple enough.
Really wanted to make one myself first then show it off but I never finished more than concepts in pixel art.
With the same concept I thought of combining the two controller keys into one big controller for one player, kinda SNES feel.
I also used Start and Select buttons as there was a rumor start buttons per controller might get added, maybe not but wish there was kinda so disregard the optional buttons I guess.
Also thought of combining keys to make a fake analog joystick or fake turn dial control but those would be hard to make even if I was just using keyboard outputs.
Still a fun concept, old consoles had lots of weird controllers.
Overall design was meant to be a little more Famicom and Sega Master System styled.
I'll post the pixel art I made months back below all my wall of text so scroll down for a look.
I wanted to go over some ideas for a console build though.
Like others have said jsut take a Raspberry Pi and use a flash drive as a cartridge.
Well I figure a 3D printable USB hub and power switch shell would do the trick.
Lots of custom soldering sure but if two ports could face forward and one port up with some backing and support for USB flash drives or a flash drive made into a thin cartridge would be worth it.
Nice top loading sorta deal.
I wanted to make a 3d Model of a Master System like brick design, that way the Pi could sit sideways and a wire could be routed to the USB ports to plug in the hub shell along with power switch etc.
I never got around to starting it though.
Well I'm late to the party and barely keep up with everyone else but heres the concepts I drew together some months back.
Wanted to finish a program or game with them but eh, might as well show it off if I'm taking this long.
Oh and the different color buttons were based on the idea that both controllers would be paired to one USB port early on and I just stuck with it cause it looked nice.
Maybe a TurboGraphx/PCengine style one with Turbo buttons?
Eh I dunno.
Also yes my avatar image is an earlier version I made, too small though heh.
But ya, a 3d printable shell to fit a custom soldered USB up and power switch, fit it around a raspberry pi, point one USB connector up and bam top loading machine.
Card like thing USB flash drives can be custom made from some sites too, worth a look if a dev ever wants to make physical cartrdiges and sell em.
Otherwise best to work with whatever flash drives you can find as long at the shell has enough room to fit it.
Also autoloading software wise but I think that goes without saying.
my 2 cents after spending a lot of time at my local hackerspace and working on my gameboy project...
1) small run custom PCB manufacture is now not that expensive, and of course it gets cheaper the more you make
2) an SPI or I2C interface would be easy to implement and only need a few pins to connect. something the size of an SD card but with an old school style edge connector.
3) Something like this memory module from adafruit (I2C) or (SPI) (and if adafruit are selling it for $5/10, you can guarantee something similar would be sourcable from elsewhere for cheap)
4) even something a bit more classic like a 32K eeprom since we're not intending to write too much to it (are we?) , like an AT24C32, {youtube vid of slurping data off with an RPi}
Sorry to necro this post but I have also been thinking about pico-8 cartridges and I pretty much the same idea with abrugsch.
if we could agree on a standard open source pcb layout and connector layout (edge connector or header connector) to connect the pi directly to an EEPROM we could have local manufacturers and hobbyists building these carts.
Different EEPROM chip models can have different PCB standards. they seem to work very similar to each other but I am not well versed in EEPROMS so I am not too sure on the logistics of using multiple models of EEPROMS.
seeing as there is a constant flow of games I would imagine buying in bulk like a lot of sellers of the EEPROM chips wouldn't be an issue as you are going to use up a lot of cards anyway.
That smart card idea is also a great one.
if Zep merely mentioned a physical cartridge standard in the manual then we could have a full ecosystem of carts that work with different consoles as long as those consoles follow the standards. And of course someone will have to make a PICO-8 loader image for the pi to dump the EEPROM and control WIFI.
Low capacity SD cards are available for about 1.50 each. I've been thinking of buying a bunch to make some pico-8 carts. You could even make a pair of adapters to convert the pins to the old-fashioned connector of your choice.
But forget that. I have a radical suggestion :
Someone needs to write a tape-loader cart that somehow pulls tape data off the GPIO pins, saves that to a cart, and then loads that cart.
I'm not 100% sure how that would work since there's no interrupts or buffer or anything, but I'll bet it could be done.
SD cards are too easy, they look too modern, the sizes are way too huge and would take away from the authentic feel of a cartridge. I also feel like making it feel authentic would cost more than slapping on a small EEPROM onto a printed PCB in bulk
Tapes would be awesome if they were still produced :( and it will get worse as time stretches on.
I would say I'd love to have QR code for Pico8, in petit computer (nds) the code is divided in 1 to 16 QR-codes
you take a picture of all qrcode (one by one, but it's quite fast ) with your console and then tada! you have the game.
The cool thing, is you are permitting the community to publish games in fanzines, or magazines,
so the students or the school teenagers for exemple, can make a project with pico8, and then publish it.
I say this, because I used to make some workshops with kids, and I find it annoying to upload
to a server the work you do (as scracth for exemple).
The school newspaper format is something I find really fantastic.
I can imagine how cool it would be on phone or ipad devices. Well...
I'm pretty sure C Cassettes are still being manufactured. I recently bought a five pack of Maxell UR 90min tapes from Clas Ohlson. I've also seen a couple of sites selling newly produced chinese cassettes in all kinds of awesome colours.
With 32k pico cart size one tape could potentially hold a lot of games. Tape loaders with loading image and music would be even more amazing like for example on the Commodore 64 :) https://youtu.be/yGBAVbd-L90?t=1m23s
The 'modern world' is so stressful and hectic that a lot of people have rediscovered the calm feeling you can get from loading games from cassette over a couple of minutes while enjoying the loading image and music.
My pico-8 dream device is something that is like a "key chain". Something really small that has all the buttons necessary for gameplay and can be carried with your keys.
Having little storage and specs enough to run something like "Dank tomb" (https://www.lexaloffle.com/bbs/?tid=29709) with good performance.
Upgradeable using wi-fi or USB. Nothing more fancy. The "key" here is the form-factor: totally portable.
Just FYI, the sort of printed information density I'm aware of maxes out at about 2KB per square inch. I think some claim about 3KB with multicolor printing. So you'd need something around 4" or 10cm square. I'm not sure a current typical cell phone camera would be able to resolve an image that size and that detailed well enough for decoding.
Edit: Just noticed JohnEdwa said much the same thing.
This is an interesting thread and I'd love to see this happen. I'm kinda keen on the CF card option, but either way... I'd love to see this get developed.
I can't get a proper PICO-8 handheld out of my mind!
It's reminiscent of the TinyPi or the GameBuino, but a little more rotund.
In an ideal world, you'd be able to plug it into any internet-connected computer, and a program would automatically download all new games in SPLORE to the console's internal memory. No visual interface with the computer; just plug, unplug, and play! :P
It would be cool if this happens someday.
My two cents on a storage device, while not the first to recommend this on the thread, would be floppy disks. They are quite literally retro and fit the second-generation theme. Large enough to feel clunky, and can be purchased in bulks for cheap.
Floppy disks would require about 20 cubic inches of volume for the drive. Floppy drives are not small.
@eggnog i have made a bit of a start on something a bit more playable long term than the TinyPi. I had thought using original gameboy buttons and rubber membranes would make for good quality control's, and using an OLED screen to give the best contrast and viewing angles.
Whats got me held up at the moment, is the brains of the operation. The zero isnt quite man enough to run games at the full 60fps. I did post about different hardware, could do with chatting to @zep about it https://www.lexaloffle.com/bbs/?tid=30650
@moosepr - you're saying the Raspberry Pi Zero can't run PICO-8 games at 60FPS? I find that amazing. Really?
I'm running on a high-end intel cpu from five years ago and when I run PICO-8, it barely uses 10% of a single core.
A direct comparison is tough, though. I don't think the Broadcom ARM chip in the pi0 is remotely comparable. It runs at a quarter of this chip's clock speed, and likewise with its memory. It's also probably far less optimized in terms of speculative execution, caching, etc. Its GPU doesn't compare at all, but I'd assume the GPU does very little in PICO-8.
But, at a guess, I'd say PICO-8 could easily take half the CPU on a Pi0, possibly more depending on specific CPU pipeline features I have here that it doesn't.
[Please log in to post a comment]