VOGONS


First post, by stamasd

User metadata
Rank l33t
Rank
l33t

I'm trying to setup a DOS disk (well it's a CF card but still) that I can use to test various systems with regards to DOS compatibility of PCI cards.
The initial system that I chose as a baseline, to make sure that everything works as it should, is:
motherboard: QDI PlatiniX 4X, chipset i850, with a 1.8GHz P4 and 512MB RDRAM, has PC/PCI connector (which is why I chose it)
sound card: Yamaha DB-XG, YMF744
video card: ATI Rage II AGP and TNT2 M64 AGP (not both at the same time of course)

The SB-Link cable is installed of course.

I'm using the driver from Vogonsdrivers, https://www.vogonsdrivers.com/getfile.php?fil … 693&menustate=0
It installs fine but after reboot when it goes into configuration mode, it allows me to chose only some of the options; many are greyed out. For instance it allows me to choose the base addresses for the SB emulation, FM, MPU401, joystick. But other options for the above, such as the IRQs are greyed out and cannot be altered (all the IRQs in this test system show as 9). More importantly, the DMA channel for the SB emulation is also greyed out and it shows as "disabled", i.e. no DMA channel is assigned for SB.

The sound tests in the setup program pass fine - had to alter the mixer settings a lot, the defaults sounded way too loud and distorted - but I'm worried that with no DMA channel I'll run into trouble when testing with real games. Already I tried X-Wing and it doesn't run unless I disable sound.

FWIW the BLASTER variable that the installation program inserted automatically into autoexec.bat includes a "D1" however its own setup program still shows no DMA channel.

Last edited by stamasd on 2016-06-16, 20:32. Edited 3 times in total.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 1 of 85, by nforce4max

User metadata
Rank l33t
Rank
l33t

This is why native isa dma makes things so much easier vs the newer solutions where another chip takes up the function of providing isa instead of it being the south bridge. Some have gotten isa dma working but it is a difficult and a very involved process that is just simply not worth it. It is on a similar level as trying to get pci-e working in 9x (it has been done) on anything newer than the intel 915.

The solution to your problem is here somewhere on the forums but it has gone down the memory hole of forgotten threads. There still might be a youtube video or two showing how they have gotten isa dma for sound working but one of them is in Russian even though everything on the screen is english.

Best to do this over a weekend or on some vacation time.

On a far away planet reading your posts in the year 10,191.

Reply 2 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t
nforce4max wrote:

Best to do this over a weekend or on some vacation time.

I have a week of vacation now, that's why I'm doing it. 😀

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 3 of 85, by nforce4max

User metadata
Rank l33t
Rank
l33t

Nice, just take your time and hunt around 😀

Would post links but finding anything anymore on this forum is like trying finding a needle in a haystack. The mods should really move things around to where old threads are easier to find.

On a far away planet reading your posts in the year 10,191.

Reply 4 of 85, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

It looks like the SETUPDS utility searches for some specific PCI ID's when choosing which mode it allows. I had success exchaning the PCI ID of one VIA chipset with another: Yamaha YMF7x4 Guide

Another option is to use the DSDMA TSR included in the driver package on Yamaha's site: http://www.yamaha.co.jp/english/product/lsi/download/

Here's a list of PCI ID's I'm able to identify in the SETUPDS utility using a hex editor:

Intel:
8086 7110 82371AB/EB/MB Intel 82371AB/EB PCI to ISA bridge (ISA mode)
8086 7100 82439TX System Controller (MTXC), part of 430TX chipset
8086 7180 rmc Host/PCI bridge in 440LX/EX AGP chipset
8086 7190 82443BX/ZX Intel 82443BX Pentium(R) II Processor to PCI Bridge
8086 7192 82443BX/ZX 440BX/ZX chipset Host-to-PCI Bridge
8086 2410 82801AA LPC Interface
8086 2420 82801AB LPC Interface
8086 7000 82371SB PIIX3 PCI-to-ISA Bridge (Triton II)

SiS
1039 0008 SiS 85C503 PCI System I/O (PSIO)

