First post, by carlostex
Hi there, what is this all about?
Are you a CMS/Game Blaster original card owner? Have you tried using it alongside a Sound Blaster Pro, later or compatible? If you did keep reading and for the ones who did not, or never had that chance let me explain.
THE PROBLEM AND SOLUTIONS
The default address for the CMS/ Game Blaster card is 220h. This is not a huge issue except 220h is also the default address for Sound Blasters and compatibles. In practice, what is the downside of using both cards in the 220h address? Well, firstly you'll notice that the CMSDRV driver for the CMS won't work correctyl due to an hardware conflict, which will prevent you from running CMS original software and demos. Still not a big issue? Try to run a game selecting CMS and while your CMS card will play, you'll also have to listen to annoying noises coming from your Sound Blaster card, crackingling and popping right away as the SB card is confused by what is being written to the CMS chips on the fly. So...a few solutions: a) remove the CMS card, not too many games support it; b) Replace the SB Pro, SB16, clone whatever with a Sound Blaster 1.0, 1.5, 2.0, Sound Machine clone or ATI Stereo F/X; c) Keep both cards in the machine but move the CMS to a different port; d) Keep both cards in the machine but move the SB Pro etc... card to another port; e) get rid of all your hardware and just use DOSBox, why even bother?
ANALIZING THE SOLUTIONS
So option A is clearly the "why should i even bother with CMS" option which in reality would be a choice a lot of people would consider. Let's face it, only a few select games, like Times of Lore for instance, use it really well and AdLib/SB will sound better 99% of the time. But in my case this was not an option, i want my 386 to be a "chiptunes" machine, so taking this option would be giving up, and i don't do that easily. Discarded.
Option B is one good solution for stubborn people who would insist on having CMS sound on their machines. It has indeed some advantages so let's see: you'll save an ISA slot, you'll avoid the crackling/popping noises of a dedicated card setup, you can keep everything standard using default 220h address without any major issues and it would be period correct on a 286/386. Now the disadvantages: In my case i would lose OPL2 capability via the Sound Blaster Pro 1 which i wouldn't want to. There is Ultima Underworld and some Microprose titles that sound great with the OPL2 capability. With a chiptune mentality in mind for this 386, the dual OPL2 just had to be present. If i were to use a SB + CMS on 1 card my choice would be the ATI Stereo F/X.
Option C and D present the same problem which would be inverted in any case. So i decided that changing the port on the CMS was the right solution. Making this change allowed me to use the CMS software without any problems, but a bigger issue had to arrive. Most games with CMS support do not allow the user to select the port so the default value of 220h is hardcoded within the games, so the games need patching. Because there are a LOT less games with CMS than SB support, option C was clearly the most reasonable one. Still, its a taks not easy to pull off, specially if you never programmed in assembly, but still i decided to roll up my sleeves, apply some grease on my elbows and get to work. There was no turning back at this point, so my goal was to patch (or make possible to) every single game with CMS support.
SETTING A NEW STANDARD
Even though the goal of this project is to make it possible for the user to patch his address of choice for his/her original CMS/Game Blaster cards, i had a little thought about this and i would like to push a new default CMS port for everyone. I chose port 210h, for a few reasons. Firstly, the CMS/Game Blaster was the first commercially available audio product for the IBM PC platform. SInce Sound Blasters who came to dominate the market used 220h and were released later, then CMS should get an earlier port. Port 240h was commonly used by GUS cards when setup alongside a SB card, or even 260h which i use exclusively for GUS on all my builds. Port 230h seems to also be a bad idea, since i think SB Pro's use the 220 - 23F range. In the same way it could conflict with an IBM Music Feature card if the latter is set to 2A30. Another choice would be port 250h, but again that might be a bad idea if someone wants to use a card at 240h that might use a 1Fh range. The possibility of something else using port 210h along of a CMS card is pretty low.
So yes, everyone is free to set whatever port they would like, but IMO port 210h should be the way to go.
IS THIS PROJECT COMPLETE?
Almost. Although pretty much every game has now a patching solution this project has a secondary goal. As some of you might know, a real CMS/Game Blaster uses a custom chip for detection, since the Phillips SAA chips can't be detected by software. So some games that rely on the card detection feature will not play CMS sound on a SB card with CMS chips installed. The secondary goal is to make ALL games that require a true CMS/Game Blaster card to also play just as well on a SB+CMS card. A couple of these games have already been patched.
SO MUCH YADA, YADA, YADA WHEN WILL YOU RELEASE THIS?
Later. I just wanted to make the anouncement, but i will release the instruction document in a couple of days, as i have to give credit where credit is due, and i will also upload files for games that need well...patched files. Some games have encrypted files that needed to be decrypted first, patched, and encrypted back again. Some of those files had to be patched while including game cracks, so i won't be uploading these files here on Vogons. However i have green light and some space on the oldskool.org ftp, courtesy of Jim Leonard aka Trixter aka MobyGamer.
With the instruction document you'll be able to patch most of the games yourself. Keep in mind that i worked with some specific game versions, so if you can't patch it yourself that might be the reason. If there is good enough reasons to, i don't see why multiple versions shouldn't be patched too.
My special thanks go to Scali, for his incredible patience with this and for having the balls to get out of his comfort zone, all in the sake of science of retro computing. Also special thanks to the guru master NewRisingSun, which i'm sure i managed to annoy, who with his amazing talent and experience pulled off probably the hardest patches of all this project in an instant. Without them, this project wouldn't reach its end, for sure.
My thanks go also to ripsaw8080, who helped me a lot in the Tandy Sound Card patching project, and taught me that anyone can learn, if they wish. You can't just ask for the fish, you need to try and catch it yourself!
INSTRUCTION FILE BELOW:
Keep in mind, that some of these patches might not work with all game versions. I've made the huge mistake of not documenting which version was patched, so this is info i still need to add.
Also i haven't got Death Knights of Krynn working yet, but i figured just one game shouldn't stop the release.
For games that need files, i will be uploading them soon on the oldskool.org ftp. Some games have patched .EXE's that rely on copy protection, and it's against the rules to upload them here. Stay tuned.