VOGONS


First post, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

I've been struggling to get all functionalities of my YMF718-based sound card work as intended on this board.

Firstly, I configured the board's LPC controller to enable 200-2FF, 300-33F/380-3BF, 500-5FF, A00-AFF ranges.

The 3B0 range was said to be used for monochrome resolutions but so far I haven't noticed any apparent breakage with this option. At least this config frees one of the four address ranges so I could assign one for allowing port 530 (WSS) to be accessible. Even so, setting up the card on such a board always needs some nonstandard values that YMF71x somehow permits:
- YMF718 defaults to 370h for its control registers, which is not accessible with the aforementioned config. SETYMF can move it to A28h, and when using UNISOUND I need to add RA28 into the BLASTER environment variable.
- When using default I/O ranges (200-2FF, 300-373, 380-39F, A00-AFF), WSS can be set to A20h (through SETYMF, or put WA20 in BLASTER with UNISOUND) and still work, but it's mostly useless outside as most WSS-supported software/drivers expect hardcoded ranges (530, 604, E80, F40) and do not permit custom values. In some cases it may be possible to patch the programs or drivers in question to allow such I/O ranges.

Sound Blaster Pro, FM and MIDI work fine in DOS. However, I'm noticing some very odd behaviors when it comes to WSS.

When testing with SETYMF, the sound appeared to be fine at first, but subsequent tests would often result in a high-pitched screech despite test results appear fine (such as IRQs fired). WSS doesn't appear to work in other places. I tried Tyrian 2000 as well as the DIGPAK demo, and neither worked when setting sound output to WSS.

I also tried using the card in Windows NT 3.51 with the help of GRUB4DOS (first set up the LPC in DOS then use GRUB4DOS to boot its NTLDR), and I'm getting mixed results with Windows' Sound Blaster drivers and Yamaha's OPL3-SAx ones.

- When using Microsoft's default Sound Blaster drivers, sound and FM work fine but MIDI does not work. I get no MIDI output and media player stops responding for about 2-3 minutes when I stop playback.

