sound support (Re: XMS problem with Aladdin demo)
Hello.
Quoted 3 lines · Julius Schwartzenberg
Quoted 2 lines
http://www.geocities.com/SiliconValley/Circuit/5426/dosemu.html
something we don't want to have.This patch seems pretty neat.
Please note: this patch includes the linux kernel module, not only the dosemu modifications. This is needed to drive the DMA controller directly. You won't get it included into an official kernel - people from XFree tried that many times, this fails. Linus doesn't want to provide the DMA control to userspace I think, or maybe there wasn't a good implementation.
But people never give up:
http://www.ussg.iu.edu/hypermail/linux/kernel/0311.2/0107.html
http://www.bennee.com/~alex/software/kernel/index.php
The DMA access might be usefull for dosemu, but not for sound. It is good for driving some legacy hardware.
Quoted 2 lines
Is there any chance that at least OPL3
support could be added in such a way to Dosemu?
OPL3 doesn't need DMA. It doesn't actually even need an interrupts. I see no reasons why the one can't simply open an access to the OPL3 ports for dosemu and it wont work. Have you tried?
Quoted 8 lines · Stas Sergeev
Quoted 3 lines
Is there any chance that at least OPL3
support could be added in such a way to Dosemu?OPL3 doesn't need DMA. It doesn't actually even need an interrupts. I see no reasons why the one can't simply open an access to the OPL3 ports for dosemu and it wont work. Have you tried?
If you have the hardware, this works fine. However, dosemu must be started as root.
Signature · 1 line
Ryan Underwood, <[email protected]>
Ryan Underwood schreef:
Quoted 12 lines · Stas Sergeev
Quoted 9 lines
Quoted 3 lines
Is there any chance that at least OPL3
support could be added in such a way to Dosemu?OPL3 doesn't need DMA. It doesn't actually even need an interrupts. I see no reasons why the one can't simply open an access to the OPL3 ports for dosemu and it wont work. Have you tried?
Quoted 3 lines
If you have the hardware, this works fine. However, dosemu must be started as root.
Cool, I've just got this to work!
It doesn't seem to work fully though.
I've added this to my dosemu.conf:
$_ports=" device /dev/snd/seq range 0x388 0x38b"
I'm using a YMFPCI chip which seems to contains an OPL3.
Wacky Wheels seems to be able to play 'some' stuff, but only if I run it after letting pmidi play a midi file. Wolfenstein 3-D doesn't seem to work though and after running Wolfenstein, I need to run pmidi first to be able to get Wacky Wheels to do something again. In Wacky Wheels, I only seem to hear the some instruments (sound like the same ones pmidi used to play the file).
There is also an error printed about the adlib emulation conflicting with the ports setting, (but it seems that I can ignore that).
Any idea why it is only 'half' working?
Thanks,
Julius
Quoted 15 lines · Julius Schwartzenberg
Cool, I've just got this to work!
It doesn't seem to work fully though.
I've added this to my dosemu.conf:
$_ports=" device/dev/snd/seqrange0x3880x38b"
I'm using a YMFPCI chip which seems to contains an OPL3. Wacky Wheels seems to be able to play 'some' stuff, but only if I run it after letting pmidi play a midi file. Wolfenstein 3-D doesn't seem to work though and after running Wolfenstein, I need to run pmidi first to be able to get Wacky Wheels to do something again.
In Wacky Wheels, I only seem to hear the some instruments (sound like the same ones pmidi used to play the file).
There is also an error printed about the adlib emulation conflicting with the ports setting, (but it seems that I can ignore that). Any idea why it is only 'half' working?
No. The only thing I can think of is that you need the range 0x220-0x223 or 0x228-0x229 as well.
Signature · 1 line
Ryan Underwood, <[email protected]>
More reply:
Quoted 3 lines · Julius Schwartzenberg
Quoted 3 lines
If you have the hardware, this works fine. However, dosemu must be started as root.
PS. Or sudo.
Quoted 5 lines
Cool, I've just got this to work!
It doesn't seem to work fully though.
I've added this to my dosemu.conf:
$_ports=" device/dev/snd/seqrange0x3880x38b" I'm using a YMFPCI chip which seems to contains an OPL3.
Yes, these chips do have a real OPL3, but must be enabled by the PCI configuration. Since you are using this for MIDI seq, it is likely the case. But the ALSA OPL3 driver may be using MMIO access and not PIO. Check your /proc/ioports to see where ALSA claims the OPL3 ports actually exists.
You can also enable IO-tracing for all of the mentioned ranges (0x220-0x223, 0x228-0x229, 0x388-0x38b) to see where the app tries to write OPL commands to. If it is writing to the wrong range relative to the real hardware, it's possible to redirect that access. Redirected access would be slower but with OPL this doesn't make much difference since there is so little I/O traffic.
Signature · 1 line
Ryan Underwood, <[email protected]>
Ryan Underwood schreef:
Quoted 9 lines
More reply:
Quoted 2 lines · Julius Schwartzenberg
Quoted 2 lines
If you have the hardware, this works fine. However, dosemu must be started as root.
PS. Or sudo.
My Dosemu owned by root already has u+s. I thought that was about the same as running as root, but that indeed doesn't do.
Quoted 13 lines
Quoted 5 lines
Cool, I've just got this to work!
It doesn't seem to work fully though.
I've added this to my dosemu.conf:
$_ports=" device/dev/snd/seqrange0x3880x38b" I'm using a YMFPCI chip which seems to contains an OPL3.Yes, these chips do have a real OPL3, but must be enabled by the PCI configuration. Since you are using this for MIDI seq, it is likely the case. But the ALSA OPL3 driver may be using MMIO access and not PIO. Check your
/proc/ioportsto see where ALSA claims the OPL3 ports actually exists.
Quoted 6 lines
You can also enable IO-tracing for all of the mentioned ranges (0x220-0x223, 0x228-0x229, 0x388-0x38b) to see where the app tries to write OPL commands to. If it is writing to the wrong range relative to the real hardware, it's possible to redirect that access. Redirected access would be slower but with OPL this doesn't make much difference since there is so little I/O traffic.
In /proc/ioports the OPL3 is only listed at 0388-038b, which is why I set up that port range in Dosemu. The other ranges you mention to seem not to be used. Here is the full output of catting /proc/ioports:
http://haar.student.utwente.nl/~julius/ioports-laptop
I believe Wacky Wheels and Wolfenstein 3-D worked without problems when I ran them without Linux/Dosemu in DOS, so the hardware seems to be capable.
Thanks,
Julius
Quoted 4 lines · Julius Schwartzenberg
Quoted 2 lines
PS. Or sudo.
My Dosemu owned by root already has u+s. I thought that was about the same as running as root, but that indeed doesn't do.
It should be similar. With sudo, dosemu can tell that euid!=uid and when it doesn't need root anymore, drops the privileges.
Quoted 6 lines
In
/proc/ioportsthe OPL3 is only listed at 0388-038b, which is why I set up that port range in Dosemu. The other ranges you mention to seem not to be used. Here is the full output of catting/proc/ioports:
http://haar.student.utwente.nl/~julius/ioports-laptop
I believe Wacky Wheels and Wolfenstein 3-D worked without problems when I ran them without Linux/Dosemu in DOS, so the hardware seems to be capable.
I just have this nagging suspicion that Wolf3D uses 0x220-0x223, but I could be wrong. IIRC, Wolf3D also uses the strange SBPro mixer setting for stereo digital audio. I'll try this myself later on (my laptop has a OPL3).
Signature · 1 line
Ryan Underwood, <[email protected]>
Quoted 3 lines · Ryan Underwood
I just have this nagging suspicion that Wolf3D uses 0x220-0x223, but I could be wrong.
Yep, I'm wrong, according to the Wolf sources:
#define alFMStatus 0x388 // R
#define alFMAddr 0x388 // W
#define alFMData 0x389 // W
Signature · 1 line
Ryan Underwood, <[email protected]>