So you're interested in find a Varvara emulator for your system.
## Download an emulator
First, based on what you're trying to do, you can pick one of these emulators:
- **Recommended**: [uxn2](https://git.sr.ht/~rabbits/uxn2), a portable graphical emulator, written in SDL2.
- [uxn11](https://git.sr.ht/~rabbits/uxn11), a partial graphical emulator, ideal for productivity.
- [uxncli](https://git.sr.ht/~rabbits/uxncli), a terminal emulator, ideal for running cli tools.
- [uxnmin](https://git.sr.ht/~rabbits/uxnmin), a minimal terminal emulator, ideal for [bootstrapping](https://git.sr.ht/~rabbits/drifblim#bootstrap).
## Use the emulator
Next, to use an emulator, open a terminal window and launch it like this:
```sh
uxnemu program.rom argument1 argument2
```
## Write programs
Lastly, to turn a source file into a rom you need a compiler, like [Drifblim](https://git.sr.ht/~rabbits/drifblim)([Download](https://rabbits.srht.site/drifblim/drifblim.rom)):
```sh
uxnemu drifblim.rom source.tal program.rom
```
## Go Further
The following tools are roms designed to help writing programs.
## Tutorials
- [Uxn Tutorial by Compudanzas](https://compudanzas.net/uxn_tutorial.html) - Beginner-friendly tutorial guide which covers the basics of Uxn programming.
- [Uxn Tutorial by Compudanzas(video)](https://www.youtube.com/watch?v=LrNuq_JgaOA) - Beginner-friendly video workshop which covers the basics of Uxn programming.
- [Learn Uxntal in Y minutes](https://learnxinyminutes.com/docs/uxntal/) - Quick Uxntal guide.
- [Uxn implementation guide](https://github.com/DeltaF1/uxn-impl-guide) - Notes on how to implement the Uxn/Varvara virtual machine specification.
- [UxnFb](https://git.badd10de.dev/uxnfb) - Linux framebuffer emulator, written in C.
- [UxnRPI](https://git.badd10de.dev/uxnrpi) - RaspberryPi framebuffer emulator, written in C. (no input support)
- [UxnAmiga](https://code.mathr.co.uk/uxn-amiga) - AmigaOS emulator, written in C. (no keyboard or joystick input, no audio support)
- [UxnEssence](https://gitlab.com/nakst/essence/-/tree/master/ports/uxn) - [Essence](https://gitlab.com/nakst/essence) emulator, written in C.
- [UxnJulia](https://github.com/Ismael-VC/Varvara.jl) - Cross-platform emulator and assembler, written in Julia.
- [UxnLua](https://github.com/DeltaF1/uxn-lua) - Cross-platform emulator, written in Lua(Love2d).
- [uxn-rs](https://github.com/Liorst4/uxn-rs) - Emulator written in Rust.
- [ruxn](https://codeberg.org/mra/ruxn) - A Uxn library written in Rust, intended to make defining new Uxn-based systems easy.
- [zuxn](https://github.com/chmod222/zuxn) - A Uxn library, emulator and assembler written in Zig.
- [uxnfloppy](https://git.sr.ht/~gustav/uxnfloppy) - Bootable emulator for BIOS, written in 16bit x86 assembly. (no keyboard/gamepad/audio/file support)
- [buxn](https://github.com/bullno1/buxn) - Multi platform emulator, written in C.
- [uxn.py](https://github.com/max22-/uxnemu.py) - Python implementation of the VM.
- [Learn-uxn](https://metasyn.srht.site/learn-uxn/) - A web-based development environment with a text editor and up-to-date versions of Uxnasm and Uxnemu.
### Assemblers, compilers & disassemblers
- [Drifblim](https://wiki.xxiivv.com/site/drifblim.html) - Uxntal Assembler, written in Uxntal.
- [uxndis](https://git.sr.ht/~rabbits/uxndis), a disassembler for rom and sym files.
- [Uxncle](https://github.com/CPunch/Uxncle) - Compiler for a small subset of C to Uxn bytecode.
- [Pyuxncle](https://github.com/CPunch/Pyuxncle) - Python implementation of Uxncle.
- [Conch](https://github.com/Armael/conch) - Compiler for a C-like language with Lisp-like syntax to Uxn bytecode.
- [Uxnbruteforce](https://github.com/max22-/uxnbruteforce) - Tool for optimizing little pieces of Uxntal code.
- [Uxnlin](https://git.sr.ht/~rabbits/uxnlin) - Linter for Uxntal.
- [Uxnbot](https://git.sr.ht/~alderwick/uxnbot) - IRC bot for assembling and running small Uxntal snippets.
- [Pyuxntaldisasm](https://github.com/DeltaF1/pyuxntaldisasm) - Very basic disassembler for Uxn ROMs.
- [Uxnasm-js](https://github.com/rafapaezbas/uxnasm-js) - Uxntal assembler written in JavaScript.
- [Uxn-disassembler](https://github.com/Liorst4/uxn-disassembler) - A rom disassembler writen in Uxntal
- [Dotal](https://github.com/HParker/dotal) - A small language designed to compile to the Uxn virtual machine.
- [lunas](https://github.com/ThaCuber/lunas) - An Uxntal assembler written in Lua.
- [chibicc-uxn](https://github.com/lynn/chibicc) - A C compiler for Uxn, written in C.
- [nito](https://codeberg.org/wimvanderbauwhede/nito) - A compiler from Uxntal to C, written in Raku. See also the [blog post](https://limited.systems/articles/uxntal-to-C/).
- [funktal](https://codeberg.org/wimvanderbauwhede/funktal) - A small, statically typed, functional programming language that compiles to Uxntal. The compiler is written in Fortran. See also the [blog post](https://limited.systems/articles/funktal).
- [Finwë](https://github.com/kiedtl/finwe) - A high-level, stack-based language that compiles to Uxn bytecode.
- [Yaku](https://codeberg.org/wimvanderbauwhede/yaku) - An Uxntal assembler and interpreter.
- [B](https://github.com/tsoding/b) - Compiler for the B Programming Language implemented in Crust, has support for uxn target.
- [niënor](https://github.com/krzysckh/nienor) - Optimizing compiler for a Lisp dialect.
- [#uxn on irc.libera.net](https://web.libera.chat/gamja/?channels=%23uxn)
- [#uxn on Merveilles](https://merveilles.town/tags/uxn)
## Contributing
Submit patches using [`git send-email`](https://git-send-email.io/) to the [~rabbits/public-inbox mailing list](https://lists.sr.ht/~rabbits/public-inbox).
Can't find what you're looking for? come on #irc on irc.libera.chat