- When using Yamaha's OPL3-SAx NT driver, in some cases the driver fails to install complaining "the driver may be missing", which may mean I'm using a driver that's not really supporting the chip (YMF718). Eventually I managed to get a version of the driver installed. It actually uses WSS for digitized sound, but the card refuses to use Sound Blaster's IRQ (claiming it's already used) and instead moving WSS and MIDI to separate ones (as such it would technically be taking 3 instead of 2 IRQs).

After reboot, it appears the sound is not working correctly, though MIDI works fine. Whenever a sound plays (such as Windows startup sound), it would keep looping the starting part of it for like about 3-4 seconds. I haven't tried FM in this state as I intend to use MIDI. I'm not sure if dual DMA (namely using both DMA 1 and 3) is needed, but from what I tested, this doesn't make any difference. Also, whenever I try changing the settings of the sound card from "Drivers" there's a good chance for the driver to hardlock the system requiring a hard reset.

So in the end... this card can only be used as a normal Sound Blaster Pro with MIDI in DOS, and without MIDI in Windows... I never really used WSS before, so I'm not sure if the chip has a buggy implementation of WSS or I'm missing something when configuring it...

Reply 1 of 7, by Tiido

User metadata
Rank l33t
Rank
l33t

That NT driver sounds like it is for OPL3-SA (YMF701) and not SA2 or 3 (711+718, 715+719), although it shouldn't work without something already having setup up the card's IO/IRQ/DMA via PnP mechanism... There's definitely no support for more than two IRQ or DMA signals on the chip, except YMF701 which is a non-PnP thing that has several things simply glued together without resource sharing, making it a complete resource hog.

The screechy noise is something I have got sometimes in past, and I think it is due to LSB and MSB getting swapped when initiating WSS playback. I am unsure what exactly is needed to properly start a WSS playback that ensures that this won't happen, I only got it maybe 1 out of 100 times... It should be noted, WSS only works in pure DOS, it will not work in windows where driver completely monopolizes it. I have not used WSS much in DOS with the chip, the main thing I have used it with is Doom MBF port where it works perfectly fine although I have sometimes had occasions where on first startup of the game it is silent, but subsequent start makes PCM play. MIDI has always worked though.

MIDI issue with NT SB driver is definitely a driver related issue. That driver most likely relies on operation of a real SB for MIDI features, using SB-MIDI. YMF71x only supports part of SB-MIDI stuff and it is likely it will confuse the driver leading to those long pauses etc.

I have no experience with NT and this chip so I don't really have thoughts about what the problems may be.

One thing you may try is to increase wait states on 8bit accesses on the Fintek. I very vaguely remember it cured some intermittent issues I had.

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

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2023-12-04, 19:19:
That NT driver sounds like it is for OPL3-SA (YMF701) and not SA2 or 3 (711+718, 715+719), although it shouldn't work without so […]
Show full quote

That NT driver sounds like it is for OPL3-SA (YMF701) and not SA2 or 3 (711+718, 715+719), although it shouldn't work without something already having setup up the card's IO/IRQ/DMA via PnP mechanism... There's definitely no support for more than two IRQ or DMA signals on the chip, except YMF701 which is a non-PnP thing that has several things simply glued together without resource sharing, making it a complete resource hog.

The screechy noise is something I have got sometimes in past, and I think it is due to LSB and MSB getting swapped when initiating WSS playback. I am unsure what exactly is needed to properly start a WSS playback that ensures that this won't happen, I only got it maybe 1 out of 100 times... It should be noted, WSS only works in pure DOS, it will not work in windows where driver completely monopolizes it. I have not used WSS much in DOS with the chip, the main thing I have used it with is Doom MBF port where it works perfectly fine although I have sometimes had occasions where on first startup of the game it is silent, but subsequent start makes PCM play. MIDI has always worked though.

MIDI issue with NT SB driver is definitely a driver related issue. That driver most likely relies on operation of a real SB for MIDI features, using SB-MIDI. YMF71x only supports part of SB-MIDI stuff and it is likely it will confuse the driver leading to those long pauses etc.

I have no experience with NT and this chip so I don't really have thoughts about what the problems may be.

One thing you may try is to increase wait states on 8bit accesses on the Fintek. I very vaguely remember it cured some intermittent issues I had.

I could not get WSS to work in DOS. The games I'm trying right now cannot init WSS properly, even though I've made port 530 accessible.

I recall one of the other games I tried asked me for an installed Win3.x when choosing to use WSS as sound output, which I obviously don't have right now. Maybe WSS requires some drivers or libs from Win3.x drivers that other game vendors were not legally allowed to distribute at that time.

Will see if explicitly adding waitstates would do anything. For now I'm leaving Fintek's settings on default as there was no real need to modify them as far as I've tested -- just configure range decoders on Intel's LPC controller and everything works.

For Windows NT, after configuring the card from DOS (LPC controller as well as the card itself), the configured state will be retained when booting to NTLDR through GRUB4DOS, so NT's default, non-PnP Sound Blaster drivers will work fine.

I'm not sure about the OPL3-SAx driver version I'm using. Most Yamaha drivers appear to target NT4.0 but they do not import any NT4-specific symbols and in most cases work fine... Just not sure which Yamaha driver version is the most stable one.

With OPL3-SAx driver (which uses WSS instead of Sound Blaster for sound), sound may work but bugged (keeps looping the first part of a given sound several times, like some kind of IRQ/DMA issue), while MIDI works without errors. I'm also not allowed to set certain IRQs, with a vague "unexpected error has occurred" error that I probably need to hook a disassembler to figure out why.

(PS: Yamaha seems very secretive about the errors their drivers encounter. Even their drivers for PCI sound cards behave similarly when it comes to errors, though a bit better by providing an error code which enables me to figure out what exactly the error means when inspecting the driver with a disassembler.)

Reply 3 of 7, by quovadis11

User metadata
Rank Newbie
Rank
Newbie
LSS10999 wrote on 2023-12-04, 14:19:

Firstly, I configured the board's LPC controller to enable 200-2FF, 300-33F/380-3BF, 500-5FF, A00-AFF ranges.

I am currently using RUBY-9719VG2AR and Orpheus II LT and would like to enable the range you mentioned.
How did you do it?

I previously built rubyisa32 that Rasteri posted on github using DJGPP. Did you use this tool?

Reply 4 of 7, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
quovadis11 wrote on 2024-02-26, 05:25:
I am currently using RUBY-9719VG2AR and Orpheus II LT and would like to enable the range you mentioned. How did you do it? […]
Show full quote
LSS10999 wrote on 2023-12-04, 14:19:

Firstly, I configured the board's LPC controller to enable 200-2FF, 300-33F/380-3BF, 500-5FF, A00-AFF ranges.

I am currently using RUBY-9719VG2AR and Orpheus II LT and would like to enable the range you mentioned.
How did you do it?

I previously built rubyisa32 that Rasteri posted on github using DJGPP. Did you use this tool?

Actually... I'm using my own tool which is based on rubyisa32/sapphisa. For Intel boards including RUBY-9719VG2AR it's mostly identical, except I don't actually touch the registers on the Fintek bridge as from what I tested there's no need to do so. Configure the Intel LPC-ISA controller and you're good.

It's optional to change things like waitstates. From what I've tested... changing waitstates doesn't really make any difference with respect to WSS on the Yamaha card. I'm very new to WSS and I'm unsure the quality of Yamaha's WSS implementation. Maybe other vendors implemented it better.

Eventually I gave up and used ALS007 instead. The card is full-height which allows me to use my XR385 wavetable, just that its mixer was somewhat too quiet compared to others. It also works fine in NT 3.51 using Avance's drivers. The card does not support WSS nor high DMA, but all audio files I tested play fine with it, including the few that would hang and not play with a real Sound Blaster 16.

Reply 5 of 7, by quovadis11

User metadata
Rank Newbie
Rank
Newbie
LSS10999 wrote on 2024-02-26, 07:50:

Actually... I'm using my own tool which is based on rubyisa32/sapphisa. For Intel boards including RUBY-9719VG2AR it's mostly identical, except I don't actually touch the registers on the Fintek bridge as from what I tested there's no need to do so. Configure the Intel LPC-ISA controller and you're good.

It's optional to change things like waitstates. From what I've tested... changing waitstates doesn't really make any difference with respect to WSS on the Yamaha card. I'm very new to WSS and I'm unsure the quality of Yamaha's WSS implementation. Maybe other vendors implemented it better.

Eventually I gave up and used ALS007 instead. The card is full-height which allows me to use my XR385 wavetable, just that its mixer was somewhat too quiet compared to others. It also works fine in NT 3.51 using Avance's drivers. The card does not support WSS nor high DMA, but all audio files I tested play fine with it, including the few that would hang and not play with a real Sound Blaster 16.

If you don't mind, could you tell me the command line for LPCISA(or rubyisa32?) to enable the scope you mentioned? I want to activate WSS on Orpheus II LT, but I cannot activate 500-5FF with the Tiido's RubyISA, and I am not sure what values to put in the four base-mask pairs when using rubyisa32.

As a result of my confirmation, I found that Orpheus II LT can be initialized only when 2xx, 3xx, and Axx are all secured, and that if Axx is changed to a different range, ISA PnP does not work properly.

Reply 6 of 7, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
quovadis11 wrote on 2024-02-26, 09:54:

If you don't mind, could you tell me the command line for LPCISA(or rubyisa32?) to enable the scope you mentioned? I want to activate WSS on Orpheus II LT, but I cannot activate 500-5FF with the Tiido's RubyISA, and I am not sure what values to put in the four base-mask pairs when using rubyisa32.

As a result of my confirmation, I found that Orpheus II LT can be initialized only when 2xx, 3xx, and Axx are all secured, and that if Axx is changed to a different range, ISA PnP does not work properly.

Like this.

LPCISA 220 FC 300 BC 500 FC A00 FC

300 range is a bit tricky as this has an overlap with video related stuffs (3B0-3BF, mainly for monochrome). However, it doesn't appear to break anything serious as NT 3.51 with VBEMP still works fine.

Reply 7 of 7, by quovadis11

User metadata
Rank Newbie
Rank
Newbie
LSS10999 wrote on 2024-02-26, 10:32:
Like this. […]
Show full quote

Like this.

LPCISA 220 FC 300 BC 500 FC A00 FC

300 range is a bit tricky as this has an overlap with video related stuffs (3B0-3BF, mainly for monochrome). However, it doesn't appear to break anything serious as NT 3.51 with VBEMP still works fine.

The processing of the 3xx range seems to be very clever, Thanks!!!!