JosJuice
84ab15e020
AchievementManager: Add required forward declarations
...
This was causing compilation errors when building without
USE_RETRO_ACHIEVEMENTS.
2024-12-15 18:00:14 +01:00
Sintendo
d81213c4a5
JitArm64_Integer: Optimize subfic for -1
...
Another one backported from x86. Not sure why I didn't do this in #12891
already.
- Without carry
Before:
0x2a3a03fb mvn w27, w26
0x6b1a037b subs w27, w27, w26
After:
0x1280001b mov w27, #-0x1 ; =-1
- With carry
Before:
0x2a3b03f7 mvn w23, w27
0x6b1b02f7 subs w23, w23, w27
0x1a9f37f6 cset w22, hs
0x390bd3b6 strb w22, [x29, #0x2f4]
After:
0x12800017 mov w23, #-0x1 ; =-1
2024-12-15 02:24:30 +01:00
JosJuice
ada646a795
Merge pull request #12682 from JosJuice/jit-fallback-discard-assert
...
Jit: Skip discarded registers when flushing for interpreter fallback
2024-12-12 23:48:37 +01:00
TryTwo
9541bb6cf7
Add method to bold slider/spin labels when a user game ini setting is being used
2024-12-10 13:42:30 -07:00
TryTwo
ac129d318b
EnhancementsWidget:: Move to using ConfigControls and add new control for ComboBoxes that set two settings at once.
2024-12-10 13:42:17 -07:00
TryTwo
84a937ae65
Add GFX property tabs to game properties window, allowing them to be set to the user game ini. Additionally, refactor ConfigWidgets to reduce duplication. Refactor GameConfigWidget to use config system.
...
Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system.
Supports multiple game properties being open at once.
Supports editing while a game is playing, but the options only save and update the active game when the window is closed.
Right-clicking will remove a property from the game ini.
2024-12-10 13:40:30 -07:00
JMC47
6ea8edd531
Merge pull request #13209 from jordan-woyak/sdl-touchpad
...
InputCommon/SDL: Add touchpad inputs.
2024-12-10 12:52:43 -05:00
JosJuice
687fe65709
Merge pull request #13166 from Sintendo/stX-opt
...
JitArm64_LoadStore: Optimize zero stores in stX
2024-12-08 11:06:33 +01:00
OatmealDome
57b1234feb
Merge pull request #13113 from CelestialAmber/mwld-map
...
Core: Store object name separately for symbols
2024-12-07 17:13:13 -05:00
JosJuice
7a31c8f10b
AchievementManager: Make SetHardcoreMode private
...
This is an implementation detail that doesn't need to be exposed.
2024-12-07 19:29:53 +01:00
TryTwo
08df9a66e0
DolphinQt: Refactor, add ConfigControl class
...
This reduces code duplication in the different ConfigControls. This is
helpful for the next commit, which will modify the now deduplicated
code.
2024-12-07 16:31:34 +01:00
JosJuice
e3bfff5cb6
JitArm64: Optimize ps_sel with d == b || d == c
2024-12-07 12:20:24 +01:00
Sintendo
065165f749
Jit_FloatingPoint: Prefer BLENDVPD over VBLENDVPD
...
Prefer BLENDVPD over VBLENDVPD if the latter doesn't save any
instructions.
VBLENDVPD allows separate source and destination registers, which can
eliminate a MOVAPD/MOVSD. However, on Intel since Skylake, VBLENDVPD
takes additional uops to execute compared to BLENDVPD (according to
https://uops.info ). On AMD and older Intel microarchitectures there is no
difference.
2024-12-07 11:22:28 +01:00
JosJuice
0a84d93a8e
Merge pull request #13196 from jordan-woyak/expanding-numeric-settings
...
DolphinQt: Make mapping window spinboxes horizontally expanding.
2024-12-07 11:14:55 +01:00
OatmealDome
e05b033dd2
ScmRevGen: Don't generate Info.plist files directly
...
Some generators (like Unix Makefiles and Xcode) copy an app's Info.plist at configure time.
This causes a problem when we need to generate the Info.plist at build time, like how we
currently do it with ScmRevGen. Instead of generating the Info.plist directly in ScmRevGen,
provide an Info.plist without any version information to CMake at configure time, have
ScmRevGen generate a separate plist file with the version information at build time, and
then merge the two together to create the final Info.plist.
2024-12-05 14:56:08 -05:00
JosJuice
c6b0629275
Merge pull request #13200 from Dentomologist/irwidget_move_header_constants_into_class
...
IRWidget: Move header constants into class
2024-12-05 18:53:17 +01:00
OatmealDome
3c27c38e71
DolphinQt: Use TARGET_BUNDLE_DIR generator expression instead of specifying the bundle path ourselves
2024-12-04 22:53:39 -05:00
Jordan Woyak
ad1511982a
InputCommon/SDL: Add touchpad inputs.
2024-12-04 21:08:18 -06:00
JMC47
8c3b9c9cf6
Merge pull request #13174 from jordan-woyak/sdl-battery
...
ControllerInterface/SDL: Add Battery Input.
2024-12-04 21:46:07 -05:00
OatmealDome
e6f335bfcf
VKSwapChain: Always use surface formats with a normal sRGB color space if not RGBA16F
...
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2024-12-03 20:49:50 -05:00
JMC47
26ba8f5481
Merge pull request #13197 from jordan-woyak/vrr-mapping-indicators
...
DolphinQt: Update mapping indicators at screen refresh rate.
2024-12-03 12:51:18 -05:00
JMC47
cf29214c03
Merge pull request #12955 from LillyJadeKatrin/retroachievements-gecko
...
Add Support for Gecko Codes to Achievements Whitelist
2024-12-02 14:18:53 -05:00
JosJuice
74ed5e5532
Android/GCAdapter: Don't join current thread
...
The read thread could call Reset, which in turn tried to join the read
thread, leading to a SIGABRT. This manifested as Dolphin consistently
crashing when disconnecting a GC adapter and having a chance of crashing
a few seconds after connecting a GC adapter.
2024-12-01 12:59:25 +01:00
LillyJadeKatrin
51435b6ef8
Approve Super Mario Sunshine Widescreen Gecko Code
2024-11-29 21:56:45 -05:00
LillyJadeKatrin
81098433c8
Add Gecko and AR codes to the Patch Allowlist Test
2024-11-29 21:56:44 -05:00
LillyJadeKatrin
8447ce99f4
Scale back hardcore code block
...
Now that patches and codes are enabled on a case by case basis, remove patcher code blocking codes entirely in hardcore mode, and reword the warning to be more accurate.
2024-11-27 21:21:26 -05:00
LillyJadeKatrin
3c255b55e8
Add AR Code Whitelist Approval
2024-11-27 21:21:26 -05:00
LillyJadeKatrin
13a1956cfa
Add Gecko Code Whitelist Approval
2024-11-27 21:21:25 -05:00
LillyJadeKatrin
78f3448e27
Convert FilterApprovedPatches to Template
2024-11-27 21:21:25 -05:00
Dentomologist
a9b1c1f5f8
IRWidget: Move header constants into class
...
This apparently didn't compile on macOS six years ago before c++20, but
it should be fine by now.
While I'm at it, make the constants upper case per convention.
2024-11-26 13:50:13 -08:00
Jordan Woyak
e7a8e2fca1
DolphinQt: Update mapping indicators at screen refresh rate.
2024-11-25 14:58:48 -06:00
Jordan Woyak
26f2e5f022
DolphinQt: Make mapping indicators compatible with a variable update frequency.
2024-11-25 14:43:03 -06:00
Jordan Woyak
ea93b65d21
DolphinQt: Make mapping window spinboxes horizontally expanding.
2024-11-24 18:59:18 -06:00
JMC47
e0c387416d
Merge pull request #13153 from LillyJadeKatrin/retroachievements-netplay-hardcore
...
Force NetPlay Clients to Host Hardcore Status
2024-11-22 22:01:00 -05:00
JosJuice
0f2c2c7ae0
Merge pull request #13156 from jordan-woyak/sdl-no-wgi
...
ControllerInterface/SDL: Disable SDL's Windows.Gaming.Input controller handling.
2024-11-17 21:51:56 +01:00
mitaclaw
62d7166e6a
GDBStub: Signal Breakpoint Changes To Host
2024-11-15 15:12:11 -08:00
Amber Brault
1c4bfc35d9
Core: Store object name separately for symbols
2024-11-11 12:36:53 -05:00
JMC47
80ea68b13c
Merge pull request #13183 from Tilka/sync_on_fifo_reset
...
ProcessorInterface: sync GPU just before PI_FIFO_RESET
2024-11-11 00:38:26 -05:00
LillyJadeKatrin
9b6555c49c
Force NetPlay Clients to Host Hardcore Status
...
If the host is in hardcore mode, all joining players will be set to hardcore mode; if not, all joining players will be set to softcore. This ensures all players have the same settings and remain synchroized.
2024-11-10 09:40:47 -05:00
LillyJadeKatrin
ef71c75458
Add Config Changed Callback for Hardcore Mode
2024-11-10 08:38:00 -05:00
OatmealDome
deee3ee410
Merge pull request #13184 from LillyJadeKatrin/retroachievements-forever-dim
...
Add Approved Patches - Eternal Darkness, Monster Hunter Tri
2024-11-09 00:29:52 -05:00
LillyJadeKatrin
60a0efc69c
Add Approved Patches - Eternal Darkness, Monster Hunter Tri
...
The primary focus of this PR is the Eternal Darkness patch which fixes hanging at startup, which prior to this fix makes Eternal Darkness unplayable in hardcore. The MHTri patch was added as well simply because it could be.
2024-11-08 23:07:06 -05:00
Tillmann Karras
fbce737415
ProcessorInterface: sync GPU just before PI_FIFO_RESET
...
GXAbortFrame() is problematic for Dolphin because it first writes
PI_FIFO_RESET (for which we discard our internal fifo), then disables CP
reads (for which we execute pending commands in the GP fifo in emulated
memory). I don't know whether there is a race condition on hardware, but
there is one for us. Avoid this by also doing a GPU sync here.
2024-11-09 03:29:05 +00:00
Tilka
4b0b9799a9
Merge pull request #13000 from tygyh/Simplify-type-specifiers
...
Remove redundant elaborated type specifiers
2024-11-08 23:59:08 +00:00
Jordan Woyak
edb947df4f
WiimoteEmu: Remove disabled and no-longer-compiling wav dumping code.
2024-11-08 15:38:05 -06:00
JMC47
7e1074b140
Merge pull request #13172 from deReeperJosh/superchargersfix
...
IOS/USB: Reconnect HIDv4 Devices after shutdown
2024-11-05 15:02:22 -05:00
Jordan Woyak
83ed817ad2
ControllerInterface/SDL: Add Battery Input.
2024-11-04 22:24:42 -06:00
Tillmann Karras
0488ade1dc
DSPHLE/AXWii: fix Elebits sound
...
Regressed in 37ebb13ece
.
2024-11-04 20:47:55 +00:00
Joshua de Reeper
6dbffd1fee
IOS/USB: Reconnect HIDv4 Devices after shutdown
2024-11-04 20:12:38 +00:00
Admiral H. Curtiss
59530966f9
Merge pull request #13164 from jordan-woyak/saveable-deduction
...
Config/IsSettingSaveable: Use class template argument deduction.
2024-11-04 11:05:28 +01:00
Admiral H. Curtiss
b8823457c1
Merge pull request #13165 from jordan-woyak/FullAnalogSurface-rename
...
InputCommon: Rename AddAnalogInputs to AddFullAnalogSurfaceInputs.
2024-11-04 11:04:50 +01:00
Jordan Woyak
346a9e0f97
InputCommon: Move FullAnalogSurface class definition out of header file.
2024-11-03 15:06:50 -06:00
Jordan Woyak
2f1390e9f9
InputCommon: Rename AddAnalogInputs to AddFullAnalogSurfaceInputs.
2024-11-03 15:06:50 -06:00
Dentomologist
47a86d920f
GeneralWidget: Recommend default video backend in tooltip
...
Recommend the platform's default video backend in the Backend tooltip
instead of always recommending OpenGL.
2024-11-03 12:28:30 -08:00
Dentomologist
7b8610f4ea
VideoBackendBase: Clarify function name
...
Rename GetDefaultBackendName to GetDefaultBackendConfigName to
distinguish it from the display name.
2024-11-03 12:26:57 -08:00
dreamsyntax
2f38a00534
InputCommon: Disable DualSense Player LED
2024-11-02 16:49:36 -07:00
Sintendo
a307d9d9b8
JitArm64_LoadStore: Optimize zero stores in stX
...
The value being stored must be loaded into a register. In the case of an
immediate value, this means it must be materialized. The value is
eventually byteswapped before performing the store.
This can be simplified for the value 0 for two reasons:
- ARM64 has a dedicated zero register, so does not need to be
materialized.
- Byteswapping zero is still zero, so we can skip this step.
We could skip byteswapping for other values by immediately materializing
the byteswapped value in a register, but the benefits are not so clear
there (if the value needs to be materialized anyway, it is better to do
it up front).
Before:
0x5280001b mov w27, #0x0 ; =0
0xb9404fba ldr w26, [x29, #0x4c]
0x12881862 mov w2, #-0x40c4 ; =-16580
0x0b020342 add w2, w26, w2
0x5ac00b61 rev w1, w27
0xb8226b81 str w1, [x28, x2]
After:
0xb9404fbb ldr w27, [x29, #0x4c]
0x12881862 mov w2, #-0x40c4 ; =-16580
0x0b020362 add w2, w27, w2
0xb8226b9f str wzr, [x28, x2]
2024-11-02 23:15:22 +01:00
Jordan Woyak
0fd5e86677
Config/IsSettingSaveable: Remove unused includes.
2024-11-02 16:23:49 -05:00
Jordan Woyak
8da7a86b96
Config/IsSettingSaveable: Use class template argument deduction.
2024-11-02 16:22:54 -05:00
Tilka
97931a718f
Merge pull request #13151 from mitaclaw/core-global-system-6
...
MainWindow: Avoid Global System Accessor
2024-11-02 12:04:28 +00:00
JosJuice
980a726313
JitArm64: Drop GetCRFieldBit's negate parameter
...
No caller is using it anymore.
2024-11-02 10:51:48 +01:00
JosJuice
71e9766519
JitArm64: Use BIC/EON/ORN in crXXX
...
This lets us save an instruction in certain scenarios.
2024-11-02 10:51:38 +01:00
JosJuice
9246bcad55
JitArm64: Add negate parameter to SetCRFieldBit
...
Unlike on x64, inverting EQ or GT in SetCRFieldBit saves us one
instruction. Also unlike on x64, inverting SO or LT in GetCRFieldBit
requires an extra instruction (just like in SetCRFieldBit). Due to this,
replacing an invert in GetCRFieldBit with an invert in SetCRFieldBit
when possible is either equally good or better - never worse.
2024-11-02 10:48:27 +01:00
JosJuice
7fddd39d97
JitArm64: Port some crXXX optimizations from Jit64
2024-11-02 10:24:02 +01:00
JosJuice
bbe271eec6
JitArm64: Refactor CR bit manipulation code
...
This brings JitArm64 more in line with Jit64, and makes the next commit
easier to implement. No functional change.
2024-11-02 10:19:31 +01:00
Jordan Woyak
d920064779
Add include guard to QtUtils.h
2024-11-02 01:27:07 -05:00
JMC47
000e8fd83d
Merge pull request #13157 from jordan-woyak/sdl-hotplug-fix
...
ControllerInterface/SDL: Fix device removal event processing.
2024-11-01 18:11:17 -04:00
Jordan Woyak
d361d4ba6e
ControllerInterface/SDL: Fix device removal event processing.
2024-10-31 14:11:27 -05:00
Jordan Woyak
149a3721ff
DolphinQt: Ensure skylanders QDateTimeEdit shows a four digit year without forcing dd-mm-yyyy format.
2024-10-31 02:38:45 -05:00
Jordan Woyak
19c3b88e5a
ControllerInterface/SDL: Disable SDL's Windows.Gaming.Input controller handling.
2024-10-30 17:41:09 -05:00
JMC47
adafe1f347
Merge pull request #13147 from mitaclaw/jit-block-table-model-fix
...
JitBlockTableModel: Catch All Block Invalidating Events (I Hope)
2024-10-30 17:00:27 -04:00
JMC47
1ba3a141a2
Merge pull request #13143 from TellowKrinkle/PrimBreaking
...
VideoCommon: Implement primitive breaking for primitive lists
2024-10-30 12:15:11 -04:00
TellowKrinkle
5ef4fcb005
VideoCommon: Implement primitive breaking for primitive lists
2024-10-29 22:38:22 -05:00
Admiral H. Curtiss
2764a3dc44
Merge pull request #13136 from Tilka/startup_patch
...
Core: apply Dolphin OnFrame patches right after boot
2024-10-30 04:28:18 +01:00
JMC47
bab34ca060
Merge pull request #13140 from dreamsyntax/skip-efb-default-flip
...
GraphicsSettings: EFBAccessEnable=false by default
2024-10-28 18:58:37 -04:00
JMC47
1012803f2e
Merge pull request #12954 from LillyJadeKatrin/retroachievements-confirm
...
Achievements Confirmation Dialogs
2024-10-28 12:54:37 -04:00
JMC47
aa8226fa88
Merge pull request #12744 from nlebeck/settingshandler-split-2
...
Split `SettingsHandler` into separate reader and writer classes
2024-10-27 19:23:05 -04:00
JMC47
96c9591b99
Merge pull request #13096 from mitaclaw/ranges-modernization-7-rewrite
...
Ranges Algorithms Modernization - Rewrite
2024-10-27 19:17:01 -04:00
JosJuice
92b8d57e6f
Merge pull request #13144 from JosJuice/jitarm64-imm-stp
...
JitArm64: Allow ppcState STP optimization for imm
2024-10-27 10:59:00 +01:00
mitaclaw
12f8b11452
MainWindow: Avoid Global System Accessor
2024-10-24 21:41:35 -07:00
mitaclaw
0371b74ebf
JitBlockTableModel: Update For Symbols Too
...
Flushing efficiency down the drain because I wrote unsafe code to achieve it... I hope I can recover this.
2024-10-24 18:10:52 -07:00
Sintendo
e6fd843c0b
JitArm64_LoadStore: Small dcbx optimization
...
MUL and SUB can be combined in one instruction.
Before:
0x1b1a7c01 mul w1, w0, w26
0x4b010318 sub w24, w24, w1
After:
0x1b1ae018 msub w24, w0, w26, w24
2024-10-24 23:05:42 +02:00
JosJuice
5165ddea52
DolphinQt: Remove a stray period from the Audio tab
2024-10-24 21:24:40 +02:00
JosJuice
c212c0d08e
Merge pull request #12868 from Sintendo/scoped-reg
...
JitArm64: Release temporary regs with RAII
2024-10-24 21:01:53 +02:00
mitaclaw
5a95951751
DolphinQt: Signal Host::JitCacheInvalidation
in more places
2024-10-23 23:43:25 -07:00
mitaclaw
3d9c728910
Host: Rename JitCacheInvalidation
...
There are two hard problems in computer science...
2024-10-23 23:43:24 -07:00
Admiral H. Curtiss
c13c11d230
Add missing algorithm header in SettingsHandlerTest.cpp
2024-10-22 23:48:43 +02:00
dreamsyntax
9dacefcbf1
GraphicsSettings: EFBAccessEnable=false by default
...
Makes Graphics -> Hacks -> Skip EFB Access from CPU enabled by default. Some GPU drivers stall when EFB access occurs in games where EFB is not used. Most games that require this setting set to 'true' already have this defined in their game inis.
2024-10-22 12:28:14 -07:00
Niel Lebeck
1d79991ec4
Split SettingsHandler
into separate reader and writer classes
2024-10-21 20:20:15 -07:00
JosJuice
6fb3e9226b
JitArm64: Use WZR for ppcState STP optimization with imm == 0
2024-10-21 21:53:21 +02:00
JosJuice
383cbffdec
JitArm64: Allow ppcState STP optimization for imm
2024-10-21 21:51:48 +02:00
JMC47
f412e2488c
Merge pull request #12714 from mitaclaw/jit-widget-refresh
...
DolphinQt: JIT Widget Refresh
2024-10-21 12:03:50 -04:00
Sintendo
defb2d65a6
JitArm64_SystemRegisters: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
be2b466743
JitArm64_Paired: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
3b251dbb2a
JitArm64_LoadStorePaired: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
23327064f6
JitArm64_LoadStoreFloating: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
9420250046
JitArm64_LoadStore: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
ac3d3de66d
JitArm64_FloatingPoint: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
9805a8ac0a
JitArm64_Branch: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00
Sintendo
cb29a29866
JitArm64: Use ScopedARM64Reg
2024-10-21 08:33:05 +02:00