VOGONS


Reply 440 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2024-04-14, 09:50:

Turned out I indeed need to reset all DMA registers on my test system after configuring the host LPC bridge. Back then I omitted that part as it was never required for RUBY-9719VG2AR. Guess the boot-up states of the DMA registers are hit-or-miss when it comes to other motherboards.

Yeah on my H61-based board I had to reset the DMA registers :

	// Reset some DMA registers because the BIOS doesn't do this
// Not sure how much of this is actually required but hey
outportb(0x00, 0x00);
outportb(0x01, 0x00);
outportb(0x04, 0x00);
outportb(0x05, 0x00);
outportb(0x06, 0x00);
outportb(0x07, 0x00);
outportb(0x08, 0x00);
outportb(0x21, 0x00);
outportb(0x82, 0x00);
outportb(0x87, 0x00);
outportb(0x89, 0x00);
outportb(0x8a, 0x00);
outportb(0x8b, 0x00);
outportb(0xc0, 0x00);
outportb(0xc1, 0x00);
outportb(0xc2, 0x00);
outportb(0xc3, 0x00);
outportb(0xc4, 0x00);
outportb(0xc5, 0x00);
outportb(0xc6, 0x00);
outportb(0xc7, 0x00);
outportb(0xc8, 0x00);
outportb(0xc9, 0x00);
outportb(0xca, 0x00);
outportb(0xcb, 0x00);
outportb(0xcc, 0x00);
outportb(0xcd, 0x00);
outportb(0xce, 0x00);
outportb(0xcf, 0x00);
outportb(0xd0, 0x00);
outportb(0xd1, 0x00);
outportb(0xde, 0x0e);
outportb(0xdf, 0x0e);

BTW you tried SBDIAG? It has source available so you could maybe put debug printfs in it to get more info about how much DMA is working

Reply 441 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2024-04-14, 10:32:

BTW you tried SBDIAG? It has source available so you could maybe put debug printfs in it to get more info about how much DMA is working

Thanks for pointing out about SBDIAG. Just tried it.

Looks like DMA is indeed working, but IRQ is not. I'm hearing only a short tone when testing DMA, and no interrupts fired when testing IRQ. Neither IRQ5 nor 7 works now.

So right now, resetting DMA registers ensured DMA work as expected but it kind of broke IRQ for some reasons...

Since the BIOS is not offering any option to reserve IRQ for legacy purposes, I don't know what else I should try... The board currently doesn't have any other expansion card besides my video card at the moment.

Reply 442 of 511, by rasz_pl

User metadata
Rank l33t
Rank
l33t
LSS10999 wrote on 2024-04-14, 01:20:

For all those Intel chipsets, LDRQ1# is multiplexed to GPIO23. How to configure that pin's functionality is already documented in their datasheets.
The location of LDRQ1# varies depending on board design. You need to find your board's boardview to locate it.

I mean I went to nukeykt github repo and was surprised to find all this great info but no location for his own board, not even a picture showing ASUS Maximus VII Ranger termination resistor (SR64?)

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

Reply 443 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2024-04-14, 11:07:

So right now, resetting DMA registers ensured DMA work as expected but it kind of broke IRQ for some reasons...

If you run SBDIAG without clearing the DMA registers does IRQ work?

If it does, maybe go through the DMA registers and see if leaving one alone fixes IRQ

Reply 444 of 511, by weedeewee

User metadata
Rank l33t
Rank
l33t

Or...

looking at this and the whole outputb list for the dma
https://bochs.sourceforge.io/techspec/PORTS.LST

0020-003F ---- PIC 1 (Programmable Interrupt Controller 8259)

this one jumps out.

outportb(0x21, 0x00);

Now that seems to enable all the interrupts according to the text, but that's mostly for older systems, So 'enabling' it causes trouble on newer systems ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 445 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2024-04-14, 15:16:

If you run SBDIAG without clearing the DMA registers does IRQ work?

If it does, maybe go through the DMA registers and see if leaving one alone fixes IRQ

I've found the answer. Actually port 21h is being used for IRQ stuffs and should not be touched.

With that port excluded when resetting DMA registers, I can now make the sound card pass through IRQ* as well as DMA tests in DIAGNOSE. There's a problem with DMA, however:
- While I can trivially set DMA1, DMA5 was not reliable. Configuration of DMA5 would fail for the first few times but it will eventually succeed.
- After those initial failures, subsequent runs of DIAGNOSE would not observe errors when configuring DMA5, until system restart.

* Still need to disable onboard audio as it was the original reason why IRQ7 was not working.

