Commit Graph

31166 Commits

Author SHA1 Message Date
LillyJadeKatrin ba519e4670 Add rc_client to AchievementManager
Also includes init and shutdown V2s.
2024-05-01 06:43:18 -04:00
LillyJadeKatrin 4ec662bcdf Add rc_client MemoryPeekerV2 to AchievementManager
Has a more traditional read-x-bytes structure; for passing into rc_client in the constructor.
2024-05-01 06:43:18 -04:00
LillyJadeKatrin 05136ee099 Add rc_client RequestV2 to AchievementManager
RequestV2 is to be passed into rc_client upon construction so rc_client can handle server calls internally.
2024-05-01 06:43:18 -04:00
mitaclaw 0397339ab1 DolphinQt: Properly Delete (Some) Widgets
This is not every memory leak, just the ones that were obvious.
2024-04-30 11:17:28 -07:00
JMC47 2b261b9306
Merge pull request #12743 from Filoppi/remove-round-corners-on-game-window
Remove rounded corners on emulation render window
2024-04-30 12:30:03 -04:00
iwubcode 9d28c371e7 VideoCommon: allow custom shaders to set the alpha value for use when blending is enabled 2024-04-28 18:15:27 -05:00
mitaclaw 756ea81ab2 Jit64: Smaller Instruction Breakpoint Condition
Also some static_asserts in JitArm64.
2024-04-28 15:54:15 -07:00
Admiral H. Curtiss efed26ceee
Merge pull request #12739 from malleoz/show_input_count_recording_only
VideoCommon: Only show input count when recording
2024-04-28 20:31:28 +02:00
Admiral H. Curtiss bec6842cbe
Merge pull request #12741 from Filoppi/fix-load-resampling
Qt: fix 13524 - output resampling mode not loading correctly from ini
2024-04-28 20:30:32 +02:00
Dentomologist 628ab51b4b CheatSearch: Use two's complement for negative hex values 2024-04-28 11:00:47 -07:00
Filoppi 91067044f1 Remove rounded corners on emulation render window
On Windows 11, when playing windowed in a separate window/widget from the main emulator window, we don't want the window to have rounded corners, as it prevents the corner pixels from being visible
2024-04-28 12:41:39 +03:00
Filoppi 3815819136 Qt: fix 13524 - output resampling mode not loading correctly from ini 2024-04-27 22:11:45 +03:00
sowens99 3ab1334cd9 VideoCommon: Only show input count when recording 2024-04-26 20:06:57 -04:00
mitaclaw 307a1e3ab8 Jit64/JitArm64: Check Breakpoints Before FPU Availability
CachedInterpreter already does it in the expected order.
2024-04-26 10:58:16 -07:00
Niel Lebeck 36cdb4a544 Eliminate SettingsHandler's `SetBytes` and `Reset` methods
Also make the `Decrypt` method private.

As far as I can tell, the only motivation for exposing the `SetBytes`
and `Reset` methods is to allow `CBoot::SetupWiiMemory` to use the same
`SettingsHandler` instance to read settings data and then write it back.
It seems cleaner to just use two separate instances, and require a given
`SettingsHandler` instance to be used for either writing data to a
buffer or reading data from a buffer, but not both.

A natural next step is to split the `SettingsHandler` class into two
classes, one for writing data and one for reading data. I've deferred
that change for a future PR.
2024-04-23 17:19:01 -07:00
Guilherme Janczak 50dc0ffbce
port to OpenBSD 2024-04-22 20:50:47 +00:00
JosJuice e8154a529f JitArm64: Increase farcode & nearcode cache size
This is a JitArm64 version of 219610d8a0.

Due to limitations on how far you can jump with a single AArch64 branch
instruction, going above the former limit of 128 MiB of code (counting
nearcode and farcode combined) requires a bit of restructuring. With the
restructuring in place, the limit now is 256 MiB. See the new large
comment in Jit.h for a description of the new memory layout.
2024-04-22 08:31:48 +02:00
Tilka b6f0e8876e
Merge pull request #12731 from JosJuice/jitarm64-mfcr-ubfx
JitArm64: Skip UBFX in mfcr
2024-04-21 20:56:46 +01:00
Jordan Woyak 71de5c58b5
Merge pull request #12732 from JosJuice/arm64emitter-assert-category
Arm64Emitter: Fix incorrect assert category (and a shadowed variable)
2024-04-21 14:40:49 -05:00
Jordan Woyak a89336001a
Merge pull request #12733 from mitaclaw/instructionNumber
JitState: Remove Unused instructionNumber
2024-04-21 14:39:25 -05:00
Jordan Woyak d6bcbd0115
Merge pull request #12734 from mitaclaw/assert-dyna_rec
JIT: Fix Incorrect Assert Category
2024-04-21 14:38:41 -05:00
OatmealDome c154134e28 ScmRevGen: Generate Info.plist for MacUpdater 2024-04-21 13:28:21 -04:00
OatmealDome 3ad1037d7f ScmRevGen: Generate Info.plist for DolphinQt 2024-04-21 13:28:21 -04:00
mitaclaw e3721bee1b JIT: Fix Incorrect Assert Category 2024-04-21 09:07:47 -07:00
mitaclaw e7dbd298a8 JitState: Remove Unused instructionNumber 2024-04-21 08:51:29 -07:00
JosJuice de33831783 Arm64Emitter: Fix shadowed variable
A lambda at the end of ARM64XEmitter::ParallelMoves named its parameter
`move`.
2024-04-21 16:20:59 +02:00
JosJuice e140491fa9 Arm64Emitter: Fix incorrect assert category 2024-04-21 16:19:10 +02:00
JosJuice e64cdca405 JitArm64: Skip UBFX in mfcr
We can implement the same behavior in one instruction less.
2024-04-21 16:13:33 +02:00
JosJuice a17331d568 DolphinQt: Don't ask user about creating Skylanders folder
We don't have prompts like this for any other path handled by Dolphin.
If the folder doesn't exist, let's just create it.
2024-04-21 09:28:01 +02:00
JosJuice 3bc9008715 PPCAnalyst: Prevent discarding registers around breakpoints
Fixes https://bugs.dolphin-emu.org/issues/13526.
2024-04-21 08:50:04 +02:00
Admiral H. Curtiss d3cf35019c
Merge pull request #12726 from JosJuice/i18n-2024-04-20
i18n: Add comments and improve source strings
2024-04-20 23:34:32 +02:00
Admiral H. Curtiss 8236e4eaf9
Merge pull request #12636 from KjubDusJub/dolphin-tool-extractcommand
DolphinTool: Add an image extract command
2024-04-20 23:29:32 +02:00
Tilka 020e7b3e2d
Merge pull request #11144 from JosJuice/jit64-arith-inline-avx
Jit64: Inline avx_op into fp_arith
2024-04-20 22:03:47 +01:00
JosJuice 83b280d903 i18n: Add comments and improve source strings 2024-04-20 23:02:46 +02:00
Tilka f1e40f73bd
Merge pull request #12705 from JosJuice/get-span-for-address
Memmap: Replace GetPointer with GetSpanForAddress
2024-04-20 21:16:54 +01:00
Tilka 6443084e8c
Merge pull request #12724 from Tilka/readstate
TAPServerConnection: drop unused enum class ReadState
2024-04-20 21:12:54 +01:00
JosJuice c204b33314 VideoCommon/BPStructs: Add a missing bounds check
Happened to find this when working on the previous commit.
2024-04-20 18:31:08 +02:00
JosJuice 3cfa233b63 VideoCommon: Use GetSpanForAddress safely in texture decoding
Now only VertexLoader remains... But that one might be tricky.
2024-04-20 18:31:08 +02:00
JosJuice 5c9bb80638 Memmap: Replace GetPointer with GetSpanForAddress
To ensure memory safety, callers of GetPointer have to perform a bounds
check. But how is this bounds check supposed to be performed?
GetPointerForRange contained one implementation of a bounds check, but
it was cumbersome, and it also isn't obvious why it's correct.

To make doing the right thing easier, this commit changes GetPointer to
return a span that tells the caller how many bytes it's allowed to
access.
2024-04-20 18:31:08 +02:00
JosJuice 13e9d5c889 Jit64: Improve register handling in fp_arith
This lets us avoid the "ugly" case.
2024-04-20 17:50:54 +02:00
JosJuice 2bb59ff0dc Jit64: Inline avx_op into fp_arith
This will let us manage registers better in the next commit.
2024-04-20 17:50:54 +02:00
JosJuice 2c2e06bf39 Jit64: Add extra cases for reversible avx_op
Optimization.
2024-04-20 17:50:54 +02:00
JosJuice bb3306701b Jit64: Flatten avx_op
Reduces indentation and places the "ugly" case last. No behavior change.
2024-04-20 17:50:54 +02:00
JosJuice 4ac52cf053 JitArm64: Minor mtfsfix optimization
BFI takes two cycles on many CPUs, whereas AND (immediate) only takes
one.
2024-04-20 16:55:29 +02:00
Tilka 20665ebce7
Merge pull request #12710 from jordan-woyak/mouse-pointing-disable-relative
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-20 14:14:03 +01:00
Tilka 017f72f43e
Merge pull request #12672 from JosJuice/jit64-extract-with-byte-offset
Jit64: Clean up ExtractWithByteOffset
2024-04-20 12:41:29 +01:00
Tilka b98176075e
Merge pull request #12719 from stblr/device-change-again
HIDv4: Fix racy device change behavior
2024-04-20 12:26:40 +01:00
Tillmann Karras 8ed41e7264 TAPServerConnection: drop unused enum class ReadState
This also fixes a -Wshadow warning because there is a function-local
equivalent in ReadThreadHandler().
2024-04-20 12:04:28 +01:00
JosJuice 758097f09c
Merge pull request #12717 from mitaclaw/downcountAmount
Change JitState::downcountAmount to a u32
2024-04-20 10:39:33 +02:00
Admiral H. Curtiss 0e7346ac10
Merge pull request #12718 from nicovank/master
Apply Clang-Tidy's modernize-use-starts-ends-with
2024-04-20 05:21:38 +02:00
Admiral H. Curtiss 2252635070
Merge pull request #12702 from Dentomologist/gamelist_show_disc1_for_two_disc_games
GameList: Show (Disc 1) for first disc of two-disc games
2024-04-20 05:03:38 +02:00
Pablo Stebler 93b29cb8b2
HIDv4: Fix racy device change behavior
This prevents the device changes happening between 2 GETDEVICECHANGE
calls from being missed by the application.

