VOGONS


The Soundblaster DSP project

Topic actions

Reply 60 of 1068, by Tiido

User metadata
Rank l33t
Rank
l33t

This sounds exciting ~

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 61 of 1068, by SaxxonPike

User metadata
Rank Member
Rank
Member
Tiido wrote on 2023-08-24, 16:28:

This sounds exciting ~

It already is! I have discovered for example there is a bug in the frequency conversion table in the 4.05 and 4.11 firmware that is fixed in the 4.13 firmware. It appears one of the values was shifted one bit to the left. That might explain this strange graph posted on a Dosbos-x Github issue (I forget the number) where there were dips at regular intervals.

That, and there's a lot of handled Fx commands in the DSP that are totally undocumented.

I'll be honest, before this project, I didn't know anything about 8051, ahaha.. part of my post here is a call for advice or even assistance from anyone who might know more.

Attachments

  • 413.png
    Filename
    413.png
    File size
    20.36 KiB
    Views
    1577 views
    File license
    Public domain
  • 405.png
    Filename
    405.png
    File size
    21.8 KiB
    Views
    1577 views
    File license
    Public domain

Sound device guides:
Sound Blaster
Aztech
OPL3-SA

Reply 62 of 1068, by darry

User metadata
Rank l33t++
Rank
l33t++

I wonder if it might be possible to implement (or fix, since AFAIK, Creative planned it but it never worked for stereo) SB Pro support on an SB16 through DSP hacking .

Reply 63 of 1068, by Tiido

User metadata
Rank l33t
Rank
l33t

SBpro requires catching the stereo bit from mixer and I don't think the DSP can know when this is being done. The rest should be doable though.

SaxxonPike wrote on 2023-08-24, 16:40:

I'll be honest, before this project, I didn't know anything about 8051, ahaha.. part of my post here is a call for advice or even assistance from anyone who might know more.

Haha, I never thought I'll know anything about 8051 either but now I am fluent in it because of needing to deal with it in a TV hacking project I undertook and now I am working on another display device with one such in it 🤣
It actually isn't a terrible design but being 8 bits is still limiting, at least for new code.

I hope the MIDI bugs are not difficult to fix either, that would fix the most major issue of SB16 line of things.

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 65 of 1068, by SaxxonPike

User metadata
Rank Member
Rank
Member
rasz_pl wrote on 2023-08-25, 05:24:

why the weird D52 and not classic ida/ghidra/radare?

Simply, it was the first thing I found that required zero configuration to get a disassembly. Rom goes in, disassembly comes out, no questions asked. Control file is text and source control is happy with it. That's about as simple as you get.

IDA is familiar to me for x86 work. But IDA Free (at least the one I have) doesn't support disassembling 8051 binaries. Maybe Ghidra will be the better candidate here? I haven't tried sharing Ghidra workspaces either; curious to know how easy it is to slap that onto Github and how compatible its format is with source control text diff mechanisms. I like being able to look through commits to review individual changes.

Sound device guides:
Sound Blaster
Aztech
OPL3-SA

Reply 66 of 1068, by appiah4

User metadata
Rank l33t++
Rank
l33t++
Tiido wrote on 2023-08-25, 02:06:

I hope the MIDI bugs are not difficult to fix either, that would fix the most major issue of SB16 line of things.

Finding the fault and fixing it is one thing, but is it actually possible to reprogram the DSP on these cards or replace it with something cost effective?

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 68 of 1068, by appiah4

User metadata
Rank l33t++
Rank
l33t++

Yeah but aren't the DSPs on SB cards proprietary CTXXXX ICs and not off the shelf flash roms? Are they pin compatible with anything available at large?

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 69 of 1068, by Tiido

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2023-08-25, 06:35:

Finding the fault and fixing it is one thing, but is it actually possible to reprogram the DSP on these cards or replace it with something cost effective?

There are modern chips that can be used so it won't be a problem but you got to remove the original part as it has a mask-ROM and cannot be reprogrammed etc.
The only custom part is the ROM in the DSP chips, other than that they are vanilla 8051/52 MCUs.

Last edited by Tiido on 2023-08-25, 07:11. Edited 1 time in total.

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 70 of 1068, by mkarcher

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2023-08-25, 06:52:

Yeah but aren't the DSPs on SB cards proprietary CTXXXX ICs and not off the shelf flash roms? Are they pin compatible with anything available at large?

