• Please review our updated Terms and Rules here

Tandy Sound Compatible PCB

I'm just excited as heck here.

Yea, this is cool! Could this be the first time ever that these games have played their music on something that is not a PCjr or Tandy? :)
Anyway, you've played this on the PCB with the small modification mentioned earlier?
At the very least we've verified that the communication between the ISA bus and the SN76489 works properly, and we at least know that some games will work as-is with the card. So we know how to test the cards once we've built them.
I guess this is quite the breakthrough, from here it's just fine-tuning things :)
 
Yes, it's on the PCB James designed with the HC688 - SN76489 connection mod. I think plenty of games will work just fine...
 
Can you make videos of Monkey Island and Space Quest 1playback?

This is awesome, congrats to everyone!
 
I'll need to track down a set of speakers I can easily relocate. I'll have some videos up tomorrow.

My parts order for one of Sergey's OPL2 cards came in as well, it's gonna be the best hand-built XT ever made!

I'll also try a 76496 and verify it works a little later tonight.
 
Cool!

If you can remove a socketed NCR 8496 out of a real Tandy 1000 and try that too...
 
Cool!

If you can remove a socketed NCR 8496 out of a real Tandy 1000 and try that too...

My Tandy machines with NCR chip are all soldered. :(

Of course I'm missing the 470nf capacitors for the amplifier. Won't be able to test that until Monday, but I'll still get some video of various games tonight.

Not only is it a Tandy soundcard but it'll be on an EGA card connected to a Tandy CM-11 monitor, so it'll be very Tandy-esque.

Now that I think about it, this is all kind of silly considering the number of perfectly functional 1000-series Tandys I already have laying around...
 
Last edited:
Now that I think about it, this is all kind of silly considering the number of perfectly functional 1000-series Tandys I already have laying around...

When i launched the thread on Vogons and tried to push and inspire others for this project, the main idea was that...exactly give the ability of normal XT's to be a little better at least on the sound department. There are so many games that sound and look better on the Tandy 1000's (technically all Tandy 1000's except RLX and RSX are enhanced XT's with PCjr capabilities and beyond), even though the graphical part would be extremely difficult to replicate the sound would never be as such.

For Europeans like me, to get a Tandy 1000 is extremely difficult, so a sound improvement for our XT's and clones i thought would be at least a worthy endeavour. It will be already possible to enjoy some games, but with some talented people patching games a vast majority would be possible to enjoy with improved sound outside the Tandy 1000. Of course the Tandy sound improvement we are getting is only equivalent to A,HD,TX,SX,EX and HX series, but it is so much better than just PC Speaker.

So despite it might be silly for you all this effort considering you have loads of Tandy 1000 machines, i deeply appreciate your efforts to help making this possible.
 
It wasn't really "silly" for me anyway.

I decided to build as much of a "hand-made" computer as I possibly could, and while it's been very enjoyable and an amazing learning experience, I've missed that classic Tandy 1000 sound.

It'll be the perfect complement to the rest of my hand-assembled components: xi8088, ATX isa backplane, high density floppy/com port combo card, IDE card, and the eventual VGA, EMS, and OPL2 boards once I get them together.

I've got my eye on the Gravis, SSI2001, and CM/S recreation threads as well for future projects...

:D
 
Last edited:
Just FYI, I'll track down my 486 single-board computer and see if the adapter works at 1E0/etc.

I've also got a few Pentium 166 systems I will give it a whirl on...
 
I've got my eye on the Gravis, SSI2001, and CM/S recreation threads as well for future projects...

:D

The SSI 2001 is a tried and tested finalized project. A made a video including the SSI 2001 and its relation to Microprose "The Entertainer":


I'm also very interested in the CMS. It would be cool if we could somehow put, Tandy, CMS and SSI 2001 on one card and save some ISA slots.

BTW, i also started the following thread on Vogons:

https://www.vogons.org/viewtopic.php?f=46&t=40512

This one is more or less stopped, but a lot has been done. Only a few traces are missing apparently. Good news is that shock__ (who started the ARGUS project) is going to work on this one too, since there's a guy living not too far away from him that owns a true Covox Sound Master card.

Now regarding the Tandy Card, did you also apply the errata fix that James put on the card's wiki?

Tandy-Sound-Adapter-r01-PCB-jumper-marker.jpg
 
Yes, I sure did.

Yeah i thought so, i didn't see it in your picture but i assume you did it on the other side. It's easier anyway.

I'm gonna build my board tomorrow and just have it ready for when those PSG chips arrive.
 
give the ability of normal XT's to be a little better at least on the sound department.

I was about to mention the CMS or Adlib or a GMIDI card, but then I stopped myself. The number of games that support the CMS is limited (and overwhelmingly dominated by Sierra games), and games that support Adlib or GMIDI are usually too demanding to run on an 808x system. 3-voice support is extremely lightweight, and there are 400+ titles that support it, so I guess it was a good thing to pursue.

The only challenge now is figuring out an easy way to force 3-voice support. I'm guessing at least 20% of the games that support Tandy or PCjr 3-voice do so only after autodetection (the usual way is looking at the BIOS ROM's model byte(s) to check if the system is a Tandy or PCjr). A method to intercept and redirect memory reads is not possible unless running on a 386+ (and if you're running on a 386+ you don't really need this board). I think a patching program is the only practical solution, although there is no really good way to find "detect I'm a tandy or pcjr" code, so it might just have to be a collection of already-performed force patches.
 
