Commit Graph

5091 Commits

Author SHA1 Message Date
rogerman 7e3f1d85ae GPU / MMU:
- Do SSE2 optimization for direct-color sprite renders.
- Make ARM9_LCD cache-aligned. Allows for SSE2 to perform aligned load/stores on certain operations, improving performance.
- Further templatize some methods.
- Do some misc. code cleanup.
2015-09-05 22:35:34 +00:00
rogerman ced0d3986d GPU:
- Do heavy code cleanup.
- Split the engine-specific functionality of the main and sub engines into the new GPUEngineA and GPUEngineB subclasses.
- Templatize some parameters. Greatly increases the generated code size, but restores (and possibly improves) performance from r5251.
2015-09-04 02:05:50 +00:00
rogerman 88006197b9 GPU:
- Do heavy code cleanup.
- Encapsulate higher level GPU functions into the new GPUSubsystem class.
2015-09-01 00:13:02 +00:00
rogerman d5280f82b0 GPU:
- Do heavy code cleanup.
- Encapsulate GPU-related functions into the new GPUEngineBase class.
2015-08-28 17:45:12 +00:00
rogerman 5a6590ff49 Windows Port:
- Fix compiling issues on Visual Studio 2015.
2015-08-26 03:06:37 +00:00
rogerman 2967cd2c62 GPU:
- Be smarter about manually inlining functions. Greatly reduces the generated code size, and fixes making optimized builds on MSVC. (Regression from r5248.)
- This change may affect performance. This will need additional testing.
2015-08-26 01:27:24 +00:00
rogerman c36c379e1f Cocoa Port:
- Fix drawing bug where the wrong texture coordinates were being used when a display window is in Touch mode. (Regression from r5249.)
2015-08-25 23:44:19 +00:00
rogerman e344486e8a Cocoa Port:
- Add support for handling combination native/custom rendering sizes.
- As a side-effect of supporting this feature, pixel scalers now work as intended when high-resolution rendering is enabled (but only if the incoming display framebuffer is at the native size).
2015-08-25 18:56:03 +00:00
rogerman e8cd47acf0 GPU:
- Finish support for combination native/custom rendering sizes. Can give a significant performance improvement when running the GPUs at a custom size, but only for frontends that support this feature.
2015-08-25 17:57:00 +00:00
rogerman bccbae0df9 GPU:
- Begin refactoring work in order to support combination native/custom rendering sizes.
2015-08-24 22:12:18 +00:00
rogerman bf5b1505c8 GFX3D:
- Fix bug where the 3D framebuffer didn’t clear properly if the main GPU is disabled. (Regression from r5190 and r5212.)
2015-08-24 19:40:37 +00:00
rogerman 7bc5aca100 Cocoa Port:
- Expose feature for resolution-independent 3D rendering. Currently, 3D rendering may be scaled anywhere from 1x - 16x of the native NDS resolution.
2015-08-20 19:58:40 +00:00
rogerman be5615b477 GPU:
- Fix compiling on WIN32.
2015-08-20 18:57:24 +00:00
rogerman 5cfa2b4797 GPU:
- Rework display capture and the NDS VRAM buffers to support non-native resolutions.
2015-08-20 18:12:25 +00:00
rogerman e1f7039f1b Core:
- Do more explicit casting to fix build errors on C++11 compilers.
- Fix bug with libfat string handling.
2015-08-17 21:15:04 +00:00
rogerman 0fc37d2c06 GPU:
- Fix possible crash during display capture due to aligned access on an unaligned memory block. (Regression from r5239.)
2015-08-10 19:12:53 +00:00
zeromus 76c390b17a fix bug in sndxa2 driver that made it chow major cpu in a busy loop 2015-08-10 15:54:47 +00:00
rogerman 8e3ff3c708 GPU:
- Cleanup and optimize OAM attributes handling. (Special thanks to Twinaphex from libretro for pointing this out to us.)
- Add SSE2 optimizations to display capture operations.
- Do a whole bunch more code cleanup.
2015-08-09 04:32:53 +00:00
rogerman a30ca9e350 Cocoa Port:
- Expose stylus pressure and stylus jitter settings in Emulation > Show Stylus Settings.
2015-08-07 19:37:53 +00:00
rogerman d9bb1f30e2 NDSSystem.cpp:
- Also update stylus jitter setting per frame instead of only on reset.
2015-08-07 19:35:34 +00:00
rogerman 33d69b27f5 Cocoa Port:
- Delete HQ3x LUTs when we’re done using them. (Recommits what was once r5226 before SourceForge screwed it up.)
2015-08-07 19:27:38 +00:00
rogerman a7b62386a7 Cocoa Port:
- Also load/save external firmware settings if Use External Firmware Image is enabled.
- Do some minor code cleanup.
2015-08-07 00:16:35 +00:00
zeromus e0d2567e6c fix #1492 RAM Watch editing problem (dont reorder entries when editing them) 2015-08-06 21:46:35 +00:00
rogerman f06c81d671 SoftRasterizer Renderer:
- Don’t evict the texture cache in the middle of geometry rendering! Fixes app crashing with games like Advance Wars: Days of Ruin that actually need to evict the texture cache. (Regression from r5175.)
- Do some minor code cleanup.
2015-08-06 21:15:26 +00:00
zeromus 761834948d fix r5031 gxfifo regression 2015-08-04 23:11:53 +00:00
rogerman 96c47d6734 OpenGL Renderer:
- Revert r5176 until polygon IDs can be handled correctly in one go. Fixes missing polygon issues in certain games such as missing rings in Sonic Chronicles: The Dark Brotherhood and missing loop traces in the Pokemon Ranger: Shadows of Almia title screen. (Addresses one of the issues noted in bug #1253.)
2015-08-02 06:01:50 +00:00
rogerman ee1a489dc7 OpenGL Renderer:
- Change toon highlight blending to match SoftRasterizer. Fixes the “Shadows of Almia” logo in the Pokemon Ranger: Shadows of Almia title screen. (Addresses one of the issues noted in bug #1253.)
2015-07-31 20:46:00 +00:00
rogerman 8c68f22165 SoftRasterizer:
- Minor tweaks and code cleanup.
2015-07-31 05:54:27 +00:00
rogerman e41857fa82 Render3D:
- Revert the SSE2 bit shift optimizations that were done in r5216. Fixes a regression related to fog, as well as a regression that caused a flickering problem in the title screen of Pokemon Ranger: Shadows of Almia. (Fixes bug #1487.)
2015-07-27 05:06:53 +00:00
rogerman e9d6cc3611 GTK Port:
- Fix crash that occurs after the GTK file chooser is used to load a ROM. (Fixes bug #1486.)
2015-07-25 23:51:45 +00:00
zeromus 5a55349155 support trimmed roms to non 4-aligned sizes (supposedly a regression from 0.9.10) 2015-07-25 23:46:58 +00:00
rogerman 9b370cd602 Render3D:
- Fix possible crash due to aligned access.
2015-07-15 04:34:23 +00:00
rogerman 3c9931b1c8 Cocoa Port:
- In addition to the UI controls in the Show Video Settings panel, also add the “Use Vertical Sync” and “Run Filters on GPU” options to the View menu.
- Disable UI controls for Depth Comparison Threshold, since the setting is now obsolete. (Will need to delete UI controls before release.)
- Also add HQ3x/HQ3xS filters to the Pixel Scaler menu in Display Preferences.
- Fix bug where the HQ3x/HQ3xS filters running on the GPU sometimes wouldn’t draw correctly.
2015-07-15 01:36:48 +00:00
rogerman 7daab3d784 Windows Port:
- Oops! Missed a file that should’ve been committed in r5222.
2015-07-15 00:23:59 +00:00
rogerman 47adbc5455 GPU:
- More code cleanup.
2015-07-15 00:22:49 +00:00
zeromus adae275e16 (windows) fix big fail in auto-selection of .duc import size 2015-07-14 01:11:23 +00:00
zeromus 4a128f946c someone ran static analysis on our code, I guess I should fix what it reported 2015-07-13 03:23:28 +00:00
rogerman 4d77617e3e Cocoa Port:
- Add high-resolution UI artwork for Retina displays.
2015-07-09 08:31:41 +00:00
rogerman 04cbc13a6d Cocoa Port:
- Enable Retina displays to draw video frames at their native resolution. (Tested on the iMac 5K Retina and MacBook Pro Retina.)
2015-07-08 06:49:37 +00:00
rogerman a8ffd1e40c GPU:
- Fix compiling on Windows. Looks like vector intrinsics are mandatory on MSVC. (Regression from r5216.)
2015-07-07 22:39:09 +00:00
rogerman 55516fc20e GPU:
- Do some code cleanup, especially with the SSE2-related code.
- Fix potential crash in the OpenGL renderer when changing the framebuffer size.
2015-07-07 22:16:34 +00:00
rogerman e53e289e77 Cocoa Port:
- Add some additional locks when reading the GPU framebuffer.
2015-07-07 21:24:19 +00:00
rogerman fbda969347 Render3D:
- SSSE3-specific optimizations now only require SSE2.
- Better optimize clear image operations.
2015-07-01 21:24:49 +00:00
rogerman 611d0c9036 Core:
- Fix compiling issues on some platforms. (Regression from r5212.)
2015-06-30 20:09:03 +00:00
rogerman d1db3dd7ef GPU:
- Add new malloc_alignedN() functions for easier dynamic allocation of aligned memory blocks.
- Rework buffer allocations using the new malloc_alignedN() functions.
- To enable SSSE3, also require ENABLE_SSE2 and ENABLE_SSE3.
- Add some more SSE2/SSSE3 optimizations.
- CACHE_ALIGN and malloc_alignedCacheLine() now set 64 byte alignment on 64-bit systems.
- Do a bunch more code cleanup.
2015-06-30 19:25:00 +00:00
rogerman 3b332f3a12 GPU:
- Fix HOFS bug when reading back the 3D framebuffer. Tested in Nanostray 2 by explosions that cause the screen to shake. (Regression from r5210.)
2015-06-20 01:32:32 +00:00
rogerman d28e49dd2b GPU:
- Last major round of code cleanup as a set up for future rework.
2015-06-19 20:13:27 +00:00
rogerman 54fc839208 GPU:
- Revert VRAM readback optimization. Fixes the battle sequence in Golden Sun: Dark Dawn. (Regression from r5208.)
2015-06-17 08:18:00 +00:00
rogerman d3ec1dedfb GPU:
- More code cleanup, and various small optimizations.
- Optimize the OpenGL 3D renderer’s framebuffer flush. (Requires SSSE3.)
2015-06-17 07:15:22 +00:00
zeromus ccf2e76c32 fix windows compiling 2015-06-14 21:07:45 +00:00