Open sagamusix opened 3 years ago
After playing around a bit more, it seems like BeniTracker doesn't write to the test / waveform select enable register at all, which then causes all subsequent waveform select commands to be ignored. Adding opl.out 1, 32
at the beginning of the program makes it work in DOSBox(-X).
Now I guess the question remains - does this mean that Creative's OPL3 clone ignores this register entirely, or does it enable it by default? Is there a way to emulate this DOSBox-X? Do other variants of the OPL2/OPL3 do the same?
Edit: According to https://moddingwiki.shikadi.net/wiki/OPL_chip#01:_Test_Register_.2F_Waveform_Select_Enable
OPL3 does not implement WSE bit, and it should be left clear.
So I assume a real OPL3 chip would behave just like the AWE64, and BeniTracker simply assumes that an OPL3 chip is present (despite using OPL2 features exclusively). Should DOSBox-X maybe follow the observed OPL3 behavior here if it's configured to use a SB16 (which it does by default)?
Some work is being done on this in DOSBox: https://sourceforge.net/p/dosbox/code-0/4468/
Perhaps @Allofich will port the latest SVN commits too?
I'll try to do it soon.
Describe the bug
The OPL wave select is not working in BeniTracker, causing all FM operators to use a sine wave. On my AWE64, the different waves work correctly. Vanilla DOSBox has the same issue.
To Reproduce Steps to reproduce the behavior:
Expected behavior Operator waveforms should change the sound like on my AWE64.
Environment (please complete the following information):
Additional context I tried editing the OPL output code (QuickBasic source code is included with the tracker) to increase the delay between port writes (in case port writes were too fast) but that didn't help.