VIA
1106 0596 VT82C596 PCI ISA Bridge

ALi
10B9 1533 M1535+ PCI South Bridge
10B9 1543 M1543 a1 Aladdin V chipset South Bridge

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 5 of 85, by Tertz

User metadata
Rank Oldbie
Rank
Oldbie

The main thing which is done by SB-Link is support for DMA. If you choose SB-Link in setupds and still have problems, then try other PCI slots as YMF may allow other settings in other slot. If this will not help, try to input other settings directly to .ini. Also check for resources conflicts on DMA 1.
For first DAC testing Tie Fighter is more appropriate, as newer code should be better. Only then try problem games.
To use newer DOS driver is also better.

DOSBox CPU Benchmark
Yamaha YMF7x4 Guide

Reply 7 of 85, by archsan

User metadata
Rank Oldbie
Rank
Oldbie

@nforce4max, that's VERY interesting, thanks, I'll get more into that, since a similar build (Core 2 + 865) is on my list.

However, what I get from OP's intention, this thread is meant for SB-LINK-connected YMF7xx card (OP/stamasd, I hope you'll add "PC/PCI" or "SB-LINK" for better searchability/archivability), which I'm also intested in since I just bought some YMF724F-V cards to experiment with this particular method for DMA support. So using DSDMA TSR or actual ISA cards etc are better discussed elsewhere.

"Any sufficiently advanced technology is indistinguishable from magic."—Arthur C. Clarke
"No way. Installing the drivers on these things always gives me a headache."—Guybrush Threepwood (on cutting-edge voodoo technology)

Reply 8 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t

Little progress today, but I think it's significant.

