2985 Commits

Author SHA1 Message Date
849d8b7dae DolphinQt: Fix blank square in MappingWindow's top-left corner. 2025-03-25 20:52:29 -05:00
d2cc6760a0 Use Common::ToUnderlying 2025-03-25 21:25:46 +01:00
eb84b0fb9b Merge pull request #13442 from TryTwo/PR_CodeWidget_Layout_Tweak
Debugger CodeWidget: Small layout tweak
2025-03-25 13:19:02 -04:00
e34907025d Add numeric label support to assembler 2025-03-24 18:59:32 -07:00
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
0b128badae DolphinQt: Fix unresponsive hotkeys during framestep overlay move
Fix the following bug:

* Have a moveable ImGui overlay enabled, such as the Statistics window.
* Pause the game.
* Click and hold on the overlay's title bar as if you were going to move
  it. Because the screen isn't updating while the game is paused, you
  won't be able to actually move the overlay.
* Press the Frame Advance hotkey several times until it stops
  responding.

At this point emulation hotkeys are no longer responsive. This can be
resolved by selecting Play from the toolbar or menu, or selecting Frame
Advance from the menu a couple times, but it's annoying and not obvious
what's gone wrong or how to fix it.

Why the bug is happening:

* Doing a framestep while clicking on the overlay title bar causes ImGui
  to set IO.WantCaptureKeyboard to true, indicating that ImGui is
  requesting Dolphin ignore any keyboard events while the overlay is
  being interacted with.
* Dolphin complies with this request, causing
  Host_UIBlocksControllerState to return true and thus setting the input
  gate to ignore input.
* IO.WantCaptureKeyboard is only updated when ImGui::NewFrame() is
  called, which only happens at the end of each present. It thus remains
  true indefinitely since the game paused after the last framestep, and
  so Dolphin ignores any hotkeys such as the framestep or play keys.

The fix:

Ignore IO.WantCaptureKeyboard when the game is paused. ImGui can't
meaningfully capture input anyway when the game is paused, so this
shouldn't cause any problems elsewhere.

Once async presentation is implemented we'll want to revert this change,
both because it'll become unnecessary and because ImGui will be able to
do stuff while paused and so suppressing emulation hotkeys will actually
be useful.
2025-03-23 14:36:58 -07:00
ad3650abfc Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
178462e10f Merge pull request #13385 from Tilka/sp2_ad16
Fix AD16 and make SP2 configurable
2025-03-23 15:20:45 -04:00
9b0471532c Merge pull request #13368 from jordan-woyak/anisotropic-filtering
Use Game Requested Anisotropic Filtering
2025-03-23 15:17:24 -04:00
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
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
d03f9032c1 Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures 2025-03-22 14:53:02 -05:00
b0867c1602 CodeWidget: Layout tweak. Give left-side widgets more vertical space by moving the address bar out of the way. Align things better. 2025-03-21 09:55:52 -07:00
561aee7707 Config: Expose Default and 1x Anisotropic Filtering setting. 2025-03-17 20:46:24 -05:00
4b711e1e0a DolphinQt: Allow ConfigComplexChoice to handle DefaultState values. 2025-03-17 20:46:24 -05:00
6a90affa38 Fix -Wunused-lambda-capture warning 2025-03-17 20:08:19 +00:00
42fb43dacf Implement multiple saves import
https://bugs.dolphin-emu.org/issues/12887
2025-03-17 10:43:09 +01:00
9720b1f5f5 Merge pull request #13411 from jordan-woyak/gui-vconfig
DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage.
2025-03-16 14:54:24 -04:00
90b6f0d16d Config: make SP2 configurable 2025-03-15 22:03:17 +00:00
ddb82a5e8c InputCommon/ControllerEmu: Break out functionality of EmulatedController
to eliminate redundant unused members in Wii Remote extension objects.
2025-03-15 14:30:43 -05:00
225039f742 Merge pull request #13427 from LillyJadeKatrin/retroachievements-code-approval-fix
Fixed Multi Config Code Approvals
2025-03-15 13:57:48 -04:00
8c7ab286f5 Merge pull request #13181 from tygyh/Replace-'reinterpret_cast'
Replace 'reinterpret_cast' with 'static_cast'
2025-03-15 15:31:38 +01:00
fd2c6918fa Merge pull request #13388 from jordan-woyak/vsync-not-recommended
DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip.
2025-03-15 14:24:29 +01:00
0615ade725 Fixed Multi Config Code Approvals
Refactors the AR/Gecko/Patch code approval process to verify from every possible game ini, not just the base game ID. This fixes codes on specific revisions or codes general to any region.
2025-03-15 07:57:16 -04:00
f09ba10daa AudioCommon: Added Granular Synthesis 2025-03-14 01:22:35 -05:00
fdf00050a6 DolphinQt: Use tooltips on Advanced tab. 2025-03-13 05:32:16 -05:00
5b88c0b90e DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage. 2025-03-10 20:19:45 -05:00
7f3d8a1ad4 VideoConfig: Eliminate NetPlay related members. 2025-03-10 18:53:44 -05:00
5ed8b7bc9d Merge pull request #13403 from jordan-woyak/backend_info
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-10 15:06:19 -04:00
3f73a39dbd Merge pull request #13286 from JoshuaVandaele/xcb
Enforce XCB within code
2025-03-10 15:03:54 -04:00
c9f589faa5 Modernize std::stable_sort with ranges and projections 2025-03-09 13:26:38 -07:00
00e147c722 Simplify std::count_if with std::ranges::count and projections 2025-03-09 13:26:37 -07:00
62b2b939b5 Simplify std::find_if with std::ranges::find and projections
In LabelMap.cpp, the code is currently unused so I was unable to test it.

