VOGONS


First post, by matze79

User metadata
Rank l33t
Rank
l33t

Arduino-Based Serial and USB SN76489 Tandy Sound Card

The attachment dht.jpg is no longer available

Version 1 – DHT *not final

The attachment smd.jpg is no longer available

Version 2 – SMD

This project is an Arduino-based external sound card that recreates classic Tandy / PCjr 3-voice audio using the SN76489 Programmable Sound Generator (PSG).

The device connects to a host computer via USB or serial port and allows modern systems without a parallel (LPT) port to produce authentic Tandy sound effects and music. By combining a modern Arduino microcontroller with genuine vintage sound hardware, this project bridges the gap between modern interfaces and classic PC audio technology.

Hardware Overview

Two hardware versions are available:

  • []Version 1 – DHT (Through-Hole Design)
    Easy to assemble, ideal for prototyping and testing.
    []Version 2 – SMD (Surface-Mount Design)
    More compact layout suitable for a finished build.

    Software and Compatibility

    DOS Support
    • []DOS is supported via Serial Mode only *there is no CH340 DOS Driver yet 🙁
      []Peter de Wachter’s TNDLPT driver has been modified by me to work with serial devices
    • Several DOS games have already been tested successfully
    Test system: VIA Nano CPU–based W310C thin client
    The attachment thinclient.jpg is no longer available
    VGM Playback

    The BBC VGM Player has been modified with the following features:
    • []Support for Tandy SN76489 VGM files
      []Added VGZ (compressed VGM) support
    • Support for newer VGM file formats
    The attachment usb_play.jpg is no longer available
  • OPLx SBVGM has been modified by OPLx to add support for serial Tandy playback using the -tndser parameter
    Thx to OPLx!


    Work in Progress
    • DOSBox version with USB SN76489 support (WIP)
      UI for VGM Player for Windows, Bugfixes…
    DOS Driver released:
    https://github.com/matze79/tnd232

    (PCB + Firmware soon.. need clean up 😀 )
Last edited by matze79 on 2026-01-31, 14:34. Edited 3 times in total.

Reply 1 of 8, by SuperDeadite

User metadata
Rank Member
Rank
Member

Very nice, will it be possible to purchase a finished version for people like me who suck at soldering? Lol. Would be an instant buy from me if Dosbox-X and ScummVM get support for it.

CM-64, CM-500, SC-55MkII, SC-88 Pro, SY22, TG100, MU2000EX, PLG100-SG, PLG150-DR, PLG150-AN, SG01k, NS5R, GZ-50M, SN-U110-07, SN-U110-10, Pocket Studio 5, DreamBlaster S2, X2, McFly, E-Wave, QWave, CrystalBlaster C2, Yucatan FX, BeepBlaster, SuperOctet!

Reply 2 of 8, by carlostex

User metadata
Rank l33t
Rank
l33t

Very nice work!!

Reply 3 of 8, by matze79

User metadata
Rank l33t
Rank
l33t
SuperDeadite wrote on 2025-12-16, 10:02:

Very nice, will it be possible to purchase a finished version for people like me who suck at soldering? Lol. Would be an instant buy from me if Dosbox-X and ScummVM get support for it.

That is certainly possible—if the project proves successful, DreamBlaster may choose to take it on.

I do not intend to sell the device myself, as this is purely a hobby project. However, if there are any units remaining, I may be able to make them available at cost.

I’ve identified a minor issue with the SMD version, which I’m currently addressing.
- issue fixed 😀 it was firmware!

I’m also considering moving directly to a USB-C connector and eliminating the Arduino altogether. The DHT version, however, works perfectly.

Last edited by matze79 on 2026-01-01, 15:22. Edited 1 time in total.

Reply 4 of 8, by SuperDeadite

User metadata
Rank Member
Rank
Member
matze79 wrote on 2025-12-20, 11:37:
That is certainly possible—if the project proves successful, DreamBlaster may choose to take it on. […]
Show full quote
SuperDeadite wrote on 2025-12-16, 10:02:

Very nice, will it be possible to purchase a finished version for people like me who suck at soldering? Lol. Would be an instant buy from me if Dosbox-X and ScummVM get support for it.

That is certainly possible—if the project proves successful, DreamBlaster may choose to take it on.

I do not intend to sell the device myself, as this is purely a hobby project. However, if there are any units remaining, I may be able to make them available at cost.

I’ve identified a minor issue with the SMD version, which I’m currently addressing. The problem arose after switching ports to free up additional pins for display-related experiments; Port D is driving the data faster than the previously used pins, and at fast operation this can cause issues on the data bus, as the pins of the data bus have different speeds. I’m not yet sure whether this can be fixed in software; it currently appears that, if I want to keep using those pins, the only reliable solution would be to add a latch.

I’m also considering moving directly to a USB-C connector and eliminating the Arduino altogether. The DHT version, however, works perfectly.

A cheapo USB only device would be ideal for me. Something simple like the Retrowave OPL3 Express for Dosbox-X would be lovely.

CM-64, CM-500, SC-55MkII, SC-88 Pro, SY22, TG100, MU2000EX, PLG100-SG, PLG150-DR, PLG150-AN, SG01k, NS5R, GZ-50M, SN-U110-07, SN-U110-10, Pocket Studio 5, DreamBlaster S2, X2, McFly, E-Wave, QWave, CrystalBlaster C2, Yucatan FX, BeepBlaster, SuperOctet!

Reply 5 of 8, by matze79

User metadata
Rank l33t
Rank
l33t

Device would be the same, just without the RS232 Levelshifter and Connector on Board 😀

Dosbox Support is in the works.

Merry X-Mas

Reply 6 of 8, by matze79

User metadata
Rank l33t
Rank
l33t

I cleaned up the silkscreen for the DIY DHT version, making it clearer and easier to use for self-builders.
(edit: designation for C8 missing/added)

I also added SMD footprints for the oscillator, since I can no longer find a 3.579 MHz oscillator in DIP-14 format for sale.

The attachment photo_2026-01-01_17-51-11.jpg is no longer available

I’ve also tested the DIP-14 oscillator adapter:
DIP14 Oscilator - 7050 / 5032 / 3225 SMD Oscillator to DIP-14 Adapter
https://github.com/matze79/DIP14-OSC-Adapter

Firmware cleaned up — the SMD version is now working properly.
I messed up the timing earlier and initially thought the pin change was the problem.

Reply 7 of 8, by matze79

User metadata
Rank l33t
Rank
l33t

Dosbox running on Linux - Tandy Sound on USB (ch340)

its still a krude hack, not enough for a official submission to dosbox x team.

The attachment lhx.webp is no longer available
The attachment kq2.webp is no longer available

Github updated in First Post, added TND232 Drivers.

Other stuff follows soon.

Last edited by matze79 on 2026-01-31, 14:40. Edited 3 times in total.

Reply 8 of 8, by matze79

User metadata
Rank l33t
Rank
l33t

Patch for AGIT2917 from Carlostex

Space Quest, Kinqs Quest, and co.

The interpreter is patched and sends directly to 3F8.
Currently 115200 baud.

DEBUG.EXE sets the registers (115200 Baud) for the UART (COM1) as Helper.

START.BAT

@echo off
DEBUG << SETBAUD.SCR
AGIT2917.EXE

SETBAUD.SCR

o 3f9 00
o 3fb 80
o 3f8 01
o 3f9 00
o 3fb 03
o 3fa c7
o 3fc 0b

its patched for COM1 currently only.