nes-emu
Version:
A NES emulator
22 lines (19 loc) • 691 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _registers = require("../../registers");
const DUTY_CYCLES = [0.125, 0.25, 0.5, 0.75];
/** Sets options for a Pulse channel. */
class PulseControl extends _registers.WriteOnlyInMemoryRegister {
constructor() {
super();
this.addReadOnlyField("volumeOrEnvelopePeriod", 0, 4).addReadOnlyField("constantVolume", 4).addReadOnlyField("envelopeLoopOrLengthCounterHalt", 5).addReadOnlyField("dutyCycleId", 6, 2);
}
/** Returns the duty cycle (0.125, 0.25, 0.5, or 0.75). */
get dutyCycle() {
return DUTY_CYCLES[this.dutyCycleId];
}
}
exports.default = PulseControl;