nes-emu
Version:
A NES emulator
28 lines (26 loc) • 1.1 kB
JavaScript
;
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;