After successfully setting everything up in DIAGNOSE, all SFX tests (8-bit, 16-bit) work correctly, as well as FM.

SBDIAG now reports interrupts fired. However, I could not notice any difference when testing DMA as well as digitized sound. The following phenomena are observed:
- DMA test generates a tone for about 1s then stops.
- Digitized sound (TADA.WAV) plays fine, but only once.

DIGPAK is still bugged. SETD still exhibits the same behavior with SB16 driver: Playing once then hangs. Playing digitized audio from MENU either produces silent, or it plays, but for no more than 1s (no program hangs, however).

On the other hand, MIDI (330h, through daughtercards) has always been working without issues so far.

So at long last, despite not 100% perfect, I've finally got it working.

weedeewee wrote on 2024-04-14, 15:34:
Or... […]
Show full quote

Or...

looking at this and the whole outputb list for the dma
https://bochs.sourceforge.io/techspec/PORTS.LST

0020-003F ---- PIC 1 (Programmable Interrupt Controller 8259)

this one jumps out.

outportb(0x21, 0x00);

Now that seems to enable all the interrupts according to the text, but that's mostly for older systems, So 'enabling' it causes trouble on newer systems ?

Many thanks for everyone's help here... did not notice this post as I was writing my own response back then...

For now I just commented out the line involving port 21h and IRQ7 works when onboard audio is disabled. It would be better if I could somehow reserve the IRQ in question away from the PIRQ lines so I can keep onboard audio enabled...

The PIC registers don't appear to be straightforward... guess I need to refer to some actual source code to know how they should be manipulated...

And as for the DMA5 issue... maybe later on I should try configuring SB16 to use only low DMA to see if it makes a difference for the failing test cases, as even with my RUBY-9719VG2AR, sound cards that only utilize low DMA like YMF718 and ALS007 perform better in comparison.

Last edited by LSS10999 on 2024-04-15, 01:53. Edited 1 time in total.

Reply 446 of 511, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

What SBDIAG program you exactly mean?
I found this one from Snarkbark project:
https://github.com/schlae/snark-barker/tree/master/sbdiag
It may help to diagnose me that random IRQ5 issues...

>LSS10999
So you modified the SAPPHISA.EXE to not write 0 to port 21h?
Is it really needed or better to avoid touching this port in general?
Maybe it needs some revision what outports are really needed and maybe add some commandline paramater that define various reset levels so user may choose what would work the best (a minimum needed set)...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 447 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2024-04-14, 16:04:

So at long last, despite not 100% perfect, I've finally got it working.

That's great news. Do any games work?

RayeR wrote on 2024-04-15, 00:49:
What SBDIAG program you exactly mean? I found this one from Snarkbark project: https://github.com/schlae/snark-barker/tree/maste […]
Show full quote

What SBDIAG program you exactly mean?
I found this one from Snarkbark project:
https://github.com/schlae/snark-barker/tree/master/sbdiag
It may help to diagnose me that random IRQ5 issues...

Yeah that's the one. I found it very helpful when testing, can easily hack it to add debugging info

Reply 448 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2024-04-15, 01:03:

That's great news. Do any games work?

I did some tests with a few actual games.

Skyroads: Works okay.
Jazz Jackrabbit: Works okay.
Spear Resurrection (Wolf3D TC): SFX only works occasionally.
Duke Nukem 3D: Works okay, but after a few minutes sound stops and music freezes.

Apparently when testing Duke Nukem 3D, it feels like the wires I used to connect the TPM port to the dISAppointment at the moment were a bit loose. After the music froze halfway, I could not detect the Fintek bridge anymore when I exited the game and ran my test program, even after reboot. Reseating the connection (just slightly pressing the connector a little bit) between the TPM port and the adapter, however, would restore the connection, allowing me to detect the bridge again so I can then re-init the sound card via UNISOUND.

Currently the board and the adapter are installed on a test bench, and I haven't put them into an actual case yet. It would certainly complicate things if the adapter suddenly stops functioning after putting the system into the case. Unfortunately, in the case of X99M Killer/3.1, the small TPM port is on the top-right side of the board near the ATX24 power connector, unlike most other boards that put TPM slot near the bottom, so longer cables are required.

Reply 449 of 511, by rasteri

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2024-04-15, 15:49:

Apparently when testing Duke Nukem 3D, it feels like the wires I used to connect the TPM port to the dISAppointment at the moment were a bit loose. After the music froze halfway, I could not detect the Fintek bridge anymore when I exited the game and ran my test program, even after reboot. Reseating the connection (just slightly pressing the connector a little bit) between the TPM port and the adapter, however, would restore the connection, allowing me to detect the bridge again so I can then re-init the sound card via UNISOUND.