I actually have 2 Yamaha PCI cards, one is YMF724 (and is in fact the card I did the original test with, didn't look well at it) and one is in fact YMF744.

On the i850 system, both behave the same. In setupds.exe, the options for DMA, IRQ and DMA mode are greyed out, and the DMA is disabled. Since I use a generic 3x2 cable for SB-link, I tried inserting it rotated 180 degrees as well, didn't make a difference. I get the same result if I leave the cable disconnected altogether.

On the plus side, I found a pair of jumpers on the YMF724 card that can be used to disable the on-board opamp that was giving me the horrible distortion because the gain is too high. Now the volume is much better behaved, and the sound a lot clearer. The YMF744 card has no jumpers, and the default gain for the sound is just fine. If anything it has a little bit less background noise compared to the YMF724.

Also I should mention that on the i850 motherboard, in setupds I can only test 16-bit sound and FM sound. The 8-bit sound test option is greyed.

X-wing will not start with sound enabled with the above setup. It just hangs and the computer requires to be power cycled.

So I moved my baseline system for testing a notch down, to a 440BX-based board. I dusted off my Abit BH6 and installed the cards one by one in it, also connected by the SB-link cable. Using the exact same HDD from the above tests, with the same driver version. I had to fiddle a bit with settings in setupds, but it was easy to find a combination of parameters that allow both cards to work perfectly. As opposed to the i850 board, on the 440BX board I can access and change the IRQ, DMA channel and DMA mode. DDMA did not work, but PC/PCI mode works well with IRQ 5 and DMA 1. All sound modes are enabled (8-bit, 16-bit and FM) and X-wing starts and sounds great.

Now that I have an actual baseline and know that both Yamaha cards in fact work with PC/PCI with the appropriate drivers on BX, I will search for other drivers that may allow them to work on later chipsets.

Unfortunately I don't have any boards with chipsets between 440BX and 850 to test with. I have a 815E board but it doesn't have the PC/PCI header, and a 815T board which is dead. So I'll go upwards, first back to the 850 board, and then to 845 and 848.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 9 of 85, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

I exchanged the ICH and ICH0 LPC Interface PCI ID's with the ones for ICH2 and ICH2-M, can you give it a try on your i850 motherboard stamasd? I used the driver from: http://www.yamaha.co.jp/english/product/lsi/download/

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 10 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t

Very nice, thanks. Will be testing today.

If it works, the same could be done for ICH4 (chipset 845) and ICH5 (chipset 865). 😀

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 11 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t

Success! It works!

It now assigns a DMA channel to the sound card SB emulation on the i850 motherboardboard, and both 16-bit and 8-bit sound work, as well as FM. The only setting I can't change as it's greyed out is the DDMA mode which is automatically set to PC/PCI. I didn't expect otherwise as ICH2 and later don't support DDMA but only PC/PCI.

Long story short it works.

However Xwing still hangs when started. Even when I select sound as simple as AdLib only. I think there is some other incompatibility. I will test with other games.

Can you tell me the offset of the PCi IDs in setupds.exe? A similar change for ICH4/ICH5 may make it work on later boards as well.

(edit) aha, think I found them.

Comparing files setupds.exe.orig and SETUPDS.EXE.ICH2
0000AF4B: 10 40
0000AF83: 20 4C

So at offsets af4b and af83, the original setupds has 10/20, and the modified one 40/4c. Can you confirm?

(edit) I guess "40" comes from this:

Vendor 8086h Intel Corporation
Device 2440h 82801BA LPC Interface (ICH2 B5 step)

Then changing that to "c0" would give support for ICH4/ICH4L

82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge Device 8086:24c0

and changing the "4c" at af83 to "cc" support for ICH4M

82801DBM (ICH4-M) LPC Interface Bridge Device 8086:24cc

Similarly, changing "40" to "D0" and "4c" to "dc" gives support for ICH5/ICH5R:

82801EB/ER (ICH5/ICH5R) LPC Interface Bridge Device 8086:24d0
82801EB (ICH5) LPC Interface Bridge Device 8086:24dc

Brilliant. Will test.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 12 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t

I've modified setupds.exe for ICH4 and ICH5 as described in the above post, and will be testing later. I'm attaching the files in case anyone else wants to give them a go. The file modded for ICH4 should work on chipset i845, and ICH5 on chipsets 875, 865 and 848. I currently only have one motherboard with ICH4, and there's one with ICH5 with my name on it in the mail, expect it in a few days.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 13 of 85, by Tertz

User metadata
Rank Oldbie
Rank
Oldbie
stamasd wrote:

DDMA did not work

It works on 440BX with some games like Tie Fighter. Also, as was said above, it needs be taken into account that PCI slots may to have shared IRQ with other devices and this affects sound's card functional and hence maybe compatibility too. Changing of resources and slots may help sometimes.

The latest DOS driver is on yamaha's site.

So I'll go upwards, first back to the 850 board, and then to 845 and 848.

It's more concrete MB's problem and settings, as all 8xx chipsets should support SB-Link in similar way, it's officially supported standard there.

However Xwing still hangs when started.

Slowing CPU down helps in some games. Try with 1st cache switched off.

DOSBox CPU Benchmark
Yamaha YMF7x4 Guide

Reply 14 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t

Small update, on the i850 board with the modded driver, ymf724 correctly configured, CPU L1 and L2 cache disabled (the BIOS allows me only to disable or enable both at once, not each individually): X-wing starts and appears to be working with a little lag - overall slower than on the P2-450/BX. The game works regardless of the sound option chosen at install, but I only get sound if AdLib is chosen. And then of course it's only FM music. None of the other options give me any sound at all (MIDI, SB, SB Pro etc). On the BX board all sound options worked great (didn't test MIDI as I have nothing connected externally at this moment).

Will try Doom and Duke Nukem next.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 15 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t

More testing done. Still with the i850 motherboard. The following tests were done both with CPU caches enabled and disabled. The results were exactly the same.

Firstly, I had to manually change ds.ini in the yamaha directory because it would automatically assign IRQ10 to the sound card, and doom can't use that (IRQ2, 5 and 7 are the only options). I tried first to reserve IRQ10 in BIOS so it can't be assigned but that didn't work. Then I manually assigned IRQ5 by editing ds.ini, and that worked.

Duke Nukem 3d works perfectly. Both music and sound FX play very well when configured for SB music+effects, or SB effects +adlib music.

