UNPKG

nes-emu

Version:

A NES emulator

35 lines (34 loc) 1.19 kB
"use strict"; var _createTestContext = _interopRequireDefault(require("../../helpers/createTestContext")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const should = require("chai").Should(); const ADDRESS = 0x2000; describe("CPU/PPU registers interaction", () => { describe("PPUCtrl", () => { let ppu, memory, register; beforeEach(() => { ({ ppu, memory } = (0, _createTestContext.default)()); register = ppu.registers.ppuCtrl; }); it("is write-only", () => { memory.writeAt(ADDRESS, 120); register.value.should.equal(120); memory.readAt(ADDRESS).should.equal(0); }); it("can return the VRAM address increment", () => { memory.writeAt(ADDRESS, 0b00000000); register.vramAddressIncrement.should.equal(1); memory.writeAt(ADDRESS, 0b00000100); register.vramAddressIncrement.should.equal(32); }); it("provides the sprite mode", () => { memory.writeAt(ADDRESS, 0b00000000); register.isIn8x16Mode.should.equal(false); memory.writeAt(ADDRESS, 0b00100000); register.isIn8x16Mode.should.equal(true); }); }); });