Skip to content

The HBC-56 (65C02/TMS9918A/AY-3-8910 retro computer) fully emulated on a Raspberry Pi Pico

License

Notifications You must be signed in to change notification settings

visrealm/pico-56

Repository files navigation

PICO-56

My HBC-56, a 65C02/TMS9918A homebrew computer on a backplane, fully emulated on a Raspberry Pi Pico.

HBC-56

Emulating the following HBC-56 hardware

  • 65C02 CPU
  • 65C22 VIA
  • TMS9918A VDP
  • Dual AY-3-8910 PSGs
  • Dual NES controller inputs
  • PS/2 keyboard input
  • 96KB Banked RAM/ROM

Making use of my various emulation libraries (and more):

  • vrEmu6502 - 6502/65C02 CPU emulation library (C99)
  • vrEmu6522 - 6522/65C22 VIA emulation library (C99)
  • vrEmuTms9918 - TMS9918A/TMS9929A VDP emulation library (C99)

Follow along on YouTube here: youtube.com/@TroySchrapel

Build Status

Windows Linux macOS
Pico Build Windows Pico Build Linux Pico Build macOS Pico
Pico2 Build Windows Pico2 Build Linux Pico2 Build macOS Pico2

Development environment

To build PICO-56, you'll need:

  • CMake 3.12 or later
  • ARM cross-compilation toolchain
  • Python 3.x with Pillow library
  • Git with submodules support

Quick Start

git clone --recursive https://github.com/visrealm/pico-56.git
cd pico-56 && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPICO_SDK_FETCH_FROM_GIT=ON ..
make -j4  # Linux/macOS

For detailed platform-specific build instructions, troubleshooting, and advanced options, see BUILDING.md.

Episodes

In the Episodes, I build the code from the ground up and provide a number of working demos. These are a work in progress with more to come as the videos come out.

In this episode, I build a VGA circuit on the Raspberry Pi Pico and write an intitial generic VGA output library and a number of VGA test programs from a test pattern through to moving sprites and an 800x600 framebuffer.

In this episode, I incorporate my TMS9918 library and create some test programs to test the TMS9918 functionality on the Pi Pico.

Complete kits

Complete PICO-56 kits are now available on Tindie:

I sell on Tindie

Also featured in HackerBox 0103 for those in the US:

Gerbers

Gerbers for the PICO-56 v1.4 are now available. See /schematics

If you would like to support this project, you can order your PCBs from my PCBWay project link

Schematics

PICO-56 v1.4

Bill of materials

Qty. Description Code
1 PICO-56 PCB PCB
5 100nf (104) ceramic capacitor C3,C4,C5,C6,C7
3 10uf (106) electrolytic capacitor C8,C1,C2
3 4kΩ 0.25w resistor (3.9kΩ ok) R1,R5,R9
2 10kΩ 0.25w resistor R20,R21
6 2kΩ 0.25w resistor R22,R2,R6,R10,R17,R18
9 1kΩ 0.25w resistor R3,R7,R11,R13,R14,R15,R16,R19,R23
3 500Ω 0.25w resistor (510Ω ok) R4,R8,R12
1 2N4401 transistor Q1
1 1N5819 diode D1
1 Blue LED LED1
1 Green LED LED2
1 Push button KEY1
1 Push button (locking) PWR1
1 Barrel jack connector 5V
1 VGA connector DSUB1
2 RCA connector J2,J3
2 NES connector NO1,NO2
1 PS/2 connector PS2
1 Raspberry Pi Pico (plus headers) U1
1 MicroSD card connector U2

There is a more detailed BOM in the /schematics folder. Alternatively, I have created a Mouser project for this which contains everything except for the NES connectors which can be obtained from AliExpress.

3D Printed case

A 3D printed case is available. All STLs are in the /case directory.

PICO-56 case

Videos

PICO-56 - Introduction

PICO-56 - Full Kit Build

Thanks

Thanks to PCBWay for supporting this project.

PICO-56

Resources

License

This code is licensed under the MIT license