VOGONS


The Soundblaster DSP project

Topic actions

Reply 840 of 1053, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2023-10-10, 19:17:

but synchronising the DSP, which runs at 24MHz with the Sigma/Delta DAC, which runs at 46.615 MHz from a different crystal.

what about on top of any DSP modification, we modded the card to use different DAC, better yet Digital SPDIF output, like for example Yamaha WaveBlaster mod:

Re: DB60XG / XR385 repair and modification

is there any code in the DSP that checks the DAC type and/or do any DAC initialization?

Reply 841 of 1053, by Maelgrum

User metadata
Rank Member
Rank
Member
mattw wrote on 2023-10-10, 20:14:
what about on top of any DSP modification, we modded the card to use different DAC, better yet Digital SPDIF output, like for ex […]
Show full quote
mkarcher wrote on 2023-10-10, 19:17:

but synchronising the DSP, which runs at 24MHz with the Sigma/Delta DAC, which runs at 46.615 MHz from a different crystal.

what about on top of any DSP modification, we modded the card to use different DAC, better yet Digital SPDIF output, like for example Yamaha WaveBlaster mod:

Re: DB60XG / XR385 repair and modification

is there any code in the DSP that checks the DAC type and/or do any DAC initialization?

DSP is 'DAC-agnostic', it interacts only with Bus control chip. DSP can only write to Direct DAC output x-register, or program Bus Control to play buffer via DMA.
It's up to Bus Control, how to interact with DAC, form a bitstream, clock, timing signals.

Last edited by Maelgrum on 2023-10-10, 20:53. Edited 1 time in total.

Reply 842 of 1053, by Maelgrum

User metadata
Rank Member
Rank
Member
mattw wrote on 2023-10-10, 20:14:
mkarcher wrote on 2023-10-10, 19:17:

but synchronising the DSP, which runs at 24MHz with the Sigma/Delta DAC, which runs at 46.615 MHz from a different crystal.

Is there any code in the DSP that checks the DAC type and/or do any DAC initialization?

Don't see anything like some DAC check or init.

Reply 843 of 1053, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
Maelgrum wrote on 2023-10-10, 20:51:

Don't see anything like some DAC check or init.

I found the following block diagram:

awe32_blocks.jpg
Filename
awe32_blocks.jpg
File size
40.11 KiB
Views
1184 views
File comment
AWE32 Block Diagram
File license
Public domain

So, it looks like the DAC data should be possible to be intercepted on an empty ASP/CSP socket, because they are passing through there - it will be convenient to solder on an empty ASP/CSP socket too.

Reply 844 of 1053, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503):

Re: Sound Blaster 16 Bugs and Deficiencies Summary

So, it's actually almost the same AK4510 DAC used on the Yamaha card:

Re: DB60XG / XR385 repair and modification

I do believe at this point modification becomes absolutely possible...

Reply 845 of 1053, by pentiumspeed

User metadata
Rank l33t
Rank
l33t
mattw wrote on 2023-10-10, 21:45:
Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503): […]
Show full quote

Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503):

Re: Sound Blaster 16 Bugs and Deficiencies Summary

So, it's actually almost the same AK4510 DAC used on the Yamaha card:

Re: DB60XG / XR385 repair and modification

I do believe at this point modification becomes absolutely possible...

These DACs datasheet PDF files is not available. I tried to look up.

Cheers,

Great Northern aka Canada.

Reply 846 of 1053, by Maelgrum

User metadata
Rank Member
Rank
Member
mattw wrote on 2023-10-10, 21:45:
Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503): […]
Show full quote

Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503):

Re: Sound Blaster 16 Bugs and Deficiencies Summary

So, it's actually almost the same AK4510 DAC used on the Yamaha card:

Re: DB60XG / XR385 repair and modification

I do believe at this point modification becomes absolutely possible...

Why you want to capture DAC data?
1. If you want to do Spdif output, it's is complicated, as sample rate is variable.
2. If you want to use high quality DAC, it's also complicated, as you need low jitter clock, low noise on Vcc, good opamps with low distortion, good routing on pcb, e. t. c, e.t.c. Designing good 16-bit audio path is not easy thing.

Capture of raw data is easy, but what to do with it?

Reply 847 of 1053, by Maelgrum

User metadata
Rank Member
Rank
Member
pentiumspeed wrote on 2023-10-10, 22:42:
mattw wrote on 2023-10-10, 21:45:
Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503): […]
Show full quote

Wow, it turned out that Creative DACs (CT1701 and CT1703) are actually remarked Asahi-Kasei DACs (AK4501 and AK4503):

