Commit Graph

  • 7fc2e4b6b6 GPU: Only perform window testing when the relevant window states actually change. rogerman 2021-09-22 13:24:05 -0700
  • 2fb06cf4cc
    Merge pull request #472 from MathyFurret/patch-1 zeromus 2021-09-21 15:52:18 -0400
  • f42975aa4d GPU: 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
  • db7bfdb185
    Disassembler: Fix LDR/STR immediate offset Alexander B 2021-09-21 12:10:58 -0500
  • b02dd3afaf GPU: Do some more refactoring, mostly related to applying the master brightness. rogerman 2021-09-20 23:14:49 -0700
  • 173e2ae6e7 GPU: Do some code refactoring. rogerman 2021-09-20 19:10:29 -0700
  • 4afbb18eab GPU: 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
  • d6e80e7864 OpenEmu 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
  • e1cadfe112 Linux Port (CLI): Oops! Wrong buffer... rogerman 2021-09-20 11:04:12 -0700
  • 77d38b15b1 Linux 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
  • 004ec526aa GPU: 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
  • 4e96d07678 Fixing urls TornaxO7 2021-09-19 22:28:44 +0200
  • d626bad6bd Fix broken builds due to commit 45787281. rogerman 2021-09-18 23:01:20 -0700
  • 4578728120 GPU: 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
  • c082782fa9 GPU: 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
  • 7dd98ddb45 GPU 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
  • 5b1eb55351 GPU 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
  • 8fce5baefb 0918 44670 2021-09-18 22:34:57 +0800
  • 9ace87207d FIFO: 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
  • 07aadb462e GPU: 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
  • c6d35f9894 Cocoa 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
  • ff28ca6df5
    Merge pull request #468 from anlsh/master zeromus 2021-09-14 23:16:48 -0400
  • 4754987279 Suggest proper file extension for save dialog Anish Moorthy 2021-09-14 20:38:26 -0400
  • 71ed1ca073 Redraw screen in after loading state from file Anish Moorthy 2021-09-14 20:06:37 -0400
  • fffd574aae Disable save/load actions when there is no ROM, but menu is still clickable Anish Moorthy 2021-09-14 19:27:05 -0400
  • 98a1c58db7 Make "Load state from" pressable on linux Anish Moorthy 2021-09-14 19:05:32 -0400
  • 91b2e22894 Make "Save State To" pressable, even if sometimes broken Anish Moorthy 2021-09-14 19:02:28 -0400
  • db6e978276
    Merge pull request #466 from anlsh/master zeromus 2021-09-14 18:38:35 -0400
  • 19b081c8b8 Fix second layer of toolbar Anish Moorthy 2021-09-14 18:05:58 -0400
  • d60684ce4d GPU 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
  • a948838c16 GPU: 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
  • 5057299fa5 Change background color on Linux Anish Moorthy 2021-09-13 23:26:19 -0400
  • 7bac2ce759 GPU: Standardize all aligned memory block allocations to be page-aligned. rogerman 2021-09-13 19:36:27 -0700
  • 8a610234c5 GPU: Simplify GPUSubsystem::PostprocessDisplay(). rogerman 2021-09-13 19:31:31 -0700
  • a5b25313f8 GPU: 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
  • fffa7ebb8c FIFO: 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
  • 533632ca0d Merge branch 'master' of https://github.com/44670/desmume-wasm 44670 2021-09-13 01:08:47 +0800
  • d7faee24e2 vk 44670 2021-09-13 01:08:36 +0800
  • ad64e73bb2 Colorspace 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
  • 329eade565 FIFO: Simplify _DISP_FIFOrecv_LineOpaque32_vec() code paths for non-AltiVec systems. rogerman 2021-09-11 11:50:53 -0700
  • bf71da494e Colorspace 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
  • 3dabb10145 OpenGL 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
  • df18eda84f OpenGL Renderer / SoftRasterizer: Properly handle cases where FogShiftSHR is greater than 10. Related to commit 9f4f3ec. rogerman 2021-09-09 19:54:06 -0700
  • 9f4f3ecf95 GFX3D: 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
  • d9fabf6347 GFX3D: 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
  • c0552cab6d OpenGL Renderer: Do a micro-optimization when NDS-style Depth Calculation is used. rogerman 2021-09-08 23:42:29 -0700
  • 506128760a Do some minor fixes in preparation for making an Apple Silicon build. rogerman 2021-09-08 15:07:02 -0700
  • 9e79b1dcb3 OpenGL 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
  • 8c4e42f98d fix 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
  • f3c3228c70 Windows Port: Fix Windows build. (Regression from commit 037d328.) rogerman 2021-09-07 02:13:35 -0700
  • 037d3285a9 Cocoa Port: Update project files to accommodate new GPU_Operation_* files. Also updates builds for AVX2. rogerman 2021-09-06 19:46:53 -0700
  • 0db98725dc GPU: 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
  • 4226fa7ab2 SPU.cpp: More silencing of compiler warnings, code cleanup, and consistency improvements. rogerman 2021-09-06 15:10:05 -0700
  • 207e93b8ae mc.cpp: Silence a whole bunch of compiler warnings and improve code consistency. rogerman 2021-09-06 14:28:11 -0700
  • 620d3b3a26 Render3D: 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
  • c49a480d51 SoftRasterizer: 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
  • 92fcd1313e OpenGL 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
  • ef35f72172 FIFO: Fix buffer copying for AltiVec. rogerman 2021-09-04 17:42:56 -0700
  • 192e0f88b2 Cocoa Port: Perform post-build code signing for final stage of Release build. rogerman 2021-09-03 12:03:06 -0700
  • 777329a993 Cocoa Port: Fix the OpenGL renderer on macOS v10.7 Lion. rogerman 2021-09-03 02:20:07 -0700
  • 22801dac3c Cocoa Port: Delete now defunct Xcode 9 build scheme. rogerman 2021-09-03 01:07:57 -0700
  • 2b3a7a7e50 Cocoa 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
  • e775f17c87 OpenGL 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
  • ea02efda78 Alright, fix the Windows build for real. rogerman 2021-09-01 02:54:20 -0700
  • 379af45813 Did this fix it? rogerman 2021-09-01 01:18:00 -0700
  • 7eabbb8ea6 Silence a whole lot of longstanding compiler warnings. rogerman 2021-09-01 00:49:50 -0700
  • 0df858f2e8 Cocoa 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
  • 67fa412144 gdbstub.cpp: Fix compiling for builds that use GDB stub. (Regression from commit cfe88ce.) rogerman 2021-08-31 11:06:22 -0700
  • cfe88ce0d7 Core: Silence the 1000+ compiler warnings about using offsetof() on a non-POD type... again. rogerman 2021-08-31 10:23:04 -0700
  • 3f47c4ad7d Cocoa Port: Fix building for Xcode 3. (Regression from commit 03b9481.) rogerman 2021-08-30 20:34:42 -0700
  • 4a9c71b988 Cocoa Port: Also add command queue names for Metal display views. rogerman 2021-08-30 20:07:58 -0700
  • 03b9481095 Cocoa Port: Add thread names for this port's own threads too. rogerman 2021-08-30 20:06:42 -0700
  • 4f8ba2beb9 task.cpp: Support thread naming on macOS. - Related to commit 11fe823 and commit e70e065. rogerman 2021-08-30 20:02:49 -0700
  • 0d51b40479 Do some minor changes to support compilers running strict C++17 conventions. rogerman 2021-08-30 12:50:15 -0700
  • 3b06be0d07 FIFO.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
  • 479c404b60 Core: Fix compiling for AltiVec build targets. rogerman 2021-08-30 12:42:48 -0700
  • 63702ff6bd task: Change to C++03 conventions to support older compilers. Related to commit 5428763. rogerman 2021-08-30 12:39:28 -0700
  • ac472c13ef encrypt.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
  • 9ac09387e3 Cocoa 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
  • b7c9b6b614 Cocoa 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
  • c7f85ba00a Cocoa 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
  • 31851c2524 FIFO.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
  • 79437371e3 Render 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
  • e991b16ec1 matrix.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
  • 64cbba2e24 Cocoa 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
  • 92cb90f433 Cocoa 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
  • a44d7ff406 NWRAM 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
  • 4265ab80ca
    Merge branch 'TASVideos:master' into DSi_Hardware_Support DesperateProgrammer 2021-07-06 10:04:19 +0200
  • d21d10e087 Added 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
  • e0b68059ff switch to audio-worklet 44670 2021-06-22 01:26:05 +0800
  • 978fc53abe audio improvement 44670 2021-06-21 22:46:52 +0800
  • 61ddcb62a8
    Update README.md 44670 2021-06-07 21:36:53 +0800
  • 02624cf5f8 savegame 44670 2021-06-07 19:22:59 +0800
  • e9d38b9799 playable now 44670 2021-06-07 00:01:43 +0800
  • ec400b7f6a compilable 44670 2021-06-06 19:54:45 +0800
  • e8f619c44a winport: fix #442 zeromus 2021-04-09 11:43:20 -0400
  • 9d8332d671 winport - fix #441 (nonsense japanese directory creation on open rom file dialog and other cases probably) zeromus 2021-04-06 15:09:48 -0400
  • 42093b4929 fix #423 more zeromus 2021-04-06 01:12:18 -0400
  • 4b77e9b77a winport - fix file creation time not shown in file menu when filename has moonrunes, fixes #440 zeromus 2021-04-05 22:59:02 -0400
  • 84e8508520 fix WIN32_FRONTEND (broken by PR #350) fixes #432 zeromus 2021-04-05 22:43:33 -0400