60 Commits

Author SHA1 Message Date
570ff8536c chore: resolve incorrect memory mirror in VRAM
+ stub GPIO registers on ROM Write
2022-10-21 05:12:41 -03:00
a102d68e99 chore: define affine sprite attributes 2022-10-21 05:12:41 -03:00
61483b93e8 feat: stub mode 1 and 2 2022-10-21 05:12:40 -03:00
192d7645eb feat: implement mode 5
I wonder which obscure game makes heavy use of this mode
2022-10-21 05:12:40 -03:00
e690f88cda chore: misc improvements 2022-10-21 05:12:37 -03:00
c03c142b14 feat: implement ARM read open bus 2022-10-21 05:12:35 -03:00
a92989ed24 chore: remove magic numbers 2022-10-21 05:12:35 -03:00
27ad8772ea feat: pass jsmolka memory.gba 2022-10-21 05:12:34 -03:00
135987745c chore: ignore instead of logging errors for perf reasons 2022-10-21 05:12:34 -03:00
e69f4cfafe chore: tick scheduler on memory access 2022-10-21 05:12:33 -03:00
601e717850 chore: reimplement bus read/writes 2022-10-21 05:12:33 -03:00
677eecad41 chore: rewrite read/write methods for remainig Bus devices 2022-10-21 05:12:32 -03:00
74b6fa2ecc chore: mirror VRAM 2022-10-21 05:12:31 -03:00
effb6315e9 chore: write generic read/write for VRAM 2022-10-21 05:12:31 -03:00
242627199b chore: properly deallocate OAM buffer 2022-10-21 05:12:29 -03:00
20f39176c6 feat: minor performance improvements 2022-10-21 05:12:29 -03:00
ed792d71d3 feat: switch from BGR555 to RGBA8888 2022-10-21 05:12:28 -03:00
9dcecc0d58 fix: move code in scheduler to ppu 2022-10-21 05:12:27 -03:00
74cda6a1d0 fix: resolve relative sprite priority issues 2022-10-21 05:12:27 -03:00
15191aedca fix: implement sprite coord overflow behaviour 2022-10-21 05:12:26 -03:00
63486f13f2 fix: resolve issues with sprite mirroring 2022-10-21 05:12:25 -03:00
17455e40d1 feat: Implement MVP of Mode 0 Sprites 2022-10-21 05:12:25 -03:00
d54e593276 chore: clean up io 2022-10-21 05:12:25 -03:00
c6a544a824 feat: fix tile flipping issue 2022-10-21 05:12:25 -03:00
e3ae3635bc chore: add some type definitions for sprites 2022-10-21 05:12:25 -03:00
12c628e82c chore(ppu): resolve integer overflow regression 2022-10-21 05:12:24 -03:00
5f9abf69d3 feat(ppu): implement bg priority and transparency 2022-10-21 05:12:24 -03:00
02d2ff3e0c fix: palette id is a u16 not a u8 2022-10-21 05:12:24 -03:00
6d253cc74e feat(ppu): implement transparency + backdrop in mode 0 2022-10-21 05:12:23 -03:00
50dc31447d fix: resolve integer overflow in BG0 Drawing 2022-10-21 05:12:22 -03:00
f19b42baf3 chore: correct logic errors in map size 1 and 3 2022-10-21 05:12:21 -03:00
4405fa6bbf feat: implement hofs and vofs on io bus 2022-10-21 05:12:21 -03:00
e2b2bf882a feat: implement scrolling 2022-10-21 05:12:21 -03:00
08e4eb1bf1 feat: add support for multiple BGs in Mode 0 2022-10-21 05:12:20 -03:00
f4b176a813 feat: document mode 0 2022-10-21 05:12:20 -03:00
efc7d817db feat: Mode 0 MVP 2022-10-21 05:12:20 -03:00
1b17b1eb0c chore: use zig slices for fun 2022-10-21 05:12:20 -03:00
fab6d4c2a2 chore: give DISPCNT DISPSTAT and VCOUNT to PPU struct 2022-10-21 05:12:20 -03:00
dfd0d064de feat: implement BG Scrolling Registers 2022-10-21 05:12:19 -03:00
bfdad9fa32 feat: implement OAM 2022-10-21 05:12:19 -03:00
bbd73550e8 fix: zero initialize all allocated memory 2022-10-21 05:12:15 -03:00
e7f6464564 fix: resolve off by n * 2 when accessing Palette during BG Mode 4 2022-10-21 05:12:09 -03:00
3a6951d93d chore: don't panic on unsupported BG mode 2022-10-21 05:12:08 -03:00
eebf6fcae4 chore: zero-initialize VRAM 2022-10-21 05:12:07 -03:00
00ba7afac4 chore: remove some magic constants 2022-10-21 05:11:54 -03:00
e0c4b3b407 fix(ppu): properly access Mode 4 palette 2022-10-21 05:11:53 -03:00
3590215d33 feat(ppu): implement Mode 4
Implementation is not tested. Pending on LDM and STM so that I can
run beeg.gba
2022-10-21 05:11:52 -03:00
357211a4cc chore: remove premature inlines 2022-10-21 05:11:52 -03:00
2cec8d9f70 chore: improve code clarity 2022-10-21 05:11:51 -03:00
8348d7c4bc feat(ppu): improve timings + implement BG mode 3 bitmap 2022-10-21 05:11:51 -03:00