Commit Graph

14381 Commits

Author SHA1 Message Date
JMC47
65726b7b5f
Merge pull request #13374 from Dentomologist/performancemetrics_clamping_resetting_and_add_setting
PerformanceMetrics: Add clamping, resetting on resize, and setting
2025-02-26 19:44:13 -05:00
Jordan Woyak
e5b55bfc06 WiimoteEmu: Make SerializedWiimoteState store camera points as IRExtended instead of custom layout. 2025-02-24 16:29:07 -06:00
Dentomologist
0645a267d9 PerformanceMetrics: Add clamping, resetting on resize, and setting
Clamp overlays to the render window (with some padding), reset their
positions when the render window changes sizes, and add a setting to
enable moving the overlays (off by default, .ini only for now).
2025-02-24 13:17:57 -08:00
Florin9doi
51dc3ff466 USB: Remove unused params 2025-02-24 00:07:28 +02:00
JMC47
6d9c887a21
Merge pull request #13365 from jordan-woyak/si-disco
SI: Set NOREP, ERRSTAT, and ERRLATCH when GetData returns false.
2025-02-23 01:23:39 -05:00
JMC47
aabde71484
Merge pull request #13348 from jordan-woyak/movie-SerializedWiimoteState
Core/Movie: Make DTM Wii Remote data use SerializedWiimoteState.
2025-02-22 14:08:41 -05:00
Jordan Woyak
8431c23cbc SI: Set NOREP, ERRSTAT, and ERRLATCH when GetData returns false. 2025-02-22 09:25:57 -06:00
JosJuice
af064c57de
Merge pull request #13219 from Tilka/cp_cleanup
VideoCommon: drop CP MMIO registers that were probably added in the wrong place
2025-02-17 21:27:19 +01:00
Aneesh Maganti
fffb499da2
Core/HW: Add time tracking thread in CPU manager
Introduce method to track the time played for a game via time differences and TimePlayed methods. Threads are synchronized via Common::Event.
2025-02-16 23:15:12 +01:00
Aneesh Maganti
a9ebedbf7d
Core/Config: Add settings for time tracking 2025-02-16 23:15:11 +01:00
Aneesh Maganti
892d6e30df
Core/ConfigManager: Add locks for metadata methods
All metadata access methods now acquire a lock on `m_metadata_lock` to prevent race conditions.
2025-02-16 23:15:11 +01:00
Aneesh Maganti
803241c64b
Core: Add TimePlayed class to track game playtime
Creates TimePlayed class and implemented constructors, AddTime, GetTimePlayed, and Reload methods. Updates CMakeLists.txt and DolphinLib.props as appropriate.
2025-02-16 23:15:11 +01:00
Admiral H. Curtiss
aced90de97
Merge pull request #13329 from noahpistilli/guard-startup-patches
Core: Check if msr.DR and msr.IR are valid at ApplyStartupPatches
2025-02-16 16:14:35 +01:00
JMC47
0fc36bbfa9
Merge pull request #13341 from jordan-woyak/sd-convert-buttons-rename
DolphinQt: Rename the pack/unpack SD Card buttons.
2025-02-15 00:31:40 -05:00
JMC47
f9accfd4d6
Merge pull request #13324 from Sintendo/jitarm64-cmp-imm
JitArm64_Integer: cmp/cmpl optimizations
2025-02-15 00:30:34 -05:00
Jordan Woyak
7a37d015b7 DolphinAnalytics/WiimoteEmu: Remove now-irrelevant game quirk check. 2025-02-13 17:39:54 -06:00
Jordan Woyak
59d25aceb6 WiimoteEmu: Removed unused Extension encryption key getter. 2025-02-12 23:42:44 -06:00
Jordan Woyak
83d4249838 Core/Movie: Make DTM Wii Remote data use SerializedWiimoteState. 2025-02-12 23:42:43 -06:00
Jordan Woyak
adc5b81c31 DolphinQt: Rename the pack/unpack SD Card buttons. 2025-02-12 13:30:48 -06:00
Tillmann Karras
84e72c185a VideoCommon: drop CP MMIO registers that were probably added in the wrong place
I think someone confused these with the actual token and bounding box
registers in PE, which were added later. In CP they never did anything
and it's suspicious that they have the same addresses as their PE
counterparts. On real hardware they always read as zero.
2025-02-08 11:46:49 +00:00
OatmealDome
c770e7c276
Merge pull request #13318 from sanjay900/dont-detach-macos
LibusbDevice: Don't detach kernel drivers on macOS
2025-02-08 01:01:58 -05:00
Admiral H. Curtiss
c6be362a8c
Merge pull request #13334 from jordan-woyak/mplus-lround
WiimoteEmu/MotionPlus: Gyro data calculation cleanup.
2025-02-06 22:20:24 +01:00
Admiral H. Curtiss
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
TryTwo
bbf72e79f9 Breakpoints: Fix lag when adding or removing multiple memory breakpoints by only calling DBATUpdated() once. 2025-02-04 00:21:13 -07:00
Jordan Woyak
c857a7dd82 WiimoteEmu: Use a named constant instead of a magic number for speaker
data writes.
2025-02-03 19:52:38 -06:00
Jordan Woyak
857c93c529 WiimoteEmu/MotionPlus: Gyro data calculation cleanup. 2025-02-03 02:05:47 -06:00
Sketch
4499718368 Core: Check if msr.DR or msr.IR are valid at ApplyStartupPatches 2025-02-02 17:27:16 -05:00
Admiral H. Curtiss
77056ba7b7
Merge pull request #13208 from Dentomologist/wiitasinputwindow_update_on_attachment_change
WiiTASInputWindow: Update controls when attachment changes
2025-02-02 18:02:58 +01:00
Admiral H. Curtiss
017e0b5658
Merge pull request #13306 from OatmealDome/cubeb-optional
CMakeLists: Add flag to disable Cubeb
2025-02-02 17:50:20 +01:00
Sintendo
755c003265 JitArm64_RegCache: Const correctness
Forgot this when I added it in #13120.
2025-02-02 12:57:59 +01:00
Sintendo
7ce7da629e JitArm64_Integer: cmpl - Subtract shifted 12-bit constant
You can encode a shifted 12-bit immediate in a SUB instruction on ARM64.
We exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52a00218   mov    w24, #0x100000            ; =1048576
0xcb180379   sub    x25, x27, x24

