Commit Graph

30311 Commits

Author SHA1 Message Date
iwubcode
89e2fc1dd3 VideoBackends: update SRVDescriptorTable size in DX12 to use pixel sampler constant 2023-08-13 17:23:26 -05:00
Admiral H. Curtiss
5635a0bdef
DolphinQt/EnhancementsWidget: Use custom tooltip for Color Correction button. 2023-08-13 22:46:46 +02:00
Admiral H. Curtiss
2537f4db91
Merge pull request #12100 from AdmiralCurtiss/tooltip-pushbutton
DolphinQt: Add ToolTipPushButton.
2023-08-13 21:44:24 +02:00
JMC47
4549091f56
Merge pull request #12090 from mandar1jn/figures-split
Skylanders: expand and improve character list
2023-08-13 14:29:46 -04:00
Mandar1jn
31d6aa5117 Skylanders: expand and improve character list
The previous list had some issues. A lot of variant id's were set to 0x0000. Althought this works for some figures, on a technicallity implemented into the games, they are technically wrong and don't result in exactly the same experience as the real figures. For example, the previous small fry got a "series 1" text in the summon screen. The real small fry does not have this. I also added figure types so I can add seperate generation logic later.
The Kaos element only applies to 3 items. So, I decided to throw it under others since it's not listed as an element in the manual and you can easily search for Kaos
2023-08-13 19:55:10 +02:00
Admiral H. Curtiss
1c1d2b0873
Merge pull request #12098 from Dentomologist/gcadapter_fix_android_unused_constant_warning
Gcadapter: fix Android unused constant warning
2023-08-13 18:58:39 +02:00
Admiral H. Curtiss
5bf760fa0b
Merge pull request #12069 from riidefi/silent-sd-failure
Prevent SD data loss from silent resync failure
2023-08-13 18:57:11 +02:00
JosJuice
d50494b88d
Merge pull request #12060 from Sintendo/arm64-bool-logimm
JitArm64: Use LogicalImm in boolX
2023-08-13 18:51:05 +02:00
JMC47
0495a6af4e
Merge pull request #12066 from Pokechu22/main-window-right-click-menu
Disable right-click menu on main window
2023-08-13 12:49:56 -04:00
Dentomologist
720191d1f7 AbstractFramebuffer: Fix Android reorder-ctor warning
Move declaration of m_additional_color_attachments so its initialization
order matches that of the constructor.
2023-08-12 20:48:47 -07:00
Dentomologist
274b11e4e9 GCAdapter: Fix Android unused constant warning
CONTROLLER_OUTPUT_INIT_PAYLOAD_SIZE is only used by the libusb
implementation.
2023-08-12 20:20:42 -07:00
Dentomologist
77d33d61de GCAdapter: Fix spelling of constants 2023-08-12 20:20:41 -07:00
Dentomologist
9ef79dd2f5 IOS: Remove unused member variable from SharedContentMap and UIDSys
Resolve unused-private-field warnings on Android.
2023-08-12 14:37:52 -07:00
Dentomologist
9ad0d9ca6a NandPaths: Use initializer_list instead of unordered_set 2023-08-12 14:00:41 -07:00
Dentomologist
9955a06dbd NandPaths: Resolve Android tautological comparison warning
Android interprets char as unsigned char, so comparing with 0 triggers a
tautological-unsigned-char-zero-compare warning.

Casting c to an unsigned char and removing the comparison with 0
resolves the warning while needing one less comparison on all platforms.
2023-08-12 14:00:41 -07:00
Admiral H. Curtiss
e6c7f4e14b
DolphinQt: Add ToolTipPushButton. 2023-08-12 21:33:43 +02:00
Admiral H. Curtiss
bc47a28653
Merge pull request #12093 from Hark64/exportWiiSaveErrorFix
Disable Wii Save Options When Emulation Is Running
2023-08-12 20:34:47 +02:00
Harkaran Mann
783ff26edd
DolphinQt: Turn of wii save options during emulation 2023-08-12 20:18:22 +02:00
Admiral H. Curtiss
24012cfc7f
DolphinQt: Adjust panel-specific colors and syntax highlighting for dark theme. 2023-08-12 19:43:12 +02:00
Admiral H. Curtiss
c2e29153e9
DolphinQt: Set the theme before constructing the MainWindow, some panels that explicitly request palette colors get the wrong colors otherwise. 2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
d725aaa5bc
DolphinQt: Set the application palette to a matching one when the Windows dark theme is in use. 2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
250d5f55de
DolphinQt: Switch dark/light theme when Windows theme changes. 2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
e2fb8fab2f
DolphinQt: Set window decorations for all top-level QWidgets. 2023-08-12 16:54:54 +02:00
Admiral H. Curtiss
e8d23af0f2
DolphinQt: Add function to set a QWidget's window decorations to dark ones on Windows. 2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
adbe56ce15
DolphinQt: Auto-load embedded dark theme on Windows if the user uses a system-wide dark theme. 2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
ea30651cd7
DolphinQt: Embed custom dark theme for Windows. 2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
5d33f2abd1
DolphinQt: On Windows, detect whether the system is using a dark theme.
Co-authored-by: FearlessTobi <thm.frey@gmail.com>
2023-08-12 16:54:53 +02:00
Admiral H. Curtiss
f2300d89cc
CMake: Turn on rcc file embedding. 2023-08-12 16:54:53 +02:00
Pokechu22
1f8f3840ac Disable right-click menu on main window
Before, right-clicking on the toolbar would allow toggling all dock widgets, including the debugger ones even when they are disabled. (See https://doc.qt.io/qt-5/qmainwindow.html#createPopupMenu for this behavior, and https://bugs.dolphin-emu.org/issues/13306 for an example of where it caused issues.)
2023-08-11 10:45:31 -07:00
iwubcode
246b7c5bdb VideoCommon: fix regression with texture load order where the custom texture code was always updating the asset map for each texture with each entry, making it so the last value actually would be loaded instead of the first 2023-08-11 00:36:41 -05:00
JMC47
5512d19d4b
Merge pull request #12061 from iwubcode/cubemap_backends_only
VideoBackends: add support for cube maps for OGL, Vulkan, and D3D
2023-08-10 18:36:48 -04:00
JMC47
032c77b462
Merge pull request #12064 from noahpistilli/wc24-standby
Remove force disable WC24 Standby
2023-08-10 16:07:47 -04:00
Admiral H. Curtiss
b0dc067717
Merge pull request #12087 from Dentomologist/dx12_use_correct_framebuffer_descriptor
D3D12: Only use framebuffer integer descriptor if allocated
2023-08-10 19:09:25 +02:00
JosJuice
1ebec40e4d JitArm64: Prefer MOVI with 64-bit elements for zeroing
The Cortex-X2 and Cortex-X3 (and possibly others) recognize MOVI with
64-bit elements as a zeroing idiom, but not MOVI with other sizes.
2023-08-06 12:11:37 +02:00
Dentomologist
83f307ec7e D3D12: Only use framebuffer integer descriptor if allocated
Verify that DXFramebuffer's integer RTV descriptor's cpu_handle has been
allocated before using it, and if it hasn't use the non-integer RTV
descriptor instead. This fixes a Dolphin crash in Twilight Princess, and
possibly other games (Issue 13312).

As an optimization to save space in the descriptor heap, DXFramebuffer's
integer descriptor is only initialized if the given abstract texture
format has different integer and non-integer RTV formats. This
previously wasn't accounted for by GetIntRTVDescriptorArray, which could
cause DX12::Gfx::BindFramebuffer to call OMSetRenderTargets with an
invalid descriptor which would lead to a crash.

Triggering the bug was fortunately rare because integer formats are only
used when blending is disabled and logic ops are enabled. Furthermore,
the standard integer abstract format is RGBA8 which has different
integer and non-integer RTV formats, causing the integer descriptor to
be initialized and avoiding the bug.

The crash started appearing in a2702c6 because it changed the
swapchain's abstract texture format from RGBA8 to RGB10_A2. Unlike
RGBA8, RGB10_A2 has the same integer and non-integer RTV formats and so
the bug can be triggered if the other requirements are met.
2023-08-04 13:17:33 -07:00
JosJuice
02b0e287cb InputConfig: Update IsControllerControlledByGamepadDevice for Android input overhaul
This only matters for analytics, but still.
2023-08-01 19:35:55 +02:00
JosJuice
262a3be08a JitArm64: Store PC on debug exit
Should fix https://bugs.dolphin-emu.org/issues/13178.

Jit64 doesn't need to do this because it stores PC directly into
ppcState instead of first storing it in a register.
2023-07-31 16:50:49 +02:00
JosJuice
a912a2c3f5
Merge pull request #12047 from AdmiralCurtiss/nand-stats-user
Add file size stats to NAND Check.
2023-07-30 21:51:07 +02:00
JosJuice
d2c5d79614 JitArm64: Use farcode in WriteLinkBlock
Now block link nearcode is back to a length of three instructions.

Unfortunately, the code I'm adding to Jit.cpp ends up being a bit messy
because we need to handle the case of already being in farcode...
2023-07-30 15:00:07 +02:00
JosJuice
1813f0fdb5 Jit: Remove checkedEntry
It's now always identical to normalEntry.
2023-07-30 14:28:02 +02:00
JosJuice
f78ba9ac55 JitArm64: Never check downcount on block entry
Jumping between linked blocks currently works as follows: First, at the
end of the first block, we check if the downcount is greater than zero.
If it is, we jump to the `normalEntry` of the block. So far so good. But
if the downcount wasn't greater than zero, we jump to the `checkedEntry`
of the block, which checks the downcount *again* and then jumps to
`do_timing` if it's less than zero (which seems like an off by one error
- Jit64 doesn't do anything like this). This second check is rather
redundant. Let's jump to `do_timing` where we previously jumped to
`checkedEntry`.

Jit64 doesn't check the downcount on block entry. See 5236dc3.
2023-07-30 14:20:44 +02:00
Admiral H. Curtiss
9f817911fd
HLE_OS: Manually handle printfs from emulated software to prevent emulated software from crashing Dolphin with an invalid printf formatting string. 2023-07-29 20:06:09 +02:00
JosJuice
30c4ac34b0
Merge pull request #12073 from AdmiralCurtiss/wiimote-win32error
WiimoteReal/IOWin: Use correct error type in the default case.
2023-07-29 18:54:10 +02:00
Admiral H. Curtiss
7f29f0398c
MMU: Add a HostGetU16String() function for wide strings used by emulated software. 2023-07-29 15:11:00 +02:00
iwubcode
dca7c67105 VideoCommon: update NetplayChatUI's chat message input to use a hidden label. This avoids an error thrown by imgui 2023-07-29 00:27:07 -05:00
JMC47
a2a6473962
Merge pull request #12065 from iwubcode/imgui_update
Externals / VideoCommon: update imgui to 1.89.7 (and implot to 0.15)
2023-07-28 17:22:20 -04:00
Franz-Josef Haider
8bfcd2deb7 JitArm64/Jit64: Load the memory register without jumps and only when necessary. 2023-07-28 14:24:53 +03:00
Admiral H. Curtiss
fb9274c359
WiimoteReal/IOWin: Use correct error type in the default case. 2023-07-28 08:10:54 +02:00
Admiral H. Curtiss
cd923718c3
CommonFuncs: Add GetWin32ErrorString(). 2023-07-28 08:10:01 +02:00
JosJuice
f3ad246fff PPCAnalyst: Simplify gprBlockInputs calculation
No need for the gprDefined variable.
2023-07-27 23:10:59 +02:00
JosJuice
8c2d73e8c2 PPCAnalyst: Fix gprBlockInputs calculation
This analysis needs to scan backwards, not forwards.
2023-07-27 23:09:46 +02:00
Dentomologist
3c6ea825c2 GekkoDisassembler: Remove unused parameter dmode from fdabc function
With the removal of m_flags, dmode is no longer used in fdabc.
2023-07-27 10:47:46 -07:00
Dentomologist
33dc2a9e6a GekkoDisassembler: Remove unused parameter dmode from ldst function
With the removal of m_flags, dmode is no longer used in ldst.
2023-07-27 10:47:46 -07:00
Dentomologist
b3c5021fc4 GekkoDisassembler: Remove unused parameter dmode from rrn function
With the removal of m_flags, dmode is no longer used in rrn.
2023-07-27 10:47:46 -07:00
Dentomologist
a177c8bcb1 GekkoDisassembler: Remove unused parameter dmode from dab function
With the removal of m_flags, dmode is no longer used in dab.
2023-07-27 10:47:45 -07:00
Dentomologist
a732647e5a GekkoDisassembler: Remove unused parameter dmode from nooper function
With the removal of m_flags, dmode is no longer used in nooper.
2023-07-27 10:47:45 -07:00
Dentomologist
317bb629b9 GekkoDisassembler: Remove unread variable m_flags
Writes to m_flags are pointless as it's never read.
2023-07-27 10:47:41 -07:00
iwubcode
350e51951b VideoCommon: update imgui to 1.89.7 (and implot to 0.15); fix issues with upgrade; keep the demo code in case someone wants to reference it but don't compile it by enabling 'IMGUI_DISABLE_DEMO_WINDOWS' in config 2023-07-27 11:47:34 -05:00
riidefi
ec5d2a4f41 [Core] Prevent SD data loss from silent resync failure 2023-07-26 13:58:01 -06:00
Martino Fontana
1e5e319783 Qt/GameConfigWidget: Add Manual Texture Sampling 2023-07-25 00:45:13 +02:00
Martino Fontana
41f81aca69 Qt/GameConfigWidget: Rename m_enable_fast_disc to m_emulate_disc_speed 2023-07-25 00:45:10 +02:00
Martino Fontana
0892998af1 Qt/GameConfigWidget: Add reverse argument for {Save,Load}CheckBox
In order to not hard code `if (key == "FastDiscSpeed")`
2023-07-24 20:48:32 +02:00
Admiral H. Curtiss
0a2afa48b7
Merge pull request #12045 from tupfold/master
[Minor Bugfix]  Extremely rare HostID collision bugfix
2023-07-24 03:55:45 +02:00
Admiral H. Curtiss
2b80605e7e
Merge pull request #12067 from Pokechu22/debugging-ui-text-show-enable
Rename "Show Debugging UI" to "Enable Debugging UI"
2023-07-24 01:15:04 +02:00
Admiral H. Curtiss
c468ca2107
Merge pull request #12057 from iwubcode/config_core_timing_refresh_only
Core: save core timing parameters into variables updated during refresh
2023-07-24 01:14:18 +02:00
Pokechu22
7e38ff496c Rename "Show Debugging UI" to "Enable Debugging UI"
This will hopefully reduce confusion on e.g. https://bugs.dolphin-emu.org/issues/13306.
2023-07-23 15:17:04 -07:00
iwubcode
e54b7ac356 Core: save core timing parameters into variables updated during refresh 2023-07-23 14:03:21 -05:00
JosJuice
eb79bf37e2
Merge pull request #12052 from mitaclaw/profiling-is-something
Announce RSCRATCH clobbering in Jit64::Cleanup() when profiling is enabled
2023-07-23 20:12:43 +02:00
Admiral H. Curtiss
a76cc146e1
Merge pull request #12055 from iwubcode/skip_dump_async
VideoCommon: skip the texture dump if a custom texture is available, regardless if it is loaded or not
2023-07-23 19:53:25 +02:00
Admiral H. Curtiss
c1a4b3f350
Merge pull request #12051 from mandar1jn/J-documentation-improvements
Skylanders: Update J command documentation
2023-07-23 19:23:29 +02:00
Admiral H. Curtiss
dd3caa48b2
Merge pull request #12063 from SuperSamus/audio-name
cubeb: Change name to "Dolphin Emulator"
2023-07-23 19:15:24 +02:00
Bram Speeckaert
a486168448 JitArm64: Use LogicalImm in boolX
ARM64 has a special logical immediate encoding scheme, that can be used
with AND, ORR, and EOR. By taking advantage of this, we no longer need
to materialize the immediate value in a register, saving instructions
and/or reducing register pressure.

- orx

Before:
mov    w23, #0x1
orr    w23, w25, w23

After:
orr    w23, w25, #0x1

- andx

Before:
mov    w26, #-0x80000000
and    w27, w27, w26
sxtw   x24, w27

After:
and    w27, w27, #0x80000000
sxtw   x26, w27

- eqvx

Before:
mov    w23, #0x4
eon    w26, w23, w22

After:
eor    w26, w22, #0xfffffffb

- xorx

Before:
mov    w23, #0x1e
eor    w23, w27, w23

After:
eor    w23, w27, #0x1e

- norx

Before:
mov    w25, #-0x2001
orr    w23, w23, w25
mvn    w23, w23

After:
orr    w23, w23, #0xffffdfff
mvn    w23, w23
2023-07-23 18:40:53 +02:00
Sketch
8c2a1c191e Remove force disable WC24 Standby 2023-07-22 22:24:09 -04:00
Admiral H. Curtiss
e3ef3cb752
Merge pull request #12062 from iwubcode/custom_textures_debug
VideoCommon: add startup message to know if custom textures are installed
2023-07-23 03:45:22 +02:00
Martino Fontana
b5be399fd4 cubeb: Change name to "Dolphin Emulator"
To avoid conflicts with KDE's file manager.
2023-07-22 23:12:34 +02:00
Admiral H. Curtiss
fb2b3753b5
Merge pull request #12015 from nyanpasu64/gc-adapter-sleep-detach
Fix GC Adapter breaking and burning a full CPU core after sleep-wake on Linux
2023-07-22 03:38:45 +02:00
iwubcode
fd74244339 VideoCommon: add custom texture message to provide a dirty means of debugging whether custom textures are installed correctly 2023-07-21 20:13:27 -05:00
iwubcode
e892b7f1ac VideoBackends: add support for cube maps for OGL, Vulkan, and D3D 2023-07-21 19:09:40 -05:00
LillyJadeKatrin
7a7e0ab2f5 Fixed Leaderboard Scored message format
Refactored the message displayed when a leaderboard is submitted to so that it properly generates and uses a FormattedValue.
2023-07-21 01:45:50 -04:00
Mandar1jn
eba5291ec7 Skylanders: Update J command documentation
I initially thought the 0x01 side was both sides (equavalent to just C. However, this turned out to be something I forgot I implemented in my personal interface. 0x01 does not seem to change any colors.

Recently discovered how exactly the last 2 bytes of the J command for timing data
2023-07-20 23:58:33 +02:00
iwubcode
f7e78742cf VideoCommon: skip the texture dump if the texture is using a custom texture, regardless of whether or not it is loaded yet 2023-07-19 23:44:41 -05:00
mitaclaw
70b3db93e0 Announce RSCRATCH clobbering in Jit64 when profiling is enabled 2023-07-19 14:15:42 -07:00
iwubcode
79f202ea5c VideoCommon: fix some compiler warnings for CustomAsset. FreeBSD compiler complained about a defaulted move constructor due to the mutex being implicitly deleted. Additionally, the const owning library deleted the copy constructor. 2023-07-16 19:45:55 -05:00
Admiral H. Curtiss
9ebfcebdde
Merge pull request #12049 from iwubcode/initialize_asset_load_info
VideoCommon: initialize load info variables in CustomAssetLibrary
2023-07-16 23:32:13 +02:00
Admiral H. Curtiss
2814e4e283
Merge pull request #12033 from mbc07/ColorCorrectionGUI_fixes
Qt: Color Correction window fixes
2023-07-16 23:31:59 +02:00
Mateus B. Cassiano
d7e79683cc Qt: Color Correction window fixes 2023-07-16 16:48:08 -04:00
iwubcode
5740be15f9 VideoCommon: initialize load info variables 2023-07-16 12:56:03 -05:00
Admiral H. Curtiss
cd5aebe5ac
Qt: Add file size stats to NAND Check. 2023-07-14 05:24:29 +02:00
Admiral H. Curtiss
efae5827f2
IOS/FS: Implement GetExtendedDirectoryStats().
Behaves like GetDirectoryStats() but doesn't clamp to the Wii limits, so we can tell the user exactly how overfull their NAND is.
2023-07-14 04:48:23 +02:00
Admiral H. Curtiss
0d9e027a0b
IOS/FS: Move NAND size related constants to FileSystem.h.
That way they're available for calculating NAND stats to display to the user. This also adds a few more constants.
2023-07-14 04:47:47 +02:00
Upfoldian
c4978edaf6 Fixed a bug where in the extremely unlikely change that HostIDs collide, a new HostID is generated. 2023-07-13 21:33:36 +10:00
jmlee337
550b9782e1
Do not try portmapping when using traversal server
using portmapping with hosting while using traversal server (which is possible by checking the option while under "direct connect" and flipping back to traversal server) causes dolphin to request a mapping to external port 0.

In UPnP a mapping to external port 0 is actually the wildcard, which means that connection requests on all
external ports (that are not otherwise mapped) will be forwarded to the client.

Additionally it seems like using port mapping with traversal server is probably not expected behavior, as the option checkbox disappears when traversal server is used.
2023-07-13 01:15:12 -07:00
Sepalani
cbb76c1d4f Common/Network: Use StrErrorWrapper 2023-07-12 20:52:35 +04:00
Sepalani
92be54d57a Common/CommonFuncs: Add StrErrorWrapper function 2023-07-12 20:52:35 +04:00
OatmealDome
423c7c58cd
Merge pull request #12042 from JosJuice/logic-op-no-win7
D3D: Remove Windows 7 mention in logic ops warning
2023-07-11 20:23:16 -04:00
JosJuice
5acebc71c4 D3D: Remove Windows 7 mention in logic ops warning
Dolphin no longer supports Windows 7, so the fact that there are (were?)
more people who use Windows 7 than who use a GPU that doesn't support
the required feature is no longer relevant.
2023-07-11 22:41:51 +02:00
Joshua de Reeper
93c8db66d6 Skylanders: More List Fixes 2023-07-10 09:59:00 +01:00
Admiral H. Curtiss
fe8a9ac707
Merge pull request #12024 from iwubcode/material_asset
VideoCommon: add material asset
2023-07-09 21:49:16 +02:00
iwubcode
77511e8e7c VideoCommon: add material asset. A material is similar to other graphics engines where it provides data to be used in conjunction with a shader asset to generate a runtime AbstractShader 2023-07-09 12:21:34 -05:00
JosJuice
bd90f6be78
Merge pull request #12017 from Dentomologist/remove_unused_flowlayout
QtUtils: Remove unused FlowLayout
2023-07-09 16:06:35 +02:00
JosJuice
90b1f5c60a
Merge pull request #12020 from Dentomologist/gekkodisassembler_remove_unread_variables
GekkoDisassembler: Remove unread variables
2023-07-09 16:00:26 +02:00
Admiral H. Curtiss
80c44ea597
Merge pull request #12034 from MaverickAmon02/controller-update-race
Fix unsafe netplay code in SI_DeviceGCController
2023-07-09 14:13:44 +02:00
Admiral H. Curtiss
7bb04ff1dc
Merge pull request #12022 from iwubcode/texture_create_gmod_impl
VideoCommon: call into graphics mods create texture callback
2023-07-09 04:20:43 +02:00
Amon Neander
d122492db7 Fix unsafe netplay code in SI_DeviceGCController
By misusing Config, this netplay-related code opened up a race condition between Config::OnConfigChanged() and SerialInterface::SerialInterfaceManager::UpdateDevices() that could cause iterator invalidation.
2023-07-06 11:34:08 -04:00
nyanpasu64
c8df26554b Fix GC adapter not being detected when you enable controller in settings
GCAdapter::UseAdapter() reads s_is_adapter_wanted, which gets
initialized by config_guard.~ConfigChangeCallbackGuard(). So we must
wait until after destroying the config guard to know whether we have any
controllers set to GC Adapter.
2023-07-05 20:38:22 -07:00
nyanpasu64
5d0f1bd10b Switch libusb_config_descriptor to RAII type 2023-07-05 20:38:22 -07:00
nyanpasu64
c893ccca58 Workaround GC adapter detection breaking when reset fails 2023-07-05 20:38:22 -07:00
nyanpasu64
559a16da49 Reset GC adapter upon IO error after sleep-wake
Fixes GC adapter breaking on sleep-wake on Linux and burning a full CPU
core. This is cleaner than alternative approaches.
2023-07-05 20:38:22 -07:00
nyanpasu64
afb5eff426 Don't burn a CPU core and spam logs when GC Adapter fails 2023-07-05 20:38:22 -07:00
nyanpasu64
54850e936c Fix memory leak in libusb code 2023-07-05 20:38:22 -07:00
Joshua de Reeper
79a4b91d68 Skylander Portal: Simple List Fixes 2023-07-04 16:48:51 +01:00
Admiral H. Curtiss
0366122306
Merge pull request #12009 from iwubcode/shader_asset
VideoCommon: add a pixel shader asset
2023-07-03 03:24:11 +02:00
Admiral H. Curtiss
da2784a391
Merge pull request #11878 from LillyJadeKatrin/retroachievements-achievements-tab
RetroAchievements - Achievement Progress Tab
2023-07-03 03:23:18 +02:00
iwubcode
a2ad3ca6f7 VideoCommon: don't do pointer copies during graphics mod callback iteration 2023-07-02 13:58:07 -05:00
iwubcode
0539bb4a3e VideoCommon: call into graphics mods create texture callback, providing additional asset dependencies that trigger the texture to be reloaded 2023-07-02 13:45:09 -05:00
Admiral H. Curtiss
6d7bf60071
Merge pull request #11991 from iwubcode/tcache_multiple_texture_dependencies
VideoCommon: allow multiple texture assets to associate with a texture cache entry
2023-07-02 20:14:32 +02:00
iwubcode
a93e6e7397 VideoCommon: add support for allowing a TextureCache entry to be associated with multiple assets 2023-07-02 12:50:07 -05:00
Dentomologist
c8e276c6f5 GekkoDisassembler: Remove unread variable m_displacement 2023-07-01 20:09:10 -07:00
Dentomologist
98c9049184 GekkoDisassembler: Remove unread variable m_sreg 2023-07-01 20:09:09 -07:00
LillyJadeKatrin
ccc9d0e5ea Synchronized Achievement Window
Expanded the use of the lock mutex already used for loading the player's existing unlock status to guard against races involving the Achievements dialog window reading from data AchievementManager might be in the process of updating. The lock has been exposed publicly and the AchievementsWindow uses it in its UpdateData method, and anywhere else that might modify data used to render that window has also been wrapped with it.
2023-07-01 22:26:30 -04:00
LillyJadeKatrin
fbaeaf305b Add UpdateCallback to AchievementManager
AchievementManager now has a SetUpdateCallback method for providing a single universal callback for anytime something important changes in the achievement state, such as logging in/out, game load/close, or events such as achievement unlocks. AchievementsWindow sets this callback in its own init to its UpdateData method so that the AchievementsWindow gets updated when one of these changes takes place.
2023-07-01 22:26:29 -04:00
LillyJadeKatrin
582042de1f Added AchievementProgressWidget to AchievementsWindow
This widget is a tab in the AchievementsWindow that displays the player's current achievement progress: which achievements are locked or unlocked, and the progress of achievements that have progress metrics.
2023-07-01 22:26:29 -04:00
LillyJadeKatrin
ebe77f149f Added AchievementHeaderWidget to AchievementsWindow
This widget displays a header on the AchievementsWindow dialog above the tabs that shows the currently logged in user (if there is one) and the game they are playing (if there is one).
2023-07-01 22:26:29 -04:00
LillyJadeKatrin
f700faf6ab Expose Achievements Data for Display
Added some small methods to AchievementManager to expose useful data for displaying in an achievement UI. Also moved a couple things from private to public for the same purpose.
2023-07-01 22:26:29 -04:00
Dentomologist
6fe3cfe245 QtUtils: Remove unused FlowLayout
FlowLayout hasn't been used since
b65faa0549.
2023-07-01 11:33:54 -07:00
Admiral H. Curtiss
eedc1144c1
Merge pull request #11923 from iwubcode/multi-texture-compute-support
VideoBackends: support multiple compute images for some backends
2023-07-01 17:47:55 +02:00
JosJuice
179d823852
Merge pull request #11992 from Dentomologist/remove_mtype_and_associated_enum
GekkoDisassembler: Remove unread variable and associated enum
2023-07-01 09:00:42 +02:00
Admiral H. Curtiss
ed4403537f
Merge pull request #11916 from JosJuice/ppcanalyst-reorder-loop
PPCAnalyst: Reduce number of iterations in ReorderInstructionsCore
2023-07-01 01:06:53 +02:00
Admiral H. Curtiss
82c986816f
Merge pull request #11978 from AdmiralCurtiss/wiimote-S_FALSE
WiimoteReal/IOWin: Don't try to print error message for non-errors.
2023-07-01 00:58:42 +02:00
Admiral H. Curtiss
e71f42f819
Merge pull request #11997 from Dentomologist/dspemulator_remove_pauseandlock_parameter
DSPEmulator: Remove unused PauseAndLock parameter
2023-07-01 00:56:45 +02:00
Admiral H. Curtiss
94f34260a6
Merge pull request #12001 from Filoppi/patch-21
Qt: Fix some Post Process Configuration Widget issues #3-4
2023-06-30 19:11:10 +02:00
Admiral H. Curtiss
fa81006b51
Merge pull request #11955 from TellowKrinkle/CMakeDependencies
CMake: Allow ignoring system packages
2023-06-30 19:06:04 +02:00
Admiral H. Curtiss
e4d7ba5554
Merge pull request #12007 from AdmiralCurtiss/cmake-scmrev-at-build-time
CMake: Generate scmrev.h at build time instead of configure time.
2023-06-30 18:59:33 +02:00
iwubcode
6ea49c6746 VideoCommon: add a pixel shader asset 2023-06-30 01:32:53 -05:00
JMC47
ff324ef660
Merge pull request #12010 from TellowKrinkle/AlignUpOpt
Common: Better AlignUp implementation
2023-06-29 20:30:13 -04:00
Filoppi
bfb90b7eec Video: increase the max HDR brightness multiplier to a more appropriate value (400 nits can be too dark in a bright room) 2023-06-29 14:24:28 +03:00
Filippo Tarpini
28fafbeef2 Qt: Fix some Post Process Configuration Widget issues n3
1 ) When first opened, the (user selected) post process shader config widget would print the wrong values on the text label next to int range sliders. For example if the range was from 1 to 6, and the value loaded from the config was 1, the label would print 0 when first opened, to then start showing the correct value once the slider was first moved.

This mirrors the behaviour of the float slider code below:
```auto* const value_box = new QLineEdit(QString::asprintf("%f", m_config_option->m_float_values[i]));```

2 ) The defautl int slider value would also be set wrong on first load, as it was being divided by the slider max instead of the slider step amount (again, just like for the float implementation). This is a mistake I had made with my previous submission.
2023-06-29 14:13:38 +03:00
TellowKrinkle
d844317a6d Common: Better AlignUp implementation 2023-06-29 02:35:44 -05:00
Admiral H. Curtiss
4774fe3445
VKGfx: Add parentheses around ambiguous if statements. 2023-06-29 03:59:18 +02:00
Admiral H. Curtiss
2a6f4d879c
CMake: Generate scmrev.h at build time instead of configure time. 2023-06-29 03:23:31 +02:00
iwubcode
3627398cf5 VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan) 2023-06-28 17:15:31 -05:00
JosJuice
3384e02098 DolphinQt: Don't translate empty strings
Trying to translate an empty string will return a long metadata string
for the loaded translation file rather than the expected empty string.
2023-06-28 18:43:52 +02:00
TellowKrinkle
fc4036af80 VideoBackends:Metal: Multi render target support 2023-06-28 00:11:37 -05:00
JosJuice
766b8605f8
Merge pull request #11994 from JosJuice/skylanders-i18n
DolphinQt: Add i18n comments for Skylanders strings
2023-06-27 22:40:14 +02:00
Dentomologist
ee684b0798 DSPEmulator: Remove unused PauseAndLock parameter 2023-06-25 20:29:23 -07:00
Dentomologist
f151ae3c2a EXI: Remove pointless PauseAndLock functions
The ExpansionInterfaceManager::PauseAndLock function does nothing but
call other functions that have no effect.

