VOGONS


Yamaha YMF7x4 Guide

Topic actions

Reply 340 of 348, by Tiido

User metadata
Rank l33t
Rank
l33t

1) YMF71x uses two DMAs and two IRQs, referred to as A and B, which can then be assigned to any of the available physical DMA or IRQ channels.
2) The software loads AUTOEXEC in memory to modify it there instead of scanning through the file and trying to insert and shift stuff that way. It has a 32KB byte limit because of that. A file this big will be full of bunch of stuff and since the program will only try to update the first entry found, it is highly unlikely it is the right entry in a file this big with many confs in it, so you're definitely better off with manual update to the settings suggested by software.
3) That seems most strange...
4) YMF71x has no kind of SB16 compatibility, if you want 16bit sound you have to use WSS instead.

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 341 of 348, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2025-01-12, 03:28:

4) YMF71x has no kind of SB16 compatibility, if you want 16bit sound you have to use WSS instead.

Do you know if the YMF71x chip has register-level compatibility with the Analog Devices AD1848 chip?

I'm asking this, since some DOS games that claim to support WSS only seem to do so on the AD1848. This apparently includes Impulse Tracker, as well as DOS games that use DIGPAK drivers.

See the following links for more info on this issue:

- This comment by @CarlosTex on GitHub
- This Vogons thread that he referred to in that GitHub comment, about 640K!enough patching Impulse Tracker to support more WSS hardware implementations

Reply 342 of 348, by Tiido

User metadata
Rank l33t
Rank
l33t

It is register compatible with CS4231 which in turn is compatible with AD1848, in Mode1 which is the compatibility mode.

CS4231 extends original AD1848 with more inputs and few other things, that are available in Mode2 which enables the extensions via 16 more registers over the existing 16. Mode2 is selected in software that is aware of it, and it shouldn't break compatibility with any stuff expecting only the first 16 registers.

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 343 of 348, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2025-01-13, 15:31:

It is register compatible with CS4231 which in turn is compatible with AD1848, in Mode1 which is the compatibility mode.

CS4231 extends original AD1848 with more inputs and few other things, that are available in Mode2 which enables the extensions via 16 more registers over the existing 16. Mode2 is selected in software that is aware of it, and it shouldn't break compatibility with any stuff expecting only the first 16 registers.

I learned something new. Thanks for clarifying. Is the same true for the OPL3-SAx chipset? And do you know why neither CS4231 nor OPL3-SAx work with Impulse Tracker and DIGPAK drivers out of the box, without apparently needing some patching? Maybe because the detection routes rely on certain specific timings and/or other undocumented behavior that is unique to the AD1848?

Reply 344 of 348, by Tiido

User metadata
Rank l33t
Rank
l33t

YMF71x is the OPL3-SAx series. The PCI YMF724/744/754 chips that this thread is about, are not having any sort of WSS compatibility 🤣.

I have no idea why there would be any incompatibility, perhaps they check the ID register and reject any values they don't recognize...
EDIT: But there's one part that is not part of the Codec chip itself but additional stuff below the codec addresses that show the WSS card conf, where current IRQ and DMA confs can be read. This part varies from card to card and it can be that the software in question explicitly relies on that info rather than any manual conf and environment variables.

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 345 of 348, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Thx for quick replay.

Tiido wrote:

1) YMF71x uses two DMAs and two IRQs, referred to as A and B, which can then be assigned to any of the available physical DMA or IRQ channels.

Im still confused, its not actually straight forward.. Are these IRQ some internal card MB assignments? or they are meant for emulated SB card IRQ - so make sense to set 5 and 7 IRQ and DMA 1 or 5, if not it make sense to set some different values to keep IRQ 5/7 free.. Or A is for emulated IRQ and B is for real machine actual IRQ card assigment?

Tiido wrote:

2) The software loads AUTOEXEC in memory to modify it there instead of scanning through the file and trying to insert and shift stuff that way. It has a 32KB byte limit because of that. A file this big will be full of bunch of stuff and since the program will only try to update the first entry found, it is highly unlikely it is the right entry in a file this big with many confs in it, so you're definitely better off with manual update to the settings suggested by software.

Im used to this situation, utilities usually write code at the start of autoexec.bat and config.sys, so i can late easy integrate the code and copy it at the right place. Second scenarios is search for some specific line and adjust it or put it before / after.. this works too, but its a bit more messy especially if they not print detail what where was changed.
Other and more clean solution would be just print needed code in some *.txt or other filename like autoexec.YMH or Config.YMH and tell user to copy it at the right places. Important are exact commands, not integration of it to existing conf files..

Tiido wrote:

3) That seems most strange...

Board out of test bench, later i got idea that problem could be video card too, Warcraft 2 with quite picky with Vesa 2.0 cards, but problem is usually black screen, not ASM DOS/4 extender crash report.

Tiido wrote:

4) YMF71x has no kind of SB16 compatibility, if you want 16bit sound you have to use WSS instead.

Its strange, because with all these SB emulation card, they is usually mention that SB PRO 2 not SB 16 is emulated, but for lots of games SB16 check is passing and sound is working. They are even games which are running only with SB 16 option, but not SB Pro(2).

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 346 of 348, by Tiido

User metadata
Rank l33t
Rank
l33t

YMF71x chipset has several components : SB, WSS, OPL3 and MPU401, all of which can produce IRQs. The card can use up to two physical IRQs to signal these sources, so each of the 4 internal components can be connected to either A or B interrupt, which in turn can connect to a physical IRQ on the ISA bus. There's no emulation, only routing of signal from point A to point B. Same with DMA channels, which have 3 sources : SB, WSS playback and WSS recording.

In case of SETYMF, the exact command is just SETYMF.EXE /INITONLY with the current EXE location as path in front of it. If you want anything extra you consult the readme file and supply any of the additional command line switches.

Many SB16 games silently fall back to SBpro if they find DSP 3.x instead of DSP 4.x, such as Duke Nukem 3D. The card absolutely cannot do any of the SB16 commands nor has any means to do high DMA channels.

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 347 of 348, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Ok thx and what are recommended settings pro IRQs, when you have option to make all IRQ free?

I mean, set SB, OPLS and MPU-404 to A- IRQ 5 /7.. and WSS to B any other free IRQ, or some is prefered (i have tried to google WSS default IRQ it seems 7 too)? If not wrong original SB cards are using just 1 IRQ for all. What would happen when you try to set all 4 devices to one IRQ?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 348 of 348, by Tiido

User metadata
Rank l33t
Rank
l33t

Most games expect IRQ 5 for SB but older ones do want it on 7. True WSS doesn't support IRQ 5 at all and starts at 7. Games that really care about MPU401 want IRQ9 but majority of games don't need the IRQ functionality. Original Adlib had unpopulated IRQ selection header, and as a result no game can use IRQ capability of OPL2/3 chip, but I have exposed it still on the card software for whoevec might like to play with it but otherwise it should be kept off to prevent possible incompatibilities.

There's generally no problem making all of them use same IRQ, with the execption of MPU401 software that wants to use the IRQ, in which case there will be problems. Single IRQ operation is what whe windows driver does too.

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 😜