UNPKG

vgm-conv

Version:
37 lines (36 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.YM2608ToAY8910Converter = exports.YM2203ToAY8910Converter = void 0; const vgm_converter_1 = require("./vgm-converter"); const vgm_parser_1 = require("vgm-parser"); class SSGToAY8910Converter extends vgm_converter_1.VGMConverter { convertCommand(cmd) { const convertSSG = this.from.subModule == null || this.from.subModule === "ssg"; const convertFM = this.from.subModule == null || this.from.subModule === "fm"; if (cmd instanceof vgm_parser_1.VGMWriteDataCommand && cmd.chip === this.from.chip && cmd.index === this.from.index) { if (cmd.addr < 0x10) { if (convertSSG) { return [cmd.copy({ target: vgm_parser_1.VGMWriteDataTargetId.ay8910 })]; } } else { if (convertFM) { return []; } } } return [cmd]; } } class YM2203ToAY8910Converter extends SSGToAY8910Converter { constructor(from, to, opts) { super(from, { chip: "ay8910", index: from.index, clock: 1 / 2, relativeClock: true }); } } exports.YM2203ToAY8910Converter = YM2203ToAY8910Converter; class YM2608ToAY8910Converter extends SSGToAY8910Converter { constructor(from, to, opts) { super(from, { chip: "ay8910", index: from.index, clock: 1 / 4, relativeClock: true }); } } exports.YM2608ToAY8910Converter = YM2608ToAY8910Converter;