Yeah my original LPC cable stopped working, probably because I'd detached/removed it hundreds of times

Ended up buying some IDC connectors and making a new one. not pretty but it works

Attachments

Reply 450 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
rasteri wrote on 2024-04-15, 17:58:
LSS10999 wrote on 2024-04-15, 15:49:

Apparently when testing Duke Nukem 3D, it feels like the wires I used to connect the TPM port to the dISAppointment at the moment were a bit loose. After the music froze halfway, I could not detect the Fintek bridge anymore when I exited the game and ran my test program, even after reboot. Reseating the connection (just slightly pressing the connector a little bit) between the TPM port and the adapter, however, would restore the connection, allowing me to detect the bridge again so I can then re-init the sound card via UNISOUND.

Yeah my original LPC cable stopped working, probably because I'd detached/removed it hundreds of times

Ended up buying some IDC connectors and making a new one. not pretty but it works

Actually, my cables are fairly new and I don't think I've detached them too often... I'm curious why this is only happening after running games for a prolonged amount of time, though I admit the the test bench I'm using did not firmly hold the sound card in place at the moment so things might have moved a little bit during the test...

Anyway, guess I seriously need some good quality cables with a firm grip for such use cases...

Reply 451 of 511, by myne

User metadata
Rank Member
Rank
Member

Silly question...
Has anyone contacted the chinaboard makers and asked what the price would be for

1) a board with the ldrq wired to the lpc
Or
2) a board integrating the Disappointment

Given they're selling them for under 100, maybe they'll do a limited run for 200ea? Group buy perhaps?
Also, might be worth pointing out that industrial mobos sell for far more because they have isa.

Things I built:
Mechwarrior 2 installer for Windows 10/11 Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11 auto-install iso template (for vmware)

Reply 452 of 511, by truemaster

User metadata
Rank Member
Rank
Member

wow now thats a find. a full sb working on new motherboards that still suport bios emulation (csm) if this can have drivers for win9x would be very nice. trust me i had win98se on my z97m-d3h but with pci soundcard. 3d accelerated games and a3d sound was as good as on my p3 rig. aureal vortex 2 has good dos support even in pure dos but cant beat isa. now imagine to have my awe64 with masterpiece sf2 and dos gaming in 9x dosbox

Reply 453 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
truemaster wrote on 2024-04-16, 06:40:

wow now thats a find. a full sb working on new motherboards that still suport bios emulation (csm) if this can have drivers for win9x would be very nice. trust me i had win98se on my z97m-d3h but with pci soundcard. 3d accelerated games and a3d sound was as good as on my p3 rig. aureal vortex 2 has good dos support even in pure dos but cant beat isa. now imagine to have my awe64 with masterpiece sf2 and dos gaming in 9x dosbox

I'm afraid AWE64 isn't a good idea for Intel chipsets, as it needs more I/O ranges than what Intel's host LPC controller can configure, so you're not going to be able to make full use of it.

2x0 - Sound Blaster 16 DSP
300-330 - MIDI
388 - Adlib FM
6x0, Ax0, Ex0 - EMU8000 (x corresponds to Sound Blaster I/O. For example, if 220 then you need 620, A20 and E20).

These ranges require at least 5 sets of decode registers to fulfill, while Intel host LPC controller has only 4. Also, if EMU8000 ranges are not satisfied, the card will only be initialized as a SB16, and FM cannot function in this state.

Back then I tried using my AWE64 Gold on RUBY-9719VG2AR, and eventually gave up that idea altogether, as I have to give up the entire 300 range (MIDI and FM) in order to get EMU8000 actually initialized, thus only games that can actually use AWE64's sample ROM will be able to play music.

A viable alternative for SF2 MIDI would be WavetablePi. I recently assembled one as I'm testing dISAppointment, and it works great on my CT2950.

Reply 455 of 511, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

I captured the LDRQ# signal during SBDIAG sine/tada test on my P67 MB with ESS ISA sndcard. Under Doom it looks similar. During boot and when soundcard is not used it's still high...
Btw in my case the sbdiag sine noDMA is silent, both on real ISA and with SBEMU, only DMA sine plays. How about you?
Btw2 this kind of flat cable connectors are not purposed for heavy load it may have guaranted cca 100 insertions, maybe less. I still didn't get some nice tower to build my MB in so I have a mess of wires on the table too 😀

Attachments

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 456 of 511, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
RayeR wrote on 2024-04-17, 22:07:

