Great Hierophant
Senior Member
Offline
Posts: 988
|
 |
« on: April 05, 2006, 05:56:30 PM » |
|
If the early Sound Blasters supported both the Adlib and C/MS standards, how does the card direct the data to the right place? Here is my explanation: The Adlib takes I/O 388h-389h, and the addresses cannot be changed on the card. The Game Blaster uses I/O 220h-223h (and can also take 21xh, 23xh, 24xh, 25xh, 26xh by setting the jumpers.) The Sound Blaster 1.0 & 1.5 by default takes 220h-22Fh, but can also take 21xh, 23xh, 24xh, 25xh, 26xh by setting the jumpers (22x and 24x only for SB 2.0 & 2.01.) When Creative made the first Sound Blaster, they designed it to support the prevailing Adlib Sound Card and their own Game Blaster Card. These devices use radically different chips and methods for producing sound. The Adlib came out first and the I/O addresses were set in stone by the card, so the only way Creative could ensure Adlib compatibility in the Sound Blaster was to ensure that Adlib reads and writes went to I/O 388h-389h. As the Game Blaster chips used 220h-223h for I/O, this was not a problem. In short, any pre-SB game that supported the Adlib should support the Sound Blaster as the data is going to the right I/O addresses. Also, I/O 228h-229h would also access the OPL2 chip on the early Sound Blasters. Now when Creative Labs released the Sound Blaster Pro, they had no further desire to support the CMS chips. The Pro has two OPL3 chips and needs an additional two I/O addresses to program them. Creative could have used I/O 38Ah-38Bh, but as the Game Blaster also had stereo capability why not use 220h-223h? 220h-221h would be for programming the first OPL3 chip and 222h-223h would be for programming the second OPL3 chip. Using 388h-389h would indicate legacy, one OPL3 chip Adlib support (dual mono with both chips outputting the same sound.) Also, this means that if a program has an option for using the Sound Blaster Pro, you really shouldn't use it if you have a Sound Blaster with CMS chips or sockets because it may send the wrong type of data to those chips. At best you will hear very, very wrong sound and at worst you will hear nothing. This document confirms my theory: http://www.stud.fh-hannover.de/~heineman/extern/ctsbhwpg.pdfAlso, according to the programming manual, there is no such thing as an SB 2.01. Apparently there is only an SB 2.0 and people get confused because the SB 2.0 has a 2.01 DSP version. The earlier Sound Blasters have DSP versions of 1.0-2.0 according to the document. Finally, there is an upgrade to the SB 2.0 that adds a mixer chip and a CD interface, but how it is attached is beyond me as there aren't any headers on the SB 2.0. I think it may be a different board altogether.
|
|
|
|
|
Logged
|
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #1 on: April 07, 2006, 04:05:07 PM » |
|
The Game Blaster uses I/O 220h-223h. The Sound Blaster 1.0 & 1.5 by default takes 220h-22Fh. I see a conflict not only when using Sound Blaster Pro together with Game Blaster, but also when using Sound Blaster 1.0 or 1.5 together with Game Blaster. Both Game Blaster and Sound Blaster use the same 220h. :?:
|
|
|
|
|
Logged
|
|
|
|
|
Cloudschatze
Guest
|
 |
« Reply #2 on: April 07, 2006, 04:59:51 PM » |
|
The Game Blaster uses I/O 220h-223h. The Sound Blaster 1.0 & 1.5 by default takes 220h-22Fh. I see a conflict not only when using Sound Blaster Pro together with Game Blaster, but also when using Sound Blaster 1.0 or 1.5 together with Game Blaster. Both Game Blaster and Sound Blaster use the same 220h. :?: You'll need to assign one of the cards a different address, not just for these instances, but when using the Game Blaster with any Sound Blaster-compatible card. I assigned 240h to the Game Blaster, and have only run into one compatibility issue by doing so (which NewRisingSun subsequently fixed for me  ). Games with auto-detection routines might be an issue, though with those I've tried, you can override the auto-detect with command-line options. Getting Game Blaster music out of Prince of Persia was a bugger, for whatever reason...
|
|
|
|
|
Logged
|
|
|
|
Great Hierophant
Senior Member
Offline
Posts: 988
|
 |
