#backend #emulation #frontend #python-bindings #6502 #vm #vm6502

app emu6502

A 6502 emulator using the vm6502 backend

2 releases

0.1.1 Oct 23, 2022
0.1.0 Oct 23, 2022

#150 in Emulators

GPL-3.0-or-later

30KB
283 lines

emu6502

emu6502 is a full 6502 emulation, testing, and debugging suite.

It uses vm6502 as a backend. It also uses anima6502 to utilize python bindings for the vm.

How to use

# Clone the repo and enter it.
    > git clone git@github.com:GRAYgoose124/emu6502.git
    > cd emu6502/

Running & building the Rust frontend demo:

# To run the project as a regular binary:

    > cargo run --features=debug_vm

# Or to build it as a standalone binary and run:

    > cargo build --release
    > ./target/release/emu650

Anima Sub-crate

Anima provides Python bindings for the virtual machine from crate::vm6502.

Anima uses maturin build tooling.

It's recommended you first create a virtual env in the root of emu6502 before installing.

Setup

Build

    > cd 6502
    > maturin [develop|release]     # develoop automatically installs

    # To develop the Anima backend python
    > pip install -e .

    # Tests
    > maturin test

S/N: maturin develop will rewrite this pip installation, useful for python only changes.

Running the Demo Python Frontend

After building with maturin, you can simply run anima, or use it's bindings in python with anima._anima.

    > anima6502

Using Python bindings after installing

from anima._anima import Animator

animator = Animator()
animator.do_program(0x0000, "690101690101")

Dependencies

~4–11MB
~104K SLoC