I captured the LDRQ# signal during SBDIAG sine/tada test on my P67 MB with ESS ISA sndcard. Under Doom it looks similar. During boot and when soundcard is not used it's still high...
Btw in my case the sbdiag sine noDMA is silent, both on real ISA and with SBEMU, only DMA sine plays. How about you?

With my CT2950, I can hear a constant tone with noDMA test. Maybe ESS sound card differs in this aspect...

How about your DMA and Tada test?
- Does your ESS sound card play tone constantly during DMA test, or just about 1s?
- Does it play Tada without issues for more than once?

Without a known-good reference the wording from SBDIAG feels a bit vague regarding failing cases, but my current setup is working okay in a few games I've tested.

RayeR wrote on 2024-04-17, 22:07:

Btw2 this kind of flat cable connectors are not purposed for heavy load it may have guaranted cca 100 insertions, maybe less. I still didn't get some nice tower to build my MB in so I have a mess of wires on the table too 😀

Actually after initial unsuccessful efforts on getting LDRQ1# working I cut the other end of the wire I used for LDRQ1# and soldered it to the bottom of one of the PC Speaker header pin that was previously NC. This makes the connection permanent and easily accessible, though it will indeed create a bit of inconvenience when installing the board into an actual case as now there's a portion of the LDRQ1# wire on the back side of the motherboard.

I'm not sure if the connection between the TPM port and the adapter is really that loose, as I haven't detached the cable that often. So far the issue of the Fintek bridge falling off the bus only manifests when sufficiently loaded, such as when running Duke Nukem 3D, although in most cases it can be recovered by slightly pressing the connector on the dISAppointment side a bit (which kind of reseats the connection).

Reply 457 of 511, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie
LSS10999 wrote on 2024-04-18, 02:13:
With my CT2950, I can hear a constant tone with noDMA test. Maybe ESS sound card differs in this aspect... How about your DMA an […]
Show full quote

With my CT2950, I can hear a constant tone with noDMA test. Maybe ESS sound card differs in this aspect...
How about your DMA and Tada test?
- Does your ESS sound card play tone constantly during DMA test, or just about 1s?
- Does it play Tada without issues for more than once?

OK, later I may test with some other soundcards.
In my case both DMA sine and Tada tests plays continuously/repeately until I press a key and return back to menu.

LSS10999 wrote on 2024-04-18, 02:13:

Actually after initial unsuccessful efforts on getting LDRQ1# working I cut the other end of the wire I used for LDRQ1# and soldered it to the bottom of one of the PC Speaker header pin that was previously NC. This makes the connection permanent and easily accessible, though it will indeed create a bit of inconvenience when installing the board into an actual case as now there's a portion of the LDRQ1# wire on the back side of the motherboard.

I wired LDRQ to pin 20 that was previously connected to SUSCLK - I don't know what is this signal good for, so I detached it from header and use for LDRQ instead, having it together at one header.

LSS10999 wrote on 2024-04-18, 02:13:

I'm not sure if the connection between the TPM port and the adapter is really that loose, as I haven't detached the cable that often. So far the issue of the Fintek bridge falling off the bus only manifests when sufficiently loaded, such as when running Duke Nukem 3D, although in most cases it can be recovered by slightly pressing the connector on the dISAppointment side a bit (which kind of reseats the connection).

If it behaves such sensitive to touching/pressing I would just throw it away and make a new ribbon cable from fresh components 😀
Take a care if ribbon cable is properly aligned to connector pin blades and apply enough pressure to it. I use a vice.

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 458 of 511, by myne

User metadata
Rank Member
Rank
Member

I... Can't find a datasheet, but this one page blurb claims a pcie to isa bridge chip exists with full isa support except bus master.

Assuming it's accurate, would that imply that lpc isn't needed to support sound cards?

https://www.fintek.com.tw/index.php/products/ … /item/73-f85526

Things I built:
Mechwarrior 2 installer for Windows 10/11 Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11 auto-install iso template (for vmware)

Reply 459 of 511, by weedeewee

User metadata
Rank l33t
Rank
l33t
myne wrote on 2024-04-20, 12:42:

I... Can't find a datasheet, but this one page blurb claims a pcie to isa bridge chip exists with full isa support except bus master.

Assuming it's accurate, would that imply that lpc isn't needed to support sound cards?

https://www.fintek.com.tw/index.php/products/ … /item/73-f85526

I can't help but wonder why

IS interface supports 8/16bit I/O R/W, memory R/W and DMA R/W (via LPC interface)

is in the description.

edit: sigh, memories Re: MS-98L9 V2.0 , a new 1151MB with an ISA slot

Last edited by weedeewee on 2024-04-20, 14:23. Edited 1 time in total.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port