Commit graph

43358 commits

Author SHA1 Message Date
Pokechu22
13ea2c77ff Revert "Core: Only unlock CPU thread if CPUThreadGuard locked it"
This reverts commit 522470274d.
2025-03-29 12:28:09 -07:00
Pokechu22
eb63ea3f40 More typos 2025-03-27 20:45:45 -07:00
Pokechu22
5cad440175 Correct typos in external_interrupt_delay tests 2025-03-27 20:45:45 -07:00
Pokechu22
53b0fe1e67 Fix register in comments for external interrupt tests 2025-03-27 20:45:45 -07:00
Pokechu22
988a433c88 DSPLLE: Fix SR_100 bit masking not behaving properly with sbset and rti
This affected my interrupt_nested test; SR_100 always is clear, but after using SBSET #2, it was temporarily set. This doesn't really make sense (why do they have an instruction to set a bit that cannot be set? why does this bit even exist?) but this change makes behavior match real hardware. The recompiler behaved correctly (as it uses dsp_op_write_reg).
2025-03-27 20:45:45 -07:00
Pokechu22
522470274d Core: Only unlock CPU thread if CPUThreadGuard locked it
Before, I was getting an abort() call in debug builds when selecting Tools -> Load Wii System Menu (although I'm not sure if this will work on other machines consistently). It seems that CodeViewWidget::Update was constructing a CPUThreadGuard instance, and thus was calling Core::PauseAndLock(true, true), but the CPU thread hadn't started yet so Core::IsRunningAndStarted() returned false and thus Core::PauseAndLock() did nothing. However, after the code widget finished updating, CPUThreadGuard's destructor called PauseAndLock(false, true), and by this time the CPU thread *had* started so Core::PauseAndLock eventually called CPU::PauseAndLock(false, true, true). This resulted in s_stepping_lock.unlock() being called without a corresponding s_stepping_lock.lock() call, which calls abort() in debug builds.
2025-03-27 20:45:45 -07:00
Pokechu22
982af34da3 Not locked into -O0 2025-03-27 20:45:45 -07:00
Pokechu22
93d4f75b42 It's not possible for the CPU to clear CR_EXTERNAL_INT 2025-03-27 20:45:45 -07:00
Pokechu22
295eac1c95 Revert "Initial test regarding clearing"
This reverts commit a1f1ba5b157e833dd1788b20e29b87d979ce2059.
2025-03-27 20:45:45 -07:00
Pokechu22
e7de36489a Initial test regarding clearing 2025-03-27 20:45:45 -07:00
Pokechu22
164e0fe54e More testing with stack stuff 2025-03-27 20:45:45 -07:00
Pokechu22
ba5a0a9731 Include output in external_interrupt_status_bit.ds 2025-03-27 20:45:45 -07:00
Pokechu22
e85f293356 Clear the correct SR bit 2025-03-27 20:45:45 -07:00
Pokechu22
7abeaae19d Semifunctional test 2025-03-27 20:45:45 -07:00
Pokechu22
3487da39f1 Implementation - behaves different when resetting (via B) and with/without the free ROM. But it doesn't freeze. 2025-03-27 20:45:45 -07:00
Pokechu22
b0ab32164b Revert "Hmm"
This reverts commit f17bc0bc8e8ceac6cbfdadb2ade8f877d4eedaca.
2025-03-27 20:45:45 -07:00
Pokechu22
3aff95fc95 Hmm 2025-03-27 20:45:45 -07:00
Pokechu22
171be6b49d Temp nonsense 2025-03-27 20:45:45 -07:00
Pokechu22
39c184c3d4 OK, this is needed (was crashing DSPSpy) 2025-03-27 20:45:45 -07:00
Pokechu22
f316c856f2 Note to self 2025-03-27 20:45:45 -07:00
Pokechu22
d688850c79 Fix the bug 2025-03-27 20:45:44 -07:00
Pokechu22
e7daeeac09 DSPLLE: Update sr bit enum 2025-03-27 20:45:44 -07:00
Pokechu22
127d987ff9 Bump state version temp 2025-03-27 20:45:42 -07:00
Pokechu22
4b9ea2c5d6 DSPAnalyzer: Check for exceptions in more cases 2025-03-27 20:44:22 -07:00
Pokechu22
59e59e6903 DSP JIT: Fix infinite loop if an exception is suppressed
I'm not 100% sure about the LoadRegs(false) part.
2025-03-27 20:44:22 -07:00
Pokechu22
dd76c0d1a0 DSPEmitter: Fix infinite loop when an exception is present at the start of a block 2025-03-27 20:44:22 -07:00
Pokechu22
bfb1eff30e Final test suite 2025-03-27 20:44:22 -07:00
Pokechu22
25f958d709 Rework some of the tests 2025-03-27 20:44:22 -07:00
Pokechu22
6641f75ffb Add external interrupt tests 2025-03-27 20:44:22 -07:00
Pokechu22
94169b3c7d Add (failing) interrupt-related tests 2025-03-27 20:44:22 -07:00
Pokechu22
949ca7756b DSPAnalyzer: Clarify CODE_CHECK_EXC 2025-03-27 20:44:22 -07:00
Tilka
662cfa38c2
Merge pull request #13460 from jordan-woyak/play-time-tracker-thread-name
Core: Name the play time tracker thread.
2025-03-27 17:02:36 +00:00
JMC47
cb24821dcc
Merge pull request #13217 from cristian64/extract_gecko_creator_name
DolphinQt: Extract creator name from code name in Gecko codes.
2025-03-27 12:26:47 -04:00
Jordan Woyak
ebd879cb30 Core: Name the play time tracker thread. 2025-03-27 01:38:55 -05:00
JMC47
1981f22228
Merge pull request #13433 from iwubcode/update_min_win10
Update our minimum windows 10 version to 1903 and reinstate code that depends on it
2025-03-25 18:30:15 -04:00
JMC47
eb84b0fb9b
Merge pull request #13442 from TryTwo/PR_CodeWidget_Layout_Tweak
Debugger CodeWidget: Small layout tweak
2025-03-25 13:19:02 -04:00
JMC47
5d4b884e64
Merge pull request #13450 from Tilka/daring_game
GameSettings: fix startup crash in "The Daring Game for Girls"
2025-03-24 00:22:39 -04:00
Tillmann Karras
5a708f0f24 GameSettings: fix startup crash in "The Daring Game for Girls" 2025-03-23 23:28:22 +00:00
cristian64
6d8ba94e4c DolphinQt: Extract creator name from code name in Gecko codes.
Gecko codes in Dolphin feature a dedicated field for the creator of the
cheat code. When saved into the INI file, the code name and the creator
name are concatenated, and then inserted in the `[Gecko]` section:

```ini
[Gecko]
$<cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
$<other cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
```

On the other hand, enabled codes are listed under the `[Gecko_Enabled]`
section, but in this case the creator name is omitted from the line:

```ini
[Gecko_Enabled]
$<cheat code name>
$<other cheat code name>
```

Having the creator name in the `[Gecko]` section but not in the
`[Gecko_Enabled]` section is arguably not ideal, but this is legacy
behavior in Dolphin.

The **Cheat Code Editor** dialog is not acknowledging this subtle
behavior in Dolphin: the cheat code name and the creator name *can* be
both inserted in the name field. This issue manifests as an inconsistent
state where a Gecko code that *appears* to be enabled has no effect when
the game is launched.

As part of this fix, the creator name (if present) is now moved into the
dedicated creator field before the code is stored internally.

Test plan:

- Right-click on any game and open the **Properties** dialog.
- Switch to the **Gecko Codes** tab.
- Press the **Add New Code...** button.
- In the **Cheat Code Editor** dialog:
  - Enter `This is a test [Jane Doe]` in the **Name:** field.
  - Enter `01234567 00000000` in the **Code:** field.
  - Press **Save**.
- Observe that the newly added code is now in the list, and *appears* to
  be enabled.
- Close the **Properties** dialog.
- Right-click on the same game and open the **Properties** dialog again.

**Without** the fix, the newly added code, while still on the list, has
been inadvertently disabled (it was never really enabled!).

**With** the fix, the newly added code is the list and remains enabled.

This fixes https://bugs.dolphin-emu.org/issues/13695.
2025-03-23 21:37:23 +00:00
JMC47
ad3650abfc
Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
JMC47
1515cf6ccd
Merge pull request #13447 from JosJuice/bba-panic-tr
EXI: Make HLE BBA panic alerts translatable
2025-03-23 15:22:11 -04:00
JMC47
cef4d8fb76
Merge pull request #13432 from iwubcode/custom_pixel_fragment
VideoCommon: move to a 'process_fragment()' function to simplify custom shaders
2025-03-23 15:21:48 -04:00
JMC47
f50d2ee86c
Merge pull request #13425 from jordan-woyak/after-present-cleanup
Fix performance statistics when Skip Duplicate Frames is turned off.
2025-03-23 15:21:31 -04:00
JMC47
28f1beeca8
Merge pull request #13398 from jordan-woyak/perf-tracker
PerformanceTracker: Eliminate mutex. General cleanups.
2025-03-23 15:21:11 -04:00
JMC47
178462e10f
Merge pull request #13385 from Tilka/sp2_ad16
Fix AD16 and make SP2 configurable
2025-03-23 15:20:45 -04:00
JMC47
9b0471532c
Merge pull request #13368 from jordan-woyak/anisotropic-filtering
Use Game Requested Anisotropic Filtering
2025-03-23 15:17:24 -04:00
JMC47
2da255d8cd
Merge pull request #13311 from iwubcode/dynamic_input_textures_reduce_image_writes
Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures
2025-03-23 15:12:28 -04:00
JMC47
e93f0de8a4
Merge pull request #13295 from jordan-woyak/controller-emu-cleanup
InputCommon/ControllerEmu: Break out functionality of EmulatedController to eliminate redundant members.
2025-03-23 15:12:06 -04:00
JosJuice
c1990bc687 EXI: Make HLE BBA panic alerts translatable
Also rewording the messages to make them clearer and fix typos.
2025-03-23 15:43:16 +01:00
iwubcode
8e253518e6 VideoCommon: move to a 'process_fragment()' function to simplify custom shaders and provide a direct override of the tev stage logic 2025-03-22 15:22:00 -05:00