VOGONS


First post, by s07r07c

User metadata
Rank Newbie
Rank
Newbie

Hi, I'm a flight simulation game fan.

I tried to play Falcon 3.0 again using DOSBox 0.73. At the main menu musics and sounds are excellent. But problem is after start playing game, about one minute later, only engine sound disappears. Other sounds and game still run perfectly.

When that happens if I increase engine thrust or change view from inside cockpit to outside, engine sound comes again. However soon it goes out again...
So to keep engine sound alive, I have to adjust throttle continuously or have to change views continuously...

I tried changing irq number and opl mode, etc. in the config file but not working.

Does someone know how to fix it? Please teach me how.

Regards,

Last edited by s07r07c on 2009-11-24, 10:38. Edited 2 times in total.

Reply 2 of 7, by s07r07c

User metadata
Rank Newbie
Rank
Newbie

I see. Thank you very much.

I hope that I can play Falcon 3.0 with engine sound in DOSBox 0.74...

Anyways, other simulation games I have run perfectly with DOSBox 0.73.

Reply 3 of 7, by jal

User metadata
Rank Oldbie
Rank
Oldbie
s07r07c wrote:

Does someone know how to fix it?

The reason behind this is that if there's "inactivity" on a channel, i.e. if there's no writes to the channel ports, DOSBox turns off the channel. This is done to prevent DOSBox having to continuously update all OPL channels even if there is no sound being played, which is (relatively) costly in terms of CPU. The engine sound you describe is created by setting up the channel once, then playing the sound continuously without writing to the channel port, causing DOSBox to think there's no sound, and this muting the channel. There's (currently) no way for DOSBox to know whether or not there's actual sound being produced by a channel, as that's logic inside the OPL emulator, and very non-trivial to find out. That's not to say it'll never be fixed of course, but I hope it gives you some insight into the underlying problem.

JAL

Reply 4 of 7, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

wait for 0.74 as something was added for this.

Water flows down the stream
How to ask questions the smart way!

Reply 5 of 7, by jal

User metadata
Rank Oldbie
Rank
Oldbie
Qbix wrote:

wait for 0.74 as something was added for this.

As I understood from that other thread, in 0.74 DOSBox checks for all channels instead of on a per-channel basis?

JAL

Reply 6 of 7, by s07r07c

User metadata
Rank Newbie
Rank
Newbie

Thank you very much for your kind explanations. I understood more.
Now, I'm going to stop changing config file no more.

I can wait. no problem. Thanks...^^

Regards,

Reply 7 of 7, by HunterZ

User metadata
Rank l33t++
Rank
l33t++
jal wrote:
s07r07c wrote:

Does someone know how to fix it?

The reason behind this is that if there's "inactivity" on a channel, i.e. if there's no writes to the channel ports, DOSBox turns off the channel. This is done to prevent DOSBox having to continuously update all OPL channels even if there is no sound being played, which is (relatively) costly in terms of CPU. The engine sound you describe is created by setting up the channel once, then playing the sound continuously without writing to the channel port, causing DOSBox to think there's no sound, and this muting the channel. There's (currently) no way for DOSBox to know whether or not there's actual sound being produced by a channel, as that's logic inside the OPL emulator, and very non-trivial to find out. That's not to say it'll never be fixed of course, but I hope it gives you some insight into the underlying problem.

JAL

Isn't the OPL emulator code open source? It seems like it might be beneficial to see if the author could add some hooks or something if the data is important for accurate or efficient emulation.