VOGONS


miroSOUND PCM10 setup and DOS OPL4

Topic actions

First post, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie

Hi!

Currently I try to setup miroSOUND PCM10 with DOS wavetable MPU-401 support in DOS
I setup soundcard in DOS with original Miro's utility and new utility - https://github.com/JKnipperts/OPTi82c929_Driver

As expected its perfectly works in SB Pro and OPL3/4 modes with FM synthesis on 388 port and wavetable MPU-401 mode under Win9X
Anyway I try to setup MPU-401 wavetable id pure DOS (yes, I know officially its not supported)

On my way I download OPL4TSR.SYS (device driver) and OPL4DRV.COM from Yamaha SW 20
And that drivers LOADS and display me notice about FM on port 388 and PCM on port 380!

Currently I search a games/players with support of port 380 for MPU-401 (my test DOOM2 and Descent supports ports up to 360) 🙁
Any ideas or players/games are welcome!

Last edited by Babasha on 2024-02-15, 21:04. Edited 2 times in total.

Need help? Begin with photo and model of your hardware 😉

Reply 1 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

That port 380 is *not* MPU401 port but data+address port of YMF278, that normally only a driver or TSR talks to.

SW20PC driver will not work on the Miro PCM10 (or any other card for that matter) as SW20PC uses completely different way to get MPU401 emulation that no other card uses.
Basically YMZ290 on SW20PC (that no other card uses) emulates the MPU401 interface, captures data written to it and produces an interrupt that the DOS TSR will then use to turn that data into instructions for YMF278+SW20PC specific sample ROM on the card. The TSR also relies on timer IRQ from YMF278 itself to function also, without, music will stutter or be gone altogether.

From what I know there is no TSR for YMF278+YRW801 combo. All the cards using that combo that do not have their own MCU to turn MIDI into music (Miro PCM12 and PCM20 for example have), rely on windows driver to do MIDI music and will not function in pure DOS because of that.

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 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2024-02-07, 12:47:
That port 380 is *not* MPU401 port but data+address port of YMF278, that normally only a driver or TSR talks to. […]
Show full quote

That port 380 is *not* MPU401 port but data+address port of YMF278, that normally only a driver or TSR talks to.

SW20PC driver will not work on the Miro PCM10 (or any other card for that matter) as SW20PC uses completely different way to get MPU401 emulation that no other card uses.
Basically YMZ290 on SW20PC (that no other card uses) emulates the MPU401 interface, captures data written to it and produces an interrupt that the DOS TSR will then use to turn that data into instructions for YMF278+SW20PC specific sample ROM on the card. The TSR also relies on timer IRQ from YMF278 itself to function also, without, music will stutter or be gone altogether.

From what I know there is no TSR for YMF278+YRW801 combo. All the cards using that combo that do not have their own MCU to turn MIDI into music (Miro PCM12 and PCM20 for example have), rely on windows driver to do MIDI music and will not function in pure DOS because of that.

Tnx for info!
Currently OPL4DRV from Yamaha SW20 successfully loads and detect OPL4 PCM interface on port 380 with my Miro PCM10
(on my way I already disassemble OPL4DRV to find all the command line parameters)
Next step is to remap the standard 300-330-380 ports to my 380 and look what I get 😀 need to patch the SOFTMPU 1.91 port redirection

Need help? Begin with photo and model of your hardware 😉

Reply 3 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

As I said before, that port 380 is *not* a MPU401 port, redirection of MIDI data to it will not get you music of any sort.

What can is using SoftMPU to capture the MIDI data as YMZ290 would, generate a fake interrupt for the OPL4DRV TSR and supply that captured data to the TSR by emulating YMZ290's FIFO port. Information is a bit lacking on how the chip works but if you really really want to undertake it, I can uncover my reverse engineering of it and share the info.

But there is still a very big snag : OPL4DRV is for the sample ROM only found on SW20PC, it will not work with YRW801 found on the Miro and other cards. While you are going to get sound due to way YMF278 works (it holds instrument definitions in the sample ROM), all the instruments will be completely off as YRW801 and the sample ROM on SW20PC have completely different instruments and ordering of them.

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 4 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2024-02-07, 13:36:

As I said before, that port 380 is *not* a MPU401 port, redirection of MIDI data to it will not get you music of any sort.

What can is using SoftMPU to capture the MIDI data as YMZ290 would, generate a fake interrupt for the OPL4DRV TSR and supply that captured data to the TSR by emulating YMZ290's FIFO port. Information is a bit lacking on how the chip works but if you really really want to undertake it, I can uncover my reverse engineering of it and share the info.

