Commit graph

29638 commits

Author SHA1 Message Date
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
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
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
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
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
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