acd0e4f338
The way cycles were counted up untill now was not accurate enough, I've avoided doing so because the instruction implementation looks bloated this way, but I've had problems with cycle accuracy with tonc's timer demo. This is not entirely correct though, and I'm 100% sure there are some mistakes, but works good enough for now. Former-commit-id: 748faaf99fe2f42925c0a2110192c6a01e5d27d4 |
||
---|---|---|
.vscode | ||
img | ||
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md |
RustBoyAdvance-NG
RustBoyAdvance-NG aims to be a Nintendo GameBoy Advance emulator and debugger, written in the rust programming language.
RustBoyAdvance-NG currently has implemented
- Dumbed-down ARM/THUMB mode disassembling
- Some ARM/THUMB instruction are implemented, but not all of them.
- A neat debugger REPL
But the way for full emulation is way far ahead, because most of the ARM/THUMB instructions are not yet implemented.
Using the REPL
You need to have rust installed, and somehow legally obtain a gba bios binary. Currently to test the debugger, any binary file containing arm mode instructions will do.
$ cargo run -- debug
Why is this project needed ?
It's actually not. There are quite a lot of GBA emulators, and even some written in rust. Actually, I couldn't find any game capable emulators written in rust.
I'm only doing this as a side project intended for learning rust.
This is my third take on this project. My first go at this was about 3 years ago, but I didn't like rust much at the time so it got abandoned. I tried to resurrect it a year ago but didn't have the time to get invested in a side-project, let alone learning rust.
I've grown to like rust a lot since then, so here we go again. You know what they say, third time's a charm.
Links
- 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.