Jump to: navigation, search


Revision as of 19:36, 4 July 2017 by Admin (talk | contribs) (Downloads)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

N3S is a 3D NES emulator for Windows that is currently in alpha. It wraps the Nestopia UE libretro core and re-emulates the PPU to draw predefined 3D voxel meshes in place of 2D sprites.

Version 0.3.0 Alpha can be downloaded here.

To learn how to make your own N3S files see Editing_N3S_Files

Current Features

  • Emulates PPU
    • Nametable scrolling and mirroring
    • OAM sprite data
    • Registers such as CTRL, MASK, etc
    • Detects CHR bank switching and draws sprites accordingly
  • Renders NES games in 3D
    • Replaces sprites with predefined 3D voxel meshes
    • Can draw partial sprites that are clipped by edge of screen or nametable scroll
    • Palette-based shader code uses actual palette data from PPU each frame
    • Mirrors sprites in shader code
    • Draws 8x16 mode if specified in CTRL register
  • Built-in voxel editor
    • Allows users to sculpt truly 3D meshes for each sprite and export for each game
    • Sprites are 8x8x32 voxels

Planned Features

  • Support for games without CHR ROM
    • Meshes are generated when the game is loaded, so games with sprite data compressed in PRG ROM cannot be loaded.
  • Utilize built-in libretro features like save states, frameskipping, etc
    • Haven't implemented yet but comes with Nestopia libretro core
  • N3S file repository
    • "Official" 3D definitions will be curated in Git repository and downloaded by app automatically
    • Users can upload and revise


Version 0.3.0 Alpha can be downloaded here.

You can also find controls and instructions on that page.


See Screenshots


Super Mario Bros.

HoloLens Showcase

How It Works

See How It Works


N3S is being developed by Andrew Peterson.

He can be reached at n3semu@gmail.com or on Twitter.


The source code can be found on GitHub

Follow the project on Twitter or Facebook

Videos can be found on the N3S Youtube channel