Pages: [1] 2   Go Down
  Print  
Author Topic: Creative's Advanced Signal Processor  (Read 12037 times)
0 Members and 1 Guest are viewing this topic.
Cloudschatze
Moderator
Senior Member
*
Offline Offline

Posts: 1,829



View Profile
« 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!  Roll Eyes
Logged
NewRisingSUn
Senior Member
*
Offline Offline

Posts: 634


View Profile
« 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 Offline

Posts: 1,829



View Profile
« 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?) Smiley

Quote
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 Offline

Posts: 634


View Profile
« Reply #3 on: September 08, 2007, 08:11:59 PM »

Quote from: Cloudschatze
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.
Quote from: Cloudschatze
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 Offline

Posts: 65



View Profile
« Reply #4 on: September 08, 2007, 09:05:48 PM »

Nice utility! Tried the updated version on my 486:
Code:
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:
Code:
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 Offline

Posts: 634


View Profile
« Reply #5 on: September 08, 2007, 09:35:54 PM »

Quote from: 5u3
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.
Quote from: 5u3
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.
Quote from: 5u3
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 Offline

Posts: 1,829



View Profile
« Reply #6 on: September 09, 2007, 12:24:29 AM »

Quote from: 5u3
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.  Tongue
Logged
5u3
Senior Member
*
Offline Offline

Posts: 65



View Profile
« 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! Smiley

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: Roll Eyes
- 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)
Code:
220: CT1351 (SB 2.0), FM: 1x YM3812 (OPL2), CMS chips: optional
388: 1x YM3812 (OPL2)

Soundblaster Pro 2.0 (CT1600)
Code:
220: CT1341 (SBPro), FM: YMF262/CT1747 (OPL3)
388: YMF262/CT1747 (OPL3)

Soundblaster 16 MCD (CT1750)
Code:
220: CT1741 (SB16), FM: YMF262/CT1747 (OPL3), CSP chip: present
388: YMF262/CT1747 (OPL3)
330: MPU-401 (UART mode only)

Soundblaster 16 IDE (CT2910)
Code:
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)
Code:
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)
Code:
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)
Code:
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)
Code:
220: CT1741 (SB16), FM: CT89xx (CQM), CSP chip: not present
388: CT89xx (CQM)
330: MPU-401 (UART mode only)

Soundblaster AWE 64 Gold (CT4390)
Code:
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 Offline

Posts: 634


View Profile
« Reply #8 on: September 10, 2007, 03:32:02 AM »

Quote from: 5u3
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.
Quote from: 5u3
This one doesn't have a CSP chip/socket installed, although it has the soldering pads on the PCB.
One false positive...
Quote from: 5u3
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 Offline

Posts: 1,829



View Profile
« 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 Offline

Posts: 634


View Profile
« Reply #10 on: September 11, 2007, 12:38:31 PM »

Quote from: Cloudschatze
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 Offline

Posts: 1,829



View Profile
« 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.

Quote
You said you had a CT3980 as well?

I'll test your utility against it later this afternoon. Smiley
Logged
NewRisingSUn
Senior Member
*
Offline Offline

Posts: 634


View Profile
« Reply #12 on: September 11, 2007, 03:35:45 PM »

Quote from: Cloudschatze
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. Wink

But let's first solve エーエスピーの謎. Smiley
« Last Edit: September 11, 2007, 03:37:15 PM by NewRisingSUn » Logged
Cloudschatze
Moderator
Senior Member
*
Offline Offline

Posts: 1,829



View Profile
« 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. Wink

Would closing the CMSOFF jumper suffice?

Quote
But let's first solve エーエスピーの謎. Smiley

がんばります!
Logged
NewRisingSUn
Senior Member
*
Offline Offline

Posts: 634


View Profile
« Reply #14 on: September 11, 2007, 05:17:26 PM »

Quote from: Cloudschatze
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 Offline

Posts: 1,829



View Profile
« 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 Offline

Posts: 634


View Profile
« Reply #16 on: September 12, 2007, 10:17:23 AM »

Quote from: Cloudschatze
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.

Quote from: Cloudschatze
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.  Angry
« Last Edit: September 12, 2007, 11:09:51 AM by NewRisingSUn » Logged
5u3
Senior Member
*
Offline Offline

Posts: 65



View Profile
« 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 Offline

Posts: 634


View Profile
« Reply #18 on: September 12, 2007, 07:29:08 PM »

Quote from: 5u3
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.
Quote from: 5u3
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. Smiley 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 Smiley

Quote from: 5u3
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. Smiley 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. Smiley
« Last Edit: September 12, 2007, 07:41:55 PM by NewRisingSUn » Logged
Cloudschatze
Moderator
Senior Member
*
Offline Offline

Posts: 1,829



View Profile
« Reply #19 on: September 12, 2007, 09:41:03 PM »

With the latest version of your utility:

CT1320C
Code:
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
Code:
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
Code:
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
Pages: [1] 2   Go Up
  Print  
 
Jump to: