VOGONS


Newly made PCMCIA sound card

Topic actions

Reply 140 of 238, by yyzkevin

User metadata
Rank Member
Rank
Member

yes, somehow I have stumbled around in the dark long enough to arrive at something that almost works correctly. Your pointers and information along the way have been helpful would not have got even this working otherwise.

Duke3D pushes the system itself a bit hard, and also all of my serial debug commands are not helping so lots of room to optimize.
https://www.youtube.com/watch?v=m4EWK5qNxRQ

I will focus some energy now on getting a v1 PCB of this

I had another random idea, not sure if it makes any sense. If you have a laptop that has a non-dos game compatible card but you can still talk to it, would there be any value in making a very basic PCMCIA card that is able to sit on a selected port i.e 220h, 330h, 338h etc and emulate a device and pass that information back to an emulation TSR that actually plays the digital audio back through whatever sound chip is there? Kind of along the lines of how some chipsets somewhere along the way use to have something like this for trapping those certain i/o requests so that a TSR could use them to emulate an SB? Just shower thought not fully thought out. Main advantage aside from the PCMCIA card being very simple it would allow the full quality stereo audio from the computers existing speakers and use existing headphone jack and all that.

Bondi wrote on 2021-06-01, 07:23:
yyzkevin wrote on 2021-05-31, 08:04:
The changes to how I am hooking interrupts helped solve my issue with protected mode games, which has now exposed the flaw in h […]
Show full quote

The changes to how I am hooking interrupts helped solve my issue with protected mode games, which has now exposed the flaw in how I am filling my FIFO. I know what to do next though.

I will try to think of a name for this and start a new thread soon.

https://www.youtube.com/watch?v=PGi83TjvMF0

edit: small tweak to the autoinit routine

https://www.youtube.com/watch?v=NEoVT21plfc

This is awesome, Kevin. It is working perfectly!

www.yyzkevin.com

Reply 141 of 238, by Bondi

User metadata
Rank Oldbie
Rank
Oldbie

Duke3D pushes the system itself a bit hard, and also all of my serial debug commands are not helping so lots of room to optimize.
https://www.youtube.com/watch?v=m4EWK5qNxRQ

Duke still sounds very well. There is a very light stuttering there, but this is how it works on any not too powerful processor. So seems to be rather CPU load issue than sound/TSR card problem.
BTW IBM card has a switch in mwave.ini file compatibility=X, whre X takes values from 0 to 4. And some games require different values. It's described in one of the readme files. I just thought this could be optimizations for different sample sizes. I think you mentioned in your video, that large and small transfers are handled differently.

I will focus some energy now on getting a v1 PCB of this

Are you goung to include OPL3 and MPU circuitry as well?

I had another random idea, not sure if it makes any sense. If you have a laptop that has a non-dos game compatible card but you can still talk to it, would there be any value in making a very basic PCMCIA card that is able to sit on a selected port i.e 220h, 330h, 338h etc and emulate a device and pass that information back to an emulation TSR that actually plays the digital audio back through whatever sound chip is there? Kind of along the lines of how some chipsets somewhere along the way use to have something like this for trapping those certain i/o requests so that a TSR could use them to emulate an SB? Just shower thought not fully thought out. Main advantage aside from the PCMCIA card being very simple it would allow the full quality stereo audio from the computers existing speakers and use existing headphone jack and all that.

This is a big topic. Overall would be cool to have such device. NonDOS compatible sound cards were mostly installed on Pentium 3-4 and later laptops. So these already had 32-bit Cardbus interface, that supported DMA and was based on PCI bus AFAIK. So not sure what technical implications this has, and what is the best way to realize SB compatibility. Maybe a pure software solution? Or Just a DOS compatible Cardbus sound card?

yyzkevin wrote on 2021-06-01, 08:12:

yes, somehow I have stumbled around in the dark long enough to arrive at something that almost works correctly. Your pointers and information along the way have been helpful would not have got even this working otherwise.

Well, my input was very modest, but thanks anyway.

PCMCIA Sound Cards chart
archive.org: PCMCIA software, manuals, drivers

Reply 142 of 238, by digger

User metadata
Rank Oldbie
Rank
Oldbie

This is mighty impressive! Sorry about asking a question that you've probably answered more than once already, but how exactly is the DMA emulation performed?

Don't you somehow have to intercept access to the really low I/O ports of the Intel 8237 DMA controller? So I/O port 02h, 03h and 83h in the case of DMA channel 1?

How did you pull that off in protected mode? In curious about this, since this could be used for more than just PCMCIA sound cards. Thanks.

Reply 143 of 238, by yyzkevin

User metadata
Rank Member
Rank
Member

re: pcb1 - Yes I am working on the DSP, OPL & MPU-401 + DREAM.FR midi chip, and Gameport. What I have yet to determine is how to mix the audio outputs together and if I should be trying to implement a software controllable mixer or not (i mean mixer hardware that can be controlled from software)

re: compatibility modes on ibm - that parameter may in fact be controlling the logic for when and how much to move into the fifo. I will have to investigate more and see what I can learn

re: DMA emulation / protected mode - I am not doing anything fancy at all I will try to write it down into a short format that makes sense, and does not blow up this thread with a wall of text. The entire project is possible as I do not need to intercept any i/o requests which seems to be the issue/impossibility with games that use dos extenders and enter protected mode, at least so I understand from the issues/limitations with SoftMPU.

www.yyzkevin.com

Reply 144 of 238, by digger

User metadata
Rank Oldbie
Rank
Oldbie
yyzkevin wrote on 2021-06-03, 05:12:

re: DMA emulation / protected mode - I am not doing anything fancy at all I will try to write it down into a short format that makes sense, and does not blow up this thread with a wall of text.

Thanks. I appreciate it. Perhaps post it in a separate topic/thread, if you don't want it to overwhelm this one?

Reply 145 of 238, by Dragon Caesar

User metadata
Rank Newbie
Rank
Newbie
yyzkevin wrote on 2021-06-01, 08:12:

I had another random idea, not sure if it makes any sense. If you have a laptop that has a non-dos game compatible card but you can still talk to it, would there be any value in making a very basic PCMCIA card that is able to sit on a selected port i.e 220h, 330h, 338h etc and emulate a device and pass that information back to an emulation TSR that actually plays the digital audio back through whatever sound chip is there? Kind of along the lines of how some chipsets somewhere along the way use to have something like this for trapping those certain i/o requests so that a TSR could use them to emulate an SB? Just shower thought not fully thought out. Main advantage aside from the PCMCIA card being very simple it would allow the full quality stereo audio from the computers existing speakers and use existing headphone jack and all that.

Would such a card allow something like the Digispeech Plus greater compatibility?

Reply 147 of 238, by yyzkevin

User metadata
Rank Member
Rank
Member

trying to do it! I am just waiting on one of the IBM 3D Sound cards that has been mailed to me, so I can do some comparison compatibility testing

Warlord wrote on 2021-06-04, 00:38:

You're the man kevin. This looks great.

www.yyzkevin.com

Reply 148 of 238, by Bondi

User metadata
Rank Oldbie
Rank
Oldbie
Dragon Caesar wrote on 2021-06-04, 00:32:
yyzkevin wrote on 2021-06-01, 08:12:

I had another random idea, not sure if it makes any sense. If you have a laptop that has a non-dos game compatible card but you can still talk to it, would there be any value in making a very basic PCMCIA card that is able to sit on a selected port i.e 220h, 330h, 338h etc and emulate a device and pass that information back to an emulation TSR that actually plays the digital audio back through whatever sound chip is there? Kind of along the lines of how some chipsets somewhere along the way use to have something like this for trapping those certain i/o requests so that a TSR could use them to emulate an SB? Just shower thought not fully thought out. Main advantage aside from the PCMCIA card being very simple it would allow the full quality stereo audio from the computers existing speakers and use existing headphone jack and all that.

Would such a card allow something like the Digispeech Plus greater compatibility?

Yes, sure. It’s going to support digital sound in protected mode games. Which Digispeech is not capable of.

PCMCIA Sound Cards chart
archive.org: PCMCIA software, manuals, drivers

Reply 149 of 238, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie
yyzkevin wrote on 2021-06-01, 08:12:

I had another random idea, not sure if it makes any sense. If you have a laptop that has a non-dos game compatible card but you can still talk to it, would there be any value in making a very basic PCMCIA card that is able to sit on a selected port i.e 220h, 330h, 338h etc and emulate a device and pass that information back to an emulation TSR that actually plays the digital audio back through whatever sound chip is there? Kind of along the lines of how some chipsets somewhere along the way use to have something like this for trapping those certain i/o requests so that a TSR could use them to emulate an SB? Just shower thought not fully thought out. Main advantage aside from the PCMCIA card being very simple it would allow the full quality stereo audio from the computers existing speakers and use existing headphone jack and all that.

This would be cool, especially if it could do this with WSS Compatible chipsets (AD4818, CS4231) so people can stop having to fight with WSSXLAT.EXE and EMM386.EXE to try and get the digital side working. Plus since it has an OPL that would add the ability to have music on these laptops. A lot of circa 1994 486 laptops like my Versa M/75, Zenith Z-Note, Samsung Sens, various Toshiba/Compaq models have this sort of setup.

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 150 of 238, by yyzkevin

User metadata
Rank Member
Rank
Member

I plan to ask Digger more questions about this, how to play audio to these other chipsets as I saw some other work he is doing on dos playback to newer chip.

My thought though is, say I could make a pcmcia card that is very basic almost no components, i.e. we are talking i dont know $20 dollar range even realistic to build yourself a home, and it would work in conjunction with a TSR to allow digital audio playback through an emulated soundblaster (including protected mode games of course) to the existing chipset (maybe even coordinating an actual dma transfer too) , the value is that it is cheap and easy to have assembled and will play audio through existing speakers/headphone jack etc etc.... now this is only digital audio though. If I were to also put an OPL chip on there, we now have a different audio source and maybe at that point it just makes sense to use the all out soundblaster emulator, midi, opl etc.

creepingnet wrote on 2021-06-17, 15:43:
yyzkevin wrote on 2021-06-01, 08:12:

I had another random idea, not sure if it makes any sense. If you have a laptop that has a non-dos game compatible card but you can still talk to it, would there be any value in making a very basic PCMCIA card that is able to sit on a selected port i.e 220h, 330h, 338h etc and emulate a device and pass that information back to an emulation TSR that actually plays the digital audio back through whatever sound chip is there? Kind of along the lines of how some chipsets somewhere along the way use to have something like this for trapping those certain i/o requests so that a TSR could use them to emulate an SB? Just shower thought not fully thought out. Main advantage aside from the PCMCIA card being very simple it would allow the full quality stereo audio from the computers existing speakers and use existing headphone jack and all that.

This would be cool, especially if it could do this with WSS Compatible chipsets (AD4818, CS4231) so people can stop having to fight with WSSXLAT.EXE and EMM386.EXE to try and get the digital side working. Plus since it has an OPL that would add the ability to have music on these laptops. A lot of circa 1994 486 laptops like my Versa M/75, Zenith Z-Note, Samsung Sens, various Toshiba/Compaq models have this sort of setup.

www.yyzkevin.com

Reply 151 of 238, by digger

User metadata
Rank Oldbie
Rank
Oldbie

@yyzkevin I'd be happy to help, but considering your impressive work so far, I'm honestly not sure what extra expertise I could offer.

At this point, it seems like I have more questions for you than you could have for me. 😅

Reply 152 of 238, by yyzkevin

User metadata
Rank Member
Rank
Member

I am still poking away at this when I can find time. I have played with the IBM 3D Sound a bit, I much prefer the sound out of an actual yamaha chip and the dreamfr midi chip, even the vlsi i prefer over the ibm 3d sound.

some additional learning curve for me, as I ended up moving from the simple gal's to one bigger cpld, for no other reason that I already have some I am using the same one on the snark barker mca.

it will all fit, but it is certainly tricky. I have some flexibility on pin assignments so I am hoping to do this with a two-layer board, mainly because of prototyping cost and leadtime, this one is going to take a few revisions no doubt.

Attachments

www.yyzkevin.com

Reply 154 of 238, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie

I love how this is coming together thus far.

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 156 of 238, by shalebridge

User metadata
Rank Newbie
Rank
Newbie

Hey @yyzkevin,

I was researching doing this same exact thing not too long ago! I would love to help in any way I can... I'm good with C, relatively good with x86 assembly, and very good with hardware/circuit design and implementation. My main job the past 10 years has been repairing and modifying old keyboards and synthesizers, so hardware and firmware reverse engineering was sometimes a must, along with dealing with digital and analog audio circuits. Let me know if you wanna chat.

Reply 157 of 238, by yyzkevin

User metadata
Rank Member
Rank
Member
shalebridge wrote on 2021-08-17, 17:27:

Hey @yyzkevin,

I was researching doing this same exact thing not too long ago! I would love to help in any way I can... I'm good with C, relatively good with x86 assembly, and very good with hardware/circuit design and implementation. My main job the past 10 years has been repairing and modifying old keyboards and synthesizers, so hardware and firmware reverse engineering was sometimes a must, along with dealing with digital and analog audio circuits. Let me know if you wanna chat.

I would love some help. The recently lack of progress was not a technical issue but a time issue as I had some personal stuff but I am hoping to get back to this soon. I've had some decent proofs of concept working so this is totally possible just needs some effort to clean it up and finish it off.

Where I left off was moving to a bigger CPLD from the smaller GALs I was using as I wanted some additional hardware registers for dealing with some of the configurable options.

I use Altium CircuitStudio as it is just what I know.

Analog circuits I had no idea what I was going to do yet as there are a few sound sources and I was not sure how we would mix them together, I know there are ways I was just breaking the individual lines out to a powered speaker for my testing.

www.yyzkevin.com

Reply 158 of 238, by shalebridge

User metadata
Rank Newbie
Rank
Newbie

I like the CPLD idea. My original plan was to use a SAMD51 120MHz microprocessor, but there are none available for the next few months at least due to the chip shortage. I preordered some back in May and time estimates range from November of this year to August of next year, so who knows.

I'm used to Eagle, but since Autodesk merged it with Fusion 360 it's so bloated and cluttered. CircuitStudio has been appealing to me for a while so maybe I'll start to get acquainted.

Currently reading through this entire thread to get a good idea of whats been going on. Analog mixing will be easy though.

Reply 159 of 238, by jaZz_KCS

User metadata
Rank Oldbie
Rank
Oldbie

Lovely to see this project is still undergo!
I have some old 486 laptops that duly lack any sound possibilities except PC-Speaker, but they have PCMCIA ports and would benefit greatly from these devices!
Keep up the good work!