UNPKG

nes-emu

Version:

A NES emulator

28 lines (26 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _palette = _interopRequireDefault(require("../../constants/palette")); var _constants = _interopRequireDefault(require("../../../constants")); var _helpers = require("../../../helpers"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * An area of memory which defines eight 4-color palettes (4 for backgrounds, 4 for sprites). * It's located at $3F00 (Palette RAM), and its total size is 32 bytes. * Each byte is an index to the system palette (0x00 ~ 0x3f). */ class FramePalette { constructor() { _helpers.WithContext.apply(this); } /** Returns the BGR color of `paletteIndex` from `paletteId`. */ getColorOf(paletteId, paletteIndex) { const startAddress = _constants.default.PPU_ADDRESSED_PALETTE_RAM_START_ADDRESS + paletteId * _constants.default.PALETTE_SIZE; const colorIndex = this.context.ppu.memory.readAt(startAddress + paletteIndex); return _palette.default[colorIndex]; } } exports.default = FramePalette;