ExpansionInterfaceManager::PauseAndLock calls CEXIChannel::PauseAndLock,
which in turn calls IEXIDevice::PauseAndLock. None of the classes
deriving from IEXIDevice override PauseAndLock, and the implementation
in IEXIDevice does nothing.
2023-06-25 20:08:08 -07:00
Admiral H. Curtiss
3a8e7de214
Merge pull request #11903 from noahpistilli/wiilink
IOS/KD: Add WiiLink as WC24 service provider by default
2023-06-26 02:27:47 +02:00
Sketch
f9f8e94e30 Add default support for WiiLink + configuration 2023-06-25 14:57:15 -04:00
JosJuice
09f8f29ae0 DolphinQt: Add i18n comments for Skylanders strings
Also changed the spelling of "Superchargers" to "SuperChargers".
2023-06-25 15:38:30 +02:00
Dentomologist
2472269d06 GekkoDisassembler: Remove unused enum InstructionType 2023-06-24 13:45:26 -07:00
Dentomologist
2cf48bc32c GekkoDisassembler: Remove unread variable m_type
Writes to m_type are pointless because it's never read.
2023-06-24 13:45:26 -07:00
Pokechu22
50c929928c
Merge pull request #11920 from Minty-Meeo/kill-ascii-to-hex
Kill AsciiToHex
2023-06-23 18:20:36 -07:00
Admiral H. Curtiss
c04536c5d0
Merge pull request #11982 from iwubcode/graphics_mod_create_texture_callback
VideoCommon: add graphics mod callback interface for when a texture is created
2023-06-23 18:10:59 +02:00
Admiral H. Curtiss
02909bd1a5
Merge pull request #11850 from Filoppi/post_process_fixes
Video: implement color correction to match the Wii/GC NTSC/PAL color spaces (and gamma)
2023-06-23 18:08:23 +02:00
Admiral H. Curtiss
5bf3d55d38
Merge pull request #11981 from iwubcode/move_cached_asset_to_common
VideoCommon: move cached texture asset to 'CustomAsset' common code
2023-06-23 17:59:24 +02:00
Admiral H. Curtiss
b5ba51c60a
Core: Remove host thread assert in PauseAndLock().
Fixing all the places it's used turned out to be a more complicated task than anticipated. So let's remove this for now so we don't confuse users with cryptic error messages...
2023-06-23 01:18:56 +02:00
get
445bf8d2c6 Kill AsciiToHex
Now superseded by Common::FromChars
2023-06-22 00:06:50 -05:00
Sketch
bc0e8158b3 IOS/KD/Time: Take into account DST for AdjustedUTC 2023-06-20 22:49:33 -04:00
iwubcode
1d767c3a5b VideoCommon: add graphics mod callback interface for when a texture is created 2023-06-20 19:26:53 -05:00
iwubcode
2dc24a9148 VideoCommon: move cached texture asset to 'CustomAsset' common code 2023-06-20 18:59:55 -05:00
Nicolas van Kempen
4ef2f2c710 Rename Symbol constructor parameter to prevent shadowing 2023-06-20 13:38:31 -04:00
Admiral H. Curtiss
00bf5f55de
WiimoteReal/IOWin: Don't try to print error message for non-errors. 2023-06-20 01:54:59 +02:00
JosJuice
cff3e22f84
Merge pull request #11926 from JosJuice/android-host-check
Android: Re-add host thread check
2023-06-19 20:37:59 +02:00
Admiral H. Curtiss
5d7b5822c9
Merge pull request #11972 from Minty-Meeo/string-improvements-part-1c
Replace std::ostringstream usage with fmt::format
2023-06-19 02:18:30 +02:00
get
ffabb6c57b Replace std::ostringstream usage with fmt::format 2023-06-18 18:37:32 -05:00
Filoppi
daddf4cd9c Qt: add color correction and HDR Qt settings widgets 2023-06-19 01:34:42 +03:00
Filoppi
a2702c6e27 Video: implement color correction to match the NTSC and PAL color spaces (and gamma) that GC and Wii targeted.
To further increase the accuracy of the post process phase, I've added (scRGB) HDR support, which is necessary
to fully display the PAL and NTSC-J color spaces, and also to improve the quality of post process texture samplings and
do them in linear space instead of gamma space (which is very important when playing at low resolutions).
For SDR, the quality is also slightly increased, at least if any post process runs, as the buffer is now
R10G10B10A2 (on Vulkan, DX11 and DX12) if supported; previously it was R8G8B8A8 but the alpha bits were wasted.

Gamma correction is arguably the most important thing as Dolphin on Windows outputted in "sRGB" (implicitly)
as that's what Windows expects by default, though sRGB gamma is very different from the gamma commonly used
by video standards dating to the pre HDR era (roughly gamma 2.35).

Additionally, the addition of HDR support (which is pretty straight forward and minimal), added support for
our own custom AutoHDR shaders, which would allow us to achieve decent looking HDR in Dolphin games without
having to use SpecialK or Windows 11 AutoHDR. Both of which don't necessarily play nice with older games
with strongly different and simpler lighting. HDR should also be supported in Linux.
Development of my own AutoHDR shader is almost complete and will come next.

This has been carefully tested and there should be no regression in any of the different features that Dolphin
offers, like multisampling, stereo rendering, other post processes, etc etc.

Fixes: https://bugs.dolphin-emu.org/issues/8941

