emu6502

Crates.ioemu6502
lib.rsemu6502
version0.1.1
sourcesrc
created_at2022-10-23 03:29:24.320523
updated_at2022-10-23 17:45:42.842974
descriptionA 6502 emulator using the vm6502 backend.
homepage
repositoryhttps://github.com/GRAYgoose124/emu6502
max_upload_size
id695038
size78,742
Grayson (GRAYgoose124)

documentation

README

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")
Commit count: 66

cargo fmt