Commit Graph

596 Commits

Author SHA1 Message Date
Rekai Nyangadzayi Musuka 2629d15e2f feat: don't require path to ROM in CLI 2023-03-10 21:16:06 -06:00
Rekai Nyangadzayi Musuka c7b62d3202 chore: dynamically update window title on ROM replace 2023-03-10 20:41:49 -06:00
Rekai Nyangadzayi Musuka 5adbc354d6 feat: replace Gamepak 2023-03-10 02:50:31 -06:00
Rekai Nyangadzayi Musuka f8477714ae feat: implement resetting 2023-03-10 02:28:03 -06:00
Rekai Nyangadzayi Musuka bd872ee1c0 fix: drop select atomics in favour of a thread-safe channel 2023-03-10 02:02:34 -06:00
Rekai Nyangadzayi Musuka 11eae091db chore: introduce zba-util
In an effort to reuse code between zba and zba-gdbstub, move common util
code (like the SPSC Channel I implemented in this commit) in a new lib
2023-03-10 00:05:31 -06:00
Rekai Nyangadzayi Musuka 72b702cb21 fix: handle null GBA ROM titles when passing to imgui 2023-03-04 18:02:12 -06:00
Rekai Nyangadzayi Musuka d985eac0fc tmp: implement mechanisms for a emu reset fn (currently crashes) 2023-02-23 23:49:56 -06:00
Rekai Nyangadzayi Musuka 3fff4fd742 chore: move imgui-specific code to its own file 2023-02-23 18:25:05 -06:00
Rekai Nyangadzayi Musuka e90d5a17ba fix: ensure code builds + works
the gdbstub branch got merged into main, rebasing on top of main led to
a bunch of merge conflicts that had to be resolved. Unfortunately some
things got missed, and this commit covers the immediate problems that
the rebase caused
2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka 54143332ab chore: update for loop in RingBuffer impl 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka 6048458f9b feat: implement menu bar + add file picker dep 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka ff609c85ba feat: show game title as imgui screen title 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka 1d601dba39 feat: add scheduler ui 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka a8fac5f3c6 feat: pause emu when UI reads emu state 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka ae78588b80 feat: implement ui for register, interrupt 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka fe6fc0e517 feat: add system information window 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka 5e94cbfbea feat: add imgui support using zgui 2023-02-23 17:27:42 -06:00
Rekai Nyangadzayi Musuka 01f5410180 feat: allow gui and gdbstub to run in parallel 2023-02-23 02:40:24 -06:00
Rekai Nyangadzayi Musuka 49706842af fix: run more than just the CPU when stepping via gdb 2023-02-23 02:40:24 -06:00
Rekai Nyangadzayi Musuka 518b868249 feat: respond to API changes for software bkpts 2023-02-23 02:40:24 -06:00
Rekai Nyangadzayi Musuka 755115660b feat: allow gdb writes to certain mem regions 2023-02-23 02:40:24 -06:00
Rekai Nyangadzayi Musuka 1f3cdd9513 feat: add gdb support to zba 2023-02-23 02:40:24 -06:00
Rekai Nyangadzayi Musuka 024151a5c1 chore: update to latest zig master 2023-02-22 14:46:46 -06:00
Rekai Nyangadzayi Musuka e380af7056 chore: use a more efficient decimal->bcd algorithm
This will not improve perf in any way because this code only gets run
one time a second orz
2023-02-21 23:22:42 -06:00
Rekai Nyangadzayi Musuka c0e583d20d fix: resolve off-by-one error in `str` addr when r15 is involved
I seem to have made up this rule (I was thinking about when r15 was
a source register). `rn` is the destination register.... whoops
2023-01-29 08:58:41 -06:00
Rekai Nyangadzayi Musuka ae3bb94036 fix(ppu): draw file select sprites in amazing mirror 2023-01-08 01:36:58 -06:00
Rekai Nyangadzayi Musuka ddc54e2977 fix: ignore missing opengl proc addresses
is this really a fix? the error never happens with mach-glfw
2023-01-01 15:56:18 -06:00
Rekai Nyangadzayi Musuka 59baa14bde Merge branch 'main' of ssh://musuka.dev:2222/paoda/zba 2022-12-30 19:47:24 -06:00
Rekai Nyangadzayi Musuka 6bf1c44961 chore: refactor sprite rendering code 2022-12-30 19:47:01 -06:00
Rekai Nyangadzayi Musuka 0f148507e4 fix: respond to `@addWithOverflow` changes in latest zig 2022-12-28 15:20:44 -06:00
Rekai Nyangadzayi Musuka 0cec779545 chore: misc style changes 2022-12-28 07:29:07 -06:00
Rekai Nyangadzayi Musuka 1ecbbc7d29 chore: cleanup BIOS struct init code 2022-12-27 06:42:06 -06:00
Rekai Nyangadzayi Musuka caaa60d1a8 fix: rotate unaligned reads on BIOS open-bus 2022-12-27 06:25:12 -06:00
Rekai Nyangadzayi Musuka 4326ae7a0a fix: resolve broken affine bg in mario kart 2022-12-18 08:59:19 -04:00
Rekai Nyangadzayi Musuka 905c4448d0 feat: kind-of account for 1/4th of obj mode 2022-12-18 08:35:14 -04:00
Rekai Nyangadzayi Musuka 0de44835e5 fix: properly implement black/white blending for sprites
There's unique rules to handle for BLDY w/r/t sprites, I didn't know
about them (shown in bld_demo.gba). I'm sure I haven't ironed out every
rule but bld_demo.gba now *actually* passes
2022-12-18 07:44:01 -04:00
Rekai Nyangadzayi Musuka 5aac04faf5 tmp: disable buggy window emulation
I'd like to merge my affine sprite impl into main, which will require
merging a lot of the rewrites I did in this branch. My plan is to
merge the buggy ppu window impl to main, but keep it disabled.

This is technically a regression but the current impl barely worked
anyways so....
2022-12-17 09:58:15 -04:00
Rekai Nyangadzayi Musuka f98a1700e0 feat: implement affine sprites 2022-12-17 09:47:10 -04:00
Rekai Nyangadzayi Musuka acdb270793 chore: reimplement alpha blending 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka 4ceed382ed chore(ppu): use @ptrCast in drawTextMode 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka 52ce4f3d20 chore(ppu): reimplement modes 3, 4, and 5 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka c1c8cac6e4 style(ppu): move text mode drawing to unique fn 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka be7a34f719 fix(window): proper inRange impl for window
window wrap now works (it's pretty slow though?)
2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka f7a94634f9 chore: improve readability of sprite drawing code a bit 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka 7d4ab6db2c style: remove unused imports 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka 0a78587d8e chore: dont allocate not-small ?Sprite array on stack
use memset like most other allocations in this emu
2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka b753ceef8e chore: move FrameBuffer struct to util.zig 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka 8963fe205b chore: move OAM, PALRAM and VRAM structs to separate files 2022-12-16 22:16:37 -04:00
Rekai Nyangadzayi Musuka e906506e16 fix: 8-bit writes to WIN PPU registers
Advance Wars depends on these registers similar to Mario Kart's 8-bit
writes to Affine Background registers:
2022-12-16 22:16:37 -04:00