diff --git a/README.md b/README.md index 3633d0c..7df069e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,21 @@ # ZBA (working title) -An in-progress Game Boy Advance Emulator written in Zig ⚡! +A Game Boy Advance Emulator written in Zig ⚡! + +## Scope +I'm hardly the first to write a Game Boy Advance Emulator nor will I be the last. This project isn't going to compete with the GOATs like +[mGBA](https://github.com/mgba-emu) or [NanoBoyAdvance](https://github.com/nba-emu/NanoBoyAdvance). There aren't any interesting +ideas either like in [DSHBA](https://github.com/DenSinH/DSHBA). + +This is a simple (read: incomplete) for-fun long-term project. I hope to get "mostly there", which to me means that I'm not missing any major hardware +features and the set of possible improvements would be in memory timing or in UI/UX. With respect to that goal, here's what's outstanding: + +### TODO +- [ ] Affine Sprites +- [ ] Windowing (see [this branch](https://git.musuka.dev/paoda/zba/src/branch/window)) +- [ ] Shaders (see [this branch](https://git.musuka.dev/paoda/zba/src/branch/opengl)) +- [ ] Audio Resampler (Having issues with SDL2's) +- [ ] Immediate Mode GUI +- [ ] Refactoring for easy-ish perf boosts ## Tests - [x] [jsmolka's GBA Test Collection](https://github.com/jsmolka/gba-tests) @@ -35,18 +51,20 @@ An in-progress Game Boy Advance Emulator written in Zig ⚡! * [ARM7TDMI Data Sheet](https://www.dca.fee.unicamp.br/cursos/EA871/references/ARM/ARM7TDMIDataSheet.pdf) ## Compiling -Most recently built on Zig [0.10.0-dev.3900+ab4b26d8a](https://github.com/ziglang/zig/tree/ab4b26d8a) +Most recently built on Zig [0.10.0-dev.4324+c23b3e6fd](https://github.com/ziglang/zig/tree/c23b3e6fd) ### Dependencies * [SDL.zig](https://github.com/MasterQ32/SDL.zig) * [SDL2](https://www.libsdl.org/download-2.0.php) * [zig-clap](https://github.com/Hejsil/zig-clap) * [known-folders](https://github.com/ziglibs/known-folders) -* [`bitfields.zig`](https://github.com/FlorenceOS/Florence/blob/aaa5a9e568197ad24780ec9adb421217530d4466/lib/util/bitfields.zig) +* [zig-toml](https://github.com/aeronavery/zig-toml) +* [zig-datetime](https://github.com/frmdstryr/zig-datetime) +* [`bitfields.zig`](https://github.com/FlorenceOS/Florence/blob/aaa5a9e568/lib/util/bitfields.zig) `bitfields.zig` from [FlorenceOS](https://github.com/FlorenceOS) is included under `lib/util/bitfield.zig`. -Use `git submodule update --init` from the project root to pull the git submodules `SDL.zig`, `zig-clap`, and `known-folders` +Use `git submodule update --init` from the project root to pull the git submodules `SDL.zig`, `zig-clap`, `known-folders`, `zig-toml` and `zig-datetime` Be sure to provide SDL2 using: * Linux: Your distro's package manager