Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mkeeter/raven
An implementation of the Uxn CPU and Varvara Ordinator
https://github.com/mkeeter/raven
assembly interpreter uxn varvara
Last synced: 3 months ago
JSON representation
An implementation of the Uxn CPU and Varvara Ordinator
- Host: GitHub
- URL: https://github.com/mkeeter/raven
- Owner: mkeeter
- License: mpl-2.0
- Created: 2024-05-13T20:02:14.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-07-23T12:19:47.000Z (6 months ago)
- Last Synced: 2024-10-13T00:55:56.819Z (3 months ago)
- Topics: assembly, interpreter, uxn, varvara
- Language: Rust
- Homepage: https://mattkeeter.com/projects/raven
- Size: 412 KB
- Stars: 35
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-uxn - Raven - Cross-platform emulator, written in Rust. (Emulators / Desktop)
README
**Raven** is an independent re-implementation of the
[Uxn CPU](https://wiki.xxiivv.com/site/uxn.html)
and
[Varvara Ordinator](https://wiki.xxiivv.com/site/varvara.html).For details, see [the project writeup](https://mattkeeter.com/projects/raven).
--------------------------------------------------------------------------------
The `raven-uxn` crate includes two implementations of the Uxn CPU:
- The safe interpreter is a `#[no_std]` crate written in 100% safe Rust, with a
single dependency (`zerocopy`). It is 10-20% faster than
the [reference implementation](https://git.sr.ht/~rabbits/uxn/tree/main/item/src)
for CPU-heavy workloads (e.g.
[`fib.tal`](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/examples/exercises/fib.tal),
and
[`mandelbrot.tal`](https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/examples/demos/mandelbrot.tal)
- The unsafe ("native") interpreter is written in `aarch64` assembly (with Rust
shims on either side), and runs 40-50% faster than the reference
implementation--------------------------------------------------------------------------------
The Varvara implementation (`raven-varvara`) includes all peripherals, and has
been tested on many of the
[flagship applications](https://wiki.xxiivv.com/site/roms.html)
(Left, Orca, Noodle, Potato).--------------------------------------------------------------------------------
The repository includes two applications built on these libraries:
- `raven-cli` is a command-line application to run console-based ROMs
- `raven-gui` is a full-fledged GUI, which runs both as a native application and
[on the web](https://mattkeeter.com/projects/raven/demo)--------------------------------------------------------------------------------
© 2024 Matthew Keeter
Released under the [Mozilla Public License 2.0](https://github.com/mkeeter/fidget/blob/main/LICENSE.txt)The repository includes ROMs compiled from the `uxnemu` reference
implementation, which are © Devine Lu Linvega and released under the MIT
license; see the [`roms/`](roms/) subfolder for details.