Commit graph

391 commits

Author SHA1 Message Date
Matthew Berry
0a9b5afcb0 break out backup types, implement sram 2021-01-23 00:09:58 -08:00
Matthew Berry
dc974e337f write saves once per frame if necessary (speed up flash writes) 2021-01-22 00:03:06 -08:00
Matthew Berry
16da14d7bf slow but functional flash implementation 2021-01-21 23:51:51 -08:00
Matthew Berry
80d494da6a rough start to flash 2021-01-20 00:41:38 -08:00
Matthew Berry
dc29f10a94 8bpp sprites working properly (emerald, golden sun, graveblood) 2021-01-19 19:18:57 -08:00
Matthew Berry
3b4e6deb30 working hdma: pokemon emerald clouds are wavy 2021-01-18 00:06:24 -08:00
Matthew Berry
e6035a9c01 affine sprites seem to be working in emerald / tonc obj_aff 2021-01-17 22:32:39 -08:00
Matthew Berry
ea2d4ce50e basic working affine sprite impl 2021-01-17 18:38:27 -08:00
Matthew Berry
480f4b181b very rough start to affine sprites 2021-01-16 12:30:14 -08:00
Matthew Berry
99ac277ca0 implement affine wrap 2021-01-16 01:59:37 -08:00
Matthew Berry
d5e05f0f88 affine bg working! minus wrap 2021-01-15 00:16:25 -08:00
Matthew Berry
d8f03b8ff6 a rough start to getting affine background working 2021-01-14 08:52:41 -08:00
Matthew Berry
4247cf139d stub flash so that pokemon games boot 2021-01-11 23:10:49 -08:00
Matthew Berry
4f1218cf54 scale dma b with dma b volume instead of dma a volume 2021-01-10 12:33:18 -08:00
Matthew Berry
2c87495836 ignore writes to mmio 0x71 2021-01-09 23:17:48 -08:00
Matthew Berry
63ec32b595 fix instant dma - load dma sad/dad before trigger 2021-01-08 08:54:32 -08:00
Matthew Berry
f6fa9f9711 8bpp sprites 2021-01-07 21:54:18 -08:00
Matthew Berry
cb3280fea6 sprite flipping 2021-01-06 00:02:09 -08:00
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