First post, by keenmaster486
- Rank
- l33t
As part of the code for the latest iteration of my DOS game engine, I'm working on a DRO/IMF player for OPL3 in pure DOS, written in FreeBasic. It plays IMF type 0 and 1 files, and DRO v0.1 files (yes, I'm lazy. Don't shoot me.)
I've made significant progress since my first feeble attempts in QuickBasic, mostly due to kvee, writer of IMFPLAY. I stole some initialization code from bisqwit, because his code works 95% of the time and mine works 70% of the time.
My player now plays most files perfectly, some even better than AdPlay and/or IMFPLAY - certain DRO files cause AdPlay or IMFPLAY to royally screw up where my player does just fine. Yes, I know IMFPLAY doesn't use OPL3.
But there are still a few files (always DRO files) which inexplicably have certain instruments which simply sound wrong. I can't quite figure it out; usually it's just one instrument which will either sound completely wrong (with the correct frequencies, though) or will sound just enough wrong to know that it's not how it's supposed to sound.
Could it be a problem with the initialization code? I didn't write it, bisqwit did in one of his OPL3 projects. I don't even know what it's doing - I have searched high and low for information on how to properly initialize the OPL3 chip, to no avail. No information seems to be floating around on it.
Can anyone help me out?
Here's the player, with the source code, a few sample DRO files, and AdPlay and IMFPLAY thrown in so it can be seen how they handle the sample files as well:
World's foremost 486 enjoyer.