UNPKG

nes-emu

Version:

A NES emulator

40 lines (38 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _registers = require("../../registers"); var _helpers = require("../../helpers"); /** * OAM Data Port (<> read/write) * * Write OAM data here. Writes will increment `OAMAddr` after the write. */ class OAMData extends _registers.InMemoryRegister { /** Reads a value from PPU's internal OAM. */ readAt() { const { ppu } = this.context; const oamAddress = ppu.registers.oamAddr.value; return ppu.oamRam[oamAddress]; } /** Writes a `byte` to PPU's internal OAM and increments `OAMAddr`. */ writeAt(__, byte) { const { ppu } = this.context; const oamAddress = ppu.registers.oamAddr.value; ppu.oamRam[oamAddress] = byte; this._incrementAddress(); } _incrementAddress() { const { oamAddr } = this.context.ppu.registers; oamAddr.setValue(_helpers.Byte.force8Bit(oamAddr.value + 1)); } } exports.default = OAMData;