nes-emu
Version:
A NES emulator
27 lines (26 loc) • 838 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = preLine;
var _constants = _interopRequireDefault(require("../../constants"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** Runs on virtual scanline -1, which prepares the PPU for rendering. */
function preLine(_ref) {
let {
ppu,
mapper
} = _ref;
if (!ppu.registers.ppuMask.isRenderingEnabled) return null;
if (ppu.cycle === _constants.default.PPU_CYCLE_CLEAR_FLAGS) {
const {
ppuStatus
} = ppu.registers;
ppuStatus.spriteOverflow = 0;
ppuStatus.sprite0Hit = 0;
ppuStatus.isInVBlankInterval = 0;
}
ppu.loopy.onPreLine(ppu.cycle);
ppu.loopy.onLine(ppu.cycle);
return ppu.cycle === _constants.default.PPU_CYCLE_MAPPER_TICK ? mapper.tick() : null;
}