First post, by carlostex
- 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!