Commit graph

572 commits

Author SHA1 Message Date
Sean Maas
26c5824681 Make edge hiding per-pixel instead of per-polygon 2020-12-24 09:32:58 -05:00
Sean Maas
22d7a38cbf Hide some edges for opaque polygons with no edge effects 2020-12-24 02:12:40 -05:00
Sean Maas
24b11670f9 Make a bunch of functions static 2020-12-23 23:40:08 -05:00
Sean Maas
ab4f631b31 New polygon edge calculation that's (mostly) accurate to hardware
There are a few small inconsistencies (single pixels on corners, etc.)
but for the most part this should match hardware. I spent a *lot* of
time staring at minute pixel differences and working out the formulas,
so I would hope it does, at least! Special fill rules, edge marking,
and anti-aliasing are still not implemented, so things might look a
little off until then.
2020-12-23 19:45:48 -05:00
Sean Maas
873c7d2a3d Precalculate polygon bounds and skip them when possible 2020-12-17 21:07:31 -05:00
Sean Maas
8dc7f11fb8 Slight interpreter optimization
This will also make it easier to return cycle counts in the future
2020-12-15 17:32:31 -05:00
Sean Maas
10b758c314 A few minor cleanups 2020-12-15 12:28:42 -05:00
Sean Maas
96656f9152 Make overclock configurable on Switch 2020-12-13 17:11:17 -05:00
Sean Maas
f2a2b78688 Properly handle HALTCNT in GBA mode 2020-12-13 01:38:00 -05:00
Sean Maas
0908399202 Make GBA cart accesses much less terrible 2020-12-10 18:54:17 -05:00
Sean Maas
11d8bf2189 Fix inverted source selection for blended display capture 2020-12-09 15:59:12 -05:00
Sean Maas
957df72a7d Make GBA cart accesses slightly less terrible 2020-12-07 23:30:15 -05:00
Sean Maas
c00bb1f5fb Handle DS math edge cases 2020-12-06 23:10:57 -05:00
Sean Maas
be7eb7a12b Fix CP15 direct boot values
oops
2020-12-05 15:12:17 -05:00
Sean Maas
60b655f3ff Fix a potential lock-up when pausing 2020-11-19 21:57:51 -05:00
Sean Maas
578d866966 Android: add restart and save type selector 2020-11-19 21:29:41 -05:00
Sean Maas
0deeeb3a1a Android: add basic in-game menu 2020-11-19 00:30:23 -05:00
Sean Maas
ed48115656 Allow empty SAD for pulse/noise channels
Fixes missing sounds caused by 3d7a637.
2020-11-17 22:43:55 -05:00
Sean Maas
af4fa903ad Switch: add save type selector 2020-11-17 21:58:44 -05:00
Sean Maas
efb901aefd Implement mostly-complete sound capture
Just missing the channel 0/2 stuff because I don't have a test case.
2020-11-17 18:16:39 -05:00
Sean Maas
3d7a637b14 Various DS sound fixes
Fixes #28.
2020-11-17 00:10:01 -05:00
Sean Maas
1b836c7569 Allow toon/highlight for polygons with no texture
Fixes the star effect in Mario Kart.
2020-11-16 21:19:08 -05:00
Sean Maas
bf194b28b1 Rename math to div_sqrt
Closes #40.
2020-11-16 08:59:14 -05:00
Sean Maas
8c377c4090 Only mark the 3D rear plane as transparent if it exists 2020-11-15 14:01:01 -05:00
Sean Maas
4640013cfc Support drag-and-drop ROM loading 2020-11-15 13:31:53 -05:00
Sean Maas
e0ea6c0b33 Add the ability to trim ROMs 2020-11-11 02:26:28 -05:00
Sean Maas
4e0c89e6a4 Store vertices as 32-bit instead of 64-bit
And other minor cleanups
2020-11-06 22:26:21 -05:00
Sean Maas
ba2636f05f Properly handle invalid viewports 2020-11-06 13:56:41 -05:00
Sean Maas
1c559a4ac0 Fix transparent pixels drawn over pixels with alpha 0 2020-11-05 23:28:58 -05:00
Sean Maas
9145f46463 Make interpolation accurate to hardware, quirks and all 2020-11-02 22:14:54 -05:00
Sean Maas
c9dfecfc25 Use a swap macro to simplify some code 2020-11-02 15:34:18 -05:00
Sean Maas
b4d81e717b Properly handle non-32-bit writes to the GBA sound FIFO 2020-10-31 01:34:58 -04:00
Sean Maas
47cea3507f Various improvements to prep for automatic DS save detection
-Only write save files if they were modified
-Removed annoying save prompts
-Auto-assume FLASH 512KB for missing DS saves (temporary)
-Desktop: made save type selection accessible from the File menu
-Desktop: added support for manual GBA save type selection
2020-10-29 21:06:07 -04:00
Sean Maas
e72f28ca8c Add more screen gap sizes 2020-10-26 10:33:43 -04:00
Sean Maas
56f5c78c12 Android: use OpenGL to draw the screens
Also lowkey removed the Patreon link
2020-10-05 19:25:28 -04:00
Sean Maas
ae7b5aff23 Desktop: add support for binding keys to a gamepad 2020-09-05 21:23:40 -04:00
Sean Maas
91be8aa139 Desktop: add fast forward and full screen keys 2020-09-05 15:53:53 -04:00
Sean Maas
9a7c6f435a Allow storage access on Android 10 2020-09-03 23:15:07 -04:00
Sean Maas
d54f85ef4b Allow loading NDS and GBA ROMs alongside each other 2020-09-03 20:23:51 -04:00
Sean Maas
3da02c6c23 Android: fix some issues with first-time setup 2020-09-03 16:28:58 -04:00
Sean Maas
612e374dd4 Stub enough WiFi registers to remove the stall hack 2020-08-29 21:28:04 -04:00
Sean Maas
ab97a8540e Android: allow and handle rotation 2020-08-28 23:52:38 -04:00
Sean Maas
60283c2e69 Android: add settings menu, screen layouts, and FPS counter 2020-08-28 23:27:37 -04:00
Sean Maas
aa8636a9f8 Map GBA SRAM in DS mode + minor EEPROM 0.5KB fix 2020-08-18 03:01:59 -04:00
Sean Maas
6995dc56f5 Add an option for threaded 2D rendering 2020-08-08 19:32:44 -04:00
Sean Maas
58884eb05a Improve threaded 3D (again)
Also minor cleanups. I know, I'm still creating new threads every
frame, which is lame. I might do a condition variable in the future,
but I swear creating threads like this is faster than waiting for a
condition variable to wake a thread up! I'm not crazy I swear.
2020-08-08 05:40:31 -04:00
Sean Maas
aec6cad101 Only redraw 3D when it's updated 2020-08-07 00:16:07 -04:00
Sean Maas
e541c066ab Rewrite VRAM mapping to allow proper mirroring
Also removed modulos in mapping for a bit of a speed boost, and
fixed an issue where affine backgrounds could use extended palette.
Fixes graphical issues in New Super Mario Bros. and others.
2020-08-06 20:58:46 -04:00
Sean Maas
c6ccec0339 Add references to the readme 2020-08-06 05:36:39 -04:00
Sean Maas
dbf88ae96c Clean up DMA transfers 2020-08-06 02:01:53 -04:00