Skip to content
View visrealm's full-sized avatar

Block or report visrealm

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
visrealm/README.md

visrealm - Troy Schrapel - retro computing and hardware emulation

I started programming on a TI-99/4A at about five and got hooked. Moved onto the PC, picked up C and C++ long before any of it paid, and the career since University has been about 90% C++.

The hardware came much later. In 2019 I built a breadboard computer after watching the Ben Eater SAP-1 series, the vrcpu, then wrote an emulator for it in C with a web front-end. Later I added a character LCD to the board, so I had to emulate that too - vrEmuLcd.

Then I decided to move onto a 65C02 project and designed the HBC-56. Writing an emulator for that meant writing my own 6502 and TMS9918A libraries, desktop and web again. The PICO-56 reused that emulator code, just with the hardware glue, on a Pi Pico.

Then I thought, perhaps I could use the same emulator code to make a drop-in TMS9918A. That's the PICO9918 - an RP2040 or RP2350 in place of the real chip, VGA, HDMI or SCART RGB out through swappable dongles, and the F18A's enhanced modes. Tested on over 30 classic machines so far. Boards are in my store.

Hardware

Project What it does
pico9918 Drop-in TMS9918A/TMS9929A replacement on a Raspberry Pi Pico, with F18A-compatible enhanced modes and VGA, SCART RGB or HDMI output. Hackaday
hbc-56 Homebrew 65C02 computer on a backplane, with TMS9918A video and dual AY-3-8910 sound
pico-56 The HBC-56 emulated on a single Raspberry Pi Pico, with VGA and audio output
vrcpu Ben Eater inspired breadboard computer, with an emulator and assembler
keyboard4a99 Cherry MX compatible upgrade for the TI-99/4A Mitsumi mylar keyboard. Hackaday

Emulation libraries

All C99 with no dependencies. They build for desktop, WebAssembly and embedded targets. These libraries power my various homebrew computer emulators, the pico-56 and of course the pico9918.

Project What it does
vrEmuTms9918 TMS9918A/9928A/9929A VDP emulation. Used by the PICO9918. Hackaday
vrEmu6502 6502, 65C02, R65C02, WDC65C02 and 6510
vrEmuLcd HD44780 character LCD, with a C99 engine and a web front-end
vrEmu6522 6522/65C22 VIA emulation

Retro software

Project What it does
retroplex A Supaplex clone for retro computers with a PICO9918
cx16-supaplex Supaplex for the Commander X16, in 6502 assembly
retropipe A Pipe Dreams clone for retro computers
supaplex-tools Tools to work with the original Supaplex game code

GitHub statistics for visrealm

Toolchain

Languages

C C++ Python JavaScript

Assembly

6502 TMS9900 Z80 x86 ARM Thumb

Hardware and build

Raspberry Pi Pico PIO CMake PCB design WebAssembly SDL

Elsewhere

YouTube Hackaday Store X LinkedIn Ko-fi

Pinned Loading

  1. pico9918 pico9918 Public

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

    Assembly 257 26

  2. pico-56 pico-56 Public

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

    C 170 19

  3. hbc-56 hbc-56 Public

    Homebrew 65C02 computer on a backplane

    Assembly 234 32

  4. vrEmuTms9918 vrEmuTms9918 Public

    TMS9918A emulator library (C99)

    C 80 16

  5. vrEmu6502 vrEmu6502 Public

    6502/65C02 emulator library (C99)

    C 66 27

  6. vrEmuLcd vrEmuLcd Public

    Character LCD emulator library (C99 engine, web front-end).

    C 83 17