Semi-related, I've also rigged Processor to allow YM2203, YM2608 and YM2610 commands for conversion via the existing YM2612.write() function, and seems to work trivially.
![Smile :)](./images/smilies/icon_smile.gif)
Beta test!
Moderator: Staff
In the long run, I'm fine with renaming *YM2612* as *OPN* (possibly even filenames) and generalizing some related stuff (e.g. enhancing the ym2612_op_t to be a full opn_op_t and instead letting the newly relatedly renamed SubOPN::save* methods determine which op params are actually handled, possibly with extra parameter(s) saying what type to parse the op as). Same goes for other family chips like the OPL* series if/when output formats become available for them.MaliceX wrote:Semi-related, I've also rigged Processor to allow YM2203, YM2608 and YM2610 commands for conversion via the existing YM2612.write() function, and seems to work trivially.(well...their operator register structure is practically identical!)
Code: Select all
bool SubYM2612::saveVGI(const ins_t &ins, const string &fn);
Code: Select all
// N::OpMode is a not-yet-implemented enum : unsigned unless otherwise noted
// Most SubOPN methods would default to OPN2 since YM2612 is my preferred,
// but I can be convinced otherwise if needed
// Look in vgm2pre/common.hpp for namespace N
bool SubOPN::saveVGI(const ins_t &ins, const string &fn, const N::OpMode &mode = N::OpMode::OPN2);