内容简介:Nintendo GameBoy Advance ™ emulator and debugger, written in rust.
RustBoyAdvance-NG
Nintendo GameBoy Advance ™ emulator and debugger, written in rust.
WebAssembly Demo: https://michelhe.github.io/rustboyadvance-ng/
Project Structure
-
rustboyadvance-core/src
- Main library crate -
bindings/
- Bindings to other languages. Currently only java binidings through JNI. -
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/android
- A PoC Android application.
-
Progress
Emulation Todo:
- CGB audio (4 wave generator channels)
Build and usage (Desktop Application)
To get started, you need to get a stable rust toolchain .
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.
Build & Usage
You need to obtain a gba bios binary. An open source GBA bios is also available and supported.
Place the bios file in the repository root and name it gba_bios.bin
(or alternatively use the -b
command line option)
Build and run in release mode (performance is terrible in the dev
profile)
$ cargo run --release -p rustboyadvance-sdl2 -- 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:
Keyboard | GBA |
---|---|
Up | Up |
Down | Down |
Left | Right |
Right | Right |
Z | B Button |
X | A Button |
Return | Start |
Backspace | Select |
A | L |
S | R |
Special key bindings
Key | Function |
---|---|
Space (hold) | Disable 60fps cap |
F1 | Custom debugger (requires --features debugger) |
F2 | Spawn gdbserver (experimetnal, requires --features gdb) |
F5 | Save snapshot file |
F9 | Load snapshot file |
Android Application
The android project is placed inside platform/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
Links and attribution
- ARM7TDMI Technical Reference Manual Technical Reference Manuals are fun .
- GBATEK A single webpage written by no$gba developer Martin Korth. This page has pretty much everything. Seriously, it's the best.
- TONC A 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.
- NanoboyAdvance A GameBoy Advance emulator written in C++17 by a nice person called fleroviux. I've used this for debugging.
- Eggvance gba-suite Incredible test suite for the arm7tdmi interpreter that I'm using, written by Julian Smolka.
以上所述就是小编给大家介绍的《RustBoyAdvance-NG: GameBoy Advance emulator and debugger, written in rust》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google's PageRank and Beyond
Amy N. Langville、Carl D. Meyer / Princeton University Press / 2006-7-23 / USD 57.50
Why doesn't your home page appear on the first page of search results, even when you query your own name? How do other web pages always appear at the top? What creates these powerful rankings? And how......一起来看看 《Google's PageRank and Beyond》 这本书的介绍吧!