1
0
Fork
You've already forked nesnesa
0
A NES emulator for Varvara/Uxn
2026年04月29日 14:39:32 -07:00
src Fix PLP and ROR/ROL 2026年04月29日 14:39:32 -07:00
LICENSE Initial commit of base Varaboy code 2024年01月17日 08:20:54 -08:00
README.md Initial commit of base Varaboy code 2024年01月17日 08:20:54 -08:00

Nesnesa

Nesnesa will one day be a NES emulator written in uxntal for the Varvara system.

Special Thanks

  • Devine Lu Linvega (and collaborators) for uxn and Varvara, the reason this exists at all
  • Andrew Richards for uxn32, without which debugging this would have been a nightmare

Features

  • Nothing, yet.

Controls

Key Function
Home Start
Shift Select
Ctrl A
Alt B
Arrows Dpad
0-9 Set frame skip (default: 0)
Escape Write SRAM to disk and quit

Stability

Usage

This emulator requires a UXN emulator to run. The name of the NES ROM to run is provided on the command line, for example:

uxnemu nesnesa.rom mario.nes

Screenshots

Compatibility

Note that unless otherwise noted, only a few minutes of testing per game was performed.

Game Notes
Tetris Untested

How it works

Both the NES and Uxn use a 16bit address space (0000ドル-$ffff). The NES has several regions of mirrored RAM.

Nesnesa starts at the Uxn entry point (0100,ドル the same as the NES entry point), sets up some basic stuff, reads the NES header to load the appropriate mapper code, and then jumps to the main runtime code inside mirrored RAM. As long as we can fit all Uxn runtime code inside morroed RAM the NES code is able to access the rest of memory using native addresses, which I find super fun!

Note that this means we don't have access to the Uxn zero page, which contains the NES zero page.

Performance

Accuracy