Co-authored-by: EndlesslyFlowering <EndlesslyFlowering@protonmail.com>
Co-authored-by: Dogway <lin_ares@hotmail.com>
2023-06-19 01:34:42 +03:00
Admiral H. Curtiss
9e06b6964b
Merge pull request #11963 from iwubcode/d3d12_fix
VideoBackends: fix d3d12 error when validation layers enabled
2023-06-19 00:33:40 +02:00
Admiral H. Curtiss
8039d10994
Merge pull request #11966 from Dentomologist/convert_xemitter_prefetchlevel_to_enum_class
xEmitter: Convert PrefetchLevel to enum class
2023-06-18 15:17:02 +02:00
Admiral H. Curtiss
2d18c9e079
Merge pull request #11976 from JosJuice/emitter-nodiscard
Arm64Emitter/x64Emitter: Use nodiscard for FixupBranch
2023-06-18 15:16:42 +02:00
Filoppi
0584f8ae2a Video: fix Vulkan RGBA10_2 format to the actual most common one (used as swapchain format) 2023-06-18 12:58:40 +03:00
JosJuice
39a8219767 Arm64Emitter/x64Emitter: Use nodiscard for FixupBranch
This should prevent future occurrences of the type of problem that was
fixed in b713042.
2023-06-18 09:10:20 +02:00
get
80575c4489 DITConfiguration: Use File::ReadFileToString 2023-06-17 19:38:15 -05:00
Dentomologist
04fcf68176 xEmitter: Convert PrefetchLevel to enum class 2023-06-17 16:41:32 -07:00
Admiral H. Curtiss
b71304230c
Jit64: Fix trampolines after #11834. 2023-06-18 01:31:44 +02:00
Admiral H. Curtiss
93d9e90798
Merge pull request #11962 from Minty-Meeo/to-underlying
EnumUtils: Add Common::ToUnderlying
2023-06-17 20:04:25 +02:00
Lioncash
696087cae0 Qt/NetworkWidget: Get rid of some trivial sign conversions
In all instances, these variables should be signed rather than unsigned.
2023-06-17 10:48:49 -04:00
get
7523a62105 Change unnamed enum in NativeVertexFormat.h to u32 2023-06-17 08:13:57 -05:00
Admiral H. Curtiss
79d5850e6a
Merge pull request #11960 from Minty-Meeo/dolphin-tool-code-review-4
DolphinTool: Use {fmt} library
2023-06-17 14:18:21 +02:00
get
07ad75f34f EnumUtils: Add Common::ToUnderlying
Mirrors the C++23 <utility> function, std::to_underlying
2023-06-17 07:15:33 -05:00
iwubcode
ba74902bca VideoBackends: fix d3d12 validation layer error introduced by multi-output texture breaking logic ops support 2023-06-17 01:48:59 -05:00
get
e67c196d2a DolphinTool: Less string copies 2023-06-16 21:51:06 -05:00
get
410c4ffe75 DolphinTool: Use {fmt} library 2023-06-16 21:45:59 -05:00
Admiral H. Curtiss
5029924ba1
Merge pull request #11954 from Minty-Meeo/dolphin-tool-code-review-3
DolphinTool: Use EXIT_SUCCESS and EXIT_FAILURE
2023-06-17 04:44:09 +02:00
Admiral H. Curtiss
1aef85a985
Merge pull request #11918 from TellowKrinkle/DPIScale
Improved DPI change handling
2023-06-17 04:07:13 +02:00
Admiral H. Curtiss
089d433996
Merge pull request #11956 from JosJuice/jitarm64-12-bit-asm
JitArm64: Micro-optimizations in fres routine
2023-06-17 04:00:22 +02:00
get
969eeb4b52 DolphinTool: Use EXIT_SUCCESS and EXIT_FAILURE 2023-06-16 21:00:10 -05:00
get
25c020cbe2 DolphinTool: Ditch OOP design 2023-06-16 20:39:16 -05:00
Admiral H. Curtiss
98b5d72ef1
Merge pull request #11951 from Minty-Meeo/dolphin-tool-code-review-1
DolphinTool: Sensible changes
2023-06-17 03:03:26 +02:00
get
31e78c40a1 DolphinTool: Sensible changes 2023-06-16 18:28:03 -05:00
Admiral H. Curtiss
cbcf5bfac1
Merge pull request #11889 from Filoppi/patch-18
Fix video output having small black borders all the times
2023-06-16 17:59:51 +02:00
Admiral H. Curtiss
50301bf1d1
Merge pull request #11957 from lioncash/resource
UICommon/ResourcePack: Allow priority helpers to take arguments by const reference
2023-06-16 17:01:19 +02:00
Lioncash
653d6d059f UICommon/ResourcePack: Allow priority helpers to take arguments by const reference
There's nothing going on with behavior here that would prevent these
from being const qualified.

Also better communicates that this function isn't intended to modify the
given resource pack.
2023-06-16 10:20:50 -04:00
Admiral H. Curtiss
f5eea4a957
Merge pull request #11834 from Dentomologist/xemitter_use_pseudonamed_parameter_force5bytes
XEmitter: Add enum class Force5Bytes
2023-06-16 15:46:36 +02:00
JosJuice
9c13436e2b JitArm64: Improve instruction scheduling in fres routine
We want to have a low number of instructions between the LDP and the
MADD so that the MADD can start immediately after the LDP finishes
even if we're on a lower-end in-order CPU.
2023-06-15 22:02:39 +02:00
JMC47
f0f8225ff8
Merge pull request #11424 from Pokechu22/jit-imm-loadstore-update
Jit64: Attempt to fix updating stores with an immediate value
2023-06-15 11:32:30 -04:00
TellowKrinkle
5b10a80401 CMake: Use targets for all optionally-external dependencies 2023-06-15 01:41:41 -05:00
JosJuice
5b5124d9ff JitArm64: Use immediates more in fres routine
Not sure why I didn't do this to begin with. Maybe I was under the
impression that the most significant bit of a 12-bit immediate was a
sign bit.
2023-06-14 23:27:58 +02:00
Admiral H. Curtiss
bd125733f0
Merge pull request #11946 from Dentomologist/convert_fromwhichroot_to_enum_class
Common: Convert FromWhichRoot to enum class
2023-06-14 13:29:07 +02:00
Admiral H. Curtiss
88ff00a05c
Merge pull request #11942 from Dentomologist/convert_controlleremu_translatability_to_enum_class
ControllerEmu: Convert Translatability to enum class
2023-06-14 13:27:47 +02:00
Dentomologist
7ff7c9e84f Common: Convert FromWhichRoot to enum class 2023-06-13 13:25:22 -07:00
Lioncash
708c986693 PPCCache: Remove redundant reinterpret_casts
The pointer is being passed to functions that take arguments as void*,
so we don't need to cast here.
2023-06-13 08:25:26 -04:00
Admiral H. Curtiss
6d16a09707
Merge pull request #11941 from Dentomologist/convert_blockingloop_stopmode_to_enum_class
Common: Convert BlockingLoop::StopMode to enum class
2023-06-13 11:47:20 +02:00
Admiral H. Curtiss
74c0519c54
Merge pull request #11930 from iwubcode/game_texture_validation
VideoCommon: don't reject game textures which have the wrong size
2023-06-13 11:43:35 +02:00
iwubcode
3e27fc7c0b VideoCommon: don't treat incorrect aspect ratio or sizes that aren't a multiple of native textures as an error 2023-06-12 21:19:29 -05:00
Dentomologist
527f8e783c ControllerEmu: Convert Translatability to enum class 2023-06-12 18:11:04 -07:00
Dentomologist
3c80f821c0 Common: Convert BlockingLoop::StopMode to enum class 2023-06-12 17:12:25 -07:00
Admiral H. Curtiss
63090d411d
Merge pull request #11940 from lioncash/debugiface
Common: Move DebugInterface.h into Core
2023-06-13 01:59:33 +02:00
JosJuice
f11175d117 Revert "Android: Temporarily disable host thread check"
This reverts commit 361171fce0.
2023-06-12 23:39:42 +02:00
Dentomologist
4c2759f541 XEmitter: Add enum class Jump
Replace the bool parameter force5bytes in J, JMP, and J_CC with an enum
class Jump::Short/Near. Many callers set that parameter to the literal
'true', which was unclear if you didn't already know what it did.
2023-06-12 13:04:18 -07:00
JMC47
c8559a7933
Merge pull request #11863 from Minty-Meeo/nkit-extract
Remove NKit data when extracting a GCN/Wii disc volume
2023-06-12 15:37:02 -04:00
Admiral H. Curtiss
635bce2e7b
Merge pull request #11939 from lioncash/condition
BreakpointDialog: Mark breakpoint help text as translatable
2023-06-12 20:13:07 +02:00
Admiral H. Curtiss
b4d161ff29
Merge pull request #11938 from lioncash/inits
ParallelProgressDialog: Initialize all data members
2023-06-12 20:07:57 +02:00
Admiral H. Curtiss
b3f4006bb7
Merge pull request #11937 from lioncash/sky
SkylanderPortalWindow: Detranslate unnecessary strings
2023-06-12 20:07:37 +02:00
Lioncash
41df38cb7c Common: Move DebugInterface.h into Core
The base DebugInterface now depends on the Core's CPUThreadGuard, and
utilities in Common shouldn't be depending on Core facilities. So, we
can move this into the core library instead.
2023-06-12 10:35:31 -04:00
Lioncash
6e9afd9a73 BreakpointDialog: Mark breakpoint help text as translatable
We already mark the title of the dialog box as translatable, so it
would be a bit odd to not mark the containing text as translatable too.
2023-06-12 09:50:17 -04:00
Lioncash
9c0cd5c81a ParallelProgressDialog: Mark WasCanceled() as const
This doesn't alter any class state.
2023-06-12 09:38:10 -04:00
Lioncash
b70894b950 ParallelProgressDialog: Initialize all data members
Ensures we always have a deterministic state.
2023-06-12 09:36:51 -04:00
Lioncash
001fe6ff61 SkylanderPortalWindow: Detranslate unnecessary strings
This doesn't need to be handled by translators, since they're not
user-displayed text or just don't need to be translated.

While we're at it, we don't need to copy each entry of the resulting
list.
2023-06-12 09:26:16 -04:00
Lioncash
cbd2a720bb InfinityBaseWindow: Remove unnecessary system instance accessor
GetFigureList() is a static member function, so we can just call it
directly instead of going through the system instance.
2023-06-12 09:02:20 -04:00
OatmealDome
1a0a1e8f12
Merge pull request #10976 from TellowKrinkle/StackFrames
Improve stack frames for profilers
2023-06-12 05:00:08 +02:00
TellowKrinkle
fc53dca7bd Qt: Send SizeChanged on DPI changes 2023-06-11 20:05:27 -05:00
TellowKrinkle
d3110b9521 VideoCommon: Update imgui scale when dpi changes 2023-06-11 20:05:27 -05:00
Robin Kertels
23bebc5270
VideoBackends:Vulkan: Allow loading custom drivers on Android
... using libadrenotools
2023-06-11 13:52:34 +02:00
TellowKrinkle
28ed1f8be1 Common:AGL: Support making temporary contexts from the main thread
- Don't crash when making contexts from the main thread
- Don't focus the window when making a context
2023-06-10 14:25:45 -05:00
OatmealDome
7752e247f7
Merge pull request #11911 from TellowKrinkle/MTLParallelCompilation
VideoBackends:Metal: Enable shouldMaximizeConcurrentCompilation when available
2023-06-10 19:39:24 +02:00
Filoppi
03ec86f248
Qt: Add float config tooltip slider 2023-06-09 22:07:12 +02:00
JosJuice
061ec365a8 PPCAnalyst: Reduce number of iterations in ReorderInstructionsCore
We can utilize the fact that if swapping two instructions causes another
swap to become possible, that swap involves one of the two instructions
we just swapped. There's need to search for new swap opportunities as
far back as the beginning of the block; we can just go one step back.
2023-06-09 19:45:51 +02:00
Admiral H. Curtiss
8f51a9d2d8
Merge pull request #11699 from Pokechu22/gl-check-maximum-samples
OpenGL: Check the list of supported AA modes instead of hardcoding
2023-06-09 15:07:07 +02:00
Admiral H. Curtiss
092773ad0c
Merge pull request #11859 from iwubcode/backend-multi-output
VideoBackends: add support to allow rendering to multiple output targets
2023-06-09 13:40:21 +02:00
Pokechu22
ac48b2eea4 EnhancementsWidget: Handle gaps in AA mode list
Mesa (llvmpipe) only reports 4x MSAA, and doesn't report 2x (or 1x, but we implicitly add that). The old logic did not handle this correctly, causing selecting 4x to fail and fall back to None.

This also removes VideoUtils::GetAvailableAntialiasingModes, and thus VideoUtils entirely, as its only other function was removed in 1f74653501.
2023-06-08 22:07:41 -07:00
Pokechu22
b246a634d4 OpenGL: Check the list of supported AA modes instead of hardcoding 2023-06-08 22:07:41 -07:00
Pokechu22
c63f0f37cd VideoCommon: Pass WindowSystemInfo to InitBackendInfo 2023-06-08 22:07:39 -07:00
iwubcode
afa498fa2f VideoCommon: update DirectFilesystemAssetLibrary to not throw exceptions when a file no longer exists 2023-06-08 22:20:52 -05:00
iwubcode
429b2eca8a VideoCommon: add logging for loading texture assets 2023-06-08 19:48:45 -05:00
TellowKrinkle
e7f4b7679b VideoBackends:Metal: Enable shouldMaximizeConcurrentCompilation when available 2023-06-08 18:57:41 -05:00
Admiral H. Curtiss
7845fb00ee
Merge pull request #11681 from iwubcode/asset_management
VideoCommon: migrate texture packs to use the asset loader system
2023-06-08 22:21:12 +02:00
JosJuice
f561bd4285
Merge pull request #11910 from lioncash/construct
PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr
2023-06-08 21:26:07 +02:00
Admiral H. Curtiss
0d07ebab25
Merge pull request #11908 from lioncash/strcopy
Debugger: Remove some trivial string copies
2023-06-08 20:54:21 +02:00
Admiral H. Curtiss
e8c87dc4fd
Merge pull request #11902 from Minty-Meeo/regex-best-practices
static const std::regex
2023-06-08 20:52:11 +02:00
Admiral H. Curtiss
e3cae72c18
Merge pull request #11909 from lioncash/spans
GCMemcardUtils: Make use of std::span where applicable
2023-06-08 20:46:08 +02:00
Lioncash
09271f365a PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr
This allows the compiler to eliminate a static constructor that
initializes the table, and instead precompute all of the data ahead of
time.

e.g. We get something like so on GCC without constexpr:

_GLOBAL__sub_I_PowerPC::ConditionRegister::s_crTable:
        movdqa  xmm0, XMMWORD PTR .LC0[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip], xmm0
        movdqa  xmm0, XMMWORD PTR .LC1[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+16], xmm0
        movdqa  xmm0, XMMWORD PTR .LC2[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+32], xmm0
        movdqa  xmm0, XMMWORD PTR .LC3[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+48], xmm0
        movdqa  xmm0, XMMWORD PTR .LC4[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+64], xmm0
        movdqa  xmm0, XMMWORD PTR .LC5[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+80], xmm0
        movdqa  xmm0, XMMWORD PTR .LC6[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+96], xmm0
        movdqa  xmm0, XMMWORD PTR .LC7[rip]
        movaps  XMMWORD PTR PowerPC::ConditionRegister::s_crTable[rip+112], xmm0
        ret
PowerPC::ConditionRegister::s_crTable:
        .zero   128
.LC0:
        .quad   -9223372032559808511
        .quad   -8646911280256385023
.LC1:
        .quad   -9223372032559808512
        .quad   -8646911280256385024
.LC2:
        .quad   4294967297
        .quad   576460756598390785
.LC3:
        .quad   4294967296
        .quad   576460756598390784
.LC4:
        .quad   -4611686014132420607
        .quad   -4035225261828997119
.LC5:
        .quad   -4611686014132420608
        .quad   -4035225261828997120
.LC6:
        .quad   4611686022722355201
        .quad   5188146775025778689
.LC7:
        .quad   4611686022722355200
        .quad   5188146775025778688

and with constexpr, this all get collapsed into:

PowerPC::ConditionRegister::s_crTable:
        .quad   -9223372032559808511
        .quad   -8646911280256385023
        .quad   -9223372032559808512
        .quad   -8646911280256385024
        .quad   4294967297
        .quad   576460756598390785
        .quad   4294967296
        .quad   576460756598390784
        .quad   -4611686014132420607
        .quad   -4035225261828997119
        .quad   -4611686014132420608
        .quad   -4035225261828997120
        .quad   4611686022722355201
        .quad   5188146775025778689
        .quad   4611686022722355200
        .quad   5188146775025778688

completely eliminating the static constructor. MSVC also exhibits this,
whereas clang is a little better and does this anyway, even without
constexpr.
2023-06-08 14:33:13 -04:00
Lioncash
349add0f81 GCMemcardManager: Shorten-up EnumMap definitions
We can make a small alias that gets rid of the need to repeat the long
constant.
2023-06-08 13:05:13 -04:00
Lioncash
1044bc40ca GCMemcardUtils: Make use of std::span where applicable
Generifies bits of the interface so that some functions aren't
explicitly tied down to only using std::vector.
2023-06-08 12:59:43 -04:00
Lioncash
fae5ca39ad InfinityBaseWindow: Move core headers into cpp file
Restricts the headers to the cpp file where they're needed and prevents
the headers from "leaking" into other translation units.
2023-06-08 12:39:10 -04:00
Lioncash
2b0a9477d0 MemoryViewWidget: Use QStringView with ConvertTextToBytes
Allows for avoiding string copies. While we're at it, we can also mark
ConvertTextToBytes as const.
2023-06-08 12:01:59 -04:00
Lioncash
cfd25f1d7c CodeDiffDialog: Construct Diff instance in CalculateSymbolsFromProfile() when necessary
We can move the construction of the Diff instance into the body of the
if statement, so that we only construct this if the condition is true.

While we're at it, we can move the symbol description string into the
instance, getting rid of a copy. The function itself can also be const
qualified.
2023-06-08 11:55:57 -04:00
Lioncash
496aea54c0 CodeDiffDialog: Pass QString by const reference to create_item
Avoids churning string copies when updating
2023-06-08 11:48:09 -04:00
Lioncash
c99b0f2eb8 BreakpointWidget: Pass QString by const reference to create_item
Avoids churning string copies when performing updates.
2023-06-08 11:46:16 -04:00
Lioncash
867e7d259d BreakpointDialog: Pass QString by const reference to invalid_input
Gets rid of redundant copying.
2023-06-08 11:45:14 -04:00
Lioncash
d092381d25 InfinityBaseWindow: Collapse lambda into direct member pointer
The parameters to this match the requirements of the toggled() function
exactly, so we can pass the function directly into the connect call.
2023-06-08 11:01:34 -04:00
Lioncash
1f874be36e InfinityBaseWindow: Remove redundant string copies
tr() already returns a QString, so we don't need to construct a QString
around it, and FindFigure() already returns a std::string.
2023-06-08 11:01:29 -04:00
Lioncash
d35be7ce40 InfinityBaseWindow: Add missing header guard
Prevents potential inclusion issues.
2023-06-08 10:49:09 -04:00
get
1df482d51f Prefer static const std::regex
std::regex has a relatively expensive constructor, and these are unchanging regexes.
2023-06-08 09:39:23 -05:00
Admiral H. Curtiss
78f5c5f8d2
Merge pull request #11899 from Filoppi/patch-20
Video: Fix Post Process shader options issues
2023-06-08 16:12:49 +02:00
Admiral H. Curtiss
3dbdf0472d
Merge pull request #11901 from Filoppi/add_texture_types
Video: add R10B10G10A2 and R16G16B16A16F texture types
2023-06-08 15:28:15 +02:00
Admiral H. Curtiss
e4636ad0a2
Merge pull request #11898 from Filoppi/patch-19
Video: Fix crash when getting the AA modes
2023-06-08 15:26:40 +02:00
Admiral H. Curtiss
65135190d4
Merge pull request #11897 from JosJuice/spurious-two-analog
InputCommon: Don't treat two analog inputs as a spurious trigger combo
2023-06-08 14:28:53 +02:00
Filoppi
cdc53c046b Video: add R10B10G10A2 and R16G16B16A16F texture types (needed by PR 11850) 2023-06-08 03:17:20 +03:00
Filippo Tarpini
c9e61a79b7
Video: Fix Post Process shader options issues
-An assert would be erroneously thrown when shaders declared an array of 4 int or float options, despite 4 being the max supported (a simple <= / < mistake)
-When changing the type of a shader option (e.g. from bool to float), the serialization would be stuck appending the value from the previous option type, making the shader fail to build permanently until the cache were cleaned
2023-06-08 02:54:46 +03:00
Filippo Tarpini
80d12e3e88
Video: Fix crash when getting the AA modes
DX12 would often crash when starting and stopping the emulation many times, due to the device enumerator failing for some reason. Checking for success fixes it.
2023-06-08 02:46:08 +03:00
iwubcode
e831d7b6bb InputCommon / VideoCommon: remove dynamic input reloading the texture cache, this is no longer needed, assets reload automatically! 2023-06-07 18:30:10 -05:00
iwubcode
ca8d6748d6 VideoCommon: introduce linked assets in TCacheEntry, allowing for assets to be reloaded 2023-06-07 18:30:10 -05:00
Minty-Meeo
e92f8fcbb4 Remove old GCC version workarounds
The minimum GCC version is now GCC 10.
2023-06-06 22:49:53 -05:00
Mai
bab3229c98
Merge pull request #11874 from AdmiralCurtiss/vi-clock-bounds
VI: Prevent out-of-bounds access when clock register is a nonstandard value.
2023-06-06 20:31:42 -04:00
JosJuice
71ac6ec239 InputCommon: Don't treat two analog inputs as a spurious trigger combo
I've received a report from an Android user with a gamepad (a "BSP-D3")
where one physical trigger is controlling two analog axes at the same
time. This was causing RemoveSpuriousTriggerCombinations to delete both
axes, which is clearly not a desireable outcome.

