Merge pull request #472 from MathyFurret/patch-1
zeromus
2021-09-21 15:52:18 -0400
f42975aa4dGPU: Remove some dubious or now obsolete templates for OUTPUTFORMAT. Shouldn't affect performance, but does slightly decrease the code size.
rogerman
2021-09-21 11:40:09 -0700
Disassembler: Fix LDR/STR immediate offset
Alexander B
2021-09-21 12:10:58 -0500
b02dd3afafGPU: Do some more refactoring, mostly related to applying the master brightness.
rogerman
2021-09-20 23:14:49 -0700
173e2ae6e7GPU: Do some code refactoring.
rogerman
2021-09-20 19:10:29 -0700
4afbb18eabGPU: Correctly resolve the 18-bit and 24-bit colorspaces to 32-bit when auto-resolving is enabled. Fixes#471. - Also revert commits e1cadfe and 77d38b1. Using masterNativeBuffer16 was the correct choice here after all.
rogerman
2021-09-20 15:06:34 -0700
d6e80e7864OpenEmu Plug-in: This frame buffer also needs to use masterCustomBuffer because it's running 18-bit color space.
rogerman
2021-09-20 11:12:19 -0700
e1cadfe112Linux Port (CLI): Oops! Wrong buffer...
rogerman
2021-09-20 11:04:12 -0700
77d38b15b1Linux Port (CLI): Take a shot in the dark at #471, but I have no way to test it. - It's a regression from commit 4578728. I'm suspecting that this particular buffer is to be read as 32-bit since all of the other Linux frontends explicitly used 16-bit except for this one.
rogerman
2021-09-20 11:02:24 -0700
004ec526aaGPU: Completely revert commit a948838. I forgot that Zelda PH and Zelda ST could use both GPU engines for the same display when moving the map to and from the touch screen, and so native line tracking MUST be performed at the display level in order to account for this. - Added some additional comments so that I'm not tempted to change the native line tracking paradigm ever again. - Do some refactoring to make GPUEngineBase::_targetDisplay handle more buffer associations itself instead of relying on GPUEngineBase's copies of the associations.
rogerman
2021-09-20 01:23:06 -0700
d626bad6bdFix broken builds due to commit 45787281.
rogerman
2021-09-18 23:01:20 -0700
4578728120GPU: Change the rendering paradigm where, rather than performing inline colorspace conversions during rendering, all rendering is performed at 15-bit until 3D rendering or 24-bit custom VRAM creates the need for a color space conversion. - For purposes of maintaining a record and make for easier reversions, the code has NOT been fully optimized or cleaned up. This will happen over a period of time as the code settles down through testing. - All "native" buffers are no longer assumed to be in any color space and are now assumed to always be 15-bit. The native buffers are now referenced using uint16_t pointers and are now suffixed with "16" in order to reflect this change. - Of note, all clients that reference masterNativeBuffer or nativeBuffer via NDSDisplayInfo must now assume that these native buffers will always be in the 16-bit color space. - Any 18-bit and 24-bit rendering now happens in the custom buffers.
rogerman
2021-09-18 22:36:40 -0700
c082782fa9GPU: Fix main memory capture on big-endian systems when running 15-bit and 18-bit mode. - 24-bit mode is still bugged on big-endian systems. This will be fixed at a later date.
rogerman
2021-09-18 20:35:51 -0700
7dd98ddb45GPU Operations: Fix a bug where running 18-bit color, 24-bit color, or a custom framebuffer size would cause a crash on systems without SSE2 or AVX2. (Regression from commit 0db9872.)
rogerman
2021-09-18 15:44:42 -0700
5b1eb55351GPU Operations (SSE2): Apply the same code optimizations to the PixelOperation_SSE2::_unknownEffectMask16() and PixelOperation_SSE2::_unknownEffectMask32() methods as their corresponding AVX2 versions. - Also fixes a bug in PixelOperation_SSE2::_unknownEffectMask32() that would cause 3D layers to appear black if the user was running 15-bit color mode. (Regression from commit 0db9872.)
rogerman
2021-09-18 13:57:07 -0700
9ace87207dFIFO: Fix a bug where running 18-bit or 24-bit color depth would cause a buffer overrun. (Regression from commit 329eade.)
rogerman
2021-09-16 18:36:42 -0700
07aadb462eGPU: Partially revert commit a948838. It still bothered me that native line tracking wasn't individually handled for rendered lines and displayed lines, and so this paradigm has been restored. However, native line tracking continues to be handled purely with GPUEngineBase. - GPUSubsystem::ClearWithColor() also now handles clearing the master framebuffer with better specificity.
rogerman
2021-09-16 15:24:23 -0700
c6d35f9894Cocoa Port: Metal display views can now handle the possibility where the fetched main and touch display framebuffers are in different colorspaces.
rogerman
2021-09-16 15:16:37 -0700
Merge pull request #466 from anlsh/master
zeromus
2021-09-14 18:38:35 -0400
19b081c8b8Fix second layer of toolbar
Anish Moorthy
2021-09-14 18:05:58 -0400
d60684ce4dGPU Operations: Fix bug where generic calls to CopyLine*<>() caused certain compilers to interpret 0xFFFF as -1 in all cases. - This fix has the side effect of greatly increasing the code size. - Quick testing shows that this fix increases overall graphics performance by 2% - 3%. But is this small performance gain worth the massive increase in code size? Hmmm....
rogerman
2021-09-14 14:49:31 -0700
a948838c16GPU: Native lines are no longer tracked through NDSDisplay. Native lines are now only tracked through GPUEngineBase. - While this is technically incorrect according to object roles, tracking native lines this way makes it a bit easier to manage them.
rogerman
2021-09-14 01:53:05 -0700
5057299fa5Change background color on Linux
Anish Moorthy
2021-09-13 23:26:19 -0400
7bac2ce759GPU: Standardize all aligned memory block allocations to be page-aligned.
rogerman
2021-09-13 19:36:27 -0700
a5b25313f8GPU: The internal buffer for custom-sized layer IDs is now cleared in its entirety, rather than just most of it.
rogerman
2021-09-13 19:30:47 -0700
fffa7ebb8cFIFO: Oops! Fix a bug that snuck in from commit 31851c2. - In practice, no games seemed to be affected by this bug, but even so, this fix is correct. - While technically unnecessary, when the index is singly incremented, it's better to hard reset an overrunning index to zero in order to improve the theoretical stability of the code.
rogerman
2021-09-13 10:42:39 -0700
ad64e73bb2Colorspace Handler: Colorspace conversions no longer do big-endian byte swapping by default. Instead, byte swapping must be explicitly requested. - Byte swapping can now be independently controlled for both input and output data. - As an application to this new API, VRAM display mode now shows the correct colors on big-endian systems.
rogerman
2021-09-11 20:59:41 -0700
bf71da494eColorspace Handler: Make the ColorspaceConvert555To*_AltiVec() functions behave consistently with their scalar counterparts by byte swapping the result. Fixes SoftRasterizer's toon table colors on AltiVec-enabled systems.
rogerman
2021-09-11 11:49:07 -0700
3dabb10145OpenGL Renderer: The fog density table is now sampled as a 1D texture instead of being indexed as a uniform array. Should yield a performance improvement on older GPUs. - Even if the new fog rendering yields no performance improvement on newer GPUs, at least the new code is MUCH cleaner and simpler.
rogerman
2021-09-10 10:13:11 -0700
df18eda84fOpenGL Renderer / SoftRasterizer: Properly handle cases where FogShiftSHR is greater than 10. Related to commit 9f4f3ec.
rogerman
2021-09-09 19:54:06 -0700
9f4f3ecf95GFX3D: Oops, I misread GBATEK. It actually meant that the Fog Step (not the Fog Shift) would become zero if Fog Shift was greater than 10. So set Fog Shift to 11 in this case. - This also discovers an existing issue with the fog weight calculation code in both OpenGL and SoftRasterizer, since Fog Shift could be zero and thereby cause the calculations to divide by zero. This issue will have to be dealt with at a later time.
rogerman
2021-09-09 13:59:25 -0700
d9fabf6347GFX3D: So apparently, GBATEK says that, instead of clamping the FogShiftSHR value to 10, the FogShiftSHR value should reset to 0 if it goes above 10. Hmm, okay.
rogerman
2021-09-09 13:34:47 -0700
c0552cab6dOpenGL Renderer: Do a micro-optimization when NDS-style Depth Calculation is used.
rogerman
2021-09-08 23:42:29 -0700
506128760aDo some minor fixes in preparation for making an Apple Silicon build.
rogerman
2021-09-08 15:07:02 -0700
9e79b1dcb3OpenGL Renderer: Fog rendering now works like how SoftRasterizer does it. (3.2 only) - Also rework SoftRasterizerRenderer::_UpdateFogTable() to use the same variable naming scheme as OpenGL. This is done for better code consistency. - In reality, I'm already looking to scrapping this algorithm in OpenGL for something that could be better in every possible way, but I want to commit this SoftRasterizer-esque algorithm first so that we have a working version of it on record.
rogerman
2021-09-08 12:54:35 -0700
8c4e42f98dfix bug that made desmume get a random MAC address on each boot without anybody knowing it or asking for it. this triggered time-travel protections in games.
zeromus
2021-09-08 04:13:22 -0400
f3c3228c70Windows Port: Fix Windows build. (Regression from commit 037d328.)
rogerman
2021-09-07 02:13:35 -0700
037d3285a9Cocoa Port: Update project files to accommodate new GPU_Operation_* files. Also updates builds for AVX2.
rogerman
2021-09-06 19:46:53 -0700
0db98725dcGPU: Do a massive refactor of the manually vectorized code and add full support for AVX2. - Most notably, each version of the manually vectorized code now resides in their own files. - Depending on the rendering situation, the new AVX2 code may increase rendering performance by 5% to up to 50%. - Certain functions automatically gain manual vectorization support since the new GPU code makes use of the new general-purpose copy functions that were added in commit e991b16. In other words, AVX-512 and AltiVec builds also benefit from this.
rogerman
2021-09-06 18:00:38 -0700
4226fa7ab2SPU.cpp: More silencing of compiler warnings, code cleanup, and consistency improvements.
rogerman
2021-09-06 15:10:05 -0700
207e93b8aemc.cpp: Silence a whole bunch of compiler warnings and improve code consistency.
rogerman
2021-09-06 14:28:11 -0700
620d3b3a26Render3D: Fix clear image on big-endian systems. - Also renames "Altivec" to "AltiVec" to remain consistent with Colorspace Handler's naming. - Also adds an AltiVec accelerated version of the clear image parser.
rogerman
2021-09-05 01:25:13 -0700
c49a480d51SoftRasterizer: Due to how the class inheritance works, SoftRasterizer_AVX actually requires AVX2 instead of just AVX. And in reality, AVX2 is just more practical than AVX for what we're doing here. - Also do some minor refactoring of Render3D.
rogerman
2021-09-04 19:31:55 -0700
92fcd1313eOpenGL Renderer: Do a minor optimization when running NDS-Style Depth Calculation. - As a positive side-effect, generating the geometry shaders now runs quicker too.
rogerman
2021-09-04 17:50:10 -0700
ef35f72172FIFO: Fix buffer copying for AltiVec.
rogerman
2021-09-04 17:42:56 -0700
192e0f88b2Cocoa Port: Perform post-build code signing for final stage of Release build.
rogerman
2021-09-03 12:03:06 -0700
777329a993Cocoa Port: Fix the OpenGL renderer on macOS v10.7 Lion.
rogerman
2021-09-03 02:20:07 -0700
2b3a7a7e50Cocoa Port: Update Final Release builds to split 32-bit and 64-bit binaries between Xcode 9 and Xcode 12, respectively. - Final Release builds still remain as PowerPC 32-bit, Intel 32-bit, and Intel 64-bit. ARM64 is not supported yet. - PowerPC 32-bit and Intel 32-bit continue to require macOS v10.5 Leopard like before, but the Intel 64-bit binary now requires macOS v10.7 Lion or later. (Now, the Intel 64-bit binary will simply fail to run on Leopard and Snow Leopard.)
rogerman
2021-09-02 22:53:45 -0700
e775f17c87OpenGL Renderer: Fix some issues where shaders wouldn't work on older/stricter video drivers. - Specifically, we're now respecting uniform control flow for texture lookups, for which older/stricter drivers will silently fail because they consider texture lookups within conditional blocks to be undefined.
rogerman
2021-09-02 22:44:12 -0700
ea02efda78Alright, fix the Windows build for real.
rogerman
2021-09-01 02:54:20 -0700
379af45813Did this fix it?
rogerman
2021-09-01 01:18:00 -0700
7eabbb8ea6Silence a whole lot of longstanding compiler warnings.
rogerman
2021-09-01 00:49:50 -0700
0df858f2e8Cocoa Port: Add the ability for the user to set a fixed frame skip value, just like in the Windows port. This is in addition to the existing automatic frame skip setting.
rogerman
2021-08-31 13:56:07 -0700
67fa412144gdbstub.cpp: Fix compiling for builds that use GDB stub. (Regression from commit cfe88ce.)
rogerman
2021-08-31 11:06:22 -0700
cfe88ce0d7Core: Silence the 1000+ compiler warnings about using offsetof() on a non-POD type... again.
rogerman
2021-08-31 10:23:04 -0700
3f47c4ad7dCocoa Port: Fix building for Xcode 3. (Regression from commit 03b9481.)
rogerman
2021-08-30 20:34:42 -0700
4a9c71b988Cocoa Port: Also add command queue names for Metal display views.
rogerman
2021-08-30 20:07:58 -0700
03b9481095Cocoa Port: Add thread names for this port's own threads too.
rogerman
2021-08-30 20:06:42 -0700
4f8ba2beb9task.cpp: Support thread naming on macOS. - Related to commit 11fe823 and commit e70e065.
rogerman
2021-08-30 20:02:49 -0700
0d51b40479Do some minor changes to support compilers running strict C++17 conventions.
rogerman
2021-08-30 12:50:15 -0700
3b06be0d07FIFO.cpp: For AVX-512 built targets only, correct _DISP_FIFOrecv_LineOpaque32_vec() to require Tier-1 support instead of Tier-0.
rogerman
2021-08-30 12:44:30 -0700
63702ff6bdtask: Change to C++03 conventions to support older compilers. Related to commit 5428763.
rogerman
2021-08-30 12:39:28 -0700
ac472c13efencrypt.h: Change to C++03 conventions to support older compilers. - This change partially reverts commit 87cb2f6, but still preserves the elimination of the destructor, which is probably the code simplification that was originally wanted, I guess.
rogerman
2021-08-30 12:29:09 -0700
9ac09387e3Cocoa Port: Fix a bug where changing the GPU Scaling Factor or GPU Color Depth while the emulator is paused would cause the program to freeze upon restarting the emulation via Run, Frame Advance, or Frame Jump.
rogerman
2021-08-27 14:48:22 -0700
b7c9b6b614Cocoa Port: Fix a bug where the Frame Advance and Frame Jump buttons in the Execution Control panel would cause the other buttons to enable/disable themselves inconsistently, but only if the .app was built on Xcode 10 or later. - Apparently, KVO-based UI updates being made across threads are a big no-no in the macOS v10.14 SDK and later. So now we need to make sure that ALL KVO-based UI updates are done on the main thread only.
rogerman
2021-08-27 13:35:10 -0700
c7f85ba00aCocoa Port: Fix a bug where the video filter preview in Preferences would display a black box if the .app was built using Xcode 10 or later. - Also make OGLImage run a little more efficiently.
rogerman
2021-08-27 03:03:44 -0700
31851c2524FIFO.cpp: Add new manually vectorized versions of FIFO buffer line copies for AVX2, AVX-512, and AltiVec.
rogerman
2021-08-26 18:05:53 -0700
79437371e3Render 3D: In the vectorized code, tweak how memory is indexed. Not only does this make the code more consistent, but it might make some subtle code generation improvements in the compiled code (depending on compiler and optimization settings).
rogerman
2021-08-26 17:08:10 -0700
e991b16ec1matrix.h: Add more general-purpose vectorized fixed copy functions. (They don't actually do anything as of this commit, but they will be used in future commits.)
rogerman
2021-08-26 16:36:54 -0700
64cbba2e24Cocoa Port: Fix crashes and improve stability. - Fixes a crash that can occur on startup or when modifying the Video Pixel Scaler in Preferences. Fixes#321. (Regression from commit 0663661.) - Fixes a crash on startup where write+execute privileges returned by mprotect() are not supported when compiled against the macOS v10.15 SDK or later. Fixes#335. - Fixes a possible crash that can occur if an invalid ID is sent when trying to set the 3D Rendering Engine. Maybe fixes#342.
rogerman
2021-08-26 16:09:50 -0700
92cb90f433Cocoa Port: Fix build errors that can occur when building on Xcode versions later than 10.3. - The script that renames the DeSmuME.app package with the git version now runs as a Build Post-Action script rather than as the last build rule. This is to fix an incompatibility with code signing, which is now forced in Xcode 11 and later. - Update some variables to comply with newer and stricter compiler rules.
rogerman
2021-08-26 14:32:25 -0700
a44d7ff406NWRAM Initialization for a consistent startup setting. (Was handled by the default initialization, which might not be valid in all compiler settings)
Tim Seidel
2021-07-06 11:10:53 +0200
Merge branch 'TASVideos:master' into DSi_Hardware_Support
DesperateProgrammer
2021-07-06 10:04:19 +0200
d21d10e087Added DSi NWRAM support Guarded by define DSI_NEWWRAM, which is currently only set for the VS Studio Project
Tim Seidel
2021-07-06 09:28:15 +0200
e0b68059ffswitch to audio-worklet
44670
2021-06-22 01:26:05 +0800