#nes #nintendo #emulation #nes-emulator

monsoon-default-renderers

Default screen renderer implementations for the Monsoon NES emulator

10 releases

Uses new Rust 2024

0.2.2 Apr 4, 2026
0.2.1 Mar 23, 2026
0.1.6 Mar 8, 2026
0.1.3 Feb 28, 2026

#11 in #nes-emulator


Used in 2 crates

Apache-2.0

320KB
7.5K SLoC

monsoon-default-renderers

Default screen renderer implementations for the Monsoon NES emulator.

This crate provides LookupPaletteRenderer, a fast O(1) lookup table-based renderer that converts the NES PPU's 9-bit palette indices into RGB colors. It is the default renderer used by both the frontend and CLI applications. It is part of the Monsoon Emulator project.

Usage

Add monsoon-default-renderers alongside monsoon-core:

[dependencies]
monsoon-core = { version = "0.1.0" }
monsoon-default-renderers = { version = "0.1.0" }
use monsoon_core::emulation::screen_renderer::ScreenRenderer;
use monsoon_default_renderers::LookupPaletteRenderer;

let mut renderer = LookupPaletteRenderer::new();

// pixel_buffer is a &[u16] from Nes::get_pixel_buffer()
# let pixel_buffer: &[u16] = &[];
let rgb_pixels = renderer.buffer_to_image(pixel_buffer);
// rgb_pixels is a &[RgbColor] — each with .r, .g, .b fields (u8)

License

This project is licensed under the Apache-2.0 License.

Dependencies

~1.4–2.4MB
~54K SLoC