First post, by matze79
Hi all,
I’ve put together a small TSR that plays Tandy/PCjr sound on a regular AdLib or OPL2 card or compatibles.
The idea comes from tndlpt by Peter De Wachter: EMM386 traps the writes to port 0C0h, and my code turns them into OPL2 register writes.
That way, games that only support Tandy sound play their music through the AdLib.
What it does:
The three tone channels of the SN76489 go to OPL channels 0–2, with pitch and volume converted. Since both chips run at 3.58 MHz, the pitch comes out practically exact.
White noise is played on the snare in rhythm mode, periodic noise as a tone on channel 3.
Besides 0C0h it also traps the TNDY ports 1E0h and 2C0h, and 205h only with /205 (IBM PS/1).
Takes about 2 KB of memory and can be loaded high with LH.
You need EMM386 from DOS 6.x or Win95 (version 4.46 or later), so the minimum system is a 386 at 12 MHz or faster.
TNDOPL load, AdLib at 388hTNDOPL /A:228 load, OPL at another base port (e.g. SB FM at 220h+8)TNDOPL /LPT1 output to an OPL2LPT on LPT1 (LPT2/LPT3 too)TNDOPL /NOC0 skip the EMM386 0C0h unlock, trap TNDY ports onlyTNDOPL /205 also trap TNDY port 205h (off by default) (IBM PS/1)TNDOPL /V print each loading step (for troubleshooting)TNDOPL STATUSTNDOPL UNLOAD
V13.10.2026
V14.10.2026 - LATEST
*someone noted that Zak McKracken doesn't sound accurate, maybe someone can compare to real Tandy Machine ? Thanks!
(EDIT: i'm trying to work this out, new release adds some fixes. need to aquire the game first)