VOGONS


The Soundblaster DSP project

Topic actions

Reply 80 of 1068, by Tiido

User metadata
Rank l33t
Rank
l33t

That TSR relies on CPU being in protected mode so that hardware writes etc. can be trapped and dealth with even before they reach the hardware. This allows to do things that otherwise are impossible although it comes with its own problems which may or may not be an issue (i.e there are games that are not fond of EMM386 and the like that provide this sort of functionality).

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 81 of 1068, by darry

User metadata
Rank l33t++
Rank
l33t++

Being able to run SB Pro software in stero on sn SB16, even if it only works with software that tolerates EMM386 would still be quute useful, IMHO.

I recall reading that Creative initially planned full SB Pro 2.0 compatibility for the SB16, but changed their minds about it . Can anyone share some i sight about why this might have been the case ?

@Tiido As for the SB Pro mixer stereo bit not being settable/readable (as there is no SB Pro mixer on an SB16), I presume (correct me if I am wrong) that the problem is due to the SB Pro mixer on a real SB Pro being exposed directly to the ISA bus, so the DSP has no way of knowing what gets written to it without talking to the mixer itself, and since that SB Pro mixer does not exist on an SB16, that is not possible.

However, if one could manually "tell" the DSP (by sending a custom implemented DSP command that would need to be hacked into the DSP code) that it is to expect data in SB Pro stereo format to be received, it might work for games that do not constantly toggle SB Pro mono/stereo . Does that make sense ?

Reply 82 of 1068, by Tiido

User metadata
Rank l33t
Rank
l33t

Mixer is basically another ISA device (like OPL2/3) and gets read/writes directly to it, and DSP will not be able to see that traffic. Curiously the mixer chip on SB16+ has an unused 8bit connection and some other signals that perhaps are meant for connection to the DSP and exactly for this kind of thing but it was never utilized so we may never know what they're really for 🤣.

It could possibly work, essentially preinit the card into right state before starting a receptive game.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 83 of 1068, by darry

User metadata
Rank l33t++
Rank
l33t++
Tiido wrote on 2023-08-28, 01:36:

Mixer is basically another ISA device (like OPL2/3) and gets read/writes directly to it, and DSP will not be able to see that traffic. Curiously the mixer chip on SB16+ has an unused 8bit connection and some other signals that perhaps are meant for connection to the DSP and exactly for this kind of thing but it was never utilized so we may never know what they're really for 🤣.

It could possibly work, essentially preinit the card into right state before starting a receptive game.

Thank you for that information/clarification

In that case, I hope that someone having the type of skills necessary to try to implement this actually does try.

Reply 84 of 1068, by SaxxonPike

User metadata
Rank Member
Rank
Member
darry wrote on 2023-08-27, 20:09:

I recall reading that Creative initially planned full SB Pro 2.0 compatibility for the SB16, but changed their minds about it . Can anyone share some i sight about why this might have been the case ?

Having looked at this for a few days already, I'm not really seeing a reason why the SB16 couldn't just have better SBPro compatibility. There's space in the ROM for it, no doubt. But I also think the interrupt+timer structure internally in the SB16 code is different enough to previous offerings (at least, DSP v2.02, I haven't compared to 3.xx yet) that it wouldn't be a straightforward copy-paste job. I don't know enough about the mixer to say much about how portable that is.

Sound device guides:
Sound Blaster
Aztech
OPL3-SA

Reply 85 of 1068, by mkarcher

User metadata
Rank l33t
Rank
l33t
SaxxonPike wrote on 2023-08-28, 17:58:

Having looked at this for a few days already, I'm not really seeing a reason why the SB16 couldn't just have better SBPro compatibility.

The SB16 DSP is fully compatible to the SBPro DSP. The SB16 card is not compatible to the SBPro card. Neither the SB16 nor the SBPro DSP know if SBPro stereo playback mode is set. This is handled solely in the mixer, which is a separate chip which is programmed independently programmed by the CPU without the DSP noticing it. The SBPro DSP just sends around 44100 8-bit samples per second to the DAC/mixer, and the mixer either sends every sample to both channels (44kHz mono), or sends every other sample left or right (22kHz stereo). To support SBPro compatible stereo playback, you need design changes in the mixer or the bus interface logic chip, so that either the DSP can read back whether SBPro stereo mode is enabled, or the bus interface chip might re-route sample data accordingly.

Actually, there might be a quite elegant solution to the SB16 stereo conondrum: If the optional ASP is installed, it is exactly in the right position of the signal processing chain to demultiplex full-rate mono samples into half-rate stereo samples. So instead of reprogramming the DSP to do such a thing, you could load an ASP program and enable/disable it, depending on the game type.

Reply 87 of 1068, by Gmlb256

User metadata
Rank l33t
Rank
l33t
Cloudschatze wrote on 2023-08-28, 19:07:

Which games support stereo PCM playback with an SBPro but not with an SB16?

AFAIK, two obscure games called Galactix and Switch. The latter has buggy SBPro support and GUS is the best option for it anyway.

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce2 GTS 32 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 88 of 1068, by SaxxonPike

User metadata
Rank Member
Rank
Member
mkarcher wrote on 2023-08-28, 18:25:

Actually, there might be a quite elegant solution to the SB16 stereo conondrum: If the optional ASP is installed, it is exactly in the right position of the signal processing chain to demultiplex full-rate mono samples into half-rate stereo samples. So instead of reprogramming the DSP to do such a thing, you could load an ASP program and enable/disable it, depending on the game type.

I like this idea. ASP is not exactly a common chip to find on a Sound Blaster now (I am still sourcing one myself) but it would be an excellent non-intrusive way to address the issue. Not like any games are using it. 😀

As for efforts to RE further:

DSP 3.02 is so similar to the already-disassembled 2.02. While there are differences strictly in the binary, the functions themselves are more or less unchanged. I think for this specific listing, I will adopt the same function and register naming. There are still a few small differences which I will document. (For example, in 3.02, ADC is done externally to the DSP and comes in as 8-bit w/ latch as opposed to the earlier compare blocks)

DSP 4.05 has more substantial differences. I will try to keep naming similar, but there will need to be a lot of new names for things, particularly around 16-bit functionality and the Bx/Cx codes.

I want to have my first listing posted in the next few days. I have found Ghidra to be the most useful tool, so the exported listing will use whatever dialect Ghidra uses.

Sound device guides:
Sound Blaster
Aztech
OPL3-SA

Reply 89 of 1068, by darry

User metadata
Rank l33t++
Rank
l33t++
Cloudschatze wrote on 2023-08-28, 19:07:

Which games support stereo PCM playback with an SBPro but not with an SB16?

It is not so much the games (IMHO), but demos (from the demo scene), that would be of interest. Admittedly, many of those have GUS support as well, but not everyone has a GUS.

Reply 90 of 1068, by darry

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2023-08-28, 18:25:
SaxxonPike wrote on 2023-08-28, 17:58:

Having looked at this for a few days already, I'm not really seeing a reason why the SB16 couldn't just have better SBPro compatibility.

The SB16 DSP is fully compatible to the SBPro DSP. The SB16 card is not compatible to the SBPro card. Neither the SB16 nor the SBPro DSP know if SBPro stereo playback mode is set. This is handled solely in the mixer, which is a separate chip which is programmed independently programmed by the CPU without the DSP noticing it. The SBPro DSP just sends around 44100 8-bit samples per second to the DAC/mixer, and the mixer either sends every sample to both channels (44kHz mono), or sends every other sample left or right (22kHz stereo). To support SBPro compatible stereo playback, you need design changes in the mixer or the bus interface logic chip, so that either the DSP can read back whether SBPro stereo mode is enabled, or the bus interface chip might re-route sample data accordingly.

Actually, there might be a quite elegant solution to the SB16 stereo conondrum: If the optional ASP is installed, it is exactly in the right position of the signal processing chain to demultiplex full-rate mono samples into half-rate stereo samples. So instead of reprogramming the DSP to do such a thing, you could load an ASP program and enable/disable it, depending on the game type.

Pre-emptively switching the card into "SB Pro stereo mode" before running the software, whether through DSP or the ASP, would be really nice. But putting the ASP to use in that way would add to coolness factor greatly. Additionally, I presume one could use the ASP to reproduce SB Pro style low-pass filters.

Reply 91 of 1068, by NJRoadfan

User metadata
Rank Oldbie
Rank
Oldbie
Cloudschatze wrote on 2023-08-28, 19:07:

Which games support stereo PCM playback with an SBPro but not with an SB16?

Zone 66 and anything else that uses the Renaissance CDFM engine (Amnesia demo, etc). Using the ASP for this would actually make the damn chip useful for once!

Reply 92 of 1068, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
Cloudschatze wrote on 2023-08-28, 19:07:

Which games support stereo PCM playback with an SBPro but not with an SB16?