Same as 7e7b0971ab.
2024-04-19 21:56:12 +02:00
Nicolas van Kempen 932645f245 Apply modernize-use-starts-ends-with 2024-04-19 14:55:29 -04:00
mitaclaw 65ff0146b9 Change JitState::downcountAmount to u32 2024-04-19 04:08:34 -07:00
Jordan Woyak df7dd5d36a Config: Expose GFX_OVERLAY_PROJ_STATS setting in UI. 2024-04-18 14:45:28 -05:00
Jordan Woyak 1e27183dff VideoCommon: Show the average projection to viewport ratio in statistics
window.
2024-04-18 14:45:28 -05:00
Jonas Kalsvik 859ac40ca2
DolphinTool: Add an image extract command 2024-04-18 21:11:19 +02:00
Admiral H. Curtiss 1805f6e381
Merge pull request #12660 from jordan-woyak/hide-makepkg
Hide branch name from title bar when there are no commits ahead of master.
2024-04-18 17:21:24 +02:00
Admiral H. Curtiss 8268ae1cf7
Merge pull request #12698 from iwubcode/xfb_copy_hash_in_present
VideoCommon: add xfbs hashes to present info if available
2024-04-18 17:11:49 +02:00
Sepalani c0fd59adfd BBA/HLE: Handle connection error 2024-04-17 20:18:20 +04:00
Sepalani 73aa8c50a2 BBA/HLE: Sleep when no data is received 2024-04-17 20:18:20 +04:00
Sepalani 05ed1a2fae BBA/HLE: Poll as much data as possible 2024-04-17 20:18:20 +04:00
Sepalani c71134c4ab BBA/HLE: Check queue overrun 2024-04-17 20:18:20 +04:00
Dentomologist 9c5605a59c AudioCommon: When ALSA is absent on Linux, default to Cubeb backend
Default to Cubeb instead of the NULL backend on Linux when ALSA isn't
valid.
2024-04-16 14:06:28 -07:00
Admiral H. Curtiss 83b5124d40
Merge pull request #12559 from sepalani/bba-refactor
BBA/HLE: Code refactoring
2024-04-16 22:43:04 +02:00
Admiral H. Curtiss e757d5ea9c
Merge pull request #12708 from brad0/openbsd_sound_backend
Set default sound backend on OpenBSD to cubeb
2024-04-16 22:41:28 +02:00
Jordan Woyak 47b06d274e InputCommon: Fix unnecessary "Modifier/Range" ini file entries. 2024-04-15 18:32:31 -05:00
Jordan Woyak 31dc3477ad DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed. 2024-04-15 14:52:26 -05:00
OatmealDome dbc7e03577
Merge pull request #12709 from mitaclaw/rcheevos-posix
RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX
2024-04-15 01:21:43 -04:00
mitaclaw 48b38f6e9b RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX 2024-04-14 21:47:41 -07:00
OatmealDome ab53f6934c
Merge pull request #12704 from mitaclaw/symbol-description-view
PPCSymbolDB: GetDescription by std::string_view
2024-04-14 22:14:18 -04:00
Brad Smith ba2ccf3889 Set default sound backend on OpenBSD to cubeb
Set the default sound backend to cubeb instead of the default
being none.
2024-04-14 18:47:20 -04:00
Dentomologist 37b89d5b71 GameList: Show (Disc 1) for first disc of two-disc games
Append disc label to the first disc of two-disc games too, rather than
only labelling the second disc.
2024-04-14 13:55:18 -07:00
Jordan Woyak 637ae12ff4
Merge pull request #12703 from nlebeck/settingshandler-nomove-2
Pass `SettingsHandler` buffers by const ref instead of rvalue ref (since the contents are copied either way)
2024-04-13 17:10:11 -05:00
JosJuice 5456d990d1 Android/ControllerInterface: Run the init code
This was broken by a9a9fdd9e9. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
2024-04-13 22:39:10 +02:00
Tilka e62d8ecfa8
Merge pull request #12632 from jordan-woyak/input-backend-impls
Implement missing InputBackend classes.
2024-04-13 11:56:27 +01:00
mitaclaw 672be6a8cf PPCSymbolDB: GetDescription by std::string_view
Should save a lot of deep copies.
2024-04-13 00:19:01 -07:00
Admiral H. Curtiss 1bfeeb8a63
Merge pull request #12693 from Tilka/zelda3
DSPHLE/Zelda: simplify AFC decoding
2024-04-13 03:57:13 +02:00
Niel Lebeck d2b96736e0 Pass SettingsHandler buffers by const ref instead of rvalue ref 2024-04-12 18:50:21 -07:00
Admiral H. Curtiss b3939052b4
Merge pull request #12436 from Filoppi/frame-dump-raw-internal-resolution
Frame dump at raw internal resolution
2024-04-13 03:39:37 +02:00
Admiral H. Curtiss 2f13be5a2d
VideoConfig: Adjust FrameDumpResolutionType enum class to style guidelines 2024-04-13 03:21:39 +02:00
Admiral H. Curtiss 107379bf74
Merge pull request #12569 from GregoireLD/dolphin-GBAProfilePathFix
Fix path-loading of GBA map configurations
2024-04-13 02:46:07 +02:00
Admiral H. Curtiss d58c998d6d
Merge pull request #12696 from mitaclaw/verify-widget-core-state-slot
VerifyWidget: Listen for Core::State OnEmulationStateChanged
2024-04-13 01:39:32 +02:00
Admiral H. Curtiss 0c1a76398b
Merge pull request #12691 from mitaclaw/jit-profiling-restoration
JitCache: Software Profiling Restoration
2024-04-13 01:35:25 +02:00
Jordan Woyak 9321318cb6 DolphinQt: Ensure controller settings show the game-controller indicator while expression editing. 2024-04-12 15:54:18 -05:00
Jordan Woyak e9fe0d3d5b NumericSetting: Stop values from binding to numbered input names. 2024-04-12 15:54:18 -05:00
Jordan Woyak 5039072ae9 ExpressionParser: Support unary plus operator. 2024-04-12 15:52:35 -05:00
Tilka 2011c7a448
Merge pull request #12697 from JosJuice/no-getpointer-part-4
VideoCommon: Remove calls to GetPointer
2024-04-12 20:01:09 +01:00
Tilka 771858b182
Merge pull request #12701 from Tilka/usbwait
Qt: trigger first USB device scan without a timer
2024-04-12 14:25:45 +01:00
Tilka 1fa5c3485c
Merge pull request #12699 from mitaclaw/cached-interpreter-perfmon-optimization
CachedInterpreter: Skip Updating Instruction PERFMON When There Are None
2024-04-11 16:19:42 +01:00
Tillmann Karras 99a8849125 Qt: trigger first USB device scan without a timer
Currently the dialog makes you wait one second before it shows anything.
Instead, trigger the first scan manually.
2024-04-11 16:48:10 +02:00
mitaclaw bc7b11517f MenuBar: Optimize SearchInstruction 2024-04-10 17:00:45 -07:00
mitaclaw 3073e8fd40 CachedInterpreter: Skip Updating Instruction PERFMON When There Are None 2024-04-10 04:09:37 -07:00
iwubcode abf380b705 VideoCommon: add xfb hash values (if available) to present information 2024-04-09 18:59:33 -05:00
iwubcode e5b7b2e9ee VideoCommon: add xfbs presented to video events 2024-04-09 18:57:32 -05:00
mitaclaw 6dad5cee65 DolphinQt: Access Software JIT Profiling 2024-04-09 13:43:32 -07:00
mitaclaw 30c63fa4a6 Common: Remove Unused PerformanceCounter Code 2024-04-09 13:43:32 -07:00
mitaclaw ee8bcf2ccc JitCache: Software Profiling Restoration
Rekindle software JIT profiling with a std::chrono conversion and a config connection.
2024-04-09 13:43:31 -07:00
mitaclaw fe8f836668 VerifyWidget: Listen for Core::State OnEmulationStateChanged 2024-04-09 12:13:02 -07:00
JosJuice 54773bc5d2 VideoCommon: Remove calls to GetPointer
This fourth part of my series of patches to get rid of unsafe uses of
GetPointer takes care of the "easy" cases in VideoCommon. Three uses of
GetPointer now remain in Dolphin: VertexLoaderManager, TextureInfo, and
the software renderer's TextureSampler.
2024-04-09 21:08:57 +02:00
Admiral H. Curtiss 69aca2fbfc
Merge pull request #11141 from JosJuice/jit64-soft-fma-nans-preserve
Jit64: Preserve inputs when software_fma && m_accurate_nans
2024-04-09 06:04:21 +02:00
Admiral H. Curtiss 35836225c5
Merge pull request #12646 from mitaclaw/ppc-cache-global-system
PPCCache: Avoid Global System Accessor
2024-04-09 05:57:57 +02:00
Admiral H. Curtiss e77def0478
Merge pull request #12690 from JosJuice/no-getpointer-part-3
IOS::HLE::BluetoothEmuDevice: Remove calls to GetPointer
2024-04-09 05:53:56 +02:00
mitaclaw cf74c0d683 PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
mitaclaw eb92d6f0a8 Core::GetState: Avoid Global System Accessor 2024-04-08 16:23:23 -07:00
Filoppi 66592f79f2 Video: remove enforced resolution least common multiple of 4 when dumping screenshots and not videos (only videos encoders have this limit).
NOTE: this will likely trigger FIFOCI differences.
2024-04-08 22:54:45 +03:00
Filoppi 72db62e178 Video: split frame dumping settings into 3 resolution dumping modes
also polish aspect ratio related code for clarity
2024-04-08 22:54:45 +03:00
Tillmann Karras 5db9924d13 DSPHLE/Zelda: set COMBINED_CMD_0D flag appropriately
All relevant games other than Pikmin 1 Wii seem to always set the two
dwords to zero, so previously they were ignored during command dispatch
and now we still ignore them but in the right place.
2024-04-07 18:53:01 +01:00
Tillmann Karras 8533b5649e DSPHLE/Zelda: simplify AFC decoding 2024-04-07 10:55:21 +01:00
Tillmann Karras d1db347c8a evdev: close file descriptors in a separate thread
For some reason Linux is surprisingly slow at closing file descriptors
of event devices. This commit improves GUI startup times on my computer
by about 1.5 seconds.
2024-04-06 20:58:17 +01:00
JosJuice 5e58a46361 Jit64: Preserve inputs when software_fma && m_accurate_nans
When writing the software FMA code, I didn't realize that we can't
overwrite d if d is the same register as one of the inputs and
HandleNaNs is going to be called. This fixes that.
2024-04-06 21:38:58 +02:00
JosJuice f40dc7b5f9 IOS::HLE::BluetoothEmuDevice: Remove calls to GetPointer
Part 3 of stopping using GetPointer. This gets rid of the last
GetPointer call in IOS, which I skipped in part 1.
2024-04-06 21:04:54 +02:00
Sepalani 07a2429367 BBA/HLE: Fix network_ref coding style 2024-04-06 21:43:48 +04:00
Sepalani f3194b777b BBA/HLE: Move polling data logic into a method 2024-04-06 21:43:48 +04:00
Sepalani fbebbcc0fd BBA/HLE: Move functions to anonymous namespace 2024-04-06 21:43:48 +04:00
Sepalani 6e2a081cb9 BBA/HLE: Loop over network_ref once 2024-04-06 21:43:48 +04:00
Sepalani 9e0bf29329 BBA/HLE: Move GetSlot methods 2024-04-06 21:43:48 +04:00
Sepalani 5388f35cc4 BBA/HLE: Add NetworkRef::Clear method 2024-04-06 21:43:48 +04:00
Sepalani e915f990bb BBA/HLE: Make network_ref into a class 2024-04-06 21:43:48 +04:00
Tillmann Karras 9c705f1011 Movie: simplify silly loop 2024-04-06 18:28:43 +01:00
Admiral H. Curtiss d3073353a7
Merge pull request #12555 from sepalani/bba-connecting
BBA/HLE: Don't assume connect is successful
2024-04-05 21:29:10 +02:00
Admiral H. Curtiss ad331205d1
Merge pull request #12684 from Pokechu22/invalid-vertex-component
Fix out of bounds accesses for invalid vertex component formats
2024-04-04 22:10:18 +02:00
Pokechu22 a3951dc2d7 Fix out of bounds accesses for invalid vertex component formats
On all platforms, this would result in out of bounds accesses when getting the component sizes (which uses stuff from VertexLoader_Position.h/VertexLoader_TextCoord.h/VertexLoader_Normal.h). On platforms other than x64 and ARM64, this would also be out of bounds accesses when getting function pointers for the non-JIT vertex loader (in VertexLoader_Position.cpp etc.). Usually both of these would get data from other entries in the same multi-dimensional array, but the last few entries would be truly out of bounds. This does mean that an out of bounds function pointer can be called on platforms that don't have a JIT vertex loader, but it is limited to invalid component formats with values 5/6/7 due to the size of the bitfield the formats come from, so it seems unlikely that this could be exploited in practice.

