Rekai Nyangadzayi Musuka
fd5006b29d
fix(ppu): properly access Mode 4 palette
2022-01-10 07:23:54 -04:00
Rekai Nyangadzayi Musuka
22b95b2a74
feat(cpu): refactor LDM/STM
2022-01-10 06:51:32 -04:00
Rekai Nyangadzayi Musuka
7d79a0bee2
feat(cpu): implement LDM/STM
2022-01-10 06:27:36 -04:00
Rekai Nyangadzayi Musuka
6c0651ca08
chore(io): DISPSTAT bits 3 and 4 better match GBATEK documentation
2022-01-10 06:26:42 -04:00
Rekai Nyangadzayi Musuka
0d8c5e6882
fix(cpu): fix off-by-word bug in BL
2022-01-10 06:26:02 -04:00
Rekai Nyangadzayi Musuka
89a8fe403b
feat(bus): have VCOUNT be addressable on the bus
2022-01-10 03:35:28 -04:00
Rekai Nyangadzayi Musuka
7c5d2d2389
feat(ppu): implement Mode 4
...
Implementation is not tested. Pending on LDM and STM so that I can
run beeg.gba
2022-01-10 03:35:24 -04:00
Rekai Nyangadzayi Musuka
2467b94dbd
chore(io): rename some io bitfield fields
2022-01-10 02:13:25 -04:00
Rekai Nyangadzayi Musuka
0d4c850218
chore: remove premature inlines
2022-01-10 01:24:14 -04:00
Rekai Nyangadzayi Musuka
bbe2ecfa53
chore: add FPS counter
2022-01-10 01:22:55 -04:00
Rekai Nyangadzayi Musuka
c54145ce3c
chore: improve code clarity
2022-01-09 23:34:33 -04:00
Rekai Nyangadzayi Musuka
ead6d1ce49
feat(ppu): improve timings + implement BG mode 3 bitmap
2022-01-09 22:16:34 -04:00
Rekai Nyangadzayi Musuka
581285a434
fix: allocate framebuf on heap
2022-01-08 20:30:57 -04:00
Rekai Nyangadzayi Musuka
0d203543ca
chore: add code for heap alloc of white texture
2022-01-08 18:52:11 -04:00
Rekai Nyangadzayi Musuka
eb6c00f0ac
chore(gui): switch from RGBA8888 to BGR5555 to match BG Mode 3
2022-01-08 04:54:39 -04:00
Rekai Nyangadzayi Musuka
da7f21f47e
feat: draw white texture using SDL2
2022-01-07 22:46:17 -04:00
Rekai Nyangadzayi Musuka
8fb666624f
fix(ppu): deallocate palette RAM on cleanup
2022-01-07 22:27:08 -04:00
Rekai Nyangadzayi Musuka
568c374131
chore: code cleanup
2022-01-07 20:00:42 -04:00
Rekai Nyangadzayi Musuka
910745f442
chore(bus): refactor bus.zig
2022-01-07 19:49:58 -04:00
Rekai Nyangadzayi Musuka
f8c6af3247
chore: refactor instruction exec code
2022-01-07 19:44:48 -04:00
Rekai Nyangadzayi Musuka
a407671de2
chore(io): alias @This() to Self in io.zig
2022-01-07 19:34:54 -04:00
Rekai Nyangadzayi Musuka
e9ec124e33
chore: refactor bios.zig and pak.zig
2022-01-07 19:33:49 -04:00
Rekai Nyangadzayi Musuka
9f64804763
fix: by convention deinit() should not take pointers to self
2022-01-07 19:16:23 -04:00
Rekai Nyangadzayi Musuka
c6123d8a6d
feat: implement PPU Timings in Scheduler
2022-01-05 21:18:33 -04:00
Rekai Nyangadzayi Musuka
f709458638
feat(sched): add HBlank and VBlank events to the scheduler
2022-01-05 17:34:59 -05:00
Rekai Nyangadzayi Musuka
5037b8f0cc
feat: implement S (when rd != 15) for several data processing instructions
2022-01-05 15:45:52 -05:00
Rekai Nyangadzayi Musuka
28a70d0112
feat: implement dedicated Barrel Shifter SHL and SHR
2022-01-05 13:58:11 -05:00
Rekai Nyangadzayi Musuka
7473ffedc7
chore: stub TST
2022-01-04 04:08:02 -06:00
Rekai Nyangadzayi Musuka
172f3e8efe
chore: comment-out logging by default
2022-01-04 03:58:11 -06:00
Rekai Nyangadzayi Musuka
28bb410dfd
fix(cpu): improve LDR/STR write-back logic
2022-01-04 03:55:41 -06:00
Rekai Nyangadzayi Musuka
5ea888f68c
feat(bus): implement Palette RAM and DISPSTAT
2022-01-04 03:29:56 -06:00
Rekai Nyangadzayi Musuka
8b9a80b279
fix(bus): restrict Game ROM and VRAM to a 16-bit bus
2022-01-04 03:08:12 -06:00
Rekai Nyangadzayi Musuka
ed9c1413b1
fix(cpu): properly implement SUB/CMP CSPSR carry bit condition
2022-01-04 03:08:08 -06:00
Rekai Nyangadzayi Musuka
8cabcd8901
fix(cpu): resolve reversed if statement + write back on W = 0
2022-01-04 01:57:37 -06:00
Rekai Nyangadzayi Musuka
8d8cedea59
chore: add mgba compatible (minus disasm) log function
2022-01-04 01:11:53 -06:00
Rekai Nyangadzayi Musuka
0f827fca96
chore: rename CPSR u32 from val to raw
2022-01-03 22:25:11 -06:00
Rekai Nyangadzayi Musuka
1fefd4de5c
chore: remove print statements
2022-01-03 21:30:08 -06:00
Rekai Nyangadzayi Musuka
3aa680ab8c
chore: remove all memory leaks
2022-01-03 20:08:55 -06:00
Rekai Nyangadzayi Musuka
8257a3899a
feat(ppu): implement VRAM
2022-01-03 19:52:10 -06:00
Rekai Nyangadzayi Musuka
1d4ba2e2b3
fix(emu): prevent infinite loop when advancing scheduler
2022-01-03 19:51:55 -06:00
Rekai Nyangadzayi Musuka
c9f0e1632c
fix(io): fix DISPCNT is at wrong IO address
2022-01-03 17:49:15 -06:00
Rekai Nyangadzayi Musuka
44d52d8137
feat(cpu): properly implement STR STRH and STRB
2022-01-03 17:48:43 -06:00
Rekai Nyangadzayi Musuka
dee0e113d8
feat(cpu): implement skipBios method
2022-01-02 14:58:39 -06:00
Rekai Nyangadzayi Musuka
eb37d73cb2
chore: panic on read from BIOS
...
GBA Bios requires a lot of implemented features, so we're ignoring it
for now
2022-01-02 14:57:59 -06:00
Rekai Nyangadzayi Musuka
1c42d1795a
feat(bus): add Io Struct
...
Also, add more information to all panic messages
2022-01-02 14:40:49 -06:00
Rekai Nyangadzayi Musuka
01d6399dfb
chore: rename consturctors to fit convention
2022-01-02 13:58:57 -06:00
Rekai Nyangadzayi Musuka
f09f814dc3
chore: move bitfield library to lib director
...
I'd presonally prefer to use a git submodule here but It doesn't quite
seem like git submodules are possible for individual files. I'll have to
check with FlorenceOS every once and a while to ensure that there are no
lingering soundness issues with the library.
Thanks to @N00byEdge for this wonderful library!
2022-01-02 13:19:09 -06:00
Rekai Nyangadzayi Musuka
de9045fba3
chore: use bitfield library
2022-01-02 13:01:11 -06:00
Rekai Nyangadzayi Musuka
e144261e07
feat(bus): emu is now able to read from user-provided BIOS
2022-01-02 03:16:03 -06:00
Rekai Nyangadzayi Musuka
65c3dd722c
feat(bus): implement Gameboy Advance MMIO
2022-01-02 02:36:06 -06:00