Giter Club home page Giter Club logo

rust-nes-emulator's Introduction

rust-nes-emulator

Test Deploy Build for Windows

NES Emulator written in Rust

Super Mario Bros. Donkey Kong Mario Bros.
mario-gif donkey-gif mariobros-gif

Let's Play

rustc 1.39.0-nightly required (for embedded optimization...)

Desktop Application

High Performance.

desktop

$ cd desktop
$ cargo run --release

Build on Docker

$ docker-compose run build-desktop-release

WebAssembly Application

wasm

Playgound

Build locally

environment(for ubuntu)
$ sudo apt install nodejs npm
$ sudo npm install -g n
$ sudo n 10.15.1
$ cargo install wasm-pack
build
$ cd wasm
$ wasm-pack build --release
$ npm install
$ npm run build

Build on Docker

$ docker-compose run build-wasm-release
$ docker-compose run build-wasm-webpage

Embedded for stm32f769

embedded

STM32F769I-DISCO - STMicroelectronics

Work in Progress...

The following are derived repositories that are analyzing and implementing improvements to the performance issues.

kamiyaowl/rust-nes-emulator-embedded - GitHub

Build locally

environment(for ubuntu)
$ rustup install nightly
$ rustup run nightly rustup target add thumbv6m-none-eabi thumbv7m-none-eabi thumbv7em-none-eabi thumbv7em-none-eabihf
$ sudo apt install gcc-arm-none-eabi gcc g++
build
$ cd embedded
$ rustup run nightly cargo build --release
$ make clean && make

Build on Docker

$ docker-compose run build-embedded-lib
$ docker-compose run build-mbed

Build Artifacts

see Github Actions#Deploy.


Screenshot (Operation checked)

Super Mario Bros.

mario

Donkey Kong

donkey

Mario Bros.

mariobros

Ice Climber.

iceclimber

nestest (unofficial opcode)

nestest_extra

nestest (official opcode)

nestest_normal

Hello World

hello


Feature & Known Issue

  • CPU
    • Register
    • Interrupt
    • Official opcode
    • Unofficial opcode
  • Cassette(Mapper)
    • NROM(Mapper0)
    • UNROM
    • MMC1
    • MMC3
  • PPU
    • OAM DMA
    • BG
      • Nametable Mirroring
      • Scroll
        • Vertical Scroll Bug(#87)
    • Sprite
      • 8*8
      • 8*16
      • Sprite 0 hit bug(#40)
  • PAD
    • Joypad1
  • APU
    • Pulse Wave1
    • Pulse Wave2
    • Tri Wave
    • Noise
    • DMC
  • Emulation feature
    • Snapshot
    • Restore
    • ROM Selection Bootloader

Test ROMs

Thank you for the wonderful !

path from url
roms/other/hello.nes コンソールゲーム機研究所 http://hp.vector.co.jp/authors/VA042397/nes/sample.html
roms/nes-test-roms christopherpow/nes-test-roms - GitHub https://github.com/christopherpow/nes-test-roms

rust-nes-emulator's People

Contributors

kamiyaowl avatar snwnntyfv avatar

Watchers

James Cloos 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.