neser 1.2.0

NESER - Nintendo Emulation Systems Engine (Rust). Desktop and WebAssembly frontends.
Documentation
# Shader Presets

This directory contains curated shader presets that reference the [libretro/slang-shaders](https://github.com/libretro/slang-shaders) repository, which is included as a git submodule at `vendor/slang-shaders`.

## Setup

After cloning neser, initialise the submodule to enable the non-stock shaders:

```bash
git submodule update --init
```

Or clone with submodules from the start:

```bash
git clone --recurse-submodules https://github.com/rmstdope/neser
```

## Available Presets

- **stock.slangp**: Nearest neighbor (no filtering) — no submodule required
- **xbrz-freescale.slangp**: xBRZ pixel art upscaler (requires submodule)
- **crt-lottes.slangp**: CRT simulation by Timothy Lottes — scanlines, shadow mask, bloom (requires submodule, public domain)
- **ntsc-256px-composite.slangp**: NTSC composite video simulation (requires submodule)

## Usage

Use the `--nes-filter` flag for NES, `--gb-filter` for Game Boy, or
`--gba-filter` for Game Boy Advance:

```bash
neser rom.nes --nes-filter crt     # CRT simulation
neser rom.nes --nes-filter ntsc    # NTSC composite
neser rom.nes --nes-filter smooth  # Smooth upscaling
neser rom.nes --nes-filter none    # No filter
neser rom.gb  --gb-filter dmg  # DMG dot-matrix LCD
neser rom.gba --gba-filter gba-lcd        # GBA LCD shader
neser rom.gba --gba-filter agb001         # AGB-001 style handheld look
neser rom.gba --gba-filter nso-gba-color  # NSO color mod preset
neser rom.gba --gba-filter sp101-color    # SP-101 color mod preset
neser rom.gba --gba-filter gba-lcd-grid   # GBA LCD grid with border
```

Or set in config file:

```text
nes-filter=crt
```

You can also cycle through shaders at runtime with F4.
For GBA, cycling follows this order: none, gba-lcd, agb001,
nso-gba-color, sp101-color, gba-lcd-grid.

## Why a submodule?

The shader files carry per-file licenses (public domain, MIT, GPL-3.0).
Rather than vendoring the source directly in this repository, a shallow
submodule is used so that each shader is fetched from the authoritative
upstream repository along with its original license text.