vgm-conv
Version:
Chip-type and clock converter for VGM.
32 lines (31 loc) • 989 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OPL2ToOPLConverter = void 0;
const vgm_converter_1 = require("./vgm-converter");
const vgm_parser_1 = require("vgm-parser");
function type2cmd(type) {
switch (type) {
case "ym3526":
return 0x5b;
case "y8950":
return 0x5c;
default:
return 0x5b;
}
}
class OPL2ToOPLConverter extends vgm_converter_1.VGMConverter {
_type;
_target;
constructor(from, to, opts) {
super(from, { chip: to.chip, index: from.index, clock: 1, relativeClock: true });
this._type = to.chip;
this._target = type2cmd(this._type);
}
convertCommand(cmd) {
if (cmd instanceof vgm_parser_1.VGMWriteDataCommand && (cmd.chip === "ym3812") && cmd.index === this.from.index) {
return [cmd.copy({ target: this._target })];
}
return [cmd];
}
}
exports.OPL2ToOPLConverter = OPL2ToOPLConverter;