nes-emu
Version:
A NES emulator
30 lines (29 loc) • 1.02 kB
JavaScript
;
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);
});
});
});