Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« on: September 07, 2007, 08:24:16 PM » |
|
This is probably the most information I've seen on the actual chip, courtesy of a USENET post from Jan Bergman, 1993: More about the ASP HARDWARE. -----------------------------
Creative Technology SB16's ASP is an digital signal processor based ASIC from SGS-Thomsons ST18932. This design consists of five memory elements- four 512 words x 8bits program RAMs, a 512x16 data RAM -plus the DSP megacell. Power consumtion is 350mW and 0.5mW standby. The 13 MIPS application specific DSP core has been used for data compression techniques. The customized algorithm implemented in th ST18932 assembler language succeded in saving 75% of equivalent disk space over competitors' solution then decoding a full 16-bit stereo recording. Development time was five months, from concept to finished prototypes.
Soundblaster 16 Audio Sub System:
------------ --------------- Micro !---------------------! !micro- ! ! Microphoe ! <---------- !Audio Compression ! !controller! ! AGC & power-! Speaker !CB1200 Standard Cell ! ------------ ! amp ! -----------> !with ST18932 CORE ! --------------- !---------------------! ! A ! V ! ------------------- ---------- ---------------- line IN ! audio controller! <--- !16-Bit !<---- ! Stereo Mixer&! <---------- ------------------- ---->!A/D, D/A!----> ! Volumecontrol! CD IN ! ---------- ! STKM2xxxx ! <---------- ! ---------------- V A -------------- --------------- ! ! PC-ISA BUS ! !FM syntesizer! ---/ -------------- --------------- Semi-interesting anecdote: I attempted to disable the ASP on a CT3980 AWE32 by enabling the APSD and IFSD jumpers. This results in no digital audio output whatsoever. Good one, Creative! 
|
|
|
|
|
Logged
|
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #1 on: September 07, 2007, 10:22:22 PM » |
|
What exactly was Uncreative trying to accomplish with that thing anyway, by not releasing the specs? I've never seen any indication of a developer's kit either. By the way, try if my ID utility manages to detect the ASP chip. I don't have a card with it installed at the moment, but I copied the detection code from ASP.SYS, maybe even correctly.
|
|
|
|
« Last Edit: September 07, 2007, 10:26:50 PM by NewRisingSUn »
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #2 on: September 08, 2007, 03:43:01 PM » |
|
What exactly was Uncreative trying to accomplish with that thing anyway, by not releasing the specs? I've never seen any indication of a developer's kit either. I think it ended up being more of a marketing gimmick than anything else. Even if a developer's kit had been available, I wonder if anything worthwhile could have been created. It might be interesting to see an MP3 or Ogg Vorbis decoding algorithm programmed for it. Then, perhaps, Sierra's larger audio resources could be converted, resulting in "compact" versions of the spoken-dialogue games. (Far-fetched, eh?)  By the way, try if my ID utility manages to detect the ASP chip. I don't have a card with it installed at the moment, but I copied the detection code from ASP.SYS, maybe even correctly. 240: Creative Music System/Game Blaster 220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: present 388: YMF262/CT1747 (OPL3) 300: MPU-401 (UART mode only) 330: MPU-401 (UART mode only) ← Roland LAPC-I... 338: MPU-401 (UART mode only)
|
|
|
|
|
Logged
|
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #3 on: September 08, 2007, 08:11:59 PM » |
|
It might be interesting to see an MP3 or Ogg Vorbis decoding algorithm programmed for it. You'll have an easier time doing this as a regular program. Then, perhaps, Sierra's larger audio resources could be converted, resulting in "compact" versions of the spoken-dialogue games. (Far-fetched, eh?) ScummVM allows this for LucasArts games. I take it that everything is id'd correctly, save for the UART-only LAPC-I, which is odd. I have uploaded a slightly changed version, try if it gets the intelligent mode this time. It previously worked with my SCC-1 ... The 338 MPU is just the incompletely decoded address from 330 MPU, so from a certain point of view, that too is accurate.
|
|
|
|
|
Logged
|
|
|
|
5u3
Senior Member
Offline
Posts: 65
|
 |
