• Please review our updated Terms and Rules here

The 3 voice sound PCjr/Tandy 1000 games patching discussion thread!

CarlosTex

Experienced Member
Joined
Mar 26, 2013
Messages
272
Hi everyone!

First of all sorry for the lame title. Not really inspired today.

The purpose of this thread is to document, gather info, and find volunteers to patch games to force 3 voice sound + CGA/EGA/VGA on a non Tandy/PCjr machine. This of course to use with a Tandy compatible sound adapter on your regular IBM PC/XT/AT.


So far, with Scali, Trixter and Plasma's assistance, i already patched 9 games. 6 text/graphics adventures from Telarium and also 3 games from Windham Classics including Below The Root, both DC and Booter patched. Those games already have a repo at ftp.oldskool.org which Trixter kindly made available for this purpose.

Scali also patched Skate or Die for CGA + 3 voice sound.

Unfortunately, for me and this project, my 8088 assembly knowledge is rather limited so no doubt this is in need of volunteer to patch some more games.

Some games that need to be patched (warning list is very much incomplete):

Code:
SIERRA:

All AGI adventures
Thexder

TAITO:

Arkanoid

MICROPROSE:

Gunship
Pirates!
Airborne Ranger

BOOTERS:

Tapper (both RGB and composite versions)

Any volunteers to help with these?

Some games are harder than others. I think AGI games only need CGA + 3 voice sound patch, since forcing EGA + Tandy via the command line arguments does indeed result in EGA graphics + 3 voice sound. However forcing CGA + 3 voice sound always defaults to Tandy graphics as well.

Arkanoid might be an impossible mission, since it has a separate executable for Tandy/CGA/EGA and the CGA/EGA .exe files might not have the code routines for the 3 voice sound.

Gunship and Pirates! already have a patch for the Innovation SSI 2001, which is derived from "The Entertainer" sound board, a supposed Microprose project that never came out commercially. Microprose games seem to be possible to patch, i haven't figured out yet though.

There are much more games than can be added to the list, feel free to give your input.
 
Arkanoid might be an impossible mission, since it has a separate executable for Tandy/CGA/EGA and the CGA/EGA .exe files might not have the code routines for the 3 voice sound.

Even that type of game (which I expect to be quite a number of games, especially the early ones, since they could save memory/disk space by limiting the game to a single display type) is not entirely impossible, it will just be harder.
If you use IDA well, you can create an assembly listing that can be assembled with TASM to yield the exact same binary (I did that for CGADEMO for example).
Since different versions of the same game are probably built from the same code, you should be able to find a lot of common routines between the CGA, EGA and Tandy versions.

So you should be able to take the disassembled Tandy version, and replace its graphics routines with the CGA or EGA code, while leaving the sound code alone. Then re-assemble with TASM, and there you go.

With Kings Of The Beach I 'got lucky': the Tandy audio was left in the CGA/EGA versions. They probably forgot to add some IFDEFs or whatever to take it out when not building for Tandy. It was only missing the Tandy routine for the title screen (which sadly is by far the coolest part). But that can be re-added using the above approach.
 
Well hopefully someone can do that as i'm at the limit of my abilities. I do use IDA but i don't even know how to properly use its most basic abilities. My biggest limitation is understanding the actual code, and since i'm just starting and i don't even practice everyday my progress is really slow. But what you said is really encouraging.

About Kings of the Beach: I don't know if you noticed but the Tandy executable actually must check for Ad Lib card, because when i tried the first time my Tandy card was silent. When i routed the Tandy card into the line in of my ATI Stereo F/X card i noticed why the Tandy card wasn't playing. OPL2 music was playing instead even when i chose Tandy mode so it must be checking for an Ad Lib card. Only when i removed the ATI card i got 3 voice sound.

About Sierra games: i don't really know how to look into AGI games. There are many versions, so i guess its a question to find the proper AGI version and patch it for all AGI adventure games (PQ, SQ, KQ, LSL).

Thexder is one of the games that would really be cool to patch. Doesn't support any sound device other than Tandy/PCjr or PC Speaker. Some people might not be aware, but it is possible to force the game to use MCGA graphics instead of the EGA ones on a VGA machine. Just rename MAINEG to something else and rename MAINPS to MAINEG. Thexder in MCGA mode looks really close to PCjr/Tandy graphics. Now it is only a matter of forcing the game to play 3 voice sound as well, which might be much more difficult.
 
I looked into Thexder, and it's a bit nasty: the main EXE file is just a loader for the actual game modules (MAINEG and such), which are encrypted. It decides which one to load, then decrypts it in memory, and jumps to it.
This makes it quite difficult to patch. People over at the Vogons forum did a patch a while ago, enabling Tandy music in MCGA mode (for Tandy machines with VGA-compatible video). It used a TSR that hooked into some DOS APIs and patched the code after it was loaded and decrypted.
The same trick would also work for CGA and EGA graphics of course, but you'd need to dump the decrypted files to disk first and analyze them to find the correct patches for these specific versions.
 