« Reply #3 on: April 07, 2006, 08:07:18 PM » |
|
If you have a Sound Blaster with the CMS chips, what reason could you have for wanting to put the Game Blaster card in the same system? I don't know of any game that supports two Game Blaster cards.
There are only three reasons why you would want to use a Game Blaster anyways over a Sound Blaster w/CMS chips. First, the Game Blaster doesn't use an IRQ. Second, its a shorter card (1/2 length compared to the 3/4 length of the SB 1.0.) Third, you may have a Sound Blaster Pro or some other device that supports the Sound Blaster but not the Game Blaster. In that particular case, it would be better to assign the Pro to 240h as more programs allow you to set the I/O port.
By the way, don't you find it a bit misleading that Creative Labs advertised the original Sound Blasters as being stereo cards when the only thing stereo about them would be Game Blaster chips, which were the least parts of the cards? Also, as not all non-Pro SBs have them, the advertising rings false.
|
|
|
|
|
Logged
|
|
|
|
apeman
Senior Member
Offline
Posts: 228
|
 |
« Reply #4 on: April 08, 2006, 03:57:13 AM » |
|
I remember when I bought my first SB, on holiday in the States. The advertising flyers all talked about a STEREO/music/sound card but when I had bought it and looked at the box, they had changed it to SPEECH/music/sound. Yes you guessed it, I was one of the "lucky" ones to own a SB 1.5 without the CMS chips.
|
|
|
|
|
Logged
|
Roland CM-32L, CM-500, LAPC-I (w/ MCB-1), MPU-401AT, MT-32, SC-55mkII, SCB-55, SCP-55 (w/ MCB-3) Yamaha MU10 Creative Sound Blaster 1.5, SB Pro 2, SB 16 ASP, SB 16 PnP, SB AWE64 Gold, SB Audigy 2 ZS
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #5 on: April 08, 2006, 08:08:52 AM » |
|
I was thinking about a Sound Blaster card with CMS chips. (SB part use 220h and CMS chips use 220h too). So this is the conflict I was thinking about.
|
|
|
|
|
Logged
|
|
|
|
Great Hierophant
Senior Member
Offline
Posts: 988
|
 |
« Reply #6 on: April 08, 2006, 03:57:19 PM » |
|
I was thinking about a Sound Blaster card with CMS chips. (SB part use 220h and CMS chips use 220h too). So this is the conflict I was thinking about. Don't worry about it. The Game Blaster chips use I/O addresses 220h-224h. The Sound Blaster proper (the DSP which handles midi & ADPCM) uses I/O addresses 226h, 22Ah, 22Ch, 22Eh, and the Adlib portion can use either I/O addresses 228h-229h or 388h-389h. All three elements are entirely separate and only the DSP uses an IRQ or a DMA. One good thing was that Creative ensured that the Sound Blaster would behave just like the Game Blaster or Adlib and no conflicts or overlap would occur. To the game or program, it seem just like an Adlib or a Game Blaster was being used and the other functionality could be ignored.
|
|
|
|
|
Logged
|
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #7 on: April 08, 2006, 09:16:12 PM » |
|
Getting Game Blaster music out of Prince of Persia was a bugger, for whatever reason... What do you mean exactly (does it work or not?). And do you use a real Game Blaster card (or Sound Blaster with CMS chips)?
|
|
|
|
|
Logged
|
|
|
|
|
Cloudschatze
Guest
|
 |
« Reply #8 on: April 09, 2006, 02:27:41 AM » |
|
Getting Game Blaster music out of Prince of Persia was a bugger, for whatever reason... What do you mean exactly (does it work or not?). And do you use a real Game Blaster card (or Sound Blaster with CMS chips)? I'm using a real Game Blaster card. When using the GBLAST command-line option, sometimes it works, and sometimes it uses the OPL synth anyway.
|
|
|
|
|
Logged
|
|
|
|
Great Hierophant
Senior Member
Offline
Posts: 988
|
 |
