0a6aee6421Cocoa Port (OpenEmu Plug-in): Add support for higher 3D rendering resolutions (up to 4x) with texture upscaling. - Brings back compatibility for OpenEmu v1.0.4. (This was done because the v0.9.11 could run on it. Note that the advanced display features still require the latest OpenEmu version.) - Also fixes issues with HUD font rendering.
rogerman
2022-05-05 22:31:13 -0700
dce04f722fCocoa Port: Rename class "GPUEventHandlerOSX" to "GPUEventHandlerAsync". - Also make a stub class of GPUEventHandlerAsync to better control some multithreaded stuff in the OpenEmu plug-in.
rogerman
2022-05-05 14:32:00 -0700
180df28ce7Cocoa Port: Improve the handling of HUD font rendering for OpenGL display views running on old drivers.
rogerman
2022-05-05 14:29:53 -0700
6e26980d87Cocoa Port (OpenEmu Plug-in): Do a complete revamp of the OpenEmu plug-in, giving it the same performance level as the standalone app, plus most of the video display options as the standalone app! - Includes native binaries for Intel 64-bit, Intel 64-bit Haswell, and ARM64. - The Dynamic Recompiler engine for ARM64 processors is now enabled by default, greatly increasing performance on Apple Silicon Macs. - Now includes the full suite of dual-screen display layouts, screen rotations, display gap options, and so on. - The Heads Up Display is now included. - Can use the latest features of OpenEmu v2.3.3 running on macOS Monterey, but is also backwards compatible with OpenEmu v2.0.9.1 running on macOS El Capitan. - Also includes general stability improvements.
rogerman
2022-05-03 13:24:24 -0700
cc530c7a38Cocoa Port: Display presenter objects now cache the font file in memory, just in case a bad client decides to repeatedly force the reloading of the font. (cough... OpenEmu view resizing... cough)
rogerman
2022-05-03 04:21:34 -0700
ccfd5a5a55Cocoa Port: Fix a theoretical crash that may occur on app exit. - This doesn't actually happen in practice, but its good to fix this anyways.
rogerman
2022-05-03 04:17:30 -0700
e2373bc5ffCocoa Port: Calculate the execution speed less often, but more accurately. - Also fix a theoretical memory leak with the Video FPS timer.
rogerman
2022-05-03 04:16:06 -0700
e25fd2e8c5Cocoa Port: Restore the HUD visibility state of an OpenGL presenter if it ever needs to be reinitialized.
rogerman
2022-05-03 04:11:41 -0700
7239c6cfd6Cocoa Port: Small refactor to make the ClientDisplayViewInterface::GetNDSPoint() method always available.
rogerman
2022-05-02 16:10:38 -0700
0e42f772bcCocoa Port: Refactor a few things.
rogerman
2022-04-29 12:04:49 -0700
ba630ee278JIT (ARM): Fix for transformers 32bit JIT, corrects shifts in 64bit jit on non condition shifts - Special thanks to @byte4byte for these fixes.
rogerman
2022-04-28 10:02:22 -0700
a276d8c29cJIT (ARM): Fixes a rendering bug in the SVatGLovesYou demo. - Special thanks to @byte4byte for the fix. His notes: "Fixed rrx shifts"
rogerman
2022-04-27 22:58:53 -0700
a72134539dJIT (ARM): Fix bug that prevented the Titan LMNTS Demo homebrew ROM from starting up. - Special thanks to @byte4byte! His notes: "Fixed cmp operands, Fixes titan homebrew rom"
rogerman
2022-04-27 18:08:34 -0700
ebc39eae64Cocoa Port: Major code refactor to the video display system with the purpose of breaking up multipurpose classes of homogenous data into more focused classes. - Also removes unnecessary Objective-C code and converts it into C++. Objective-C has its place, but not at this level of function.
rogerman
2022-04-27 17:02:04 -0700
908a53e85aJIT (ARM): Fix graphical glitches in "Diddy Kong Racing" and "Pokemon Ranger". - Special thanks again to @byte4byte for this fix. His notes: "Fixes for shifting. Fixes diddy kong racing & pokemon ranger text".
rogerman
2022-04-27 11:24:59 -0700
88f2dfdb53Cocoa Port: Fix a longstanding bug where OpenGL video blitter would fail to render to window correctly on Retina displays.
rogerman
2022-04-27 04:52:25 -0700
cfa75df069JIT (ARM): Fix audio issues with "Chronicles of Narnia: The Lion, the Witch and the Wardrobe". Also fixes incorrect colors in "Transformers: Decepticons" opening movie. - Special thanks to @byte4byte for this fix. His notes: "Corrected OP_SMxxW_ arm64 instructions, fixes narnia & transformers".
rogerman
2022-04-26 13:34:39 -0700
2ab69da5e2JIT (ARM): Fix bugs that caused "Alice in Wonderland" and "Sonic Chronicles: The Dark Brotherhood" to fail to start. - Also fixes ultra slow text timing in "7th Dragon". - Special thanks to @byte4byte for this fix. His notes: "Fixed issue with sbc&adc reg and mvns".
rogerman
2022-04-25 11:18:23 -0700
0b0bee78ccCocoa Port: Remove the dev+ requirement for Dynamic Recompiler on ARM CPUs. The Dynamic Recompiler option is now available for users running Apple Silicon Macs!
rogerman
2022-04-24 14:56:07 -0700
b1ee7e80d5JIT (ARM): Fix a crash when resetting the emulator. Also fixes a memory leak. (Related to commit f12a70f4.)
rogerman
2022-04-24 14:11:33 -0700
f12a70f4b7Add a brand new JIT CPU emulation engine for ARM! Special thanks to user @byte4byte from byte4byte.com for making this new feature! - If you have an ARM processor, expect anywhere between 10% to 50% improvement to CPU emulation performance for most games. - But it isn't quite for prime time just yet. There is a crashing bug related to munmap() at emit_core.cpp:93 that causes the app to crash when resetting the emulator after a game has already been run. - The Cocoa port now enables the new ARM JIT engine for Macs running Apple Silicon processors, but only for dev+ builds. This is due to the crashing bug noted above.
rogerman
2022-04-23 20:00:30 -0700
2e95dda3f5Cocoa Port: Fix some memory leak issues, especially apparent when running Metal display views.
rogerman
2022-04-22 18:23:46 -0700
cd0cc31505Cocoa Port (OpenEmu Plug-in): Remove [OEGameCore changeDisplayMode] deprecation in favor of the latest display mode API. (Related to commit 452c3340.) - Also sets things up for adding new display modes in the future.
rogerman
2022-04-22 04:03:43 -0700
452c33405cCocoa Port (OpenEmu Plug-in): Update DeSmuME's OEGameCore to the latest version of the OpenEmu SDK. - There should be no functional changes in this commit. We're simply mirroring the latest SDK for changes to come. - Fix all deprecations, with the exception of [OEGameCore changeDisplayMode]. This one will be quite involved.
rogerman
2022-04-21 11:13:04 -0700
4708404734Cocoa Port: Disable OpenGL 3D renderer for PowerPC Macs. Also update some tooltips to reflect new app behavior based on previous commits.
rogerman
2022-04-20 22:34:25 -0700
53dd630ea5Cocoa Port: Remove the menu options "Emulation > Show Wi-Fi Settings" and "Tools > Show AV Capture Tool". - The features contained therein aren't ready for prime time, and so they are being pushed out to the next release. - These menu options are still accessible on dev+ builds.
rogerman
2022-04-20 18:43:27 -0700
725ffb5127Cocoa Port: Be a lot cleaner about commenting out non-working code.
rogerman
2022-04-20 18:31:22 -0700
ab38d17feaOpenGL Renderer: Fix rendering on very very very old GPUs, such as the ATi Mobility X1600 (circa 2006). - This change basically returns us to using 1D textures for color LUTs instead of using uniform arrays. 1D textures seem to be more compatible for most older hardware. - Unfortunately, while most older GPUs will work better with this change, this may break the OpenGL renderer on even older GPUs, such as the GeForce 7800 GT (circa 2005). - I'm estimating that more old GPUs benefit from this change than not, and so using 1D textures is what will stand. The vast majority of users will be using hardware newer than this, and so anyone who can't run OpenGL renderer in 2022 can just switch to SoftRasterizer.
rogerman
2022-04-20 18:24:07 -0700
45a2f424e6matrix.cpp: Remove saturation logic from MatrixMultiply(), as this causes characters to disappear during "Kingdom Hearts: Re-coded" character conversations. - This bug was found by enabling FIXED_POINT_MATH_FUNCTIONS_USE_ACCUMULATOR_SATURATE. Since this macro is disabled by default, this commit should not affect any normal operation.
rogerman
2022-04-18 23:29:21 -0700
803c885ef2Cocoa Port: Rollback strong linking of Metal.framework for the x86_64h Final Release build. (Related to commit d0d0f62d.) - Apparently, there are some Macs that have Intel Haswell CPUs that can run macOS versions earlier than El Capitan, so Metal.framework must be weak-linked for the Final Release. - All x86_64h Debug builds and all Apple Silicon builds still retain strong linking with Metal.framework.
rogerman
2022-04-18 17:00:50 -0700
d0d0f62d4dCocoa Port: Strong link Metal.framework for builds that can support it.
rogerman
2022-04-18 16:46:20 -0700
42da2645c1Cocoa Port: Fix a bug where the troubleshooting form text would not switch to Dark Mode appearance.
rogerman
2022-04-18 15:32:06 -0700
864d419513Cocoa Port: Use [MTLDrawable present] instead of [MTLDrawable presentAtTime:]. Does this reduce microstuttering even further?
rogerman
2022-04-18 14:54:54 -0700
bd030db03fCocoa Port: Use a std::queue to keep track of Metal drawable ordering. - This is probably super paranoid and completely overkill, but it makes me feel better to do this. Now there is absolute certainty that nothing can disrupt the drawable order in between rendering and presentation. Microstuttering from mis-ordered drawables can no longer happen.
rogerman
2022-04-18 13:20:41 -0700
32461006d9Cocoa Port: Fix bug where CPU-based video filters would cause wonky colors on PowerPC Macs.
rogerman
2022-04-18 10:03:09 -0700
a758e3f0dfCocoa Port: In DeSmuME Preferences, increase the size of the Input Preferences view from 640x495 to 800x540.
rogerman
2022-04-16 21:50:39 -0700
84e98a0c49Cocoa Port: Fix some bugs related to macOS Mojave's Dark Mode. - Fix a bug where running DeSmuME on a Mac with a non-Haswell 64-bit Intel CPU would fail to switch the GUI icons into Dark Mode, despite the user running Mojave or later. - Fix a bug where the GUI icons would occasionally fail to correctly switch between Light Mode and Dark Mode if the user changed the system appearance in System Preferences while running Mojave or Catalina. - Add a new menu option in "Tools > App Appearance Mode" to manually force DeSmuME's app appearance to reflect Light Mode or Dark Mode. (Only available on dev+ builds.)
rogerman
2022-04-16 20:58:10 -0700
680b3c16a3Cocoa Port: Troubleshooting forms for Public Release builds now display the same detailed app build info as the other builds. - Since the executable can now contain 5 binary slices, having the detailed info available can provide extra insight on the user's runtime environment.
rogerman
2022-04-16 20:40:33 -0700
9035c193c8Cocoa Port: The microphone and speaker icons now adapt their appearance to macOS Mojave's Dark Mode.
rogerman
2022-04-15 17:30:59 -0700
a73705bc50Cocoa Port: Polish the behaviors for hardware microphone authorization. (Related to commit efa72df1.) - Hardware microphone authorization is now requested on app startup instead of when a ROM is loaded. - CoreAudioInput is now better at handling situations when the hardware mic is not available, fixing some bugs with the mic level indicator. - Add some helpful tooltips in the Microphone Settings panel when the hardware mic is not authorized. - Add a new idle mic icon to denote when the hardware mic is not available. (The gray color should denote a 'software only' status.) - Further brighten up the microphone icon for when software samples are active to help with visibility when running Dark Mode.
rogerman
2022-04-15 12:34:05 -0700
02d8f0aa4dOops! Forgot to commit a file.
rogerman
2022-04-14 16:02:47 -0700
899ab48d78GFX3D: Rework how matrix stacks are initialized in an attempt to get MSVC to successfully build Win32. - Access to the matrix stacks has been simplified to the point where MatrixStackInit() and MatrixStackGet() are now obsolete. These functions have been removed.
rogerman
2022-04-14 15:53:15 -0700
965419d7caCocoa Port: Add new microphone and speaker icons in preparation of adding support for macOS Mojave's Dark Mode. - Also adds the AVFoundation framework to the "Xcode (Latest).xcodeproj" file in preparation of new UI related to dealing with macOS Mojave's microphone permissions.
rogerman
2022-04-14 13:55:18 -0700
2645a69005matrix.cpp: Simplify the NEON functions by replacing separate multiply and add instructions with combined multiply-accumulate instructions. - Also simplify the __mtx4_multiply_mtx4_* functions by removing duplicate code.
rogerman
2022-04-13 23:29:34 -0700
efa72df171Cocoa Port: Fix microphone permissions when running macOS v10.14 Mojave and later. (Fixes #475.) - Also fixes another bug where the microphone level indicator won't update when running macOS v10.14 Mojave and later.
rogerman
2022-04-13 17:31:40 -0700
2113af2994Cocoa Port: Update the microphone level once every 4 frames instead of once every 8 frames. This makes the level indicator appear smoother.
rogerman
2022-04-13 17:24:23 -0700
7c90bc592fCocoa Port: Fix broken settings sheets for Input Preferences when running on pre-Mavericks macOS. (Regression from commit e9b3998f, also related to commit 8f20237c.)
rogerman
2022-04-13 15:42:25 -0700
46a8c2385aCocoa Port: Rename one more instance of "OS X Core Audio" to "macOS Core Audio". (Related to commit 62f78f2f.)
rogerman
2022-04-13 11:42:40 -0700
8d1188f552matrix.cpp: Add NEON versions of geometry engine math functions. - Also do some minor bug fixes with some floating-point functions. - Also remove __vec4_dotproduct_vec4_fixed_SSE4() since the function didn't work anyways, and since we now have __vec4_dotproduct_vec4_fixed_NEON() to use as an actual working reference.
rogerman
2022-04-13 02:03:12 -0700
b608a62cd0matrix.cpp: Major cleanup and refactor. All previous functionality and behavior should be retained. - This refactor was done to support future additions of SIMD functions using ISAs other than SSE / SSE4.1. - Add support for fixed-point math functions using accumulators that saturate, following the GEM_TransformVertex() function. This feature requires new testing, and has been disabled for now in order to retain the previous behavior. - Remove the obsolete and unused functions _MatrixMultVec4x4_NoSIMD() and vector_fix2float(). If non-SIMD testing is required, it should be easy enough to comment out the SIMD code paths in the appropriate function in favor of the plain C code path.
rogerman
2022-04-12 17:33:20 -0700
631f2a265eAdded check that index file was actually openned for writing.
Keppl
2022-04-12 19:07:06 -0400
dec93fecfaAdded configuration option to define number of max number of backups. Windows only at the moment.
Keppl
2022-04-11 22:26:16 -0400
970663bf71Fixed bug when writing index, set default max to 200
Keppl
2022-04-11 17:59:17 -0400
53be5f6968Changed loadstate_slot function to keep only 5 latest backups when saving curring state before loading. Once more than 5 exist, oldest one will be overwritten.
Keppl
2022-04-10 22:36:10 -0400
2e6b938378Render3D / SoftRasterizer: Add some more NEON optimizations.
rogerman
2022-04-08 03:43:07 -0700
e8de3db99cCocoa Port: If OpenGL is the Video Output Engine, then drop the revision number from the engine name in the troubleshooting forms. - The only OpenGL version with a revision number is v1.2.1, but the Cocoa port will always use v2.0 or higher. So let's remove the revision number to make things look cleaner. - Also change the tags "DESMUME RUNTIME INFORMATION" to "DESMUME TROUBLESHOOTING INFORMATION", which is more explanatory when the information is copy/pasted into whatever text field it appears in.
rogerman
2022-04-08 01:27:08 -0700
1490a19ad1Cocoa Port: Fix a GUI bug where adding or removing an input mapping in Input Preferences may occasionally cause its outline view to fail to update under certain OS/build combinations. - I solved it by simply reloading the entire outline view instead of picking and choosing specific items to reload. Due to the relatively few amount of items in the outline view (less than 1000 items), reloading the entire outline view is still very fast, even on a PowerPC Mac.
rogerman
2022-04-07 18:21:30 -0700
ed52d0e093Cocoa Port: dev+ builds from the "DeSmuME (Latest).xcodeproj" file no longer generate MainMenu.strings files. - MainMenu.strings files can still be generated from builds from the "DeSmuME (XCode 3).xcodeproj" file, which does result in a cleaner file to begin with.
rogerman
2022-04-07 17:15:00 -0700
62f78f2f24Cocoa Port: Rename the "OS X Core Audio" audio output engine to "macOS Core Audio".
rogerman
2022-04-07 17:02:47 -0700
4df869c309Cocoa Port: Fix a potential crash on startup if Metal is not available. (Regression from commit 6833e315.) - Also change one of Apple's Metal enums to an older version to fix a compiling issue with Xcode 8.
rogerman
2022-04-07 16:28:50 -0700
6833e3159dCocoa Port: Tune up the DeSmuME runtime information in the troubleshooting forms. - Add line for the Video Output Engine. Backend type (OpenGL or Metal), version, and renderer information are all reported. - Remove section breaking dashes, as this causes GitHub's comment parser to reformat the runtime info in unpredictable ways. - To compensate for removing the section breaking dashes, add delimiters for the beginning and the ending of the runtime information. - If the Active Cheat Count is 0, then just report "NO" for Cheats, as this is functionally equivalent, but less confusing to read.
rogerman
2022-04-07 13:29:30 -0700
2efb260b44GPU: Client fetch objects can now have names and descriptions.
rogerman
2022-04-07 13:17:34 -0700
7c036c1d50Cocoa Port: Fix bug where Apple Silicon dev+ builds didn't include "dev+" in their app name.
rogerman
2022-04-07 00:08:03 -0700
31225d0ed1texcache.cpp: Oops! This file accidentally got sent with the last commit before I could clean it up. All unused development/debugging code has now been removed. - Here's what the notes should have said: Add SIMD optimized versions of texture unpacking functions. AVX2, NEON, and AltiVec are now supported.
rogerman
2022-04-06 23:59:56 -0700
28f12cf088Colorspace Handler: Further optimize NEON code. - Commit 9ccc791 was, more or less, a straight port of the SSE2 code, making it less than ideal. This updated version uses more NEON-only instructions to further improve performance.
rogerman
2022-04-06 23:51:29 -0700
27a32d6262Sigh... partially revert commit e8328ed to make Linux builds happy.
rogerman
2022-04-06 10:34:26 -0700
42c59d9257Minor correction related to commit e8328eda. - If this doesn't fix Linux builds (it probably won't), then I will partially revert commit e8328eda to make it work.
rogerman
2022-04-06 10:16:49 -0700
e8328eda33GPU: Clean up some old header stuff now that the SIMD code has been factored out.
rogerman
2022-04-05 23:15:51 -0700
c5c9e2d3a7Colorspace Handler: Pad out some small arrays so that they can be useful for SIMD vector loads. Up to 512-bit vector loads are supported. - For practical reasons, we shouldn't need to pad out any arrays past 64 bytes any time soon.
rogerman
2022-04-05 22:28:43 -0700
b1d49d14ecmatrix.h: Fix compiling on AltiVec-enabled systems. (Regression from commit 8a9fec43.)
rogerman
2022-04-05 22:12:05 -0700
74cdfeea32Colorspace Handler: Fix some bugs with NEON. - These changes shouldn't change existing functionality, but are more to document what the code should actually be doing. Regardless, these changes are truly correct.
rogerman
2022-04-03 15:34:15 -0700
9ccc791e32Colorspace Handler: Add support for NEON-A64.
rogerman
2022-04-02 23:47:21 -0700
8a9fec431amatrix.h: stream_copy_fast() for AltiVec and NEON now mirror their associated buffer_copy_fast() functions, replacing memcpy(). - Since stream_copy_fast() and buffer_copy_fast() are intended for small finite-sized buffers only, we shouldn't need a full memcpy() call with these.
rogerman
2022-04-02 23:43:46 -0700
7e85253ebbCore: Add preliminary support for ARM NEON-A64. The generic memset and buffer_copy functions are now supported. - Note that NEON support is assuming the A64 instruction set. But if there is enough user demand for running the A32 instruction set, and if it is feasible to backport the NEON code to A32, then this may be explored at a later date. But for now, we are sticking with A64.
rogerman
2022-04-02 21:33:14 -0700
Update build.yml for macOS nightlies (regression from commit e9b3998f)
Roger Manuel
2022-04-02 17:36:25 -0700
1f377be17bCore: Do some minor header cleanup.
rogerman
2022-04-02 17:28:02 -0700
a9706059e0Cocoa Port: Fix AltiVec vec_perm() related bugs if building for ppc64. - Apparently, vec_perm() on ppc32 assumes that vec_perm() will always use vectors with 8-bit elements. However, ppc64 vec_perm() can use elements of different sizes, and so we need to typecast every single case of this so that the correct vec_perm() is called on ppc64.
rogerman
2022-04-02 15:57:38 -0700
a677ffd168videofilter.cpp: Silence a compiler warning by initializing the entire SSurface struct instead of just a part of it.
rogerman
2022-04-02 15:53:03 -0700
66c8f91a5eIntrface: Fixes keyword for rom_opened
Marco Köpcke
2022-03-30 20:17:48 +0200
dc02de0a4aNormalized whitespaces for changed lines
Marco Köpcke
2022-03-30 18:33:04 +0200
8699544185Interface: Fix memory leak on opening ROMs, added function to manually free ROMs
Marco Köpcke
2022-03-30 12:30:17 +0200
8f20237c04Cocoa Port: Fixes the use of macOS GUI sheets in Lion and Mountain Lion. (Regression from commit e9b3998f.)
rogerman
2022-04-02 15:40:23 -0700
e9b3998fe8Cocoa Port: Add new build targets for Apple Silicon, and also clean up Release Build targets. - Apple Silicon builds target macOS 11.0 SDK, so almost all deprecation warning associated with this have also been fixed. (The remaining deprecation warnings in preferencesWindowDelegate.mm still need to be fixed in some other way.) - Intel 64-bit developer builds now require macOS 10.12 SDK (Xcode 8 or later). Of note, this produces faster SSE4.1 code by default, but also requires a Penryn-era Core2Duo CPU or later. (Note that Intel 64-bit non-Haswell in release builds still use SSSE3.) - Improves overall stability when running DeSmuME on macOS 10.5 Leopard. - In addition, release builds running Intel 64-bit non-Haswell no longer require macOS 10.7 Lion. They can run on Leopard again! - Finally fix some GUI issues in the About box when running Dark Mode on macOS 10.14 Mojave or later.
rogerman
2022-04-02 13:52:17 -0700
407931288aWiFi: Fix compiling for compilers not running C++11 language features.
rogerman
2022-04-02 13:25:29 -0700