Commit graph

173 commits

Author SHA1 Message Date
Matthew Berry
b29bc55df9 mode 0 proper bg and obj layering 2021-01-05 21:34:09 -08:00
Matthew Berry
c0b9f7689e handle sprite wrapping 2021-01-04 00:02:47 -08:00
Matthew Berry
1ccbf7325d tab to uncap fps 2021-01-03 22:48:39 -08:00
Matthew Berry
1bc697f081 adjusted dma vs psg balance 2021-01-03 19:04:24 -08:00
Matthew Berry
e205057788 reduce tile indexing logic 2021-01-03 18:00:38 -08:00
Matthew Berry
0c5be3a7ed basic sprite implementation 2021-01-03 00:24:21 -08:00
Matthew Berry
8d34375d72 support 8bpp 2021-01-02 23:34:44 -08:00
Matthew Berry
026e8390ee don't render disabled background layers 2021-01-02 00:46:55 -08:00
Matthew Berry
452bd0c75a handle background priority mode 0 2021-01-01 23:04:16 -08:00
Matthew Berry
f1f59c3ce6 abstract bg reg reads/writes, clear scanline before render, decouple scanline row 2020-12-31 00:12:15 -08:00
Matthew Berry
8e221d221e store framebuffer as Slice(UInt16) and batch writes, fix mode 5 bg color 2020-12-30 23:22:18 -08:00
Matthew Berry
f8914d4be3 move dma/timer puts to logs 2020-12-30 00:03:21 -08:00
Matthew Berry
468631666c ignore writes to apu 0xA8..0xAF since they're unmapped 2020-12-29 22:52:51 -08:00
Matthew Berry
bf156dc18d proper dma sound sound control (volume, enable, balance) 2020-12-28 08:15:36 -08:00
Matthew Berry
df4ce8540e dma audio is actually playing the correct sounds! 2020-12-27 20:35:34 -08:00
Matthew Berry
ddb0d1f423 a rough start to fifo audio 2020-12-26 10:17:47 -08:00
Matthew Berry
b6e5c54da4 timer interrupts 2020-12-13 12:41:45 -08:00
Matthew Berry
1aab2cc5a8 allow writes to dma apu channels 2020-12-13 12:38:16 -08:00
Matthew Berry
4b6563773c fixed ppu interrupt flags 2020-12-13 12:37:07 -08:00
Matthew Berry
0c39869653 removed unused variables 2020-12-13 12:35:52 -08:00
Matthew Berry
106a14b5a6 very basic dma 2020-12-13 12:35:25 -08:00
Matthew Berry
9c2d135293 updated channel3 from cgb audio to gba audio 2020-12-11 23:41:44 -08:00
Matthew Berry
18eabafad1 change to_u8 to to_u8! to avoid bounds checks at runtime 2020-12-06 16:07:44 -08:00
Matthew Berry
524eeabd11 basic timer implementation, enough to make tonc tmr_demo mostly work
todo: proper cascade enable/disable
todo: interrupts from timers
2020-12-06 16:02:53 -08:00
Matthew Berry
50dc14eddb cleanup mmio range checks a little bit.. 2020-12-05 17:26:14 -08:00
Matthew Berry
9f65505731 handle volume and channel enable properly for gba 2020-12-05 14:39:37 -08:00
Matthew Berry
ac8319b19c basic apu support (copy from CryBoy w/ slight modification), scheduler short-circuit, scheduler clear 2020-12-05 12:25:55 -08:00
Matthew Berry
70913a4ee8 thumb alu fix neg handling 2020-12-01 00:10:23 -08:00
Matthew Berry
a79afb3817 add halting 2020-11-30 08:44:37 -08:00
Matthew Berry
042b76d910 passing destoer isr test, booting kirby, failing tonc irq_demo
- handle exception returns after alu
- proper spsr banking
- fill pipeline before interrupts
- align r15 before each pipeline fill
2020-11-28 00:07:21 -08:00
Matthew Berry
b6346536d5 added support for a basic cli debugger 2020-11-27 00:24:33 -08:00
Matthew Berry
e48c186068 properly handle if ack 2020-11-26 12:18:36 -08:00
Matthew Berry
327904b6d6 fix oam writes, fix print_state when -Dtrace is not provided 2020-11-23 08:16:33 -08:00
Matthew Berry
c190adfca2 arm ldm/stm handle empty list & base in list, pass all of gba-suite 2020-11-22 18:02:59 -08:00
Matthew Berry
c51ffe83ae account for prefetch on str r15, write back when str && rd==rn 2020-11-22 15:47:51 -08:00
Matthew Berry
33e3cc8e09 account for prefetch on str r15, write back when str && rd==rn 2020-11-22 12:03:45 -08:00
Matthew Berry
902fb9c9ef fix negative / zero flags on long multiply 2020-11-22 12:03:14 -08:00
Matthew Berry
768457178f psr transfer - properly generate mask (gbatek is right, arm manual is wrong) 2020-11-22 12:02:10 -08:00
Matthew Berry
357ca9f0d4 align print_state with mgba's trace, move trace flag check to caller 2020-11-22 01:10:33 -08:00
Matthew Berry
a802bf0e56 properly handle carry flag in data processing, alu operations, etc
passing gba-suite arm 228 where I was failing before, now stuck on 356
2020-11-21 12:02:22 -08:00
Matthew Berry
04a70527ec handle thumb stm w/ rb in list, pass gba-suite thumb 2020-11-17 23:15:12 -08:00
Matthew Berry
37ef5ab719 basic irq impl, loads HAL screen in Kirby, crashes on tonc's irq_demo 2020-11-17 00:23:28 -08:00
Matthew Berry
b5ba760993 add some gifs/pictures to the readme 2020-11-16 22:32:57 -08:00
Matthew Berry
3b7e0448c9 run through normatt's bios successfully, print unmapped mmio/ppu read/writes to stdout
simply comment out the default PC value to run the bios. I've left it
disabled because that's not the source of my inaccuracy, and it's
annoying to look at every time :p
2020-11-15 23:32:06 -08:00
Matthew Berry
5c6ec3e6f2 added read/write of waitcnt and a bunch of ppu regs 2020-11-14 09:47:08 -08:00
Matthew Berry
7401788dab update some opengl docs in display 2020-11-13 00:03:28 -08:00
Matthew Berry
e7849616ab mode 0 hfip / vflip, 100% done with tonc brin_demo 2020-11-12 00:09:48 -08:00
Matthew Berry
7086673a78 properly get screen entity index when size isn't 32x32 2020-11-11 00:00:23 -08:00
Matthew Berry
b6ddfcf424 move from sdl textures to opengl, add byuu color correction shaders :D 2020-11-10 00:00:06 -08:00
Matthew Berry
717965c400 sraw read/write, abort on unmapped access rather than raise 2020-11-09 23:08:14 -08:00