The only challenge now is figuring out an easy way to force 3-voice support.

I'd say the challenge is to find a way to force 3 voice support without forcing Tandy/PCjr video at the same time.

I'm guessing at least 20% of the games that support Tandy or PCjr 3-voice do so only after autodetection (the usual way is looking at the BIOS ROM's model byte(s) to check if the system is a Tandy or PCjr).

For most XT clones with a ROM socket that allows access to the FC00h area this is extremely easy. I didn't want to try this on my real machine, which i could do really easy. Just a matter of taking out the 32KB EEPROM i have in the ROM BASIC socket write the bytes at the proper memory locations and burn the EEPROM on my MiniPro programmer. Super simple if you have the tools. So i tried this in PCem instead. I just modified IBM XT u18 ROM so that FC00h has a value of 21 hex and starting at FC78h i wrote the bytes 54 61 6E 64 79 which in ASCII means "Tandy". What happens is simple, if the machine is in CGA mode, AGI games get the video completely screwed. WIth a VGA/EGA card video can be seen but with a lot of corruption. I'm sure if PCem allowed the 3 voice chip to be accessed in the IBM XT emulation sound could be heard.

Maniac Mansion however does rely on the model byte 21h at FC00h but it must perform some hardware tests because it defaulted to CGA and PC Speaker. But if one changes the Tandy 1000 ROM and alters the model byte to something else than 21h it also defaults to CGA and PC Speaker.

So the problem here really is Tandy graphics are forced along with sound. Some games detect the type of machine and hardware differently so, patching each game is the est option, no doubt.



A method to intercept and redirect memory reads is not possible unless running on a 386+ (and if you're running on a 386+ you don't really need this board).

I disagree that if running on a 386 the board is not needed. If someone does not own an XT or a Tandy 1000, why wouldn't anyone want to enjoy games with better sound than PC Speaker but that do not support AdLib/CMS/MT-32? Why should we deny a 386 to run an AGI game with 3 voice sound instead of PC Speaker?

In this case, if a method of intercepting the writes to port C0h and instead redirect them to port 1E0h/2C0h (which the board allows) is possible on a 386 i think its a worthy endeavour.

The problem seems to be that 286's would be denied of using both port C0h and using V86 mode to redirect the writes. Only way for 286's would be to patch somehow the games to send the writes to 1E0h instead of C0h.
 
I think it would be easier to just change the system ID byte to FDh for PCjr if you want to go that route. You'd still have the problem of some programs trying to use TGA graphics.
 
I think it would be easier to just change the system ID byte to FDh for PCjr if you want to go that route. You'd still have the problem of some programs trying to use TGA graphics.

What is the location of the system ID byte in your BIOS? Would change the value give a checksum error?
 
Maniac Mansion and Zak McKracken have been hacked to always use Tandy music on a non-Tandy : http://www.vogons.org/viewtopic.php?f=33&t=31657&hilit=maniac+pcjr

You can get any of the AGI games to use Tandy music with the -t command line parameter, but the AGI version must be greater than or equal to 2.917 to avoid graphic footprints (you will know this when you see it).

Now if everyone else contributes as much to the cause, this board will sell lots :)
 
What is the location of the system ID byte in your BIOS? Would change the value give a checksum error?

It's the second to last byte, offset FFFE. The checksum will be correctly calculated if you use the make script. If you are just editing the binary you will have to adjust the checksum byte.
 
It's the second to last byte, offset FFFE. The checksum will be correctly calculated if you use the make script. If you are just editing the binary you will have to adjust the checksum byte.

Ah, didn't use the script... I modified the code and recompiled. Not a big issue as i'm testing with PCem. The result is the same. Trying to get around the auto detection routines like that will most of the time force Tandy/PCjr video which will screw output on a CGA machine.

Patching games is the way...
 
I'd say the challenge is to find a way to force 3 voice support without forcing Tandy/PCjr video at the same time.

This is why there can be is no generic solution, and patching each game (ugh) is the only way to go. Sounds like someone needs to create a Tandy-audio-force-patched archive.

If someone does not own an XT or a Tandy 1000, why wouldn't anyone want to enjoy games with better sound than PC Speaker but that do not support AdLib/CMS/MT-32?

There are an extremely small number of games that support 3-voice only *and* cannot be individually selected in a setup program *and* aren't AGI games which can redirect 3-voice to something else. The audience for such a configuration would be limited.

In this case, if a method of intercepting the writes to port C0h and instead redirect them to port 1E0h/2C0h (which the board allows) is possible on a 386 i think its a worthy endeavour.

The method in question is V8086 mode, and if you're going to go through all that trouble, you might as well write a Tandy 1000 emulator so that you can intercept the graphics as well (which is almost exactly what Tand-Em is).

The problem seems to be that 286's would be denied of using both port C0h and using V86 mode to redirect the writes. Only way for 286's would be to patch somehow the games to send the writes to 1E0h instead of C0h.

That is way more difficult than patching autodetection, because the existing code looks like this:

Code:
E6C0              OUT     C0,AL

...but you want to change it to this:

Code:
52                PUSH    DX
BAE001            MOV     DX,01E0
EE                OUT     DX,AL
5A                POP     DX

If there's no room to space-optimize near the patch, you're in trouble.

I really don't think this board is practical to support in >8086.
 
Back
Top