415
edits
m (→Rewrite FMOPL emulator: fix link) |
Eriktorbjorn (talk | contribs) (The "AdLib" format is a bit of a misnomer. Each engine can have its own data format for it, as long as it translates into instructions for the sound chip. Added link to the AdLib programming page.) |
||
Line 142: | Line 142: | ||
== Rewrite FMOPL emulator == | == Rewrite FMOPL emulator == | ||
Many games supported by ScummVM contain sound data | Many games supported by ScummVM contain sound data intended for the [http://en.wikipedia.org/wiki/AdLib AdLib] Music Synthesizer Card, or other AdLib-compatible hardware like the SoundBlaster. These sound cards used the Yamaha YM3812 sound chip (also known as OPL2) to produce sound via FM synthesis. For more information about how this is done, see Jeffrey S. Lee's web page on [http://www.shipbrook.com/jeff/sb.html Programming the AdLib/Sound Blaster FM Music Chips]. | ||
In ScummVM we use the well-known FMOPL emulator from MAME V0.37a with some modifications (the name is the composition of "FM" and "OPL", see above). That was one of the few | In ScummVM we use the well-known FMOPL emulator from MAME V0.37a with some modifications (the name is the composition of "FM" and "OPL", see above). That was one of the few | ||
versions on MAME released under the GPL, making it legal for us to use this particular version of the FMOPL code. Jarek Burczynski later rewrote the FMOPL emulator to be bit-precise, but unfortunately for us his work has only been released under a GPL-incompatible license. | versions on MAME released under the GPL, making it legal for us to use this particular version of the FMOPL code. Jarek Burczynski later rewrote the FMOPL emulator to be bit-precise, but unfortunately for us his work has only been released under a GPL-incompatible license. | ||
What needs to be done is to understand Jarek's current code and write a new emulator. Efforts must | What needs to be done is to understand Jarek's current code and write a new emulator. Efforts must be made to avoid verbatim copying of his code, to ensure no license violation takes place. | ||
be made to avoid verbatim copying of his code, to ensure no license violation takes place. | |||
There are several approaches to do this, but most are not suitable for a single developer. A possible approach would be to fix our current FMOPL code by looking at how Jarek's code works. Another would be to start with a second, totally different emulator which we have and gradually improve that one (which was written by Ken Silverman and released under the GPL). | There are several approaches to do this, but most are not suitable for a single developer. A possible approach would be to fix our current FMOPL code by looking at how Jarek's code works. Another would be to start with a second, totally different emulator which we have and gradually improve that one (which was written by Ken Silverman and released under the GPL). |
edits