Re: Sound Blaster 16 Bugs and Deficiencies Summary

So, it's actually almost the same AK4510 DAC used on the Yamaha card:

Re: DB60XG / XR385 repair and modification

I do believe at this point modification becomes absolutely possible...

These DACs datasheet PDF files is not available. I tried to look up.

Cheers,

Yes, I am also can't find datasheet. But with oscilloscope, it is not hard to find all important pins - bit clock, bit data, and some form of LR word clock.

Reply 848 of 1053, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
Maelgrum wrote on 2023-10-10, 22:53:

Why you want to capture DAC data?

two reasons - way to analyze the presence of the 'clicking' issue, as well get much higher quality analog output instead of 30 years old one.

Maelgrum wrote on 2023-10-10, 22:53:

1. If you want to do Spdif output, it's is complicated, as sample rate is variable.

I believe by SPDIF you understood - Optical Output, but I mean it more broadly as any digital output that can be connected easily to much higher quality DAC and analogue circuit than what is found on SB16-series of cards. In fact in the past here there were discussion of my such "pure digital" setups, for example:

Re: Pure DOS gaming system with 100% digital audio output

Maelgrum wrote on 2023-10-10, 22:53:

2. If you want to use high quality DAC, it's also complicated, as you need low jitter clock, low noise on Vcc, good opamps with low distortion, good routing on pcb, e. t. c, e.t.c. Designing good 16-bit audio path is not easy thing.

