Commit graph

374 commits

Author SHA1 Message Date
Matthew Berry
02b596943e more precise fps in window title 2021-02-14 00:03:09 -08:00
Matthew Berry
f03c90a13b fix fake pipeline: actually read words in arm pipeline, read correct regs 2021-02-12 00:42:38 -08:00
Matthew Berry
b4af85523e removed repetitive logic from thumb add_subtract 2021-02-11 00:01:07 -08:00
Matthew Berry
c986673e68 fill pipeline if necessary (gba-suite nes.gba #1) 2021-02-10 22:58:41 -08:00
Matthew Berry
eeff849ec0 move to a fake pipeline, 25% perf gain in Emerald and Golden Sun, 400% in wait loops 2021-02-10 22:45:20 -08:00
Matthew Berry
6c575089b1 fix timer off-by-one (stop kirby audio clicking) 2021-02-08 00:07:46 -08:00
Matthew Berry
ed6d42b2e2 fixed golden sun saves (return 64k flash id for 64k chips) 2021-02-07 11:52:28 -08:00
Matthew Berry
01eadfd5a6 properly disable vsync 2021-02-06 01:51:34 -08:00
Matthew Berry
bc35157dca long overdue readme update 2021-02-04 01:11:51 -08:00
Matthew Berry
08cc652722 brightness effects for sprites, allows official bios to render properly 2021-02-04 00:09:58 -08:00
Matthew Berry
0e30f3558b fix object window, basic mode 2, mostly accurate rendering of official bios 2021-02-03 20:01:19 -08:00
Matthew Berry
805e860726 sprite blending overrides effects being disabled, fixes emerald cave/fog/underwater 2021-02-03 00:03:35 -08:00
Matthew Berry
26b521a37f don't render object window objects (fix Emerald logo shine) 2021-02-02 00:35:18 -08:00
Matthew Berry
c2e46e2f68 brightness increase / decrease effects 2021-02-01 00:00:50 -08:00
Matthew Berry
686e53ed73 basic windowing, passing tonc window demo 2021-01-31 22:57:38 -08:00
Matthew Berry
88405ff36c fix sprite blending for tonc's demo, minor refactoring 2021-01-31 17:49:33 -08:00
Matthew Berry
057913aace respect dispcnt{display_obj}, don't render disabled sprites, ppu refactoring to support windows
- respect @dispcnt.screen_display_obj
- don't render disabled sprites
- render all sprites to a single buffer rather than 4
  - required some additional logic to check priority
  - adds fields for priority and whether pixel is an obj_window sprite
- calculate where objects with obj_window flag exist on each scanline
2021-01-31 17:22:54 -08:00
Matthew Berry
8e9eac5b6f removed outdated rendering methods 2021-01-31 15:32:57 -08:00
Matthew Berry
0ba9da018e fix flags on thumb alu neg 2021-01-31 14:49:36 -08:00
Matthew Berry
b4e30b9164 fixed sprites clipped on left and bottom (broken since introduction of affine sprites) 2021-01-31 00:58:09 -08:00
Matthew Berry
6e71ee30b8 fix multiple accumulate when destination is accumulate reg 2021-01-31 00:16:09 -08:00
Matthew Berry
24a186da3c properly disable apu channels, allow access to correct regs while disabled 2021-01-30 22:03:27 -08:00
Matthew Berry
190ce42ea6 direct reads of words / halfwords, improves fps ~25% 2021-01-30 17:21:49 -08:00
Matthew Berry
79ed746d6c proper DMA/PSG balance, use soundbias, remove offset for silence 2021-01-30 00:26:02 -08:00
Matthew Berry
f21091d375 remove use of mod operator in render_reg_bg 2021-01-29 00:02:13 -08:00
Matthew Berry
512e81289e hopefully should compile for mac properly now 2021-01-28 00:43:38 -08:00
Oleh Prypin
5245abcbf8
Add CI using GitHub Actions (#1) -- Thanks oprypin!
* Crystal 0.36 compatibility

* Add CI using GitHub Actions

Co-authored-by: Matthew Berry <me@mattrb.com>
2021-01-27 19:43:23 -08:00
Matthew Berry
81711e2d20 add support for and requirement on Crystal 0.36.0
minor api changes, plus -1.to_u32 now raises an exception. All changes here addressed those changes
2021-01-27 19:32:02 -08:00
Matthew Berry
278a7ff2cb move apu to use Int16 rather than Float32 samples 2021-01-27 01:19:22 -08:00
Matthew Berry
0de7d0c0c5 dma rewrite, fix emerald and kirby only playing on left side 2021-01-26 00:07:07 -08:00
Matthew Berry
fd70aa31ca sprite alpha blending (although failing tonc bld_demo..) 2021-01-25 00:03:25 -08:00
Matthew Berry
f0b8662669 early changes to support alpha blending 2021-01-24 00:13:43 -08:00
Matthew Berry
d4068da188 don't allow bank changes for 512mb flash 2021-01-23 19:35:50 -08:00
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