UNPKG

nes-emu

Version:

A NES emulator

30 lines (29 loc) 1.02 kB
"use strict"; var _createTestContext = _interopRequireDefault(require("../../helpers/createTestContext")); var _helpers = require("../../helpers"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const should = require("chai").Should(); const ADDRESS = 0x4014; describe("CPU/PPU registers interaction", () => { describe("OAMDMA", () => { let cpu, ppu, memory, register; beforeEach(() => { ({ cpu, ppu, memory } = (0, _createTestContext.default)()); register = ppu.registers.oamDma; }); it("is write-only", () => { register.setValue(123); memory.readAt(ADDRESS).should.equal(0); }); it("copies the whole page to OAM and add 514 cycles", () => { for (let i = 0; i < 256; i++) memory.writeAt(_helpers.Byte.to16Bit(0x06, i), 255 - i); memory.writeAt(ADDRESS, 0x06); for (let i = 0; i < 256; i++) ppu.oamRam[i].should.equal(255 - i); cpu.extraCycles.should.equal(514); }); }); });