VOGONS


First post, by carlostex

User metadata
Rank l33t
Rank
l33t

Some of you may know that there is now a working prototype of the Tandy Sound adapter. I've launched the original thread here on VOGONS almost 2 years ago, and its really exciting to realize what this project has achieved and what is left to achieve. So some games need to be patched, for the card to be useful on a non Tandy/PCjr system.

I've found (lame approach but...) a way to patch Rendezvous with Rama. Rendezvous with Rama is a Telarium text adventure with graphics and it supports CGA for graphics only but will play 3 voice music on a PCjr or a Tandy 1000.

The game will play PC Speaker / Tandy 3 voice based on a detection routine. I haven't figured out the PCjr detection routine as unlike the Tandy one it doesn't seem to involve just reading a memory location and comparing 1 byte. I'm also not fluent in 8088 assembly so keep this in mind.

I found however that location FC00h is read, moved to the ax register and then a cmp instruction that involves 6 bytes to compare what is read in that memory location. If 21h (Tandy model byte) is the same value read at FC00h, 3 voice music will play. So for me the easiest way to patch was to simply define the memory location as the first byte of my system BIOS and then change the byte to match my system BIOS.

So open RDV.EXE with a hex editor and edit 2 locations:

At segment 780Eh (2 bytes of memory location to be read) in RDV.exe. Default is 00 FC and here you edit to whatever location you want to be read. In my case system BIOS starts at FE00h so i change to 00 FE.

Then at segment 7817h the single byte that must match what is read at the memory location we defined. My system BIOS starts with 54h (ASCII for 'T') so that's what i patch. The original value is 21h (Tandy model byte).

I know this is a lame way to patch, but with my limited knowledge i can't do better ATM. It works though!

Reply 1 of 5, by dr_st

User metadata
Rank l33t
Rank
l33t
carlostex wrote:

Rendezvous with Rama is a Telarium text adventure with graphics and it supports CGA for graphics only

Is it actually about Rendezvous with Rama?

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 3 of 5, by carlostex

User metadata
Rank l33t
Rank
l33t

Scali at VCF and Plasma helped me to get a better approach to patch this. All is needed is to replace the byte at offset 781B, 74h with EBh. This will change the conditional jz instruction to a jmp instruction and will ensure that 3 voice music will always play, no matter the machine.

Reply 5 of 5, by carlostex

User metadata
Rank l33t
Rank
l33t
bjt wrote:

Great work. We'll make an assembly programmer out of you yet 😎

Lol, i wish. There's so much to learn, and it isn't exactly easy.

I did one better and patched ALL the games from Telarium. Nine Princes in Amber was a tough nut to crack, due to probably an intentional or screwed up routine code.

In the file you can find patched executables for all Telarium adventures for IBM PC.

Filename
TELARIUM.rar
File size
136.18 KiB
Downloads
24 downloads
File comment
Patched executables for Telarium adventure games. Will give 3 voice sound on a PC with the Tandy Sound Card
File license
Fair use/fair dealing exception

You can try the executables with DOSBox set to machine=CGA and Tandy=ON.