With this change, now the axis with the greatest smoothness is kept,
or both in case they have the same smoothness.
2023-06-06 22:07:14 +02:00
Admiral H. Curtiss
a7678f3210
Merge pull request #11694 from jnaidu360/skylanders-portal-window
Skylanders Portal Menu Navigational Improvements
2023-06-06 19:20:39 +02:00
Admiral H. Curtiss
afc97ec20f
Merge pull request #11895 from JosJuice/android-no-host-check
Android: Temporarily disable host thread check
2023-06-06 18:56:41 +02:00
JosJuice
361171fce0 Android: Temporarily disable host thread check
Very broken. Will investigate, but let's revert it for the time being.
2023-06-06 18:39:32 +02:00
Admiral H. Curtiss
e1a986b270
Merge pull request #11893 from JosJuice/dual-core-exit-assert
Core: Declare emu thread as CPU thread while shutting down
2023-06-06 18:36:51 +02:00
Admiral H. Curtiss
38b033a476
Merge pull request #11762 from jbosboom/xinput2-raw-event-query
Xinput2: use raw events and queries
2023-06-06 18:14:51 +02:00
JosJuice
6bd5473d56 Core: Declare emu thread as CPU thread while shutting down
Fixes https://bugs.dolphin-emu.org/issues/13274.
2023-06-06 18:04:21 +02:00
JosJuice
2d56daf1bb
Merge pull request #11873 from AdmiralCurtiss/pause-and-lock-host
Core: Assert that only the Host thread may call PauseAndLock().
2023-06-06 13:50:20 +02:00
Admiral H. Curtiss
3d4b4cfdc6
Merge pull request #11872 from LillyJadeKatrin/retroachievements-bugfix
RetroAchievements Bugfix: Fixed Missing DoFrame Call
2023-06-05 23:42:11 +02:00
iwubcode
f1f1ecc9d1 Core / VideoCommon: update HiresTexture to use CustomAssetLoader 2023-06-05 16:33:19 -05:00
iwubcode
5738646e3e Core: add CustomAssetLoader to System 2023-06-05 16:33:19 -05:00
iwubcode
9d7ab47738 VideoCommon: add additional locks around asset access and usage to ensure thread safety 2023-06-05 16:19:46 -05:00
jnaidu360
66f4902a1e Improved Skylanders Portal Window Navigation
Adds features to improve navigation of Skylanders portal menu, includes:
-List of Skylanders and filters for searching
-Improved buttons for faster loading options
-Added default user folder for storing .sky files
2023-06-04 18:10:08 -07:00
Shawn Hoffman
c1580ebf30 msvc: workaround optimizer bug 2023-06-04 10:57:22 -07:00
Filippo Tarpini
adf4089276
Fix video output having small black borders all the times
To maintain compatibility with some video encoders, the whole output buffer was scaled to be a multiple of 4.
This change makes it so that that rule only applies while actively recording (or taking screenshots, even if it might not be necessary for that case).
2023-06-04 18:03:57 +03:00
iwubcode
8c3dc5b0d6 VideoCommon: update pipeline version for RenderState change 2023-06-03 14:52:31 -05:00
iwubcode
834f8f7b5c VideoBackends: add support to allow rendering to multiple output textures 2023-06-03 14:52:31 -05:00
iwubcode
9b9dc6dc5d VideoCommon: fix minor issue in C++ template 2023-06-03 12:47:12 -05:00
Admiral H. Curtiss
80bf175c48
Merge pull request #11879 from iwubcode/texture_data_load_nolevels
VideoCommon: avoid segfault when loading a PNG with no custom texture data levels
2023-06-03 19:35:48 +02:00
iwubcode
47c40d51df VideoCommon: when loading a PNG with no custom texture data levels already, create a level, this avoids a potential segfault 2023-06-03 12:19:30 -05:00
LillyJadeKatrin
e2d0ff718c Fixed Missing DoFrame Call
Somewhere in the process of getting the memory peeking right for achievements, the AchievementManager call to DoFrame went missing. This restores it properly.
2023-06-03 09:15:41 -04:00
LillyJadeKatrin
32f7873ee6 Added missing Leaderboard Canceled event 2023-06-03 09:15:41 -04:00
LillyJadeKatrin
60350635b6 Fixed Rich Presence bugs
Refactored the Rich Presence two-minute trigger to clean it up and fix it.
2023-06-03 09:15:40 -04:00
Admiral H. Curtiss
0b3d28abaf
Merge pull request #11586 from JosJuice/unknown-opcode-msg
VideoCommon: Reword the unknown opcode error message
2023-06-03 12:53:33 +02:00
iwubcode
58d383b30b VideoCommon: prevent potential data issue when reloading Asset data that could happen due to the asset loading thread reloading data while another thread is working with it 2023-06-03 00:13:06 -05:00
Admiral H. Curtiss
d03e09c8fd
Merge pull request #11877 from iwubcode/asset_library_loader
VideoCommon: add multithreaded asset loader and define a texture asset
2023-06-03 01:11:41 +02:00
Admiral H. Curtiss
4c9210b439
Merge pull request #11527 from Hibyehello/MacOSPlatform
NoGUI: Create MacOS platform
2023-06-03 01:11:32 +02:00
iwubcode
c93940c6ee VideoCommon: add multithreaded asset loader and define a texture asset 2023-06-02 17:31:31 -05:00
iwubcode
07307edd49 VideoCommon: add an asset library that loads directly from the filesystem 2023-06-02 14:49:22 -05:00
iwubcode
e028d2ead0 VideoCommon: move custom texture data to assets 2023-06-02 14:07:42 -05:00
Admiral H. Curtiss
45a21ef83f
Merge pull request #11871 from iwubcode/custom-assets
VideoCommon: add custom asset implementation and asset library
2023-06-02 20:58:08 +02:00
Admiral H. Curtiss
ca484c7a65
Merge pull request #11609 from AdmiralCurtiss/sd-size-select
Add SD card size option for converting folder -> file.
2023-06-02 20:52:08 +02:00
Admiral H. Curtiss
10061aa22c
VI: Prevent out-of-bounds access when clock register is a nonstandard value. 2023-06-02 20:06:07 +02:00
Admiral H. Curtiss
b3c9f49cbe
Core: Assert that only the Host thread may call PauseAndLock(). 2023-06-02 18:51:43 +02:00
get
ee19ff66b4 Remove NKit data when extracting a GCN/Wii disc volume 2023-06-02 01:11:50 -05:00
OatmealDome
7bbd530eb5
Merge pull request #11854 from TellowKrinkle/AMDFix
VideoBackends:Metal: Allocate bounding box uploads on a cpu buffer
2023-06-02 06:17:44 +02:00
iwubcode
b2c5a5485a VideoCommon: add custom asset implementation and asset library that can load an asset 2023-06-01 19:57:57 -05:00
Admiral H. Curtiss
6302cea22c
Merge pull request #11849 from LillyJadeKatrin/retroachievements-dialog
Retroachievements dialog
2023-06-02 02:09:08 +02:00
LillyJadeKatrin
df38573ff6
Added AchievementSettingsWidget
AchievementSettingsWidget is a dialog widget in AchievementsWindow for handling RetroAchievements settings in the user interface. This class contains the physical layout, widget connections, load/save functions and button responses. AchievementsWindow now has a tabbed list that this is inserted into; other tabs will be in a later pull request.
2023-06-02 01:53:19 +02:00
LillyJadeKatrin
e1e662b86a Added AchievementsWindow QDialog
AchievementsWindow is the dialog box that will eventually contain the settings and progress data for RetroAchievements on Dolphin. This adds the barebones dialog, and connects it to MainWindow's MenuBar.
2023-06-01 18:12:20 -04:00
Admiral H. Curtiss
fee28e26a1
Merge pull request #11869 from dvessel/texdump-compression
Add compression option for texture dumps.
2023-06-01 22:37:08 +02:00
joon
db712772b7 Add compression option for texture dumps.
Enable through command line options:
-C Graphics.Settings.TexturePNGCompressionLevel=[0-9]

Or from GFX.ini:
[Settings]
TexturePNGCompressionLevel=[0-9]

@see #10792
2023-06-01 16:01:11 -04:00
Filippo Tarpini
3f22e9849b
Qt: Fix some Post Process Configuration Widget issues 2
Same fix as https://github.com/dolphin-emu/dolphin/pull/11846 but applied to int sliders instead of float ones
2023-06-01 21:38:38 +02:00
Hibyehello
8324a85339 Add MacOS Platform
Use MacOS Standard Fullscreen hotkey
2023-06-01 09:01:20 -05:00
JosJuice
6743ca8e09
Merge pull request #11861 from shuffle2/qt
Revert "Revert "DolphinQt: use default dpi rounding mode (passthrough)""
2023-05-30 20:33:20 +02:00
iwubcode
0afb8c247f VideoCommon: check whether action was successfully created before adding targets for a graphics mod 2023-05-30 09:32:59 -05:00
iwubcode
bbf3efb17d VideoCommon: fix bug in GraphicsModManager where a separate action was being created for each target 2023-05-29 23:08:35 -05:00
Shawn Hoffman
ca49f49037 Revert "Revert "DolphinQt: use default dpi rounding mode (passthrough)""
This reverts commit 20e14aab06.
2023-05-29 11:47:29 -07:00
Admiral H. Curtiss
da77084d2f
Merge pull request #11819 from JosJuice/android-input-device-null
ControllerInterface/Android: Use InputEvent.getDeviceId
2023-05-29 19:27:30 +02:00
LillyJadeKatrin
82ff6fb0b7 Fix RetroAchievements Login Crash
Fixing a bug with the RetroAchievements integration where certain combinations of configurations would result in a malformed API request and an attempt to dereference the null response.
2023-05-28 20:53:03 -04:00
TellowKrinkle
0ee12b6164 VideoBackends:Metal: Allocate bounding box uploads on a cpu buffer
AMD Metal drivers have a goofy bug where the bbox buffer stops being coherent with the cpu if you copy to it from a private (gpu) buffer and don't do anything else with it in that command buffer.
2023-05-28 17:08:08 -05:00
Admiral H. Curtiss
4dc4b28db4
Merge pull request #11845 from jnaidu360/skylanders-portal-hotkey
Add hotkey to open Skylanders and Infinity Menus
2023-05-28 23:27:41 +02:00
Charles Lombardo
55b9794e4b
Merge pull request #11808 from deReeperJosh/disneyinfinitybaseandroid
Android: Infinity Base UI
2023-05-28 17:09:31 -04:00
Admiral H. Curtiss
afbc604f42
Merge pull request #11839 from LillyJadeKatrin/retroachievements-popups
Retroachievements popups
2023-05-28 17:17:11 +02:00
Joshua de Reeper
2c98efaa5c Infinity Base: Figure Name Fix 2023-05-28 19:01:21 +12:00
Admiral H. Curtiss
6d9529a68d
Merge pull request #11844 from shuffle2/qt6.5.1
windows: update to qt 6.5.1
2023-05-27 22:33:01 +02:00
Shawn Hoffman
1a8634fafc windows: update to qt 6.5.1 2023-05-26 15:37:55 -07:00
jnaidu360
5eb1669573 Add Hotkeys for Skylanders Portal and Infinity Base Menus
Adds two new hotkeys to open the menus for emulated USB devices- Skylanders Portal of Power and the Infinity Base. (Hotkeys only active when game is running).

Portal menu: Default is <Ctrl+P>.
Infinity base: Default is <Ctrl+I>
2023-05-26 13:36:08 -07:00
Filoppi
aeff66d373 Qt: Fix some Post Process Configuration Widget issues:
-The float sliders initial value wasn't calculated correctly
-Fix the checkbox dependencies not being applied until a setting was changed for the first time
2023-05-26 03:50:51 +03:00
LillyJadeKatrin
57290a45e8 Added Notification Popups for Game Mastery
Added OnScreenDisplay messages to HandleAchievementTriggeredEvent to display an extra congratulations message if the player has completed (unlocked all achievements in casual) or mastered (unlocked all achievements in challenge) the game. This also uses the display name retrieved when verifying credentials, which has now been added as a member field on AchievementManager.
2023-05-23 23:23:18 -04:00
LillyJadeKatrin
1841089054 Added Notification Popups for Game Start
Added an OnScreenDisplay message to LoadGameByFilenameAsync to display a message when a player starts a game with achievements, notifying them of their current score. The score displayed is challenge points if the player is in challenge mode or challenge + casual if the player is in casual mode. A second message tells the player which mode they are in. To match RetroAchievements' website interface, the messages are blue for casual and gold for challenge.
2023-05-23 23:22:22 -04:00
LillyJadeKatrin
aa0224a8ab Added TallyScore method to AchievementManager
Added a TallyScore method to AchievementManager to calculate the player's current scores (soft and hard) against the total number of points across all achievements. Includes a PointSpread structure to hold all points and counts. The Unlock Map now includes point values for each achievement to aid in this calculation; this is populated at insert time, and Unofficial achievements are tallied as zero.
2023-05-23 23:22:22 -04:00
LillyJadeKatrin
22af13f9e0 Added Notification Popups for No Achievement Data
Added OnScreenDisplay messages to LoadGameByFilenameAsync to notify the player when any of the potential failures occur.
2023-05-23 23:22:21 -04:00
LillyJadeKatrin
b0eb4ccb80 Added Notification Popup for Leaderboard Canceled
Added HandleLeaderboardStartedEvent with an OnScreenDisplay message when a player has triggered a leaderboard's failure conditions. The message includes the title of the achievement.
2023-05-23 23:22:21 -04:00
LillyJadeKatrin
a4b7f43f21 Added Notification Popup for Leaderboard Started
Added HandleLeaderboardStartedEvent with an OnScreenDisplay message when a player has triggered a leaderboard's start conditions. The message includes the title of the achievement.
2023-05-23 23:22:21 -04:00
LillyJadeKatrin
c20d0ae9e1 Added Notification Popup for Leaderboard Scored
Added an OnScreenDisplay message to HandleLeaderboardTriggeredEvent to display a message when a player has completed a leaderboard. The message includes the title of the achievement and the player's score/time.
2023-05-23 23:22:20 -04:00
LillyJadeKatrin
a7b09413f9 Added Notification Popup for Achievement Unlocked
Added an OnScreenDisplay message to HandleAchievementTriggeredEvent to display a message when a player has unlocked an achievement. The message includes the title of the achievement and its point value based on the game data. To match RetroAchievements' website interface, the message is blue if the unlock is casual and gold for challenge.
2023-05-23 23:22:14 -04:00
Franz-Josef Haider
8943a9a369 Jit: Add missing call to InitBLROptimization for extra performance 2023-05-23 23:49:29 +03:00
Franz-Josef Haider
68aab70c75 Jit: Fix block map fallback in Arm64 case. 2023-05-23 23:20:08 +03:00
Admiral H. Curtiss
60cb88d379
Merge pull request #11838 from brad0/discordpresence_warning_fix
Fix s_using_custom_client warning with DiscordPresence
2023-05-23 20:59:21 +02:00
Admiral H. Curtiss
df06ae2257
Merge pull request #11837 from brad0/aes_silence_warning
Silence AES warning
2023-05-23 09:20:38 +02:00
Brad Smith
cf06da8fea Fix s_using_custom_client warning with DiscordPresence
/home/ports/pobj/dolphin-5.0.0.20230429/dolphin-5.0.0.20230429/Source/Core/UICommon/DiscordPresence.cpp:27:13: warning: unused variable 's_using_custom_client' [-Wunused-variable]
static bool s_using_custom_client = false;
            ^
2023-05-23 00:07:06 -04:00
Brad Smith
49afa23f95 Silence AES warning
This warning came about after 46ad8b9d68

In file included from /home/ports/pobj/dolphin-5.0.0.20230429/dolphin-5.0.0.20230429/Source/Core/Core/IOS/WFS/WFSI.cpp:4:
/home/ports/pobj/dolphin-5.0.0.20230429/dolphin-5.0.0.20230429/Source/Core/Core/IOS/WFS/WFSI.h:54:6: warning: private field 'm_aes_key' is not used [-Wunused-private-field]
  u8 m_aes_key[0x10] = {};
     ^
2023-05-22 23:34:19 -04:00
Brad Smith
7d26f4ff8e Fix for Socket header for OpenBSD 2023-05-22 23:07:33 -04:00
Admiral H. Curtiss
68c3b1fb7d
Merge pull request #11830 from shuffle2/vs17.6
update to VS 17.6
2023-05-23 00:37:01 +02:00
Admiral H. Curtiss
8fd61d0b54
Merge pull request #11737 from krnlyng/block_map
Jit: Improve block lookup performance through a shm memory segment.
2023-05-21 04:48:23 +02:00
Admiral H. Curtiss
ef95d942e1
Merge pull request #11763 from LillyJadeKatrin/retroachievements-memory-events
RetroAchievements Memory, Events, and Awarding
2023-05-21 03:20:34 +02:00
OatmealDome
b7389bc7bc DolphinQt: Adjust variable name for Qt root directory in steamrt builds 2023-05-20 20:32:43 -04:00
Floogle
5c1c22bab9 Traversal: Notify user of TTL to be used 2023-05-20 17:15:10 +02:00
Floogle
4f11b0d4c9 Traversal: Autoconfigure TTL to use for probe packet 2023-05-20 17:15:07 +02:00
Franz-Josef Haider
859da32a6c Jit: Improve block lookup performance through a shm memory segment.
By using a shm memory segment for the fast_block_map that is sparsely
allocated (i.e. on write by the OS) instead of a statically allocated
array we can make the block lookup faster by:
* Having a bigger space available for lookup that doesn't take up
  too much memory, because the OS will only allocate the needed
  pages when written to.
* Decrease the time spent to lookup a block in the assembly dispatcher
  due to less comparisions and shorter code (for example the pc check
  has been entirely dropped since only the msrBits need to be validated).

When the JIT block cache is full the shm segment will also be released
and reallocated to avoid allocating too much memory. It will also be
reset when the instruction cache is flushed by the PPC code to avoid
having stale entries.

Also fallback to the original method in case the memory segment couldn't
be allocated.
2023-05-20 16:26:55 +03:00
Jeffrey Bosboom
620955d397 XInput2: Listen to master devices only
A comment removed by this commit gives two reasons for listening to
slave devices, both of which no longer apply:

- "Only slaves emit raw motion events": perhaps this was true when the
comment was written, but now master devices provide raw motion events
along with the other raw events.

- "Selecting slave keyboards avoids dealing with key focus": we get raw
key events regardless of the focus.

Listening to both master and slave devices results in duplicate raw
events.  For button and key events, that's a tiny waste of time setting
the update flag a second time, but for raw mouse events the raw motion
will be processed twice.  That makes this commit a user-facing change.
2023-05-19 14:20:10 -07:00
Jeffrey Bosboom
b2a98c41ee XInput2: Use raw events and queries for buttons and keys
In X, the ButtonPress events generated when a mouse button is pressed
have a special property: if they don't activate an existing passive
grab, the X server automatically activates the "implicit passive grab"
on behalf of the client the event is delivered to.  This ensures the
ButtonRelease event is delivered to the same client even if the pointer
moves between windows, but it also causes all events from that pointer
to be delivered exclusively to that client.  As a consequence of the
implicit passive grab, for each window, only one client can listen for
ButtonPress events; any further listeners would never receive the event.

XInput 1 made the implicit grab optional and explicit by allowing
clients to listen for DeviceButtonPress events without
DeviceButtonPressGrab events.  XInput 2 does not have a separate grab
event class, but multiple clients can listen for XI_ButtonPress on the
same window.  When a button is pressed, the X server first tries to
deliver an XI_ButtonPress event; if no clients want it, then the server
tries to deliver a DeviceButtonPress event; if no clients want it, then
the server tries to deliver a ButtonPress event.  Once an event has been
delivered, event processing stops and earlier protocol levels are not
considered.  The reason for this rule is not obviously documented, but
it is probably because of the implicit passive grab; a client receiving
a ButtonPress event assumes it is the only client receiving that event,
and later protocols maintain that property for backward compatibility.

