
Pico-8 Virtual Fantasy Console is an idealized constrained modern day game maker - doomrobo
https://www.hanselman.com/blog/ThePICO8VirtualFantasyConsoleIsAnIdealizedConstrainedModernDayGameMaker.aspx
======
derefr
I'd love a PICO-16: a fantasy console almost-but-not-quite like a GBA,
extended in some ways (e.g. resolution, sound channels) and reduced in others
(e.g. palette, maximum ROM size.)

There are tons of these little "retro console" devices lately—the Bittboy,
LDK-game, etc.—that people just treat as emulation devices, when they actually
have hidden potential for running _native_ game software as well, with more
power than you can get out of them through an emulator. (They're actually
usually as powerful as the original PSP, but only have the GPU capabilities of
the GBA, making these consoles into a sort of unique alternate-history blend
of 2001-2004 era gaming.)

But no games are being written _directly_ for these devices, because they're
all slightly-differently specced: different screen-sizes; different amounts of
RAM; etc.

A hypothetical PICO-16 "platform", in my mind, would basically be an
abstraction over the cross-section of native capabilities of these devices
(with maybe some additional tasteful constraints on top), while still allowing
to take advantage of the full hardware in a way you can't by just e.g. writing
SNES or GBA homebrew.

Maybe the "platform" could even come in a few separate "profiles", where games
could be either targeted to a specific minimum profile, or could respec
themselves to the highest profile supported (sort of like how Z-Machine games
work in detecting the VM's multimedia capabilities.) Take it far enough and
PICO-8 could just be the base PICO-16 profile!

~~~
mntmoss
I'm working on something like this, but as time has gone on I've made
technical constraint less of a priority and focused more and more on the I/O
and "bus" model itself, because that's where the ultimate bottlenecks lie. If
you have all the processing power in the world but only a 256x256 space to
draw in and a limited number of commands to draw with, you still have an
interesting constraint.

One of the things I found myself doing with PICO-8's setup was prematurely
optimizing code for size, which presented a new kind of puzzle(how to express
things in fewer Lua tokens) but didn't feel good in terms of authoring
finished work(I made a nice 3D maze wireframe renderer - and then stopped
there). So with my own fantasy console I'm prioritizing other things beyond
size/retro aesthetic, while still thinking about limitations. "Diversity" has
become one of those things: you will have some ability to swap out graphics
and sound cores, and use a variety of programming languages. The fixed spec
approach makes it harder to make each part really distinctive and not just
another "tiles and sprites and chiptunes" doddle.

Since I made the foolish decision to support 3D cores it's taken a while to
get a renderer going, though, and I finally decided to speed things up by
releasing with 2D first and adding more later.

~~~
derefr
Very cool! Have a page or repo up to follow your work?

~~~
mntmoss
I have a little landing page on itch.io which can be followed if you have an
account (but the content is getting embarassingly out of date):
[https://triplefox.itch.io/galapagos](https://triplefox.itch.io/galapagos)

Current release plan is to get some builds out late August/early September,
both free and paid(paid simply gets the updates faster). Then later on, I can
think about plans to open up development. PICO-8 took about two years from
conception to release and I'm getting to around the end of year one of mine,
and just about everything has had multiple iterations, but the first release
will be a basic "run at the command line, code in your text editor, store
assets in the file system" kind of environment. Releasing means I think the
basic design is mostly settled, so after that all the UI and IDE functions
will become possible.

------
otachack
This is one of my most favorite inventions within the past 5 years that still
sticks out. I think it's ingenious and a great gateway to game development for
anyone, be it a hobbyist or professional.

I've spent a ton of time trying to get into game development only to get stuck
in researching the many frameworks, programs, and even the idea of making my
own engine. Pico-8 just packs everything you need in it including code editor,
mapper, pixel editor, sound editor, etc. so you can focus on making the game
instead of figuring out your tech stack. Highly recommend it and well worth
the money ($15)

------
willio58
I love the idea of using Pico-8 as a platform for prototyping simple games. It
forces you to simplify your code and focus on perfecting the limited
functionality you can support.

Celeste is a great game. If I remember correctly you can actually play the
pico-8 version within the newer version.

------
visualphoenix
If you're into the idea of a portable linux gaming handheld check out the
community at [https://sudomod.com](https://sudomod.com)

The Discord server and Forums are very active and friendly.

Specifically, Helder's Minty Pi[0], or various incarnations of the Game Boy
Zero: Kite's Circuit Sword CM3+ AIO PCB[1], RenegadeLab's Game Boy Zero AIO
PCB[2], and the always out of stock (but can be found on ebay with a markup)
Retroflag GPi Case[3].

[0] [https://heldergametech.com/shop/mintypi/mintypi-v3-pcb-
kit/](https://heldergametech.com/shop/mintypi/mintypi-v3-pcb-kit/)

[1]
[https://sudomod.com/forum/viewtopic.php?f=38&t=8488](https://sudomod.com/forum/viewtopic.php?f=38&t=8488)

[2] [https://www.renegadelabs.net/product/gameboy-zero-aio-pro-
pc...](https://www.renegadelabs.net/product/gameboy-zero-aio-pro-pcb-kit/)

[3] [https://www.amazon.com/Retroflag-CASE-Raspberry-Zero-
Shutdow...](https://www.amazon.com/Retroflag-CASE-Raspberry-Zero-
Shutdown/dp/B07RT9VGS4)

------
Impossible
I'm a huge Pico-8 fan and suggest that anyone that is interested in Pico-8
watch Joseph White's (the creator) Practice (NYU game designer conference)
talk about the design philosophy of Pico-8.
[https://www.youtube.com/watch?v=87jfTIWosBw](https://www.youtube.com/watch?v=87jfTIWosBw).
The TLDW of the talk is that he explicitly tried to built a "cozy" game
development environment with enough constraints in place to encourage
creativity without the stress of starting from a completely blank canvas.

At the end Scott Hanselman has a footnote about building or buying a physical
Pico-8 console. One thing that is missing is most Pico-8 consoles focus on the
play aspect of Pico-8, not the creation aspect of Pico-8 which is just as
important to me if not more so. I own a PocketCHIP and the device is a decent
handheld computer, but there are many aspects of it that make it painful to
use, not due to the form factor but due to the quality of various components.
The keyboard is bad although there are a variety of solutions, including 3D
printed covers
([https://www.thingiverse.com/glitchpudding/collections/pocket...](https://www.thingiverse.com/glitchpudding/collections/pocketchip))
or rubber feet
([https://androidarts.com/Amiga/PRBOOM.jpg](https://androidarts.com/Amiga/PRBOOM.jpg)).
The quality of the screen and touch is also not great, so it was hard for me
to draw pixel art on the device.

I'd like to build a custom handheld computer primarily for Pico-8 development
built around this display
[https://shop.pimoroni.com/products/hyperpixel-4-square](https://shop.pimoroni.com/products/hyperpixel-4-square),
probably using a Raspberry Pi Zero. One of my issues with Pocketchip was that
the entire system felt kind of slow\high latency and more compute might be one
of the only fixes for that, so rpi zero might not cut it. I'd probably have to
print my own case and I still haven't found a great keyboard solution. The
best option I've seen is Teensy Thumb keyboard
([https://www.pjrc.com/handheld-tactile-switch-
keyboard/](https://www.pjrc.com/handheld-tactile-switch-keyboard/)), but I
might go with a standard bluetooth thumb keyboard. If anyone on HN has built a
handheld computer or has good resources I'd love to hear about it. My goal is
to get something that feels like a Nintendo handheld (Switch, DS, GB) with
good feeling physical thumb keyboard and can also be used to draw pixel art.

------
tcbawo
David Murray (The 8-bit Guy) and others are building an expandable, C64ish
computer with sourceable parts and modern I/O connectivity (eg. VGA). They're
calling it Commander X16. It's very early, but it looks promising as a retro
gaming/educational platform. Due to hardware limitations (eg 6502-based CPU),
it will probably be fairly limited to Basic and assembly programming and w/o
networking capability. But, it will be expandable, so who knows. I think they
will eventually have a Kickstarter. Should be a lot of fun!

[https://m.youtube.com/watch?v=ayh0qebfD2g](https://m.youtube.com/watch?v=ayh0qebfD2g)

------
mlrotter
here are some other fantasy consoles:
[https://github.com/paladin-t/fantasy](https://github.com/paladin-t/fantasy)

~~~
RodgerTheGreat
Seems to be missing the original virtual console, CHIP-8:
[https://en.wikipedia.org/wiki/CHIP-8](https://en.wikipedia.org/wiki/CHIP-8)

~~~
perilunar
I have an ETI-660 that I built in the early 1980's around here somewhere.
Possibly it even still works, though I'd need to find an old CRT TV to try.
(probably need to replace the capacitors too). Coding in CHIP-8 was my intro
to programming.

~~~
RodgerTheGreat
I designed and maintain an IDE for CHIP-8 development ([http://octo-
ide.com](http://octo-ide.com)) which you might find enjoyable. If you wanted
to run your programs on an ETI-660 I could easily make the assembler's base
address configurable to suit that machine's memory map.

~~~
perilunar
Thanks for the offer, but I'm not even sure if any of my code from that era
survives. I'll have a look sometime.

Cool project btw!

------
cabaalis
I've made a game with PICO-8 with my 6-year-old watching along with me and
telling me what to put into it. It was a great experience.

I do think it's very nearly almost too constrained, specifically in the code
editor. But, it did it's job. A QBASIC-like interface would be appreciated.

~~~
xahrepap
I wish you could configure your constraints. I understand why you can't. But I
just want unlimited tiles and map sizes. :)

~~~
Moru
When I was looking around the fantasy computers, I found one that was
configurable. It had presets for different popular machines. I saved the link
and closed the rest but when I was about to start I realised I saved the wrong
one and I haven't been able to find it again. Did I just dream it? The one I
started on instead was tic-80.

~~~
Impossible
PixelVision8:

[https://www.pixelvision8.com/](https://www.pixelvision8.com/)

Found it via this list
[https://github.com/paladin-t/fantasy](https://github.com/paladin-t/fantasy).

------
RadioHacker
Interesting that it's just an "8-bit look" but not really "8-bit". Code is
written in Lua which will be either 32- or 64- bit depending on what platform
the Lua interpreter is compiled on.

(From the name, I went to read the docs, because I thought they emulated an
"ideal" 8-bit processor, too.)

~~~
jamesgeck0
Yeah, it's all on the Lua VM. It does behave kinda like an 8-bit computer in
that you can go poking around in the RAM to create various effects or
glitches.

------
markus_zhang
Actually, considering I'm learning C and pretty much enjoy the process, I'm
thinking about doing some game dev for some of the retros. NES and SNES are
pretty fun platforms, I'll probably use Assembly for NES but maybe I can use C
for SNES?

It's always fun to do some low level stuffs in these days.

------
slowhadoken
Quadplay is cool too
[https://github.com/morgan3d/quadplay?fbclid=IwAR0T92CL6D90Ob...](https://github.com/morgan3d/quadplay?fbclid=IwAR0T92CL6D90ObL3ao1mpKP3UeHhwrGZakq8rDJWYCK1PiqZRpX7aSTVEFs)

------
michaelbrave
this might be childish wishful thinking, but I'd love to make something like
that but with a physical console also. Share the software created between the
physical console and the fantasy console, maybe allow alternate software
evolutions (imagine an internet that diverges with something other than html).

It's a fun little daydream at least

~~~
NuSkooler
Have you seen [http://makenesgames.com/](http://makenesgames.com/) ?

