Version: v0.5.1
Last updated:


Unxds is a port of the Unx virtual machine to the 3DS. Uxn is a portable 8-bit virtual computer inspired by forth-machines, capable of running simple tools and games programmable in its own assembly language.

This emulator allows you run to your uxn projects on the 3DS, it can also be used for developers who want to learn how to program little 8-bit things.

It was designed with an implementation-first mindset with a focus on creating portable graphical applications, the distribution of Uxn projects is akin to sharing game roms for any classic console emulator.


By default, uxnds will run /uxn/boot.rom or /uxn/launcher.rom. It also supports reading files from within /uxn.

On start, a keyboard is presented on the bottom screen, and the uxn display - on the top screen. Use the L or R buttons to swap them - in this configuration, mouse input is approximated via touchscreen.

You can use the system button in the lower-left corner to reset the uxn virtual machine.


Two ports are provided: the 3DS port (compatible with 3DS consoles) and the NDS port (compatible with DS, DSi and 3DS consoles).

3DS port

There is one binary provided: uxnds.3dsx.

NDS port

When using a real DS, DSi or 3DS console, it is recommended to launch this program via nds-hb-menu - though, as it currently doesn’t use argc/argv, it doesn’t really change much.

There are three binaries provided:

  • uxnds.nds - faster, but best used only with known-good software,
  • uxnds_debug.nds - slower, but provides debugging information, profiling information and performs CPU stack bounds checks.
  • uxnds_profile.nds - almost as fast as uxnds.nds - with debugging/profiling information, no CPU stack bounds checks.