« Reply #4 on: September 08, 2007, 09:05:48 PM » |
|
Nice utility! Tried the updated version on my 486: 220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: present 388: YMF289B (OPL3-L) 300: MPU-401 (UART mode only) 332: MPU-401 (supports Intelligent mode) 338: MPU-401 (supports Intelligent mode) Installed cards: CT3900 (220, 300, 388), LAPC-I (330), SCC-1(332) In my K6 system, I have a SB AWE32 CT3980), here the utility doesn't seem to detect the CSP chip: 220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: not present 388: YMF262/CT1747 (OPL3) 330: MPU-401 (UART mode only) The output is the same whether I set the IFSD/APSD jumpers or not. When I "deactivate" the CSP, I get the same phenomenon as Cloudschatze, digital sound doesn't work any more.
|
|
|
|
|
Logged
|
486 DX4 | 486SP3 | 64MB FPM | S3 Trio64V+ | AWE32 + DB50XG | Ultrasound | SCC-1 | LAPC-I | LPT-DAC K6-III | P5A | 256MB SDR | Voodoo5 5500 | AWE32 + SCB-55 | Ultrasound PnP A64 4000+ | AV8 3rd Eye | 2048MB DDR | Radeon 9800SE | ALC658D
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #5 on: September 08, 2007, 09:35:54 PM » |
|
220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: present 388: YMF289B (OPL3-L) Eh? It detects a different OPL chip at 220 vs. 388? That must be the fault of the bus interface chip, then, which doesn't correctly relay reads from the 220-223 addresses, but does for the 388-38b addresses. The OPL3 is distinguished from the OPL3-L by the fact that the OPL3-L's registers are readable. By the way, if you have any card that uses CQM, try if it detects that correctly. LAPC-I (330), SCC-1(332) The LAPC-I is not correctly identified at 330 because you have the SCC-1 at 332, which makes my utility think there's an Adaptec SCSI adapter at 330 (in case of which it completely ignores the 330 address to avoid crashing the system). I guess I should use a better detection method for Adaptec SCSI. But good it detects the LAPC-I at the alternate 338 address and that it now detects the intelligent mode as well. I have a SB AWE32 CT3980), here the utility doesn't seem to detect the CSP chip: Are you sure the CSP chip is installed properly? Because it would seem odd that it's detected correctly in Cloudschatze's CT3980 but not in yours. Edit: Removed the SCSI check, added Emu-8k and Ultrasound detection (preliminary, seems to work in DosBox though). Also removed the 338 address from the MPU-401 scan, since that address isn't actually selectable.
|
|
|
|
« Last Edit: September 08, 2007, 10:36:41 PM by NewRisingSUn »
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #6 on: September 09, 2007, 12:24:29 AM » |
|
I have a SB AWE32 CT3980), here the utility doesn't seem to detect the CSP chip: Are you sure the CSP chip is installed properly? Because it would seem odd that it's detected correctly in Cloudschatze's CT3980 but not in yours. I should clarify. Though I mention the CT3980 in the first post, the card that I currently have installed is a CT2760. Sorry for the confusion. 
|
|
|
|
|
Logged
|
|
|
|
5u3
Senior Member
Offline
Posts: 65
|
 |