almost anything current is better than 30 years old DAC and analogue circuit on SB16-series of cards. for example you can google something like "Optical Fiber Coaxial DAC Digital Audio Decoder Board Converter"([EDIT] it seems those more often are called "Toslink DAC" - at least such search returns much more options and those are even in case, not bare PCB, i.e. consumer products - of course the price also doubles and it's more like 10-15 bucks) - those are such ready boards from China, of course, for 5 bucks - I am sure even that will beat the 30 old analogue circuits and DAC on SB16/AWE32.

Maelgrum wrote on 2023-10-10, 22:53:

Capture of raw data is easy, but what to do with it?

the raw data are I2S (that is the format of the input to those AK DACs), any logic analyzer can do I2S to PCM, that way we can capture the same sound as PCM (aka WAV file) in the digital domain - it will always be the same (when there are no error, i.e. bit-perfect to what the application outputted, e.g. the game) as no volume/mixing, etc is applied and capture it when there is no click and where is click and see the error, instead rely on "subjective" hearing by human ears of the analog stream and not clear judgement if there is improvement or not for example when some DSP changes are made.

[EDIT] I will definitely try such mod - already ordered some parts, but as the usual case, probably it will be over 1 month until I can report my results, because most of that time will be actually spend in waiting the necessary parts to arrive.

Reply 849 of 1053, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
Maelgrum wrote on 2023-10-10, 22:58:

Yes, I am also can't find datasheet. But with oscilloscope, it is not hard to find all important pins - bit clock, bit data, and some form of LR word clock.

AKAI equipment uses AK4501 and the full Service Manual is available here:

https://archive.org/details/manual_TC890_SM_AKAI_EN

so, all the pins are actually known.

[EDIT] and here is the AK4501 schematic taken from the above aforementioned Service Manual:

ak4501_schematic.jpg
Filename
ak4501_schematic.jpg
File size
119.28 KiB
Views
1075 views
File comment
AK4501 Schematic
File license
Public domain

[EDIT2] found even more equipment with Service manuals available that uses AK4501: "Sony MZ-E30" and "Yaesu FT-1000 MP". so, yeah, AK4501 pinout is well available.

[EDIT3] it seems on all those old Akasi-Kaisei DACs the I2S input interface is pins 11, 12, 13 and SDTI signal is either pin 17 ( AK4501 and AK4510) or pin18 (AK4503) - in other words AK4501 is basically the same as AK4510 on the Yamaha WaveBlaster board:

Re: DB60XG / XR385 repair and modification

and more or less the modification should be similar if not exactly the same.

Last edited by mattw on 2023-10-11, 00:38. Edited 6 times in total.

Reply 850 of 1053, by rasz_pl

User metadata
Rank l33t
Rank
l33t

$5 pico is perfect cheap platform for experimentation with I2S https://github.com/malacalypse/rp2040_i2s_example https://arduino-pico.readthedocs.io/en/latest/i2s.html https://github.com/earlephilhower/arduino-pic … ut/I2SInput.ino https://github.com/miketeachman/micropython-i … aster/README.md

another option are $5 CY7C68013A Ez-Usb FX2LP boards + pulseview https://www.sigrok.org/blog/even-more-pulsevi … ght-have-missed

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

Reply 852 of 1053, by Maelgrum

User metadata
Rank Member
Rank
Member
mattw wrote on 2023-10-11, 00:12:
AKAI equipment uses AK4501 and the full Service Manual is available here: […]
Show full quote

AKAI equipment uses AK4501 and the full Service Manual is available here:

https://archive.org/details/manual_TC890_SM_AKAI_EN

so, all the pins are actually known.

[EDIT] and here is the AK4501 schematic taken from the above

Wow, thanks @mattw, this is great find!

Reply 853 of 1053, by Maelgrum

User metadata
Rank Member
Rank
Member
mattw wrote on 2023-10-11, 00:12:

[EDIT3] it seems on all those old Akasi-Kaisei DACs the I2S input interface is pins 11, 12, 13 and SDTI signal is either pin 17 ( AK4501 and AK4510) or pin18 (AK4503) - in other words AK4501 is basically the same as AK4510 on the Yamaha WaveBlaster board:

and more or less the modification should be similar if not exactly the same.

You miss one little detail - sample rate on SB is variable, while on Wave blaster it is constant.
So in SB case, sample rate converter needed.
[Edit] Even if SB16 outputs samples with constant rate, it will be something like 45522.65625*x Hz, so sample rate converter is also needed.

Reply 854 of 1053, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
mattw wrote on 2023-10-10, 23:39:

two reasons - way to analyze the presence of the 'clicking' issue, as well get much higher quality analog output instead of 30 years old one.

The DOS Days article on SB16 has a section regarding some kind of "noise" issues, which suggested the cause being the different DACs being used.

Though I'm not entirely sure if the "clicking" issue here might be one of the phenomena. It said that CT1701 is considered noisy while CT1703-A is considered best.

There were four DAC models mentioned, and I wonder if the actual model of all of those four have been determined:

CT1701
CT1703-T
CT1703-TBS
CT1703-A

Reply 855 of 1053, by Tiido

User metadata
Rank l33t
Rank
l33t

The problem with SB16 DAC output is that the MCLK signal is dirtily divided from the 46MHz clock, which means that the BCLK is not symmetric anymore and full of jitter, which in turn makes the oversampling filters in the DAC not perform very well and it is the reason for relatively dirty output of SB16. Lowes sample rates perform better as the jitter gets progressively smaller compared to individual BCLK periods. This will also affect various SPDIF transmitter chips which do expect constant and symmetric MCLK signal aswell but the problem will then lie on receiving end and how well its PLL is able to tolerate the jittery input.

But you can definitely connect up some sample rate conversion chip to the I2S signals, the output is in standard RJ16 format, and get a stable 44100 or whatever else sample rate you desire, to output to a modern DAC or some SPDIF transmitter and get a relatively ok signal that at least will make sure that DAC will perform at its optimum (although if the SRC does is another question).

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 856 of 1053, by rasz_pl

User metadata
Rank l33t
Rank
l33t

Jitter wont be a problem if you are doing sample rate conversion in the middle.

But why would you bother with modding SB16 instead of making whole sound blaster compatible card from scratch based on for example PicoGUS.

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

Reply 857 of 1053, by Tiido

User metadata
Rank l33t
Rank
l33t

It will surely happen, and these kind of things will have to fill the void meanwhile 🤣

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 858 of 1053, by georgel

User metadata
Rank Member
Rank
Member

For testing of theory that latency of DSP is related to single cycle DMA clicking why don't you overclock the DSP to some extent by replacing its crystal (the newer MCUs will even not be overclocked in relation to their maximum clock frequencies) or providing an external clock (from oscillator)? This maybe would change the playing sample rate but clicking would be noticed even then.

Reply 859 of 1053, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
georgel wrote on 2023-10-11, 05:52:

For testing of theory that latency of DSP is related to single cycle DMA clicking why don't you overclock the DSP to some extent by replacing its crystal (the newer MCUs will even not be overclocked in relation to their maximum clock frequencies) or providing an external clock (from oscillator)? This maybe would change the playing sample rate but clicking would be noticed even then.

If you overclock the MCU you need to adjust timer init values accordingly. Be it using faster crystal, or operating at faster modes (such as 6T).

Otherwise UART-related features namely MIDI will end up in a wrong baudrate and not function.

The 1 or 2 NOPs in some routines may or may not be an issue with DSP operating faster than standard. Need testing.

PS: Some very modern 8051 MCUs include configurable internal oscillator and even PLL. Just be noted that internal oscillator is not as stable as external crystal.

Last edited by LSS10999 on 2023-10-11, 06:49. Edited 1 time in total.