Coder Social home page Coder Social logo

ismael-vc / uxn.jl Goto Github PK

View Code? Open in Web Editor NEW
11.0 1.0 1.0 1.77 MB

An assembler and emulator for the Varvara/Uxn stack-machine ported to Julia.

Home Page: https://git.sr.ht/~rabbits/uxn

License: MIT License

Julia 73.30% Shell 5.65% C 21.05%
uxn uxntal varvara 8-bit stack-machine virtual-machine sdl2 julia-language gamezero hundred-rabbits

uxn.jl's Introduction

Uxn

An assembler and emulator for the Uxn stack-machine, written in ANSI C.

Download binaries

Binaries are available for 64-bit x86 computers running Linux and Windows.

Build

Linux/OS X

To build the Uxn emulator, you must install SDL2 for your distro. If you are using a package manager:

sudo pacman -Sy sdl2             # Arch
sudo apt install libsdl2-dev     # Ubuntu
brew install sdl2                # OS X

Build the assembler and emulator by running the build.sh script. The assembler(uxnasm) and emulator(uxnemu) are created in the /bin folder.

./build.sh
	--debug # Add debug flags to compiler
	--format # Format source code

If you wish to build the emulator without graphics mode:

cc src/uxn.c -DNDEBUG -Os -g0 -s src/uxncli.c -o bin/uxncli

Plan 9

To build the Uxn emulator on 9front, via npe:

mk

If the build fails on 9front because of missing headers or functions, try again after rm -r /sys/include/npe.

Windows

Uxn can be built on Windows with MSYS2. Install by downloading from their website or with Chocolatey with choco install msys2. In the MSYS shell, type:

pacman -S git mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-SDL2
export PATH="${PATH}:/mingw64/bin"
git clone https://git.sr.ht/~rabbits/uxn
cd uxn
./build.sh

Getting Started

Emulator

To launch a .rom in the emulator, point the emulator to the target rom file:

bin/uxnemu bin/piano.rom

You can also use the emulator without graphics by using uxncli. You can find additional roms here, you can find prebuilt rom files here.

Assembler

The following command will create an Uxn-compatible rom from an uxntal file. Point the assembler to a .tal file, followed by and the rom name:

bin/uxnasm projects/examples/demos/life.tal bin/life.rom

I/O

You can send events from Uxn to another application, or another instance of uxn, with the Unix pipe. For a companion application that translates notes data into midi, see the shim.

uxnemu orca.rom | shim

Emulator Options

  • -s 1, -s 2 or -s 3 set zoom (default 1)

Emulator Controls

  • F1 toggle zoom
  • F2 toggle debug
  • F3 capture screen

Need a hand?

Find us in #uxn, on irc.esper.net

uxn.jl's People

Contributors

embyrdev avatar ftrvxmtrx avatar ismael-vc avatar neauoire avatar schraf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.