UNPKG

nes-emu

Version:

A NES emulator

24 lines (22 loc) 865 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _registers = require("../../registers"); var _constants = require("../constants"); /** Sets the high 3 bits of the Triangle channel's timer and its length counter. */ class TriangleLCLTimerHigh extends _registers.WriteOnlyInMemoryRegister { constructor() { super(); this.addReadOnlyField("timerHigh", 0, 3).addReadOnlyField("lengthCounterLoad", 3, 5); } /** Updates the length counter and schedules a linear length counter update (next quarter beat). */ writeAt(__, byte) { this.setValue(byte); const triangle = this.context.apu.channels.triangle; triangle.lengthCounter.counter = _constants.lengthTable[this.lengthCounterLoad]; triangle.linearLengthCounter.reloadFlag = true; } } exports.default = TriangleLCLTimerHigh;