Before this commit, Dolphin listened for XI_ButtonPress events on the
root window.  This interferes with window managers that expect to
receive ButtonPress events on the root window, such as awesome and
Openbox.  In Openbox, applications are often launched from a menu
activated by clicking on the root window, and desktops are switched by
scroll wheel input on the root window.  This makes normal use of other
applications difficult when Dolphin is open (though Openbox keyboard
shortcuts still work).  Conversely, Dolphin only receives XI_ButtonPress
events for clicks on the root window or window decorations (title bars),
not on Dolphin's windows' content or the render window.  In window
managers that use a "virtual root window" covering the actual root
window, such as Mutter running in X, Dolphin and the window manager do
not conflict, but clicks delivered to other applications using XInput2
(for testing, try xinput --test-xi2) are not seen by Dolphin, which is
relevant when background input is enabled.

This commit changes Dolphin to listen for XI_RawButtonPress (and the raw
versions of other events); Dolphin was already listening to XI_RawMotion
for raw mouse movement.  Raw events are always and exclusively delivered
to the root window and are delivered to every client listening for them,
so Dolphin will not interfere with (or be interfered with by) other
applications listening for events.

As part of being raw, button numbers and keycodes in raw events have not
had mapping applied.  If a left-handed user swapped the left and right
buttons on their mouse, raw events do not reflect that.  It is possible
to query the mappings for each device and apply them manually, but that
would require a fair amount of code, including listening for mapping
changes.

Instead, Dolphin now uses the events only to set a "changed" flag, then
queries the current button and key state after processing all events.
Dolphin was already querying the pointer to get its absolute position
and querying the keyboard to filter the key bitmap it created from
events; now Dolphin also uses the button state from the pointer query
and uses the keyboard query directly.

Queries have a performance cost because they are synchronous requests to
the X server (Dolphin waits for the result).  Commit 2b640a4f made the
pointer query conditional on receiving a motion event to "cut down on
round trips", but commit bbb12a75 added an unconditional keyboard query,
and there have apparently been no performance complaints.  This commit
queries the pointer slightly more often (on button events in addition to
motion), but only queries the keyboard after key events, so the total
rate of queries should be substantially reduced.

Fixes: https://bugs.dolphin-emu.org/issues/10668
2023-05-19 14:20:10 -07:00
Jeffrey Bosboom
46540ea42b XInput2: Request XInput 2.1
We need XInput 2.1 to get raw events on the root window even while
another client has a grab.  We currently use raw events for relative
mouse input, and upcoming commits will use raw events for buttons and
keys.
2023-05-19 14:20:09 -07:00
Jeffrey Bosboom
a902480cb0 XInput2: Make button state a u32
Because we care how many bits it has, not its arithmetic range.  No
functional change on all supported platforms.
2023-05-19 14:20:09 -07:00
Admiral H. Curtiss
4efa10c170
Merge pull request #11751 from noahpistilli/discord-rpc
UICommon/DiscordPresence: Use GameTDB covers for RPC
2023-05-19 19:35:17 +02:00
Admiral H. Curtiss
50fe493990
Merge pull request #11739 from OatmealDome/iokit-be-gone
InputCommon: Remove OSX (IOKit) input backend
2023-05-19 19:31:40 +02:00
Admiral H. Curtiss
279fcafdc3
Merge pull request #11758 from jbosboom/xinput2-client-pointer
XInput2: Accept input from keyboards other than the first master
2023-05-19 19:29:24 +02:00
Admiral H. Curtiss
86f1ef1e33
Merge pull request #11707 from TellowKrinkle/CMakeIconv
CMake: Use find_package and imported targets for Iconv
2023-05-19 19:27:16 +02:00
Admiral H. Curtiss
8342164dbd
Common/MemArena: Pass shared memory base file name to GrabSHMSegment(). 2023-05-19 18:53:08 +02:00
Admiral H. Curtiss
ff5bcba966
Common/MemArenaWin: Handle file mappings >= 4GB. 2023-05-19 18:44:32 +02:00
Admiral H. Curtiss
b0d7fa9eb1
Merge pull request #11823 from AdmiralCurtiss/mmap-android
Common/MemArenaAndroid: Keep fastmem region mapped.
2023-05-19 18:42:33 +02:00
JosJuice
11768e3dd3
Merge pull request #11829 from lioncash/strutil
Common/StringUtil: Move some utilities into the Common namespace
2023-05-17 09:13:36 +02:00
Shawn Hoffman
ac7003a1ac Revert "windows: temporarily hardcode VCToolsVersion to 14.34.31931.0"
This reverts commit 3961afdbb9.
2023-05-16 20:24:45 -07:00
Shawn Hoffman
519da43b0a Revert "workaround msvc optimizer bug"
This reverts commit 28956cc6c2.
2023-05-16 20:23:25 -07:00
Mai
fede2ab9a9
Merge pull request #11828 from JosJuice/wia-convert-comments
DiscIO: Improve comments in WIARVZFileReader::Convert
2023-05-16 14:39:59 -04:00
Lioncash
1a2b48c204 StringUtil: Move ThousandSeparate() into Common namespace 2023-05-16 14:26:33 -04:00
Lioncash
954afd81ec StringUtil: Move CommandLineToUtf8Argv() into Common namespace 2023-05-16 14:23:21 -04:00
Lioncash
d368c989e7 StringUtil: Move GetEscapedHtml() into Common namespace 2023-05-16 14:21:19 -04:00
Lioncash
21df3ca572 StringUtil: Move IsPrintableCharacter() into Common namespace 2023-05-16 14:17:54 -04:00
Lioncash
a9f1edeb61 StringUtil: Move IsAlpha() into Common namespace 2023-05-16 14:11:02 -04:00
JosJuice
192081d2f1 DiscIO: Improve comments in WIARVZFileReader::Convert
Just some clarifications and typo fixes.
2023-05-16 18:58:07 +02:00
Admiral H. Curtiss
28b82ff8d8
IOS/EmulationKernel: Remove m_device_map_mutex, m_device_map is only modified in the constructor and destructor. 2023-05-15 20:54:21 +02:00
Admiral H. Curtiss
b8f3a47fba
IOS: Move more emulation-only stuff from Kernel to EmulationKernel. 2023-05-15 20:41:49 +02:00
Admiral H. Curtiss
3d767edd8a
IOS/FS: Split FSDevice into FSCore and FSDevice.
FSCore implements the core functionality that can also be used outside of emulation. FSDevice implements the IOS device and is only available during emulation.
2023-05-15 20:41:47 +02:00
Admiral H. Curtiss
6a339cbdb3
IOS/ES: Split ESDevice into ESCore and ESDevice.
ESCore implements the core functionality that can also be used outside of emulation. ESDevice implements the IOS device and is only available during emulation.
2023-05-15 20:41:05 +02:00
Admiral H. Curtiss
27d90a7d7b
Merge pull request #11779 from ArcaneNibble/sd
Support Steam Deck controls natively through hidraw
2023-05-12 22:10:31 +02:00
JosJuice
f78e5f3c03
Merge pull request #11811 from JosJuice/revert-dpi-passthrough
Revert "DolphinQt: use default dpi rounding mode (passthrough)"
2023-05-11 23:00:00 +02:00
LillyJadeKatrin
c9c2e17e5a Added DoFrame to AchievementManager
DoFrame is a function called every frame by the emulator so that rcheevos can be properly updated and processed. It requires a memory peeker and an event handler to be passed in; the memory peeker is called repeatedly each frame to measure what's in memory and compare to achievement definitions, and any events thrown by that comparison are sent to the event handler.

Also, DoFrame checks for the current system time to determine when to ping rich presence. Rich Presence on the RetroAchievements website updates every two minutes, so if two minutes have elapsed since the previous ping, another ping is sent.
2023-05-11 07:56:12 -04:00
LillyJadeKatrin
22ee729055 Added GenerateRichPresence to AchievementManager
GenerateRichPresence calls rc_runtime_get_richpresence in rhceevos on the achievement runtime to get the current Rich Presence string, a description of the player's current in-game state based on its memory as fed into a custom-developed script downloaded via FetchGameData. This gets passed into PingRichPresence, but is separated into its own method so it can be used elsewhere locally.
2023-05-11 07:56:12 -04:00
LillyJadeKatrin
1b880564cb Added MemoryPeeker to AchievementManager
MemoryPeeker is a function passed by pointer into rcheevos DoFrame functionality that forms the lynchpin of the rcheevos runtime - it provides the interface by which rcheevos accesses memory and determines if the fields provided by achievement, leaderboard, and rich presence definitions are meeting the criteria needed.
2023-05-11 07:56:12 -04:00
LillyJadeKatrin
ed121a4033 Added AchievementEventHandler to AchievementManager
AchievementEventHandler simply checks which kind of event is triggered and calls the appropriate function. Its primary purpose is as a function to be pointed to.
2023-05-11 07:56:11 -04:00
LillyJadeKatrin
a48fab0abf Added HandleLeaderboardTriggeredEvent to AchievementManager
HandleLeaderboardTriggeredEvent processes a leaderboard event and asynchronizes via the work queue a synchronous call to SubmitLeaderboard.
2023-05-11 07:56:11 -04:00
LillyJadeKatrin
637ca82fc1 Added HandleAchievementTriggeredEvent to AchievementManager
HandleAchievementTriggeredEvent is an asynchronous method that processes an event and places a synchronous AwardAchievement call on the work queue. In the process, it also updates the unlock map and makes the ActivateDeactivateAchievement call to determine and adjust the achievement's current active state.
2023-05-11 07:56:11 -04:00
LillyJadeKatrin
66b8731bdb Added PingRichPresence to AchievementManager
PingRichPresence makes a "ping" API request to the RetroAchievements website with the provided RichPresence string parameter. While there has been talk about tying ping in with session, in its current state the primary purpose of ping is to send the player's Rich Presence to the website.
2023-05-11 07:56:11 -04:00
Sketch
a383e0cfd5 UICommon:DiscordPresence: Use GameTDB covers for RPC 2023-05-10 23:55:34 -04:00
LillyJadeKatrin
69014e1359 Added SubmitLeaderboard to AchievementManager
SubmitLeaderboard submits the player's score/time to a leaderboard on the website via an API call.
2023-05-10 21:15:40 -04:00
LillyJadeKatrin
9a57216fd0 Added AwardAchievement to AchievementManager
AwardAchievement performs the API call to notify the site that an achievement has been unlocked. As one of the parameters is the game hash (something I overlooked previously; I thought it was the game ID) this change also moves the game hash into a member field.
2023-05-10 21:15:40 -04:00
Admiral H. Curtiss
ab98db445d
Common/MemArenaAndroid: Keep fastmem region mapped. 2023-05-11 03:01:05 +02:00
R
c5d2ad99d2 Support Steam Deck controls directly through hidraw
This reads Steam Deck controls bypassing Steam Input. This allows for access to
motion controls as well as independent access to thumb sticks, trackpads, and
back grip buttons.
2023-05-10 13:28:32 +01:00
Admiral H. Curtiss
8c67083c87
Merge pull request #11813 from lioncash/insert
PPCSymbolDB: Use emplace() where applicable
2023-05-09 18:48:06 +02:00
Admiral H. Curtiss
c766b2f8a2
Merge pull request #11815 from lioncash/ppcinc
PPCTables: Remove unnecessary includes
2023-05-09 18:45:45 +02:00
JosJuice
82f70cdf94 ControllerInterface/Android: Add some missing DeleteLocalRef calls 2023-05-07 18:44:43 +02:00
JosJuice
24a697514e ControllerInterface/Android: Use InputEvent.getDeviceId
Instead of InputEvent.getDevice followed by InputDevice.getId.
Should hopefully fix https://bugs.dolphin-emu.org/issues/13237,
while also being simpler.
2023-05-07 18:40:28 +02:00
Pokechu22
810eb70f0e DolphinAnalytics: Add READS_BOUNDING_BOX game quirk 2023-05-06 17:18:17 -07:00
Lioncash
2561028b91 PPCTables: Remove unnecessary includes
Gets rid of a lingering dependency on the interpreter in common code and
a bunch of indirect inclusions.
2023-05-03 21:47:10 -04:00
JosJuice
2319210d85
Merge pull request #11810 from lioncash/jitreg
Common/JitRegister: Move interface into Common namespace
2023-05-03 17:43:01 +02:00
Lioncash
15d1ae3a8a SymbolDB: Add constructors to Symbol
Allows for much more convenient in-place construction.
2023-05-02 16:04:47 -04:00
Lioncash
a14d8003f4 PPCSymbolDB: Use emplace() where applicable
Avoids default constructing an entry in the map that just gets
immediately overwritten. Also gets rid of some redundant map lookups.
2023-05-02 15:51:52 -04:00
Lioncash
56775e4901 JitInterface: Remove global system accessor
We can use JitInterface's system member variable to avoid needing this
2023-05-02 15:21:58 -04:00
Mai
0b9b09ad32
Merge pull request #11796 from sepalani/gecko-sort
Gecko/ARCode: Add sort by enabled state
2023-05-02 14:59:08 -04:00
Sepalani
2635595737 ARCode: Add sort by enabled state 2023-05-02 22:24:21 +04:00
Sepalani
81ec90be9c GeckoCode: Add sort by enabled state 2023-05-02 22:23:43 +04:00
JosJuice
20e14aab06 Revert "DolphinQt: use default dpi rounding mode (passthrough)"
This reverts commit cfe3683668.

On Windows systems with 125% DPI scaling, this was causing both icons
and the OSD to be upscaled by 25% using nearest neighbor scaling, which
looks really bad. shuffle2 has said that this will be improved later,
but we should revert it for now for the sake of the upcoming beta build.
2023-05-02 20:18:56 +02:00
Lioncash
4db186f9ff Common/JitRegister: Move interface into Common namespace
Makes the namespace consistent with other common utilities.
2023-05-02 12:00:05 -04:00
sowens99
9b1d657614 Qt: Prevent savestate load/save on empty filename 2023-05-01 19:57:58 -04:00
Léo Lam
0eeeac2487
Merge pull request #11736 from noahpistilli/get-scheduler-stat
IOS/Network/KD: Implement GetSchedulerStat
2023-05-01 01:19:11 +01:00
Léo Lam
2e39c79984
Merge pull request #11805 from Dentomologist/remove_graphicswidget
Qt: Remove GraphicsWidget class
2023-04-30 02:15:30 +01:00
Léo Lam
3c9162f35e
Merge pull request #11807 from brad0/openbsd_thread_cpp_build_fix
Fix building on OpenBSD
2023-04-30 02:14:41 +01:00
Léo Lam
f36e05ad3e
Merge pull request #11546 from deReeperJosh/disneyinfinitybase
Feature: Emulate Infinity Base
2023-04-30 02:13:39 +01:00
Brad Smith
29a8226ac5 Fix building on OpenBSD
86c1f6e1e7 introduced code that had not
been build tested on OpenBSD.

https://bugs.dolphin-emu.org/issues/13241
2023-04-29 19:21:48 -04:00
TellowKrinkle
f92dde26a3 CMake: Fix storyboard copying 2023-04-29 16:10:38 -05:00
Dentomologist
5ca0430cb2 Qt: Remove GraphicsWidget class
The old tooltip description box used GraphicsWidget to provide shared
code to the Graphics config panes for adding descriptions to their
settings.

The description box has been replaced by BalloonTips and serves no
further purpose, so remove it and have the Graphics panes derive from
QWidget instead.
2023-04-29 14:10:37 -07:00
Mai
d95a85212f
Merge pull request #11793 from brad0/openbsd_iconv_build_fix
Fix build of iconv code on OpenBSD
2023-04-29 17:08:36 -04:00
Dentomologist
57a1339cfb Qt: Rename GraphicsInteger to ConfigInteger
GraphicsInteger is used by the panes in the Graphics config window to
create spin boxes that change their associated config setting, and
update their own state when something else changes the config setting.

Despite its current name nothing about this class is particular to the
Graphics window, so renaming it to ConfigInteger better reflects its
purpose. This should also make it less confusing when ConfigIntegers
are added to other config windows.
2023-04-29 11:09:59 -07:00
Admiral H. Curtiss
6e6865a63a
Merge pull request #11785 from shuffle2/qtnext3
DolphinQt: cache icons instead of single pixmaps
2023-04-29 17:32:29 +02:00
Admiral H. Curtiss
79607a060c
Merge pull request #11802 from Dentomologist/rename_graphicsslider_to_configslider
Qt: Rename GraphicsSlider to ConfigSlider
2023-04-29 16:47:56 +02:00
Admiral H. Curtiss
aaf11e626a
Merge pull request #11803 from LillyJadeKatrin/retroachievements-bugfix
Added Invalid Request Drop to AchievementManager Request
2023-04-29 16:46:59 +02:00
OatmealDome
28f1a4cec1
Merge pull request #11757 from TellowKrinkle/BCniOS
Enable BCn texture support on iOS where available
2023-04-29 08:54:18 +02:00
LillyJadeKatrin
9778640a84 Added Invalid Request Drop to AchievementManager Request
This fixes a crash I found in the Request function of AchievementManager where under certain conditions init_request would return an api_request with null post data, and Post would crash if it attempted to access it. Now the function aborts before the Post and returns an INVALID_REQUEST response type.
2023-04-29 00:05:32 -04:00
Dentomologist
1a2a99c9b3 Qt: Rename GraphicsSlider to ConfigSlider
GraphicsSlider is used by the panes in the Graphics config window to
create sliders that change their associated config setting, and update
their own state when something else changes the config setting.

Despite its current name nothing about this class is particular to the
Graphics window, so renaming it to ConfigSlider better reflects its
purpose. This should also make it less confusing when ConfigSliders are
added to other config panes.
2023-04-28 20:14:11 -07:00
TellowKrinkle
9cc3ba6fc6 VideoBackends:Metal: Enable BCn support on iOS 2023-04-28 20:35:54 -05:00
Joshua de Reeper
529d0a1c63 Infinity Base: Code tidyups and de-duplication 2023-04-28 16:51:43 +12:00
Dentomologist
a7abd7dba0 Qt: Rename GraphicsRadioInt to ConfigRadioInt
GraphicsRadioInt is used by the panes in the Graphics config window to
create radio buttons that change their associated config setting, and
update their own state when something else changes the config setting.

Despite its current name nothing about this class is particular to the
Graphics window, so renaming it to ConfigRadioInt better reflects its
purpose. This should also make it less confusing when ConfigRadioInts
are added to other config panes.
2023-04-27 20:01:04 -07:00
Joshua de Reeper
f632f94645 Feature: Emulate Disney Infinity Base
Create, Load and Clear Infinity figures on an emulated base in the UI
2023-04-28 12:29:34 +12:00
Dentomologist
b59ca9682e Qt/GeneralWidget and GraphicsWidget: Remove unused member variable
m_xrr_config was used by the GeneralWidget::GetAvailableResolutions
function to get the list of supported fullscreen resolutions when
HAVE_XRANDR was set. aa4088a removed the ability to set that resolution
in the UI, leaving the GetAvailableResolutions function unused.

