Skip to content

visrealm/pico9918

Repository files navigation

PICO9918

A drop-in replacement for a classic TMS9918A VDP powered by the Raspberry Pi Pico RP2040 microcontroller.

PICO9918 v1.2 Top PICO9918 v1.2 Top

The TMS9918A emulation is handled by my vrEmuTms9918 library which is included as a submodule here

Contents

Build status

Main Branch

Build Windows Linux macOS
Firmware
Configurator

Dev Branch

Build Windows Linux macOS
Firmware
Configurator

Supported devices

This is a list of devices the PICO9918 has been tested and confirmed to work on. 📖 For detailed compatibility notes, installation tips, and configurator support for each device, see the Supported Devices wiki page.

Homebrews (📖 Wiki):

If you have tested the PICO9918 on any other device, please let me know and I'll happily update this list. :)

Unsupported devices

So far, there aren't any.

Digital A/V (HDMI) Dongle [NEW]

The new Digital A/V dongle provides video and audio direct to any HDMI compatible display. The new dongle is fully compatible with all previous FFC-equipped PICO9918 boards (v1.2, v1.3 and PRO v2.0) and are available to purchase either with a new PICO9918 PRO or separately.

Digital A/V dongle

📖 For full details, see the Digital AV Dongle wiki page. See Hardware Setup for FFC cable connection instructions.

F18A compatibility

The PICO9918 also includes F18A compatibility in firmware v1.0.0+. The video below was captured directly from the PICO9918 VGA output running various F18A demos on a TI-99/4A.

PICO9918 F18A mode preview 1 demo

📖 For technical details on the enhanced registers, ECM, GPU, and palette RAM, see the F18A Programmer's Reference wiki page.

Purchasing options

Fully assembled and tested PICO9918 PROs are available here:

Link Store Best For
I sell on Tindie Tindie (visrealm) All regions
Lectronz (visrealm) All regions. Best choice for EU
Arcade Shopper US

Hardware

There are three main variants of the hardware.

PRO v2.x (v2.0)

This is the latest version, poewered by the more powerful RP2350. This hardware upgrade will allow for additional VRAM and display modes in the future, including V9938 support.

PICO9918 PRO v2.0

This is the version you can currently buy pre-assembled from Tindie and ArcadeShopper.

v1.x (v1.3, v1.2, v1.1, v1.0 and v0.4)

PICO9918 v1.3 was the first single board version which doesn't require a piggy-backed Pi Pico.

PICO9918 v1.2

v0.3

v0.3 is relatively cheap and easy to build, schematic and gerbers are available. This version makes use of an external Pi Pico module piggy-backed onto the PICO9918 PCB.

PICO9918 v0.3

I also have the v0.3 board as a PCBWay Project you can order there.

📖 For detailed specifications and setup instructions, see the Hardware and Hardware Setup wiki pages.

Schematics

Schematics and Gerbers are available in /pcb

Firmware

If you're not interested in building the firmware yourself, you'll find the latest firmware in the Releases.

To install, just hold the 'BOOT' button while plugging the Pico into a PC, then drag the pico9918.uf2 file on to the new USB drive which should have the volume label RPI-RP2. The Pico will restart (and disconnect) automatically.

📖 For detailed information on firmware installation, output modes, and updates, see the Firmware wiki page.

Configurator

The configurator is a software tool used to modify PICO9918 configuration options, including:

Additionally, firmware updates can be provided via the Configurator. The full configurator is available for the TI-99/4A, ColecoVision and MSX. With cut-down builds (without firmware updates) available for several other machines.

📖 For full details, see the Configurator wiki page.

See the configurator in action:

PICO9918 Configurator - ColecoVision

The configurator was written in a custom fork of CVBasic with the full source available in /configtool.

If you're not interested in building the configurator yourself, you'll find the latest builds in the Releases.

Web-based Configurator

If you don't have a device supported by the native configurator, the Web-based PICO9918 Configurator can be used to generate a config .uf2 file compatible with both the PICO9918 and PICO9918 PRO. Just drag-and-drop the resulting file onto your device using the same method as for firmware updates.

Documentation

For detailed documentation covering hardware setup, firmware, the configurator, supported devices, F18A compatibility and more, visit the PICO9918 Wiki.

Building

Quick start

Build both firmware and configurator ROMs:

# Automatic SDK download (recommended)
mkdir build && cd build
cmake .. -DPICO_SDK_FETCH_FROM_GIT=ON -DPICO_SDK_FETCH_FROM_GIT_TAG=2.1.1
cmake --build .

Output in build/dist/: firmware .uf2 file and configurator ROMs for all retro platforms.

Platform-Specific Setup Required

Each platform requires specific toolchain installation:

  • Windows: ARM GNU Toolchain 13.2.1-1.1, Python with pillow
  • Linux: build-essential cmake python3 python3-pip git gcc-arm-none-eabi
  • macOS: Homebrew + ARM GNU Toolchain 13.2.1-1.1, may need --break-system-packages

All platforms use Raspberry Pi Pico SDK 2.1.1 specifically (newer versions may cause issues).

Detailed instructions

For detailed platform setup, development environment configuration, build options, individual platform builds, VSCode integration, and troubleshooting, see BUILDING.md

Thanks

Special thanks to JasonACT (AtariAge) for hand-crafting the F18A mode's on-board TMS9900 "GPU" in ARM assembly and providing other valuable input to the project.

Discussion

For all the latest news and discussion on the PICO9918, you can follow this AtariAge thread

Videos

Initial "raw" videos recorded in the moments following the first boot on my TI-99/4A.

These videos are showing the v0.2 hardware with an external Pi Pico providing the required GROMCLK signal to the TI-99. This signal has been added to v0.3. I'm still waiting on v0.3 boards to arrive.

It freaking works!

PICO9918 Prototype - It freaking works

Don't mess with Texas!

PICO9918 Prototype - Don't mess with Texas

80 column mode

PICO9918 Prototype - 80 column mode test

And now v0.4 - the single board version:

v0.4 prototype working!

PICO9918 v0.4 PCB. Integrated RP2040 all-in-one build.

F18A mode development preview

PICO9918 F18A mode preview 1 demo

Licensing

Hardware

The hardware design files in this repository are licensed under the CERN-OHL-S. See LICENSE_HARDWARE.md for details.

Firmware

The firmware code in this repository is licensed under the MIT License. See LICENSE_FIRMWARE.md for details.

About

A replacement for the classic TMS9918A/TMS9929A VDP, powered by a Raspberry Pi Pico

Topics

Resources

License

MIT, CERN-OHL-S-2.0 licenses found

Licenses found

MIT
LICENSE_FIRMWARE.md
CERN-OHL-S-2.0
LICENSE_HARDWARE.md

Stars

Watchers

Forks

Sponsor this project

Contributors