I asked the same question a while ago and got this list in response.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 93 of 1068, by Cloudschatze

User metadata
Rank Oldbie
Rank
Oldbie
NJRoadfan wrote on 2023-08-29, 02:23:
Cloudschatze wrote on 2023-08-28, 19:07:

Which games support stereo PCM playback with an SBPro but not with an SB16?

Zone 66 and anything else that uses the Renaissance CDFM engine (Amnesia demo, etc).

Is a specific version/patch of Zone 66 required for stereo PCM playback? Version 1.0 appears to only present single-cycle, mono PCM playback in DOSBox, regardless of SBPro1, SBPro2, or SB16 configuration.

Joseph_Joestar wrote on 2023-08-29, 02:58:

I asked the same question a while ago and got this list in response.

There are more than a few problems with that list. OTOH, Wing Commander II and Willy Beamish both lack stereo PCM support, and Eye of the Beholder II lacks PCM support entirely.

Sounds like a validated list is needed!

Reply 94 of 1068, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
Cloudschatze wrote on 2023-08-29, 03:39:

There are more than a few problems with that list. OTOH, Wing Commander II and Willy Beamish both lack stereo PCM support, and Eye of the Beholder II lacks PCM support entirely.

Sounds like a validated list is needed!

Agreed. I would suggest that the testing be conducted on a genuine Sound Blaster Pro 2 (CT1600) using official drivers. It would be suboptimal to use one of the SBPro compatible cards (ESS, Yamaha, OPTi...) because of potential "reversed stereo" issues and third-party driver interference. For similar reasons, I think a first generation Sound Blaster 16 (CT1740) using official drivers should be used for the SB16 tests. And all that on a period-correct 386 or 486 system to avoid any speed sensitivity issues.

While I have neither of those things, I would be curious about the testing results.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 95 of 1068, by darry

User metadata
Rank l33t++
Rank
l33t++
Joseph_Joestar wrote on 2023-08-29, 04:57:
Cloudschatze wrote on 2023-08-29, 03:39:

There are more than a few problems with that list. OTOH, Wing Commander II and Willy Beamish both lack stereo PCM support, and Eye of the Beholder II lacks PCM support entirely.

Sounds like a validated list is needed!

Agreed. I would suggest that the testing be conducted on a genuine Sound Blaster Pro 2 (CT1600) using official drivers. It would be suboptimal to use one of the SBPro compatible cards (ESS, Yamaha, OPTi...) because of potential "reversed stereo" issues and third-party driver interference. For similar reasons, I think a first generation Sound Blaster 16 (CT1740) using official drivers should be used for the SB16 tests. And all that on a period-correct 386 or 486 system to avoid any speed sensitivity issues.

While I have neither of those things, I would be curious about the testing results.

That sounds like very sensible methodology to me .

Reply 96 of 1068, by S95Sedan

User metadata
Rank Member
Rank
Member

Heres another firmware dump from a CT1730, v4.04. (needs to be decrypted)

Can also burn roms and have both a socketed CT1740 and CT3900 incase you have stuff to be tested.
AT89S52 is a drop in replacement aswell, which is what im currently running in my card.

Attachments

Reply 97 of 1068, by Maelgrum

User metadata
Rank Member
Rank
Member
S95Sedan wrote on 2023-09-04, 06:35:

Heres another firmware dump from a CT1730, v4.04. (needs to be decrypted)

Thanks !
Here is decrypted v4.04:

Attachments

  • Filename
    ct1741_v404-d.zip
    File size
    3.5 KiB
    Downloads
    75 downloads
    File comment
    firmware dump from CT1741 V4.04, decrypted
    File license
    Public domain

Reply 98 of 1068, by S95Sedan

User metadata
Rank Member
Rank
Member
Maelgrum wrote on 2023-09-06, 18:25:
S95Sedan wrote on 2023-09-04, 06:35:

Heres another firmware dump from a CT1730, v4.04. (needs to be decrypted)

Thanks !
Here is decrypted v4.04:

Works perfectly here on a burned chip.
Also tried to dump a Signetics 4.12 chip i still had but that one seems to be locked.

Reply 99 of 1068, by Maelgrum

User metadata
Rank Member
Rank
Member
S95Sedan wrote on 2023-09-06, 23:20:

Works perfectly here on a burned chip.
Also tried to dump a Signetics 4.12 chip i still had but that one seems to be locked.

You can try burn 4.05, 4.11 and 4.13 firmware, from my earlier post.
4.05 should work, for 4.11 and 4.13 i am not sure ))