Commit graph

34932 commits

Author SHA1 Message Date
Connor McLaughlin
0c11dca121 VideoBackends/D3D: Cache bounding box values between reads 2021-05-28 19:30:46 +10:00
JMC47
ee4c0ba168
Merge pull request #9757 from Pokechu22/oob-ind-stage
Skip indirect operation for out of bounds indirect stages
2021-05-28 01:47:06 -04:00
Pokechu22
5928182a4c Skip indirect operation for out of bounds indirect stages
This fixes rendering issues in Viewtiful Joe (https://bugs.dolphin-emu.org/issues/12525), but it is not entirely hardware accurate, as hardware testing showed other, more complex behavior in this case.  However, it should be good enough for our purposes.
2021-05-27 22:13:42 -07:00
JMC47
1827e7a166
Merge pull request #9724 from Bonta0/ffcc-gbafix
GameINI: Fix Final Fantasy Crystal Chronicles GBA race condition
2021-05-27 20:20:55 -04:00
JMC47
45a5c9cc04
Merge pull request #9697 from Filoppi/cursor_locking
Implement Cursor Locking and input focus checks for it
2021-05-27 11:42:35 -04:00
Techjar
36dd4cc232 GameSettings: Set 59 block memory card for Pokémon Box: Ruby & Sapphire (JAP) 2021-05-27 03:51:02 -04:00
Techjar
33a6701e56 Replace MemoryCard251 setting with generic MemoryCardSize
This allows for a broader range of game-specific memory card sizes to
be configured.
2021-05-27 03:50:57 -04:00
Filoppi
3c7c2dfaa1 Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
Mai M
52a388af9a
Merge pull request #9754 from JosJuice/netplay-memcard-region
NetPlay: Check that memory card region is valid
2021-05-26 20:57:58 -04:00
Mai M
e32cf29f76
Merge pull request #9755 from phire/dump_xfb_gui
Port Dump XFB Target option to Qt UI.
2021-05-26 20:57:19 -04:00
Scott Mansell
37e532322b Port dump XFB option to Qt UI.
Looks like the option was added to the Wx UI at commit 198d3b69, which
was a few months after the advancedWidget was originally ported from
Wx to Qt, but before anyone was actually using Qt.
2021-05-27 12:48:36 +12:00
JosJuice
ba7ad73e92 NetPlay: Check that memory card region is valid 2021-05-27 00:00:06 +02:00
Mateus B. Cassiano
2c598e46ab VolumeVerifier: increase problem severity for incorrectly signed TMDs 2021-05-26 05:52:21 -04:00
JosJuice
82e9c1c68a Android: Disable building unit tests by default
This reduces the build time for incremental builds from about
2 minutes to about 20 seconds. Most people never run the
unit tests on Android anyway (I'm not aware of anyone other
than me ever having done it).
2021-05-25 22:54:13 +02:00
JosJuice
2c38d6419e Jit64: Emulate FMA accurately when determinism is enabled
When determinism is enabled, we either want all CPUs to use FMA or
we want no CPUs to use FMA. Until now, Jit64 has been been doing
the latter. However, this is inaccurate behavior, all CPUs since
Haswell support FMA, and getting JitArm64 to match the exact
inaccurate rounding used by Jit64 would be a bit annoying. This
commit switches us over to using FMA on all CPUs when determinism
is enabled, with older CPUs calling the std::fma function.
2021-05-25 12:37:52 +02:00
JosJuice
9bc5bd83a9 Interpreter: Use std::fma for emulating FMA
This is more accurate to the original hardware's rounding behavior.
2021-05-25 10:54:00 +02:00
Mai M
ff08b85740
Merge pull request #9750 from JosJuice/android-jstringarraytovector
Android: Use DeleteLocalRef more in AndroidCommon
2021-05-24 16:50:55 -04:00
JosJuice
90cf0d60f8 Android: Use VectorToJStringArray in GameFileCache.cpp 2021-05-24 22:07:31 +02:00
JosJuice
c1c17339ff Android: Use DeleteLocalRef more in AndroidCommon
Any local references get cleaned up when returning to the JVM,
but some of the functions in AndroidCommon return to C++ rather
than the JVM, and functions with loops risk running into the
limit of how many simultaneous local references are allowed.
2021-05-24 22:01:49 +02:00
Pokechu22
4a4244f04d Software: Fix bad backbuffer size
MAX_XFB_WIDTH/HEIGHT are the largest XFB sizes seen in practice, but do not make sense to use for the backbuffer size, which should be the size of the window.  The old code created screenshots with a size of 720x540 on NTSC games when "Dump Frames at Internal Resolution" is unchecked; now, the window size is used.
2021-05-24 12:16:39 -07:00
Léo Lam
51671921c4
Merge pull request #9441 from skylersaleh/master
Apple M1 Support for MacOS
2021-05-24 12:39:01 +02:00
JosJuice
ed331291d1
Merge pull request #9747 from JosJuice/jitarm64-sync
JitArm64: Jump to dispatcher on downcount <= 0, not < 0
2021-05-24 12:02:20 +02:00
JosJuice
86d2c2a1c3 JitArm64: Jump to dispatcher on downcount <= 0, not < 0
All the other CPU emulation cores do it on <= 0.
2021-05-24 10:42:04 +02:00
JMC47
96c1f6298b
Merge pull request #9551 from endrift/si-norep
SI: Generate NOREP on timeout instead of generating Dolphin SDK reply
2021-05-24 00:50:23 -04:00
Skyler Saleh
210f6e7f0d Apple M1: Update AutoUpdate PlatformID
Adds a new PlatformID for universal builds. This will allow single architecture
builds to be updated through the single architecture path, and universal builds
to be updated with universal builds.
2021-05-23 21:45:27 -07:00
Bonta-kun
bb1dd31f53 SI: Fix COMERR update 2021-05-23 20:30:07 -07:00
Vicki Pfau
e70193195c SI: Generate NOREP on timeout instead of generating Dolphin SDK reply 2021-05-23 20:30:07 -07:00
JMC47
509b24a27f
Merge pull request #9581 from Filoppi/expose_input_expr_vars
Expose Control Expression variables to mappings UI
2021-05-23 22:10:12 -04:00
Filoppi
93e3e691f9 Expose Control Expression variables to mappings UI
-add a way to reset their value (from the mappings UI)
-fix "memory leak" where they would never be cleaned,
one would be created every time you wrote a character after a "$"
-fix ability to create variables with an empty string by just writing "$" (+added error for it)
-Add $ operator to the UI operators list, to expose this functionality even more
2021-05-24 02:38:06 +03:00
JMC47
975f8e2a25
Merge pull request #9700 from Filoppi/simplify_mappings_preview
Simplify the preview of control mappings by removing the device path from controls
2021-05-23 14:44:38 -04:00
Mai M
4f4b3367b5
Merge pull request #9744 from Techjar/fix-general-pane-netplay
Qt/GeneralPane: Refresh widget state on config change
2021-05-23 03:19:40 -04:00
Techjar
a33593baf7 Qt/GeneralPane: Refresh widget state on config change
This fixes a nasty issue where you can change the Dual Core setting
during emulation, if it has been overridden by GameINI or NetPlay, by
simply changing any of the non-disabled settings. This is because
changing any of the settings will write all of them to the config.

This issue is particularly nasty because managing to disable Dual Core
during emulation, and then stopping it, results in the emulator core
being totally deadlocked. It's impossible to recover from this state,
and Dolphin will remain as a zombie process on the system, consuming
resources and holding locks, until forcibly killed.
2021-05-23 01:39:35 -04:00
Mai M
95aadff0e7
Merge pull request #9737 from Techjar/fix-textureinfo-hasmips
VideoCommon/TextureInfo: Restore old mipmap detection logic
2021-05-22 19:39:52 -04:00
Skyler Saleh
abea411bdc Apple M1: Detect incompatible universal merges
Adds a step to detect when the Intel and arm64 build trees cannot be merged
safely. This can occur when each side has files/folders that are named the same
but are of different types or symlinks that are the same name but need to point
to different locations for each architecture.

Before this change, this would just fail silently.
2021-05-22 15:37:47 -07:00
Skyler Saleh
76ed9310f2 Apple M1: RAII Wrapper for JITPageWrite*Execute*()
Added RAII wrapper around the the JITPageWriteEnableExecuteDisable() and
JITPageWriteDisableExecuteEnable() to make it so that it is harder to forget to
pair the calls in all code branches as suggested by leoetlino.
2021-05-22 15:25:18 -07:00
Skyler Saleh
76130d8b3b Apple M1: Fix code signing regression
This commit fixes a regression in 2ba88d5c131636158fe0216b0b1f9787dcc90bdf that
would cause an app bundle to not be resigned after merging the two single
architecture builds.

Also, applies formatting suggestions from Leo Lam
2021-05-22 15:25:18 -07:00
Skyler Saleh
1015cdc265 Apple M1: Improved handling of paths
Incorporated changes suggested by Kode54 to use the CMake prefix path, instead
of relying on pkg-config directory paths.

Added the prefix paths from the other architectures build to the CMake ignore
path so that CMake doesn't pick up libraries from the wrong architecture if
they are in the user's search path.
2021-05-22 15:25:18 -07:00
Skyler Saleh
b72c47f442 Apple M1: Enable CMake cross compilation
Modify the build script to use CMake's cross compilation infrastructure instead
of running CMake natively in x86_64 and arm64 mode to configure the two project
files. This should fix the builds with CMake executables installed through
homebrew and should pave the way for building universal binaries on x86_64
systems.
2021-05-22 15:25:18 -07:00
Skyler Saleh
7a44a7ee39 Readme: Update macOS build instructions
1) Place information about universal builds after single architecture builds
   since universal builds are harder to setup the environment for.