After:
0xd1440379   sub    x25, x27, #0x100, lsl #12 ; =0x100000
2025-02-02 12:57:59 +01:00
Sintendo
b7c3f91643 JitArm64_Integer: cmpl - Subtract 12-bit constant
You can encode a 12-bit immediate in a SUB instruction on ARM64. We can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x5280003a   mov    w26, #0x1                 ; =1
0xcb1a033b   sub    x27, x25, x26

After:
0xd100073b   sub    x27, x25, #0x1
2025-02-02 12:57:59 +01:00
Sintendo
c5870ed0c7 JitArm64_Integer: cmp - Skip sign extension if possible
While we cannot always avoid materializing immediates, we can still
inspect the most significant bit and potentially skip sign extension.
This can sometimes save an instruction.

Before:
0x5280003a   mov    w26, #0x1                 ; =1
0x93407f5b   sxtw   x27, w26
0xcb38c37b   sub    x27, x27, w24, sxtw

After:
0x5280003a   mov    w26, #0x1                 ; =1
0xcb38c35b   sub    x27, x26, w24, sxtw

Before:
0x52a20018   mov    w24, #0x10000000          ; =268435456
0x93407f79   sxtw   x25, w27
0xcb38c339   sub    x25, x25, w24, sxtw

After:
0x52a20018   mov    w24, #0x10000000          ; =268435456
0x93407f79   sxtw   x25, w27
0xcb180339   sub    x25, x25, x24
2025-02-02 12:57:49 +01:00
Sintendo
075c35602f JitArm64_Integer: cmp - Add shifted 12-bit constant
You can encode a shifted 12-bit immediate in an ADD instruction on
ARM64. If the negated constant fits in this range, we can exploit this
to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52bff01a   mov    w26, #-0x800000           ; =-8388608
0x93407f1b   sxtw   x27, w24
0xcb3ac37b   sub    x27, x27, w26, sxtw

