Commit Graph

37068 Commits

Author SHA1 Message Date
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
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
Admiral H. Curtiss fc6ba6b686
Merge pull request #10703 from Dentomologist/remove_getsysdirectory_spam
Remove GetSysDirectory spam
2022-06-02 19:20:48 +02:00
Pokechu22 f47dfc3dba docs/DSP: Update version and history
The GFDL requires the history section to be updated.
2022-06-01 22:26:59 -07:00
Pokechu22 24a339f437 docs/DSP: Explain 16-bit and 40-bit modes 2022-06-01 22:25:59 -07:00
Pokechu22 12d34eec9b DSPSpy: Add 40-bit mode tests 2022-06-01 22:25:59 -07:00
Pokechu22 d297ab18e6 docs/DSP: Add notes highlighting the difference between 'LS and 'SL 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 cb7e827601 README: Update minimum macOS version 2022-06-01 23:26:32 -04: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
OatmealDome 77d0170285 CMakeLists: Remove comment pertaining to macOS versions prior to 10.14 2022-06-01 22:49:45 -04:00
OatmealDome db8bd8a726 BuildMacOSUniversalBinary: Bump minimum macOS to 10.14 2022-06-01 22:46:12 -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
Pokechu22 0dd181f461 docs/DSP: Add missing dollar signs in shift instruction operation sections 2022-05-31 16:26:55 -07: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
Pokechu22 bb01ba60d6 docs/DSP: Fix typo in 'NOP comment 2022-05-29 15:00:09 -07:00
Pokechu22 83aabbbece docs/DSP: Clarify LRS note
$acS.h was a typo, which has been replaced with $acD.h.
2022-05-29 15:00:09 -07:00