# PICO-8 Fruit Jam Reality Console

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/144/038/medium800thumb/gaming_celeste2demo.jpg?1777435392)

PICO-8 is a delightful "fantasy console" by [Lexaloffle](https://www.lexaloffle.com/) that simulates an imaginary retro system that never existed. It is intentionally constrained to 128x128 pixels with 16 colors, 4-channel chiptune audio, 8KB RAM, 32KB storage per 'cartridge', and a Lua-based programming language.

You can run **wili8jam** on Fruit Jam for a lovely, tiny computing/gaming experience. [This port, by freewili](https://github.com/freewili/wili8jam), puts PICO-8 cartridge running, code editing, and a REPL right on your Fruit Jam, just add monitor, keyboard, and gamepad.

![](https://cdn-learn.adafruit.com/assets/assets/000/143/929/medium640/gaming_pico8.jpg?1776901321)

https://youtu.be/VgMdNJT7OfI

Info: You normally use PICO-8 on a computer running Linux, Mac OS, or Windows for a [one-time purchase](https://lexaloffle.com/pico-8.php) of around $15. However, there are free ports/reimplementations written from scratch that you can run on alternative systems, such as the wili8jam version used in this guide. **Note that this version is in its early days and may not run all cartridges.**

## Parts
### Adafruit Fruit Jam - Mini RP2350 Computer

[Adafruit Fruit Jam - Mini RP2350 Computer](https://www.adafruit.com/product/6200)
We were catching up on a recent [hackaday hackchat with eben upton](https://hackaday.io/event/202122-raspberry-pi-hack-chat-with-eben-upton)&nbsp;and learned some fun facts: such as the DVI hack for the RP2040 was inspired by <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/6200)
[Related Guides to the Product](https://learn.adafruit.com/products/6200/guides)
![Angled shot of assembled mini computer PCB with plate.](https://cdn-shop.adafruit.com/640x480/6200-10.jpg)

### Mini Chiclet Keyboard - USB Wired - Black

[Mini Chiclet Keyboard - USB Wired - Black](https://www.adafruit.com/product/1736)
Add a good quality, slim keyboard to your&nbsp;Raspberry Pi, Beagle Bone Black, or other single-board-computer with this sleek black chiclet keyboard. It's a full QWERTY keyboard with a USB cable and is compatible with all operating systems. We tried many keyboards to find one that felt...

In Stock
[Buy Now](https://www.adafruit.com/product/1736)
[Related Guides to the Product](https://learn.adafruit.com/products/1736/guides)
![Angled shot of a Black woman's silver-blue manicured hands on a slim, black keyboard.](https://cdn-shop.adafruit.com/640x480/1736-04.jpg)

### 7" Display 1280x800 (720p) IPS + Speakers - HDMI/VGA/NTSC/PAL

[7" Display 1280x800 (720p) IPS + Speakers - HDMI/VGA/NTSC/PAL](https://www.adafruit.com/product/1667)
Yes, this is an adorable small HDMI television with incredibly high resolution **and built in 3W stereo speakers**! We tried to get the smallest possible HDMI/VGA display with high-res, high-contrast visibility. The visible display measures only 7" (17.8cm) diagonal, and the TFT comes...

In Stock
[Buy Now](https://www.adafruit.com/product/1667)
[Related Guides to the Product](https://learn.adafruit.com/products/1667/guides)
![Front view of assembled and powered on HDMI 4 Pi - 7" Display. The monitor displays a desktop background with a raspberry logo.](https://cdn-shop.adafruit.com/640x480/1667-00.jpg)

### USB Game Controller with SNES-like Layout

[USB Game Controller with SNES-like Layout](https://www.adafruit.com/product/6285)
This is a generic USB&nbsp;game controller, which plugs into to provide a two-handed gaming experience for retro gaming, or really any game you want to use a handheld rather than keyboard controller! Use it with your Raspberry Pi or desktop computer while playing emulated games, or as a...

In Stock
[Buy Now](https://www.adafruit.com/product/6285)
[Related Guides to the Product](https://learn.adafruit.com/products/6285/guides)
![Angled shot of SNES game controller with USB-A cable.](https://cdn-shop.adafruit.com/640x480/6285-00.jpg)

### Part: SD/MicroSD Memory Card
quantity: 1
8 GB SDHC
[SD/MicroSD Memory Card](https://www.adafruit.com/product/1294)

### Part: Black Woven USB C to USB A Cable
quantity: 1
2 meters long
[Black Woven USB C to USB A Cable](https://www.adafruit.com/product/6324)

### Part: 5V 1A (1000mA) USB port power supply
quantity: 1
UL Listed
[5V 1A (1000mA) USB port power supply](https://www.adafruit.com/product/501)

### Part: 9 VDC 1000mA regulated switching power adapter
quantity: 1
UL listed
[9 VDC 1000mA regulated switching power adapter](https://www.adafruit.com/product/63)

### Part: HDMI Cable
quantity: 1
1 meter
[HDMI Cable](https://www.adafruit.com/product/608)

## Controllers
## Controllers

Currently the best option for USB controllers on the wili8jam PICO-8 port for Fruit Jam are wired Xbox 360/One/Series controllers (and most Xinput controllers) and PlayStation DualSense (PS5) and DualShock (PS4).

Since you're probably a pretty DIY type of gamer, I'll point out that controllers made with GP2040-CE in Xinput mode work great!

We're working on adding the generic SNES shaped USB controllers and any Wii nunchuk adapter controller over STEMMA-QT such as the Wii Classic/NES Classic/SNES Classic controllers.

![](https://cdn-learn.adafruit.com/assets/assets/000/143/903/medium640/gaming_Xbox-360-Wired-Controller.jpg?1776871302)

![](https://cdn-learn.adafruit.com/assets/assets/000/143/905/medium640/gaming_ps4-accessories-ds4-jet-black-screen-01-en-28oct20.jpg?1776871551)

![](https://cdn-learn.adafruit.com/assets/assets/000/143/906/medium640/gaming_fstik-123.jpg?1776871560)

## Optional
If you want to immerse yourself in even more retro goodness, consider running your Fruit Jam on a CRT TV or monitor. The Fruit Jam running PICO-8 outputs a DVI video signal at 640x480 which can convert cleanly via a [HDMI to S-video or composite adapter](https://www.adafruit.com/product/3537) to 480i 15KHz signal older TVs desire.

![](https://cdn-learn.adafruit.com/assets/assets/000/144/043/medium800/gaming_crt2.jpg?1777437798)

### HDMI to RCA Audio and CVBS NTSC, PAL, or S-Video Converter

[HDMI to RCA Audio and CVBS NTSC, PAL, or S-Video Converter](https://www.adafruit.com/product/3537)
Do you have a S-Video display, projector or monitor that is not compatible with your HDMI devices? Here's an&nbsp;adapter that will allow you to convert HDMI to S-Video, for older video devices that might not have an HDMI input. S-Video has better performance than plain "RCA"...

In Stock
[Buy Now](https://www.adafruit.com/product/3537)
[Related Guides to the Product](https://learn.adafruit.com/products/3537/guides)
![Angled shot of black, rectangle-shaped video converter. ](https://cdn-shop.adafruit.com/640x480/3537-00.jpg)

# PICO-8 Fruit Jam Reality Console

## Install wili8jam on Fruit Jam

The wili8jam project lives [here](https://github.com/freewili/wili8jam) on the freewili GitHub page. Here's how it's described:

A PICO-8-compatible fantasy console for the&nbsp;[Adafruit Fruit Jam](https://www.adafruit.com/product/6313)&nbsp;(RP2350B).

Runs PICO-8&nbsp;`.p8`&nbsp;and&nbsp;`.p8.png`&nbsp;cartridges from an SD card with DVI video output, I2S audio, and USB keyboard/mouse/gamepad input. Includes an interactive Lua REPL and on-device code editor.

## Features

- **PICO-8 cartridge runner** &nbsp;-- loads&nbsp;`.p8`&nbsp;and&nbsp;`.p8.png`&nbsp;files with full game loop (`_init`/`_update`/`_draw`)
- **100+ PICO-8 API functions** &nbsp;-- graphics, audio, input, math, strings, tables, memory, coroutines, cartdata
- **8-channel audio** &nbsp;-- 4-channel SFX engine (8 waveforms, 7 effects) + music pattern sequencer + 4-channel basic synth
- **PICO-8 syntax preprocessor** &nbsp;--&nbsp;`!=`,&nbsp;`+=`, short-form&nbsp;`if`/`while`,&nbsp;`?print`,&nbsp;`//`&nbsp;comments, P8SCII glyphs,&nbsp;`0b`&nbsp;literals
- **128x128 DVI display** &nbsp;-- 4-bit indexed framebuffer with PICO-8 16-color palette, 3x scaled to 384x384
- **Interactive Lua 5.4 REPL** &nbsp;-- serial terminal over USB CDC and on-screen console
- **On-device code editor** &nbsp;-- syntax highlighting, copy/paste, load/save&nbsp;`.p8`&nbsp;files
- **Cart picker UI** &nbsp;-- browse and launch cartridges from the SD card
- **USB input** &nbsp;-- keyboard, mouse, and gamepad via PIO-USB host (simultaneous with USB serial)
- **8 MB PSRAM heap** &nbsp;-- Lua allocations backed by TLSF allocator on external PSRAM

## Hardware

| &nbsp; | &nbsp; |
| --- | --- |
| **Board** | Adafruit Fruit Jam (RP2350B) |
| **CPU** | Dual ARM Cortex-M33 @ 252 MHz |
| **RAM** | 520 KB SRAM + 8 MB PSRAM |
| **Storage** | microSD (FAT32) |
| **Display** | DVI via HSTX (640x480@60Hz) |
| **Audio** | I2S to TLV320DAC3100 DAC |
| **Input** | USB-A host port (keyboard, mouse, gamepad) |
| **Serial** | USB-C (CDC terminal) |

In order to install it, first head to the releases page linked below.

[wili8jam Releases](https://github.com/freewili/wili8jam/releases)
### For Generic USB Controllers

If you want to use the SNES-like USB gamepad that Adafruit and many other places sell (these are generic and often show up as "Manta controller" or "DragonRise" or generic USB gamepad with VID 081F PID E401, you can use the release linked below:

[wili8jam Feature Release](https://github.com/jedgarpark/wili8jam/releases)
## UF2 Download

Click on the&nbsp; **wili8jam.uf2** link to download the latest UF2 file to your computer.

![](https://cdn-learn.adafruit.com/assets/assets/000/143/947/medium640/gaming_rel.jpg?1777071250)

## Drag and Drop

Plug in your Fruit Jam into your computer with a USB C power and data cable.

Turn on the Fruit Jam.

Next, put the Fruit Jam into bootloader mode:

- press and hold **BOOTSEL/Button #1**
- press and release the&nbsp; **Reset** button
- Finally, release **BOOTSEL/Button #1**

After a moment you'll see the **RP2350** drive show up on your computer. Drag and drop the **wili8jam.uf2** onto it.

![](https://cdn-learn.adafruit.com/assets/assets/000/143/948/medium640/gaming_drag.jpg?1777071578)

After the file is copied over to the Fruit Jam it will restart and you're ready to hook it up and play! On the next page we'll get it going.

# PICO-8 Fruit Jam Reality Console

## Running PICO-8 on Fruit Jam

https://www.youtube.com/live/QWk8C6uKZLU?si=KMHWtrO3eR9ncJkC&t=1324

## Plug Things In

Plug in the following:

- **HDMI** cable into Fruit Jam **DVI-D Video Output** port
- Other end of **HDMI** cable to monitor or TV
- **3.5mm TRS audio cable** into Fruit Jam **Stereo Headphone** port
- Other end of **audio cable** to powered speakers or headphones
- **Keyboard** into Fruit Jam **USB 1** port
- Gamepad into Fruit Jam **USB 2** port
- USB C power into Fruit Jam **USB C Power & Data** port
- MicroSD card into the Fruit Jam **MicroSD** card slot

![](https://cdn-learn.adafruit.com/assets/assets/000/144/026/medium640/gaming_PLUGZ.jpg?1777420501)

![](https://cdn-learn.adafruit.com/assets/assets/000/144/025/medium800/gaming_IMG_1415.jpg?1777419676)

Turn on the Fruit Jam's power switch. The PICO-8 startup text will appear and you'll see a prompt waiting for you to type a command. Try these:

`> INFO` This will show you info about the wili8jam PICO-8 version as well as hardware status and data

```terminal
WILI8JAM 0.10
PSRAM: 8192 KB
SD: SDHC
AUDIO: READY
READY.
```

`> HELP` This lists all of the commands you can run

```terminal
** WILI8JAM 0.10 **

COMMANDS:
	LOAD		LOAD < CART >
	SAVE		SAVE < CART >
    RUN			RUN CART
    LS			LS [DIR]
    CD			CD < DIR >
    RM			RM < FILE >
    CLS			CLS
    EDIT		EDIT [CART]
    REBOOT		REBOOT
    INFO		INFO
    HELP		HELP [CMD]
    
HELP < CMD > FOR MORE INFO
```

`> LS` This lists the contents of the current directory, or you can use a path such as&nbsp;`LS /CARTS` to see what's in the&nbsp;`carts` folder

```terminal
BOUNCE.P8
CAST.P8
CELESTE2.P8
COLLIDE.P8
DOTS3D.P8
DRIPPY.P8
HELLO.P8
JELPI.P8
SORT.P8
WANDER.P8
WAVES.P8
WILIWAVES.P8
```

## Load a Cartridge

`> LOAD` Loads a program cart into memory so you can run it. Try this:

`> LOAD /HELLO.P8` or you can play it casual and simply type

`> LOAD HELLO`

![](https://cdn-learn.adafruit.com/assets/assets/000/144/027/medium640/gaming_scrn1.jpg?1777424239)

## Run the Cartridge

Once the cart is loaded you can run it:

`> RUN`

![](https://cdn-learn.adafruit.com/assets/assets/000/144/028/medium640/gaming_scrn2.jpg?1777424325)

## Escape

Press the&nbsp;`esc` key on your keyboard to switch from the running cart program to the editor. You can use the arrow keys to navigate and then edit the text.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/144/029/medium640/gaming_scrn3.jpg?1777424569)

![](https://cdn-learn.adafruit.com/assets/assets/000/144/031/medium640/gaming_scrn5.jpg?1777424882)

## Save

If you edit the code you can press esc again to get back to the prompt.

Then, `> SAVE` your code with a new file name and then `LOAD` and `RUN` it as shown here.

![](https://cdn-learn.adafruit.com/assets/assets/000/144/030/medium640/gaming_scrn4.jpg?1777424716)

![](https://cdn-learn.adafruit.com/assets/assets/000/144/032/medium800/gaming_scrn6.jpg?1777424934)

## Controller

Here I've loaded up `BOUNCE.P8` to test out single button X support.

![](https://cdn-learn.adafruit.com/assets/assets/000/144/033/medium640/gaming_scrn7.jpg?1777425869)

Here's some `CELESTE2`:

![](https://cdn-learn.adafruit.com/assets/assets/000/144/036/medium800/gaming_scrn8.jpg?1777426390)

![](https://cdn-learn.adafruit.com/assets/assets/000/144/037/medium800/gaming_scrn9.jpg?1777426397)

## PICO-8 Cartridges

You can find loads of games and programs for PICO-8 online. Here are some resources:

- [Lexaloffle BBS](https://www.lexaloffle.com/bbs/lister.php)
- [itch.io](https://itch.io/games/made-with-pico-8)

Here are some curated lists:

- [retrohandhelds.gg](https://retrohandhelds.gg/8-pico-8-games-worth-playing/)
- [nerdyteachers.com](https://nerdyteachers.com/PICO-8/Games/Top200/)

![](https://cdn-learn.adafruit.com/assets/assets/000/144/039/medium640/gaming_starcap.jpg?1777436535)

Warning: **Note that this version is in its early days and may not run all cartridges.**

## SD Card

To play your downloaded games, simply drag them onto your SD card on your computer. Then pop the card into the Fruit Jam, boot it up, and load games from the `/CARTS` directory.

## CRT Usage

If you've got an old CRT television, you can use an HDMI to analog video convert to pretty good effect. Since we're sending 640 x 480 over HDMI many converter boxes can manage the analog output at 480i.

The one I've used here is [this model](https://www.adafruit.com/product/3537).

![](https://cdn-learn.adafruit.com/assets/assets/000/144/041/medium640/gaming_crt1.jpg?1777437530)

![](https://cdn-learn.adafruit.com/assets/assets/000/144/042/medium640/gaming_crt2.jpg?1777437541)


## Featured Products

### Adafruit Fruit Jam - Mini RP2350 Computer

[Adafruit Fruit Jam - Mini RP2350 Computer](https://www.adafruit.com/product/6200)
We were catching up on a recent [hackaday hackchat with eben upton](https://hackaday.io/event/202122-raspberry-pi-hack-chat-with-eben-upton)&nbsp;and learned some fun facts: such as the DVI hack for the RP2040 was inspired by <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/6200)
[Related Guides to the Product](https://learn.adafruit.com/products/6200/guides)
### Mini Chiclet Keyboard - USB Wired - Black

[Mini Chiclet Keyboard - USB Wired - Black](https://www.adafruit.com/product/1736)
Add a good quality, slim keyboard to your&nbsp;Raspberry Pi, Beagle Bone Black, or other single-board-computer with this sleek black chiclet keyboard. It's a full QWERTY keyboard with a USB cable and is compatible with all operating systems. We tried many keyboards to find one that felt...

In Stock
[Buy Now](https://www.adafruit.com/product/1736)
[Related Guides to the Product](https://learn.adafruit.com/products/1736/guides)
### SD/MicroSD Memory Card (8 GB SDHC)

[SD/MicroSD Memory Card (8 GB SDHC)](https://www.adafruit.com/product/1294)
Add mega-storage in a jiffy using this 8 GB class 4 micro-SD card. It comes with a SD adapter so you can use it with any of our shields or adapters. Preformatted to FAT so it works out of the box with our projects. Tested and works great with our <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/1294)
[Related Guides to the Product](https://learn.adafruit.com/products/1294/guides)
### Black Woven USB C to USB A Cable - 2 meters long

[Black Woven USB C to USB A Cable - 2 meters long](https://www.adafruit.com/product/6324)
This cable is not only super-fashionable, with a woven pattern in classic Adafruit black, it's also made for USB C for our modernized breakout boards, Feathers, and more.&nbsp;

First, let's talk about the cover and over-molding. We got these in custom colors, and if you...

In Stock
[Buy Now](https://www.adafruit.com/product/6324)
[Related Guides to the Product](https://learn.adafruit.com/products/6324/guides)
### 5V 1A (1000mA) USB port power supply - UL Listed

[5V 1A (1000mA) USB port power supply - UL Listed](https://www.adafruit.com/product/501)
Need a USB jack for charging or powering a project, but don't want to lug around a computer? This switching supply gives a clean regulated output at up to 1000mA! 110 or 240 input, so it works in any country. The plugs are "US 2-prong" style so you may need a plug adapter, but...

In Stock
[Buy Now](https://www.adafruit.com/product/501)
[Related Guides to the Product](https://learn.adafruit.com/products/501/guides)
### 7" Display 1280x800 (720p) IPS + Speakers - HDMI/VGA/NTSC/PAL

[7" Display 1280x800 (720p) IPS + Speakers - HDMI/VGA/NTSC/PAL](https://www.adafruit.com/product/1667)
Yes, this is an adorable small HDMI television with incredibly high resolution **and built in 3W stereo speakers**! We tried to get the smallest possible HDMI/VGA display with high-res, high-contrast visibility. The visible display measures only 7" (17.8cm) diagonal, and the TFT comes...

In Stock
[Buy Now](https://www.adafruit.com/product/1667)
[Related Guides to the Product](https://learn.adafruit.com/products/1667/guides)
### 9 VDC 1000mA regulated switching power adapter - UL listed

[9 VDC 1000mA regulated switching power adapter - UL listed](https://www.adafruit.com/product/63)
This is a really nice power supply. It's a switching DC supply so it's small and light and efficient. It is thin so it fits in power strips without blocking other outlets. The output is regulated so you'll get a steady 9V up to 1000mA (1 Amp) of current draw. 5.5mm/2.1mm barrel...

In Stock
[Buy Now](https://www.adafruit.com/product/63)
[Related Guides to the Product](https://learn.adafruit.com/products/63/guides)
### HDMI Cable - 1 meter

[HDMI Cable - 1 meter](https://www.adafruit.com/product/608)
Connect two HDMI devices together with this basic HDMI cable. It has nice molded grips for easy installation, and is 1 meter long (about 3 feet). This is a HDMI 1.3 cable.

We're now stocking a very fancy Official Raspberry Pi cable with overmolding and a Pi logo. Please note...

In Stock
[Buy Now](https://www.adafruit.com/product/608)
[Related Guides to the Product](https://learn.adafruit.com/products/608/guides)

## Related Guides

- [USB Game Controller with SNES-like Layout](https://learn.adafruit.com/usb-game-controller-with-snes-like-layout.md)
- [Using a Keyboard with USB Host](https://learn.adafruit.com/using-a-keyboard-with-usb-host.md)
- [Adafruit Fruit Jam](https://learn.adafruit.com/adafruit-fruit-jam.md)
- [NeoPix Arcade Kit - 1D Arcade Game System - Circuit Playground](https://learn.adafruit.com/neopix-arcade-kit-1d-arcade-game-system-circuit-playground.md)
- [Portable 5in Monitor with HDMI](https://learn.adafruit.com/portable-5in-monitor-with-hdmi.md)
- [Adafruit TFP401 HDMI/DVI Decoder to 40-pin TTL Display](https://learn.adafruit.com/adafruit-tfp401-hdmi-slash-dvi-decoder-to-40-pin-ttl-display.md)
- [Logic Gates Simulator on Fruit Jam](https://learn.adafruit.com/logic-gates-simulator-on-fruit-jam.md)
- [Computer Space Mini Arcade](https://learn.adafruit.com/computer-space-mini-arcade.md)
- [SNES EZ Key Bluefruit Game Pad](https://learn.adafruit.com/snes-ez-key-bluefruit-game-pad.md)
- [Fruit Jam Sega Genesis](https://learn.adafruit.com/fruit-jam-sega-genesis.md)
- [Arduboy Game Controller Hack](https://learn.adafruit.com/arduboy-game-controller.md)
- [MCUME Emulators on Fruit Jam](https://learn.adafruit.com/mcume-emulators-on-fruit-jam.md)
- [Feather RP2350 Audio Reactive Video Synth](https://learn.adafruit.com/feather-rp2350-audio-reactive-video-synth.md)
- [Tile-Matching Game on the Fruit Jam and Metro RP2350](https://learn.adafruit.com/tile-matching-game-on-the-adafruit-metro-rp2350.md)
- [Adafruit DVI Breakout Board](https://learn.adafruit.com/adafruit-dvi-breakout-board.md)
- [Guitar Hero MIDI Controller](https://learn.adafruit.com/guitar-hero-midi-controller.md)
- [Pokémon Macro Ball for Nintendo Switch](https://learn.adafruit.com/pokemon-macro-ball-for-nintendo-switch.md)
- [Fruit Jam, Zork and the Z Machine](https://learn.adafruit.com/zork-and-the-z-machine.md)
