close
close

100R — uxn

The Uxn/Varvara ecosystem is one personal computer stack based on a small virtual machine that is the core of our software and allows us to run the same application on different systems.

Designed with an implementation-first mentality, it is tailored to our specific needs for hosting graphics applications, but is completely open and welcomes anyone to adopt it as a release target. Uxn is programmable in its own unique language, and distributing Uxn programs is akin to sharing game ROMs for classic console emulators. For more information, see our notes on uxn design.

Desktop versions

A screen of a Linux desktop with several open Uxn applications, such as a calculator, a clock, and Donsol

To run Uxn programs, you need an emulator that works on your system. Below you will find links to emulators for the major operating systems and for more obscure environments. Alternatively, that is also possible implementing your own by looking at the VM specifications, the IO specifications and the source code.

Linux Windows MacOS

If you need help getting started, join #uxn on irc.libera.chator disagreement. Once you’re equipped with an emulator, you can choose from these toys, games and tools, write your own programs, or try ours:

  • Oquonie, a bizarre universe
  • Donsol, a card dungeon crawler
  • On the left, our text editor
  • Noodle, a drawing program
  • Orca, the livecoding environment
  • Nasu, a sprite editor
  • Turye, a font editor
  • Catclock, a desktop clock
  • Dexe, a hex editor
  • Bicycle, an interactive REPL

The same Uxn ROM can be used on different desktop computers, on small electronics, modern handhelds and in the browser.

A Windows desktop screen with several open Uxn applications, such as a calculator, a clock, and a text editor

Our general cross-platform desktop emulator requires SDL2. Alternatively, you can download the regular Win32 or X11 version, but we won’t cover those in this guide. If you don’t have SDL2, you can get it as follows:

sudo pacman -Sy sdl2             # Arch
sudo apt install libsdl2-dev     # Ubuntu
sudo xbps-install SDL2-devel     # Void Linux
brew install sdl2                # OSX
doas pkg_add sdl2                # openBSD

Startup

A screen of a Linux desktop with the Uxn emulator launcher open, the launcher showing a list of Uxn ROMs

Double click uxnemu To start it, on some Linux distributions it may not be possible to do this. If for some reason uxnemu is not clickable, navigate to the downloaded files in the terminal and launch it from there. To start the ROM from the terminal, point the emulator to the target ROM file:

bin/uxnemu path/to/example.rom

There are many ways to start ROMs:

  • With the launcher, see example image above
  • By dragging .rom files into the emulator window
  • Through the terminal

Emulator control

F1
enable/disable zoom

F2
enable debugging

F3
take a screenshot

F4
load launcher.rom

Buttons

L-Ctrl
A

L-Alt
b

L shift
Select

At home
Start

Other systems

A photo of a pink Nintendo DS with the card game Donsol on the screen

Uxn can also run on classic consoles and old electronics. Currently there are ports (not all complete) for GBA, Nintendo DS, Playdate, DOS, PS Vita, Raspberri Pi Pico, Teletype, ESP32, Amiga, iOS, STM32, IBM PC and many more.

View the full list of emulators.

Need a hand?

The following resources are a good starting point:

You can also find us in #uxn on irc.libera.chat.

a screenshot of Noodle, a sketching tool. The canvas features a pixel image of Tima from the film Metropolis