m_xrr_config is initialized in MainWindow which still uses it to toggle
fullscreen, but the references in GeneralWidget and GraphicsWidget
(which just ferried m_xrr_config from MainWindow to GeneralWidget) are
now unnecessary and removed in this commit.
2023-04-27 16:50:56 -07:00
Léo Lam
a75d22d901
Merge pull request #11797 from Dentomologist/remove_unused_videoutils_function
VideoUtils: Remove unused function GetAvailableResolutions
2023-04-28 00:37:43 +01:00
Léo Lam
c19be2a3cf
Merge pull request #11799 from Dentomologist/graphicswindow_remove_member_variables
Qt/GraphicsWindow: Remove unnecessary member variables
2023-04-28 00:36:56 +01:00
Léo Lam
89154c858b
Merge pull request #11787 from AdmiralCurtiss/ios-emulationkernel
IOS: Leverage Kernel/EmulationKernel difference for passing System to most IOS devices.
2023-04-28 00:36:03 +01:00
Dentomologist
f4751b1547 Qt/GraphicsWindow: Remove unnecessary member variables
These variables are only used in CreateMainLayout and can thus be local
instead.
2023-04-26 16:46:45 -07:00
Dentomologist
1f74653501 VideoUtils: Remove unused function GetAvailableResolutions
The ability to change the fullscreen resolution througnh the UI was
removed in aa4088a, leaving this function unused.
2023-04-26 15:22:54 -07:00
Mai
adbee91dca
Merge pull request #11794 from shuffle2/color-scheme-changed
DolphinQt: reset stylesheets on colorSchemeChanged
2023-04-26 04:12:03 -04:00
Mai
e483b5693f
Merge pull request #11795 from Dentomologist/rename_graphicschoice_to_configchoice
Qt: Rename GraphicsChoice to ConfigChoice
2023-04-26 04:10:58 -04:00
Shawn Hoffman
bb227ad7bb DolphinQt: reset stylesheets on colorSchemeChanged
This is required for switching system color scheme
(dark/light) dynamically at runtime.
2023-04-25 12:34:34 -07:00
Shawn Hoffman
51e528e45f DolphinQt: cache icons instead of single pixmaps
Fixes dynamically changing dpi scaling.
Load resources from svg if possible.
Currently svg support is not in Qt build in Externals,
and image files need to be added later.
2023-04-25 12:34:27 -07:00
Mai
8c2e924255
Merge pull request #11774 from shuffle2/qtnext
DolphinQt: fix some usability issues
2023-04-25 15:24:44 -04:00
Dentomologist
2237a4a7aa Qt: Rename GraphicsChoice to ConfigChoice
GraphicsChoice is used by the panes in the Graphics config window to
create combo boxes that change their associated config setting, and
update their own state when something else changes the config setting.

Despite its current name nothing about this class is particular to the
Graphics window, so renaming it to ConfigChoice better reflects its
purpose. This should also make it less confusing when ConfigChoices are
eventually added to the other config windows.
2023-04-25 11:39:24 -07:00
Shawn Hoffman
b00e898aff DolphinQt: fix handling of Qt-specific cmdline args
QApplication should parse and remove and args it recognizes
before dolphin starts inspecting the args.
This allows using e.g. -style <style> on the commandline.
2023-04-25 10:50:49 -07:00
Shawn Hoffman
b20cc6b67e DolphinQt: dont set dpi awareness in manifest
Qt already does this itself programmatically.
Setting in the manifest interferes with Qt's
internal handling of dpi awareness.
2023-04-25 10:49:46 -07:00
Shawn Hoffman
258cf0ff28 DolphinQt: assume QT_VERSION_CHECK >= 6.0.0 2023-04-25 10:39:05 -07:00
Shawn Hoffman
ce9413e549 cmake: drop qt5 2023-04-25 10:37:26 -07:00
Shawn Hoffman
97157eaf5c DolphinQt: use new style of addAction API 2023-04-25 10:37:26 -07:00
Mai
b9a7f577a5
Merge pull request #11765 from Minty-Meeo/ppc-cache-savestate
Fix PPCCache savestate behavior
2023-04-25 05:40:15 -04:00
Mai
6bdfcc606f
Merge pull request #11788 from shuffle2/qtdpiround
DolphinQt: use default dpi rounding mode (passthrough)
2023-04-25 04:05:41 -04:00
Brad Smith
c9bbb12c2e Fix build of iconv code on OpenBSD 2023-04-25 01:22:05 -04:00
Admiral H. Curtiss
15a0860f15
IOS: Leverage Kernel/EmulationKernel difference for passing System to most IOS devices. 2023-04-25 02:22:34 +02:00
Léo Lam
ba150a6824
Merge pull request #11790 from AdmiralCurtiss/network-widget-workaround
Qt/NetworkWidget: Don't update if not paused.
2023-04-25 01:07:42 +01:00
Léo Lam
77b334b47b
Merge pull request #11791 from lioncash/traverse
Common/Traversal: Move interface into Common namespace
2023-04-25 01:05:41 +01:00
Léo Lam
e5f7522711
Merge pull request #11792 from lioncash/trace
Common: Move CodeTrace.cpp/.h into Core
2023-04-25 01:04:36 +01:00
Léo Lam
1379a33102
Merge pull request #11780 from Dentomologist/rename_graphicsbool_to_configbool
Qt: Rename GraphicsBool to ConfigBool
2023-04-25 01:03:22 +01:00
Lioncash
d991cbaf3c Common: Move CodeTrace.cpp/.h into Core
This interface relies on Core details and shouldn't be in Common to
begin with, since it's not a general utility.
2023-04-24 09:10:43 -04:00
Lioncash
30e7ab94fa Common/TraversalProto: Move interface into Common namespace
Gets the types out of the global namespace.
2023-04-24 08:53:14 -04:00
Lioncash
27f38c6c8f Common/TraversalClient: Move interface into Common namespace
Gets the interface out of the global namespace.
2023-04-24 08:28:25 -04:00
Pokechu22
2f4a3d6f60 PPCCache: Always invalidate on icbi, even if icache is disabled
This is more accurate, although it should not make a difference in practice.
2023-04-23 15:37:24 -07:00
Admiral H. Curtiss
8a6118bec6
Qt/NetworkWidget: Don't update if not paused.
This is similar to https://github.com/dolphin-emu/dolphin/pull/11623 where the Core state change invoked by the CPUThreadGuard does indirectly cause another Update() call.
2023-04-23 21:48:23 +02:00
Shawn Hoffman
cfe3683668 DolphinQt: use default dpi rounding mode (passthrough) 2023-04-23 11:56:39 -07:00
Admiral H. Curtiss
4d49902b34
IOS: Only construct DolphinDevice on EmulationKernel IOS instances.
Doesn't make much sense to have this active without a game.
2023-04-23 20:09:32 +02:00
Admiral H. Curtiss
ffbbd72741
Merge pull request #11767 from AdmiralCurtiss/wii-sock-man
IOS/WiiSockMan: Move instance to IOS Kernel.
2023-04-23 20:07:34 +02:00
Admiral H. Curtiss
5df7c8833a
Merge pull request #11784 from Minty-Meeo/mgba-screen-api
GBACore.cpp: Update to revised screen size/info API
2023-04-23 16:10:51 +02:00
Admiral H. Curtiss
653be9e45d
Merge pull request #11628 from Pokechu22/gles-32-only-multisample
OGL: Only specify precision for sampler2DMSArray when it is defined
2023-04-23 16:02:15 +02:00
Admiral H. Curtiss
00e4fc4b70
Netplay: Check if save is readable before marking it for sync. 2023-04-23 15:52:38 +02:00
get
c9b26e3db2 Update mGBA submodule to 8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51 2023-04-23 05:26:40 -05:00
get
0948f0ef69 Fix PPCCache savestate behavior
PR #11183 regressed the lookup table reconstruction and, for some reason, added an else clause that clobbered the dCache whenever dCache emulation is turned on.
2023-04-23 00:53:01 -05:00
Pokechu22
8fbfee03ab
Merge pull request #11764 from Minty-Meeo/ppc-cache-extendo-ram
Do not use magic numbers for RAM sizes/masks in PPCCache
2023-04-22 12:44:34 -07:00
Dentomologist
5fa27704c8 Qt: Rename GraphicsBool to ConfigBool
GraphicsBool is used by the panes in the Graphics config window to
create checkboxes that change their associated config setting, and
update their own state when something else changes the config setting.

Despite its current name nothing about this class is particular to the
Graphics window, so renaming it to ConfigBool better reflects its
purpose. This should also make it less confusing when ConfigBools are
eventually added to the other config windows.
2023-04-21 14:24:37 -07:00
get
9ba26670b8 Do not use magic numbers for RAM sizes/masks in PPCCache
Memory Override + Write-Back Cache emulation = game crash
2023-04-20 19:32:35 -05:00
Admiral H. Curtiss
be1f2a6852
Merge pull request #11773 from lioncash/delete
Common/TraversalClient: Use correct deleter with g_MainNetHost
2023-04-20 22:17:19 +02:00
Mai
c3cc1de54e
Merge pull request #11777 from Dentomologist/move_balloontip_files
Qt/Config: Move BalloonTip files from Graphics to ToolTipControls
2023-04-20 10:45:03 -04:00
Dentomologist
4174f0063e Qt: Remove unused class GraphicsBoolEx
In older versions of Dolphin GraphicsBoolEx was used to create a pair of
radio buttons selecting one of Virtual XFB and Real XFB, but this was
removed with the introduction of Hybrid XFB in 65cd085f.

In the meantime GraphicsRadioInt was introduced to allow for Graphics
radio buttons with multiple options, so GraphicsBoolEx is now redundant.
2023-04-19 16:58:42 -07:00
Dentomologist
7a78ace608 Qt/Config: Move BalloonTip.h/cpp from Graphics to ToolTipControls
BalloonTip.h/cpp are only used from the ToolTipControls folder, so move
them there.
2023-04-19 16:46:46 -07:00
Lioncash
b4cc1ade02 Common/TraversalClient: Use correct deleter with g_MainNetHost
Previously this was using the default deleter (which just calls delete
on the pointer), which is incorrect, since the ENetHost instance is
allocated through ENet's C API, so we need to use its functions to
deallocate the host instead.
2023-04-19 12:38:16 -04:00
Lioncash
07ed932a09 Common/LinearDiskCache: Move interface into Common namespace
Gets the interface out of the global namespace.
2023-04-19 09:14:39 -04:00
Admiral H. Curtiss
2a0b90807d
Merge pull request #11770 from lioncash/err
Common/CommonFuncs: Move interface into Common namespace
2023-04-19 10:38:22 +02:00
Lioncash
f1ad43afaf Common/CommonFuncs: Move interface into Common namespace
Gets these functions out of the global namespace.
2023-04-18 19:23:04 -04:00
OatmealDome
8aae296d4e
Merge pull request #11759 from TellowKrinkle/MTLPerfQueryFixes
VideoBackends:Metal: Fix perf queries
2023-04-18 22:15:50 +02:00
Admiral H. Curtiss
2e7f0d002e
Merge pull request #11760 from Minty-Meeo/embracing-nullptr
Embrace nullptr over NULL and 0
2023-04-18 22:14:11 +02:00
OatmealDome
8a355dbbd7
Merge pull request #11708 from TellowKrinkle/MetalMaxPixSamplers
VideoBackends:Metal: Use max pixel samplers constant
2023-04-18 22:11:06 +02:00
Admiral H. Curtiss
a239af162d
Merge pull request #11768 from Pokechu22/temporary-debug-command-line
Treat --debugger command line as a temporary setting
2023-04-18 22:05:08 +02:00
Admiral H. Curtiss
361ffd5917
Merge pull request #11752 from LillyJadeKatrin/retroachievements-activate
Retroachievements activate
2023-04-18 18:38:53 +02:00
Admiral H. Curtiss
1c1b0fee25
Merge pull request #11769 from AdmiralCurtiss/ra-no-volume
AchievementManager: Fix crash when launching non-disc game.
2023-04-18 18:38:16 +02:00
Admiral H. Curtiss
9600bf1af9
Qt/WiiPane: Add setting for SD card file size when converting. 2023-04-18 11:04:26 +02:00
Admiral H. Curtiss
d861b8caca
Config: Add setting for SD card file size when converting. 2023-04-18 11:04:26 +02:00
Admiral H. Curtiss
a4e1e23c34
AchievementManager: Fix crash when launching non-disc game. 2023-04-18 11:01:11 +02:00
Pokechu22
801fa8e905 Only force-show the code widget when first enabling the debugger
Before, any call of Settings::SetDebugModeEnabled(true) would show it. This means that if the debugging UI is enabled, but the user manually closed the code widget, then toggling any option on the interface pane (such as "Pause on Focus Loss") would cause the code widget to reappear. Additionally, closing and reopening dolphin did not call SetDebugModeEnabled, so the code widget did not reappear in that case (it only appeared after touching the interface pane). This is a bit silly, so now only enabling the debugger does it.

This also somewhat resolves an inconsistency introduced by the previous commit: prior to it, --debugger would call SetDebugModeEnabled(true) and thus show the code pane; after these commits, it does not, as it acts like a config change. This is a behavior difference, but not a particularly important one.
2023-04-17 23:23:36 -07:00
Pokechu22
c0b6e9e69c Treat --debugger command line as a temporary setting
Before, Settings::SetDebugModeEnabled was used; this calls SetBaseOrCurrent() which will usually permanently change the base configuration setting for the debugger to true. Thus, the debugger would remain active even if the --debugger command line option was removed. Now, it remains active only for the current run, like other command-line options.

Note that SetBaseOrCurrent is also used by the "Show Debugging UI" option under Options -> Interface; this means that if the debugger is turned off (or off and then back on) by the user while --debugger is specified, this will be reset to whatever the base configuration had when Dolphin is closed and reopened. This behavior is consistent with the rest of the UI.

To my understanding, the --debugger option is something from 5.0 stable/DolphinWx where there was no way to toggle the debug UI in the settings (and the command-line option was the only way of enabling it). It's less useful nowadays.
2023-04-17 23:11:26 -07:00
Admiral H. Curtiss
b2ee958058
IOS/WiiSockMan: Move instance to IOS Kernel. 2023-04-18 01:24:10 +02:00
Sketch
467b961e9c IOS/Network/KD: Implement GetSchedulerStat 2023-04-17 11:38:42 -04:00
Admiral H. Curtiss
37a30a5e50
IOS/WiiSockMan: Remove declaration to nonexistent DecodeError(). 2023-04-17 03:43:29 +02:00
get
a5d06fde4b Embrace nullptr over NULL and 0 2023-04-15 16:07:05 -05:00
Lioncash
784a216927 Common/MathUtil: Move IntLog2 into MathUtil namespace
Gets this out of the global namespace.
2023-04-15 03:35:05 -04:00
Lioncash
5e0c20f8a5 Common/MathUtil: Remove MathFloatVectorSum()
This isn't used anywhere and not really a generic utility, so we can get
rid of it.

This also lets us remove MathUtil.cpp, since this was the only thing
within that file.
2023-04-15 03:25:38 -04:00
LillyJadeKatrin
31c3288fd5 Added ActivateDeactivateRichPresence to AchievementManager
RetroAchievements Rich Presence is a script that is run periodically on a game's memory to provide a detailed text description of what the player is doing. Existing Discord presence on Dolphin would update a player's Discord status to say not just that they are using Dolphin but that they are playing, for example, Sonic Adventure 2 Battle; Rich Presence would detail that the player is in City Escape with 5 lives and 142 rings.

Activating this in the runtime simply entails loading that text script, as returned by the FetchGameData API call, into the runtime, here only determined by whether rich presence is enabled in the achievement settings. Deactivating this is done via the same rcheevos method by setting the rich presence to an empty string.
2023-04-14 22:22:00 -04:00
LillyJadeKatrin
64e3a64c87 Added ActivateDeactivateLeaderboards to AchievementManager
This activates or deactivates leaderboards in the rcheevos runtime similarly to achievements. The logic is much more straightforward - all leaderboards are active together; there is nothing requiring some leaderboards to be active while others are unactive, and even a leaderboard that has been submitted to in this session is still active to be submitted to again. The only criteria are that leaderboards must be enabled in the settings, and hardcore mode must be on, the latter of which is false until a future PR.
2023-04-14 22:22:00 -04:00
LillyJadeKatrin
da1de36cb9 Added LoadUnlockData and ActivateDeactivateAchievements to AchievementManager
LoadUnlockData and ActivateDeactivateAchievements are the public API components responding to the FetchUnlocks and A/DAchievement (singular) private methods.

LoadUnlockData is asynchronous and performs both a hardcore and a softcore unlock call, updating the unlock map and the active status of any achievements returned from these calls.

ActivateDeactivateAchievements calls ActivateDeactivateAchievement on every achievement ID found in m_game_data, initializing the unlock map for each ID if not already found.

Both of these are currently called in LoadGameByFilenameAsync once the game has been loaded properly. There's a lock around this, to ensure that the unlock map is initialized properly by ActivateDeactivate Achievements before FetchUnlockData makes modifications to it without stalling the async portions of FetchUnlockData.
2023-04-14 22:22:00 -04:00
LillyJadeKatrin
db44e10057 Added FetchUnlockData to AchievementManager
FetchUnlockData is an API call to RetroAchievements that downloads a list of achievement IDs for a game that the user has already unlocked and published to the site. It accepts a parameter for whether or not hardcore or softcore achievements are being requested, so that must be provided as well. Once it has the requested list on hand, it updates each achievement's status in the unlock map and will activate or deactivate achievements as necessary.
2023-04-14 22:22:00 -04:00
LillyJadeKatrin
505f40cf9d Added ActivateDeactivateAchievement to AchievementManager
ActivateDeactivateAchievement is passed an Achievement ID as returned from the FetchGameData API call and determines whether to activate it, deactivate it, or leave it where it is based on its current known state and what settings are enabled.

Activating or deactivating an achievement entails calling a method provided by rcheevos that performs this on the rcheevos runtime. Activating an achievement loads its memory signature into the runtime; now the runtime will process the achievement each time the rc_runtime_do_frame function is called (this will be in a future PR) to determine when the achievement's requirements are met. Deactivating an achievement unloads it from the runtime.

The specific logic to determine whether an achievement is active operates over many fields but is documented in detail inside the function. There are multiple settings flags for which achievements are enabled (one flag for all achievements, an "unofficial" flag for enabling achievements marked as unofficial i.e. those that have logic on the site but have not yet been officially approved, and an "encore" flag that enables achievements the player has already unlocked) and this function also evaluates whether the achievement has been unlocked in hardcore mode or softcore mode (though currently every reference to the current hardcore mode state is hardcoded as false).
2023-04-14 17:15:45 -04:00
Admiral H. Curtiss
e9dbb93cb5
Merge pull request #11756 from lioncash/ini
Common/IniFile: Move interface into Common namespace
2023-04-14 20:52:30 +02:00
TellowKrinkle
09c80513cd VideoBackends:Metal: Fix perf queries
Fixes an issue where perf queries could end up including counts from previous queries
2023-04-14 00:25:31 -05:00
Jeffrey Bosboom
c6f9e61d38 XInput2: Accept input from keyboards other than the first master
XInput2 was created to support multiple pointer/keyboard pairs (often
called MPX for multi-pointer X).  Dolphin's XInput2 implementation has
always supported MPX by creating a KeyboardMouse object per master
pointer.  Since commit bbb12a7, Dolphin's keyboard state is filtered by
the output of XQueryKeymap.  As a core X function, XQueryKeymap queries
"the" keyboard, which by default is the first master keyboard.  As a
result, Dolphin will ignore keys pressed on other master keyboards
unless the first master is simultaneously pressing the same keys.

XInput2 doesn't provide a function to query the keyboard state.  There
is no XIQueryKeymap and the current state is not a member of the
XIKeyClassInfo returned by XIQueryDevice.  Instead, XInput2 allows a
master pointer to be nominated as "the" pointer on a per-client basis,
with "the" keyboard automatically becoming the associated master
keyboard.  The "documentation" [1] says passing None for the window is
only for debugging purposes, but it is documented in the
XISetClientPointer man page and seems to be the only way to query
keyboards beyond the first.

With this commit, Dolphin correctly reads keys from keyboards other than
the first master keyboard.  To test, use the xinput command-line utility
to create a master pointer and reattach a keyboard to the associated
master keyboard.

