Commit graph

31828 commits

Author SHA1 Message Date
Pokechu22
072913bbad DSPLLE: More accurately handle initialization behavior 2022-06-16 12:18:05 -07:00
Pokechu22
c38c2b1aaa DSPLLE: Fix debug logging in ReadMailboxLow
The # option means that 0x is prepended already, so the old code resulted in 0x0xDEADBEEF instead of the intended 0xDEADBEEF. WriteMailboxLow was already correct.
2022-06-16 12:18:05 -07:00
Pokechu22
3ceda1df8c DSPLLE: Rename cr to control_reg
Before, there were two distinct fields called cr and r.cr, which is needlessly confusing (see the comment in DSPCore.h).
2022-06-16 12:18:05 -07:00
TellowKrinkle
c7892d7371 VideoCommon: Name ubershaders 2022-06-16 02:08:45 -05:00
TellowKrinkle
23c1721fbd VideoCommon: Reduce duplicates of non-palette-requiring texture decode shaders 2022-06-16 02:08:45 -05:00
JosJuice
107a928452
Merge pull request #10748 from tellowkrinkle/SDL22Fun
InputCommon: SDL 2.0.22 init crash workaround
2022-06-15 18:02:59 +02:00
Admiral H. Curtiss
ac3920a0da
Qt/GameCubePane: Fix swapping memory cards mid-emulation. 2022-06-15 10:42:14 +02:00
TellowKrinkle
3fe1a1a3d7 VideoCommon: Don't add garbage to shader uids in debug builds
There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero
2022-06-14 21:51:58 -05:00
TellowKrinkle
994210e369 InputCommon: SDL 2.0.22 init crash workaround
See https://github.com/libsdl-org/SDL/pull/5598
2022-06-14 21:02:45 -05:00
JMC47
431d757151
Merge pull request #10743 from tellowkrinkle/LargeBlockRVZ
Fix creation of rvz with > 2mb chunk size
2022-06-14 16:17:24 -04:00
JMC47
8a8e9c5ef6
Merge pull request #10742 from tellowkrinkle/Xcode
Improve incremental build time for Xcode projects
2022-06-14 16:14:54 -04:00
Pokechu22
dec48ed7de UnitTests: Remove unused include from DSPAssemblyTest 2022-06-14 13:07:14 -07:00
Pokechu22
5ea3efaedf UnitTests: Fix license for HermesBinary.cpp
This is an assembled version of HermesText.cpp, so the same license applies to it.
2022-06-14 12:22:06 -07:00
Pokechu22
75ff89e8c7 UnitTests: Edit wait_for_dsp_mail in HermesText to match HermesBinary
I don't know what happened here, unfortunately.  The version of dsp_mixer.s added to libogc on Nov 14, 2008 in c76d8b851f uses andcf and jlz here, and the version we have matches the one from Feb 5, 2009 in ae5c3a5fb5 exactly (prior to the fixes in my previous commit).  I can't see any reason why wait_for_dsp_mail would be changed like this.

ANDCF and ANDF were previously swapped and JNE/JEQ/JZR/JNZ became JNZ/JZ/JLNZ/JLZ on Apr 3, 2009 in 7c4e654253, corresponding to a change Hermes made on Nov 10, 2008 in 2cea6d99ad. But these predate the test being added.

The only other information I can find is that ASNDLIB 1.0 released on November 11, 2008, at https://web.archive.org/web/20120326145022/http://www.entuwii.net/foro/viewtopic.php?f=6&t=87 (but there aren't any surviving links from there).
2022-06-14 12:22:06 -07:00
Pokechu22
36769017c0 UnitTests: Update DSP test text for old renames
This change makes assembling DSPTestText match DSPTestBinary, though HermesText doesn't yet match HermesBinary.

The test data was originally added on April 18, 2009 in e7e4ef4481.  Then, set16 and set40 were swapped on April 22, 2009 89178f411c, which updated the DSPSpy version of dsp_code, but not the version in DSPTool used for testing.  So, when the test was made, the assembled data matched the text, but a few days after it no longer did.

Similarly, on Jul 7, 2009 in 1654c582ab the conditional instructions were adjusted, and 0x1706 was changed from JRL to JRNC and 0x0297 was changed from JGE to JC.

For what it's worth, devkitPro made the same changes on May 31, 2010 in 8a65c85c9b and updated their version of the asnd ucode (which is this ucode) on June 11, 2011 in b1b8ecab3a (though this update also includes other feature changes). Note that at the time, they didn't reassemble the ucode unless they made changes to it; the assembled was stored in the repo until bfb705fe16~...d20f9bdcfb43260c6c759f4fb98d724931443f93.

This fixes the following failures with Hermes:

!! 0015 : 8e00 vs 8f00 - set16         vs  set40
!! 016f : 8e00 vs 8f00 - set16         vs  set40

and with Hermes:

!! 0014 : 8e00 vs 8f00 - set16         vs  set40
!! 0063 : 8e00 vs 8f00 - set16         vs  set40
!! 019b : 1706 vs 1701 - jrnc        $AR0  vs  jrl         $AR0
!! 01bf : 0297 vs 0290 - jc          0x01dc  vs  jge         0x01dc
!! 01d2 : 0297 vs 0290 - jc          0x01dc  vs  jge         0x01dc

Hermes has the remaining failures:

