Nintendo™ Game Boy Advance emulator and debugger.
This repository has been archived on 2024-06-01. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Michel Heily c78a111ad4 Implement DMA, WIP
I have fought very hard against the rust ownership model,
In the end for DMA to play nice with my code, I had to resort to use
unsafe code for now..

The DMA implementation itself is not accurate to say the least, but will
have to do for now.

Tonc's dma_demo.gba plays but with a visual glitch.


Former-commit-id: 3b9cdcb2d09c78701290f2c48b77f9f3487e85c9
2019-11-09 19:44:55 +02:00
.vscode Update .launch.json 2019-07-04 01:36:41 +03:00
img Fix many bugs, refactor many things.. 2019-11-09 01:06:24 +02:00
src Implement DMA, WIP 2019-11-09 19:44:55 +02:00
.gitignore Initial commit 2019-06-24 16:36:20 +03:00
.travis.yml Fix typo in .travis.yml 2019-06-27 13:16:00 +03:00
Cargo.lock Add blending and mosaic SFX, and cleanup code. 2019-08-13 22:15:36 +03:00
Cargo.toml Fix many bugs, refactor many things.. 2019-11-09 01:06:24 +02:00
LICENSE Create LICENSE 2019-06-24 16:36:20 +03:00
README.md Fix many bugs, refactor many things.. 2019-11-09 01:06:24 +02:00

RustBoyAdvance-NG

Build Status

RustBoyAdvance-NG Nintendo GameBoy Advance emulator and debugger, written in the rust programming language.

Currently passing armwrestler tests, and displays some of TONC's Demos.

TONC bigmap.gba demo

Using the REPL

You need to have rust installed, and somehow legally obtain a gba bios binary.

$ cargo run -- debug

Debugger REPL Demo

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.
  • 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 emulator to search for a tough bug in mine.
  • Eggvance A GameBoy Advance emulator written in C++, with really useful CPU test roms.