Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

RustBoyAdvance-NG is a Nintendo™ Game Boy Advance emulator and debugger, written in the rust programming language.

License

NotificationsYou must be signed in to change notification settings

michelhe/rustboyadvance-ng

Repository files navigation

licenseBuild

Nintendo GameBoy Advance ™ emulator and debugger, written in rust.

WebAssembly Demo:https://michelhe.github.io/rustboyadvance-ng/Deploy

Project Structure

  • core/ - Main emulator crate that ties everything together
  • arm7tdmi/ - Emulation of the Arm7tdmi processor.
  • platform/ - Constains executables & application built withrustboyadvance-core
    • platform/rustbodyadvance-wasm - Web emulator powered by WebAssembly
    • platform/rustbodyadvance-sdl2 - Desktop application built with sdl2
    • platform/rustbodyadvance-minifb - Desktop application built with minifb,not maintained.
    • platform/rustbodyadvance-jni - Java JNI binidngs for the emulator.
    • platform/android - A PoC Android application.

Progress

Pokemon Emerald

Emulation Todo:

  • CGB audio (4 wave generator channels)

Build and usage (Desktop Application)

To get started, you need to get astable rust toolchain of version Rust 1.51 or later,

Linux build dependencies

Install SDL2 dependencies

sudo apt-get -y install libsdl2-dev libsdl2-image-dev

Windows build dependencies

SDL2 runtime binaries are included in this repository, no extra setup needed.

macOS

Install SDL2 dependencies

brew install SDL2 SDL2_imageexport LIBRARY_PATH="$LIBRARY_PATH:/opt/homebrew/lib"

Build & Usage

You need to obtain a gba bios binary.Anopen source GBA bios is also available and supported.

Place the bios file in the repository root and name itgba_bios.bin (or alternatively use the-b command line option)

Build and run in release mode (performance is terrible in thedev profile)

$ cargo run --release -- path/to/rom

You can also drag&drop rom files or any zip files containing.gba files inside into the emulator window and a new rom will be loaded.

Key bindings

Currently the key bindings are not configureable.

GBA key bindings:

KeyboardGBA
UpUp
DownDown
LeftRight
RightRight
ZB Button
XA Button
ReturnStart
BackspaceSelect
AL
SR

Special key bindings

KeyFunction
Space (hold)Disable 60fps cap
F1Custom debugger (requires --features debugger)
F2Spawn gdbserver (experimetnal, requires --features gdb)
F5Save snapshot file
F9Load snapshot file

Android Application

The android project is placed insideplatform/android.To build it, open it with Android Studio.

You also need to set up rust to build android targets with NDK.

TODO - instructions

More Screenshots

Kirby - Nightmare in DreamlandDragon Ball - Legacy of Goku 2

Links and attribution

  • ARM7TDMI Technical Reference ManualTechnical Reference Manuals arefun.
  • GBATEKA single webpage written byno$gba developer Martin Korth.This page has pretty much everything. Seriously, it's the best.
  • TONCA comprehensive GBA dev guide that I used a-lot in order to understand the GBA system.Comes with neat demo roms that really helped me during development and debugging.
  • NanoboyAdvanceA GameBoy Advance emulator written in C++17 by a nice person called fleroviux.I've used this for debugging.
  • Eggvance gba-suiteIncredible test suite for the arm7tdmi interpreter that I'm using, written by Julian Smolka.

About

RustBoyAdvance-NG is a Nintendo™ Game Boy Advance emulator and debugger, written in the rust programming language.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp