• Stars
    star
    206
  • Rank 190,504 (Top 4 %)
  • Language
    C
  • License
    MIT License
  • Created over 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

NES Emulator written in Rust

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

More Repositories

1

rv32i-sim

RISC-V Software Simulation
C++
20
star
2

rust-nes-emulator-embedded

NES Emulator written in Rust embedded in STM32. Optimized for embedded.
C
16
star
3

wfh_monitor

Environment Monitor
C++
10
star
4

laundry-ocr

Observational camera
JavaScript
7
star
5

ikanopu

A bot that makes private match voice chat more fun
C#
5
star
6

chisel-practice

Brainfxxk Processor written Scala(Chisel)
Verilog
5
star
7

splatnet2statink-docker

splatnet2statink dockerized.
Python
5
star
8

pynq_dsp_hw

PYNQ-Z2 Audio Digital Signal Processing
Coq
5
star
9

riscv-gnu-toolchain-docker

GNU toolchain for RISC-V, including GCC Dockerize
Dockerfile
5
star
10

rust_lib_for_arduino_example

A minimal sample of running Rust on an Arduino.
Shell
5
star
11

mnist-cnn-flask-docker

Python+Flask+Tensorflow.Kerasの手書き文字認識アプリ
Python
3
star
12

splat-scene-dataset

Splatoon2プレイ中の画像セット。適当に撮った動画のサムネなので、偏りがあるかも
2
star
13

start-rust-stm32f723

STM32F723E-DISCO
GDB
2
star
14

arty-chisel-brainfxxk

BrainFxxk Processor on Arty A7
Verilog
2
star
15

animation-png-viewer

Animated PNG Viewer written by GO.
Go
2
star
16

vscode-number-converter

vscode上でdec,hex,bin変換とかinc,decしたい
TypeScript
2
star
17

mandelbrot-go

go practice
Go
2
star
18

vscode-eval

VSCode上でJavascriptを実行してかんたんな計算がしたい
JavaScript
1
star
19

splat-scene-detect

Splatoon2のシーン分析
Jupyter Notebook
1
star
20

c2bf

bf converter
Scala
1
star
21

ofuton

おふとん.com
HTML
1
star
22

pingpong

適当な死活監視
Python
1
star
23

splatnet2statink-docker-logs-to-slack

https://github.com/kamiyaowl/splatnet2statink-docker をGKEにデプロイした際のstackdriver→Pub/Subを経由してWebhookを叩く
JavaScript
1
star
24

tiny_sound_card

Arduino Pro Mini同等のボードで、mp3を再生したりできるモジュール
1
star
25

ImageToHex

メモリ液晶LS027B4DH01専用画像配列変換
C#
1
star
26

pynq_dsp_hls

Digital Signal Processing for PYNQ-Z2
VHDL
1
star