[1]: https://who-t.blogspot.com/2009/07/xi2-recipes-part-6.html
     (the XInput2 developer's blog)
2023-04-13 20:10:00 -07:00
Léo Lam
ae18aa0639
Merge pull request #11687 from Minty-Meeo/warnings
Resolve GCC/Clang Warnings
2023-04-14 01:29:46 +01:00
Lioncash
e4caace6bb Common/IniFile: Move interface into Common namespace
Gets this out of the global namespace and into the Common namespace
2023-04-13 10:19:28 -04:00
Lioncash
f5bdfdde1a Common/UPnP: Move interface into Common namespace
Keeps these utilities consistent with the rest of most of the Common
library.
2023-04-12 14:15:58 -04:00
Minty-Meeo
f29019180f Pragma diagnostic ignore [-Wregister] is no longer needed 2023-04-12 03:59:57 -05:00
Minty-Meeo
65edfb0eed Resolve [-Wunused-const-variable] 2023-04-12 03:59:57 -05:00
Minty-Meeo
244918acb8 Resolve [-Wdeprecated-declarations] 2023-04-12 03:59:57 -05:00
Minty-Meeo
528f7c90e9 Resolve [-Wtautological-constant-out-of-range-compare] 2023-04-12 03:59:57 -05:00
Minty-Meeo
efd06a85d2 Resolve [-Wunused-but-set-variable] 2023-04-12 03:59:57 -05:00
Minty-Meeo
678c93589a Resolve [-Wclass-memaccess] 2023-04-12 03:59:57 -05:00
LillyJadeKatrin
8b57c4b239 Added LoadGameByFilenameAsync and CloseGame to AchievementManager
LoadGameByFilenameAsync sets up a volume reader and hashes the volume, then uses that hash to make the three consecutive API requests to resolve hash, start session and load game data.

CloseGame resets the m_is_game_loaded flag, wipes the queue, and destroys all the game data responses.
2023-04-12 03:08:47 -04:00
LillyJadeKatrin
bd75ce6e6d Added FetchGameData to AchievementManager
FetchGameData is the big one - this retrieves the logic for all the achievements, leaderboards, and rich presence, and all the relevant metadata for the game.
2023-04-12 03:08:47 -04:00
LillyJadeKatrin
7e8a770b30 Added StartRASession to AchievementManager
Added a call to the RetroAchievements Start Session API to AchievementManager. This is primarily for client-side activation, so it doesn't return much of value, aside from its success/error information, but I'm storing the return structure in case this changes in the future.
2023-04-12 03:08:47 -04:00
LillyJadeKatrin
67ab4d2473 Added ResolveHash to AchievementManager
Added the ResolveHash method to AchievementManager. This is a blocking function to send a hash string to the RetroAchievements server to verify it and get a game ID back.
2023-04-12 03:08:47 -04:00
Admiral H. Curtiss
31d2dedcb1
Merge pull request #11749 from lioncash/copy
NetPlayServer: Prevent unnecessary copies in GetInterfaceSet()
2023-04-11 22:09:56 +02:00
Lioncash
09e11b8067 Common: Rename ENetUtil.cpp/.h to ENet.cpp/.h 2023-04-11 11:48:46 -04:00
Lioncash
81493ee910 NetPlayServer: Prevent unnecessary copies in GetInterfaceSet()
This was previously copying each pair out of the vector returned by
GetInterfaceListInternal() when we just need to emplace the first entry
of each pair.
2023-04-11 09:17:03 -04:00
Lioncash
64ce2012e3 Common/ENetUtil: Move interface into Common namespace
Rather than just being under a separate ENetUtil namespace, we can unify
this into the common namespace as Common::ENet.
2023-04-11 09:12:04 -04:00
Léo Lam
e225ca87a9
Merge pull request #11722 from noahpistilli/write-dl-entry
IOS/Network/KD: Reload DLList on call to DownloadNowEx
2023-04-11 02:08:51 +01:00
Admiral H. Curtiss
948a548fb2
Merge pull request #11720 from Pokechu22/hookable-event-recursive-mutex
HookableEvent: Use std::recursive_mutex instead of std::mutex
2023-04-10 22:50:44 +02:00
Minty-Meeo
2bb619a508 Resolve [-Wstringop-overflow=] 2023-04-10 14:21:15 -05:00
Minty-Meeo
3282082599 Resolve [-Wwrite-strings] 2023-04-10 14:21:15 -05:00
Minty-Meeo
d9a49c68d9 Resolve [-Wunused-lambda-capture] 2023-04-10 14:21:15 -05:00
Minty-Meeo
1cf30055b2 Resolve [-Wsign-compare] 2023-04-10 14:21:15 -05:00
Admiral H. Curtiss
5373fcc1e7
IOS/FS: Filter files exposed to the emulated system in ReadDirectory() and GetDirectoryStats(). 2023-04-10 19:50:08 +02:00
Admiral H. Curtiss
5c05155828
IOS/FS: Implement GetNandStats(). 2023-04-10 19:50:08 +02:00
Admiral H. Curtiss
8295d6d415
IOS/FS: More accurate cluster calculation in GetDirectoryStats(). 2023-04-10 19:50:08 +02:00
Admiral H. Curtiss
69d6be09f7
IOS/FS: GetDirectoryStats() should return an error if the given path is not a directory. 2023-04-10 19:50:08 +02:00
Admiral H. Curtiss
23843583bf
PowerPC: Refactor to class, move to System. 2023-04-09 21:48:37 +02:00
JosJuice
6b73a4772b
Merge pull request #11744 from AdmiralCurtiss/ios-di-registers
IOS/DI: Remove RegisterWrapper.
2023-04-09 08:55:07 +02:00
TellowKrinkle
b9595a2230 CMake: Use find_package and imported targets for Iconv
Fixes us forgetting to add its include directories, which could result in linking to a dylib from MacPorts while using the system's header, and failing to link because they use different function names
2023-04-08 21:43:03 -05:00
Admiral H. Curtiss
fe4aadc575
IOS/DI: Remove RegisterWrapper. 2023-04-09 04:20:46 +02:00
Sketch
d11c8075e7 Reload DLList on call to KDDownload 2023-04-08 19:47:11 -04:00
Pokechu22
8b0bd31e72 OGL: Use GL_OES_texture_storage_multisample_2d_array when supported
See https://bugs.dolphin-emu.org/issues/13198
2023-04-08 15:32:27 -07:00
Pokechu22
3f143d1bc9 OGL: Only specify precision for sampler2DMSArray when it is defined
See https://bugs.dolphin-emu.org/issues/13198
2023-04-08 15:32:27 -07:00
Pokechu22
53beda526b OGL: Remove bSupports2DTextureStorageMultisample and bSupports3DTextureStorageMultisample
bSupports2DTextureStorageMultisample is completely unused, while bSupports3DTextureStorageMultisample is practically unused. In the past, these were checked and fell back to sampler2DMS instead of sampler2DMSArray on GLES 3.1, but this path was removed in f039149198 and Dolphin always uses array textures now.
2023-04-08 15:32:27 -07:00
Pokechu22
c68d484a65 OGL: Convert SupportedESPointSize to an enum class 2023-04-08 15:32:27 -07:00
Admiral H. Curtiss
79b8e136b7
Merge pull request #11740 from Pokechu22/interface-pane-mouse-lock-visibility
DolphinQt: Fix mouse lock checkbox appearing when it shouldn't
2023-04-08 22:59:31 +02:00
Admiral H. Curtiss
d5b811dd7f
Merge pull request #11738 from malleoz/malleo/tas_input_latency
DolphinQt: Prevent MemoryViewWidget updates when hidden
2023-04-08 13:46:56 +02:00
iwubcode
e101f7f6ae VideoCommon: refactor GetTexture into a separate function for creation, separating the custom texture data path from the game's texture data path 2023-04-08 02:54:00 -05:00
Pokechu22
02cd8b6363 DolphinQt: Fix mouse lock checkbox appearing when it shouldn't
See https://bugs.dolphin-emu.org/issues/13232; this was introduced in 7dde0c3c31. Apparently, providing a parent for a widget that is not visible makes your new widget visible when the parent is later made visible, in addition to managing the deletion of the widget; the documentation does not specify this (only that if the parent is visible you need to explicitly show it).
2023-04-07 22:33:40 -07:00
TellowKrinkle
ed177bdbd7 VideoBackends:Metal: Use max pixel samplers constant 2023-04-08 02:12:31 +02:00
OatmealDome
72d08f6c80 InputCommon: Remove OSX (IOKit) input backend 2023-04-07 15:40:14 -04:00
sowens99
44e3993f2f DolphinQt: Prevent MemoryViewWidget updates when hidden 2023-04-07 11:21:19 -04:00
Mai
aaedc2827d
Merge pull request #11735 from Pokechu22/cmake-no-spirv-cross-on-linux
CMake: Don't include SPIRV-Cross except on Windows and macOS
2023-04-06 23:11:14 -04:00
Mai
5686c614ec
Merge pull request #11717 from AdmiralCurtiss/ppcstate-rest
Replace most remaining global ppcState references.
2023-04-06 22:35:32 -04:00
Mai
74da38916e
Merge pull request #11729 from AdmiralCurtiss/redundant-mov
Jit64: Fix possibly redundant MOV in ABI_CallFunctionPR().
2023-04-06 21:42:28 -04:00
Mai
8b9c1bff0b
Merge pull request #11731 from Pokechu22/typeutils-cc0
Common: Relicense TypeUtils to CC0
2023-04-06 21:41:56 -04:00
Pokechu22
56fcc97f6d CMake: Check WIN32 instead of CMAKE_SYSTEM_NAME STREQUAL Windows 2023-04-06 18:37:45 -07:00
Minty-Meeo
1312624e05 Resolve [-Wshadow] 2023-04-06 19:25:26 -05:00
sowens99
cd79207853 DolphinQt: StickWidget and IRWidget check for changed x/y before signaling change 2023-04-06 01:54:20 -04:00
Pokechu22
b08d259d5c Common: Relicense TypeUtils to CC0
I am the sole contributor (apart from e149ad4f0a which only changed the license header).
2023-04-05 19:01:11 -07:00
Admiral H. Curtiss
2d1f661118
DolphinQt: Avoid ppcState global. 2023-04-05 20:09:32 +02:00
Admiral H. Curtiss
192d8b6e40
VideoCommon/CommandProcessor: Pass System to HandleUnknownOpcode(). 2023-04-05 20:09:32 +02:00
Admiral H. Curtiss
e5941428d1
PowerPC/PPCTables: Pass instruction address to GetOpInfo(). 2023-04-05 20:09:32 +02:00
Admiral H. Curtiss
6018daa3fa
PowerPC/PPCCache: Access PowerPCState through System. 2023-04-05 20:09:32 +02:00
Admiral H. Curtiss
aec3a882d7
PowerPC/JitInterface: Access PowerPCState through System. 2023-04-05 20:09:31 +02:00
Admiral H. Curtiss
18f8ae37ab
PowerPC/Expression: Pass System to EvaluateCondition(). 2023-04-05 20:09:31 +02:00
Admiral H. Curtiss
0a88c2329a
Merge pull request #11715 from JosJuice/dcbx-order
Jit: Change argument order for InvalidateICacheLine(s)FromJIT
2023-04-05 20:06:26 +02:00
Admiral H. Curtiss
2ac7b5a523
Jit64: Fix possibly redundant MOV in ABI_CallFunctionPR(). 2023-04-05 20:00:37 +02:00
Mai
25fba7247e
Merge pull request #11726 from mackal/dolphinqt-memory-leaks
DolphinQt: Fix memory leaks
2023-04-05 04:18:32 -04:00
Pokechu22
c55e08ff73 Jit64: Attempt to fix updating stores with an immediate value
See https://bugs.dolphin-emu.org/issues/13144
2023-04-04 23:30:40 -07:00
Pokechu22
497e938c8c Jit_LoadStoreFloating: Minor tidying
The inst.SIMM_16 change is for readability (though it also fixes a warning about potentially unintended uses of `||`).

The fallback change is because `b` is only meaningful for indexed instructions; this could theoretically lead to unintended fallbacks (but it seems unlikely).
2023-04-04 23:04:41 -07:00
OatmealDome
2995b5e061
Merge pull request #11667 from TellowKrinkle/DontSucceedOnLinkFail
CMake: Use generator expressions for codesign targets
2023-04-05 05:35:58 +02:00
Michael Cook (mackal)
f424e7815a DolphinQt: Fix memory leaks in MemoryWidget
QMenuBar::addMenu does not take ownership of the QMenu, setting their
parent allows them to be cleaned up
2023-04-04 16:10:31 -04:00
Michael Cook (mackal)
7dde0c3c31 DolphinQt: non-Windows builds leak in InterfacePane
The m_checkbox_lock_mouse QCheckBox was only conditionally being added
to the layout, leaving it unmanaged and leaking

Setting the parent will allow it to be managed.
2023-04-04 16:07:06 -04:00
Michael Cook (mackal)
e511718fbc DolphinQt: Fix leak in LogConfigWidget
The m_verbosity_debug button was only conditionally being added as
widget, this was done in order to hide the object, but this left it
unmanaged.

Unconditionally adding it to the layout and controlling it's visibility
will resolve these issues
2023-04-04 16:05:23 -04:00
Pierre Bourdon
d8fabd37fb
Merge pull request #11417 from K0bin/vk-submit-thread-cleanup
VideoBackends:Vulkan: Clean up submission thread using WorkQueueThread
2023-04-04 22:02:39 +02:00
Pierre Bourdon
c71a4c2751
Merge pull request #11719 from AdmiralCurtiss/enet-update
Update ENet to 8ae0e85298fafdb20777b4eb4241218f52f775b0
2023-04-04 22:00:45 +02:00
Michael Cook (mackal)
2dca24229b DolphinQt: Fix memory lkea in FilesystemWidget
QTreeView::setModel doesn't transfer ownership of the object.

Setting the parent resolves this
2023-04-04 15:59:45 -04:00
Pierre Bourdon
b63b574a3f
Merge pull request #11669 from LillyJadeKatrin/retroachievements-rcheevos-integration
Retroachievements rcheevos integration
2023-04-04 12:34:20 +02:00
LillyJadeKatrin
84b3df0af2 Added Achievement Manager with Login
Added AchievementManager class. Upon startup (currently only in DolphinQt), logs into RetroAchievements with the login credentials stored in achievements.ini.

Co-authored-by: AdmiralCurtiss <AdmiralCurtiss@users.noreply.github.com>
2023-04-03 21:17:44 -04:00
LillyJadeKatrin
07d2f3d305 Added Initial Achievement Settings
Added AchievementSettings in Config with RA_INTEGRATION_ENABLED, RA_USERNAME, and RA_API_TOKEN. Includes code to load and store from Achievements.ini file in config folder.
2023-04-03 21:17:44 -04:00
Michael Cook (mackal)
241a739dc2 DolphinQt: RenderWidget fix heap-use-after-free
The QByteArray returned by QString::toUtf8() was being freed so the char
pointer was pointing to freed memory.

Found via ASan, didn't notice any issues during normal runtime.

This was triggered after hitting a key combo with alt (ex. toggle
fullscreen) probably happens with others
2023-04-03 10:43:49 -04:00
Mai
655fca3efe
Merge pull request #11712 from AdmiralCurtiss/nand-import-bounds
NANDImporter: Check data bounds.
2023-04-03 08:29:57 -04:00
Pokechu22
9e0755a598 HookableEvent: Use std::recursive_mutex instead of std::mutex
This fixes a crash when recording fifologs, as the mutex is acquired when BPWritten calls AfterFrameEvent::Trigger, but then acquired again when FifoRecorder::EndFrame calls m_end_of_frame_event.reset(). std::mutex does not allow calling lock() if the thread already owns the mutex, while std::recursive_mutex does allow this.

This is a regression from #11522 (which introduced the HookableEvent system).
2023-04-02 15:51:21 -07:00
Admiral H. Curtiss
1e1041f299
NetPlay: Limit ENet's MTU to 1392 as a workaround for dropped packets over VPN via WireGuard, see https://github.com/lsalzman/enet/issues/132 2023-04-02 17:23:10 +02:00
LillyJadeKatrin
f3114b59f4 Added USE_RETRO_ACHIEVEMENTS compiler flag
Added a flag to VS and CMake for enabling RetroAchievements integration.
2023-04-02 08:28:25 -04:00
LillyJadeKatrin
2836feac71 Added rcheevos to Externals
Adds the rcheevos library from RetroAchievements to the Dolphin Externals as a submodule. Change was verified to import correctly and build both via Visual Studio and via cmake ninja.
2023-04-02 08:28:23 -04:00
JosJuice
6089310c80 Add Finnish translation
A lot of progress has been made on the Finnish translation over on
Transifex recently. Let's add it.
2023-04-02 11:33:42 +02:00
Admiral H. Curtiss
c97c80d1cb
NANDImporter: Check data bounds. 2023-04-02 03:45:34 +02:00
Admiral H. Curtiss
aaeaa9c6b6
Merge pull request #11714 from sepalani/check-wii-save-path
GameList: Check Wii save path
2023-04-02 02:44:29 +02:00
JosJuice
450ca0b69e
Merge pull request #11700 from AdmiralCurtiss/mmu-class
PowerPC/MMU: Refactor to class, move to System.
2023-04-01 18:02:04 +02:00
Admiral H. Curtiss
e24e52af3c Jit64: Use utility function for function calls in dcbx.
We have these for a reason. I think this also fixes a theoretical
problem when `ABI_PARAM1 == loop_counter` where the first MOV destroys
the second's value; I'm not sure if this can actually happen in practice
though.
2023-04-01 15:30:03 +02:00
JosJuice
1bf593f65a Jit: Change argument order for InvalidateICacheLine(s)FromJIT 2023-04-01 14:34:30 +02:00
Sepalani
9ee564dde3 GameList: Check Wii save path
Make the behaviour consistent with GC save
2023-04-01 16:23:37 +04:00
Pierre Bourdon
7e9a63b987
Merge pull request #11704 from AdmiralCurtiss/more-log
Netplay: More logging before game start.
2023-03-30 19:26:49 +02:00
Admiral H. Curtiss
0ccf24b0c5
Netplay: More logging for server and client thread main loops. 2023-03-30 16:57:39 +02:00
Markus Wick
50a45bd614
Merge pull request #11673 from K0bin/vertex-loader-micro-opt
Vertex Loader Microoptimization
2023-03-30 11:05:02 +02:00
Admiral H. Curtiss
bfe0940bbd
Netplay: More logging before game start. 2023-03-30 00:02:30 +02:00
Pierre Bourdon
d62838a2f4
Merge pull request #11690 from degasus/asciiart
Shaders: Reintroduce the old Ascii-Art shader.
2023-03-28 11:17:27 +02:00
Admiral H. Curtiss
8dabd1a025
PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
Mai
98fad9004b
Merge pull request #11698 from AdmiralCurtiss/mmu-comments
PowerPC/MMU: Clean up old comments.
2023-03-27 10:32:19 -04:00
Mai
c096ee64f2
Merge pull request #11696 from AdmiralCurtiss/jit-interface-class
JitInterface: Refactor to class, move to System.
2023-03-27 10:31:53 -04:00
Admiral H. Curtiss
d7fabf37d6
PowerPC/MMU: Clean up old comments. 2023-03-26 15:19:48 +02:00
MayImilae
0d74a8561a Remove GCI Folder Path from the Wrote to OSD Message
Follow up to PR11470. Forgot to do GCI as well. Oops.
2023-03-26 06:19:17 -07:00
Admiral H. Curtiss
7f50c070b2
JitInterface: Convert m_jit to unique_ptr. 2023-03-26 14:38:07 +02:00
Admiral H. Curtiss
9217a9eba4
JitInterface: Refactor to class, move to System. 2023-03-26 14:38:07 +02:00
Admiral H. Curtiss
1885ddcde2
JitArm64: Avoid System::GetInstance() and ppcState. 2023-03-25 15:47:30 +01:00
Admiral H. Curtiss
6b44947488
Merge pull request #11677 from AdmiralCurtiss/deglobal-jit
Avoid System::GetInstance() and ppcState global in Jit64 and CachedInterpreter.
2023-03-25 14:52:46 +01:00
Admiral H. Curtiss
fc394bdbdb
Jit64: Avoid System::GetInstance() and ppcState. 2023-03-25 02:37:10 +01:00
Admiral H. Curtiss
dfc14db313
CachedInterpreter: Avoid System::GetInstance() and ppcState. 2023-03-25 02:37:10 +01:00
Admiral H. Curtiss
9c0226b7e3
JitBase: Avoid System::GetInstance() and ppcState. 2023-03-25 02:37:00 +01:00
Admiral H. Curtiss
b568cf5268
Interpreter: Remove remaining System::GetInstance() and global ppcState. 2023-03-24 21:58:41 +01:00
degasus
196c684ac1 Vulkan: Enable subgroupShuffle.
It is used as workaround for the missing subgroupBroadcastDynamicId flag on SPIR-V < 1.5.
2023-03-24 21:53:23 +01:00
Admiral H. Curtiss
2edb69f89f
Merge pull request #11682 from lioncash/queue
Common: Move FixedSizeQueue into Common namespace
2023-03-24 12:55:10 +01:00
Pierre Bourdon
eb7d7836fd
Merge pull request #11685 from shuffle2/updater-test
test-updater.py: include space and unicode in paths to test
2023-03-22 23:40:24 +01:00
Shawn Hoffman
fdc1626308 test-updater.py: include space and unicode in paths to test 2023-03-22 11:08:58 -07:00
Shawn Hoffman
3961afdbb9 windows: temporarily hardcode VCToolsVersion to 14.34.31931.0
this should be reverted after next beta is built
see https://bugs.dolphin-emu.org/issues/13206
2023-03-22 10:42:32 -07:00
Lioncash
0f326c6067 Common: Move FixedSizeQueue into Common namespace
Gets this out of the global namespace.
2023-03-22 01:23:15 -04:00
Lioncash
0888c93d48 Common: Move FPU-related helpers into Common namespace
Makes these utilities' namespace consistent with the majority of the
Common library.
2023-03-21 10:58:13 -04:00
Admiral H. Curtiss
8f16fd60dd
JitArm64: Use 64-bit register for pointer when falling back to interpreter. 2023-03-21 02:46:29 +01:00
Robin Kertels
93fce0e4b6
VideoCommon:VertexManagerBase: Only calculate remaining indices once
Before, both of those were calculated 3 times due to the ASSERTs.
2023-03-20 20:59:50 +01:00
Robin Kertels
408b09da31
VideoCommon:VertexShaderManager: Inline SetVertexFormat & UpdateValue/Offset 2023-03-20 20:59:38 +01:00
Robin Kertels
c1be9628fc
VideoBackends:Vulkan: Use WorkQueueThread 2023-03-20 16:40:32 +01:00
Robin Kertels
9d422d14d5
WorkQueueThread: Fix WaitForCompletion 2023-03-20 16:31:40 +01:00
Robin Kertels
9186050daa
VideoBackends:Vulkan: Clean up submission thread BlockingLoop usage 2023-03-20 16:23:35 +01:00
Robin Kertels
7703fef3a4
VideoCommon:VertexLoaderManager: Only update vertex format in shader manager if necessary. 2023-03-20 00:41:16 +01:00
Admiral H. Curtiss
454d2fd9ab
Interpreter: Avoid ppcState global (Interpreter_SystemRegisters.cpp). 2023-03-19 03:11:22 +01:00
Admiral H. Curtiss
c582aad0c7
Interpreter: Avoid ppcState global (Interpreter_Paired.cpp). 2023-03-19 03:11:18 +01:00
Admiral H. Curtiss
514a7af473
Interpreter: Avoid ppcState global (Interpreter_LoadStorePaired.cpp). 2023-03-19 03:11:13 +01:00
Admiral H. Curtiss
9af8410e4c
Interpreter: Avoid ppcState global (Interpreter_LoadStore.cpp). 2023-03-19 03:11:09 +01:00
Admiral H. Curtiss
8b13349886
Interpreter: Avoid ppcState global (Interpreter_Integer.cpp). 2023-03-19 03:11:05 +01:00
Admiral H. Curtiss
2ce86a890a
Interpreter: Avoid ppcState global (Interpreter_FloatingPoint.cpp). 2023-03-19 03:11:01 +01:00
Admiral H. Curtiss
d4ca591e02
Interpreter: Avoid ppcState global (Interpreter_Branch.cpp). 2023-03-19 03:10:56 +01:00
Admiral H. Curtiss
68ab623764
Interpreter: Avoid ppcState global (Interpreter.cpp). 2023-03-19 03:10:42 +01:00
Admiral H. Curtiss
3d67c11b91
Interpreter: Move global state into class, move instance to System. 2023-03-19 03:05:20 +01:00
Admiral H. Curtiss
919182eda2
Interpreter: Pass Interpreter to CPU instruction functions. 2023-03-19 03:05:11 +01:00
Admiral H. Curtiss
a4d3342419
Merge pull request #11665 from JosJuice/fix-movie-wii-save
Core: Fix starting movie recording with existing Wii save
2023-03-19 01:46:21 +01:00
Admiral H. Curtiss
fb7a371ac0
Merge pull request #11666 from AdmiralCurtiss/updater-spaces
WinUpdater: Quote path for args when relaunching Dolphin.
2023-03-18 18:32:35 +01:00
Admiral H. Curtiss
33d0ec97e9
WinUpdater: Quote path for args when relaunching Dolphin. 2023-03-17 12:48:39 +01:00
TellowKrinkle
d037c60caf CMake: Use proper dependency tracking command for storyboard compiling 2023-03-17 01:28:33 -05:00
TellowKrinkle
66936f2087 CMake: Use generator expressions to get codesigning targets
Also works around a bug where CMake's ninja generator doesn't properly handle ||'s on POST_BUILD commands, making the || apply to the whole build like `<link> && custom0 || custom1`
2023-03-17 01:28:16 -05:00
Pokechu22
4dd658f4da Remove PPCTables::UsesFPU
We don't have getters for other flags, so it's not useful to have that.
2023-03-16 18:39:41 -07:00
Pokechu22
164ea57790 Split PPCTables from Interpreter_Tables
This also allows use of constexpr in both places. Some additional work was needed in PPCTables due to mutable data associated with each opcode.
2023-03-16 18:36:25 -07:00
Pokechu22
cd627d1232 PPCTables: Fix OPLOG system
Since OPLOG is defined in PPCTables.cpp only, it isn't visible elsewhere. This broke in 3ede866c37.
2023-03-16 18:36:25 -07:00
Pokechu22
34f39ee22e JitArm64_Tables: Use C++20 features 2023-03-16 18:36:25 -07:00
Pokechu22
ec7432ef36 Jit64_Tables: Use C++20 features 2023-03-16 18:36:25 -07:00
Pokechu22
14a93d24e1 Common: Add constexpr Fill function 2023-03-16 18:36:25 -07:00
JosJuice
d179acef38 Core: Refactor InitializeDeterministicWiiSaves
Some simple deduplication.
2023-03-16 22:49:46 +01:00
JosJuice
9e7409e71e Core: Fix starting movie recording with existing Wii save
A change made in 0d095b4 didn't take into account that the movie system
doesn't set sync_titles.
2023-03-16 22:45:40 +01:00
Pierre Bourdon
d623871f3e
Merge pull request #11664 from OatmealDome/macos-updater-test-mode
MacUI: Add stub implementation of UI::IsTestMode()
2023-03-16 15:24:49 +01:00
OatmealDome
bbe2bd5fec MacUI: Add stub implementation of UI::IsTestMode() 2023-03-16 02:44:36 -04:00
Pierre Bourdon
91fca0783e
Merge pull request #11647 from AdmiralCurtiss/perfquery-inconsistency
Fix PerfQuery inconsistencies across backends.
2023-03-15 15:20:11 +01:00
Mai
4281606838
Merge pull request #11641 from JosJuice/android-remove-old-config
Android: Remove support for the old config system
2023-03-14 15:48:04 -04:00
Pierre Bourdon
e83b6e19ab
Merge pull request #11655 from AdmiralCurtiss/dtk-heap
HW/DVDInterface: Avoid heap allocation in DTK callback.
2023-03-14 13:45:41 +01:00
Admiral H. Curtiss
4c21cdd0e6
HW/DVDInterface: Do DTK math in blocks instead of in samples. 2023-03-14 13:19:44 +01:00
Admiral H. Curtiss
66b6a60afe
HW/DVDInterface: Avoid heap allocation in DTK callback. 2023-03-14 10:58:03 +01:00
Pierre Bourdon
3783bedc25
Merge pull request #11635 from Dentomologist/wiimote_fix_disconnection_deadlock
ControllerInterface: Fix deadlock when Wii Remote disconnects
2023-03-14 02:41:36 +01:00
Admiral H. Curtiss
aac9647ba2
Divide by MSAA for PerfQuery in all backends. 2023-03-14 02:13:25 +01:00
Admiral H. Curtiss
ddd2b598da
Return quarter value for PerfQuery in all backends. 2023-03-14 02:08:20 +01:00
Admiral H. Curtiss
43a5d506c8
Merge pull request #11644 from deReeperJosh/trapteamaudio
Skylander Portal: Play Trap Team Audio
2023-03-14 01:29:20 +01:00
Admiral H. Curtiss
26605c0184
Merge pull request #11649 from Pokechu22/tas-controller-input-update-widgets
DolphinQt: Fix TAS widgets not updating with enable controller input
2023-03-14 01:21:17 +01:00
Admiral H. Curtiss
3006c23c85
Core/CPUThreadGuard: Fetch System from Guard. 2023-03-13 18:13:20 +01:00
Admiral H. Curtiss
31d33d0efd
HW/ProcessorInterface: Store reference to System in class. 2023-03-13 18:13:20 +01:00
Admiral H. Curtiss
ba852a7812
HW/Memmap: Store reference to System in MemoryManager. 2023-03-13 18:13:20 +01:00
Admiral H. Curtiss
026b6a3e0f
HW: Pass System to functions. 2023-03-13 18:13:20 +01:00
Mai
137b9d1da1
Merge pull request #11646 from AdmiralCurtiss/si-class
HW/SerialInterface: Refactor to class.
2023-03-13 13:09:51 -04:00
Pierre Bourdon
a6b2655631
Merge pull request #11636 from shuffle2/updater-test
Add test for Updater
2023-03-13 15:47:37 +01:00
Pokechu22
3f6b931150 DolphinQt: Fix TAS widgets not updating with enable controller input
This regressed in 0300b44d23. Specifically, the sliders and the stick/IR widgets did not update, but the spin boxes did update.
2023-03-12 17:58:48 -07:00
Joshua de Reeper
f27e8216a5 Skylander Portal: Play Trap Team Audio
Asserts and length handling
2023-03-13 13:01:48 +13:00
Admiral H. Curtiss
bf2f901a99
HW/SerialInterface: Refactor to class. 2023-03-12 16:08:56 +01:00
Admiral H. Curtiss
d371b17f37
HW/SerialInterface: Pass System to ISIDevice. 2023-03-12 14:19:38 +01:00
Mai
ab05dfc263
Merge pull request #11642 from shuffle2/winupdater-fail
winupdater: improve wording of UI::Error
2023-03-12 04:11:16 -04:00
Shawn Hoffman
ab3da5e4ce winupdater: improve wording of UI::Error 2023-03-11 13:25:38 -08:00
Shawn Hoffman
06cb4ffa64 winupdater: fix CR getting into parsed VCToolsUpdateURL 2023-03-11 12:58:33 -08:00
Shawn Hoffman
0a8725e4a9 updater: add test for update flow
currently windows-only
2023-03-11 12:58:33 -08:00
Shawn Hoffman
de0bc06856 updater: flush log after each write 2023-03-11 12:58:33 -08:00
JosJuice
53e7090f55 Migrate game INI profile setting to new config system 2023-03-11 17:51:58 +01:00
Admiral H. Curtiss
069280ddc6
HW/VideoInterface: Refactor to class. 2023-03-11 12:50:35 +01:00
Admiral H. Curtiss
2102e64299
HW/VideoInterface: Savestate members individually. 2023-03-11 12:48:02 +01:00
JosJuice
62ff2f1030
Merge pull request #11385 from JosJuice/android-input-overhaul
Android input overhaul
2023-03-11 12:37:44 +01:00
Admiral H. Curtiss
84542d915d
HW/MemoryInterface: Refactor to class. 2023-03-11 00:57:16 +01:00
Admiral H. Curtiss
bf95d4012f
HW/EXI: Refactor ExpansionInterface to class. 2023-03-11 00:56:37 +01:00
Mai
e4df388128
Merge pull request #11638 from JosJuice/tas-input-motionplus
DolphinQt: Add MotionPlus support to TAS input
2023-03-10 16:54:35 -05:00
Admiral H. Curtiss
d31733ce64
HW/DVD: Rename DVDThreadManager to DVDThread. 2023-03-10 20:22:29 +01:00
Admiral H. Curtiss
25e883280a
HW/DVD: Merge DVDThread namespace into DVD. 2023-03-10 20:20:19 +01:00
JosJuice
4d34f86121 DolphinQt: Add MotionPlus support to TAS input
Will manually controlling both an accelerometer and a gyroscope at the
same time be reasonable to do? No idea. Was this easy to implement
thanks to the input override system? Yes.

Fixes https://bugs.dolphin-emu.org/issues/12443.
2023-03-10 19:36:17 +01:00
Admiral H. Curtiss
d26a540253
HW/DVD: Rename DVDInterfaceManager to DVDInterface. 2023-03-10 18:37:46 +01:00
Admiral H. Curtiss
ee35103ed9
HW/DVD: Rename DVDInterface namespace to DVD. 2023-03-10 18:37:18 +01:00
Admiral H. Curtiss
dca8e9dc1e
HW/DVDThread: Refactor to class. 2023-03-10 18:12:59 +01:00
Admiral H. Curtiss
eb25c46a91
HW/DVDInterface: Refactor to class. 2023-03-10 18:12:59 +01:00
Admiral H. Curtiss
929222ffbd
HW/DSP: Refactor to class. 2023-03-09 22:35:29 +01:00
Mai
40ff9b25b7
Merge pull request #11633 from AdmiralCurtiss/ai-class
HW/AudioInterface: Refactor to class.
2023-03-09 11:59:47 -05:00
Admiral H. Curtiss
1023e5dd4f
Merge pull request #11441 from JosJuice/jit64-lea-fixup
Jit64: Fix the offsetAddedToAddress correction
2023-03-09 16:13:25 +01:00
Admiral H. Curtiss
9ed388fc8a
Merge pull request #11557 from AdmiralCurtiss/split-file-reader
DiscIO: Add support for CleanRip-style split ISOs.
2023-03-09 16:13:15 +01:00
Admiral H. Curtiss
8c7997d6ca
Merge pull request #11601 from Dentomologist/bluetooth_adapter_missing_message
Config: Restore Bluetooth adapter missing message in Controller Settings
2023-03-09 16:10:14 +01:00
Admiral H. Curtiss
234c5dd90e
Merge pull request #11622 from JosJuice/tas-input-nonblocking
DolphinQt: Rework TAS input threading
2023-03-09 16:08:30 +01:00
Admiral H. Curtiss
d638d2dcb7
HW/AudioInterface: Refactor to class. 2023-03-09 02:40:29 +01:00
Dentomologist
d6a8e6caaf ControllerInterface: Fix deadlock when Wii Remote disconnects
In UpdateInput, lock m_devices_population_mutex before m_devices_mutex
to be consistent with other ControllerInterface functions. Normally the
former lock isn't needed in UpdateInput, but when a Wii Remote
disconnects it calls RemoveDevice which results in the mutexes being
locked in the wrong order.
2023-03-08 17:22:27 -08:00
Admiral H. Curtiss
a1c2651fee
HW/EXI: Pass System to IEXIDevice. 2023-03-08 22:51:17 +01:00
Admiral H. Curtiss
7044cff011
Core/Boot: Pass around System. 2023-03-08 22:41:43 +01:00
Admiral H. Curtiss
912cd456fb
Core: Add System parameter to CPUThreadGuard. 2023-03-08 22:41:42 +01:00
JosJuice
0300b44d23 DolphinQt: Rework TAS input threading, part 2 (analog inputs) 2023-03-08 17:49:03 +01:00
JosJuice
11e4d46927 DolphinQt: Remove unneeded out parameters in TASInputWindow
IIRC we needed this before the input override system was added.
2023-03-08 17:49:03 +01:00
JosJuice
3eac1fc284 DolphinQt: Rework TAS input threading, part 1 (buttons)
This gets rid of a blocking operation, improving performance and fixing
https://bugs.dolphin-emu.org/issues/12893.

This also makes us no longer directly access the state of certain UI
elements from the CPU thread, which probably wasn't thread-safe but
doesn't seem to have caused any observable issues so far.
2023-03-08 17:49:02 +01:00
Admiral H. Curtiss
3b364c5c16
HW/CPU: Refactor to class, move to System. 2023-03-08 12:23:37 +01:00
Admiral H. Curtiss
0b9002ec2a
Merge pull request #11568 from SMarioMan/socket-broadcast
Network/Socket: Enable broadcast permissions in socket requests
2023-03-08 00:11:44 +01:00
Mai
16023ece6d
Merge pull request #11621 from deReeperJosh/skylandersfilefix
Skylander Portal: Clearing and Reloading fix
2023-03-07 15:24:46 -05:00
Admiral H. Curtiss
6d38dd9821
Qt/WatchWidget: Don't update if not paused. 2023-03-07 20:31:15 +01:00
JosJuice
1b55d7c594 Android: Change how the overlay controller setting works
Up until now, there have been two settings on Android that stored the
selected Wii Remote extension: the normal one that's also used on PC,
and a SharedPreferences one that's used by the overlay controls to
determine what controls to show. It is possible for these two to end up
out of sync, and my input changes have made that more likely to happen.

To fix this, let's rework how the overlay controller setting works.
We don't want it to encode the currently selected Wii Remote extension.
However, we can't simply get rid of the setting, because for some Wii
games we need the ability to switch between a GameCube controller and a
Wii Remote. What this commit does is give the user the option to select
any of the 4 GameCube controllers and any of the 4 Wii Remotes. (Before,
controllers 2-4 weren't available in the overlay.) Could be useful for
things like the Psycho Mantis fight in Metal Gear Solid. I'm also
switching from SharedPreferences to Dolphin.ini while I'm at it.
2023-03-07 17:39:34 +01:00
JosJuice
4c326f2030 Android: Remove the in-emulation IR sensitivity options
This too can be set in the normal controller settings now.
2023-03-07 17:39:34 +01:00
JosJuice
9b9b6d97bc Config: Simplify IsSettingSaveable's handling of Android section
The Android-specific controller mapping system is now gone,
so IsSettingSaveable can be greatly simplified.
2023-03-07 17:39:34 +01:00
JosJuice
c2779aef06 Android: Add the advanced input mapping dialog
It's missing a lot of features from the PC version for now, like
buttons for inserting functions and the ability to see what the
expression evaluates to. I mostly just wanted to get something in
place so you can set up rumble.

Co-authored-by: Charles Lombardo <clombardo169@gmail.com>
2023-03-07 17:39:30 +01:00
Admiral H. Curtiss
f389da2a33
HW/HSP: Refactor to class, move to System. 2023-03-07 02:11:39 +01:00
Admiral H. Curtiss
655cc7f75c
DiscIO: Add support for CleanRip-style split ISOs. 2023-03-05 19:23:55 +01:00
Scott Mansell
4acdbc0e84
Merge pull request #11625 from phire/eventhook_nodiscard
Fix KillRenderer config changed regression
2023-03-06 03:09:12 +13:00