This issue affects a few games; Def Jam: Fight for New York (https://bugs.dolphin-emu.org/issues/12719) and Fifa Street are known to be affected.

I have not done any hardware testing for this PR specifically, though I *think* I previously determined that at least a value of 5 behaves the same as float (4). That's what I implemented in any case. I did previously determine that both Def Jam: Fight for New York and Fifa Street use an invalid normal format, but don't actually have lighting enabled when that normal vector is used, so it doesn't change rendering in practice.

The color component format also has two invalid values, but VertexLoader_Color.h/.cpp do check for those invalid ones and return a default value instead of doing an out of bounds access.
2024-04-04 12:50:34 -07:00
Admiral H. Curtiss 4312840a4b
Merge pull request #12678 from JosJuice/no-getpointer-part-2
HW: Remove calls to GetPointer
2024-04-04 21:43:57 +02:00
Admiral H. Curtiss db8b2942aa
Merge pull request #12683 from LillyJadeKatrin/retroachievements-submodule-update
Update rcheevos submodule to newest master.
2024-04-04 21:14:44 +02:00
Admiral H. Curtiss 0aa92f7a56
Merge pull request #12685 from JosJuice/get-pointer-for-range-zero-size
Memmap: Don't show panic alert for 0 length range
2024-04-04 21:08:53 +02:00
JosJuice fad57b648f Memmap: Don't show panic alert for 0 length range
IOS::HLE::IOCtlVRequest::Dump sometimes tries to call GetPointerForRange
with an address of 0 and a size of 0. Address 0 is valid, but we were
mistakenly also trying to check that address 3FFFFFFF is valid, which it
isn't.

Fixes https://bugs.dolphin-emu.org/issues/13514.
2024-04-04 18:56:17 +02:00
LillyJadeKatrin 225a6da074 Update rcheevos submodule to newest master. 2024-04-03 15:03:36 -04:00
Filoppi 1f34adf216 Video: move all padding added for frame dumping to a single function,
which also avoids the output window from being resized randomly to be a multiple of 4
2024-04-03 13:32:01 +03:00
Filoppi d6230bbad8 Video: Change the frame dumper to actually use the raw emulation output resolution, avoiding any scaling if possible.
This should make comparisons much more reliable as pixels wouldn't be smushed together or stretched.
2024-04-03 13:32:01 +03:00
OatmealDome 4421cc471d
Merge pull request #12631 from jordan-woyak/remove-osx-input-leftovers
InputCommon: Remove some IOKit leftovers.
2024-04-01 17:05:13 -04:00
Dentomologist ac4fd2297f CheatsManager: Allow making the window smaller
Move CheatManager's child widgets into scroll areas to allow making the
window smaller than the default.

In CheatSearchWidget, enable word wrapping for the label describing the
address space and search type to help it fit better inside a narrower
window.
2024-03-31 13:17:56 -07:00
JosJuice ad43b03253 HW: Remove calls to GetPointer
Typically when someone uses GetPointer, it's because they want to read
from a range of memory. GetPointer is unsafe to use for this. While it
does check that the passed-in address is valid, it doesn't know the size
of the range that will be accessed, so it can't check that the end
address is valid. The safer alternative GetPointerForRange should be
used instead.

Note that there is still the problem of many callers not checking for
nullptr.

This is part 2 of a series of changes removing the use of GetPointer
throughout the code base. After this, VideoCommon is the one major part
of Dolphin that remains.
2024-03-31 21:58:05 +02:00
Admiral H. Curtiss a5e410df11
Merge pull request #12671 from JosJuice/no-getpointer-part-1
IOS: Remove calls to GetPointer
2024-03-31 21:16:19 +02:00
JosJuice 9873bcfb2b IOS: Remove calls to GetPointer
Typically when someone uses GetPointer, it's because they want to read
from a range of memory. GetPointer is unsafe to use for this. While it
does check that the passed-in address is valid, it doesn't know the size
of the range that will be accessed, so it can't check that the end
address is valid. The safer alternative GetPointerForRange should be
used instead.

Note that there is still the problem of many callers not checking for
nullptr.

This is the first part of a series of changes that will remove the usage
of GetPointer in different parts of the code base. This commit gets rid
of every GetPointer call from our IOS code except for a particularly
tricky one in BluetoothEmuDevice.
2024-03-31 10:22:02 +02:00
Admiral H. Curtiss dcae03a112
Merge pull request #12665 from Pokechu22/dsp-hle-asnd-2024
DSPHLE: Implement 2024 libasnd uCodes
2024-03-31 06:42:59 +02:00
Admiral H. Curtiss 1331332d38
Merge pull request #12656 from jordan-woyak/texture-dump-no-dups
VideoCommon: Scan texture dumping directory + subdirectories to not re-dump existing files.
2024-03-31 06:40:04 +02:00
Admiral H. Curtiss f3bf5d175e
Merge pull request #12609 from JosJuice/aspect-ratio-description
DolphinQt: Tweak the aspect ratio setting description
2024-03-31 06:39:36 +02:00
Admiral H. Curtiss a2074a8583
Merge pull request #12645 from mitaclaw/ppc-symbols-signal
DolphinQt: A Ubiquitous Signal For When Symbols Change
2024-03-31 06:36:09 +02:00
Admiral H. Curtiss 6e5f8d6692
Merge pull request #12640 from jordan-woyak/sdl-cleanup
SDL: Cleanups
2024-03-31 06:33:50 +02:00
JosJuice fb75ae410f Jit64: Clean up ExtractWithByteOffset
RCOpArg::ExtractWithByteOffset is only used in one place: a special case
of rlwinmx. ExtractWithByteOffset first stores the value of the
specified register into m_ppc_state (unless it's already there), and
then returns an offset into m_ppc_state. Our use of this function has
two undesirable properties (except in the trivial case `offset == 0`):

1. ExtractWithByteOffset calls StoreFromRegister without going through
   any of the usual functions. This violated an assumption I made when
   working on my constant propagation PR and led to a hard-to-find bug.
2. If the specified register is in a host register and is dirty,
   ExtractWithByteOffset will store its value to m_ppc_state even when
   it's unnecessary. In particular, this always happens when rlwinmx
   uses the same register as input and output, since rlwinmx always
   allocates a host register for the output and marks it as dirty.

Since ExtractWithByteOffset is only used in one place, I figure we might
as well inline it there. This commit does that, and also alters
rlwinmx's logic so the special case code is only triggered when the
input is already in m_ppc_state.

Input in `m_ppc_state`, before (11 bytes):

mov         esi, dword ptr [rbp-104]
mov         dword ptr [rbp-104], esi
movzx       esi, byte ptr [rbp-101]

Input in `m_ppc_state`, after (5 bytes):

movzx       esi, byte ptr [rbp-101]

Input in host register, before (8 bytes):

mov         dword ptr [rbp-104], esi
movzx       esi, byte ptr [rbp-101]

Input in host register, after (3 bytes):

shr         edi, 0x18
2024-03-30 22:47:44 +01:00
Jordan Woyak 86102e7ce9
Merge pull request #12670 from mitaclaw/branchwatch-fileutil-copy-paste
FileUtil: Fix BranchWatch User Path
2024-03-29 13:46:20 -05:00
mitaclaw 88dadf81d4 FileUtil: Fix BranchWatch User Path
I mistakenly put `D_DUMP_IDX` here instead of `D_DUMPDEBUG_IDX`.
2024-03-29 11:05:45 -07:00
JosJuice f30d3c9092
Merge pull request #12662 from JosJuice/jitarm64-imm-rc0-sxtw
JitArm64: Skip SXTW in ComputeRC0(u64)
2024-03-29 15:36:33 +01:00
JosJuice 5f6a054ffc
Merge pull request #12661 from Sintendo/arm64divwux
JitArm64: Optimize divwux
2024-03-29 15:36:18 +01:00
mitaclaw 6e6b298030 Core::RunOnCPUThread: Avoid Global System Accessor 2024-03-28 10:10:03 -07:00
JMC47 aea1f64873
Merge pull request #12659 from mitaclaw/qt-debug-font
DolphinQt Settings: Signal Debug Font By Const Reference
2024-03-28 13:04:39 -04:00
JMC47 aa9601a563
Merge pull request #12658 from mitaclaw/core-global-system-2b
Core: Remove RunAsCPUThread
2024-03-28 13:04:08 -04:00
mitaclaw b52a08d533 DolphinQt: A Ubiquitous Signal For When Symbols Change
There were three distinct mechanisms for signaling symbol changes in DolphinQt: `Host::NotifyMapLoaded`, `MenuBar::NotifySymbolsUpdated`, and `CodeViewWidget::SymbolsChanged`. The behavior of these signals has been consolidated into the new `Host::PPCSymbolsUpdated` signal, which can be emitted from anywhere in DolphinQt to properly update symbols everywhere in DolphinQt.
2024-03-28 09:57:22 -07:00
JosJuice 06329ecfc7 Core: Fix IPL device m_cursor overflow
Not sure if the behavior I'm implementing here is what real hardware
does, but since this is a buffer overflow, I'd like to get it fixed
quickly. Hardware verification can happen later.

https://bugs.dolphin-emu.org/issues/13506
2024-03-25 18:31:36 +01:00
JosJuice d57c68a625 Core: Get rid of IPL device macros
Having to look up macros that are defined elsewhere makes the code
harder to reason about. The macros don't remove enough repetition to
justify their existence in my opinion.
2024-03-25 17:55:13 +01:00
Pokechu22 cd5f6ddd9b DSPHLE: Implement 2024 libasnd uCodes 2024-03-24 11:59:32 -07:00
Pokechu22 c85f5f8023 DSPHLE: Redefine asnd SwapLeftRight to apply to old versions 2024-03-24 11:58:04 -07:00
JosJuice 28da3160c3 DolphinQt: Tweak the aspect ratio setting description
With this, I intend to make it clearer that Auto, Force 4:3, Force 16:9
and Custom are really the same thing, just with the aspect ratio of the
simulated TV being selected in a different way. I also extended the
introduction in a way I feel will clarify things but which you are
welcome to bikeshed :)

I was thinking of this during the review of 41b19e262f, but wanted to
put it in a separate PR as to avoid blocking it on bikeshedding.

I'm a bit unsure what to do about the word "analog" in "analog TV". I
felt that repeating it for each of these options would be too
repetitive. I suppose there's a reason why we used the word originally,
but digital TVs do give you basically the same aspect ratio for GC/Wii
games as analog TVs. (Of course, whether it's 4:3-like or 16:9-like
depends on what aspect ratio you set in the TV's settings, but that's
the case for widescreen CRTs too.)
2024-03-24 15:18:58 +01:00
Jordan Woyak 38117ef066 DolphinQt: Update AboutDialog to include number of commits ahead of master. 2024-03-23 16:48:52 -05:00
Jordan Woyak 02f57a4778 Replace SCM_IS_MASTER with SCM_COMMITS_AHEAD_MASTER 2024-03-23 16:48:52 -05:00
Bram Speeckaert 2580837c60 JitArm64: Optimize divwux
When the divisor is a constant value, we can emit more efficient code.
For powers of two, we can use bit shifts. For other values, we can
instead use a multiplication by magic constant method.

- Example 1 - Division by 16 (power of two)
Before:
mov    w24, #0x10                ; =16
udiv   w27, w25, w24

After:
lsr    w27, w25, #4

- Example 2 - Division by 10 (fast)
Before:
mov    w25, #0xa                 ; =10
udiv   w27, w26, w25

After:
mov    w27, #0xcccd              ; =52429
movk   w27, #0xcccc, lsl #16
umull  x27, w26, w27
lsr    x27, x27, #35

- Example 3 - Division by 127 (slow)
Before:
mov    w26, #0x7f                ; =127
udiv   w27, w27, w26

After:
mov    w26, #0x408               ; =1032
movk   w26, #0x8102, lsl #16
umaddl x27, w27, w26, x26
lsr    x27, x27, #38
2024-03-23 20:13:15 +01:00
Bram Speeckaert 749ee2ff5e Jit64: Refactor divwux
Now that we've moved the logic to DivUtils, refactor the Jit64 code to
use it.
2024-03-23 20:13:15 +01:00
Bram Speeckaert 825a10616c DivUtils: Add unsigned division magic function
Takes the logic from Jit64 and moves it into DivUtils, so it can be
reused by other backends as well.
2024-03-23 20:13:15 +01:00
JosJuice 9f0a7c9875 JitArm64: Skip SXTW in ComputeRC0(u64)
MOVI2R can set the upper bits to ones for free by using MOVN instead of
MOVZ.
2024-03-23 14:30:00 +01:00
mitaclaw 73f9904f2a Core: Remove RunAsCPUThread
It's a fine function, but CPUThreadGuard is more vogue. Also, its potential for being confused with RunOnCPUThread will not be missed.
2024-03-23 03:33:26 -07:00
mitaclaw ae5da02cde DolphinQt Settings: Signal Debug Font By Const Reference 2024-03-22 07:52:52 -07:00
Admiral H. Curtiss 3948ac9513
Merge pull request #12606 from mitaclaw/state-global-system
State: Avoid Global System Accessor
2024-03-22 04:27:12 +01:00
Admiral H. Curtiss f814dc58b5
Merge pull request #12620 from mitaclaw/jit-interface-cpu-thread-guard
JitInterface::ClearCache: Modernize With CPUThreadGuard
2024-03-22 04:17:33 +01:00
Admiral H. Curtiss f8fdaf9b94
Merge pull request #12648 from mitaclaw/core-global-system
Core: Avoid (Some) Global System Accessor
2024-03-22 04:13:01 +01:00
Admiral H. Curtiss 4f3b4471f2
Merge pull request #12654 from jordan-woyak/gcadapter-timeout
GCAdapter: Adjust libusb transfer timeout to 100ms.
2024-03-22 02:55:30 +01:00
Admiral H. Curtiss b510ac89a3
Merge pull request #12355 from fuzziqersoftware/tapserver-modem-adapter
Implement tapserver-based modem adapter
2024-03-22 02:47:06 +01:00
Admiral H. Curtiss f535b61d5d
Merge pull request #12652 from iwubcode/json_util_update
Common: add even more json utility functions
2024-03-22 02:45:58 +01:00
Jordan Woyak 550e008774 VideoCommon: Scan texture dumping directory + subdirectories to not re-dump existing files. 2024-03-21 20:27:34 -05:00
Admiral H. Curtiss 2d5286d2e2
Merge pull request #12642 from jordan-woyak/state-write-osd-errors
Core/State: Display messages on state write failures.
2024-03-21 03:55:05 +01:00
JMC47 03f2b99ffe
Merge pull request #12603 from Sam-Belliveau/oklab_resampling
Add HDR to Metal + Perceptual HDR
2024-03-20 22:45:10 -04:00
Admiral H. Curtiss b19cf1f962
Merge pull request #12650 from jordan-woyak/balloon-tip-multimon
DolphinQt: Fix BalloonTip positioning on secondary monitors.
2024-03-21 03:33:43 +01:00
Admiral H. Curtiss 7f1e7314de
Merge pull request #12649 from mitaclaw/kill-is-running-in-current-thread
Core: Remove Unused IsRunningInCurrentThread Function
2024-03-21 03:32:48 +01:00
Jordan Woyak f922129255 Core/State: Display messages on state write failures. 2024-03-20 20:38:04 -05:00
Jordan Woyak 76a74daac2
Merge pull request #12641 from jordan-woyak/d3d-before-ogl
VideoCommon: Prefer D3D11/12 over OpenGL on Windows.
2024-03-20 18:21:48 -05:00
Jordan Woyak 719d76ab2e GCAdapter: Adjust libusb transfer timeout to 100ms. 2024-03-20 18:02:06 -05:00
iwubcode 146504d635 Common: add json utility functions 'ReadStringFromJson' and 'ReadBoolFromJson' to match 'ReadNumericFromJson' functionality for other data types, similarly support other data types for 'ToJsonArray' 2024-03-20 17:34:25 -05:00
iwubcode 69694494ce Common: update 'ReadNumericOrDefault' to 'ReadNumericFromJson' and have it return an optional, this provides the caller with more flexibility 2024-03-20 17:34:25 -05:00
Jordan Woyak 647eba36f3 DolphinQt: Fix BalloonTip positioning on secondary monitors. 2024-03-20 03:13:11 -05:00
mitaclaw 11b628f250 Core: Remove Unused IsRunningInCurrentThread Function 2024-03-18 07:18:41 -07:00
mitaclaw f09b71582e Core: Avoid (Some) Global System Accessor 2024-03-18 01:35:42 -07:00
Martin Michelsen f7a0147176 prevent backpressure when m_read_enabled is not set 2024-03-17 18:37:55 -07:00
Martin Michelsen 3e9ac1aaf3 fix tapserver SIGPIPE handling on Linux 2024-03-17 18:37:55 -07:00
Martin Michelsen 5d8a01cba7 respond to further review feedback 2024-03-17 18:37:55 -07:00
Martin Michelsen 7775ea325f close modem socket after joining read thread 2024-03-17 18:37:55 -07:00
Martin Michelsen 9d0d2f0a40 handle ATH0 command 2024-03-17 18:37:55 -07:00
Martin Michelsen 12a7e17a41 fix warnings in windows build 2024-03-17 18:37:55 -07:00
Martin Michelsen 9cf8131b23 respond to review feedback on tapserver implementation 2024-03-17 18:37:55 -07:00
Martin Michelsen dcb7a72c14 add modem files to windows build 2024-03-17 18:37:55 -07:00
Martin Michelsen 02deaa6748 Implement GC modem adapter
This implements the GameCube modem adapter. This implementation is stable but not perfect; it drops frames if the receive FIFO length is exceeded. This is probably due to the unimplemented interrupt mentioned in the comments. If the tapserver end of the connection is aware of this limitation, it's easily circumvented by lowering the MTU of the link, but ideally this wouldn't be necessary.

This has been tested with a couple of different versions of Phantasy Star Online, including Episodes 1 & 2 Trial Edition. The Trial Edition is the only version of the game that supports the Modem Adapter and not the Broadband Adapter, which is what made this commit necessary in the first place.
2024-03-17 18:37:55 -07:00
Martin Michelsen 083116a89c rewrite tapserver interface for better error handling 2024-03-17 18:37:55 -07:00
Martin Michelsen a36600ae50 add TAPServer.cpp to Windows build 2024-03-17 18:37:55 -07:00
Martin Michelsen 0c364cbb4c implement tapserver BBA on all platforms
This expands the tapserver BBA interface to be available on all platforms. tapserver itself is still macOS-only, but newserv (the PSO server) is not, and it can directly accept local and remote tapserver connections as well. This makes the tapserver interface potentially useful on all platforms.
2024-03-17 18:37:55 -07:00
Admiral H. Curtiss 85dee300b5
Merge pull request #12644 from jordan-woyak/ar-multi
DolphinQt: Allow Cheat Search to create multiple AR codes.
2024-03-17 16:26:38 +01:00
Admiral H. Curtiss c964d552c9
Merge pull request #12616 from mitaclaw/dvd-interface-cpu-thread-guard
DVDInterface: Modernize With CPUThreadGuard
2024-03-17 16:14:56 +01:00
Jordan Woyak c202b55bd4 DolphinQt: Allow Cheat Search to create multiple AR codes when selecting multiple lines. 2024-03-17 01:29:39 -05:00
Admiral H. Curtiss 1ee923fd3d
Merge pull request #12630 from mitaclaw/ppc-symbols-global
PPCSymbolDB: Move instance to PowerPCManager
2024-03-17 06:03:05 +01:00
Tillmann Karras d933e58d9a Cubeb: check correct log level 2024-03-17 01:33:42 +00:00
Jordan Woyak ac5c2d9bf2 VideoCommon: Prefer D3D11/12 over OpenGL on Windows. 2024-03-15 19:51:04 -05:00
Jordan Woyak 3a85725ffa SDL: Remove duplicate button/hat Inputs. Hide duplicate Axis Inputs. 2024-03-14 23:50:17 -05:00
Jordan Woyak ee43c9508c ControllerInterface: Add IsHidden function to Control interface. 2024-03-14 23:43:58 -05:00
Jordan Woyak 0538366326 SDL: Deduplicate Motor logic with templates. 2024-03-14 23:43:58 -05:00
Jordan Woyak 0fff8374d0 SDL: Move class definition out of header. 2024-03-14 23:43:58 -05:00
Admiral H. Curtiss 369502b49b
Merge pull request #12635 from jordan-woyak/ir-passthrough-indicator
DolphinQt: Add IRPassthrough indicator.
2024-03-15 03:07:19 +01:00
Admiral H. Curtiss 9cdd571745
Merge pull request #12633 from LillyJadeKatrin/retroachievements-toggle-spam
Added locks to achievement runtime calls
2024-03-15 02:58:02 +01:00
Admiral H. Curtiss 2620f73b8c
Merge pull request #12638 from Tilka/cubeb
Cubeb: change log level from NOTICE to INFO
2024-03-15 02:55:28 +01:00
LillyJadeKatrin 08ecefe0f7 Added locks to achievement runtime calls
Testing found that spamming toggles for Enable Leaderboards etc risked leaderboards being deleted while the runtime was in the process of recalculating them; this should clear up those conflicts.
2024-03-14 14:32:47 -04:00
mitaclaw c24fa93965 PPCSymbolDB: Move instance to PowerPCManager 2024-03-13 22:58:14 -07:00
Tillmann Karras 4d9038c7c3 Cubeb: change log level from NOTICE to INFO
Cubeb logs a message at CUBEB_LOG_NORMAL verbosity every time you start
or stop a stream which can get a bit annoying when using frame advance
at Dolphin's default verbosity.
2024-03-14 00:31:02 +00:00
Sepalani da86c2bcc6 BBA/HLE: Don't assume connect is successful 2024-03-12 12:25:42 +04:00
mitaclaw c377c1e21e CheatsManager/CheatSearchWidget: Avoid Global System Accessor
OnResetClicked and GenerateARCode appear to have been using the CPUThreadGuard in error.
2024-03-11 20:51:15 -07:00
Admiral H. Curtiss 551dcec0b1
Merge pull request #12602 from mitaclaw/qt-memory-global-system
Memory(View)Widget: Avoid Global System Accessor
2024-03-12 04:12:52 +01:00
Admiral H. Curtiss 6ccf35ad4d
Merge pull request #12600 from lioncash/dspreg
DSPJitRegCache: Take DynamicReg instances by reference in FlushRegs()
2024-03-12 04:02:09 +01:00
Jordan Woyak 62caa24d40 DolphinQt: Add IRPassthrough indicator. 2024-03-11 21:40:53 -05:00
Admiral H. Curtiss d35a88564f
Merge pull request #12608 from mitaclaw/bootmanager-global-system
BootManager: Avoid Global System Accessor
2024-03-12 03:39:48 +01:00
Admiral H. Curtiss 72bcdadc16
Merge pull request #12492 from AdmiralCurtiss/wiimote-ir-passthrough
Implement IR passthrough for emulated Wiimotes
2024-03-12 03:27:07 +01:00
Admiral H. Curtiss cda008bd10
Merge pull request #12533 from sepalani/bba-psh-ack
BBA/HLE: Add missing PSH flag
2024-03-12 03:09:11 +01:00
Jordan Woyak f86e9e9cbd
Merge pull request #12610 from mitaclaw/branch-watch-dialog-gcc
BranchWatchDialog: Fix GCC Warnings
2024-03-11 17:36:21 -05:00
Admiral H. Curtiss f6f435e624
WiimoteEmu: Set sensible defaults for IR Object expressions. 2024-03-11 22:51:57 +01:00
Admiral H. Curtiss 617fcc3cf8
WiimoteEmu: Add user-accessible controls that report the desired state of the IR camera objects. 2024-03-11 22:49:19 +01:00
Admiral H. Curtiss c3903fcc7e
InputCommon/WiimoteController: Add inputs that report the raw IR objects seen by the Wiimote. 2024-03-11 22:46:05 +01:00
Admiral H. Curtiss 9c68b156d1
Core/HW/WiimoteCommon: Add a method to DataReport to query the format of the stored IR data. 2024-03-11 22:27:16 +01:00
Admiral H. Curtiss eced34f3f3
Core/HW/WiimoteEmu: Allow storing and reporting up to 4 camera objects, like a real Wiimote. 2024-03-11 22:27:16 +01:00
Jordan Woyak 5c656a2b6f
Merge pull request #12623 from eltociear/patch-1
WiimoteReal: fix typo in WiimoteReal.cpp
2024-03-11 12:19:46 -05:00
Jordan Woyak a9a9fdd9e9 InputCommon: Add Android InputBackend class. 2024-03-11 03:25:31 -05:00
Jordan Woyak 8583b6751a InputCommon: Handle window change in Quartz. 2024-03-11 03:25:31 -05:00
Jordan Woyak 3665f7abac InputCommon: Implement xlib window change logic. 2024-03-11 03:25:31 -05:00
Jordan Woyak 341f99a3f1 InputCommon: Add Win32 InputBackend class. 2024-03-11 03:25:31 -05:00
Jordan Woyak 2ac59bf581 InputCommon: Add Pipes InputBackend class. 2024-03-11 03:05:52 -05:00
Jordan Woyak 8098be3dfa InputCommon: Add XInput2 InputBackend class. 2024-03-11 03:05:52 -05:00
Jordan Woyak 498584ac77 InputCommon: Add Quartz InputBackend class. 2024-03-11 03:05:52 -05:00
Jordan Woyak 9941c54911 InputCommon: Provide WindowSystemInfo getter for ControllerInterface. 2024-03-11 01:31:05 -05:00
Jordan Woyak b23dbad098 InputCommon: Remove some IOKit leftovers. 2024-03-11 01:11:13 -05:00
Sam Belliveau 153d0201a8 Add HDR to Metal 2024-03-10 03:25:33 -04:00
Admiral H. Curtiss b89a88afbc
Merge pull request #12615 from mitaclaw/ppc-symbol-db-member
PPCSymbolDB: Eliminate Redundant Member
2024-03-10 06:18:23 +01:00
Admiral H. Curtiss ef75a6ff23
Merge pull request #12622 from mitaclaw/branch-watch-dialog-errata
BranchWatchDialog: Fix Misc. Errata
2024-03-10 00:06:21 +01:00
LillyJadeKatrin 5418e89523 Adjusted achievement progress updates to duration short 2024-03-08 23:26:56 -05:00
mitaclaw fe61efcd7a DVDInterface: Modernize With CPUThreadGuard 2024-03-08 15:17:41 -08:00
MikeIsAStar 11dd5ba485 MMU: Remove erroneous continue statement
The updated behavior more closely emulates the functionality of physical hardware.
2024-03-08 16:36:38 -05:00
mitaclaw 0645b4d579 BranchWatchDialog: Fix Misc. Errata
Window icon was missing from QDialog lacking a parent.
Giving the QDialog a parent revealed I had failed to make it properly non-modal, necessitating further changes.
Settings save less often, now only upon destruction.
Construction of BranchWatchDialog is now deferred.
2024-03-07 15:59:03 -08:00
mitaclaw 0f36654d2b PPCSymbolDB: Eliminate Redundant Member
This can be accessed through the CPUThreadGuard.
2024-03-06 21:44:53 -08:00
Ikko Eltociear Ashimine 7b0d4f0578
WiimoteReal: fix typo in WiimoteReal.cpp
continous -> continuous
2024-03-07 01:27:39 +09:00
mitaclaw 4568446398 JitInterface::ClearCache: Modernize With CPUThreadGuard
It is recommended to view this diff with whitespace changes hidden.
2024-03-04 19:45:34 -08:00
LillyJadeKatrin 085c17aed4 Remove the update callback on all events
Not only was the extra call to the update callback in the AchievementEventHandler method unnecessary, it was getting called on events that don't even need to be tracked here, causing a lot of lag when it turned out one achievement was repeatedly spamming Achievement Reset Events as a shortcut.
2024-03-04 20:04:08 -05:00
OatmealDome aba9b110e8
Merge pull request #12612 from LillyJadeKatrin/retroachievements-logout-bug
Don't Publish Unofficial Achievements
2024-03-03 14:51:04 -05:00
JMC47 93c95ee1a3
Merge pull request #12592 from LillyJadeKatrin/retroachievements-enable-hardcore
Properly enable RetroAchievements hardcore mode
2024-03-03 13:20:23 -05:00
LillyJadeKatrin f556f646a2 Don't Publish Unofficial Achievements
Check an achievement's category and only request RetroAchievements to award if it is CORE and not UNOFFICIAL.
2024-03-03 12:58:20 -05:00
mitaclaw 8d5e39751e BranchWatchDialog: Fix GCC Warnings
GCC can't lambda right.
2024-03-02 07:53:23 -08:00
Admiral H. Curtiss 58616a6e4c
Merge pull request #12438 from Filoppi/custom_relative_aspect_ratio
Add Custom Relative and Raw (Squared Pixels) aspect ratios
2024-03-02 14:14:19 +01:00
Admiral H. Curtiss f2e04e0603
Merge pull request #12359 from mitaclaw/code-diff-dialog-refresh
BranchWatchDialog: A Total Replacement for CodeDiffDialog
2024-03-02 14:13:54 +01:00
Admiral H. Curtiss 8840f7f8bc
Merge pull request #12599 from lioncash/vertman
VertexManagerBase: Initialize m_ticks_elapsed on construction
2024-03-02 14:11:23 +01:00
mitaclaw 16c609dcd4 BootManager: Avoid Global System Accessor 2024-03-01 23:39:04 -08:00
Naim2000 f208b320a3 AesDevice: fix key & iv arrays 2024-03-01 15:00:28 -05:00
mitaclaw 0d4cb5ddc7 State: Avoid Global System Accessor 2024-03-01 10:52:50 -08:00
mitaclaw 26141eece8 Memory(View)Widget: Avoid Global System Accessor 2024-03-01 07:09:20 -08:00
Filoppi 41b19e262f Add custom relative and raw (squared pixels) aspect ratio modes 2024-02-29 21:11:19 +02:00
Lioncash e52109a356 DSPJitRegCache: Take DynamicReg instances by reference in FlushRegs()
A DynamicReg instance is 80 bytes in size, so this just gets rid of some
unnecessary copy churn.
2024-02-28 10:27:35 -05:00
Lioncash 7bf77a56f4 VertexManagerBase: Initialize m_ticks_elapsed on construction
Ensures that this always has a deterministic value on construction like
everything else in the class.
2024-02-28 10:21:08 -05:00
Mai 5a81916ee9
Merge pull request #12598 from mitaclaw/case-insensitive
CodeWidget: Simplify Case-Insensitive Contains
2024-02-28 08:48:10 -05:00
mitaclaw 8eeb93d51a CodeWidget: Simplify Case-Insensitive Contains 2024-02-27 12:03:38 -08:00
mitaclaw 8134c8a572 BranchWatchDialog: A Total Replacement for CodeDiffDialog
With a purpose-built Branch Watch feature built into the emulated system: BranchWatchDialog, replacing CodeDiffDialog, is now better than ever!
2024-02-27 11:40:58 -08:00
mitaclaw fd8f2c7822 JitArm64: Install BranchWatch 2024-02-26 19:38:27 -08:00
mitaclaw 7cccedca1e Jit64: Install BranchWatch 2024-02-26 19:38:27 -08:00
mitaclaw 2aa250a68a Interpreter: Install BranchWatch 2024-02-26 19:38:27 -08:00
mitaclaw 67f60bec7e PowerPC: Implement BranchWatch
This new component can track code paths by watching branch hits.
2024-02-26 19:38:27 -08:00
LillyJadeKatrin 56b82e764c Clear active challenges when game closes
Failing to do this was causing challenge icons to carry over into the next game if a game was closed while the icons were active, even if the next game to run was a completely different game entirely with completely different badges.
2024-02-26 22:21:05 -05:00
Admiral H. Curtiss 5090a028e6
Merge pull request #12435 from Filoppi/fix-aspect-ratio-stuck
Fix aspect ratio heuristics getting stuck to a state
2024-02-20 21:36:43 +01:00
Filoppi 48fbbdba7c Video: update widescreen heuristic code to never get stuck to specific old values when changing settings 2024-02-20 22:26:19 +02:00
LillyJadeKatrin d66b96b1c0 Properly enable RetroAchievements hardcore mode
RetroAchievements plans to use the user_agent in unlock requests to determine which software version was used to play the game, and can filter older software versions out. As such, I have been given the go-ahead to remove the hardcoded line that forces hardcore to always be false.
2024-02-20 12:59:01 -05:00
Filoppi 3f102ea8c2 Video: Make the game resolution (within the window) snap to the XFB size if they are within a ~1 pixel treshold on one axis only.
This takes care of making the image clearer in some edge cases where the game was already running at near perfect
 4:3 with no stretching, and the VI aspect ratio didn't match the XFB by one pixel, making the image stretched and blurry.
-Video: Fix `FindClosestIntegerResolution() using the window aspect ratio and not the draw aspect ratio, causing it to prefer
 stretching over black bars in cases when it wasn't desirable.
2024-02-20 03:09:11 +02:00
Filoppi 95ee0ac781 Video: Fix aspect ratio heuristics getting stuck to widescreen (or to non widescreen) (`m_is_game_widescreen` variable) if the user first forced the aspect ratio to 16:9/4:3 and then set it back to Auto. 2024-02-20 02:42:52 +02:00
Admiral H. Curtiss ccf2435047
Merge pull request #12586 from LillyJadeKatrin/retroachievements-pointspread-fix
Fixes to Achievement points count/mastery
2024-02-19 02:41:14 +01:00
LillyJadeKatrin e5b73fec08 Fixes to Achievement points count/mastery
Two minor updates to improve the Achievement Manager's handling of a player's completion rate.
One, UnlockStatus and the unlock map now track achievement category, such that TallyScore does not count unofficial achievements in counts/points.
Two, the determinations for mastery/completion are now improved to check (1) that the achievement triggering this is CORE (not UNOFFICIAL) and (2) that it has not already been unlocked at this level on the site, which should be sufficient to determine that the unlocking of this particular achievement completes/masters the game.
2024-02-18 19:27:18 -05:00
Mai 22d96ef5b5
Merge pull request #12590 from iwubcode/graphics_mod_action_factory_name
VideoCommon: move factory names to be a static inside each action class
2024-02-18 17:13:03 -05:00
Mai 27415b0ba1
Merge pull request #12587 from AdmiralCurtiss/localtime
Core: Fix crash when inspecting a savestate with a timestamp that causes localtime() to error out
2024-02-18 17:12:29 -05:00
iwubcode a1147dae6e VideoCommon: move factory names to be a static inside each action class, so that they can be reused in the future for serialization 2024-02-18 15:45:10 -06:00
Admiral H. Curtiss 638808c944
IOS/FS: Display the invalid path in the ASSERT in BuildFilename(). 2024-02-18 20:06:32 +01:00
Admiral H. Curtiss 0157166940
Merge pull request #12585 from iwubcode/json_util_vec3
Common: add json utility functions for Vec3 serialization
2024-02-18 19:02:59 +01:00
iwubcode edbf8f1772 Common: add json utility functions for Vec3 serialization 2024-02-17 22:06:06 -06:00
Admiral H. Curtiss d3140e72c3
Core: Fix crash when inspecting a savestate with a timestamp that causes localtime() to error out. 2024-02-18 04:45:37 +01:00
Admiral H. Curtiss 52410813f2
Common: Add utility function that wraps localtime_s() or localtime_t(). 2024-02-18 04:40:25 +01:00
Admiral H. Curtiss 982ad93355
Merge pull request #12582 from LillyJadeKatrin/retroachievements-bugfix-2
Improved achievements disabled messaging
2024-02-18 03:49:44 +01:00
Admiral H. Curtiss 9b5fd5d34e
Merge pull request #12281 from TellowKrinkle/AsahiGL33
VideoCommon: Don't use indexed output for fbfetch
2024-02-18 02:33:50 +01:00
Dentomologist 56ff19c513 BalloonTip: Rework BalloonTip drawing
* Fix irregularly shaped corners
* Remove extra space for BalloonTips with no message or no title
* When the target tip location is not on a screen, put the tooltip on
  the mouse's screen instead of the primary screen
* Fix description getting cut off when the title was too long
* Expose border width as a parameter
* Fix spacing and sizing issues with larger border widths
2024-02-17 12:36:19 -08:00
Mai 21300bb21b
Merge pull request #12457 from iwubcode/asset_memory_limit
VideoCommon: handle asset memory going over reserved limit correctly
2024-02-16 15:46:52 -05:00
LillyJadeKatrin 394af40db5 Improved achievements disabled messaging
Most obviously, there is no longer a warning message to the player in the achievement window that achievements are disabled if a game is not currently running.
2024-02-15 16:33:18 -05:00
Dentomologist a1d6a54eaa DolphinTool: Fix parsing of command line bzip2 flag
Use "bzip2" instead of "bzip" in optparse's compression choices for the
convert command. This is both more accurate and matches what the
ParseCompressionTypeString function expects.

The mismatch between the two parsing functions prevented compression
using bzip2 because either ParseCompressionTypeString or optparse would
generate an error when using "bzip" or "bzip2" respectively.

Fixes https://bugs.dolphin-emu.org/issues/13427
2024-02-13 12:44:03 -08:00
Mai a583526a1c
Merge pull request #12575 from n8pjl/werror-nonnull
IOFile: avoid clearing errors on null file struct
2024-02-13 07:43:19 -05:00
Mai 9e6d701fbc
Merge pull request #12577 from iwubcode/mesh_for_asset_loader
VideoCommon: make mesh asset data loadable by asset loader
2024-02-13 07:42:57 -05:00
iwubcode 2ab877586d VideoCommon: make mesh asset data loadable by asset loader 2024-02-12 21:45:32 -06:00
Admiral H. Curtiss f0d363eea7
Core/DSPHLE: Construct accelerator in AX and AXWii constructors.
This fixes an issue introduced by 3b0444be6b
where the m_accelerator would not be initialized when loading a savestate if
the current UCode mismatched the UCode in the savestate, leading to a crash.
2024-02-12 04:18:18 +01:00
Peter Lafreniere 3da2e15e6b IOFile: avoid clearing errors on null file struct
When performing a default compilation with recent GCC & glibc,
the use of -Werror=nonnull causes a build error.

The error is given as IOFile::ClearError() can call std::clearerr()
with a null file, which can trigger a null-pointer dereference in libc.

Change the std::clearerr() call to be conditional on a file being open.
2024-02-11 20:55:31 -05:00
Mai aa66842172
Merge pull request #12574 from sepalani/exi-exit
EXI: Don't kill Dolphin when receiving BBA_IOB
2024-02-11 20:32:33 -05:00
iwubcode 60772ed9d2 VideoCommon: add functionality to prepare for a mesh asset that is loaded from a GLTF file 2024-02-11 13:28:00 -06:00
iwubcode ecfcae8718 Externals: add tinygltf, a library used to load or save GLTF mesh files 2024-02-11 13:26:39 -06:00
Sepalani 7c276c1993 EXI: Don't kill Dolphin when receiving BBA_IOB
According to @Kirbymimi it doesn't crash on real hardware.

Testing was done by sending many UDP packets to an unbound port.
2024-02-11 23:15:23 +04:00
Mai 80d77ac0b4
Merge pull request #12568 from noahpistilli/kd-register-default-id
IOS/KD: Correctly handle registration of the default user ID
2024-02-11 13:52:40 -05:00
Admiral H. Curtiss e6ee217a7c
Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
Mai ca81d8b8a6
Merge pull request #12565 from LillyJadeKatrin/retroachievements-bugfix
Retain Save State Folder
2024-02-07 14:03:12 -05:00
Gregoire L. D. d17495a75a Fix loading GBA configurations 2024-02-07 19:15:27 +01:00
Sketch 33dd3b078c Correctly log register errors 2024-02-07 09:36:36 -05:00
TellowKrinkle 5949911a5a VideoCommon: Don't use indexed output for fbfetch
A nonzero index makes no sense, and Mesa doesn't like it when you supply an index
2024-02-07 03:52:31 +01:00
JosJuice b5c5371848 Arm64Emitter: Don't optimize ADD to MOV for SP
Unlike ADD (immediate), MOV (register) treats SP as ZR. Therefore the
ADDI2R optimization that was added in 67791d227c can't optimize ADD to
MOV when exactly one of the registers is SP.

There currently isn't any code in Dolphin that calls ADDI2R with
parameters that would trigger this case.
2024-02-06 21:58:07 +01:00
LillyJadeKatrin 1ed7b35710 Retain Save State Folder
Adds a setting field under the hood to retain which folder the player last saved/loaded a state to/from, so that the dialog box to select a state to save/load reopens at that folder.
2024-02-05 19:44:09 -05:00
Mai 9240f579ea
Merge pull request #12561 from JosJuice/profile-consistency
InputCommon: Fix profile path inconsistencies
2024-02-05 09:47:08 -05:00
JosJuice 1315b54ffa InputCommon: Use distinct values for profile key
Because the last commit made us use separate folders for GCPad and
GCKey profiles, we should also use separate game INI keys for them.
Otherwise setting e.g. PadProfile1 in a game INI will make both GCPad
and GCKey try to load it, typically with one of them succeeding and the
other one showing a panic alert due to the profile not existing in its
folder.

Better do this breaking change for GCKeys in the same PR as the other
breaking change rather than later.
2024-02-04 17:55:08 +01:00
JosJuice 6cf55ab1ee InputCommon: Unify GetProfileName and GetProfileDirectoryName
After reading the previous commit, you might think "hold on, what's the
difference between GetProfileName and GetProfileDirectoryName"? These
two are being used for the exact same thing - figuring out where
profiles are stored - yet they return different values for certain
controllers like GC keyboards! As far as I can tell, the existing code
has been broken for GC keyboards since they were introduced a decade
ago. The GUI (and more recently, also InputCycler) would write and read
profiles in one location, and our code for loading profiles specified in
a game INI file would read profiles in another location.

This commit gets rid of the set of values used by the game INI code in
favor of the other set. This does breaking existing setups where a
GCKey profile has been configured in a game INI, but I think the number
of working such setups is vanishingly small. The alternative would make
existing GCKey profiles go missing from the profile dropdown in the GUI,
which I think would be more disruptive. The alternative would also force
new GCKey profiles into the same directory as GCPad profiles.

This commit also fixes a regression from d6c0f8e749. The Android GUI was
using GetProfileName to figure out what key to use in the game INI,
which made it use incorrect game INI entries for GameCube controller
profiles but not Wii Remote profiles. Now the Android GUI uses
GetProfileKey for this, fixing the problem.
2024-02-04 17:55:08 +01:00
JosJuice 2bcf70af3f InputCommon: Refactor away InputConfig::LoadConfig's switch case
By having getters for this information, other code that needs access to
the same information can call the getters instead of duplicating the
information.
2024-02-04 16:46:10 +01:00
Sepalani 1831a8cec5 BBA/HLE: Add missing PSH flag 2024-02-03 10:12:07 +04:00
Admiral H. Curtiss abbc4bd0bd
Merge pull request #12551 from lioncash/cheev
AchievementManager: Minor cleanup
2024-02-03 03:01:56 +01:00
Admiral H. Curtiss 4e3886e7e8
Merge pull request #12557 from mitaclaw/cpu-thread-guarantees-1
CheatSearch: Remove redundant lambdas
2024-02-03 02:45:06 +01:00
Admiral H. Curtiss df5baab873
Merge pull request #12550 from lioncash/dead
VertexLoaderManager: Remove unused entry struct
2024-02-03 02:38:02 +01:00
Lioncash 4f40bdf501 VertexLoaderManager: Use fill() in Init()
Same behavior, less code.
2024-02-01 23:04:40 -05:00
Lioncash ea95c82a01 VertexLoaderManager: Remove unused entry struct
This isn't used anywhere, so it can be removed.
2024-02-01 23:04:39 -05:00
Lioncash db80abbadd AchievementManager: Tidy up GetRichPresence()
This can be a direct return.
2024-02-01 23:03:24 -05:00
Lioncash c14414a151 AchievementManager: clear name in CloseGame()/LogOut()
A little more idiomatic.
2024-02-01 23:03:24 -05:00
Lioncash 2d8af7b7f8 AchievementManager: Replace memsets where applicable
We can just use brace initialization to zero these out. Smaller to
write and a little quicker to read.
2024-02-01 23:03:24 -05:00
Lioncash 184fe932ed AchievementManager: std::move leaderboard info in FetchBoardInfo()
Avoids churning some allocations.
2024-02-01 23:03:24 -05:00
Lioncash 76c381e6f7 AchievementManager: Ensure update callback is always valid
This way we don't need to do any validity checking aside from the
initial setting of the callback. Also cuts down on line noise.
2024-02-01 23:03:23 -05:00
Lioncash 2b83cc739a AchievementManager: Convert .compare() into equality operators
These perform a default comparison, which is the same as using the
equality operators.
2024-02-01 23:03:23 -05:00
Lioncash 394418b415 AchievementManager: Remove unnecessary .get()
Same behavior, less code.
2024-02-01 23:03:23 -05:00
Lioncash 161efff6c9 AchievementManager: Remove long qualifier
We can remove the long qualifying on some ResponseType instances to
lessen the amount of reading.
2024-02-01 23:03:23 -05:00
Lioncash 7096f99f79 CustomPipeline: Mark arrays as constexpr
Ensures that these go into the ro section.
2024-02-01 23:02:45 -05:00
Lioncash 59211589b9 CustomPipeline: Make use of emplace_back() in GlobalConflicts()
We can use the string_view arguments to directly construct strings
inside of the global_result vector.
2024-02-01 23:02:45 -05:00
Lioncash 353ceedb50 CustomPipeline: Resolve unused variable warning
We can just use holds_alternative here instead.
2024-02-01 23:02:45 -05:00
mitaclaw 085c4d154e CheatSearch: Remove redundant lambdas
Core::RunAsCPUThread is obsoleted by CPUThreadGuard reference already passed into the function. The nonsense lambda in CheatSearchWidget is from changes in fdb7328c73.
2024-02-01 19:54:47 -08:00
Admiral H. Curtiss 951be30891
Core: Fix booting titles from NAND. 2024-02-01 19:50:20 +01:00
Admiral H. Curtiss 14121c5504
Core/ConfigManager: Remove dead bAutomaticStart flag. 2024-01-31 22:53:43 +01:00
Admiral H. Curtiss da6b5dd38a
Merge pull request #12546 from lioncash/event
VideoCommon/Statistics: Remove global system accessor from s_after_frame_event
2024-01-31 21:16:21 +01:00
Admiral H. Curtiss 18abf7c768
Merge pull request #12544 from lioncash/getmod
GraphicsModGroup: Allow heterogenous lookup for GetMod()
2024-01-31 20:17:26 +01:00
Admiral H. Curtiss 202c10d757
Merge pull request #12547 from lioncash/movie
Core/Movie: Remove lingering global system instance accessors
2024-01-31 20:12:07 +01:00
Lioncash 5ade2e39ef Core/Movie: Remove lingering global system instance accessors
The movie manager is already passed in a reference to the relevant
system, so we can use that instead.
2024-01-31 13:30:24 -05:00
Lioncash 16d8b6e6b3 Common/HookableEvent: std::move callback instance in Register()
Potentially avoids reallocations if the capture buffer of the callback
is quite large.
2024-01-31 13:16:50 -05:00
Lioncash cac66317aa VideoCommon/Statistics: Remove global system accessor from s_after_frame_event
Instead, we make the event take a reference to the system and then pass
it in when the event is triggered.

This does introduce two other accessors, but these are much easier to
refactor out over time, and without modification to the existing event
interface.
2024-01-31 13:12:09 -05:00
Lioncash 0dfefacdf4 VertexLoaderBase: Collapse std namespace for hash and mark noexcept
Makes the hash specialization a little less noisy. Also we mark it
noexcept, since hashes shouldn't be throwing exceptions (and this can be
optimized on).
2024-01-31 12:43:00 -05:00
Lioncash 8e4b2565cd TextureConfig: Collapse std namespace for hash
Lets us collapse the namespacing and make the specialization a little
less noisy.
2024-01-31 12:41:33 -05:00
Lioncash b63dcd504d RenderState: Collapse std namespace for hash
We can specify the namespace on the hash to make the specialization a
little less noisy.
2024-01-31 12:40:10 -05:00
Lioncash 5bfaa3a966 NativeVertexFormat: Collapse std namespace and mark hash noexcept
We can just tag the std:: onto the end of the specialization to make it
less noisy.

Also mark it as noexcept, since hashes shouldn't throw exceptions.
2024-01-31 12:37:44 -05:00
Lioncash 40b050fe37 GraphicsModGroup: std::move graphics_mod in Load()
The config object is quite heavyweight, so we should move this instead
of copying.
2024-01-31 12:27:43 -05:00
Lioncash ccacda5e2c GraphicsModGroup: Simplify try_add_mod()
We can use contains() here, and also move the mod config if it's valid
instead of copying it, since it contains quite a bit of allocated data.
2024-01-31 12:23:21 -05:00
Lioncash 81aca79145 GraphicsModListWidget: Pass optional by const reference
All we do is read from it, so we don't need to copy the string if we
happen to have one.
2024-01-31 12:09:35 -05:00
Lioncash a1879ea099 GraphicsModGroup: Allow heterogenous lookup for GetMod()
Allows using keys that aren't directly std::string as the key. This lets
us use std::string_view for the incoming path name, making it more
flexible with other string types.
2024-01-31 12:05:17 -05:00
Mai 30fdf25f8f
Merge pull request #12542 from AdmiralCurtiss/system-sconfig
Migrate m_is_mios and bWii from SConfig to System.
2024-01-31 09:57:17 -05:00
Admiral H. Curtiss 9a3e770c23
Migrate SConfig::bWii to System. 2024-01-31 12:54:07 +01:00
Mai e0828815e7
Merge pull request #12540 from mitaclaw/encode-reg-to-64
Add Missing EncodeRegTo64 in JitArm64::dcbx
2024-01-30 13:08:03 -05:00
mitaclaw 45481620b8 Add Missing EncodeRegTo64 in JitArm64::dcbx
ARM64FloatEmitter::ABI_PushRegisters expects an XReg temporary, not a WReg.
2024-01-30 03:06:32 -08:00
Admiral H. Curtiss 8d515d407c
Migrate SConfig::m_is_mios to System. 2024-01-30 03:45:17 +01:00
luc-git d124fcbb0d
DolphinQt/RenderWidget: Add comments for SetCursorLocked() on Linux.
Co-authored-by: Admiral H. Curtiss <pikachu025@gmail.com>
2024-01-30 01:06:30 +01:00
LillyJadeKatrin fd99a5db9a Reverse endianness of achievement memory peeks
rcheevos expects these multi-byte peeks to have the opposite endianness so they need to be swapped before rcheevos gets them.
2024-01-29 11:55:49 -05:00
TellowKrinkle b7a451fc87 VideoCommon: Post to analytics when bug is overridden 2024-01-28 23:24:23 -06:00