VOGONS


Reply 60 of 92, by polpo

User metadata
Rank Newbie
Rank
Newbie
root42 wrote on 2022-06-24, 07:12:

What is DMA used for on the GUS? Sample upload? Recording and playback of audio?

Yes, it can be used for sample upload, which doesn't really seem much faster than PIO in practice. It's mostly used for streaming audio, which on the GUS is basically setting a looping sample, getting an IRQ when playback of that sample hits a certain point, then DMAing in new sample data before it gets back to the beginning of the sample. It's also used for recording, which I don't plan on implementing.

Reply 61 of 92, by polpo

User metadata
Rank Newbie
Rank
Newbie

I've found a pretty major hardware design flaw in my prototype card: the AEN signal on the ISA bus is grounded. This means the board will not cooperate with anything else in the system that does ISA DMA transfers, for example the floppy controller. Nothing I can't work around with some trace cutting and bodging, but I need to handle AEN properly in a future hardware revision.

Reply 62 of 92, by Tiido

User metadata
Rank l33t
Rank
l33t

AEN being grounded is very unhealthy for the chipset of the system, that signal is not meant to be driven by peripherals (except for ISA bus master cycles when the bus master is allowed to drive almost all the signals).
ISA cards are supposed to respond to IO cycles only when AEN has gone low, when it is high a DMA cycle is in progress instead needs to be ignored by normal address decode process. I treat the signal as basically another address line in my stuff so one can combine it with one of the address lines with a logic gate and get intended functionality for address decode . For DMA cycles there shouldn't really be anything needed as far as AEN goes, the request signal will not come active on their own and the card will know that it has to respond to one when it comes along.

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 63 of 92, by LSS10999

User metadata
Rank Member
Rank
Member
polpo wrote on 2022-06-24, 21:11:
root42 wrote on 2022-06-24, 07:12:

What is DMA used for on the GUS? Sample upload? Recording and playback of audio?

Yes, it can be used for sample upload, which doesn't really seem much faster than PIO in practice. It's mostly used for streaming audio, which on the GUS is basically setting a looping sample, getting an IRQ when playback of that sample hits a certain point, then DMAing in new sample data before it gets back to the beginning of the sample. It's also used for recording, which I don't plan on implementing.

I never owned a GUS before so I'm curious how games and apps mostly play audio with it. Do they usually use DMA for audio playback just like how they do with Sound Blaster, or it's mostly optional?

Reply 64 of 92, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
LSS10999 wrote on 2022-06-25, 13:52:

I never owned a GUS before so I'm curious how games and apps mostly play audio with it. Do they usually use DMA for audio playback just like how they do with Sound Blaster, or it's mostly optional?

The GUS has its own memory, all playback is done from there so it's a two-step process: upload the audio data to the GUS then configure one of its "voices" to play it. By keeping commonly used samples on the GUS you can use hardware mixing rather than using the CPU. Most games cheaped out though, because they already implemented software mixing for Sound Blaster they would just reuse the same code and upload basic premixed stereo data for immediate playback.

Reply 66 of 92, by appiah4

User metadata
Rank l33t++
Rank
l33t++

Same. Tbh I thought I would never own an adlib, sb1.0 or gus.. TubeTime made the former two possible, I am confident Ian will make the last one possible 😎

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

Reply 67 of 92, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie
appiah4 wrote on 2022-07-02, 07:57:

Same. Tbh I thought I would never own an adlib, sb1.0 or gus.. TubeTime made the former two possible, I am confident Ian will make the last one possible 😎

There is no SB1.0 clone, and the PiGUS can do all the 3 😀

Reply 68 of 92, by appiah4

User metadata
Rank l33t++
Rank
l33t++
FreddyV wrote on 2022-07-03, 18:20:
appiah4 wrote on 2022-07-02, 07:57:

Same. Tbh I thought I would never own an adlib, sb1.0 or gus.. TubeTime made the former two possible, I am confident Ian will make the last one possible 😎

There is no SB1.0 clone, and the PiGUS can do all the 3 😀

SnarkBarker is a 1.0 when you add the CMS chips.

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

Reply 69 of 92, by root42

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2022-07-03, 19:45:
FreddyV wrote on 2022-07-03, 18:20:
appiah4 wrote on 2022-07-02, 07:57:

Same. Tbh I thought I would never own an adlib, sb1.0 or gus.. TubeTime made the former two possible, I am confident Ian will make the last one possible 😎

There is no SB1.0 clone, and the PiGUS can do all the 3 😀

SnarkBarker is a 1.0 when you add the CMS chips.

Actually, the SnarkBarker is a SB1.5, IIRC. The differences are extremely minor though. I think the bodge resistor on the ADC is a giveaway.

SB1.5.jpg
Filename
SB1.5.jpg
File size
255.13 KiB
Views
715 views
File license
Fair use/fair dealing exception
SnarkBarker.jpg
Filename
SnarkBarker.jpg
File size
1.44 MiB
Views
715 views
File license
Fair use/fair dealing exception

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 70 of 92, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie
root42 wrote on 2022-07-04, 06:11:

Actually, the SnarkBarker is a SB1.5, IIRC. The differences are extremely minor though. I think the bodge resistor on the ADC is a giveaway.

Not minor at all, as the 1.0 does not support Autoinit DMA 😀
For the code, it change everything.

Reply 71 of 92, by root42

User metadata
Rank l33t
Rank
l33t
FreddyV wrote on 2022-07-04, 06:56:
root42 wrote on 2022-07-04, 06:11:

Actually, the SnarkBarker is a SB1.5, IIRC. The differences are extremely minor though. I think the bodge resistor on the ADC is a giveaway.

Not minor at all, as the 1.0 does not support Autoinit DMA 😀
For the code, it change everything.

True, but that's IIRC only on the MCU firmware. You can probably plug a SB1.5 MCU into an SB1.0 and have the same effect? I don't think there is much different in the PCB layout? But I might be wrong...

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 72 of 92, by appiah4

User metadata
Rank l33t++
Rank
l33t++
root42 wrote on 2022-07-04, 07:03:
FreddyV wrote on 2022-07-04, 06:56:
root42 wrote on 2022-07-04, 06:11:

Actually, the SnarkBarker is a SB1.5, IIRC. The differences are extremely minor though. I think the bodge resistor on the ADC is a giveaway.

Not minor at all, as the 1.0 does not support Autoinit DMA 😀
For the code, it change everything.

True, but that's IIRC only on the MCU firmware. You can probably plug a SB1.5 MCU into an SB1.0 and have the same effect? I don't think there is much different in the PCB layout? But I might be wrong...

This is also my understanding. Correct MCU + CMS make it a 1.0

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

Reply 73 of 92, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Didn't Creative itself offer DSP upgrades at some point? DSP 1.5 for SB 1.0? Or was it a DSP 2.0 for SB1.5?🤔

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 74 of 92, by root42

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2022-07-04, 09:08:

Didn't Creative itself offer DSP upgrades at some point? DSP 1.5 for SB 1.0? Or was it a DSP 2.0 for SB1.5?🤔

To quote this blog:

To make matters more interesting, the DSP on the old Sound Blasters was socketed (see photo above) and Creative offered DSP 2.00 upgrades to Sound Blaster 1.x owners. Therefore even an older Sound Blaster might be equipped with a newer DSP. What this meant was that software requiring auto-init DMA might or might not work on a Sound Blaster 1.x, depending on which DSP was installed.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 77 of 92, by polpo

User metadata
Rank Newbie
Rank
Newbie
FreddyV wrote on 2022-07-17, 14:02:

@polpo is Back and progressing well 😀

Heh, I should give an update!

This project has bifurcated into two projects. Yeah, I'm well aware of the perils of scope creep...

The first is a cheap, accessible card, based on the Raspberry Pi Pico. The Pico is only $4 and available in unlimited quantities, unlike the "big" Raspberry Pis. The RP2040 microprocessor is definitely more limited than the 1+GHz SoCs on the big Pis, but it has a few hardware features such as PIO and interpolators that make sound card emulation potentially feasible. I currently have a Pico emulating Adlib on the ISA bus, still using my original prototype ISA card adapter. Video is here: https://twitter.com/ianpolpo/status/1548495373840240641. I'm currently porting the GUS emulation and playback code to the Pico. Time will tell how much optimization this will require. The RP2040 doesn't have enough onboard RAM to support the full 1MB sample ram of the GUS, so I am using SPI PSRAM, which some back-of-the-napkin math tells me will be fast enough.

@FreddyV has been helping me with ideas for the second: a fully-featured card based on the big Pis that can support almost anything that an 8-bit ISA card is capable of. There will be some tricks to bring full 20-bit addressing, memory support, and multiple IRQs and DMAs. Right now this only exists as some schematics in KiCAD but some of the ideas are already being used on the Pico project, such as multiplexing the address and data lines to conserve GPIO pins.

Reply 78 of 92, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

It seems there is another solution now.

But it use a FPGA, and not Bare Metal Pi. Too complexe solution, but good to have somebody else working on it as well.

https://www.youtube.com/watch?v=1ej76w8sHxY

Edit : He already did videos with FPGA on ISA, I remember them.

Reply 79 of 92, by appiah4

User metadata
Rank l33t++
Rank
l33t++

You never know when these things will go out of stock anymore so I ordered a few pi picos for cheap. I don't even know what to do with them until this project is finalized 🤣

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