After:
0x93407f1b   sxtw   x27, w24
0x9160037b   add    x27, x27, #0x800, lsl #12 ; =0x800000
2025-02-02 12:01:08 +01:00
Sintendo
01eed0a758 JitArm64_Integer: cmp - Add 12-bit constant
You can encode a 12-bit immediate in an ADD instruction on ARM64. If the
negated constant fits in this range, we can exploit this to avoid
materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x12800019   mov    w25, #-0x1                ; =-1
0x93407f5b   sxtw   x27, w26
0xcb39c37b   sub    x27, x27, w25, sxtw

After:
0x93407f5b   sxtw   x27, w26
0x9100077b   add    x27, x27, #0x1
2025-02-02 12:01:05 +01:00
Sintendo
352cbc4772 JitArm64_Integer: cmp - Subtract shifted 12-bit constant
You can encode a shifted 12-bit immediate in a SUB instruction on ARM64.
Constants in this range do not need to be sign extended, so we can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52a00099   mov    w25, #0x40000             ; =262144
0x93407f7a   sxtw   x26, w27
0xcb39c35a   sub    x26, x26, w25, sxtw

After:
0x93407f7a   sxtw   x26, w27
0xd141035a   sub    x26, x26, #0x40, lsl #12  ; =0x40000
2025-02-02 12:00:44 +01:00
Sintendo
4a29e0e4f4 JitArm64_Integer: cmp - Subtract 12-bit constant
You can encode a 12-bit immediate in a SUB instruction on ARM64.
Constants in this range do not need to be sign extended, so we can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52800416   mov    w22, #0x20                ; =32
0x93407f78   sxtw   x24, w27
0xcb36c318   sub    x24, x24, w22, sxtw

After:
0x93407f78   sxtw   x24, w27
0xd1008318   sub    x24, x24, #0x20
2025-02-02 12:00:12 +01:00
Sanjay Govind
10e044872d LibusbDevice: Don't detach kernel drivers on macOS 2025-02-01 10:32:20 +13:00
Javier Martinez
391dae718d Refactor: infinite loop based on Dolphin's style guidelines 2025-01-30 14:36:22 -05:00
OatmealDome
b5a0d293ae
Merge pull request #13305 from OatmealDome/vertexloader-config
VertexLoaderBase: Allow the vertex loader type to be set via config
2025-01-29 17:14:05 -05:00
Admiral H. Curtiss
3f79aa23b4
Merge pull request #13267 from Sintendo/arm64-fix-gt-micro
JitArm64_SystemRegisters: Small FixGTBeforeSettingCRFieldBit optimization
2025-01-28 19:43:53 +01:00
JosJuice
d117614c00
Merge pull request #13213 from JosJuice/remove-filter-patches-lock
Core: Remove redundant lock for FilterApprovedPatches call
2025-01-27 20:15:00 +01:00
JosJuice
ca15b4a7d9
Merge pull request #13229 from sanjay900/wii-drum-velocity-fixes
WiimoteEmu: Fix Drum Extension Velocity
2025-01-26 14:15:53 +01:00
JosJuice
01358c79a6
Merge pull request #13298 from jordan-woyak/less-bt-spam
Core/WiimoteReal: Make Wii Remote scan logging less spammy on Linux.
2025-01-26 14:13:44 +01:00
OatmealDome
d89e7c84fb CMakeLists: Add flag to disable Cubeb 2025-01-25 14:06:55 -05:00
OatmealDome
bffaec9c5e VertexLoaderBase: Allow the vertex loader type to be set via config 2025-01-24 18:31:42 -05:00
Jordan Woyak
799b9d4092
Merge pull request #13192 from jordan-woyak/netplay-win32-interface-list
NetPlay: Implement GetInterfaceListInternal for Windows.
2025-01-24 14:40:25 -06:00
Sanjay Govind
ef97185854 WiimoteEmu: Fix Drum Extension Velocity 2025-01-24 10:06:09 +13:00
Jordan Woyak
01abfafa4e Core/WiimoteReal: Make Wii Remote scan logging less spammy on Linux. 2025-01-22 14:43:20 -06:00
JosJuice
a9a720faa7
Merge pull request #13204 from LillyJadeKatrin/retroachievements-allow-batch
Gecko/AR Batch Approval
2025-01-20 23:35:17 +01:00