« Reply #9 on: April 09, 2006, 03:29:59 AM » |
|
I'm using a real Game Blaster card. When using the GBLAST command-line option, sometimes it works, and sometimes it uses the OPL synth anyway. I assume you must also have a Sound Blaster or compatible inside the system as well and PoP's detect system is getting confused. In my opinion, you really should pair an Adlib with a Game Blaster and a Game Control Adapter or just use a Sound Blaster w/CMS chips, but try not to use a Game Blaster with a Sound Blaster.
|
|
|
|
|
Logged
|
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #10 on: April 09, 2006, 07:20:03 AM » |
|
I'm using a real Game Blaster card. When using the GBLAST command-line option, sometimes it works, and sometimes it uses the OPL synth anyway. Could you check how it works if you remove Sound Blaster card from your computer and leave only Game Blaster? And tell us what happens when you start the game with a gblast parameter, and what happens when you start the game without it. And also whether you will have gb music and sound effects or only gb music and pcspeaker sfx. And what is your computer's CPU. I have tried the game in DOSBox and it somehow doesn't want to work with Game Blaster (if I disable sb emulation), so I wonder whether it is a bug in DOSBox (will have to report if it is). In DOSBox the game works with cms if I have sb emulation enabled and cms emulation enabled. If I use small amount of cycles (for example 3000) the game plays sb sfx and adlib music. When i start the game with more cycles (for example 10000) the game works with sb sfx and gb music.
|
|
|
|
|
Logged
|
|
|
|
|
Cloudschatze
Guest
|
 |
« Reply #11 on: April 10, 2006, 03:27:40 AM » |
|
I'm using a real Game Blaster card. When using the GBLAST command-line option, sometimes it works, and sometimes it uses the OPL synth anyway. Could you check how it works if you remove Sound Blaster card from your computer and leave only Game Blaster? And tell us what happens when you start the game with a gblast parameter, and what happens when you start the game without it. And also whether you will have gb music and sound effects or only gb music and pcspeaker sfx. And what is your computer's CPU. Oh, so many questions!  It's probably going to be Tuesday before I have a chance to get back to you with the answers. Off the top of my head though, without specifying any option, the game defaults to the SoundBlaster driver, with OPL music and digital sound-effects.
|
|
|
|
|
Logged
|
|
|
|
Great Hierophant
Senior Member
Offline
Posts: 988
|
 |
« Reply #12 on: April 11, 2006, 01:52:50 PM » |
|
I think that games that have a problem detecting the Game Blaster capability on the Sound Blaster because their detection schemes auto-detect an Adlib or a Sound Blaster, which confuses their routine into thinking that the Game Blaster isn't available. A game will autodetect an Adlib if the user has a Sound Blaster. The best way to use an Game Blaster is with a Game Blaster, not a Sound Blaster, because of this problem.
|
|
|
|
|
Logged
|
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #13 on: April 15, 2006, 08:09:23 AM » |
|
1. Could you check how it works if you remove Sound Blaster card from your computer and leave only Game Blaster, and tell us what happens when you start the game with a gblast parameter, and what happens when you start the game without it. (does it work or not). And also whether you will have gb music and sound effects or only gb music and pcspeaker sfx. 2. And what is your computer's CPU. You can answer what is your CPU without any testing, just tell us  And to answer the rest of the questions you just have to remove sb card and run the game only twice ("prince.exe gblast", and "prince.exe"). No more  And just listen to 5 seconds of intro music, than press any key so that the game starts and you hear sfx. That's all  So the whole testing shouldn't take more than 5 minutes 
|
|
|
|
|
Logged
|
|
|
|
|
Cloudschatze
Guest
|
 |