« Reply #7 on: September 10, 2007, 12:51:45 AM » |
|
Edit: Removed the SCSI check, added Emu-8k and Ultrasound detection (preliminary, seems to work in DosBox though). Also removed the 338 address from the MPU-401 scan, since that address isn't actually selectable.
Wow! GUS and EMU-8000 detection works with my cards, nice update!  Eh? It detects a different OPL chip at 220 vs. 388? That must be the fault of the bus interface chip, then, which doesn't correctly relay reads from the 220-223 addresses, but does for the 388-38b addresses. The OPL3 is distinguished from the OPL3-L by the fact that the OPL3-L's registers are readable. It is not the fault of your utility or the SB card, it's the presence of a GUS in the system:  - A classic GUS causes the detection at 388h to be wrong (OPL3-L instead of OPL3). - A GUS PnP causes 388h not to be displayed at all, but only in case the card was initialised via IWINIT.EXE. I also (re)tested most of my SB cards, here are the results: Soundblaster 2.0 (CT1350B) 220: CT1351 (SB 2.0), FM: 1x YM3812 (OPL2), CMS chips: optional 388: 1x YM3812 (OPL2) Soundblaster Pro 2.0 (CT1600) 220: CT1341 (SBPro), FM: YMF262/CT1747 (OPL3) 388: YMF262/CT1747 (OPL3) Soundblaster 16 MCD (CT1750) 220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: present 388: YMF262/CT1747 (OPL3) 330: MPU-401 (UART mode only) Soundblaster 16 IDE (CT2910) 220: CT1741 (SB16), FM: YMF289B (OPL3-L), CSP chip: present 388: YMF289B (OPL3-L) 330: MPU-401 (UART mode only) This one doesn't have a CSP chip/socket installed, although it has the soldering pads on the PCB. Soundblaster 32 PnP (CT3600) 220: CT1741 (SB16), FM: CT89xx (CQM), CSP chip: not present 388: CT89xx (CQM) 330: MPU-401 (UART mode only) 620: EMU-8000 Soundblaster AWE 32 (CT3900) 220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: present 388: YMF262/CT1747 (OPL3) 330: MPU-401 (UART mode only) 620: EMU-8000 Soundblaster AWE 32 PnP (CT3980) 220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: not present 388: YMF262/CT1747 (OPL3) 330: MPU-401 (UART mode only) 620: EMU-8000 This one does have a CSP, soldered directly onto the PCP (no socket). Soundblaster Vibra 16XV (CT4170) 220: CT1741 (SB16), FM: CT89xx (CQM), CSP chip: not present 388: CT89xx (CQM) 330: MPU-401 (UART mode only) Soundblaster AWE 64 Gold (CT4390) 220: CT1741 (SB16), FM: CT89xx (CQM), CSP chip: not present 388: CT89xx (CQM) 330: MPU-401 (UART mode only) 620: EMU-8000 So far everything is correct, except for the CSP detection on two out of nine cards. It might be just my cards though, because I got them on ebay and don't know what happened to them before.
|
|
|
|
« Last Edit: September 10, 2007, 12:55:25 AM by 5u3 »
|
Logged
|
486 DX4 | 486SP3 | 64MB FPM | S3 Trio64V+ | AWE32 + DB50XG | Ultrasound | SCC-1 | LAPC-I | LPT-DAC K6-III | P5A | 256MB SDR | Voodoo5 5500 | AWE32 + SCB-55 | Ultrasound PnP A64 4000+ | AV8 3rd Eye | 2048MB DDR | Radeon 9800SE | ALC658D
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #8 on: September 10, 2007, 03:32:02 AM » |
|
Wow! GUS and EMU-8000 detection works with my cards, nice update! Good, considering that I haven't tried it with a real GUS myself, only DosBox' emulation. I have since added code to detect the memory size; this may or may not work right. This one doesn't have a CSP chip/socket installed, although it has the soldering pads on the PCB. One false positive... This one does have a CSP, soldered directly onto the PCP (no socket). And one false negative. I have added a line that displays what value the "ASP status" DSP command returns. It might help if you posted the ASP.SYS drivers that came with those two cards, so I can have a look at them.
|
|
|
|
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #9 on: September 11, 2007, 05:02:15 AM » |
|
Hmm. I'm getting some false-positives for port 620h in another system. With just an SB2.0 installed (including the CMS chips, which are correctly identified), an EMU8000 is also detected...
|
|
|
|
|
Logged
|
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #10 on: September 11, 2007, 12:38:31 PM » |
|
With just an SB2.0 installed (including the CMS chips, which are correctly identified), an EMU8000 is also detected... The CMS chips can't be identified at all, it just mentions that with DSP <3, CMS chips are optional. The Sound Blaster cards prior to SB16 don't decode the address fully, which is why they don't just appear at 220, but also at 620, a20 and e20. Which is why you had that problem with the IBM music feature card, same cause. The best compensation would probably be to only look for the EMU chip if a DSP >=4 is found. I don't really care about this at this point; I'd rather find out about those ASP anormalities. You said you had a CT3980 as well?
|
|
|
|
« Last Edit: September 11, 2007, 12:39:55 PM by NewRisingSUn »
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #11 on: September 11, 2007, 03:20:52 PM » |
|
The CMS chips can't be identified at all, it just mentions that with DSP <3, CMS chips are optional. I thought that was the case, but noticed that my output differed from 5u3's, and misinterpreted the reason. You said you had a CT3980 as well? I'll test your utility against it later this afternoon. 
|
|
|
|
|
Logged
|
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #12 on: September 11, 2007, 03:35:45 PM » |
|
I thought that was the case, but noticed that my output differed from 5u3's, and misinterpreted the reason. On second thought, the ports the EMU check reads from are the mirrored CMS ports (220-223) on the SB 2.0, so if the Emu check seems something there, maybe the CMS chips can be identified after all. Creative themselves never did (the TEST-SBC utility doesn't seem to, I need to use a command line option to get it to offer the CMS test menu choice). If you're interested in finding out, be prepared to remove your SB 2.0's CMS chip on my command.  But let's first solve エーエスピーの謎. 
|
|
|
|
« Last Edit: September 11, 2007, 03:37:15 PM by NewRisingSUn »
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #13 on: September 11, 2007, 03:46:21 PM » |
|
If you're interested in finding out, be prepared to remove your SB 2.0's CMS chip on my command.  Would closing the CMSOFF jumper suffice? But let's first solve エーエスピーの謎.  がんばります!
|
|
|
|
|
Logged
|
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #14 on: September 11, 2007, 05:17:26 PM » |
|
Would closing the CMSOFF jumper suffice? Is the CMSOFF jumper OFF when one buys it new without the CMS chips, or is it ON just without the chips installed? I guess it's better to remove the chips themselves to be sure. Edit: Here is a test program. Just post the output with and without CMS chips. I don't know how that jumper factors into this. SB must be at 0x220. No rush, whenever you're in the mood.
|
|
|
|
« Last Edit: September 12, 2007, 01:02:20 AM by NewRisingSUn »
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #15 on: September 12, 2007, 03:56:58 AM » |
|
Here is the relevant CT3980 output:
0220h: CT1747 (SB16), FM: YMF262/CT1747 (OPL3), CT1748 CSP present DSP command 0x03 (CSP status) returned 3Fh
Here is the output from the CT1350B, without the logic and CMS chips installed:
+0 +1 +2 +3 06 FF FF FF 06 FF FF FF writing C6: 06 FF FF FF 06 FF FF FF writing 39: 06 FF FF FF 06 FF FF FF
With the logic and CMS chips installed (and regardless of the CMSOFF jumper setting) the following output was observed - the first being the most common result, and the second and third appearing occasionally on successive runs:
+0 +1 +2 +3 FF FF FF FF FF FF FF FF writing C6: DF DF DF DF FF FF FF FF writing 39: FF FF FF FF FF FF FF FF
+0 +1 +2 +3 FF FF FF FF FF FF FF FF writing C6: FF FF FF FF FF FF FF FF writing 39: FF FF FF FF FF FF FF FF
+0 +1 +2 +3 FF FF FF FF FF FF FF FF writing C6: DF DF DF DF DF DF DF DF writing 39: FF FF FF FF FF FF FF FF
|
|
|
|
|
Logged
|
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #16 on: September 12, 2007, 10:17:23 AM » |
|
0220h: CT1747 (SB16), FM: YMF262/CT1747 (OPL3), CT1748 CSP present DSP command 0x03 (CSP status) returned 3Fh Hm. That is just as expected. I wonder why it didn't work with 5u3's CT3980. Basically, When DSP command 03 returns FF, I'm assuming "no CSP", on any other result "with CSP", which seems to work correctly with all of your cards, and all but two of 5u3's cards. the following output was observed - the first being the most common result, and the second and third appearing occasionally on successive runs: Without the CMS chips, the first port (220) always returns 06, whereas with the chips, it returns DF or FF. That's indeed something one can check for. I wonder why "06" of all values. That actually what the OPL2 returns after initialization, but the OPL2 lies at 228 (and 388), not 220, so this may be incidental. I also wonder if the Sound Blaster 1.0/1.5 behave the same way, the 1.0 always having the chips, the 1.5 not having them by default. If they do, this checking method would indeed be permissible. Anyway, thank you for taking the time to investigate this. In any case, I have updated the utility, both with that potential CMS check and hopefully a better AWE32 EMU8000 check. The new Binaura 3DSE and PnP detection are hypothetical at this point. I also wanted to check for the AWE32's RAM size, but programming the EMU8000 directly is a mess that I get a headache whenever I try it, and using the Creative SDK increases my code from 3k to 30k. 
|
|
|
|
« Last Edit: September 12, 2007, 11:09:51 AM by NewRisingSUn »
|
Logged
|
|
|
|
5u3
Senior Member
Offline
Posts: 65
|
 |
