A small library to provide bindings for the Nuked-OPL3 library.
Nuked-OPL3 is not a turn-key implementation of the OPL3 chip - functions such as the status register, timers and interrupts are left as implementation details.
You can access the Nuked-OPL3 API via the Opl3Chip
struct, if needed, but with the caveat that directly writing
registers to Nuked-OPL3 will prevent you from reading the OPL registers correctly.
If you intend to utilize opl3-rs
in an emulator, you will probably want to use the Opl3Device
wrapper which provides
a full, device-oriented OPL3 implementation including the status, address and data registers, plus the OPL3 timers.
Documentation can be found on docs.rs
An example of music playback is provided in the play_tune directory under /examples. This example uses the rodio library for audio playback and crossbeam channels for inter-thread communication.
opl3-rs was primarily built for use with the MartyPC PC emulator. It is used to implement an AdLib Music Card device.
2024-07-06.09-49-12.mp4
Nuked-OPL3 is (C) 2013-2020 Nuke.YKT and licensed under LGPL 2.1
play_tune example based off code by Maarten Janssen and Peter De Wachter.