« Reply #14 on: April 15, 2006, 08:36:24 PM » |
|
1. Could you check how it works if you remove Sound Blaster card from your computer and leave only Game Blaster, and tell us what happens when you start the game with a gblast parameter, and what happens when you start the game without it. (does it work or not). And also whether you will have gb music and sound effects or only gb music and pcspeaker sfx. 2. And what is your computer's CPU. You can answer what is your CPU without any testing, just tell us  And to answer the rest of the questions you just have to remove sb card and run the game only twice ("prince.exe gblast", and "prince.exe"). No more  And just listen to 5 seconds of intro music, than press any key so that the game starts and you hear sfx. That's all  So the whole testing shouldn't take more than 5 minutes  The CPU is an Intel 486, DX2-66. With the PAS16 disabled, "PRINCE.EXE GBLAST240" resulted in Game Blaster music, and built-in speaker SFX. Now, I didn't say so previously, but I should mention that the Game Blaster music is absolutely terrible. It does not play at a consistent speed, instead "stalling" in many places. Not knowing whether this is normal or not, I removed the PAS16 completely, changed the Game Blaster to the default address of 220, and finished with "PRINCE.EXE GBLAST". The Song Remains the Same... In conclusion - trying to get Game Blaster music from Prince of Persia is a giant waste of time. You may be interested to know, however, that all of my attempts to produce Game Blaster music from the SB2.0 w/CMS were unsuccessful.
|
|
|
|
|
Logged
|
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #15 on: April 16, 2006, 09:40:23 AM » |
|
Thank you for your testings. I guess you have too fast computer for Game Blaster. For example Adlib (OPL2) doesn't play music properly if you have a Pentium (100MHz in my case, I had to disable internal/external cache in BIOS to slow down computer to make OPL2 play music corectly - with every game). With my 486DX25MHz Adlib works OK. By the way OPL3 works OK even with Athlon over 1GHz  If you have a slower computer you can try to check your GB there (386 or 286, or even 88/86  ).
|
|
|
|
|
Logged
|
|
|
|
Great Hierophant
Senior Member
Offline
Posts: 988
|
 |
« Reply #16 on: April 16, 2006, 02:23:55 PM » |
|
I think this quote from MobyGames explains the issue well:
"The original AdLib manual (before they shipped) did not call for ANY delays. The original IBM PC (4.77 Mhz) couldn't get ahead of the card. By the time it shipped they were telling use to do one IN instruction, and every time a new faster processor came out they added some delay to their recomendation. The old 8088 machines would not have worked with the 35 IN instructions now required, it would have slowed the machine down so much nothing else could get done."
Essentially, the processor is far faster than the bus, and PoP is not accounting for the longer delays needed to send the sound data to the card with a Pentium than with a 386.
|
|
|
|
|
Logged
|
|
|
|
|
Cloudschatze
Guest
|
 |
« Reply #17 on: April 16, 2006, 07:07:51 PM » |
|
Thank you for your testings. I guess you have too fast computer for Game Blaster. For example Adlib (OPL2) doesn't play music properly if you have a Pentium (100MHz in my case, I had to disable internal/external cache in BIOS to slow down computer to make OPL2 play music corectly - with every game). With my 486DX25MHz Adlib works OK. By the way OPL3 works OK even with Athlon over 1GHz  If you have a slower computer you can try to check your GB there (386 or 286, or even 88/86  ). Even with the internal cache disabled, the results are the same. I think the issue is with Prince of Persia itself, and not the CPU speed.
|
|
|
|
|
Logged
|
|
|
|
robertmo
Senior Member
Offline
Posts: 203
|
 |
« Reply #18 on: April 16, 2006, 07:45:04 PM » |
|
In DOSBox the cms music is very nice. It even works toghether with Sound Blaster sound effects 
|
|
|
|
|
Logged
|
|
|
|
|
Cloudschatze
Guest
|
 |
« Reply #19 on: April 16, 2006, 10:21:09 PM » |
|
robertmo, are you using the version of PoP with MT-32/LAPC support? If so, I might try again with that one.
|
|
|
|
|
Logged
|
|
|
|
|