« Reply #17 on: September 12, 2007, 07:09:18 PM » |
|
I have added a line that displays what value the "ASP status" DSP command returns. It might help if you posted the ASP.SYS drivers that came with those two cards, so I can have a look at them. I'm afraid I can't help with this... As far as I remember I got the cards (CT3980 and CT2910) from ebay without documentation or driver disks/CDs. I have found a driver CD for "Sound Blaster AWE32 PnP" which could match the CT3980, but unfortunately it doesn't contain any DOS drivers. As for the "ASP status" value: For some reason this line doesn't show up when I run the latest version of the utility you posted (SNDID.COM, 3252 bytes). Does it depend on Creative drivers (I only execute CTCM v1.08 and AWEUTIL v1.36 before running the utility)? The GUS memory detection works fine up to the memory limits of the classic GUS (1 MB). I also wanted to check for the AWE32's RAM size, but programming the EMU8000 directly is a mess that I get a headache whenever I try it, and using the Creative SDK increases my code from 3k to 30k. Open Cubic Player detects memory size on GUS/Interwave and EMU8K based cards. Maybe there is something useful in the source.
|
|
|
|
|
Logged
|
486 DX4 | 486SP3 | 64MB FPM | S3 Trio64V+ | AWE32 + DB50XG | Ultrasound | SCC-1 | LAPC-I | LPT-DAC K6-III | P5A | 256MB SDR | Voodoo5 5500 | AWE32 + SCB-55 | Ultrasound PnP A64 4000+ | AV8 3rd Eye | 2048MB DDR | Radeon 9800SE | ALC658D
|
|
|
NewRisingSUn
Senior Member
Offline
Posts: 634
|
 |
