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