!! 027b : 03c0 vs 03a0 - andcf       $AC1.M, #0x8000  vs  andf        $AC1.M, #0x8000
!! 027d : 029d vs 0294 - jlz         0x027a  vs  jnz         0x027a
2022-06-14 12:22:06 -07:00
Pokechu22
d52528a6f0 UnitTests: Add tests for assembling DSP code to expected binary
We already have the data for this, so this seems like a useful thing to do.  However, neither of the new tests currently pass...
2022-06-14 12:22:06 -07:00
Pokechu22
41939eeaf9 DSPDisassembler: Fix disassembly of LSR and ASR
Before, both 1441 and 147f would disassemble as `lsr $acc0, #1`, when the second should be `lsr $acc0, #-1`, and both 14c1 and 14ff would be `asr $acc0, #1` when the second should be `asr $acc0, #-1`. I'm not entirely sure whether the minus signs actually make sense here, but this change is consistent with the assembler so that's an improvement at least.

devkitPro previously changed the formatting to not require negative signs for lsr and asr; this is probably something we should do in the future: 8a65c85c9b

This fixes the HermesText and HermesBinary tests (HermesText already wrote `lsr $ACC0, #-5`, so this is consistent with what it used before.)
2022-06-14 12:22:06 -07:00
Pokechu22
6a2ec825a2 UnitTests: Fail DSPAssemblyTest if the assembled code doesn't match the expected result
This reveals that both HermesText and HermesBinary fail.  HermesBinary would have failed on master, too, if this had been implemented.
2022-06-14 12:22:06 -07:00
Pokechu22
2d774010c3 DSPCodeUtil: Include the PC and hex in the "Extra code words" section
It's included in the section before, so it's helpful to supply here too.
2022-06-14 12:22:06 -07:00
Pokechu22
087d89225c DSPCodeUtil: Give better output when comparing instructions with large immediates 2022-06-14 12:22:06 -07:00
Pokechu22
cad9801ded DSPDisassembler: Fix out-of-bounds read when the last word is an instruction with a large immediate
For instance, ending with 0x009e (which you can do with CW 0x009e) indicates a LRI $ac0.m instruction, but there is no immediate value to load, so before whatever garbage in memory existed after the end of the file was used.

The bounds-checking also previously assumed that IRAM or IROM was being used, both of which were exactly 0x1000 long.
2022-06-14 12:22:06 -07:00
Pokechu22
dc353ed84d DSPTool: Exit with status 1 if binary comparison fails 2022-06-14 12:22:06 -07:00
Pokechu22
693a29f8ce DSPCodeUtil: Use fmt::print instead of logging in DSP::Compare 2022-06-14 12:22:05 -07:00
Pokechu22
d8803a1298 UnitTests: Use fmt::print in DSPAssemblyTest 2022-06-14 12:22:05 -07:00
Pokechu22
8fac249581 UnitTests: Use fmt::print in PageFaultTest 2022-06-14 12:22:05 -07:00
Pokechu22
dd66dac5c1 UnitTests: Fix typo in DSPAssemblyTest 2022-06-14 12:22:05 -07:00
Pokechu22
3cb0976367 UnitTests: Use hermes.s as part of an actual test
Before, the file just existed as the source code for HermesBinary.cpp, but we can test that things assemble correctly too (compare DSPTestBinary.cpp and DSPTestText.cpp).

A bit of jank is needed due to MSVC limitations (see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2026?view=msvc-170).
2022-06-14 12:22:05 -07:00
Pokechu22
2193c8964e DSPTool: Remove moved files from VS project file
These were moved into UnitTests in #5449.
2022-06-14 12:22:05 -07:00
TellowKrinkle
25929789c1 VideoCommon: Don't pass State by inout
Spirv-cross's MSL codegen makes the amazing choice of compiling calls to inout functions as `State temp = s; call_function(temp); s = temp`.  Not all Metal backends handle this mess well.  In particular, it causes register spills on Intel, losing about 5% in performance.
2022-06-14 00:48:47 -05:00
TellowKrinkle
db6e928c8d VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershaders 2022-06-14 00:48:47 -05:00
JMC47
9315ac7071
Merge pull request #10587 from AdmiralCurtiss/memcard-path-unify
Raw Memory Card Path handling unification and consistency fixes.
2022-06-13 20:18:36 -04:00
JMC47
f96e91119a
Merge pull request #10735 from CasualPokePlayer/audio_dump_volume_fix
Have audio dumps apply volume
2022-06-13 17:09:58 -04:00
Jordan Woyak
1fc86cacd7 WiimoteEmu: Expose IMU pointing accelerometer weight setting. 2022-06-13 00:07:00 -05:00
Tillmann Karras
59dfc43949 Common: replace std::aligned_storage_t with alignas
C++23 deprecates std::aligned_storage_t while alignas works since C++11.

This fixes issue 12925.
2022-06-13 00:06:19 +01:00
JosJuice
62ec19c1ba JitArm64: Remove redundant line in the EmitBackpatchRoutine comment
All stores clobber X0, so that stores clobber X0 when emitting_routine
is true is nothing special.
2022-06-12 11:03:38 +02:00
JosJuice
75e897c40e JitArm64: Fix a minor mistake in the EmitBackpatchRoutine comment
X30 is used in fewer situations than the comment was claiming.

