Commit graph

  • 785d1829ec Fix ADPCM loops where the loop and start positions are the same Sean Maas 2021-04-14 14:27:34 -04:00
  • 41fe3cc4ff Switch: optimize bitmap loading Newer versions of devkitA64 seem to make fread take *forever*. Of course, reading every pixel separately was dumb on my part too :P Sean Maas 2021-04-13 23:18:40 -04:00
  • ec324e0c0e fix arm9 memory reads to account for tcm load mode strayacode 2021-04-12 16:40:59 +10:00
  • c541ad446c Update Android NDK version... again Sean Maas 2021-04-08 16:20:23 -04:00
  • 18b1adeefe Move timers to the scheduler Sean Maas 2021-04-07 14:58:19 -04:00
  • 7fe62ddfa9 Halt the CPU when GXFIFO is full + move GXFIFO to scheduler Fixes #23, fixes #38 Sean Maas 2021-04-06 15:50:29 -04:00
  • 70df1a6f9f Minor variable init fixes Sean Maas 2021-04-04 19:17:24 -04:00
  • 7d02fcfb2f Awkward partial transition to actual scheduling Sean Maas 2021-04-04 01:51:43 -04:00
  • c52f9c14cb Implement HLE DLDI support Sean Maas 2021-03-03 13:29:28 -05:00
  • 213dfb879d Update wxWidgets package name for Linux autobuild Sean Maas 2021-02-13 11:35:57 -05:00
  • 18c2be1f4e Support loading encrypted NDS ROMs Sean Maas 2021-01-30 14:57:21 -05:00
  • 3602faeda9 Process GX commands per-command instead of per-parameter Sean Maas 2021-01-18 17:01:53 -05:00
  • 7632d0bdab Update copyright years Sean Maas 2021-01-13 15:36:59 -05:00
  • 1f89915e2a Update Android NDK version Sean Maas 2021-01-13 15:28:32 -05:00
  • 7c9cb15acd Separate buffer for raw 2D, finish scanline before display capture Fixes the absurd case of capturing from engine A while displaying the same block of memory with VRAM display (looking at you, Golden Sun) Sean Maas 2021-01-13 15:02:46 -05:00
  • 2efd184cfc Add an icon Sean Maas 2021-01-08 13:40:11 -05:00
  • a2b52ff4e1 Anti-aliasing optimization and minor 3D fixes -Only render back pixels under anti-aliased edges -Handle shadow polygons properly WRT layers -Perform equal depth test properly Sean Maas 2021-01-06 15:53:56 -05:00
  • ecd3c64bd7 Android: add icons to the file browser Sean Maas 2021-01-04 20:27:01 -05:00
  • a218b5dad5 Allow simultaneous ROM loading on all platforms Sean Maas 2021-01-04 16:01:09 -05:00
  • 1ca1291991 Target Android 10 instead of Android 11 Fixes file access on Android 11 Sean Maas 2021-01-01 04:24:18 -05:00
  • bd08ee0044 Preserve edge alpha when drawing transparent pixels Sean Maas 2020-12-30 15:14:57 -05:00
  • 2368cc17d0 Fix V-counter triggering a scanline too late Sean Maas 2020-12-30 02:24:57 -05:00
  • 4e21643ff6 Initial anti-aliasing edge calculations Not exactly accurate to hardware, but it works for now :) Sean Maas 2020-12-29 21:56:16 -05:00
  • 88e96eaf6b Anti-aliasing base and transparent edge marking Need some more time to figure out the formulas behind anti-aliasing itself. This unfortunately brings a bit of a performance hit, but it's a necessary evil. Sean Maas 2020-12-28 21:38:08 -05:00
  • 5cf070dbd1 Minor edge adjustments Sean Maas 2020-12-27 02:14:01 -05:00
  • 05494504c7 Fix edge marking when using more than 2 threads Sean Maas 2020-12-27 00:01:39 -05:00
  • e7da8ed65b Implement edge marking Sean Maas 2020-12-24 17:49:37 -05:00
  • 26c5824681 Make edge hiding per-pixel instead of per-polygon Sean Maas 2020-12-24 09:17:12 -05:00
  • 22d7a38cbf Hide some edges for opaque polygons with no edge effects Sean Maas 2020-12-24 02:12:40 -05:00
  • 24b11670f9 Make a bunch of functions static Sean Maas 2020-12-23 23:40:08 -05:00
  • 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. Sean Maas 2020-12-23 19:45:48 -05:00
  • 873c7d2a3d Precalculate polygon bounds and skip them when possible Sean Maas 2020-12-17 21:07:31 -05:00
  • 8dc7f11fb8 Slight interpreter optimization This will also make it easier to return cycle counts in the future Sean Maas 2020-12-15 17:32:31 -05:00
  • 10b758c314 A few minor cleanups Sean Maas 2020-12-15 12:28:42 -05:00
  • 96656f9152 Make overclock configurable on Switch Sean Maas 2020-12-13 17:11:17 -05:00
  • f2a2b78688 Properly handle HALTCNT in GBA mode Sean Maas 2020-12-13 01:38:00 -05:00
  • 0908399202 Make GBA cart accesses much less terrible Sean Maas 2020-12-10 18:54:17 -05:00
  • 11d8bf2189 Fix inverted source selection for blended display capture Sean Maas 2020-12-09 15:59:12 -05:00
  • 957df72a7d Make GBA cart accesses slightly less terrible Sean Maas 2020-12-07 23:30:15 -05:00
  • c00bb1f5fb Handle DS math edge cases Sean Maas 2020-12-06 23:10:57 -05:00
  • be7eb7a12b Fix CP15 direct boot values oops Sean Maas 2020-12-05 15:12:17 -05:00
  • 60b655f3ff Fix a potential lock-up when pausing Sean Maas 2020-11-19 21:57:51 -05:00
  • 578d866966 Android: add restart and save type selector Sean Maas 2020-11-19 21:29:41 -05:00
  • 0deeeb3a1a Android: add basic in-game menu Sean Maas 2020-11-19 00:30:23 -05:00
  • ed48115656 Allow empty SAD for pulse/noise channels Fixes missing sounds caused by 3d7a637. Sean Maas 2020-11-17 22:43:55 -05:00
  • af4fa903ad Switch: add save type selector Sean Maas 2020-11-17 21:58:44 -05:00
  • efb901aefd Implement mostly-complete sound capture Just missing the channel 0/2 stuff because I don't have a test case. Sean Maas 2020-11-17 18:16:39 -05:00
  • 3d7a637b14 Various DS sound fixes Fixes #28. Sean Maas 2020-11-17 00:10:01 -05:00
  • 1b836c7569 Allow toon/highlight for polygons with no texture Fixes the star effect in Mario Kart. Sean Maas 2020-11-16 21:19:08 -05:00
  • bf194b28b1 Rename math to div_sqrt Closes #40. Sean Maas 2020-11-16 08:59:14 -05:00
  • 8c377c4090 Only mark the 3D rear plane as transparent if it exists Sean Maas 2020-11-15 14:01:01 -05:00
  • 4640013cfc Support drag-and-drop ROM loading Sean Maas 2020-11-15 13:31:53 -05:00
  • e0ea6c0b33 Add the ability to trim ROMs Sean Maas 2020-11-11 02:22:29 -05:00
  • 4e0c89e6a4 Store vertices as 32-bit instead of 64-bit And other minor cleanups Sean Maas 2020-11-06 22:26:21 -05:00
  • ba2636f05f Properly handle invalid viewports Sean Maas 2020-11-06 13:56:41 -05:00
  • 1c559a4ac0 Fix transparent pixels drawn over pixels with alpha 0 Sean Maas 2020-11-05 23:28:58 -05:00
  • 9145f46463 Make interpolation accurate to hardware, quirks and all Sean Maas 2020-11-02 22:14:54 -05:00
  • c9dfecfc25 Use a swap macro to simplify some code Sean Maas 2020-11-02 15:34:18 -05:00
  • b4d81e717b Properly handle non-32-bit writes to the GBA sound FIFO Sean Maas 2020-10-31 01:34:58 -04:00
  • 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 Sean Maas 2020-10-29 21:06:07 -04:00
  • e72f28ca8c Add more screen gap sizes Sean Maas 2020-10-26 10:22:56 -04:00
  • 56f5c78c12 Android: use OpenGL to draw the screens Also lowkey removed the Patreon link Sean Maas 2020-10-05 19:25:28 -04:00
  • ae7b5aff23 Desktop: add support for binding keys to a gamepad Sean Maas 2020-09-05 21:23:40 -04:00
  • 91be8aa139 Desktop: add fast forward and full screen keys Sean Maas 2020-09-05 15:53:53 -04:00
  • 9a7c6f435a Allow storage access on Android 10 Sean Maas 2020-09-03 23:15:07 -04:00
  • d54f85ef4b Allow loading NDS and GBA ROMs alongside each other Sean Maas 2020-09-03 20:23:51 -04:00
  • 3da02c6c23 Android: fix some issues with first-time setup Sean Maas 2020-09-03 16:28:58 -04:00
  • 612e374dd4 Stub enough WiFi registers to remove the stall hack Sean Maas 2020-08-29 21:12:14 -04:00
  • ab97a8540e Android: allow and handle rotation Sean Maas 2020-08-28 23:52:38 -04:00
  • 60283c2e69 Android: add settings menu, screen layouts, and FPS counter Sean Maas 2020-08-28 23:27:37 -04:00
  • aa8636a9f8 Map GBA SRAM in DS mode + minor EEPROM 0.5KB fix Sean Maas 2020-08-18 03:01:59 -04:00
  • 6995dc56f5 Add an option for threaded 2D rendering Sean Maas 2020-08-08 19:26:04 -04:00
  • 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. Sean Maas 2020-08-08 05:40:31 -04:00
  • aec6cad101 Only redraw 3D when it's updated Sean Maas 2020-08-07 00:12:47 -04:00
  • 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. Sean Maas 2020-08-06 20:58:46 -04:00
  • c6ccec0339 Add references to the readme Sean Maas 2020-08-06 05:36:39 -04:00
  • dbf88ae96c Clean up DMA transfers Sean Maas 2020-08-06 02:01:53 -04:00
  • 62481d9b94 Add touch input and button hide toggle for Android Sean Maas 2020-08-05 20:35:24 -04:00
  • 37b8f663bc Make VRAMCNT registers readable Fixes libnds texture functions. Not sure why GBATEK says they're write-only? Sean Maas 2020-08-04 00:07:48 -04:00
  • aa81b164f7 Fix 3D Y coordinates being one pixel off Sean Maas 2020-08-02 22:19:15 -04:00
  • a43f19e5e9 Write the save file whenever the emulator is paused This should hopefully fix cases of the Android build not always writing save files properly. Sean Maas 2020-08-01 20:52:40 -04:00
  • 5bf140add0 Add proper on-screen buttons for Android Sean Maas 2020-08-01 20:31:19 -04:00
  • c8c2ddb095 Fix the Switch buildbot (again) No, I will not just use the latest devkitA64; it breaks things and has worse performance :P Sean Maas 2020-08-01 00:00:49 -04:00
  • 78562ede5d Handle a weird DMA edge case Finally fixes the DS Zelda games! In other news, the DMA code desperately needs a cleanup... Sean Maas 2020-07-31 23:08:36 -04:00
  • 63bd27104a Oops, remember to ignore the prescaler in count-up mode Sean Maas 2020-07-28 03:20:01 -04:00
  • 0232c61a93 Optimize timer prescaling Sean Maas 2020-07-27 22:36:55 -04:00
  • e10892ae88 Axe getVramBlock() and other cleanups Sean Maas 2020-07-25 18:11:51 -04:00
  • 93be19c769 Optimize 2D rendering (again) and handle GBA object edge case Fixes #7 Sean Maas 2020-07-24 21:38:13 -04:00
  • 58571f3b8d Barebones Android port The absolute mad lad Sean Maas 2020-07-23 14:37:21 -04:00
  • dfac99c377 Use Docker for Switch buildbot + other improvements Sean Maas 2020-07-14 16:26:55 -04:00
  • c0323f1b9c Move interrupt handling out of the main loop Sean Maas 2020-07-12 13:03:22 -04:00
  • 9624e7ac08 Update some links Sean Maas 2020-07-12 11:54:40 -04:00
  • 4fd535f305 Add support for EEPROM 128KB DS saves and EEPROM 0.5KB GBA saves EEPROM 128KB is used by Pokemon Mystery Dungeon: Explorers of Sky. It uses a 3-bit address bus, so I previously mistook it as using a FLASH save. EEPROM 0.5KB uses the same ID string as EEPROM 8KB on the GBA, so some messy on the fly detection was added. Eventually there will be some form of detection for DS games too, as well as manual overrides for both. Sean Maas 2020-07-02 02:45:32 -04:00
  • 0eaa0e99e5 Update devkitPro pacman Sean Maas 2020-07-01 21:36:51 -04:00
  • aab70b0090 Refactor in preparation for a proper scheduler Sean Maas 2020-07-01 21:27:40 -04:00
  • 01ba2cacef Implement wireframe polygons Fixes #34 Sean Maas 2020-06-27 03:31:40 -04:00
  • 2b5d90cf67 Properly handle unaligned halfword loads on ARM7 Sean Maas 2020-06-25 21:31:57 -04:00
  • 0e814981aa Fix some ALU edge cases -Read PC+4 when Rn=PC and shfiting by register -Set carry flag for immediate operands Sean Maas 2020-06-25 20:43:31 -04:00
  • 31480e67b4 Improve W normalization Sean Maas 2020-06-21 11:55:41 -04:00
  • 11c5959e90 Transparency and stencil buffer fixes Based on http://melonds.kuribo64.net/board/thread.php?id=13 Sean Maas 2020-06-21 08:50:13 -04:00