In WiiUtils.cpp, the magic value `1u` was replaced by the constant value `DiscIO::PARTITION_UPDATE`.
2025-03-09 13:26:35 -07:00
c18c039089 VideoCommon: Move backend_info out of VideoConfig struct. 2025-03-09 01:42:45 -06:00
e217d6c939 InputCommon: Use Clock from CommonTypes. 2025-03-02 15:42:26 -06:00
5d16c51963 DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip. 2025-03-02 05:43:00 -06:00
030892abd9 Merge pull request #13369 from Tilka/qt_warnings
CMake: disable Qt deprecation warnings we can't fix
2025-02-25 18:32:28 +00:00
104a25fe0d DolphinQt: Fix MappingButton not updating text on middle-click clear. 2025-02-24 21:17:41 -06:00
7afc3df76f USB: Infinity window icon 2025-02-24 00:08:42 +02:00
a8363854ee CMake: disable Qt deprecation warnings we can't fix 2025-02-23 14:18:05 +00:00
3c44fe592b DolphinQt: Add "Time Played" column to game list view
Shows minutes/hours in the list view and handles column visibility.
2025-02-16 23:15:11 +01:00
276f043db8 DolphinQt: Create toggle for enabling/disabling time tracking
Introduce a new "Enable Time Tracking" checkbox in the InterfacePane UI. The checkbox is dynamically enabled or disabled based on the emulation state, preventing changes while emulation is active.
2025-02-16 23:15:11 +01:00
343007fa9e Merge pull request #13343 from jordan-woyak/dark-theme-indicator-gate-colors
DolphinQt/Mapping: Adjust dark theme indicator gate color calculation.
2025-02-15 16:34:30 -05:00
66624abb12 DolphinQt/Mapping: Clear and skip "Modifier" iterative input mappings when using
analog inputs.
2025-02-15 14:15:51 -06:00
3189de6c7a DolphinQt: Add setting to enable iterative input mappings. 2025-02-15 14:15:51 -06:00
a8fae9b826 Merge pull request #13320 from jordan-woyak/detect-alternations
DolphinQt/Mapping: Add setting to enable waiting for alternate mappings.
2025-02-15 12:59:23 -05:00
adc5b81c31 DolphinQt: Rename the pack/unpack SD Card buttons. 2025-02-12 13:30:48 -06:00
165e35ed5d DolphinQt/Mapping: Adjust dark theme indicator gate color calculation. 2025-02-10 01:15:58 -06:00
dcfb1361d2 Merge pull request #13223 from mitaclaw/branch-watch-tool-fixes-5
Branch Watch Tool: Refresh Context Menus OnEmulationStateChanged
2025-02-06 21:52:50 +01:00
6ee08fb9db Merge pull request #13302 from TryTwo/Breakpoints_Fix_Lag
Breakpoints: Fix lag when loading multiple memory breakpoints
2025-02-05 18:27:22 +01:00