712 Commits

Author SHA1 Message Date
e9c1c94cae feat(cpu): Implement ORR 2022-01-10 08:06:00 -04:00
0f08ad05be feat(bus): implement IWRAM and EWRAM 2022-01-10 07:59:21 -04:00
fd5006b29d fix(ppu): properly access Mode 4 palette 2022-01-10 07:23:54 -04:00
22b95b2a74 feat(cpu): refactor LDM/STM 2022-01-10 06:51:32 -04:00
7d79a0bee2 feat(cpu): implement LDM/STM 2022-01-10 06:27:36 -04:00
6c0651ca08 chore(io): DISPSTAT bits 3 and 4 better match GBATEK documentation 2022-01-10 06:26:42 -04:00
0d8c5e6882 fix(cpu): fix off-by-word bug in BL 2022-01-10 06:26:02 -04:00
89a8fe403b feat(bus): have VCOUNT be addressable on the bus 2022-01-10 03:35:28 -04:00
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
2467b94dbd chore(io): rename some io bitfield fields 2022-01-10 02:13:25 -04:00
0d4c850218 chore: remove premature inlines 2022-01-10 01:24:14 -04:00
bbe2ecfa53 chore: add FPS counter 2022-01-10 01:22:55 -04:00
c54145ce3c chore: improve code clarity 2022-01-09 23:34:33 -04:00
ead6d1ce49 feat(ppu): improve timings + implement BG mode 3 bitmap 2022-01-09 22:16:34 -04:00
581285a434 fix: allocate framebuf on heap 2022-01-08 20:30:57 -04:00
0d203543ca chore: add code for heap alloc of white texture 2022-01-08 18:52:11 -04:00
eb6c00f0ac chore(gui): switch from RGBA8888 to BGR5555 to match BG Mode 3 2022-01-08 04:54:39 -04:00
da7f21f47e feat: draw white texture using SDL2 2022-01-07 22:46:17 -04:00
8fb666624f fix(ppu): deallocate palette RAM on cleanup 2022-01-07 22:27:08 -04:00
568c374131 chore: code cleanup 2022-01-07 20:00:42 -04:00
910745f442 chore(bus): refactor bus.zig 2022-01-07 19:49:58 -04:00
f8c6af3247 chore: refactor instruction exec code 2022-01-07 19:44:48 -04:00
a407671de2 chore(io): alias @This() to Self in io.zig 2022-01-07 19:34:54 -04:00
e9ec124e33 chore: refactor bios.zig and pak.zig 2022-01-07 19:33:49 -04:00
9f64804763 fix: by convention deinit() should not take pointers to self 2022-01-07 19:16:23 -04:00
c6123d8a6d feat: implement PPU Timings in Scheduler 2022-01-05 21:18:33 -04:00
f709458638 feat(sched): add HBlank and VBlank events to the scheduler 2022-01-05 17:34:59 -05:00
5037b8f0cc feat: implement S (when rd != 15) for several data processing instructions 2022-01-05 15:45:52 -05:00
28a70d0112 feat: implement dedicated Barrel Shifter SHL and SHR 2022-01-05 13:58:11 -05:00
7473ffedc7 chore: stub TST 2022-01-04 04:08:02 -06:00
172f3e8efe chore: comment-out logging by default 2022-01-04 03:58:11 -06:00
28bb410dfd fix(cpu): improve LDR/STR write-back logic 2022-01-04 03:55:41 -06:00
5ea888f68c feat(bus): implement Palette RAM and DISPSTAT 2022-01-04 03:29:56 -06:00
8b9a80b279 fix(bus): restrict Game ROM and VRAM to a 16-bit bus 2022-01-04 03:08:12 -06:00
ed9c1413b1 fix(cpu): properly implement SUB/CMP CSPSR carry bit condition 2022-01-04 03:08:08 -06:00
8cabcd8901 fix(cpu): resolve reversed if statement + write back on W = 0 2022-01-04 01:57:37 -06:00
8d8cedea59 chore: add mgba compatible (minus disasm) log function 2022-01-04 01:11:53 -06:00
0f827fca96 chore: rename CPSR u32 from val to raw 2022-01-03 22:25:11 -06:00
1fefd4de5c chore: remove print statements 2022-01-03 21:30:08 -06:00
3aa680ab8c chore: remove all memory leaks 2022-01-03 20:08:55 -06:00
8257a3899a feat(ppu): implement VRAM 2022-01-03 19:52:10 -06:00
1d4ba2e2b3 fix(emu): prevent infinite loop when advancing scheduler 2022-01-03 19:51:55 -06:00
c9f0e1632c fix(io): fix DISPCNT is at wrong IO address 2022-01-03 17:49:15 -06:00
44d52d8137 feat(cpu): properly implement STR STRH and STRB 2022-01-03 17:48:43 -06:00
dee0e113d8 feat(cpu): implement skipBios method 2022-01-02 14:58:39 -06:00
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
1c42d1795a feat(bus): add Io Struct
Also, add more information to all panic messages
2022-01-02 14:40:49 -06:00
01d6399dfb chore: rename consturctors to fit convention 2022-01-02 13:58:57 -06:00
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
de9045fba3 chore: use bitfield library 2022-01-02 13:01:11 -06:00