Doom is more problematic. If I choose adlib music and no SFX it runs fine. Same if I choose SB music and no SFX. However if I choose SB for sound effects, it crashes during initialization with a Dos4GW error. It actually locks the computer and I have to pull the plug to turn it off. The same happens with CPU caches enabled and disabled.

I welcome ideas for more tests to do. For now I'll go back and see if changing the IRQ to 7 will have any effect on Doom running.

(In other news I have soldered the PCPCI header to the i845 motherboard, and that one will be up next for testing with the ICH4-modded setupds.exe. Hint: a powerful solder-vacuum pump is the only way to go about clearing the solder pads)

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 16 of 85, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Glad to see it works in a few games at least. Have you tried using the same IRQ for both the YMF724 (PCI IRQ) and SB emulation? You can use the YMFIRQ utility to change the PCI IRQ, just load it after SETUPDS. You can find YMFIRQ in the driver package provided here: http://vsynchmame.mameworld.info/

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 17 of 85, by stamasd

User metadata
Rank l33t
Rank
l33t
Kamerat wrote:

Glad to see it works in a few games at least. Have you tried using the same IRQ for both the YMF724 (PCI IRQ) and SB emulation? You can use the YMFIRQ utility to change the PCI IRQ, just load it after SETUPDS. You can find YMFIRQ in the driver package provided here: http://vsynchmame.mameworld.info/

Yes, I've been using the same IRQ everywhere. TBH I can change the IRQ easily by hand. I have to make sure that IRQ10 is set to "reserved" in the BIOS or else it gets assigned regardless of the config files - but as long as IRQ10 isn't available, it will take any IRQ I put in DS.ini.

I did again a little round of testing, with a few puzzling if happy results. I changed the IRQ assigned to 7 (had to move the LPT port off it first in BIOS).

Duke Nukem 3d works well as before. At first it was complaining about the DMA not being available, which was puzzling. In fact the problem was that the LPT port was also on IRQ7, as soon as I changed that it worked well again.

Doom still crashes exactly as before.

However, now X-wing works with sound! Both the SB and SB-Pro options in sound setup give music, SFX and speech. Moreover, it now works with CPU caches enabled! I'm surprised but happy. If only I could find a way to make Doom run, it'd be a perfect setup.

Again, all this testing so far is with the i850 board.

For the next round of testing I will move to the i845 board, the one with freshly soldered PC/PCI header. QDI PlatiniX 2E/333, P4 (Northwood) 2.8GHz, 512MB DDR333.

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 18 of 85, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

About Doom: Have you tried disable EMM386 (if you got it enabled) or maybe se if the game runs with the DOS/32A extender instead of the default one.

Good luck on your i845 board. 😀

Edit:

stamasd wrote:
Can you tell me the offset of the PCi IDs in setupds.exe? A similar change for ICH4/ICH5 may make it work on later boards as wel […]
Show full quote

Can you tell me the offset of the PCi IDs in setupds.exe? A similar change for ICH4/ICH5 may make it work on later boards as well.

(edit) aha, think I found them.

Comparing files setupds.exe.orig and SETUPDS.EXE.ICH2
0000AF4B: 10 40
0000AF83: 20 4C

So at offsets af4b and af83, the original setupds has 10/20, and the modified one 40/4c. Can you confirm?

Spot on. 😉

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 19 of 85, by Tertz

User metadata
Rank Oldbie
Rank
Oldbie
stamasd wrote:

I welcome ideas for more tests to do.

Check what speed level you get by switching off the CPU cache.
Some DOS games may work incorrectly (including missing sound) on P4 because of its too high speed. If BIOS has Recovery Times, they may be rised. Slowdown utilities may be used. Having P4, think about installing slow PCI card as second video card, besides slow models some of video cards may allow setting lower GPU frequency (in their firmware or by utils).

Games to try: Dune II, Flashback, - they did not work with DDMA. The ones which will not run may be tried with dsdma, to check can they work at all in DOS on your machine.

DOSBox CPU Benchmark
Yamaha YMF7x4 Guide