« Reply #18 on: September 12, 2007, 07:29:08 PM » |
|
I have found a driver CD for "Sound Blaster AWE32 PnP" which could match the CT3980, but unfortunately it doesn't contain any DOS drivers. The DOS drivers are installed when you install the Windows version. At least that's the way it was with my AWE64 Gold driver CD, into a subdirectory DRV of the main install directory. Although again, why would it detect the chip correctly with Cloudschatze's card, but not yours if it's the same model number? You really should try to install the Windows software to get the DOS drivers, then see if the ASP.SYS (or whatever it's called) loads properly when testwise specified in CONFIG.SYS; if it bails out not finding the ASP either, then we know the card's broken. Otherwise I'd really like to see what it does differently. For some reason this line doesn't show up when I run the latest version of the utility you posted (SNDID.COM, 3252 bytes). Does it depend on Creative drivers (I only execute CTCM v1.08 and AWEUTIL v1.36 before running the utility)? No, it depends on when you have downloaded the utility.  Try again. By the way, if your card is PnP, let's see if my PnP detection routine actually works. It's purely hypothetical at this point  Open Cubic Player detects memory size on GUS/Interwave and EMU8K based cards. It's not that I don't know how to do it, it's that I'm too lazy.  I'll just use the Creative SDK; who cares about size anyway... By the way, thanks to both of you for wasting your time with my nonsense. 
|
|
|
|
« Last Edit: September 12, 2007, 07:41:55 PM by NewRisingSUn »
|
Logged
|
|
|
|
Cloudschatze
Moderator
Senior Member
Offline
Posts: 1,829
|
 |
« Reply #19 on: September 12, 2007, 09:41:03 PM » |
|
With the latest version of your utility: CT1320C 0330h: MPU-401 (supports Intelligent mode) 0388h: 1x YM3812 (OPL2) 0240h: Creative Music System/Game Blaster 0220h: DSP 1.05: CT1321 (SB 1.x), Mixer: none, FM: 1x YM3812 (OPL2) SAA1099 CMS chips installed CT2760 0300h: MPU-401 (UART mode only) 0330h: MPU-401 (supports Intelligent mode) 0388h: YMF262/CT1747 (OPL3) 0240h: Creative Music System/Game Blaster 0220h: DSP 4.12: CT1741 (SB16), Mixer: CT1745 (SB16), FM: YMF262/CT1747 (OPL3) CT1748 CSP present DSP command 0x03 (CSP status) returned 00h 0620h: AWE32 EMU8000 (8192 KiB memory) CT3980 0300h: MPU-401 (UART mode only) 0330h: MPU-401 (supports Intelligent mode) 0388h: YMF262/CT1747 (OPL3) 0240h: Creative Music System/Game Blaster 0220h: DSP 4.13: CT1741 (SB16), Mixer: CT1745 (SB16), FM: YMF262/CT1747 (OPL3) CT1748 CSP present Binaura 3D stereo enhancement supported Plug-and-play card DSP command 0x03 (CSP status) returned 7Fh 0620h: AWE32 EMU8000 (8192 KiB memory) Nice work! I attempted to run the utility against an SB1.5 without the CMS chips, but with a version 2.00 DSP. It hung, never displaying the 0220h line.
|
|
|
|
« Last Edit: September 12, 2007, 09:42:03 PM by Cloudschatze »
|
Logged
|
|
|
|
|