[Scummvm-devel] PORTERS: AdLib emulator changes
Johannes Schickel
lordhoto at gmail.com
Wed May 6 20:09:41 CEST 2009
Max Horn wrote:
> The DOSBox OPL code seems to heavily rely on floating point
> calculations, which makes it a big no-no for many small devices which
> often lack a (full) FPU. IIRC they were working on an integer based
> version, though? I think you mentioned something like that in the
> past. Might be good to check that out. I could look into trying to
> tweak things for performance, too, but it would be best to coordinate
> this with the DOSBox devs, I would say. I.e., maybe they already have
> similar plans?
>
>
From our patch tracker item
(https://sourceforge.net/tracker/?func=detail&aid=2773359&group_id=37116&atid=418822):
"First of all there's no floating point based emulator. All use integer
calculations, with the exception of opl.cpp which keeps two variables
in floating point."
"> thus I thought it's floating point math
Functions like change_decayrate are called rarely, the speed relevant
parts are in the sample generation. One point that IS relevant but
which I could not convert yet is operator_output, but this requires
getting step_amp and vol being 32bit-integer and keeping the calulations
there in the signed 32bit range. Ideas welcome of course."
About the other new OPL emulator they have:
"Second, the (what you call integer based) dbopl.cpp is NOT supposed to
be used yet as it has known deficiencies, has not undergone testing and
in its current state has open bugs. But it's of course up to you to decide
which one you want to use."
// Johannes
More information about the Scummvm-devel
mailing list