Yeah i looked into Thexder too and i couldn't find any code routines for sound. I could force the game to run in what graphics mode i wanted but always resulted in PC Speaker sound.

Anyway i'll contact ripsaw8080 and ask him about the same thing being done to CGA/EGA.
 
Good News!

ripsaw8080 at VOGONS forums was very kind to send me a TSR for CGA + 3 voice sound for Thexder. I will upload it along with the MCGA version to the ftp.oldskool.org repo tomorrow.
 
So i spent hours last night trying to patch AGI interpreter. I found a tool that decrypts AGI file into an .EXE and disassembled the file with IDA. Turns out the silly man in me didn't even bother to check the AGI interpreter version, so i wasted hours trying to patch version 2.411 or something like that. I couldn't do it. The sound routines were too tightly connected to the video mode. I eventually managed to force 3 voice sound, but the video mode would be always Tandy.

So today morning in just 10 mins, i took a look into AGI 2.917. And a single byte does the trick.

Now i don't know if there's an ultimate version of AGI that everyone just prefers to use, if so let me know and i'll try to work on that.

I will be uploading the latest patches soon.


EDIT: Huh, weird thing going on. There's indeed 3 voice sound coming but noise channel is not working and it sounds very filtered. I think i'll need some help with this.
 
Last edited:
I'm happy to anounce that AGI has now been hacked into forcing 3 voice sound. 3 voice sound now plays regardless of any graphic choice. So far AGI 2.915 (Mixed Up Mother Goose) 2.917, 2.937 and 3.002.149 (Goldrush) have been patched. Left to patch are the Manhunter games and The Blak Cauldron. King's Quest IV AGI version too eventually.

Right now, work in progress is being done with Maniac Mansion and Zak MacKraken. These games had theoretically been patched before but despite 3 voice sound is playing the noise channel is not behaving 100% accurately. So it is still a work in progress.
 
OK, so both Manhunter games are the only AGI games left to patch. I don't know if there's any interest about patching King's Quest IV AGI.

All versions of Maniac Mansion and Zak MacKracken have been patched. The early version of Maniac Mansion is however the only one with a perfect patch. The patch doesn't mess with the graphics and now the noise channel sounds correct (despite being told it couldn't be done). The persion that has been helping me is trying to get the same patching perfection for all other versions of Maniac Mansion and Zak MacKracken.

I'll try to upload the files and update the readme as soon as i have Manhunter patched. I will upload the not so perfect patches for Maniac Mansion Enhanced and both versions of Zak MacKracken but those will get replaced if something better is achieved.
 
What a great community here. I personally don't have one of these cards from James (I have many Tandy's that I still use and enjoy), but its fantastic that people are rallying around the conversion and enjoyment of titles that support 3 voice sound.
 
What was the problem with the noise channel then, and how has it been patched to fix it?

I'm not sure, the patch isn't mine, but as soon as i upload the patches you can do a binary file comparison. You'll understand it better than i can explain. In fact if someone can achieve the same in the other versions it would be much appreciated.
 
Sorry for the massive delay, but i've done no work on this lately, just been too busy. Anyway i just uploaded the latest patches that were made since the last upload, and these include AGI titles, Thexder and LucasArts early Scumm adventures Maniac Mansion and Zak McKracken.
 
Where can i find the patches ?
Or maybe information howto hexedit the file ?

Thanks

Matthias
 
What a great community here. I personally don't have one of these cards from James (I have many Tandy's that I still use and enjoy), but its fantastic that people are rallying around the conversion and enjoyment of titles that support 3 voice sound.

These patches will also enable Tandy audio from these games on a lot of later models, like 1000RSX and 2500SX devices.
 
I looked into Thexder, and it's a bit nasty: the main EXE file is just a loader for the actual game modules (MAINEG and such), which are encrypted. It decides which one to load, then decrypts it in memory, and jumps to it.
This makes it quite difficult to patch. People over at the Vogons forum did a patch a while ago, enabling Tandy music in MCGA mode (for Tandy machines with VGA-compatible video). It used a TSR that hooked into some DOS APIs and patched the code after it was loaded and decrypted.
The same trick would also work for CGA and EGA graphics of course, but you'd need to dump the decrypted files to disk first and analyze them to find the correct patches for these specific versions.

Umm, Thexder:Firehawk 2? If so, I actually have that sitting on a Tandy 1000TX right now. :) want the Tandy specific stuff? (Cmere little kid, want some candy? LOL)
 
Back
Top