├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Hundredrabbits 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Uxn [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | 3 | Curated list of awesome Uxn projects from the community. 4 | 5 | The [Uxn](https://100r.co/site/uxn.html) ecosystem is a personal computing playground, created to host small tools and games, programmable in its own unique assembly language. 6 | 7 | - [Awesome Uxn](https://github.com/hundredrabbits/awesome-uxn#awesome-uxn-) 8 | - [Documentation](https://github.com/hundredrabbits/awesome-uxn#documentation) 9 | - [Tutorials / Examples](https://github.com/hundredrabbits/awesome-uxn#tutorials) 10 | - [Emulators](https://github.com/hundredrabbits/awesome-uxn#emulators) 11 | - [Desktop](https://github.com/hundredrabbits/awesome-uxn#desktop) 12 | - [Other Systems](https://github.com/hundredrabbits/awesome-uxn#other-systems) 13 | - [Misc](https://github.com/hundredrabbits/awesome-uxn#misc) 14 | - [Simulator](https://github.com/hundredrabbits/awesome-uxn#simulators) 15 | - [Applications](https://github.com/hundredrabbits/awesome-uxn#applications) 16 | - [Creative](https://github.com/hundredrabbits/awesome-uxn#creative) 17 | - [Utilities](https://github.com/hundredrabbits/awesome-uxn#utilities) 18 | - [Games](https://github.com/hundredrabbits/awesome-uxn#games) 19 | - [Networking](https://github.com/hundredrabbits/awesome-uxn#networking) 20 | - [Operating Systems / REPLs](https://github.com/hundredrabbits/awesome-uxn#operating--systemsrepls) 21 | - [Demos](https://github.com/hundredrabbits/awesome-uxn#demos) 22 | - [Libraries](https://github.com/hundredrabbits/awesome-uxn#libraries) 23 | - [Terminal / Command-Line](https://github.com/hundredrabbits/awesome-uxn#terminal--command-line) 24 | - [Development Tools](https://github.com/hundredrabbits/awesome-uxn#development-tools) 25 | - [IDEs](https://github.com/hundredrabbits/awesome-uxn#ides) 26 | - [Assemblers, Compilers & Disassemblers](https://github.com/hundredrabbits/awesome-uxn#assemblers-compilers--disassemblers) 27 | - [Uxntal Language Support](https://github.com/hundredrabbits/awesome-uxn#uxntal-language-support) 28 | - [Metadevelopment Tools](https://github.com/hundredrabbits/awesome-uxn#metadevelopment-tools) 29 | - [Testing](https://github.com/hundredrabbits/awesome-uxn#testing) 30 | - [Benchmarking](https://github.com/hundredrabbits/awesome-uxn#benchmarking) 31 | - [Community](https://github.com/hundredrabbits/awesome-uxn#community) 32 | 33 | ## Documentation 34 | 35 | - [Varvara](https://wiki.xxiivv.com/site/varvara.html) - Technical documentation of the Varvara computer and a list of all its devices. 36 | - [Uxntal](https://wiki.xxiivv.com/site/uxntal.html) - Uxntal language reference manual. 37 | - [Uxntal opcode manual](https://wiki.xxiivv.com/site/uxntal_reference.html) - List of Uxntal opcodes and their effects. 38 | - [Sprite format](https://wiki.xxiivv.com/site/chr_format.html) - `.chr` file format description. 39 | - [Font format](https://wiki.xxiivv.com/site/ufx_format.html) - `.ufx` file format description. 40 | - [Uxntal Cheatsheet](https://github.com/weeble/uxn-cheatsheet) - Opcode Cheatsheet. 41 | 42 | ## Tutorials / Examples 43 | 44 | - [Uxn Tutorial by Compudanzas](https://compudanzas.net/uxn_tutorial.html) - Beginner-friendly tutorial guide which covers the basics of Uxn programming. 45 | - [Uxn Tutorial by Compudanzas(video)](https://www.youtube.com/watch?v=LrNuq_JgaOA) - Beginner-friendly video workshop which covers the basics of Uxn programming. 46 | - [Learn Uxntal in Y minutes](https://learnxinyminutes.com/docs/uxntal/) - Quick Uxntal guide. 47 | - [Uxn implementation guide](https://github.com/DeltaF1/uxn-impl-guide) - Notes on how to implement the Uxn/Varvara virtual machine specification. 48 | - [macOS installation](https://eli.li/how-to-install-uxn-on-macos) 49 | - [Windows installation](https://itch.io/t/1605965/a-quick-guide-to-running-this-software) 50 | - [Android installation](https://llllllll.co/t/uxn-virtual-computer/46103/253) - Guide for running Uxn on the Android operating system through Termux. 51 | - [HaikuOS](https://discuss.haiku-os.org/t/uxn-ecosystem-on-haiku/12209) - Forum thread for the Haiku operating system. 52 | - [RosettaCode](https://rosettacode.org/wiki/Category:Uxntal) - Uxntal programming chrestomathy. See also: [tasks not implemented yet](https://rosettacode.org/wiki/Tasks_not_implemented_in_Uxntal). 53 | 54 | ## Emulators 55 | 56 | ### Desktop 57 | 58 | - [Uxn](https://git.sr.ht/~rabbits/uxn) - Cross-platform emulator and assembler, written in C(SDL2). 59 | - [Uxn32](https://github.com/randrew/uxn32) - Windows emulator, written in C. 60 | - [Uxn11](https://git.sr.ht/~rabbits/uxn11) - Linux emulator, written in C. 61 | - [Raven](https://github.com/mkeeter/raven) - Cross-platform emulator, written in Rust. 62 | - [UxnFb](https://git.badd10de.dev/uxnfb) - Linux framebuffer emulator, written in C. 63 | - [UxnRPI](https://git.badd10de.dev/uxnrpi) - RaspberryPi framebuffer emulator, written in C. (no input support) 64 | - [UxnAmiga](https://code.mathr.co.uk/uxn-amiga) - AmigaOS emulator, written in C. (no keyboard or joystick input, no audio support) 65 | - [UxnEssence](https://gitlab.com/nakst/essence/-/tree/master/ports/uxn) - [Essence](https://gitlab.com/nakst/essence) emulator, written in C. 66 | - [UxnJulia](https://github.com/Ismael-VC/Varvara.jl) - Cross-platform emulator and assembler, written in Julia. 67 | - [UxnLua](https://github.com/DeltaF1/uxn-lua) - Cross-platform emulator, written in Lua(Love2d). 68 | - [Uxn38](http://zzo38computer.org/fossil/uxn.ui) - Emulator written in C with SDL1. 69 | - [Nux](https://github.com/nf/nux) - Emulator written in Go. 70 | - [uxn-rs](https://github.com/Liorst4/uxn-rs) - Emulator written in Rust. 71 | - [ruxn](https://codeberg.org/mra/ruxn) - A Uxn library written in Rust, intended to make defining new Uxn-based systems easy. 72 | - [zuxn](https://github.com/chmod222/zuxn) - A Uxn library, emulator and assembler written in Zig. 73 | - [uxnfloppy](https://git.sr.ht/~gustav/uxnfloppy) - Bootable emulator for BIOS, written in 16bit x86 assembly. (no keyboard/gamepad/audio/file support) 74 | - [buxn](https://github.com/bullno1/buxn) - Multi platform emulator, written in C. 75 | - [uxn9](https://github.com/krzysckh/uxn9) - Native emulator for 9front. (no audio support) 76 | 77 | ### Other systems 78 | 79 | - [FPGA](https://github.com/tsalvo/uxn-fpga) - Nearly Complete. 80 | - [RPi](https://github.com/ar-nelson/uxnpi) - Nearly Complete. 81 | - [Game Boy Advance](https://git.badd10de.dev/uxngba) - Complete. 82 | - [Nintendo 64](https://git.badd10de.dev/uxn64) - Complete. 83 | - [Nintendo DS](https://github.com/asiekierka/uxnds) - Complete. 84 | - [Playdate](https://git.sr.ht/~rabbits/uxn-playdate) - Complete. 85 | - [Nook eReader](https://git.badd10de.dev/uxnnst/) - Complete. 86 | - [Nokia N900](https://git.sr.ht/~foura/uxn900) - Partial. 87 | - [Game Boy](https://github.com/tbsp/uxngb) - Experimental. 88 | - [DOS](https://git.sr.ht/~rabbits/uxn-vga) - Implemented: Core, Screen, Mouse, Controller. 89 | - [Teletype](https://github.com/csboling/teluxn) - Incomplete. 90 | - [ESP32](https://github.com/max22-/uxn-esp32) - Incomplete. 91 | - [iOS](https://github.com/paiv/uxn-ios) - Nearly Complete (missing midi and controller). 92 | - [iOS](https://github.com/kylestew/UxniOS) - Incomplete. 93 | - [STM32](https://github.com/kylestew/armuxn) - Incomplete. 94 | - [STM32duino](https://github.com/cassvs/arduxno-demo) - Incomplete. 95 | - [IBM PC](https://github.com/cr1901/pcuxn) - Incomplete. 96 | - [PlayStation Vita](https://github.com/ivodopiviz/uxnvita) - Incomplete. 97 | - [PlayStation Portable](https://codeberg.org/tbsp/VarvaraPSP) - Nearly Complete (missing keyboard). 98 | - [Atari ST](https://framagit.org/Bartitsu59/stuxn) - Incomplete. 99 | - [Android](https://github.com/bullno1/buxn) - Complete. 100 | - [Pebble OS](https://git.sr.ht/~angelwood/uxn-pebble) - Experimental. 101 | 102 | ### Misc 103 | 104 | - [Libretro port](https://github.com/kivutar/uxn) - [Libretro](https://www.libretro.com/) emulation layer. 105 | - [LearnUxn](https://git.sr.ht/~metasyn/learn-uxn/) - Web assembler and emulator. 106 | - [Grid](https://tildegit.org/nihilazo/grid-uxn) - Incomplete. 107 | - [Rockbox](https://tilde.town/~nihilazo/varvara_rockbox.html) - Implemented: Core, Screen. 108 | - [Logisim](https://github.com/DeltaF1/uxn-logisim) - Incomplete. 109 | - [Adafruit PyBadge](https://git.sr.ht/~poyu/uxn-pybadge) - Implemented: Core, Console, Screen, Controller. 110 | - [Webuxn](https://github.com/aduros/webuxn) - Lightweight port of the Uxn virtual machine to the web via WebAssembly. 111 | - [auxn](https://github.com/saucesaft/auxn) - uxn running inside of an audio plugin (standalone mode included) 112 | - [UxnWasm](https://github.com/remko/uxn.wasm) - WebAssembly implementation of the Uxn core. 113 | 114 | ### Simulators 115 | 116 | - [uxn.py](https://github.com/max22-/uxnemu.py) - Python implementation of the VM. 117 | - [uxn.js](https://git.sr.ht/~rabbits/uxn5) - Javascript implementation of the VM. 118 | 119 | ## Applications 120 | 121 | ### Creative 122 | 123 | - [Left](https://wiki.xxiivv.com/site/left.html) - Graphical plain-text editor with proportional fonts and Uxntal syntax highlight. 124 | - [Nasu](https://wiki.xxiivv.com/site/nasu.html) - Spritesheet editor. 125 | - [Noodle](https://wiki.xxiivv.com/site/noodle.html) - Drawing tool. 126 | - [Turye](https://wiki.xxiivv.com/site/turye.html) - Font editor. 127 | - [Orca](https://wiki.xxiivv.com/site/orca.html) - Livecoding IDE. 128 | - [uxn-harp](https://github.com/lynn/uxn-harp) - Chordal musical toy. 129 | 130 | ### Utilities 131 | 132 | - [Dexe](https://wiki.xxiivv.com/site/dexe.html) - Graphical hex editor. 133 | - [Calc](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/software/calc.tal) - Graphical hexadecimal calculator. 134 | - [Clock](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/examples/devices/datetime.tal) - Graphical clock. 135 | - [Starling](https://git.sr.ht/~cabrendan/starling) - Spreadsheet application. 136 | - [Beetbug](https://git.sr.ht/~rabbits/beetbug) - Step debugger. 137 | 138 | ### Games 139 | 140 | - [Niju](https://hundredrabbits.itch.io/niju) - Hiragana and katakana learning game. 141 | - [Donsol](https://hundredrabbits.itch.io/donsol) - Card game about exploring a dungeon made of a standard 54 poker card set. 142 | - [Flappy](https://github.com/keijiro/uxn-sketches/blob/main/flappy.tal) - Implementation of a Flappy Bird-like game. 143 | - [Pong](https://compudanzas.net/uxn_tutorial_day_6.html) - Recreation of the classic Pong game. 144 | - [Snake](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/examples/demos/snake.tal) - Classic Snake game implementation. 145 | - [Cat Cubes](https://pup.town/catcubes.html) - Puzzle game about matching and clearing tiles from a board. 146 | - [Minesweeper](https://codeberg.org/yorshex/minesweeper-uxn) - Minesweeper port for Varvara. 147 | - [XO](https://garden.bouncepaw.com/hypha/xo.tal) - TicTacToe for Varvara. 148 | - [Fourtette](https://github.com/nf/fourtette) - Tetris for Varvara. 149 | - [Shanghai](https://github.com/lynn/shanghai) - Mahjong Solitaire for Varvara. 150 | - [Pinkie Run](https://github.com/Jaezmien/pinkie-run) - Pony-themed Endless Runner for Varvara. 151 | - [oneko-uxn](https://github.com/hikari-no-yume/oneko-uxn) - A version of “Neko”, the classic desktop pet cat, with several characters. 152 | - [Lights Out](https://github.com/origedit/lights-out) - Puzzle game for Varvara. 153 | - [Worm](https://github.com/origedit/worm) - Dune themed snake game for Varvara. 154 | - [Kodiak](https://git.phial.org/d6/kodiak) - Klondike solitaire with music and bears. 155 | - [Tile Garden](https://kylep.itch.io/tile-garden) - Idle game where you place tiles to make plants. 156 | - [Polycat](https://git.sr.ht/~rabbits/polycat) - Platformer game, written in Uxntal for Varvara. 157 | 158 | ### Networking 159 | 160 | - [Xrxs](https://nilfm.cc/git/xrxs/about/) - Experimental game server using the Plan 9 protocol 9p. 161 | 162 | ### Operating systems/REPLs 163 | 164 | - [UF](http://www.call-with-current-continuation.org/uf/uf.html) - A traditional Forth system for Varvara. 165 | - [CollapseOS](https://github.com/schierlm/collapseos-uxn) - Forth-based [operating system](http://collapseos.org/) for Varvara. 166 | - [Uxnfth](https://git.sr.ht/~binarycat/uxnfth) - Uxn-native forth. 167 | - [PotatoOS](http://wiki.xxiivv.com/site/potato.html) - A little desktop environment. 168 | - [Varaboy](https://github.com/tbsp/varaboy) - Gameboy Emulator. 169 | - [TalOS](https://github.com/UxnTalOS/talos) - A small Uxntal REPL and System Monitor/OS written in Uxntal. 170 | 171 | ### Demos 172 | 173 | - [Bad Apple!! Uxn](http://167.235.19.20/bad-apple-uxn/) - An arrangement of the Bad Apple!! music video. 174 | - [tiles](https://codeberg.org/kira/uxn-demos/src/branch/master/tiles.tal) - A scrolling tile-map renderer. 175 | - [svitlyna](https://github.com/gardenappl/svitlyna) - A "full-color" image viewer. 176 | 177 | ### Libraries 178 | 179 | - [math32](https://git.phial.org/d6/nxu/raw/branch/main/math32.tal) - Unsigned 32-bit integers 180 | - [regex](https://git.phial.org/d6/nxu/raw/branch/main/regex.tal) - Regex parsing and matching ([repl](https://git.phial.org/d6/nxu/raw/branch/main/repl-regex.tal)) 181 | - [fix16](https://git.phial.org/d6/nxu/raw/branch/main/fix16.tal) - Signed 16-bit fixed point numbers (8.8) 182 | - [alloc](https://git.phial.org/d6/nxu/raw/branch/main/alloc.tal) - Arena-based memory allocator 183 | - [arg](https://git.phial.org/d6/nxu/raw/branch/main/arg.tal) - Command-line argument parsing ([demo](https://git.phial.org/d6/nxu/raw/branch/main/arg-demo.tal)) 184 | 185 | ### Terminal / Command-line 186 | 187 | - [femto](https://git.phial.org/d6/nxu/raw/branch/main/femto.tal) - nano-like text editor ([about](https://git.phial.org/d6/nxu/raw/branch/main/femto.txt) / [launcher](https://git.phial.org/d6/nxu/raw/branch/main/femto) / [rom](http://plastic-idolatry.com/erik/nxu/femto.rom)) 188 | - [grep](https://git.phial.org/d6/nxu/raw/branch/main/grep.tal) - minimal grep-like tool (uses regex.tal) 189 | 190 | ## Development tools 191 | 192 | ### IDEs 193 | 194 | - [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. 195 | 196 | ### Assemblers, compilers & disassemblers 197 | 198 | - [Uxnasm](https://git.sr.ht/~rabbits/uxn/tree/main/item/src/uxnasm.c) - The original implementation of the Uxntal assembler in about 400 lines of ANSI C. 199 | - [Asma](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/software/asma.tal) - Uxntal assembler, written in Uxntal. 200 | - [Drifblim](https://wiki.xxiivv.com/site/drifblim.html) - Uxntal Assembler, written in Uxntal. 201 | - [Uxncle](https://github.com/CPunch/Uxncle) - Compiler for a small subset of C to Uxn bytecode. 202 | - [Pyuxncle](https://github.com/CPunch/Pyuxncle) - Python implementation of Uxncle. 203 | - [Conch](https://github.com/Armael/conch) - Compiler for a C-like language with Lisp-like syntax to Uxn bytecode. 204 | - [Uxnbruteforce](https://github.com/max22-/uxnbruteforce) - Tool for optimizing little pieces of Uxntal code. 205 | - [Uxnlin](https://git.sr.ht/~rabbits/uxnlin) - Linter for Uxntal. 206 | - [Uxnbot](https://git.sr.ht/~alderwick/uxnbot) - IRC bot for assembling and running small Uxntal snippets. 207 | - [Pyuxntaldisasm](https://github.com/DeltaF1/pyuxntaldisasm) - Very basic disassembler for Uxn ROMs. 208 | - [Uxnasm-js](https://github.com/rafapaezbas/uxnasm-js) - Uxntal assembler written in JavaScript. 209 | - [Uxn-disassembler](https://github.com/Liorst4/uxn-disassembler) - A rom disassembler writen in Uxntal 210 | - [Dotal](https://github.com/HParker/dotal) - A small language designed to compile to the Uxn virtual machine. 211 | - [lunas](https://github.com/ThaCuber/lunas) - An Uxntal assembler written in Lua. 212 | - [chibicc-uxn](https://github.com/lynn/chibicc) - A C compiler for Uxn, written in C. 213 | - [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/). 214 | - [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). 215 | - [Finwë](https://github.com/kiedtl/finwe) - A high-level, stack-based language that compiles to Uxn bytecode. 216 | - [Yaku](https://codeberg.org/wimvanderbauwhede/yaku) - An Uxntal assembler and interpreter. 217 | - [B](https://github.com/tsoding/b) - Compiler for the B Programming Language implemented in Crust, has support for uxn target. 218 | - [niënor](https://github.com/krzysckh/nienor) - Optimizing compiler for a Lisp dialect. 219 | - [SUPERFLY](https://codeberg.org/Bunny351/superfly) - Concatenative array language. 220 | - [buxn-asm](https://github.com/bullno1/buxn) - Uxntal assembler with a type checker. 221 | - [buxn-dbg](https://github.com/bullno1/buxn-dbg) - Uxntal step debugger. 222 | - [Callisto](https://github.com/callisto-lang/compiler) - Low level compiled programming language with a uxn backend 223 | 224 | ### Uxntal language support 225 | 226 | - [Atom language package](https://atom.io/packages/language-uxntal) 227 | - [Emacs mode](https://github.com/non/uxntal-mode) ([alt 1](https://github.com/xaderfos/uxntal-mode) [alt 2](https://github.com/rafapaezbas/uxntal-mode)) 228 | - [Kate syntax](https://github.com/pfych/uxntal-kate-syntax) 229 | - [Kakoune plugin](https://git.sr.ht/~athorp96/uxntal.kak) 230 | - [Lite XL plugin](https://raw.githubusercontent.com/lite-xl/lite-xl-plugins/master/plugins/language_tal.lua) 231 | - [Micro syntax](https://hacklab.nilfm.cc/dotfiles/blob/main/micro/syntax/uxn.yaml) 232 | - [Nano syntax](https://git.phial.org/d6/nxu/src/branch/main/tal.nanorc) ([alt 1](https://codeberg.org/sejo/uxntal.nanorc) [alt 2](https://git.sr.ht/~cassvs/uxntal-nano)) 233 | - [Sublime syntax](https://git.sr.ht/~rabbits/uxn/tree/main/item/etc/syntax-highlight/tal.sublime-syntax) 234 | - [Vim plugin](https://github.com/karolbelina/uxntal.vim) 235 | - [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=karolbelina.uxntal) 236 | - [Language server](https://github.com/bullno1/buxn-ls) 237 | 238 | ## Metadevelopment tools 239 | 240 | ### Testing 241 | - Reference test suite included in the `uxn-utils` repository: [opctest](https://git.sr.ht/~rabbits/uxn-utils/blob/main/cli/opctest/opctest.tal). 242 | - Reference rom to test the screen device compliance: [screen.tal](https://git.sr.ht/~rabbits/uxn/blob/main/projects/examples/devices/screen.tal) 243 | - Others 244 | * [Uxn-instruction-tests](https://github.com/DeltaF1/uxn-instruction-tests) - Test suite for the Uxn CPU instruction set. 245 | 246 | ### Benchmarking 247 | 248 | - [Bunnymark](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/examples/demos/bunnymark.tal) - Render performance benchmark. 249 | 250 | ## Community 251 | 252 | - [Lines](https://llllllll.co/t/uxn-virtual-computer/46103) 253 | - [#uxn on irc.libera.net](https://web.libera.chat/gamja/?channels=%23uxn) 254 | - [#uxn on Merveilles](https://merveilles.town/tags/uxn) 255 | - [Roms](https://github.com/century/roms) 256 | --------------------------------------------------------------------------------