2) Specify that new arguments should be provided instead of direct script
   modification for universal builds.
2021-05-22 15:25:18 -07:00
Skyler Saleh
9163312779 Apple M1: Support non-Xcode based universal builds
This change adds the -G and --build_type arguments to the
BuildMacOSUniversalBinaray.py build script to allow the CMake generator and
build type to be specified for universal binary builds.

The defaults are:
-G "Unix Makefiles"
--build_type "Release"
2021-05-22 15:25:18 -07:00
Skyler Saleh
12c439860d Apple M1: Only add x86 compile flags to x86 builds
- Removed -mssse3 flag from arm64 builds
- Removed -march=core2 from arm64 builds
2021-05-22 15:25:18 -07:00
Skyler Saleh
bcb3c7d80f Apple M1: Update MoltenVK
- Updated MoltenVK library in external to 1.2.170.0 (fixes swapchain crash)
2021-05-22 15:25:18 -07:00
Skyler Saleh
f567fd93b9 Apple M1: Removed unavailable CPU core dialog box
Removed the unavailable CPU core dialog box that asked users to change their
selected CPU core to one that is available. Instead, Dolphin now just overrides
the core to the default, and logs that it performed the override.
2021-05-22 15:25:18 -07:00
Skyler Saleh
f92ccd5058 Apple M1: Fix bug that could cause crash with MMU
Added a Common::JITPageWriteDisableExecuteEnable() that could be missed when
a memory exception is triggered by the running game.
2021-05-22 15:25:18 -07:00
Skyler Saleh
38861f6782 Apple M1: x86_64 MAP_JIT
- Enabled MAP_JIT on x86_64 after confirming that pthread_jit* calls are only
required for MAP_JIT pages on Apple Silicon
2021-05-22 15:25:18 -07:00
Skyler Saleh
0851693cbe Apple M1: More robust build for universal binaries
- Fixed a typo in the Readme.md
- Made the recursiveMergeBinaries function handle divergent binary file trees
  better.
2021-05-22 15:25:18 -07:00
Skyler Saleh
4ff429266a Apple M1: MacOS 11.2 mprotect restrictions
In MacOS 11.2 mprotect can no longer change the access protection settings of
pages that were previously marked as executable to anything but PROT_NONE. This
commit works around this new restriction by bypassing the mprotect based write
protection and instead relying on the write protection provided by MAP_JIT.
2021-05-22 15:25:18 -07:00
Skyler Saleh
8cb86e7ae0 Apple M1: Enable hardened runtime
- Fixed error that was causing the hardened runtime from being enabled
- Refactored BuildMacOSUniversalBinary.py based on code style recommendations
2021-05-22 15:25:18 -07:00
Skyler Saleh
61448a9b2f Apple M1: Refactor ArmCPUDetect.cpp
Merges two nested #ifndefs into a single #if around hw cap includes.
2021-05-22 15:25:17 -07:00
Skyler Saleh
4542038cd0 Apple M1: OS version checking for MAP_JIT
- Added MacOS version checking around MAP_JIT to prepare code for x86 MAP_JIT
2021-05-22 15:25:17 -07:00