Matthew Berry
dd2bbc20c1
stop crashing on attempted open bus reads
2021-02-28 17:46:30 -08:00
Matthew Berry
893ab68622
ignore serial r/w (make Emerald stop dumping thousands of lines to the console)
2021-02-27 13:02:44 -08:00
Matthew Berry
8c66c9200c
stop printing unmapped ppu writes
2021-02-27 12:45:58 -08:00
Matthew Berry
e753ebe18a
fix bug that doubled size of rom on Po2 sizes
2021-02-26 21:52:00 -08:00
Matthew Berry
a26a170284
sram word and halfword reads
2021-02-26 21:39:49 -08:00
Matthew Berry
625b79fc35
update sprite priority behavior to make golden sun work (not documented in gbatek or tonc)
2021-02-26 20:17:55 -08:00
Matthew Berry
fb3354521c
8-bit writes to video memory
2021-02-26 18:29:21 -08:00
Matthew Berry
b9c360f229
never clear flags in IF directly
2021-02-25 00:59:30 -08:00
Matthew Berry
a5dd6ba394
implement direct writes in bus
2021-02-24 23:18:24 -08:00
Matthew Berry
832f05521f
pad non Po2 roms with 0 to next Po2 (passing gba-suite/unsafe)
2021-02-24 00:02:26 -08:00
Matthew Berry
f4a5564639
moved save mirroring to each save impl
2021-02-23 00:01:08 -08:00
Matthew Berry
7679e985d6
save memory 0x0F mirroring, default sram to 0xFF, less restrictive save type search
2021-02-22 23:24:47 -08:00
Matthew Berry
7444832159
move step_arm ldm/stm logic back to post-instruction, fix golden sun issues
...
This was causing battles and entering the overworld to fail. I saw a
`stmdb r1, {r0, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip}` while r1
was `03000380` and the currently executing instruction was `03000348`.
This means that the store would write over `03000350`, which is the
instruction being read. Because I had incremented r15 _ahead_ of the
instruction, this caused the pipeline to store the wrong values when the
write near r15 was detected. This changes moves the stepping logic back
to _after_ the instruction, and handles the r15 +12 case directly
2021-02-20 21:11:28 -08:00
Matthew Berry
2950d0d0a3
ldm/stm rewrite & always write incrementing, passing gba-suite/nes
2021-02-20 19:49:50 -08:00
Matthew Berry
33979013c3
dma irqs: got rhythm tongoku working
2021-02-20 18:44:55 -08:00
Matthew Berry
3c13802653
get timers working for tonc tmr_demo and krom timer demo
2021-02-20 10:37:14 -08:00
Matthew Berry
f26fe9faf0
make register rotates take explicit register shift enable
2021-02-20 09:41:10 -08:00
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