On older SB16 and AWE32 cards (for example the CT2760, it's U13 there), the 8051 is a pre-programmed off-the-shelf component. You can replace it with an AT89S51 for example, which is flash programmable. I don't think there is any chance to change the 8051 program of newer SB16 cards, as it is indeed embedded in a highly integrated chip on those cards.

Reply 72 of 1068, by appiah4

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2023-08-25, 07:08:
appiah4 wrote on 2023-08-25, 06:52:

Yeah but aren't the DSPs on SB cards proprietary CTXXXX ICs and not off the shelf flash roms? Are they pin compatible with anything available at large?

On older SB16 and AWE32 cards (for example the CT2760, it's U13 there), the 8051 is a pre-programmed off-the-shelf component. You can replace it with an AT89S51 for example, which is flash programmable. I don't think there is any chance to change the 8051 program of newer SB16 cards, as it is indeed embedded in a highly integrated chip on those cards.

I see. The cards I own that have the CT1741 as a discrete part are:

CT1740 (already bug free but a higher bug free version could help with DMA clicking?)
CT2290
CT2920
CT2770
CT3980

So basically all Non-Vibra SB16s and Pre-AWE64 AWE32s.. It doesn't look like a terribly difficult mod to implement but aside from CT2290 and CT3980 I'm not sure it's worthwhile to upgrade the others..

On my Vibra and AWE64 cards the DSP seems to have disappeared, possibly integrated into chips like CT2502, CT2504, CT2505, CT8903, CT8920 etc..

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 73 of 1068, by rasz_pl

User metadata
Rank l33t
Rank
l33t
SaxxonPike wrote on 2023-08-25, 06:17:
rasz_pl wrote on 2023-08-25, 05:24:

why the weird D52 and not classic ida/ghidra/radare?

Simply, it was the first thing I found that required zero configuration to get a disassembly. Rom goes in, disassembly comes out, no questions asked. Control file is text and source control is happy with it. That's about as simple as you get.

IDA is familiar to me for x86 work. But IDA Free (at least the one I have) doesn't support disassembling 8051 binaries. Maybe Ghidra will be the better candidate here? I haven't tried sharing Ghidra workspaces either; curious to know how easy it is to slap that onto Github and how compatible its format is with source control text diff mechanisms. I like being able to look through commits to review individual changes.

I have had bad experience with fire and forget disassemblers, much more prefer ones where I can click around 😀 You didnt upload any listings from D52 so cant really tell quality of the output.

Open Source AT&T Globalyst/NCR/FIC 486-GAC-2 proprietary Cache Module reproduction

Reply 74 of 1068, by Kahenraz

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2023-08-25, 07:38:

On my Vibra and AWE64 cards the DSP seems to have disappeared, possibly integrated into chips like CT2502, CT2504, CT2505, CT8903, CT8920 etc..

The AWE64 doesn't have the hanging note bug. Is there anything else with this DSP that needs correcting?

Reply 75 of 1068, by appiah4

User metadata
Rank l33t++
Rank
l33t++
Kahenraz wrote on 2023-08-25, 08:10:
appiah4 wrote on 2023-08-25, 07:38:

On my Vibra and AWE64 cards the DSP seems to have disappeared, possibly integrated into chips like CT2502, CT2504, CT2505, CT8903, CT8920 etc..

The AWE64 doesn't have the hanging note bug. Is there anything else with this DSP that needs correcting?

Oh no, not that I know of. I just wanted to point out that it was no longer a discrete IC of its own on those.

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 76 of 1068, by TheMobRules

User metadata
Rank Oldbie
Rank
Oldbie

Is the "slowdown when playing 16-bit SFX + MIDI" bug (such as in Duke3D or some LucasArts games) also a bug in the DSP code? I wonder if that too can be corrected, because unlike the hanging note every SB16 has this problem.

Reply 77 of 1068, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2023-08-25, 06:52:

Yeah but aren't the DSPs on SB cards proprietary CTXXXX ICs and not off the shelf flash roms? Are they pin compatible with anything available at large?

AT89C52 is a drop in replacement, I've DSP swapped several cards

Reply 78 of 1068, by auron

User metadata
Rank Oldbie
Rank
Oldbie
TheMobRules wrote on 2023-08-25, 08:17:

Is the "slowdown when playing 16-bit SFX + MIDI" bug (such as in Duke3D or some LucasArts games) also a bug in the DSP code? I wonder if that too can be corrected, because unlike the hanging note every SB16 has this problem.

an explanation was offered here: Re: A List of DOS Games with 16-Bit Sound

also, the issue in duke nukem 3d is tied much more to sample rate than bit depth. 16-bit 8 khz mixing should avoid the issue when running MIDI and SFX on the same card.

Reply 79 of 1068, by digistorm

User metadata
Rank Member
Rank
Member
Tiido wrote on 2023-08-25, 02:06:

SBpro requires catching the stereo bit from mixer and I don't think the DSP can know when this is being done. The rest should be doable though.

I don't know if it can be fixed at DSP side, but this TSR seems to work with my SB16's. I don't know the inner workings but it does some on the fly reprogramming of the DSP when it detects SB Pro initialisation commands.