(I think that when I wrote the comment I was counting the use of X30
as a temp variable in the slowmem code as clobbering X30, but that
happens after pushing X30, so it doesn't actually get clobbered.)
2022-06-12 11:03:37 +02:00
JosJuice
3de49dee78 JitArm64: Properly reserve scratch register for soft MMU
Cleans up a hack from the previous commit.
2022-06-12 11:03:35 +02:00
JosJuice
3dce1df00e JitArm64: Implement "soft MMU"
This is used when fastmem isn't available. Instead of always falling
back to the C++ code in MMU.cpp, the JIT translates addresses on its
own by looking them up in a table that Dolphin constructs. This is
slower than fastmem, but faster than the old non-fastmem code.

This is primarily useful for iOS, since that's the only major platform
nowadays where you can't reliably get fastmem. I think it would make
sense to merge this feature to master despite this, since there's
nothing actually iOS-specific about the feature. It would be of use
for me when I have to disable fastmem to stop Android Studio from
constantly breaking on segfaults, for instance.

Co-authored-by: OatmealDome <julian@oatmealdome.me>
2022-06-12 11:03:25 +02:00
OatmealDome
3e5f1a4f99 MemTools: Always provide a valid pointer in send_msg for mach_msg_overwrite
This cannot be nullptr in macOS Ventura and iOS 16.
2022-06-12 00:19:09 -04:00
TellowKrinkle
7cf5547b97 CMake: Make bundled MoltenVK optional
Adds ~20s to incremental build time in Xcode projects
2022-06-11 16:34:33 -05:00
TellowKrinkle
26fc167a44 DiscIO: Fix creation of rvz with > 2mb chunk size 2022-06-11 16:10:32 -05:00
TellowKrinkle
e4614067b3 CMake: Respect SKIP_POSTPROCESS_BUNDLE 2022-06-11 15:46:38 -05:00
CasualPokePlayer
ad892176d0 have audio dumps apply volume (fixes cases of audio dumps being "too loud" and in game audio controls having no effect) 2022-06-10 21:27:10 -07:00
Silent
7faf5ea170
Clear the UI after async shader compilation 2022-06-10 17:19:59 +02:00
Silent
dcad3ec892
Allow to interrupt shader precompilation by stopping emulation 2022-06-10 17:11:32 +02:00
JosJuice
bcc64a05b3 Memmap: Remove outdated comments for 32-bit 2022-06-09 19:51:36 +02:00
JosJuice
63283dcc72 JitArm64: Refactor EmitBackpatchRoutine parameters, part 2 2022-06-09 19:51:36 +02:00
JosJuice
27ed2a99a0 JitArm64: Refactor EmitBackpatchRoutine parameters, part 1 2022-06-09 19:51:36 +02:00
Pokechu22
27772e01d9 GCAdapter: Compare with LIBUSB_SUCCESS instead of 0 2022-06-08 15:30:22 -07:00
Pokechu22
83afaba785 IOS/USB: Use LibusbUtils::ErrorWrap and LIBUSB_SUCCESS 2022-06-08 15:29:11 -07:00
Pokechu22
5d301cc206 BTReal: Log warnings when libusb calls fail 2022-06-08 15:29:11 -07:00
Pokechu22
eeab51e3a4 Log warnings when LibusbUtils::MakeConfigDescriptor fails 2022-06-08 15:29:11 -07:00
Pokechu22
15cbb5c8f9 Log warnings when LibusbUtils::GetDeviceList fails 2022-06-08 15:29:11 -07:00
Pokechu22
91a7c4bdf2 LibusbUtils: Log warnings when libusb_set_option or libusb_handle_events_timeout_completed fail 2022-06-08 13:18:31 -07:00
Sepalani
d7135daff5 Socket: Fix some errors related to non-blocking connect 2022-06-08 19:06:42 +04:00
Sepalani
c53a4c8c1a Socket: Keep track of the socket connection progress
Workaround for mbedtls handshake issues with partially connected sockets
2022-06-08 19:06:42 +04:00
Sepalani
cbadc6e81a NetworkCaptureLogger: Move ErrorState struct to Common/Network 2022-06-08 19:06:42 +04:00
Sepalani
41ce3a83d5 Socket: Refactor WiiSockMan::Convert 2022-06-08 19:06:42 +04:00
Mai M
099aaf0037
Merge pull request #10724 from JosJuice/android-manifest-namespace
AndroidManifest.xml: Re-add package="org.dolphinemu.dolphinemu"
2022-06-06 23:59:22 -04:00
JMC47
daf8e3ddde
Merge pull request #10462 from OatmealDome/steam-runtime
DolphinQt: Add support for a Steam Runtime build
2022-06-06 20:18:06 -04:00
JosJuice
dd0485389e AndroidManifest.xml: Re-add package="org.dolphinemu.dolphinemu"
Without this, debug builds of Dolphin fail to launch. The OS tries
to locate org.dolphinemu.dolphinemu.debug.DolphinApplication
but fails to find it because its actual name is
org.dolphinemu.dolphinemu.DolphinApplication.

Partially reverts 6b74907f9d.
2022-06-06 21:57:21 +02:00
Tillmann Karras
79a7bf02eb
CMake: rename minizip to minizip-ng
minizip-ng is the new name used by the upstream project as well as all
distros other than Fedora (but it looks like it will be renamed there).
2022-06-06 14:21:43 +02:00
Pokechu22
d03b277403 DSP LLE Recompiler: Fix LOOP and BLOOP when the counter is between 0x8001 and 0xFFFF 2022-06-05 19:34:31 -07:00
Admiral H. Curtiss
4fd18cf207
DolphinQt: Unify handling of raw memory card path. 2022-06-05 21:48:13 +02:00
Admiral H. Curtiss
deb9964333
Core: Unify handling of raw memory card path. 2022-06-05 21:43:48 +02:00
Admiral H. Curtiss
b1d1f2aa06
Common/StringUtil: Add convenience function for converting paths to use forward slashes on Windows. 2022-06-05 21:24:45 +02:00
Admiral H. Curtiss
2081e2f2a1
Config: Move ToGameCubeRegion(), GetDirectoryForRegion(), and GetBootROMPath() to new config system namespace. 2022-06-05 21:24:45 +02:00
JMC47
664663e8de
Merge pull request #10604 from Pokechu22/gcadapter-refactor
Refactor GCAdapter, part 1
2022-06-04 16:30:25 -04:00
Admiral H. Curtiss
96f9d1000d
Merge pull request #10721 from Dentomologist/fix_warnings_on_generic_builder
Fix warnings on generic builder
2022-06-04 21:51:58 +02:00
Dentomologist
92af703f29 DSPAssembler: Fix -Wswitch warning 2022-06-04 12:08:09 -07:00
Tilka
d7cda67462
Merge pull request #10716 from Pokechu22/dsp-lle-loop-saturation
DSP LLE: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m
2022-06-04 15:30:06 +01:00
Dentomologist
2999cca41b UnitTests: Fix -Wrange-loop-construct warnings
Don't use reference variable bound to a temporary value
2022-06-03 22:28:17 -07:00
Admiral H. Curtiss
9fb17b5a48
Merge pull request #10718 from shuffle2/hotkeys
qt: unregister Settings' DevicesChanged callback during shutdown
2022-06-03 13:48:28 +02:00
Shawn Hoffman
b16711f2af qt: fix wiipane usb list layout 2022-06-02 23:58:13 -07:00
Shawn Hoffman
27dd2c4aa4 qt: unregister Settings' DevicesChanged callback during shutdown
fixes a crash on close
2022-06-02 23:32:21 -07:00
Pokechu22
6823b4d7a0 GCAdapter: Use LibusbUtils::ErrorWrap in log messages 2022-06-02 19:39:36 -07:00
Pokechu22
457fcbaf5e LibusbUtils: Create ErrorWrap 2022-06-02 19:39:36 -07:00
Pokechu22
0d8772ccbe GCAdapter: Make local variables const where possible 2022-06-02 19:39:36 -07:00
Pokechu22
cd9edeacda GCAdapter: Merge Read logic 2022-06-02 19:39:36 -07:00
Pokechu22
9ec65baf46 GCAdapter: Have the read thread control the write thread
This was done for Android in 6cc40b1235.
2022-06-02 19:39:36 -07:00
Pokechu22
0fa92694d1 GCAdapter: Exit early if the adapter fails to open on Android
This is only so that indentation is consistent with the non-android code.
2022-06-02 19:39:36 -07:00
Pokechu22
749a4ad1ef GCAdapter: Remove check on write size on android
It was removed for non-android in 56239d1ae1, and android already uses a separate thread, so presumably this isn't needed anymore.
2022-06-02 19:39:36 -07:00
Pokechu22
27947046af GCAdapter: Harmonize read/write thread variable names 2022-06-02 19:39:36 -07:00
Pokechu22
279888da8c GCAdapter: Remove unused includes 2022-06-02 19:39:36 -07:00
Pokechu22
3ae775e574 GCAdapter: Use determinism hack on Android
This hack was added in 8f0cbefbe5, and the part of it in SI_DeviceGCAdapter is present on Android already, so I don't see any reason why this part doesn't apply to Android.
2022-06-02 19:39:36 -07:00
Pokechu22
55922e6d17 GCAdapter: Convert ControllerType to an enum class 2022-06-02 19:39:36 -07:00
Pokechu22
682d86f4da GCAdapter: Fix rumble enabled config on Android
I believe the setting already existed in the UI; it just wasn't implemented in GCAdapter_Android.cpp.
2022-06-02 19:39:36 -07:00
Pokechu22
36d4ee0939 GCAdapter: Use std::array for controller read and write payloads 2022-06-02 19:39:36 -07:00
Pokechu22
dd6592698e GCAdapter: Merge GCAdapter.cpp and GCAdapter_Android.cpp
This is mostly a brainless merge, #ifdef-ing anything that doesn't match between the two while preserving common logic.  I didn't rename any variables (although similar ones do exist), but I did change one log that was ERROR on android and NOTICE elsewhere to just always be NOTICE.  Further merging will follow.
2022-06-02 19:39:36 -07:00
Mai M
f7f47d3cd0
Merge pull request #10692 from Pokechu22/dsp-manual-set40-and-write-backlog
docs/DSP: Add sections on 16-bit and 40-bit modes and on main and extended opcode writing to the same register
2022-06-02 20:26:31 -04:00
Mai M
c8ab236e0a
Merge pull request #10709 from Pokechu22/dsp-lle-update-sr-16
DSP LLE JIT: Fix Update_SR_Register16_OverS32
2022-06-02 20:22:36 -04:00
Mai M
566da9ffd0
Merge pull request #10715 from Pokechu22/dspspy-incomplete-dump
DSPSpy: Fix incomplete result dumps
2022-06-02 20:21:28 -04:00
Mai M
84944625df
Merge pull request #10714 from OatmealDome/macos-mojave-bump
BuildMacOSUniversalBinary: Bump minimum macOS to 10.14
2022-06-02 20:20:52 -04:00
Mai M
5808a0bc9a
Merge pull request #10717 from shuffle2/vs17.2.3
msvc: update to vs 17.2.3
2022-06-02 20:18:33 -04:00
Pokechu22
0fc1fb023f
Merge pull request #10678 from Dentomologist/skip_pagefault_test_if_no_exception_handler
UnitTests: Skip PageFaultTest if exception handlers aren't supported
2022-06-02 16:21:21 -07:00
Shawn Hoffman
f11b6bbdda cmake/win: don't set _WIN32_WINNT 2022-06-02 15:56:01 -07:00
Shawn Hoffman
b07d6116d9 update min windows sdk to 10.0.22621 2022-06-02 15:53:29 -07:00
Shawn Hoffman
a720e8509b msvc: update min version to VS 17.2.3 2022-06-02 15:52:53 -07:00
OatmealDome
7ce1a5717a UICommon: Add support for portable.txt on macOS 2022-06-02 14:56:09 -04:00
Admiral H. Curtiss
a58bb2aa24
Merge pull request #10701 from TryTwo/PR_Memory_Widget_Connections
Debugger MemoryWidget: Navigate to memory from breakpoint widget and cheat search.
2022-06-02 20:50:44 +02:00
Pokechu22
12d34eec9b DSPSpy: Add 40-bit mode tests 2022-06-01 22:25:59 -07:00
Pokechu22
4bc42ded80 DSP LLE Interpreter: Remove OpReadRegisterAndSaturate
Instead, saturate in OpReadRegister, as all uses of OpReadRegisterAndSaturate called OpReadRegister for other registers (and there isn't anything that writes to $ac0.m or $ac1.m without saturation).
2022-06-01 22:01:49 -07:00
Pokechu22
928f745e36 DSP LLE Interpreter: Fix typo in 'LS
This was introduced in fc1db5eaa0.
2022-06-01 22:01:49 -07:00
Pokechu22
e7f78379ec DSP LLE Recompiler: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m 2022-06-01 22:01:49 -07:00
Pokechu22
bc206b7a27 DSP LLE Interpreter: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m 2022-06-01 22:01:49 -07:00
Pokechu22
00a5f99b6b DSPSpy: Fix incomplete result dumps
The current code expects new mail almost immediately after the last map was sent for it to be saved properly. However, I have a test program that ends up looping for 32768 iterations before it sends more mail; this resulted in an incomplete result dump. I've changed it to wait a frame between checking for mail, which solves that issue. This does slow down dumping, but the end speed matches the speed at which the UI updates the registers so this isn't a big deal (the UI waits a frame between mail normally). (Theoretically, it could take even longer for dumping to finish, so this is not a perfect solution. However, for tests that take that long to run, it would be better to save the existing results instead of re-running the test and saving that; that'd be something to do with later improvements.)
2022-06-01 21:55:56 -07:00
OatmealDome
803a0de5a4 VKMain: Remove check for macOS 10.14 2022-06-01 22:57:56 -04:00
OatmealDome
1cb3058abe MemoryUtil: Remove __builtin_available for macOS 10.14 2022-06-01 22:57:56 -04:00
OatmealDome
6e2febd404 VideoBackendBase: Remove __builtin_available for macOS 10.14 2022-06-01 22:57:51 -04:00
TryTwo
177dae6a1a Add options for BreakpointWidget, WatchWidget, and CheatSearches to send address to Memory Widget 2022-06-01 01:53:15 -07:00
TellowKrinkle
f9c6eb7b98 InputCommon/ControllerEmu: Use more locks
Loading configs while another thread is messing with stuff just doesn't feel like a good idea
Hopefully fixes Wiimote Scanning Thread crashes on startup
2022-05-31 20:17:37 -05:00
Dentomologist
e0c9ae16b9 FileUtil: Refactor CreateSysDirectoryPath() 2022-05-31 16:18:08 -07:00
Dentomologist
c2be78079c FileUtil: Remove GetSysDirectory log spam
Create and log path the first time GetSysDirectory is called, then just
return the path on future calls.
2022-05-31 16:18:08 -07:00
Dentomologist
4d563ce4d1 Android: Ensure File::s_android_sys_directory is set only once 2022-05-31 16:18:08 -07:00
Pokechu22
f88b7ab6b3 DSP LLE JIT: Fix Update_SR_Register16_OverS32
There were 3 bugs here:

- The input register for the full register wasn't actually being used; it was read into RCX but RCX wasn't used by Update_SR_Register16_OverS32 (except as a scratch register).  The way the DSP LLE recompiler uses registers is in general confusing, so this commit changes a few uses to have a variable for the register being used, to make code a bit more readable.  (Default parameter values were also removed so that they needed to be explicitly specified).
- Update_SR_Register16 was doing a 64-bit test, when it should have been doing a 16-bit test.  For the most part this doesn't matter due to sign-extension, but it does come up with e.g. `ORI` or `ANDI`.
- Update_SR_Register16_OverS32 did the over s32 check, and then called Update_SR_Register16.  Update_SR_Register16 masks $sr with ~SR_CMP_MASK, clearing the over s32 bit.  Now the over s32 check is performed after calling Update_SR_Register16 (without masking a second time).  No official uCode cares about the over s32 bit.
2022-05-30 20:10:55 -07:00
Pokechu22
7c63bd1893 docs/DSP: Fix inconsistency with ADDI and CMPI
We don't have anything called $amD, though we do have $acsD.  However, these instructions affect flags based on the whole accumulator, so it's better to just use $acD.
2022-05-29 15:00:09 -07:00
Pokechu22
baf2c710ff DSP: Fix typo with TST 2022-05-29 15:00:09 -07:00
Pokechu22
4dc7208195 docs/DSP: Fix typo with arithmetic instructions that take a 16-bit immediate
These instructions used an 'r' in their bit list, but a 'd' in the operands.
2022-05-29 15:00:09 -07:00
Pokechu22
b349254ff4 docs/DSP: Document the behavior when main and extended opcodes both write to the same register (the write backlog)
For more information, ApplyWriteBackLog, WriteToBackLog, and ZeroWriteBackLog were added in b787f5f8f7 and the explanatory comment was added in fd40513fed, although it did not mention the specific instructions that could trigger this edge case. The statements about which registers can be written by main opcodes and extension opcodes are based on my own checking of all instructions in the manual.
2022-05-29 15:00:09 -07:00
OatmealDome
df22439826 FS: Reshuffle Rename to fix steamrt unit test failure 2022-05-29 13:50:32 -04:00
OatmealDome
09875c6403 DolphinQt: Copy qt.conf into Binaries output folder on Steam builds for Linux 2022-05-29 13:50:32 -04:00
OatmealDome
5c4122ec2a DolphinQt: Copy Sys into Binaries output folder on Steam builds for Linux 2022-05-29 13:50:32 -04:00
OatmealDome
77fb5fa7dc DolphinQt: Copy all Qt libraries into Binaries output folder on Steam builds for Linux 2022-05-29 13:50:32 -04:00
OatmealDome
6b05f5cca8 DolphinQt: Set the executable's rpath to a lib directory in $ORIGIN on Steam builds for Linux
We will store our Qt shared libraries here.
2022-05-29 13:50:32 -04:00
OatmealDome
e679502a5d GLX: Guard against redefinition of PFNGLXSWAPINTERVALEXTPROC
This type is already declared in glxext.h in the Steam Runtime.
2022-05-29 13:50:32 -04:00
Shawn Hoffman
5f3112653d android: downgrade AGP to 7.0.4
workaround for https://issuetracker.google.com/issues/232060576
2022-05-29 01:18:05 -07:00
Shawn Hoffman
863f14a6f7 android: update gradle to 7.4.2 2022-05-29 01:17:30 -07:00
Shawn Hoffman
ead78cc7e6 android: update constraintlayout to 2.1.4 2022-05-28 22:36:16 -07:00
Tilka
e17a4f49f5
Merge pull request #10668 from Dentomologist/convert_pointerwrap_mode_to_enum_class
Convert PointerWrap::Mode to enum class
2022-05-29 00:57:43 +01:00
Tilka
3dbc18060b
Merge pull request #10694 from Pokechu22/dsp-assembler-error-messages-etc
DSPAssembler: Rework errors and warnings, and related cleanup
2022-05-29 00:16:23 +01:00
Tilka
57e444cd5d
Merge pull request #10697 from Dentomologist/windows_remove_qt5_code_and_references
Windows: Remove unused Qt5 block and reference
2022-05-29 00:14:34 +01:00
Pokechu22
8d880cd86e DSPSpy: Add CMPAXH test 2022-05-27 18:22:38 -07:00
Pokechu22
d307c34af1 DSP LLE: Rename CMPAR to CMPAXH 2022-05-27 18:22:38 -07:00
Dentomologist
059cd5f6e1 Windows: Remove unused Qt 5 code and references 2022-05-25 17:51:17 -07:00
Dentomologist
c8e20c569b Convert PointerWrap::Mode to enum class 2022-05-25 13:16:46 -07:00
Dentomologist
f6b9acccfc Common: Refactor PointerWrap 2022-05-25 13:06:41 -07:00
Pokechu22
2341ff00ab NetPlay: Make messages about non-matching games clearer 2022-05-24 23:20:45 -07:00
Pokechu22
ea9b0bff08 NetPlay: Delete NetPlayClient::GetPlayerList
It's been unused since DolphinWX was removed in 44b22c90df.  Prior to that, it was used in Source/Core/DolphinWX/NetPlay/NetWindow.cpp.  But the new equivalent in Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp uses NetPlayClient::GetPlayers instead.  Stringifying (or creating a table, as is done now) should be done by the UI in any case.
2022-05-24 14:44:28 -07:00
Tilka
b6ad5c5902
Merge pull request #10683 from Pokechu22/gamelist-home-end
GameList: Have home/end keys move to first/last row
2022-05-24 22:10:38 +01:00
Pokechu22
bd3173e344 DSPAssembler: Rework errors and warnings
Among other things, this trims trailing newline characters. Before (on windows) the \r would corrupt the output and make them very hard to understand (as the error message would be drawn over the code line, but part of the code line would peek out from behind it).
2022-05-23 20:27:17 -07:00
Pokechu22
db3d457e5f DSPDisassembler: Remove redundant definition of CW
CW is used as a fallback to write a full instruction as hex, but we already declare it in DSPTables.h for the assembler.
2022-05-23 19:36:47 -07:00
Pokechu22
b06d38389b DSP: Remove some magic numbers for register IDs 2022-05-23 19:36:47 -07:00
Pokechu22
8b52c7315b DSP: Fix assembling x8/x9/xA/xB conditions
The assembler upper-cases the mnemonic internally, so it never would match the lower-case x.
2022-05-23 19:36:47 -07:00
Pokechu22
e7f6e19c61 DSPAssembler: Slightly improve readability of AssemblePass
This should result in no behavior differences.
2022-05-23 19:36:47 -07:00
Pokechu22
c34a738b4c DSPSpy: Add missing jumps to end_of_test
Without this, execution continues beyond the end of the function, into the great unknown (probably eventually falling into either code left from a previous test, or the start of the DSP ROM). end_of_test is just an infinite loop to stop executing until the DSP is reset.
2022-05-23 19:36:47 -07:00
Admiral H. Curtiss
b18fd3d3ce
Core/State: Make memory layout of StateHeader more explicit. 2022-05-24 03:04:52 +02:00
Admiral H. Curtiss
f68c3b758e
Common/Network: Use std::array in IPv4Header. 2022-05-23 02:01:59 +02:00
JMC47
3a3357444e
Merge pull request #8067 from endrift/hsp
Preliminary HSP support
2022-05-22 13:42:27 -04:00
Pokechu22
1c4a5d9fc9 GameList: Work around Qt bug regarding clicking in the background not setting the position used by page down/end 2022-05-21 23:33:46 -07:00
Admiral H. Curtiss
8d0f52032b
IOS/DI: Fake the error 001 read when running DirectoryBlobs or Riivolution-patched games. 2022-05-22 04:22:41 +02:00
Pokechu22
2d50ba0ca2 GameList: Have home/end keys move to first/last row 2022-05-21 18:11:24 -07:00
Admiral H. Curtiss
0e948f3e21
Merge pull request #10620 from phire/cmake_win_fixes
Various fixes for msvc/cmake builds
2022-05-22 03:08:17 +02:00
Pokechu22
8b3517a9f9
Merge pull request #10686 from Tilka/pikmin_demo
DSPHLE: handle crc of Pikmin 1 GC US Demo
2022-05-21 17:30:31 -07:00
Vicki Pfau
6a26b0ce8a HW: Initial HSP implementation with ARAM expansion 2022-05-21 17:05:49 -07:00
Admiral H. Curtiss
580c721c82
cmake: Don't use PCH with Qt6. 2022-05-22 01:19:44 +02:00
Admiral H. Curtiss
a5e85627b0
cmake: Use Policy CMP0117 for more sensible RTTI flag configuration on MSVC. 2022-05-22 00:30:56 +02:00
Admiral H. Curtiss
9908219dc6
cmake: Add a few missing settings from the Visual Studio project files on MSVC. 2022-05-22 00:29:48 +02:00
Admiral H. Curtiss
89fadd26a6
cmake: Use C++latest everywhere on MSVC. 2022-05-22 00:29:48 +02:00
Admiral H. Curtiss
dbee810a04
cmake: Fixes for Qt6 on Windows. 2022-05-22 00:29:48 +02:00
Scott Mansell
876f6651b4
cmake: fix PCH to work with msvc/ninja
Ninja puts way more effort into compiling targets in parallel, and
ignores dependenceis until link time.

So we need to jump though hoops to force ninja to compile
pch.cpp before any targets which depend on the PCH.
2022-05-22 00:29:47 +02:00
Scott Mansell
0909e00117
cmake: fix MSVC PCH support
I'm not sure if the previous implementation ever worked.
2022-05-22 00:29:47 +02:00
Scott Mansell
2348017ee8
cmake: ignore external warnings in MSVC
Since we also treat all warnings as errors, we need to
ignore these to successfully build.
2022-05-22 00:29:46 +02:00
Scott Mansell
987f270083
cmake: fix buggy target sources on windows
I have no idea why cmake supports PUBLIC on target_sources,
but it does. It causes all targets that depend on this target
to try and include the files in their sources.
Except it doesn't take paths into account, so it breaks. Mabye
it would work if you used an abolute source? But I'm not sure
there is a sane usecase.
2022-05-22 00:29:46 +02:00
Sage King
f0454ab2fa Added double click to add expressions when mapping 2022-05-21 14:08:49 -06:00
Tillmann Karras
d7da4aca19 DSPHLE: handle crc of Pikmin 1 GC US Demo
The DSP code only has minor differences to the final release.
2022-05-21 16:48:34 +01:00
Pokechu22
863cb591fe MainSettings: Make MAIN_CUSTOM_RTC_VALUE default value less magical 2022-05-20 20:35:53 -07:00
Mai M
0f2540a0d1
Merge pull request #10667 from t895/landscape-card
Android: Fix game card in landscape
2022-05-19 22:44:59 -04:00
Mai M
244e4acff2
Merge pull request #10674 from OatmealDome/mac-steam-overlay
DolphinQt: Add com.apple.security.cs.allow-dyld-environment-variables to entitlements
2022-05-19 22:43:57 -04:00
Pokechu22
151119cece DSPInterpreter: Fix typo in isOverflow comment 2022-05-19 16:36:39 -07:00
Mai M
a98d0367d8
Merge pull request #10677 from Pokechu22/no-printf-log
Remove printf-style logging
2022-05-19 17:55:17 -04:00
Pokechu22
2aa0ae097b
Merge pull request #10672 from Pokechu22/xf-invtxspec
Show panic alerts if the CP configuration doesn't match the XF configuration
2022-05-19 13:13:53 -07:00
Pokechu22
8baeb75bd2
Merge pull request #10669 from Pokechu22/adapter-change-aa-mode-list-reload
Fix antialiasing modes being determined from the wrong graphics adapter
2022-05-19 13:13:22 -07:00
Pokechu22
5f9212dd84 Common/LogManager: Remove old printf-style logging functions 2022-05-19 12:41:58 -07:00
Pokechu22
0637c17b59 VideoCommon/FrameDump: printf-format messages before logging them 2022-05-19 12:41:58 -07:00
Pokechu22
35cb5c8f75 EXI_DeviceEthernet: Replace INFO_LOG with INFO_LOG_FMT 2022-05-19 12:41:58 -07:00
Pokechu22
2f5e69a94e JitArm64: Replace WARN_LOG with WARN_LOG_FMT 2022-05-19 12:41:57 -07:00
Pokechu22
642a1c1348 MainWindow: Replace WARN_LOG with WARN_LOG_FMT 2022-05-19 12:41:57 -07:00
Pokechu22
0faf0b80ad TAPServer_Apple: Use fmt logging 2022-05-19 12:41:57 -07:00
Dentomologist
6ffd938f98 UnitTests: Skip PageFaultTest if exception handlers are not supported
Page faults should only occur on architectures that support exception
handlers, so skip the test on other architectures to avoid spurious test
failures.
2022-05-19 12:26:41 -07:00
Pokechu22
a86fb9b475 Core/WGInput: Use fmt logging and include HRESULT in messages 2022-05-19 12:12:19 -07:00
OatmealDome
185188c009 DolphinQt: Add com.apple.security.cs.allow-dyld-environment-variables to entitlements 2022-05-18 20:23:17 -04:00
Pokechu22
8df55b492c Show a panic alert if the CP matrix indices don't match the XF matrix indices
This almost certainly never happens, but if it does we want to know.
2022-05-18 14:43:14 -07:00
Pokechu22
38a75f6a49 Show a panic alert if the CP vertex config doesn't match the XF vertex config
This probably isn't triggered by real games, but it's possible to accidentally do it with libogc (which results in freezes on real hardware).
2022-05-18 14:43:14 -07:00
Pokechu22
46bcdc4372 Rename CP and XF normal component count enums and update their descriptions 2022-05-18 14:43:14 -07:00
Pokechu22
736466a5d9 XFMemory: Rename hostinfo to invtxspec 2022-05-18 14:43:14 -07:00
Pokechu22
3949698acf Verify graphics config validity after populating the backend info
... and refresh the config before populating the backend info, as the config (specifically iAdapter) needs to be set to correctly populate the backend info.

Before, the list of valid antialiasing modes was always determined from the first adapter on the list on startup, regardless of the adapter the user selected.
2022-05-16 16:59:57 -07:00
Pokechu22
3950bc4620 Treat changing the graphics adapter the same as changing the backend
This results in the list of available antialiasing modes being updated; before, it would only show the modes available for the adapter that was selected when the graphics window was opened (or the backend was last changed).

The list of available modes is updated by `GraphicsWindow::OnBackendChanged`'s call to `VideoBackendBase::PopulateBackendInfoFromUI`, and then `EnhancementsWidget::LoadSettings` updates the UI.  Both of these are connected to the `GraphicsWindow::BackendChanged` signal.
2022-05-16 16:59:31 -07:00
Mai M
4085d463a1
Merge pull request #10661 from Tilka/ax_init
AX: refactor buffer initialization
2022-05-16 14:23:13 -04:00
Admiral H. Curtiss
b10808d815
Merge pull request #8763 from JosJuice/panic-alert-deadlock-gpu
DolphinQt: Fix the panic alert deadlock, dual core edition
2022-05-16 02:21:14 +02:00
Charles Lombardo
9224c099d4 Fix game card in landscape 2022-05-15 17:31:49 -04:00
Tillmann Karras
ac7aeeece6 AX: refactor buffer initialization 2022-05-15 00:24:38 +01:00
Pokechu22
b8cca8f598 ProcessorInterface: Implement PI_FIFO_RESET
Fixes unknown opcodes 0x0f and 0xff when resetting titles, e.g. https://bugs.dolphin-emu.org/issues/12492
2022-05-13 14:20:14 -07:00
Tilka
fcb3f9e35b
Merge pull request #10652 from shuffle2/fmt
update fmt and fix warnings that popped up with vs 17.2
2022-05-13 22:09:01 +01:00
Tillmann Karras
855dbf88ca AX: handle DPL2 mixer control in old GameCube titles
This fixes the audio test in Rogue Squadron 2 (issue 12902).
2022-05-13 00:18:24 +01:00
Tillmann Karras
8438e647f2 AXWii: handle mixer control more precisely
On GameCube, a ramp bit has no effect if its corresponding channel is
inactive. On Wii however, enabling just the ramp implicitly also enables
the channel. AXSetVoiceMix() never does that, so this commit should have
no impact on games unless they fiddle with the mixer control value
directly.
2022-05-12 21:21:03 +01:00
Tilka
333659cefa
Merge pull request #10643 from Tilka/ax_cleanup
AX: fix missing ramp of main surround channel
2022-05-12 21:12:04 +01:00
Shawn Hoffman
7b8e6c5b36 fmt: do not define uint type in global namespace 2022-05-10 21:17:10 -07:00
Shawn Hoffman
fa17153ebc fmt: use make_format_args instead of make_args_checked
make_args_checked is deprecated
see https://github.com/fmtlib/fmt/pull/2760 and the linked comment
2022-05-10 19:25:48 -07:00
Shawn Hoffman
56626f73bf fmt: fix 'ambigous overload' error 2022-05-10 19:19:52 -07:00
Shawn Hoffman
abc848b88c msvc: bump min version to vs 17.2 2022-05-10 16:11:54 -07:00