But there is still a very big snag : OPL4DRV is for the sample ROM only found on SW20PC, it will not work with YRW801 found on the Miro and other cards. While you are going to get sound due to way YMF278 works (it holds instrument definitions in the sample ROM), all the instruments will be completely off as YRW801 and the sample ROM on SW20PC have completely different instruments and ordering of them.

Bad news... To complex task(((
I hope to slightly patch the OPL4DRV or make a little conversion on the fly...
But its a to complex as for me((( SAD

Need help? Begin with photo and model of your hardware 😉

Reply 5 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie

For the memories Yamaha OPL4DRV command line parameters list:

-iX - IRQ (9 in my case)
-af0:XXXX - FM bank 0 (0388 in my case)
-af1:XXXX - FM bank 1 (038A in my case)
-afd:XXXX - FM data (0389 in my case)
-apa:XXXX - PCM address (0380 in my case)
-apd:XXXX - PCM data (0381 in my case)
-p### - percussion level (0-127)
-lfX - FM level (0-7)
-lpX - PCM level (0-7)
-hX - midi header (0-7)
-r - remove OPL4DRV from memory
-wXXX (integer without validation) ?
-sX - turn ON something when 1 and turn OFF if 0
-bX - turn ON something when 1 and turn OFF if 0
-nX - turn ON something when 1 and turn OFF if 0
-maX -miX -mnX -m- - don't know (maybe mADRESS, mIRQ???)

Need help? Begin with photo and model of your hardware 😉

Reply 6 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

This is interesting info, I can try some of these switches when I restore access to one of my computers with SW20PC in it.

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 8 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2024-02-07, 20:05:

This is interesting info, I can try some of these switches when I restore access to one of my computers with SW20PC in it.

It looks lime -mXX parameters do something with IRQ and addresses

Need help? Begin with photo and model of your hardware 😉

Reply 10 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
Babasha wrote on 2024-02-07, 14:06:
For the memories Yamaha OPL4DRV command line parameters list: […]
Show full quote

For the memories Yamaha OPL4DRV command line parameters list:

-iX - IRQ (9 in my case)
-af0:XXXX - FM bank 0 (0388 in my case)
-af1:XXXX - FM bank 1 (038A in my case)
-afd:XXXX - FM data (0389 in my case)
-apa:XXXX - PCM address (0380 in my case)
-apd:XXXX - PCM data (0381 in my case)
-p### - percussion level (0-127)
-lfX - FM level (0-7)
-lpX - PCM level (0-7)
-hX - midi header (0-7)
-r - remove OPL4DRV from memory
-wXXX (integer without validation) ?
-sX - turn ON something when 1 and turn OFF if 0
-bX - turn ON something when 1 and turn OFF if 0
-nX - turn ON something when 1 and turn OFF if 0
-maX -miX -mnX -m- - don't know (maybe mADRESS, mIRQ???)

-mXX gives me an error about "MEC not found" - what is MEC? questions-questions-questions)))

Anyway maybe -miX (MEC interrupt?), maX (MEC address?), -mnX (MEC number?), -m- (MEC disable?)

Need help? Begin with photo and model of your hardware 😉

Reply 11 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2024-02-07, 20:05:

This is interesting info, I can try some of these switches when I restore access to one of my computers with SW20PC in it.

Tnx! it looks like SW DOS install utility creates .bat file C:\yamaha\ymhini.bat can you post it here?

Need help? Begin with photo and model of your hardware 😉

Reply 12 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

MEC is YMZ290 I mentioned earlier, it is the MPU401 intefrace chip that captures data that the TSR will then use to actually make YMF278 to sing.

Such a file was not created in the installation I have. but here's an overview of what's in CONFIG.SYS and AUTEXEC.BAT (the values of SET OPL4DRV, KPCON and KPLOAD have been changed to my needs) :

DEVICEHIGH=C:\YAMAHA\OPL4TSR.SYS

SET BLASTER=A220 I5 D1 T4 P300
SET OPL4DRV=-I3
SET MAD16=C:\YAMAHA\MAD16
C:\YAMAHA\MAD16\M16INIT /B
C:\YAMAHA\KPCON /WAIT:1000 /TYPE:2 /T2AOR:2048 /T2AOL:2048 /T2DPT:256 /T2MIC:0
C:\YAMAHA\KPLOAD.EXE C:\YAMAHA\TESTVERB.MBJ
C:\YAMAHA\OPL4DRV

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 13 of 22, by lolo799

User metadata
Rank Oldbie
Rank
Oldbie
Babasha wrote on 2024-02-07, 22:42:
lolo799 wrote on 2024-02-07, 20:14:

Could you try the opl4 drivers attached?

They are the same i already use.

The exact same? Those are from a Panasonic OPL4 pcmcia card, they look different than the SW20 ones from vogonsdrivers.

PCMCIA Sound, Storage & Graphics

Reply 14 of 22, by TamaMan

User metadata
Rank Newbie
Rank
Newbie

Regarding DOS MIDI players, Mark A. Fontana's MFPLAY (GSPLAY previously) version 1.2 has

; MPU401 PORT ADDRESS 
; For MPU_ADDR, specify the port address (in hex) of your Roland MPU401
; compatible MIDI interface. (Only UART-mode compatibility is required.)
; For MPU_IRQ, specify the IRQ level of the interface (2-9).
MPU_ADDR 330
MPU_IRQ 2

in the MFPLAY.CFG configuration file. Have not tested other ports myself but perhaps worth a try?

"High fidelity recordings of 90s PRO MIDI music and DOS/Windows game soundtracks on real hardware (AdLib, Sound Blaster+CMS/Pro 2/16/AWE32/AWE64, Roland MT-32/SC-55/SCC-1/SC-7)"
https://www.youtube.com/channel/UCiSJ_UFogOYTKcBKHwXz3lA

Reply 15 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
lolo799 wrote on 2024-02-08, 13:31:
Babasha wrote on 2024-02-07, 22:42:
lolo799 wrote on 2024-02-07, 20:14:

Could you try the opl4 drivers attached?

They are the same i already use.

The exact same? Those are from a Panasonic OPL4 pcmcia card, they look different than the SW20 ones from vogonsdrivers.

Will look clother in near time! Tnx!

Need help? Begin with photo and model of your hardware 😉

Reply 16 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
lolo799 wrote on 2024-02-08, 13:31:
Babasha wrote on 2024-02-07, 22:42:
lolo799 wrote on 2024-02-07, 20:14:

Could you try the opl4 drivers attached?

They are the same i already use.

The exact same? Those are from a Panasonic OPL4 pcmcia card, they look different than the SW20 ones from vogonsdrivers.

And its requires SCPRODOS.COM utility
Sad its not in archive(((

Need help? Begin with photo and model of your hardware 😉

Reply 17 of 22, by lolo799

User metadata
Rank Oldbie
Rank
Oldbie
Babasha wrote on 2024-02-08, 20:25:
lolo799 wrote on 2024-02-08, 13:31:
Babasha wrote on 2024-02-07, 22:42:

They are the same i already use.

The exact same? Those are from a Panasonic OPL4 pcmcia card, they look different than the SW20 ones from vogonsdrivers.

And its requires SCPRODOS.COM utility
Sad its not in archive(((

scprodos is the driver for the pcmcia sound card, it won't work with anything else.

PCMCIA Sound, Storage & Graphics

Reply 18 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie
lolo799 wrote on 2024-02-09, 09:25:
Babasha wrote on 2024-02-08, 20:25:
lolo799 wrote on 2024-02-08, 13:31:

The exact same? Those are from a Panasonic OPL4 pcmcia card, they look different than the SW20 ones from vogonsdrivers.

And its requires SCPRODOS.COM utility
Sad its not in archive(((

scprodos is the driver for the pcmcia sound card, it won't work with anything else.

Tnx!

OPL4DRV for Panasonic PCMCIA don't work and hardcoded for PCMCIA

Found OPL4DRV for OKSORI ISA sound cards - this version more complex and include SETOPL4 utility and OPL4.DRV - but as usual don't work with Miro PCM10 (as I understand there no IRQ handler)
So OPL4DRV with success find OPL4 on port 380 but standard IRQ9 not routing to OPL4 part of sound card in hardware(((

Will stop my experiments 🙁

Need help? Begin with photo and model of your hardware 😉

Reply 19 of 22, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie

Its nice to hear beautiful OPL4? (FM+wavetable) sounds in pure DOS 😀
Sad - only one player gives me this is SBVGM - Re: SBVGM (DOS) VGM Player
As I understand it directly communicates with OPL4 YMF278 chip?
Or this is just emulation?

Need help? Begin with photo and model of your hardware 😉