Commit Graph

31126 Commits

Author SHA1 Message Date
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
Scott Mansell 901f12c935 HookableEvents: Add [[nodiscard]] to Register 2023-03-06 00:12:26 +13:00
Scott Mansell b7db2510ef Don't discard ConfigChanged callback handle 2023-03-06 00:12:26 +13:00
Scott Mansell 70cfb46f8e Fix duplicated FPS
This is a small regression from KillRenderer, which caused duplicated
frames to be counted on the FPS counter when the "Skip Presenting
Duplicated Frames" option was disabled.
2023-03-05 23:31:12 +13:00
Joshua de Reeper 2585ae9b2c Skylander Portal: Clearing and Reloading fix 2023-03-04 20:13:54 +13:00
JosJuice 2b1dd52750 Android: Add input device selection 2023-03-03 22:28:24 +01:00
JosJuice 9a8a395560 GCPadEmu/WiimoteEmu: Reorder control groups
This way, Android (which will show groups in the order they're defined)
will show groups in a more logical order similar to DolphinQt.

The main thing that was annoying me was how early Rumble was for
Wii Remotes. Some of the other changes I'm making in this commit,
like the order of Shake/Tilt/Swing, are more arbitrary and were
made for consistency with DolphinQt. But there are also places
where I didn't go all the way with matching DolphinQt. Most notably,
DolphinQt puts sticks before buttons, but I don't see any reason
to do that for Android.
2023-03-03 22:28:24 +01:00
JosJuice e0562abb7d ControllerEmu: Add default mappings for Android
Unlike PCs, Android doesn't really have any input method (not counting
touch) that can reasonably be expected to exist on most devices.
Because of this, I don't think shipping with a default mapping for the
buttons and sticks of GameCube controllers and Wii Remotes makes sense.
I would however like to ship default mappings for a few things:

1. Mapping the Wii Remote's accelerometer and gyroscope to the device's
   accelerometer and gyroscope. This functionality is useful mainly
   for people who use the touchscreen, but can also be useful when
   using a clip-on controller. The disadvantage of having this mapped
   by default is that games disable pointer input if the accelerometer
   reports that the Wii Remote is pointed at the ceiling.

2. Mapping GC keyboards for use with a physical keyboard, like on PC.
   After all, there's no other way of mapping them that makes sense.

3. Mapping rumble to the device's vibrator.

Aside from the GC keyboards, this approach is effectively the same as
what we were doing before the input overhaul.
2023-03-03 22:28:23 +01:00
JosJuice 8e33458f48 ControllerInterface/Android: Implement rumble 2023-03-03 22:28:23 +01:00
JosJuice 065481d989 ControllerInterface/Android: Automatically suspend sensors
This is a battery-saving measure. Whether a sensor should be suspended
is determined in the same way as whether key events and motion events
should be handled by the OS rather than consumed by Dolphin.
2023-03-03 22:28:23 +01:00
JosJuice 36acb17700 ControllerInterface/Android: Implement sensor input for InputDevices
This functionality was added in Android 12 to let apps get motion data
for gamepads.
2023-03-03 22:28:23 +01:00
JosJuice 5e51b56d72 ControllerInterface/Android: Implement sensor input 2023-03-03 22:28:23 +01:00
JosJuice 104ea09892 ControllerInterface/Android: Implement hotplug 2023-03-03 22:28:23 +01:00
JosJuice d6af294a23 ControllerInterface/Android: Return whether input was handled
When Android presents an input event to an app, it wants the app to
return true or false depending on whether the app handled the event or
not. If the event wasn't handled by the app, it will be passed on to
the system, which may decide to take an action depending on what kind
of input event it is. For instance, if a B button press is passed on to
the system, it will be turned into a Back press. But if an R1 press is
passed on to the system, nothing in particular happens.

It's important that we get this return value right in Dolphin. For
instance, the user generally wouldn't want a B button press to open
the EmulationActivity menu, so B button presses usually shouldn't be
passed on to the system - but volume button presses usually should be
passed on to the system, since it would be hard to adjust the volume
otherwise. What ButtonManager did was to pass on input events that are
for a button which the user has not mapped, which I think makes sense.
But exactly how to implement that is more complicated in the new input
backend than in ButtonManager, because now we have a separation between
the input backend and the code that keeps track of the user's mappings.

What I'm going with in this commit is to treat an input as mapped if
it has been polled recently. In part I chose this because it seemed
like a simple way of implementing it that wouldn't cause too many
layering violations, but it also has two useful side effects:

1. If a controller is not being polled (e.g. GameCube controllers in
   Wii games that don't use them), its mappings will not be considered.
2. Once sensor input is implemented in the Android input backend,
   we will be able to use this "polled recently" tracking to power down
   the sensors at times when the game is using a Wii Remote reporting
   mode that doesn't include motion data. (Assuming that the sensor
   inputs only are mapped to Wii Remote motion controls, that is.)
2023-03-03 22:28:23 +01:00
JosJuice ca508e4503 ControllerInterface/Android: Handle input events
Android doesn't let us poll inputs whenever we want. Instead, we
listen to input events (activities will have to forward them to the
input backend), and store the received values in atomic variables
in the Input classes. This is similar in concept to how ButtonManager
worked, but without its homegrown second input mapping system.
2023-03-03 22:28:23 +01:00
JosJuice 792cb62195 ControllerInterface/Android: Implement device population 2023-03-03 22:28:23 +01:00
JosJuice 0150f521f7 ControllerInterface/Android: Rip out ButtonManager
ButtonManager is very different from how a normal input backend works,
and is making it hard for us to improve controller support on Android.
The following commits will add a new input backend in its place.
2023-03-03 22:28:23 +01:00
JosJuice 95ce41ac56
Merge pull request #11399 from JosJuice/jit-one-stack
Jit: Don't use a second stack
2023-03-03 22:27:16 +01:00
Minty-Meeo bf079d6d3a [[unlikely]] ASSERT
and other ASSERT usage changes
2023-03-02 19:54:15 -06:00
Mai 6361586a04
Merge pull request #11582 from Pokechu22/software-crash-on-startup
Software: Fix regressions from "Kill Renderer"
2023-03-02 15:13:00 -05:00
Mai ab2f8d3475
Merge pull request #11607 from AdmiralCurtiss/sd-progress
Qt/WiiPane: Add progress window for SD card conversion.
2023-03-02 15:08:18 -05:00
Pokechu22 9cdc0aca9b Software: Fix "Auto-Adjust Window Size"
This also needs to be handled on the software renderer path.
2023-03-02 11:08:49 -08:00
Pokechu22 78428dd8db Software: Fix crash on startup when using "Compile Shaders Before Starting"
When that setting is enabled, m_xfb_entry is initially not present (during the phase where a shader compilation progress bar would be shown). The main path checks for m_xfb_entry, but the software renderer fallback path didn't.

Fixes another aspect of https://bugs.dolphin-emu.org/issues/13172.
2023-03-02 11:08:49 -08:00
Pokechu22 4a2d3c83c7 Software: Implement GetSurfaceInfo()
Before, it used a fallback where it returned a default object, where the width and height were set to 0. Presenter::Initialize() used GetSurfaceInfo to set the backbuffer size, then used that size when initializing the on-screen UI (even for the software renderer, where the on-screen UI isn't currently present), which meant that ImGui got a window size of 0 and thus resulted in a failed assertion.

Although BindBackbuffer checks for size changes, it doesn't help because ImGui has already been initialized, and the size hasn't actually changed since initialization occured.

Fixes one aspect of https://bugs.dolphin-emu.org/issues/13172.
2023-03-02 11:08:49 -08:00
SMarioMan 078730c873
Avoid altering TCP sockets
Co-authored-by: sepalani <sepalani@hotmail.fr>
2023-03-01 20:52:43 -05:00
iwubcode 42cb3f3904 VideoCommon: remove HiResTexture DDS loading, update hirestexture logic to use custom texture data 2023-03-01 12:11:04 -06:00
iwubcode 3e35255983 VideoCommon: add class to load custom texture data 2023-03-01 11:58:37 -06:00
Admiral H. Curtiss e2bd7d1d95
Common/FatFsUtil: Close temp file before deleting it on conversion failure. 2023-02-28 20:31:56 +01:00
Admiral H. Curtiss fe26b54efd
Qt/WiiPane: Add progress window for SD card conversion. 2023-02-28 20:31:55 +01:00
Admiral H. Curtiss 435d8c39ee
Common/FatFsUtil: Add callback for cancelling SD card conversion. 2023-02-28 20:31:51 +01:00
JosJuice b6256a57ef Jit: Move stack handling code to JitBase
Deduplication between Jit64 and JitArm64.
2023-02-28 20:30:06 +01:00
JosJuice 86c1f6e1e7 Jit: Don't use a second stack
This second stack leads to JNI problems on Android, because ART fetches
the address and size of the original stack using pthread functions
(see GetThreadStack in art/runtime/thread.cc), and (presumably) treats
stack addresses outside of the original stack as invalid. (What I don't
understand is why some JNI operations on the CPU thread work fine
despite this but others don't.)

Instead of creating a second stack, let's borrow the approach ART uses:
Use pthread functions to find out the stack's address and size, then
install guard pages at an appropriate location. This lets us get rid
of a workaround we had in the MsgAlert function.

Because we're no longer choosing the stack size ourselves, I've made some
tweaks to where the put the guard pages. Previously we had a stack of
2 MiB and a safe zone of 512 KiB. We now accept stacks as small as 512 KiB
(used on macOS) and use a safe zone of 256 KiB. I feel like this should
be fine, but haven't done much testing beyond "it seems to work".

By the way, on Windows it was already the case that we didn't create
a second stack... But there was a bug in the implementation!
The code for protecting the stack has to run on the CPU thread, since
it's the CPU thread's stack we want to protect, but it was actually
running on EmuThread. This commit fixes that, since now this bug
matters on other operating systems too.
2023-02-28 20:29:46 +01:00
JosJuice 0cdae98181 Jit: Fix GUARD_OFFSET calculation
Seems like this was broken all along. The safe zone is at the lower
addresses of the stack, not the higher addresses.
2023-02-28 19:11:35 +01:00
Admiral H. Curtiss a0974c18cd
RiivolutionPatcher: Use capitalization of file that exists in the host file system if possible.
Fixes https://bugs.dolphin-emu.org/issues/13138
2023-02-28 00:56:34 +01:00
Admiral H. Curtiss bdb19085c4
Common: Add utility function for case-insensitive string comparison. 2023-02-28 00:56:33 +01:00
JosJuice 7586fc8134
Merge pull request #11608 from Dentomologist/fix_dynamicinputtextures_directory_error_logs
UICommon: Create Load/DynamicInputTextures directory on startup
2023-02-27 18:07:57 +01:00
Admiral H. Curtiss 251fb92b80
Merge pull request #11606 from JosJuice/control-group-save-enabled
InputCommon: Fix ControlGroup::SaveConfig with DefaultValue::Disabled
2023-02-27 12:02:25 +01:00
Admiral H. Curtiss c730ee2de2
Merge pull request #11596 from AdmiralCurtiss/copyany
Common/FileUtil: Migrate CopyDir() to a more clear interface.
2023-02-27 12:02:00 +01:00
Admiral H. Curtiss a11b9d585f
Common/FileUtil: Remove obsolete CopyDir() function. 2023-02-26 23:17:10 +01:00
Admiral H. Curtiss 4f462b4ef6
Migrate destructive calls of File::CopyDir() to File::Move(). 2023-02-26 23:17:10 +01:00
Admiral H. Curtiss 5367bf394c
Common/FileUtil: Add Move() function. 2023-02-26 23:17:09 +01:00
Dentomologist e62162e486 UICommon: Create Load/DynamicInputTextures directory on startup
Fix console error spam on Dolphin and game startup if the directory
doesn't exist.
2023-02-26 13:10:15 -08:00
Daniel Garza 02f7c0213f
Qt/GameList: Also filter by filename when searching. 2023-02-26 19:13:45 +01:00
JosJuice 9b3816c993 InputCommon: Fix ControlGroup::SaveConfig with DefaultValue::Disabled
I also changed LoadConfig, but that change doesn't affect correctness,
it's only so it looks neat by matching SaveConfig.

This bug was added in 18a4afb053, the
commit that introduced DefaultValue::Disabled. The bug can't actually be
triggered in master, but it can be triggered in the Android input
overhaul PR.
2023-02-26 17:45:09 +01:00
Admiral H. Curtiss 26adf78e45
Merge pull request #11602 from JosJuice/cpu-guard-expression
PowerPC: Rework CPUThreadGuard handling in Expression.cpp
2023-02-26 11:55:47 +01:00
Shawn Hoffman 28956cc6c2 workaround msvc optimizer bug 2023-02-25 23:26:27 -08:00
Dentomologist ad6e95afb4 D3D: Restore workaround for erroneous NaN optimization
The HLSL compiler incorrectly decides isnan can't be true, so this
workaround was originally added in 52c82733 but lost during the
conversion to SPIR-V.
2023-02-25 16:27:30 -08:00
JosJuice ae5311d6e6 PowerPC: Rework CPUThreadGuard handling in Expression.cpp
See https://github.com/dolphin-emu/dolphin/pull/11554#discussion_r1113949572.
2023-02-25 16:13:34 +01:00
Dentomologist d18735e82e Qt/WiimoteControllersWidget: Add bluetooth unavailable message 2023-02-24 14:30:43 -08:00
Admiral H. Curtiss 1ed0e014cd
Migrate non-destructive calls of File::CopyDir() to File::Copy(). 2023-02-24 20:32:19 +01:00
Admiral H. Curtiss 884917a6d5
Common/FileUtil: Use non-throwing overload of is_directory() in CreateDir() and CreateFullPath(). 2023-02-24 20:32:19 +01:00
Admiral H. Curtiss e479f92418
Common/FileUtil: Add CreateDirs() function as a wrapper around std::filesystem::create_directories(). 2023-02-24 20:32:18 +01:00
Admiral H. Curtiss 616d57e7fc
Common/FileUtil: Add Copy() function as a wrapper around std::filesystem::copy(). 2023-02-24 20:32:18 +01:00
iwubcode 5d571b068f VideoBackends: rework d3d11 to specify samplers/bound textures using a bitset with a constant size, instead of hardcoding each individual enumeration value 2023-02-24 11:32:48 -06:00
Shawn Hoffman 2c2fb869a2 use std-provided randomness for JitArm64 unittests
decreases runtime significantly and lessens dependency on mbedtls
2023-02-22 12:55:12 -08:00
Admiral H. Curtiss e52aa52a66
Common/FileUtil: Rename Copy() to CopyRegularFile().
This is to clarify that it can only copy files, not folders.
2023-02-22 11:43:58 +01:00
Léo Lam 3c4a21315d
Merge pull request #11592 from Pokechu22/fix-delete-ticket
IOS/ES: Fix crash when deleting tickets
2023-02-21 10:53:37 +01:00
Pokechu22 f2ac3aec94 IOS/ES: Fix crash when deleting tickets
This broke formatting the system memory; see https://bugs.dolphin-emu.org/issues/13176. After calling ticket.DeleteTicket(), ticket.m_bytes was 0-length, but calling ticket.IsV1Ticket() still attempted to read from m_bytes.

This was introduced in 2fd9852ca8, although it didn't actually cause a crash until 929fba08e7.
2023-02-20 18:33:34 -08:00
Mai 6f21ce7d95
Merge pull request #11555 from CookiePLMonster/wil-todos
Address WIL todos in UICommon.cpp
2023-02-20 10:14:49 -05:00
Admiral H. Curtiss 4e6c89fbfd
Qt/CodeViewWidget: Don't read PC in Update() if we don't have a CPU thread guard. 2023-02-20 03:10:12 +01:00
Admiral H. Curtiss ef1520c2c6
Qt/CodeViewWidget: Don't try to pause emulator in Update() if we happen to be on a breakpoint. 2023-02-20 02:56:04 +01:00
Seeky 4e6e510003
Debugger: Add string comparison to conditional breakpoints. 2023-02-20 01:40:33 +01:00
JosJuice f2be35c7cd VideoCommon: Reword the unknown opcode error message
When faced with this error, users often don't try disabling dual core,
even though the error message suggests it. Perhaps the message is just
too long and lists too many things?

To try to improve the situation, I'm rewording the message and making it
say different things depending on what settings you are using.
2023-02-19 16:35:28 +01:00
JosJuice 78c53bfec8 Jit64: Fix the offsetAddedToAddress correction
The LEA that the signal handler is trying to undo the effects of is a
32-bit instruction, and the value in the register prior to the LEA is
also 32-bit, so the signal handler should use a 32-bit write.

(Actually, in the end this doesn't really matter, because the first
instruction that reads this value after backpatching is also a 32-bit
instruction...)
2023-02-18 21:14:31 +01:00
Admiral H. Curtiss 8db35e6d04
Merge pull request #11578 from Pokechu22/memory-leaks-feb-2023
Fix various memory leaks
2023-02-18 13:56:34 +01:00
Pokechu22 c94aacc968 AudioPane: Fix inconsistent initial state of audio stretching labels
This resulted in the labels being solid black even when audio stretching is disabled the first time the settings are opened, but then properly being greyed out after changing a setting (even the audio backend or DSP emulation engine, not just whether audio stretching is enabled).
2023-02-17 18:51:41 -08:00
Pokechu22 f1f3fd5d9d InputCommon: Fix memory leak in ExpressionParser
We allocate in MakeSuppressor via `return unique_ptr(std::make_unique<...>(...).release(), InvokingDeleter{}`, so it wasn't properly getting freed.
2023-02-17 18:29:36 -08:00
Pokechu22 b6d476241a CodeViewWidget: Fix memory leak
Per https://doc.qt.io/qt-6/qabstractitemview.html#setItemDelegateForColumn setItemDelegateForColumn does not take ownership of the parameter, so it was not being deleted. Specifying a parent to QObject (via QStyledItemDelegate's constructor) will allow it to automatically be deleted, per https://doc.qt.io/qt-6/objecttrees.html. The other instance of a QItemDelegate in IOWindow.cpp already used this.
2023-02-17 18:29:32 -08:00
Pokechu22 1c5e223532 MemoryViewWidget: Fix memory leaks
bp_item/row_item/item were never deleted, and the normal Qt ownership system wasn't applying to them because they were being cloned.
2023-02-17 18:17:01 -08:00
Admiral H. Curtiss 74abf48234
Merge pull request #11576 from yannhodiesne/convert-prevent-file-deletion
Check the input and destination paths before converting a game file onto itself
2023-02-17 18:49:15 +01:00
Markus Wick b381df700c
Merge pull request #11577 from JosJuice/android-armeabi-v7a
Android: Fix armeabi-v7a build
2023-02-17 17:57:38 +01:00
JosJuice 90b676d368 Android: Fix armeabi-v7a build
This very much isn't a build configuration that we're going to ship,
but I want to be able to tell people that they can build it on their
own if they really want to see how terribly it performs :)

Just like before, you'll need to edit two lines in app/build.gradle to
define ENABLE_GENERIC=ON and actually enable armeabi-v7a if you want an
armeabi-v7a build. This commit just fixes some compilations errors that
crop up if you do so.
2023-02-17 16:58:24 +01:00
Yann Hodiesne 49e897422f
Use a success count instead of files count 2023-02-17 15:49:31 +01:00
Yann Hodiesne cb42a03299
Check the input and destination paths before converting a game file onto itself
Before these changes you could tell Dolphin to convert a game file into the same format it is already in, leading to the FileDialog using the input path as the default destination path
An unsuspecting user could then click Save and Dolphin would try to convert the input file by writing the destination file on top of it... leading to an I/O error and the input file being entirely removed
2023-02-17 14:26:50 +01:00
Scott Mansell 28331c5905
Merge pull request #11574 from K0bin/val-fix
VideoBackends:Vulkan: Fix printing validation errors
2023-02-17 14:52:45 +13:00
Admiral H. Curtiss 0c48324c75
Jit64: Use 5 byte jump in mtmsr for the CP interrupt check.
WriteExternalExceptionExit() can write more than the maximum offset of the small jump.
2023-02-16 19:26:19 +01:00
Robin Kertels 2695666e6d
VideoBackends:Vulkan: Fix printing validation errors 2023-02-16 17:53:15 +01:00
Scott Mansell 6038a6e2db
Merge pull request #11569 from Hibyehello/patch-1
VideoBackend: Make Metal Default on MacOS
2023-02-16 21:08:35 +13:00
Pokechu22 74a14c7d1f ControllerInterface: Fix uninitialized variables in DualShockUDPClient
Strangely, this case did not trigger a C26495 warning in Visual Studio's analyzer; instead, I spotted this when using Valgrind.
2023-02-15 19:23:47 -08:00
Pokechu22 67381cdb8b VideoCommon: Remove unused ShutdownImGui function declaration
This was moved to the ~OnScreenUI() destructor in 0d4537d60f.
2023-02-15 19:20:59 -08:00
Pokechu22 8802f96b7e Fix uninitialized variable warnings (C26495) 2023-02-15 19:18:39 -08:00
Josh cd38ed76e2
Keep Vulkan precedence over OpenGL 2023-02-15 12:22:56 -06:00
Josh 546a016dc8
VideoBackend: Make Metal Default on MacOS 2023-02-15 12:05:54 -06:00
SMarioMan 301e97f7f7
Remove WinAPI-specific type from socket request 2023-02-15 09:29:21 -05:00
SMarioMan a45f6d9438
Enable broadcast permissions in socket requests 2023-02-15 07:59:38 -05:00
Admiral H. Curtiss 0758e00cfe
Common/FileUtil: Revert behavior of CreateFullPath().
This was accidentally changed in 7e6436db34.
2023-02-15 02:21:50 +01:00
Admiral H. Curtiss 661b74f4a3
Merge pull request #11564 from JosJuice/jitarm64-cmp-order
JitArm64: Fix special cases of cmp
2023-02-14 20:19:07 +01:00
Admiral H. Curtiss e1d3237dbd
Merge pull request #11342 from TellowKrinkle/GLLayerMac
VideoCommon: Fix stereoscopic 3D on OpenGL < 4.3 (macOS)
2023-02-14 20:17:22 +01:00
JosJuice 0049a76775 JitArm64: Fix special cases of cmp
This fixes a regression from 592ba31. When `a` was a constant 0 and `b`
was a non-constant 0x80000000, the 32-bit negation operation would
overflow, causing an incorrect result. The sign extension needs to happen
before the negation to avoid overflow.

Note that I can't merge the SXTW and NEG into one instruction.
NEG is an alias for SUB with the first operand being set to ZR,
but "SUB (extended register)" treats register 31 as SP instead of ZR.

I've also changed the order for the case where `a` is a constant
0xFFFFFFFF. I don't think the order actually affects correctness here,
but let's use the same order for all the cases since it makes the code
easier to reason about.
2023-02-14 19:16:00 +01:00
Admiral H. Curtiss 22ed084209
Merge pull request #11563 from JosJuice/host-lock-cpu-fixups
Follow-up fixes for "Properly lock CPU before accessing emulated memory"
2023-02-14 19:04:21 +01:00
JosJuice 5b6784432c Follow-up fixes for "Properly lock CPU before accessing emulated memory" 2023-02-14 18:44:16 +01:00
TellowKrinkle f25a0b43b6 VideoCommon: Fix stereoscopic 3D on OpenGL < 4.3 (macOS) 2023-02-14 18:25:33 +01:00
Pokechu22 4f6ce51d69 VideoCommon: Clear blend configuration if color/alpha update disabled
This works around an Intel driver bug where, on D3D12 only, dual-source blending behaves incorrectly if the second source is unused on. This bug is visible in skyboxes in Super Mario Sunshine, which first draw clouds and sun flare in greyscale and then draw the sky afterwards with a source factor of 1 and a dest factor of 1-src_color (this results in the clouds being tinted blue). This process is done on an RGB888 framebuffer, so alpha update is disabled. (Color update is enabled; note that if you look at this in Dolphin's fifo analyzer, it won't be enabled because they use the BP mask functionality to only change the blending functions and not alpha/color update, for whatever reason.)
2023-02-13 18:22:41 -08:00
Admiral H. Curtiss 5f929d00eb
Merge pull request #11560 from phire/EventHook_construct_on_first_use
HookableEvent: Switch to construct on first use
2023-02-14 01:01:03 +01:00
Admiral H. Curtiss 34a459bed7
Merge pull request #11445 from JosJuice/jit64-wraparound-backpatch
Jit64: Properly handle backpatching overflowed address calculations
2023-02-14 01:00:13 +01:00
Admiral H. Curtiss 3458c58c7d
Merge pull request #11503 from JosJuice/ppcanalyst-read-cr
PPCAnalyst: Actually check if instructions want CR
2023-02-14 00:55:24 +01:00
Admiral H. Curtiss e2d7b6d079
Merge pull request #11559 from Pokechu22/cache-fix-plru-updates
PPCCache: Update PLRU on any cache access
2023-02-14 00:50:54 +01:00
Admiral H. Curtiss 8f91cb62e6
Merge pull request #11426 from shuffle2/stdfs
fileutil: use std::filesystem
2023-02-14 00:50:34 +01:00
Admiral H. Curtiss e1dbea3658
JIT: Fix calls to HLE::Execute.
This got broken in 7cecb28bdf.
2023-02-13 11:47:47 +01:00
Scott Mansell 05181f6b88 HookableEvent: Switch to construct on first use
A registration might happen during static initialization, which opens
us up to issues with ordering of static initialization.
2023-02-13 18:48:43 +13:00
Scott Mansell 1fc5d37fd2
Merge pull request #11558 from Pokechu22/vertex-loader-size-assertion-details
VertexLoader: Add more info to m_vertex_size == m_src_ofs assertion
2023-02-13 17:34:04 +13:00
Pokechu22 cc411c4e41 VertexLoader: Add more info to m_vertex_size == m_src_ofs assertion 2023-02-12 20:10:38 -08:00
Pokechu22 14c4f4e7f6 PPCCache: Update PLRU on any cache access
The previous code only updated the PLRU on cache misses, which made it so that the least recently inserted cache block was evicted, instead of the least recently used/hit one.

This regressed in 9d39647f9e (part of #11183, but it was fine in e97d380437), although beforehand it was only implemented for the instruction cache, and the instruction cache hit extremely infrequently when the JIT or cached interpreter is in use, which generally keeps it from behaving correctly (the pure interpreter behaves correctly with it).

I'm not aware of any games that are affected by this, though I did not do extensive testing.
2023-02-12 19:59:19 -08:00
Scott Mansell a4729a026f
Merge pull request #11554 from JosJuice/host-lock-cpu
DolphinQt: Properly lock CPU before accessing emulated memory
2023-02-13 16:08:36 +13:00
Scott Mansell f37113204f
Merge pull request #11550 from iwubcode/set_common_samplers_count
VideoCommon: add constant value for maximum number of pixel samplers
2023-02-13 16:05:51 +13:00
Scott Mansell 2c24d07837
Merge pull request #11538 from t895/disc-speed-stuff
Rename "Speed up Disc Transfer Rate" to "Emulate Disc Speed"
2023-02-13 15:46:56 +13:00
Charles Lombardo 0ed64b080f Rename Fast Disc Speed to Emulate Disc Speed and invert option 2023-02-12 16:20:38 -05:00
Admiral H. Curtiss 300d63b492
DiscIO/FileBlob: Make m_size unsigned. 2023-02-12 20:51:08 +01:00
JosJuice 611e721a4d Jit64: Properly handle backpatching overflowed address calculations
Previously we would only backpatch overflowed address calculations
if the overflow was 0x1000 or less. Now we can handle the full 2 GiB
of overflow in both directions.

I'm also making equivalent changes to JitArm64's code. This isn't because
it needs it – JitArm64 address calculations should never overflow – but
because I wanted to get rid of the 0x100001000 inherited from Jit64 that
makes even less sense for JitArm64 than for Jit64.
2023-02-12 20:48:27 +01:00
Admiral H. Curtiss c3dee1f11c
Merge pull request #11499 from iwubcode/graphics-mod-pass-base-path
VideoCommon: allow graphics mods to have access to the file path where the config exists to load additional files
2023-02-12 19:04:59 +01:00
Silent 9f3d3e2b9c
Address WIL todos in UICommon.cpp 2023-02-12 15:05:54 +01:00
JosJuice 6f0266e8de DolphinQt: Only update call stack if paused
This avoids a pseudo infinite loop where CodeWidget::UpdateCallstack
would lock the CPU in order to read the call stack, causing the CPU to
call Host_UpdateDisasmDialog because it's transitioning from running to
pausing, causing Host::UpdateDisasmDialog to be emitted, causing
CodeWidget::Update to be called, once again causing
CodeWidget::UpdateCallstack to be called, repeating the cycle.

Dolphin didn't go completely unresponsive during this, because
Host_UpdateDisasmDialog schedules the emitting of Host::UpdateDisasmDialog
to happen on another thread without blocking, but it was stopping certain
operations like exiting emulation from working.
2023-02-12 12:50:28 +01:00
JosJuice 7cecb28bdf DolphinQt: Properly lock CPU before accessing emulated memory
This fixes a problem I was having where using frame advance with the
debugger open would frequently cause panic alerts about invalid addresses
due to the CPU thread changing MSR.DR while the host thread was trying
to access memory.

To aid in tracking down all the places where we weren't properly locking
the CPU, I've created a new type (in Core.h) that you have to pass as a
reference or pointer to functions that require running as the CPU thread.
2023-02-12 11:27:50 +01:00
MayImilae 508c79a66f Rename VI Skip to VBI Skip
VI Skip was very hard to explain on the blog, so this small changes
clarifies what VI Skip is to resolve that issue.
2023-02-11 20:28:41 -08:00
iwubcode 20dc4401c5 VideoCommon: pass a graphics mod base path to the graphics mod, so it can lookup other relative files if necessary 2023-02-11 00:21:40 -06:00
Admiral H. Curtiss 2f6e7d497d
ENetUtil: Add check for valid socket in SendPacket(). 2023-02-10 19:32:40 +01:00
Admiral H. Curtiss 9b5c52ad8d
Merge pull request #11541 from Pokechu22/dsptool-no-redefine-label
DSPTool: Fix missing error when redefining labels
2023-02-10 11:02:36 +01:00
Admiral H. Curtiss 3c2933cad2
Merge pull request #11549 from Pokechu22/texturecachebase-bitset-include
TextureCacheBase: Remove unused bitset include
2023-02-10 10:55:07 +01:00
JMC47 258151fe5a
Merge pull request #11523 from degasus/OGL_KHR_subgroup
VideoBackend/OGL: Prefer KHR_shader_subgroup over NV_shader_thread.
2023-02-10 04:47:20 -05:00
iwubcode af313f8419 VideoCommon: add constant value to set the allowed maximum number of pixel samplers 2023-02-10 00:46:11 -06:00
Pokechu22 3024ca2146 Suppress memcpy writing to an object with no trivial copy-assignment warnings
We need to copy padding in most of these cases, and the objects are trivially copyable; however, BitField prevents trivial copy-assignment.
2023-02-09 16:23:49 -08:00
Pokechu22 ac7a17579e BreakPoints: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 3bd655463d MemoryViewWidget: Fix warning: enumeration value ‘Null’ not handled in switch [-Wswitch] 2023-02-09 16:23:02 -08:00
Pokechu22 5c8d8383e2 CodeWidget: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 470115fd4f TextureDecoder: Fix warning: array subscript has type ‘char’ [-Wchar-subscripts] 2023-02-09 16:23:02 -08:00
Pokechu22 debed35c10 State: Fix shadowing warnings 2023-02-09 16:23:02 -08:00
Pokechu22 9559c45cae CommandProcessor: Fix shadowing warnings 2023-02-09 16:23:02 -08:00
Pokechu22 f1b1f5c013 IOS: Fix shadowing warnings 2023-02-09 16:23:02 -08:00
Pokechu22 8d71f542cb Boot: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 39c5d55f03 VertexLoaderBase: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 95bee485c9 GraphicsModManager: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 7fafb00561 InputCommon/XInput2: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 edcc4a6578 AudioInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:02 -08:00
Pokechu22 8ad7d58303 DSP: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:02 -08:00
Pokechu22 24df509447 DVDInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:02 -08:00
Pokechu22 9c52c600c4 EXI_DeviceEthernet: Fix warning: operation on ‘current_rwp’ may be undefined [-Wsequence-point] 2023-02-09 16:23:01 -08:00
Pokechu22 1465620721 GCMemcardDirectory: Fix variable shadowing warning 2023-02-09 16:23:01 -08:00
Pokechu22 c555a4f0c6 SerialInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:01 -08:00
Pokechu22 72b4675c8f VideoInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:01 -08:00
Pokechu22 49a84cbc4c Resolve various "no previous declaration" warnings 2023-02-09 16:23:01 -08:00
Pokechu22 2288ba28ae Software/Tev: Fix member shadowing warnings 2023-02-09 16:23:01 -08:00
Pokechu22 8b98dd9be3 Move s_using_custom_client to DiscordPresence.cpp
Otherwise, files that include the header get warning: ‘Discord::s_using_custom_client’ defined but not used.
2023-02-09 16:23:01 -08:00
Pokechu22 b316ce6fdd Fix warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 2023-02-09 16:23:01 -08:00
Pokechu22 af5013b60f Suppress -Winvalid-offsetof for PowerPC::PowerPCState
This code doesn't need to be portable (since the goal is to have a smaller offset for x64 codegen), so if it's not supported there are other problems. Similar code exists in e.g. DSP.cpp.
2023-02-09 16:23:01 -08:00
Pokechu22 5283a85205 TextureCacheBase: Remove unused bitset include
It was used for valid_bind_points, which was removed in 88bd10cd30 (and the declaration was more recently removed in 606c18210d).
2023-02-09 16:04:48 -08:00
JMC47 a88e5ef390
Merge pull request #11498 from iwubcode/save_pipeline_config
VideoCommon: store the configuration used to create the AbstractPipeline
2023-02-09 18:38:49 -05:00
Markus Wick a38e365931
Merge pull request #11547 from JosJuice/fix-gles
OGL: Fix GLES crashing on initialization
2023-02-09 18:16:48 +01:00
JosJuice 6dfd582de6 OGL: Fix GLES crashing on initialization
Fixes a regression from PR 11522 ("Kill Renderer").
2023-02-09 18:09:03 +01:00
Markus Wick 17d7b75a9b
Merge pull request #11544 from jmallach/spng
Allow building against system libspng
2023-02-09 14:47:58 +01:00
degasus 4b2aa948e6 VideoBackend/OGL: Prefer KHR_subgroup over NV_shader_thread.
While the NV extension is totally fine, the KHR extension should be able to support more hardware.

For NVIDIA, the hardware either supports both or neither, it just needs a driver from the last two years.
For AMD, the drivers from late 2022-12 seems to bring support for the KHR extension.
For Intel, the KHR is also supported for some years.
2023-02-09 13:27:02 +01:00
iwubcode d0c6b6c9ed VideoCommon: store the configuration used to create the AbstractPipeline on the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration 2023-02-09 02:13:53 -06:00
Scott Mansell aaad0cd39f
Merge pull request #11539 from phire/improve_workqueuethread
Various WorkQueueThread improvements
2023-02-09 20:00:04 +13:00
Scott Mansell ccf92a3e56
Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
Scott Mansell 5c1b3ac61d Hook up Presenter's ConfigChanged function
Fixes issue with post-processing not working
2023-02-09 18:36:20 +13:00
Scott Mansell 9c1fe59cc9 Insert a more solid abstraction between Qt and Imgui 2023-02-09 18:36:20 +13:00
Scott Mansell b2a31103b4 Presenter: Handle blanked frames correctly 2023-02-09 18:36:20 +13:00
Scott Mansell 83b7b01265 Fix XFB duplicate detection
Frame duplicate detection was inverted. Huge problem for 60fps games
where it would see all frames as "duplicates" and nothing would ever be
presented.
2023-02-09 18:36:20 +13:00
Scott Mansell d3ddd96cee Make sure m_prev_efb_format is initilized 2023-02-09 18:36:20 +13:00
Scott Mansell 59a4b026f6 Better documentation for HookableEvent. 2023-02-09 18:36:20 +13:00
Scott Mansell 8c8bd0e7ac Rename to HookableEvent. Because naming conflict 2023-02-09 18:36:20 +13:00
Scott Mansell 60f2b5af7b Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
Co-authored-by: BhaaL <bhaalsen@gmail.com>
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2023-02-09 18:36:20 +13:00
Scott Mansell e0a1631659 Add comment about "end of frame" 2023-02-09 18:36:20 +13:00
Scott Mansell 43b6a49012 Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
2023-02-09 18:36:20 +13:00
Scott Mansell 05fad53fa0 Update STATE_VERSION
Co-authored-by: BhaaL <bhaalsen@gmail.com>
2023-02-09 18:36:20 +13:00
Scott Mansell e2de281897 Make sure pixel shaders pick up Initial EFB Scale 2023-02-09 18:36:20 +13:00
Scott Mansell cf9a6f8477 Lint fixes 2023-02-09 18:36:20 +13:00
Scott Mansell f7ad825736 fix fbdev 2023-02-09 18:36:20 +13:00
Scott Mansell 628af9d564 Fix builds with FFMPEG disabled 2023-02-09 18:36:20 +13:00
Scott Mansell 4422af1272 Cleanup headers 2023-02-09 18:36:20 +13:00
Scott Mansell 5803786beb Move UseVertexDepthRange() out of Renderer
There wasn't really a good place for it, but this will do
2023-02-09 18:36:20 +13:00
Scott Mansell 2cfc02a116 Move m_prev_efb_format into FramebufferManager 2023-02-09 18:36:20 +13:00
Scott Mansell 9b5397abdb Move WidescreenHeuristic to it's own class
It's about the only thing left in renderer
2023-02-09 18:36:20 +13:00
Scott Mansell 31cfe8250d Lint fixes 2023-02-09 18:36:20 +13:00
Scott Mansell 11de923dcb Move xfb tracking and IR scaling out of RenderBase 2023-02-09 18:36:20 +13:00
Scott Mansell e009002411 Refactor ClearRegion
And fix bug where opengl was getting the wrong coordinates
2023-02-09 18:36:20 +13:00
Jordi Mallach 4d164fcb77 Allow building against system libspng 2023-02-06 13:30:46 +01:00
Joshua de Reeper e0b3dd0dcf Remove Imaginators Skylanders from list
Add Vicarious Visions variant
2023-02-06 15:16:06 +13:00
Admiral H. Curtiss ca0b61be91
Merge pull request #11459 from OatmealDome/steam-user-dir
CommonPaths: Add Steam-specific user directory and clean up
2023-02-05 23:52:41 +01:00
Scott Mansell 2ff155f742 Optimise cond_var predicate order
m_items.empty() is by far the most likely reason for a notification.
2023-02-05 17:20:00 +13:00
Scott Mansell 271ffde71d Prevent WaitForCompletion shutdown deadlock.
Adjust shutdown order to prevent potential deadlocks
when one thread calls Shutdown, and another calls WaitForCompletion.
2023-02-05 17:17:16 +13:00
Scott Mansell 9c012b09b3 Address review feedback 2023-02-05 16:52:53 +13:00
Pokechu22 a244cb868b DSPTool: Fix missing error when redefining labels
The logging was broken in 958cbf38a4 (DSPTool doesn't use dolphin's logging system, so it just produced nothing; the same thing affected comparing before 693a29f8ce).

AssemblerError::LabelAlreadyExists (previously ERR_LABEL_EXISTS) simply was never used.
2023-02-04 17:31:06 -08:00
Scott Mansell 7c4fcc30a3 WorkQueueThread: provide name and function at same time 2023-02-04 15:56:27 +13:00
Scott Mansell 6594532f10 WorkQueueThread: rework Cancel/Shutdown workflow
- Cancel doesn't shut down anymore.
   Allowing it to be used multiple times thoughout the life of
   the WorkQueue
 - Remove Clear, so we only have Cancel semantics
 - Add IsCancelling so work items can abort early if cancelling
 - Replace m_cancelled and m_thread.joinable() guars with m_shutdown.
 - Rename Flush to WaitForCompletion (As it's ambiguous if a function
   called flush should be blocking or not)
 - Add documentation
2023-02-04 14:58:12 +13:00
Scott Mansell acdb0c5be1 WorkQueueThread: Implement thread name
Otherwise we will end up with a dozen threads named "WorkQueueThread"
2023-02-04 14:58:12 +13:00
Robin Kertels 94a0c50bf8 WorkQueueThread: Rework without Flags/Events 2023-02-04 14:31:16 +13:00
Robin Kertels 9affbfe683 WorkQueueThread: Implement proper Flush
and rename the existing Flush to FlushOne.
2023-02-04 14:31:16 +13:00
Robin Kertels 9badcc6eb8 WorkQueueThread: Add Push 2023-02-04 14:31:16 +13:00
Scott Mansell 512273a507 WorkQueueThread: Add flush capability 2023-02-04 14:31:16 +13:00
Sam Belliveau 4a97dc7c81 Let VI Skip work if variance > fallback 2023-02-02 20:59:17 -05:00
Sam Belliveau 87d5d39dfe Set VI Skip Activation to Half The Audio Buffer 2023-02-02 20:55:13 -05:00
Joshua de Reeper 680db55239 Android: Add Skylanders Portal
Co-Authored-By: Charles Lombardo <clombardo169@gmail.com>
2023-02-02 21:16:14 +13:00
Pierre Bourdon c92de420ef
lint: update to clang-format-13 2023-02-02 04:56:08 +01:00
Admiral H. Curtiss 69b178e95f
Merge pull request #11157 from h3xx/use-gnuinstalldirs
Use GNUInstallDirs for installation paths
2023-02-01 19:35:46 +01:00
OatmealDome 234de8af09 UICommon: Don't check the registry key or use the old user directory path on Windows builds for Steam 2023-01-31 17:57:09 -05:00
OatmealDome 7240290382 CommonPaths: Add Steam-specific user directory 2023-01-31 17:57:09 -05:00
OatmealDome 59a44bea50 CommonPaths: Split platform-specific definitions for user directories into two blocks 2023-01-31 17:57:09 -05:00
OatmealDome af33d4f13f CommonPaths: Split PORTABLE_USER_DIR into "portable" and "embedded" to accomodate macOS 2023-01-31 17:57:09 -05:00
OatmealDome 7f962a4146 UICommon: Use NORMAL_USER_DIR for Windows 2023-01-31 17:57:09 -05:00
OatmealDome 5e3d77adae CommonPaths: Rename DOLPHIN_DATA_DIR to NORMAL_USER_DIR 2023-01-31 17:57:08 -05:00
OatmealDome 846eef2a05 CommonPaths: Rename USERDATA_DIR to PORTABLE_USER_DIR 2023-01-31 17:57:08 -05:00
Pierre Bourdon 2a2ee5d543
Merge pull request #11434 from momocaoo/graphics-mod-folder-button
DolphinQt: Add button to open graphics mod folder on settings
2023-01-31 14:35:21 +01:00
Scott Mansell e98ab0784d
Merge pull request #11501 from iwubcode/abstract_texture_load_specify_layer
VideoBackends: add a way to load data into a specific level AND layer
2023-02-01 00:03:59 +13:00
Scott Mansell c6b851c2b6
Merge pull request #11506 from phire/cmake_fixes
CMake/MSVC fixes
2023-01-31 23:53:31 +13:00
Scott Mansell 12431a83ba
Merge pull request #11435 from techydude0713/wc24-utc-fix
NetKDTime: Use UTC based timestamp instead of localtime.
2023-01-31 23:40:15 +13:00
Scott Mansell 854a73dee0 CMake/MSVC: Fix PCH disabled build 2023-01-31 23:21:07 +13:00
Scott Mansell 1956ce151f Cmake/MSVC: Fix Qt6 discover for IDEs other than Visual Studio
CMakeSettings.json is a Visual Studio only extention to cmake that isn't
supported anywhere else. Not even Visual Studio Code.

So we set CMAKE_PREFIX_PATH inside DolphinQt's CMakeLists.txt instead.
2023-01-31 23:19:46 +13:00
OatmealDome 0f037a1af8
Merge pull request #10864 from TellowKrinkle/BetterLogicBlend
VideoCommon: Better logic op invert approximation
2023-01-31 01:55:55 -05:00
Scott Mansell b753641dd4 Add some descriptions to new classes 2023-01-31 19:41:24 +13:00
Scott Mansell abfc75f362 Cleanup headers 2023-01-31 19:41:24 +13:00
Scott Mansell ec8f46b02c Expose Renderer's Framecount
We don't want to move it, because we want to complete
this refactor without changing savestate version
2023-01-31 19:41:24 +13:00
Scott Mansell 3be63221c7 Renderer still needs to track swaps for savestates 2023-01-31 19:41:24 +13:00
Scott Mansell 3ae78b8e76 Also use events for config changed 2023-01-31 19:41:24 +13:00
Scott Mansell 0da69055d9 Split out everying remaining from Swap 2023-01-31 19:41:24 +13:00
Scott Mansell 2a18b34a73 Wire up frame before/after events 2023-01-31 19:41:24 +13:00
Scott Mansell 154cb4f722 Introduce an Event system to VideoCommon
A lot of the remaining complexity in Renderer is the massive Swap function
which tries to handle a bunch of FrameBegin/FrameEnd events.

Rather than create a new place for it. This event system will try
to distribute it all over the place
2023-01-31 19:41:24 +13:00
Scott Mansell d6cd8de1a7 Delete unused EFBHasAlphaChannel function 2023-01-31 19:41:24 +13:00
Scott Mansell 9d125a6e43 Move ConfigChanged out of RenderBase
There is this nice VideoConfig file that's perfect for it
2023-01-31 19:41:24 +13:00
Scott Mansell ca5ec13e13 Move GraphicsMod out of RenderBase 2023-01-31 19:41:24 +13:00
Scott Mansell 55d15bdd6e Move utiltily drawing out of RenderBase 2023-01-31 19:41:24 +13:00
Scott Mansell 99d3e489ea Move BoundingBox out of RenderBase
They were essentially just pass-though methods
2023-01-31 19:41:24 +13:00
Scott Mansell 35a69cb1bb Fix missing include 2023-01-31 19:41:24 +13:00
Scott Mansell 8ad59f8ccf Add AbstractGfx for DX12 2023-01-31 19:41:24 +13:00
Scott Mansell 5a2d119bda Implement AbstractGfx for Dx11 2023-01-31 19:41:24 +13:00
Scott Mansell 8bc8e43dd6 Add virtual Initialize() to PerfQueryBase
Both DX12 and Vulkan already had one.
2023-01-31 19:41:24 +13:00
Scott Mansell 3c73707dfe Fix dead code. 2023-01-31 19:41:24 +13:00
Scott Mansell eaae5b4a45 Implement AbstactGfx for Metal 2023-01-31 19:41:24 +13:00
Scott Mansell 89d9ec0a84 Fix warning 2023-01-31 19:41:24 +13:00
Scott Mansell b007b8e104 Replace BeginUI/EndUI 2023-01-31 19:41:24 +13:00
Scott Mansell 18c799f0b6 Present: Set surface info before initializing ImGui
Otherwise you get subtle bugs in vulkan that take hours to track down.
2023-01-31 19:41:24 +13:00
Scott Mansell 06ae08ca8b Fix misnamed local variable 2023-01-31 19:41:24 +13:00
Scott Mansell f158ff300b Handle VideoSoftware's present fallback better
Not a good idea to abuse bSupportsPostProcessing
2023-01-31 19:41:24 +13:00
Scott Mansell 26e00c3bb4 Fix warning about using & with bools 2023-01-31 19:41:23 +13:00
Scott Mansell 74d3b3443a Fix warning about compare sign mismatch 2023-01-31 19:41:23 +13:00
Scott Mansell 8f5b196019 Minimise include polution from RenderState 2023-01-31 19:41:23 +13:00
Scott Mansell 2a2014af09 Implement AbstractGfx for Vulkan 2023-01-31 19:41:23 +13:00
Scott Mansell 58b70b2fb2 Don't set common globals from Video Backends 2023-01-31 19:41:23 +13:00
Scott Mansell d37f83ffeb Implement AbstractGfx for Software & Null 2023-01-31 19:41:23 +13:00
Scott Mansell f0336a3129 Implement AbstractGfx for OpenGL
Mostly involves moving contents of OGLRender
to OGLGfx and OGLConfig
2023-01-31 18:46:04 +13:00
Scott Mansell 8a23629345 Split AbstractGfx out of Renderer
Almost all the virtual functions in Renderer are part of dolphin's
"graphics api abstraction layer", which has slowly formed over the
last decade or two.

Most of the work was done previously with the introduction of the
various "AbstractX" classes, associated with texture cache cleanups
and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal).
We are simply taking the last step and yeeting these functions out
of Renderer.

This "AbstractGfx" class is now completely agnostic of any details
from the flipper/hollywood GPU we are emulating, though somewhat
specialized.

(Will not build, this commit only contains changes outside VideoBackends)
2023-01-31 18:46:02 +13:00
Scott Mansell e57eb04ed3 Rename FrameDump.{cpp,h} to FrameDumpFFMpeg.{cpp,h}
The name kind of conflicts with a new FrameDumper class
2023-01-31 18:45:29 +13:00
Scott Mansell 0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
Scott Mansell c38c76abad Refactor to remove virtual from RenderXFBToScreen
Slightly simplifies the upcoming refactor
2023-01-31 18:29:47 +13:00
Scott Mansell a01d5283ec TextureCache: Add content locking
Texture cache occasionally mutates textures for efficiency.
Which is awkward if we want to borrow those textures from texture cache
to do something else, such as a graphics debugger, or async presentation
on another thread.

Content locking provides a way to signal that the contents of a texture
cache entry should not change. Texture cache will be forced to use
alternative strategies.
2023-01-31 18:29:47 +13:00
Scott Mansell 606c18210d TextureCache: Refactor with smart pointers
The whole ownership model was getting a bit of a mess, with a some
of special cases to deal with. And I'm planning to make it even more
complex in the future.
So here is some upfront work to convert it over to reference counted
pointers.
2023-01-31 18:29:47 +13:00
Scott Mansell c1fd4a2013 Move TCacheEntry out of TextureCacheBase
Allows for fowards declaration
2023-01-31 18:29:47 +13:00
Pierre Bourdon 2843cd10a8
Merge pull request #11492 from mandar1jn/file-improvements
Improve the data in the first data block of the skylanders figures
2023-01-31 03:02:39 +01:00
TellowKrinkle 600ad5f498 VideoCommon: Better logic op invert approximation 2023-01-30 14:04:37 -06:00
Lioncash cdd3e636e1 Common/Network: Resolve -Wexpansion-to-defined warning
Macros that expand to include the standard define macro are undefined.
This is pretty trivial to fix. We can just do the test and then define
the name itself if it's true, rather than making the set of definition
checks the macro itself.
2023-01-30 14:20:56 -05:00
Lioncash f20790370a Core/ActionReplay: Make use of std::span where applicable
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 13:02:09 -05:00
Lioncash adb4c0492d Core/GeckoCode: Make use of std::span where applicable
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 12:53:50 -05:00
Dan Church 81388eedaa
Use GNUInstallDirs for installation paths 2023-01-30 09:44:44 -06:00
Mandar1jn c8a91abadc Improve the data in the first data block of the skylanders figures
* Added NUID
* Added BCC
* Added ATQA
* Added SAK
2023-01-30 16:29:20 +01:00
Admiral H. Curtiss df9ba70c35
Merge pull request #11507 from phire/Wnullablitly-completeness
Ignore nullability-completeness warnings in VMA
2023-01-30 10:03:49 +01:00
Admiral H. Curtiss ae712c61c2
Merge pull request #11500 from iwubcode/vulkan_copy_rectangle_one_layer
VideoBackends: update Vulkan's 'CopyRectangleFromTexture' to copy one layer
2023-01-30 10:03:33 +01:00
Admiral H. Curtiss e48424065b
Merge pull request #10839 from CasualPokePlayer/fix_sysconf_settings
Fix SYSCONF movie settings
2023-01-30 09:50:21 +01:00
Admiral H. Curtiss 1eb69ea0a0
Merge pull request #10936 from TellowKrinkle/FixIncludeDirs
CMake: Actually use the include directories specified by dependencies
2023-01-30 09:19:06 +01:00
Admiral H. Curtiss 8edca2039e
Merge pull request #10947 from Zopolis4/opensleuth
Restrict OpenSLES to Android via CMake
2023-01-30 09:02:45 +01:00
Pierre Bourdon a2f4606d33
Merge pull request #11205 from TellowKrinkle/AutoPresent
VideoBackends:Metal: Default to presentDrawable when vsync is on
2023-01-30 09:01:18 +01:00
Scott Mansell 6d7303993c
Merge pull request #11509 from Sam-Belliveau/improved-speed-counter
Tie Speed to CPU Speed and not VPS
2023-01-30 20:41:03 +13:00
TellowKrinkle e4e425b930 VideoBackends:Metal: Assert on pipelines with no render targets
This only actually fails on specific Metal drivers, this way doing it will actually fail the CI and we'll notice
2023-01-29 14:36:28 -06:00
TellowKrinkle 1119a9ba32 VideoCommon: Don't create pipelines with no render targets
Some backends don't like it when you do that
2023-01-29 14:35:23 -06:00
Sam Belliveau ebf114aef5 Tie Speed to CPU Speed and not VPS 2023-01-29 13:33:48 -05:00
Scott Mansell 6ad182edd9 Ignore nullability-completeness warnings in VMA
These cause a lot of warnings when compiling with clang.
And the example VmaUsage.h appears to disable them
2023-01-30 03:11:51 +13:00
Pierre Bourdon 2eda76cffc
Merge pull request #11474 from MayImilae/cleanup-remove-cdutils
Cleanup: Remove CDUtils
2023-01-29 09:50:32 +01:00
Pokechu22 3b4e17292d Revert "DSPLLE: Add assertion for bad DMA alignment"
This reverts commit e140516130. This assert triggers for AX and AXWii uCode games (including the Wii System Menu) for various addresses that seem to be 4-byte aligned. Worse still, if the DSP thread is in use (i.e. for DSP LLE recompiler, but not for DSP LLE interpreter), Dolphin completely hangs after the panic alert. Perhaps the data DMA has fewer restrictions compared to the instruction DMA?

The change to DSPTool (e391a28102) has not been reverted, as it still fixes broken behavior for DSPSpy at -O0 on real hardware.
2023-01-28 17:26:47 -08:00
JosJuice e27339039c PPCAnalyst: Actually check if instructions want CR 2023-01-28 20:16:17 +01:00
JosJuice 9d2c4aa325 PPCAnalyst: Use bitsets for CR analysis
Currently we're only performing CR analysis for CR0 and CR1, but I
would like to do it for all CRs. Bitsets are appropriate for this.
2023-01-28 20:16:16 +01:00
JosJuice 3b57fb1d21 PPCTables: Add new instruction flags for CR 2023-01-28 20:16:16 +01:00
MayImilae 37859ec1da Cleanup: Remove CDUtils
This is a cleaning followup for #11456.
2023-01-28 03:50:57 -08:00
iwubcode 7bea39b39e VideoBackends: add a way to load data into a specific level AND layer, default to layer 0 2023-01-27 18:46:53 -06:00
iwubcode 271c60781b VideoBackends: update Vulkan's 'CopyRectangleFromTexture' to copy one layer, copying more than one layer doesn't make sense given that we provide both the source/destination layer 2023-01-27 18:41:52 -06:00
Admiral H. Curtiss be2d394b8c
GDBStub: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss dd9907ed93
PatchEngine: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss 4c349caabd
MIOS: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss ed633476e6
IOS: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 0a0b4d325f
HW/SystemTimers: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss a784fe1f2f
HW/ProcessorInterface: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 884130f95c
HW/Memmap: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 2bf72de43d
HW/GPFifo: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss e2f7855b0e
HW/DSP: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 18d9ec75f1
HW/CPU: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 078a460446
HW/AudioInterface: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss b52e8fd295
HLE_OS: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 7fd552081f
HLE function hooking: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 30de91d843
GeckoCode: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 1a826b27a6
FifoPlayer: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 8adabb86cf
Debugger: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss bfc951311f
CheatSearch: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss bbdfb4bc14
CodeTrace: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 41ad0490f0
CoreTiming: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 94455ee9e1
Boot: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 51e7980d95
Core: Add PowerPCState reference to System. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 485bba238e
PowerPC: Add PowerPCState parameter to UpdatePerformanceMonitor(). 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 61ba516570
PowerPC: Move a few functions to PowerPCState. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 0dcf228aaf
PowerPC: Parametrize TU macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss a7d3315b4f
PowerPC: Parametrize TL macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 2f241856b6
PowerPC: Add PowerPCState parameter to GQR macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 814c01162a
PowerPC: Remove SPRG0/1/2/3 macros. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 2f8b3ac1b7
PowerPC: Parametrize SRR1 macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 652113e6ba
PowerPC: Parametrize SRR0 macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 10dabd9975
PowerPC: Remove rDEC macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss c13ca271d8
PowerPC: Parametrize CTR macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 0a343007cb
PowerPC: Parametrize LR macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 0f301829d2
PowerPC: Remove rPS macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 0cd4a226d2
PowerPC: Remove rSPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 27ce432012
PowerPC: Remove rGPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 8fccefa3aa
PowerPC: Remove GPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss ba1b624e1b
PowerPC: Remove MSR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 4b6b8fa1ae
PowerPC: Remove FPSCR macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 2f3187eba9
PowerPC: Remove NPC macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss be8d0b76ca
PowerPC: Remove PC macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 82f3170876
PowerPC: Parametrize THRM1/2/3 macros. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 8bab3ac755
PowerPC: Parametrize MMCR1 macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 126590c4cd
PowerPC: Parametrize MMCR0 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 38529a2d8d
PowerPC: Parametrize DMAL macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 2374365274
PowerPC: Parametrize DMAU macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 31483e492e
PowerPC: Parametrize HID4 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 6f0ab1b33e
PowerPC: Parametrize HID2 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 49eeb986c6
PowerPC: Parametrize HID0 macro. 2023-01-27 15:22:40 +01:00
Pierre Bourdon f056cec859
Merge pull request #11480 from Pokechu22/dsp-code-alignment
DSPLLE: Add assertion for bad DMA alignment
2023-01-26 23:17:09 +01:00
Pierre Bourdon 9c9310bf44
Merge pull request #11208 from TellowKrinkle/CPUCull
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
Pierre Bourdon c6a7465529
Merge pull request #11485 from MayImilae/remove-filepath-from-states-messaging
Remove Filepath from State Save/Load OSD Messages
2023-01-26 05:29:21 +01:00
Lioncash 0d93a31a38 Common/BitSet: Zero initialize data member
Gets rid of the need to remember to initialize them in the constructor,
except when overriding the default initializer.
2023-01-25 04:16:30 -05:00
Lioncash 6446fa7e48 Common/Bitset: Make initializer_list constructor constexpr
This was able to be constexpr since C++14.
2023-01-25 04:13:05 -05:00
TellowKrinkle 7413be1487 VideoCommon: Add configuration option for CPUCull 2023-01-25 02:21:56 -06:00
TellowKrinkle a0e6d7c173 VideoCommon: Explicitly disable fp_contract for CPUCull 2023-01-25 02:21:56 -06:00
TellowKrinkle 1be0149146 VideoCommon: Cull vertices on the CPU 2023-01-25 02:21:56 -06:00
TellowKrinkle b170ef9651 VideoCommon: Add class for quickly transforming and culling vertices on the CPU 2023-01-25 02:21:56 -06:00
Admiral H. Curtiss 6db2171fd0
Merge pull request #11488 from lioncash/point
StringUtil: Make StringUTF8CodePointCount take string_view
2023-01-25 02:33:22 +01:00
Admiral H. Curtiss 9fc959cab0
Merge pull request #11489 from lioncash/init
CoreTiming: Zero initialize all CoreTimingManager throttle members
2023-01-25 02:29:32 +01:00
Lioncash 3607c1dc7d CoreTiming: Zero initialize all CoreTimingManager throttle members
Gives two members without explicit initialization default values to be
consistent with the rest of the class and also ensuring deterministic
values on construction.
2023-01-24 17:20:08 -05:00
Pierre Bourdon 6fad8ac389
Merge pull request #11467 from Simonx22/remove-titlebar-fps-counter
Core: Remove FPS, VPS and speed percentage from window title
2023-01-24 23:04:29 +01:00
Lioncash 1d03835c5d StringUtil: Make StringUTF8CodePointCount take string_view
There's nothing really about this that would need to constrain it to
only std::string instances.
2023-01-24 16:55:43 -05:00
Lioncash e5b91f00b0 Common: Replace StringBeginsWith/StringEndsWith with std equivalents
Obsoletes these functions in favor of the standard member functions
added in C++20.
2023-01-24 14:58:20 -05:00
MayImilae ed121ee679 Removed filepath from State Save/Load OSD messages
Though less important compared to #11470, save states also show the full path in the OSD message and could potentially dox a streamer who is playing in Dolphin. This is a simple fix - it removes the path from the message and only displays the file name.
2023-01-24 07:55:58 -08:00
Shawn Hoffman a184d70193 convert File::ScanDirectoryTree to std::filesystem 2023-01-24 05:15:11 -08:00
Shawn Hoffman 7e6436db34 fileutil: use std::filesystem 2023-01-24 04:51:24 -08:00
Pierre Bourdon caca662dbf
Merge pull request #10994 from shuffle2/fs
get rid of HAS_STD_FILESYSTEM
2023-01-24 12:18:25 +01:00
Admiral H. Curtiss d4d6f3db63
Merge pull request #11331 from deReeperJosh/skylandersportal
Emulate Skylanders Portals within Dolphin
2023-01-24 06:56:00 +01:00
Admiral H. Curtiss 7002831c55
Merge pull request #11465 from OatmealDome/qt6-xinput-bug
DolphinQt: Add workaround for Qt 6.3+ bug on Linux
2023-01-24 06:21:19 +01:00
Joshua de Reeper c76d2c16eb Valid block/num checks, rename variables, remove translatable strings
Capitalize Skylander in tr strings

Lint and validation method fixes

Proper Attach and Change Interface method

Re-jig code to exit early and read easier
2023-01-24 18:12:24 +13:00
Pokechu22 e140516130 DSPLLE: Add assertion for bad DMA alignment
I haven't tested this extensively on real hardware, but I do know that bad things happen if the address isn't properly aligned, and libogc says it should be 32-byte aligned.
2023-01-23 15:20:49 -08:00
Simonx22 df6f070a55 Core: Remove FPS, VPS and speed percentage from window title 2023-01-23 21:32:50 +01:00
JosJuice d0da689eeb DolphinQt: Add i18n comments for strings containing the word "watches"
These new strings could use the same clarification as we have for
the existing string "&Delete Watch".
2023-01-23 20:49:22 +01:00
Pierre Bourdon 8d477c65c9
Merge pull request #11458 from shuffle2/winuver
windows: prefer os version from registry
2023-01-23 15:53:41 +01:00
Pierre Bourdon a8a4b9c6d0
Merge pull request #11475 from shuffle2/comdef
windows: replace comdef dependency with winrt
2023-01-23 15:52:51 +01:00
Shawn Hoffman e5f3a0a9bc buildfix if discord isn't enabled 2023-01-23 06:39:41 -08:00
Shawn Hoffman c338f9e2a1 windows: replace comdef dependency with winrt 2023-01-23 06:09:01 -08:00
Admiral H. Curtiss 8032a71c4c
Merge pull request #11471 from MayImilae/dont-update-titlebar-with-osd-messages
Don't Write OSD Messages to the Titlebar
2023-01-23 06:46:32 +01:00
MayImilae 9df1f0276d Don't Write OSD Messages to the titlebar
Turns out all OSD messages, every single one, are written to the titlebar. We've just never seen them because the FPS is in the title bar and it replaces it in a fraction of a second. This was only visible when saving savestates because it halts emulation for a moment while writing.

This is dumb, let's not do that anymore.
2023-01-22 00:19:51 -08:00
Pierre Bourdon 0eb984f030
Merge pull request #11470 from MayImilae/remove-memory-card-path-from-osd-message
Remove Memory Card Path from the Wrote to OSD Message
2023-01-22 08:13:51 +01:00
MayImilae ef0d386954 Remove Memory Card Path from the Wrote OSD Message
A few weeks ago, a vtuber tweeted that they had to remove a vod of their stream because Dolphin Emulator showed some personal information during the steam, and left a warning to everyone else that Dolphin shows the account name of the computer. And yea, we do, we show the full directory of the memory card every time a memory card is written, and due to mandatory Microsoft account nonsense, that is very likely to contain someone’s real name.

Fortunately this is very easy for us to solve. This change simply removes the filename from wrote memory card contents string. That’s it. All functionality of the wrote memory card OSD message remains the same, it just doesn’t say where the memory card is anymore.

There are lots of other potential solutions to this but after talking on IRC it seems the simplest one is the best.
2023-01-21 21:19:51 -08:00
Joshua de Reeper 18fd0d7dcd Use Core timing instead of thread
Skylander code tidy ups

Convert c array to std::array and fix comments

Formatting fixes/review changes

Variable comment

Migrate portal to System Impl and code tidy ups

Use struct

Restore review changes

Minor fix to schedule transfer method

Change descriptors to hex and fix comments
2023-01-22 14:50:30 +13:00
Joshua de Reeper f76a6789a0 Emulate Skylanders within Dolphin
Ported the code from RPCS3, with improvements made to the handling of control messages and audio transfers, Co-Authored with @mandar1jn

Missing new line chars

Co-Authored-By: mandar1jn <49076509+mandar1jn@users.noreply.github.com>
2023-01-22 14:50:30 +13:00
Pierre Bourdon 9fe1d80920
Merge pull request #11457 from delroth/remove-stable-track
DolphinQt/Settings: remove 'stable' track from auto-updater options
2023-01-21 06:48:04 +01:00
OatmealDome d40dbe4670 DolphinQt: Add workaround for Qt 6.3+ bug on Linux
See https://bugs.dolphin-emu.org/issues/12913 for more information.
2023-01-20 03:06:04 -05:00
shockdude a32b85691b Fix Turntable extension's table range 2023-01-18 19:17:09 -08:00
Pierre Bourdon 8d5edb13a9
Merge pull request #11367 from Sam-Belliveau/lagbegone
VideoCommon: VI Skip
2023-01-19 01:20:01 +01:00
Pierre Bourdon 1cd11b8f3a
Merge pull request #11381 from skyfloogle/traversal-fix-1
Netplay: Fix traversal connections occasionally not working
2023-01-17 23:40:24 +01:00
Pierre Bourdon a7d1683149
Merge pull request #11432 from Pokechu22/generic-vertex-loader-test-error
VertexLoader: Fix loading tangent/binormal caches with NormalIndex3
2023-01-17 23:30:29 +01:00
Pierre Bourdon 686ac363ba
Merge pull request #11456 from MayImilae/remove-boot-from-dvd
Remove Boot from DVD Backup
2023-01-17 23:27:59 +01:00
John Papetti e2db9cd142
NetKDTime: Use UTC timestamp 2023-01-17 13:59:01 -05:00
Shawn Hoffman dff7f20f9d windows: prefer os version from registry
this value is not modified by compatibility mode
drop reporting service pack numbers. no longer used
2023-01-17 01:38:00 -08:00
Pierre Bourdon 3342947446
DolphinQt/Settings: remove 'stable' track from auto-updater options
We've decided this track will never be used in the future. Releases will
continue using the "beta" branch internally, though we'll have the
user-visible strings use a different name instead.

(Note: Dolphin provided builds have always defaulted to 'beta' as the
auto-update track, so anyone who set 'stable' did so manually.)
2023-01-17 08:34:55 +01:00
MayImilae dcc10cff11 Remove Boot from DVD Backup
This should be a fairly easy merge, assuming I didn’t mess anything up. TL:DR no one uses it and it’s not great.

Boot from DVD Backup is an ancient feature with origins in the Megacommit. Back then, GameCube and Wii games were quite large relative to drives of the time. For example, in 2008, the most common hard drive sizes were 320GB and 512GB. On the 320GB drive I personally had at the time, as little as 42 Wii ISOs could have filled it entirely! And that’s ignoring any other files one might want to put onto a drive. Backup DVDs allowed users to burn relatively cheap DVD media and store their GameCube and Wii dumps in a Dolphin accessible way that didn’t eat into their precious HDD space. It had compromises, even then, but in 2008… I mean honestly users probably wouldn’t even notice those compromises with how Dolphin barely even worked at all back then.

Obviously, today the storage space concerns are not as big of an issue. According to seagate the average hard drive it sells today is 8TB. For typical laptops purchased now, the -minimum- selection for storage is usually 1TB. You can even buy a name brand 4TB external hard drive for $100. GC and Wii ISOs are not as big as they once were, relatively anyway. Plus flash drives and SD cards are super cheap and way faster than disc drives ever were. For anyone that has limited drive space, removable flash media can fulfill this offloading role far better than backup DVD media ever could.

Also no one has DVD drives anymore. That’s kind of an important detail.

But to see if Booting from DVD Backup even still worked, I decided to give it a try. I have an ASUS BW-16D1HT, a badass Bluray XL reading and burning drive, connected to my Windows 11 Threadripper 5975WX machine. A super fast drive on a super fast machine is as good as it possibly can get for this feature. So I bought a spindle of DVD-Rs, burned a couple of discs and gave it a try. Surprisingly, it does still work. However, as expected, it introduces a lot of stuttering. Testing Prime 1 and Prime 3, in both games stuttering was introduced whenever the DVD Drive had to suddenly seek. Spikes of 50ms occurred constantly, but I observed 150ms and even over 1000ms stutters! The worst was a three second stutter, when loading Elysia in Prime 3. I could even hear the stutters - any time the drive suddenly made a harsh seeking noise, the game would have a hard stutter. It worked but, it has some serious compromises.

Boot from DVD Backup isn’t great, using removable flash media or external hard drives is a FAR better option for anyone with limited storage space today, and no one can even use this feature anymore because their computers don’t even have disc drives. It’s time for Boot from DVD Backup to go!

So I did my best on the cleanup but I’m bound to have left some bits. Especially in translation - I didn’t get any warnings or anything there that could help point me to where to clean that up. Please review!
2023-01-16 18:32:43 -08:00
JosJuice 8f88297122 Revert "MenuBar: Tweak string for open user folder option"
This reverts commit 6788bda6c9.

The user folder can be either global or local. If it is local,
we shouldn't call it global.

See also da0be24b2f.
2023-01-16 18:31:16 +01:00
Pierre Bourdon aacd66bd5b
Merge pull request #11451 from OatmealDome/open-user-dir-qt-hotfix
MenuBar: Tweak string for open user folder option
2023-01-16 10:47:27 +01:00
Pierre Bourdon bb64b0ee44
Merge pull request #10708 from OatmealDome/win-user-dir
UICommon: Change default user directory location to AppData on Windows
2023-01-16 10:34:41 +01:00
OatmealDome 6788bda6c9 MenuBar: Tweak string for open user folder option 2023-01-16 04:31:12 -05:00
OatmealDome 869aa9eb55 MenuBar: Add action which opens the user folder 2023-01-16 04:08:19 -05:00
OatmealDome cc68d5321f UICommon: Set UserConfigPath in the registry to AppData User for backwards compatibility 2023-01-16 01:37:14 -05:00
OatmealDome 3896934d5e UICommon: Use the old User directory in Documents if it exists 2023-01-16 01:37:14 -05:00
OatmealDome 75d87ff90e UICommon: Change default User directory location to AppData 2023-01-16 01:37:14 -05:00
Scott Mansell 7c202ab411 Reset throttle on savestate load 2023-01-16 14:18:42 +13:00
JMC47 30f0051f9c
Merge pull request #11440 from JosJuice/jit64-negative-guard
Core: Allocate 2 GiB of guard pages below fastmem area
2023-01-14 19:19:53 -05:00
JosJuice 4fa9fa997e Core: Allocate 2 GiB of guard pages below fastmem area
See the comment added by this commit. We were previously guarding against
overshooting in address calculations, but not against undershooting.
Perhaps someone assumed that the displacement of an x86 loadstore was
treated as unsigned?

Note: While the comment says we can undershoot by up to 2 GiB, in
practice Jit64 as it currently behaves won't actually undershoot by more
than 0x8000 if my analysis is correct. But address space is cheap, so
let's guard the full 2 GiB.
2023-01-14 20:35:50 +01:00
JosJuice 9c90b31e6a Memmap: Remove some remnants from the 32-bit JITs 2023-01-14 11:46:37 +01:00
Sam Belliveau 23ad07b368 Add VISkip 2023-01-14 01:56:37 -05:00
JMC47 8a1cac9be1
Merge pull request #11348 from Sam-Belliveau/improved-pacing
CoreTiming: Throttle Before Every Event Using std::chrono
2023-01-13 21:52:07 -05:00
Pokechu22 3910bdd68b VertexLoader: Don't write position_cache if vertex is skipped
This is the behavior in the x64 and ARM64 vertex loaders. I don't know if it makes sense (the whole skipped vertex system seems jank, but several games behave incorrectly without it).
2023-01-13 15:38:00 -08:00
Pokechu22 16c0593a52 VertexLoader: Fix loading tangent/binormal caches with NormalIndex3 2023-01-13 15:38:00 -08:00
Pokechu22 2d53b73643 VertexLoaderTester: Add assertions for position/binormal/tangent caches 2023-01-13 15:38:00 -08:00
Pokechu22 c681d96d46 VertexLoaderTester: Use asserts instead of logs
Logs don't show up in unit tests, and since this is debugging functionality (though not enabled for tests by default) it's better to do it this way.
2023-01-13 15:38:00 -08:00
Sam Belliveau e849172dc9 Limit Throttling to 1200hz 2023-01-13 18:17:24 -05:00
Sam Belliveau e95c1d55e8 Limit Sleep Calls to 8192hz at most 2023-01-13 11:59:32 -05:00
Momo Cao 05ed25d482 DolphinQt: Add button to open graphics mod folder on settings 2023-01-12 21:47:18 -05:00
Pokechu22 7abee1a97b DolphinQt: Fix typo in GBA TAS input window
This generated a warning on GCC about the operation being potentially undefined (-Wsequence-point). I'm not sure if that was actually the case, but either way it is a mistake.
2023-01-12 14:33:58 -08:00
OatmealDome 5c80a9fd87 CMakeLists: Copy LICENSE files when building for Steam Runtime 2023-01-10 23:21:24 -05:00
OatmealDome fff13c385f CMakeLists: Copy entire plugins folder on Steam Runtime build 2023-01-10 23:21:24 -05:00
Shawn Hoffman d51e4e5236 get rid of HAS_STD_FILESYSTEM
just use std::filesystem
2023-01-10 05:17:43 -08:00
UltraHDR 18454906cf
Set LSApplicationCategoryType to games
https://developer.apple.com/documentation/bundleresources/information_property_list/lsapplicationcategorytype
This makes it show up in the Launchpad Games folder
2023-01-10 11:34:42 +00:00
Admiral H. Curtiss 653e0ccf28
Merge pull request #11365 from iwubcode/cheat_manager_freeze_value
DolphinQt: add ability to lock / freeze values in the watches window
2023-01-09 18:41:28 +01:00
Admiral H. Curtiss 993d2ab173
PatchEngine: Use std::span in ApplyMemoryPatches(). 2023-01-09 17:24:41 +01:00
Admiral H. Curtiss 21c29bad6b
Merge pull request #11407 from AdmiralCurtiss/globals-gpfifo
HW/GPFifo: Refactor to class, move to Core::System.
2023-01-09 17:09:48 +01:00
Admiral H. Curtiss eeeab3c3be
Merge pull request #11183 from TheLordScruffy/write-back-cache
Implement PowerPC data cache
2023-01-09 17:09:32 +01:00
Sam Belliveau 901e4c7697 Reset Throttle Variables In Init 2023-01-09 11:06:12 -05:00
Sam Belliveau f7de0e4147 Fix issue that would disable Throttling 2023-01-08 01:20:19 -05:00
TheLordScruffy d85f6c8298 DolphinAnalytics: Remove ICACHE_MATTERS 2023-01-08 00:17:46 -05:00
TheLordScruffy 825bacde43 PPCCache: Change u32 to u8 for plru, valid, modified 2023-01-07 20:18:59 -05:00
TheLordScruffy 811d942222 Improve PPCCache lookup table 2023-01-07 07:30:42 -05:00
Pokechu22 d20b71c296 Move x64 DSP JIT into DolphinLib.x64.props
Before, it was also compiled on ARM builds, but since it was unused it wasn't linked (and thus its dependency on the nonexistent x64Emitter didn't cause any link issues).
2023-01-06 22:42:21 -08:00
Sam Belliveau bc1cc9eeb4 CoreTiming: Throttle Before Every Event Using Chrono 2023-01-06 17:21:17 -05:00
Sam Belliveau 588a72a4fc
PerformanceTracker: Add ownership of m_log_name. 2023-01-06 20:27:25 +01:00
Sam Belliveau bc46089ab0
PerformanceTracker: Use shared_mutex instead of mutex so multiple threads can read at the same time. 2023-01-06 20:27:25 +01:00
Sam Belliveau 9143eb00fb
PerformanceMetrics: Fix Line Width Issue on Non HiDPI Screens 2023-01-06 20:27:17 +01:00
Admiral H. Curtiss d33416fc35
HW/Memmap: Zero-initialize members by default. 2023-01-06 05:33:21 +01:00
Admiral H. Curtiss fbcaf83d30
HW/GPFifo: Refactor to class, move to Core::System. 2023-01-06 05:33:21 +01:00
Mai cc14d60bbb
Merge pull request #11402 from Pokechu22/too-many-indices
IndexGenerator: Fix off-by-one in GetRemainingIndices
2023-01-05 15:15:09 +00:00
Admiral H. Curtiss 7b04a6b958
Merge pull request #11089 from sepalani/pcap-share
NetworkCaptureLogger: Allow PCAP shared read access on Windows
2023-01-05 04:06:35 +01:00
Pokechu22 cefcd9c93c IndexGenerator: Fix off-by-one in GetRemainingIndices
Fixes https://bugs.dolphin-emu.org/issues/13136.
2023-01-04 10:42:00 -08:00
Pokechu22 6c58ba353c IndexGenerator: Add assertion for overflow in GetRemainingIndices
This assertion is currently triggered by Pocoyo Racing (https://bugs.dolphin-emu.org/issues/13136).
2023-01-04 10:41:14 -08:00
Admiral H. Curtiss 2fdaf0a86e
HW/ProcessorInterface: Rename member variables to fit naming convention. 2023-01-04 03:17:26 +01:00
Admiral H. Curtiss 74e1577a2c
HW/ProcessorInterface: Refactor to class, move to Core::System. 2023-01-04 03:00:10 +01:00
Pokechu22 d91f340c86 VertexManagerBase: Move free space check to after the buffer is reset
Fixes incorrect logspam when the buffer needed to be reset on flushes (which we already were doing, but 52feed04db moved it to after the check was made). This is https://bugs.dolphin-emu.org/issues/10312.

I also converted it to an assert, as if this does happen, things are going to render incorrectly, so we want to make it obvious.
2023-01-03 17:06:51 -08:00
Admiral H. Curtiss 908cec04cb
Merge pull request #11396 from Pokechu22/fbfetch-analytics
DolphinAnalytics: Track support of framebuffer fetch
2023-01-03 18:11:17 +01:00
Admiral H. Curtiss ed9915308b
Merge pull request #11386 from Pokechu22/manual-texture-sampling-stereoscopic-layer-bounds-check
PixelShaderGen: Clamp texture layer when using manual texture sampling with stereoscopic 3D
2023-01-03 18:07:06 +01:00
Pokechu22 c1b1d8d783 DolphinAnalytics: Track support of framebuffer fetch 2023-01-02 23:17:17 -08:00
Pokechu22 c645970578 VideoBackends/OGL: Always check for fbfetch support, not just on GLES
GL_EXT_shader_framebuffer_fetch is not restricted to GLES (although GL_ARM_shader_framebuffer_fetch is), and is available on Intel GPUs.
2023-01-02 23:17:08 -08:00
Pokechu22 277518837a DolphinAnalytics: Track support of logic ops 2023-01-02 23:17:02 -08:00
Pokechu22 f433da6083 DolphinAnalytics: Fix comment wrapping
This was broken in 3570c7f03a.
2023-01-02 23:15:04 -08:00
Admiral H. Curtiss d949aa60bb
Merge pull request #11397 from TellowKrinkle/QuartzMousePos
InputCommon:QuartzKB&M: Fix mouse y coordinates
2023-01-02 23:04:12 +01:00
Admiral H. Curtiss f13f54e3db
Merge pull request #11363 from TheConfuZzledDude/xinput2-scroll-axis
InputCommon/XInput2: Added an axis output for the scroll wheel
2023-01-02 23:02:12 +01:00
TheLordScruffy 9d39647f9e Fix PPC cache code formatting 2023-01-02 02:33:57 -05:00
TellowKrinkle 8659de4d71 InputCommon:QuartzKB&M: Fix mouse y coordinates
Cocoa uses a different coordinate system from Carbon (Carbon's origin is the top left while Cocoa's is the bottom left)
2022-12-31 23:42:11 -06:00
Mai 20ac2cf781
Merge pull request #11375 from JosJuice/mmu-inf-write
PowerPC: Fix theoretically possible infinite loop in WriteToHardware
2022-12-31 18:55:11 +00:00
Mai e31722db1c
Merge pull request #11380 from Pokechu22/performance-sample-window-title
AdvancedWidget: Add title for performance sample window tooltip
2022-12-31 18:54:43 +00:00
Mai acdf76bf16
Merge pull request #11374 from JosJuice/jitarm64-breakpoints
JitArm64: Implement breakpoints
2022-12-31 18:53:25 +00:00
Admiral H. Curtiss f6fbeaf355
Merge pull request #11364 from jordan-woyak/udraw-lift
WiimoteEmu: Expose mappings for lifted UDraw and Drawsome stylus.
2022-12-29 21:16:57 +01:00
JMC47 a20e41d340
Merge pull request #11389 from Pokechu22/sw-no-alpha-1-hack
Software: Remove alpha=1 blending special-case
2022-12-29 13:08:04 -05:00
Admiral H. Curtiss c20bb01b47
Merge pull request #11372 from JosJuice/m3u-backslash
Boot: Fix handling of M3U file paths containing backslashes
2022-12-29 17:09:38 +01:00
Admiral H. Curtiss 4bc94e4629
Merge pull request #11353 from noahpistilli/fix-mail-account-generation
Set checksum for NWC24Config during creation
2022-12-29 17:08:10 +01:00
Admiral H. Curtiss cb0a603c72
VideoCommon: De-globalize GeometryShaderManager class. 2022-12-29 15:33:19 +01:00
Admiral H. Curtiss a164c47caf
Core/Boot: Pass System instance to BootUp() and related. 2022-12-29 05:49:26 +01:00
Mai 7552deeff4
Merge pull request #11388 from AdmiralCurtiss/globals-vertexshadermanager
VideoCommon: De-globalize VertexShaderManager class.
2022-12-29 04:48:24 +00:00
Pokechu22 ed5015fa24 Software: Remove alpha=1 blending special-case
This was added in #10394 for both the hardware and software backends to work around an issue with Mario Kart Wii, Fortune Street, and Baten Kaitos. However, it seems like the software renderer handles blending well enough that we don't need this (and in any case, it's easy to change blending in the software renderer).

Some experimentation with #11387 (not pushed) showed that the software renderer's logic would also produce correct results on the hardware backends with this hack removed, but would require fbfetch (currently); if a better solution is found the hack can also be removed from the hardware backends.
2022-12-28 14:21:33 -08:00
JMC47 82e5f438f9
Merge pull request #11219 from K0bin/android-vk-alidation
VideoBackends:Vulkan: Migrate to VK_EXT_debug_utils
2022-12-28 14:16:51 -05:00
Admiral H. Curtiss 7e55cc9e90
VideoCommon/VertexShaderManager: Rename private variables. 2022-12-28 16:00:15 +01:00
Admiral H. Curtiss 50625728e0
VideoCommon: De-globalize VertexShaderManager class. 2022-12-28 15:52:29 +01:00
Mai 0900e68986
Merge pull request #11384 from AdmiralCurtiss/globals-pixelshadermanager
VideoCommon: De-globalize PixelShaderManager class.
2022-12-28 00:59:03 +00:00
Pokechu22 f3df3a7727 PixelShaderGen: Clamp texture layer when using manual texture sampling with stereoscopic 3D
Otherwise, texelFetch() will use an out-of-bounds layer for game textures (that have 1 layer; EFB copies have 2 layers in stereoscopic 3D mode), which is undefined behavior (often resulting in a black image). The fast texture sampling path uses texture(), which always clamps (see https://www.khronos.org/opengl/wiki/Array_Texture#Access_in_shaders), so it was unaffected by this difference.
2022-12-27 13:45:13 -08:00
Admiral H. Curtiss c8202043b6
IOS/NWC24Config: Combine WriteConfig() and WriteCBK(). 2022-12-27 21:21:06 +01:00
Admiral H. Curtiss 4549fb4acb
VideoCommon/PixelShaderManager: Rename s_ variables. 2022-12-27 20:20:27 +01:00
Admiral H. Curtiss 725bd64ec2
VideoCommon: De-globalize PixelShaderManager class. 2022-12-27 20:13:24 +01:00
Sketch 929fba08e7 Fix ESDevice::GetTitlesWithTickets always returning 0 titles owned 2022-12-27 12:18:44 -05:00
Robin Kertels 19a4653203
VideoBackends:Vulkan: Replace debug_report with debug_utils
The former is deprecated and pretty much all modern drivers
support VK_EXT_debug_utils.
Android drivers dont support it. On those drivers,
we use the implementation provided by the validation layers.
2022-12-27 02:48:50 +01:00
Floogle c689e9cde0 Netplay: When connecting, ignore packets from traversal server 2022-12-26 23:35:42 +01:00
Pokechu22 4e05c569d4 AdvancedWidget: Fix typo in performance sample window tooltip 2022-12-26 14:28:48 -08:00
Pokechu22 b675e49c0e AdvancedWidget: Add title for performance sample window tooltip 2022-12-26 14:20:06 -08:00
Sam Belliveau 6052a5ca9b Fix Speed Counter Sample Size 2022-12-26 16:47:12 -05:00
TheConfuZzledDude 288fa635f9 InputCommon/XInput2: Changed axis value reading to be more correct 2022-12-26 17:27:48 +00:00
Admiral H. Curtiss f4b1155b4d
Merge pull request #11373 from JosJuice/gba-tas-input-turbo
DolphinQt: Add settings to GBA TAS input window
2022-12-26 04:37:25 +01:00
Jordan Woyak 4f4285cf5e WiimoteEmu/DrawsomeTablet: Expose mapping for lifted stylus. 2022-12-25 19:03:15 -06:00
Jordan Woyak ab9fc3f2e4 WiimoteEmu/UDrawTablet: Expose mapping for lifted stylus. 2022-12-25 19:03:15 -06:00
JosJuice cf16f49068 PowerPC: Fix theoretically possible infinite loop in WriteToHardware
`em_address + size` can overflow and become 0. It shouldn't happen with
the kinds of memory mappings games use in practice, though.
2022-12-25 12:29:13 +01:00
JosJuice e0fba20f1f
Merge pull request #11360 from shuffle2/vs
msvc: remove workaround for arm64 sha1 compiler bug
2022-12-24 22:55:47 +01:00
JosJuice c744ff4934 JitArm64: Implement breakpoints
Plus two miscellaneous debugger features that I found along the way when
reading Jit64's code for comparison: bJITNoBlockLinking and tracing.

Fixes https://bugs.dolphin-emu.org/issues/13127.
2022-12-24 13:24:01 +01:00
JosJuice 0659827485 Jit64: Check for breakpoint without disabling block link
Small optimization. By not calling WriteExit, the block linking system
never finds out about the exit we're doing, saving us from having to
disable block linking.
2022-12-24 13:01:29 +01:00
JosJuice 494b041b34 DolphinQt: Add settings to GBA TAS input window
We should expose Enable Controller Input and the turbo settings for
GBA just like we do for GameCube controllers and Wii Remotes.
I just forgot about it when implementing the GBA TAS input window.
2022-12-24 11:30:25 +01:00
JosJuice 71f1b1db34 Boot: Fix handling of M3U file paths containing backslashes
Previously, if a user on Windows launched Dolphin from the command line
and specified a path to an M3U file and included backslashes in this path,
Dolphin would fail to resolve relative paths in the M3U file.
2022-12-24 11:13:27 +01:00
JosJuice 3611045a6c DolphinQt: Add more i18n comments 2022-12-24 08:32:49 +01:00
Sam Belliveau e1d078ada6 Remove Redundant Access Specifiers 2022-12-23 20:13:01 -05:00
Sam Belliveau 673f81c18a New FrameTime/VBlank Analyzer + Graph 2022-12-23 19:52:53 -05:00
TheConfuZzledDude 27d596b89c InputCommon/Xinput: Cleaned up a bit 2022-12-23 22:35:09 +00:00
TheConfuZzledDude c3018fdc3b InputCommon/XInput2: Added an axis output for the scroll wheel 2022-12-23 22:10:28 +00:00
Pierre Bourdon 2345ba178d
Merge pull request #11356 from Sam-Belliveau/update-dear-implot
Externals: Add Dear Implot
2022-12-23 22:05:29 +01:00
iwubcode 31bf9d0019 Core: add option to apply memory patch to not store the existing value (used during locking) 2022-12-23 12:31:33 -06:00
iwubcode 190cf5af30 DolphinQt: add multiselection to WatchWidget 2022-12-23 12:31:33 -06:00
iwubcode c8a6ff6309 DolphinQt: add a 'add to watch' context menu item that allows you to add a memory location found in a cheat search to be added to the watch list 2022-12-23 12:31:33 -06:00
iwubcode 7d7fcdddd3 DolphinQt: add lock state to WatchWidget 2022-12-23 12:31:33 -06:00
iwubcode 8f3e8e4ca3 Core: add locked state to watches 2022-12-23 11:59:23 -06:00
iwubcode 41c9d706cb DolphinQt: cleanup WatchWidget 2022-12-23 11:59:23 -06:00
iwubcode 3081a781fd Core: when scheduling an invalidate cpu cache, no need to schedule if we're already on the cpu thread 2022-12-23 11:59:23 -06:00
iwubcode 2f2f906bf5 Core: add ability to add memory patches to the patch engine that will be executed each frame 2022-12-23 03:13:03 -06:00
iwubcode 1f87bcd202 Core: add ability to apply memory patches during a frame update in the PatchEngine 2022-12-23 03:13:03 -06:00
iwubcode 4743d74985 Core: add helper function to apply a memory patch and mark the 'PPCPatches' as final 2022-12-23 03:13:03 -06:00
Minty-Meeo 14179f7565 Follow-up on a four-year-old Android NDK workaround
Surely this is fixed by now.
2022-12-22 19:54:46 -06:00
Sam Belliveau 5ca438dd97 Add Dear ImPlot Library 2022-12-22 14:32:42 -05:00
Shawn Hoffman 9dcae0b1c3 msvc: remove workaround for arm64 sha1 compiler bug 2022-12-22 00:44:29 -08:00
Minty-Meeo 05bebee802 Replace BitUtils with C++20: Counting Zeroes
With the upgrade to C++20, std::countl_zero and std::countr_zero can replace these home-spun implementations from the BitUtil.h library.
2022-12-21 04:17:00 -06:00
Admiral H. Curtiss d853da3b0b
Merge pull request #11354 from Pokechu22/desert-bus-asnd-ucode
DSPHLE: Add Desert Bus libasnd ucode variants
2022-12-20 20:01:21 +01:00
Pokechu22 66b3686d84 DSPHLE: Add Desert Bus libasnd ucode variants 2022-12-20 10:02:53 -08:00
Mai 5348c8b2c6
Merge pull request #11344 from JosJuice/jitarm64-mw-deps
JitArm64: Improve pipelining of lmw/stmw
2022-12-20 15:11:29 +00:00
Mai 43366d2384
Merge pull request #11351 from JosJuice/bitset-cpp20
Common: Use C++20 <bit> header in BitSet.h
2022-12-20 15:02:38 +00:00
Sketch c01ec96c92 Set checksum for NWC24Config during creation 2022-12-19 20:18:34 -05:00
JMC47 fb8aa9744e
Merge pull request #11286 from K0bin/vk-query-fix
VideoBackends: Query fixes and cleanups
2022-12-19 03:15:48 -05:00
JosJuice 547d956278 Common: Use C++20 <bit> header in BitSet.h 2022-12-18 16:51:32 +01:00
Sketch b56411b84b
Fix MemoryViewWidget background colour 2022-12-17 10:37:37 +01:00
Mai a1c4861ad8
Merge pull request #10950 from JosJuice/replace-bitutils-rotate
Replace BitUtils with C++20: RotateLeft/RotateRight
2022-12-11 21:19:43 +00:00
Mai aa57d53c90
Merge pull request #11345 from AdmiralCurtiss/globals-pe
VideoCommon/PixelEngine: Refactor to class, move to Core::System.
2022-12-11 21:07:30 +00:00
Admiral H. Curtiss c486baffe6
VideoCommon/PixelEngine: Pass Core::System to methods. 2022-12-11 21:57:30 +01:00
Admiral H. Curtiss ec8aaf1f30
VideoCommon/PixelEngine: Refactor to class, move to Core::System. 2022-12-11 21:57:19 +01:00
JosJuice 701ba7cd43 JitArm64: Improve pipelining of lmw/stmw
The calculation of each address in lmw/stmw currently has a dependency
on the calculation of the previous address. By removing this dependency,
the host CPU should be able to pipeline the loads/stores better. The cost
we pay for this is up to one extra register and one extra MOV instruction
per guest instruction, but often nothing.

Making EmitBackpatchRoutine support using any register as the address
register would let us get rid of the MOV, but I consider that to be too
big of a task to do in one go at the same time as this.
2022-12-11 17:08:12 +01:00
Merry 17c14ac4b9 MachineContext: Fix USE_SIGACTION_ON_APPLE on arm64 2022-12-11 13:36:44 +00:00
JosJuice 454537d53e Replace BitUtils with C++20: RotateLeft/RotateRight
Now that we've flipped the C++20 switch, let's start making use of
the nice new <bit> header.

I'm planning on handling this move away from BitUtils.h incrementally
in a series of PRs. There may be a few functions remaining in
BitUtils.h by the end that C++20 doesn't have any equivalents for.
2022-12-11 08:59:18 +01:00
JosJuice 1fd8d476e8
Merge pull request #11325 from t895/extra-dark
Android: Add black backgrounds toggle
2022-12-10 21:09:26 +01:00
Charles Lombardo fd7a84b794 Android: Add black backgrounds toggle
Makes all background colors black in dark mode when enabled through a ThemeOverlay. Applied the same way as a theme/mode.
2022-12-10 14:53:01 -05:00
Mai 54e01c660e
Merge pull request #11334 from AdmiralCurtiss/globals-fifo
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 19:13:23 +00:00
Mai 48ce5318e1
Merge pull request #11338 from JosJuice/jitarm64-revert-supposed-tail
Revert "JitArm64: Optimize a few tail calls"
2022-12-10 19:11:23 +00:00
Mai c3bed35468
Merge pull request #11337 from JosJuice/aarch64-shrn
Arm64Emitter: Fix SHRN/SHRN2
2022-12-10 19:09:33 +00:00
Admiral H. Curtiss ceae4242fc
VideoCommon/Fifo: Pass Core::System to methods. 2022-12-10 17:16:26 +01:00
Admiral H. Curtiss 5624dd6d39
VideoCommon/Fifo: Refactor to class, move to Core::System. 2022-12-10 17:16:19 +01:00
JosJuice 64bc150b8c Revert "JitArm64: Optimize a few tail calls"
This reverts commit 351d095fff.

In hindsight, my attempted optimization messes with the return
predictor, unlike real tail calls. So I think it does more bad than
good.
2022-12-10 11:35:52 +01:00
JosJuice b5b8871bce Arm64Emitter: Fix SHRN/SHRN2
The "vector shift by immediate" category encodes the shift amount for
right shifts as `size - amount`, whereas left shifts use `amount`.

We're not actually using SHRN/SHRN2 anywhere, which is why this has gone
undetected.
2022-12-10 11:20:23 +01:00
Admiral H. Curtiss 1d199f4664
Qt/EnhancementsWidget: Combine texture filtering and anisotropic filtering. 2022-12-09 02:02:17 +01:00
Admiral H. Curtiss ff2cc4d02b
Qt/EnhancementsWidget: Convert texture filtering option to a ComboBox. 2022-12-09 02:02:16 +01:00
Admiral H. Curtiss 8a3b8a925e
Core: Add option to force linear texture filtering. 2022-12-09 02:02:16 +01:00
TheLordScruffy e97d380437 Implement PPC write-back data cache 2022-12-08 18:18:32 -05:00
Admiral H. Curtiss b207611c33
Merge pull request #11274 from TryTwo/PR_Conditional_BP_Add_Memory
Debugger: Add conditional breakpoints to memory BPs
2022-12-07 19:55:04 +01:00
Mai 000c6c4813
Merge pull request #11321 from JosJuice/jitarm64-accurate-nans
JitArm64: Implement accurate NaNs
2022-12-07 00:58:13 +00:00
Mai 94faad0d37
Merge pull request #11320 from AdmiralCurtiss/globals-memory
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-07 00:52:31 +00:00
Mai a9a603b8cb
Merge pull request #11268 from jordan-woyak/ascii-controller
Rename "Keyboard" to "Keyboard Controller"
2022-12-04 21:05:52 +00:00
TryTwo a17fbe7c65 Expand conditional breakpoints to memory breakpoints 2022-12-04 11:25:33 -07:00
Mai b23eb1f550
Merge pull request #11322 from JosJuice/jit64-madds-nan
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-04 17:58:16 +00:00
Mai f21edf6d5a
Merge pull request #11270 from t895/theme-mode
Android: Add theme mode switcher
2022-12-04 17:56:59 +00:00
Admiral H. Curtiss c9f31ad6a6
Merge pull request #11262 from K0bin/present-sync
VideoBackends:Vulkan: Synchronize presentation
2022-12-04 14:30:59 +01:00
Admiral H. Curtiss 2b93d5e0d7
Merge pull request #11273 from TryTwo/PR_Conditional_BP_Callstack
Debugger: add callstack to conditional breakpoints
2022-12-04 14:16:12 +01:00
Admiral H. Curtiss 2bd47d1435
Merge pull request #11232 from TryTwo/PR_MemoryView_highlighting
Debugger MemoryViewWidget: always highlight target address
2022-12-04 14:07:19 +01:00
TryTwo 76bf1b5f7d Add callstack to conditional breakpoints. Checks entire stack for value.
Use: callstack(0x80000000).
  !callstack(value) works as a 'does not contain'.
Add strings to expr.h conditionals.
  Use quotations: callstack("anim") to check symbols/name.
2022-12-03 20:52:17 -07:00
JosJuice eeef5363e4 Jit64: Correctly handle NaNs for ps_maddsX 2022-12-03 21:05:05 +01:00
JosJuice 06e60ac327 JitArm64: Implement accurate NaNs
For quite some time now, we've had a setting on x86-64 that makes Dolphin
handle NaNs in a more accurate but slower way. There's only one game that
cares about this, Dragon Ball: Revenge of King Piccolo, and what that game
cares about more specifically is that the default NaN (or "generated NaN"
as I believe it's called in PowerPC documentation) is the same as on
PowerPC. On ARM, the default NaN is the same as on PowerPC, so for the
longest time we didn't need to do anything special to get Dragon Ball:
Revenge of King Piccolo working. However, in 93e636a I changed how we
handle FMA instructions in a way that resulted in the sign of NaNs
becoming inverted for nmadd/nmsub instructions, breaking the game.
To fix this, let's implement the AccurateNaNs setting, like on x86-64.
2022-12-03 19:41:32 +01:00
JosJuice 5c41d3b602 JitArm64: Refactor temp reg handling in fp_arith/ps_arith 2022-12-03 19:08:27 +01:00
Admiral H. Curtiss 839db591d9
HW/Memmap: Refactor Memory to class, move to Core::System. 2022-12-03 13:27:02 +01:00
Mai 6b514e81f9
Merge pull request #11316 from Pokechu22/jit-widget-fixes
Jit widget fixes
2022-12-02 20:54:48 +00:00
Charles Lombardo b9fffa2e66 Android: Add theme mode switcher
Similar to app themes, theme modes have to be loaded before directory initialization is ready. So we save the proper key the same way.
2022-12-02 13:31:57 -05:00
Pokechu22 3d6bfcd236 JITWidget: Convert to fmt 2022-12-01 17:44:41 -08:00
Pokechu22 6a6d24550e Clean up DisassembleBlock and JitInterface::GetHostCode 2022-12-01 17:43:35 -08:00
Pokechu22 5842b90bee Show JIT blocks widget when selecting 'PPC vs Host' in code widget
Before, I just assumed this feature was broken since I didn't know what widget it used. Now, it behaves like show memory and show code elsewhere.
2022-12-01 17:43:35 -08:00
Pokechu22 0ccfa31ec8 Fix code widget not becoming visible when selecting 'view code' or similar
This affected the memory and registers widgets (and possibly others). I'm pretty sure it regressed in 5f629abd8b.

The SetCodeVisible line is a new fix, but the equivalent already existed in the memory widget.
2022-12-01 17:43:35 -08:00
Pokechu22 4f4bd57fe9 Fix crash when stopping emulation while the JIT widget is in use
The call to analyzer.Analyze breaks when it attempts to read an instruction, as it eventually tries to read memory when Memory::m_pRAM is nullptr. Trying to read when execution is not paused in general seems like a bad idea (especially as analyzer.Analyze uses PowerPC::TryReadInstruction which can update icache - this is probably still a problem).
2022-12-01 17:43:34 -08:00
TellowKrinkle ffb73f43e1 VideoBackends:Metal: Fix min/max lod when setting non-zero-based samplers 2022-11-30 21:11:37 -06:00
TryTwo 700eca1baa MemoryViewWidget set target address as selected. Fix focus call. Always color selected item blue. 2022-11-30 16:38:56 -07:00
Robin Kertels 35a6d16d9e
VideoBackends: Rename query_type to query_group 2022-11-29 23:14:23 +01:00
Robin Kertels df2e07ad29
VideoBackends:Vulkan: Fix incorrect barriers in StagingBuffer
HOST barriers need to be issued regardless of
whether the memory type is coherent
and we need to properly synchronize writes to the buffer.
2022-11-29 23:14:23 +01:00
Robin Kertels 57b2ea663e
VideoBackends:D3D12: Set query type 2022-11-29 23:14:23 +01:00
Robin Kertels 6ba7573877
VideoBackends:Vulkan: Fix queries
Fixes both checking whether queries are done
and actually resets query pools.
2022-11-29 23:14:07 +01:00
Mai 7cd9a78ebf
Merge pull request #11304 from JosJuice/jit64-nan-c
Jit64: Correctly handle NaNs for ps_mulsX/ps_sumX
2022-11-29 12:57:43 +00:00
Mai 5f22a0054f
Merge pull request #11305 from JosJuice/jitarm64-optimize-ps-merge
JitArm64: Optimize ps_mergeXX
2022-11-29 12:57:10 +00:00
Mai ff830c08b6
Merge pull request #11307 from AdmiralCurtiss/globals-command-processor
VideoCommon/CommandProcessor: Refactor to class, move to Core::System.
2022-11-29 12:56:30 +00:00
Admiral H. Curtiss 6941d2e7e6
VideoCommon/CommandProcessor: Refactor to class, move to Core::System. 2022-11-29 08:15:01 +01:00
TellowKrinkle e3cc42069f VideoBackends:OGL: Creating vertex formats shouldn't unbind anything 2022-11-28 21:28:24 -06:00
JosJuice 2f1a8ee1b9 Jit64: Skip HandleNaNs for operations that can't generate NaN
Operations that have two operands and can't generate a default NaN,
i.e. addition and subtraction, already have the desired NaN handling
on x86. We just need to make sure to not reverse the operands.

This fixes ps_sum0/ps_sum1 outputting NaNs in cases where they shouldn't.
(HandleNaNs assumes that a NaN in a ps0 input always results in a NaN in
the ps0 output, and correspondingly for ps1.)
2022-11-27 11:30:10 +01:00
JosJuice cbceae9176 Jit64: Correctly handle NaNs for ps_mulsX 2022-11-27 11:30:10 +01:00
JosJuice d3180e3516 Jit64: Refactor HandleNaNs operand passing 2022-11-27 11:30:05 +01:00
Mai 44f8b8c100
Merge pull request #11303 from AdmiralCurtiss/coretiming-class
CoreTiming: Refactor to class.
2022-11-27 06:00:46 +00:00
Admiral H. Curtiss 64bb9ae9a9
Correctly call CoUninitialize() on Cubeb helper class destruction. 2022-11-27 03:58:50 +01:00
Admiral H. Curtiss daa70533cd
CoreTiming: Store Globals in CoreTimingManager. 2022-11-27 03:47:12 +01:00
Admiral H. Curtiss c9558ecb4c
CoreTiming: Refactor to class. 2022-11-27 03:47:12 +01:00
Admiral H. Curtiss 3cdc6e3d4a
Merge pull request #10343 from AdmiralCurtiss/cubeb-2021
Update cubeb to mozilla/cubeb@27d2a102b0
2022-11-27 03:26:11 +01:00
JosJuice f45d3a6a2c JitArm64: Optimize ps_mergeXX
1. In some cases, ps_merge01 can be implemented using one instruction.
2. When we need two instructions for ps_merge01, it's best to start with
   a MOV to avoid false dependencies on the destination register.
3. ps_merge10 can be implemented using a single EXT instruction.
2022-11-26 18:14:58 +01:00
Admiral H. Curtiss e085bf14f9
Core: Use extra thread for Cubeb on Windows to not disturb the CoInitialize state of whatever thread happens to call a Cubeb function. 2022-11-26 05:05:57 +01:00
Admiral H. Curtiss ca10e92ab9
Core: Abide by COM MTA requirement for cubeb on Windows. Partially based on https://github.com/dolphin-emu/dolphin/pull/8920#discussion_r459746604
Co-authored-by: Michael M <mchtly@gmail.com>
2022-11-26 05:05:56 +01:00
Admiral H. Curtiss 59b1419a8e
Externals: Update cubeb to mozilla/cubeb@773f16b7ea and make it a submodule.
CMakeLists.txt has been extracted and modified a bit to work with Dolphin's typical build settings.
2022-11-26 05:05:52 +01:00
Admiral H. Curtiss 4273d3754c
CoreTiming: Move static variables into Core::System. 2022-11-26 04:22:32 +01:00
Admiral H. Curtiss 86f17511fc
CoreTiming: Move the 'Globals' instance into Core::System. 2022-11-26 04:22:32 +01:00
Admiral H. Curtiss 70f353fb37
Merge pull request #11283 from AdmiralCurtiss/netplay-save-sync-log
Netplay: Add more logging to save syncing.
2022-11-26 03:53:17 +01:00
Admiral H. Curtiss d189c70d4d
Merge pull request #11230 from AdmiralCurtiss/gci-filenames
GCMemcardDirectory: GCI filename cleanup and fixes.
2022-11-26 03:52:43 +01:00
JoshuaMK dd2282324b
Debugger BreakpointWidget: Allow editing breakpoints 2022-11-26 03:38:25 +01:00
TellowKrinkle 72eadc6520 InputCommon:SDL: Add SDL 2.26 left and right motion inputs 2022-11-24 15:12:07 -06:00
Mai 7be4c90f67
Merge pull request #11166 from AdmiralCurtiss/mmio-system
HW: Pass System to MMIO handlers.
2022-11-24 00:58:45 +00:00
Pokechu22 f5d11c1e38 VideoBackends/D3D11: Simplify vertex attribute code 2022-11-23 13:45:43 -08:00
Pokechu22 cc5640245c Fix build errors related to formatting non-scoped enums 2022-11-23 13:45:43 -08:00
Admiral H. Curtiss 545fee9c94
Core/CommandProcessor: Reformat single/dual core dependent MMIO handlers. 2022-11-23 21:58:18 +01:00
Admiral H. Curtiss 0a6fdb9c13
HW: Pass System to MMIO handlers. 2022-11-23 05:52:21 +01:00
Mai 0ef6d30a0d
Merge pull request #11165 from AdmiralCurtiss/audiocommon-pass-system
AudioCommon: Pass Core::System to AudioCommon functions.
2022-11-23 04:49:31 +00:00
Mai a47ed2124f
Merge pull request #11253 from AdmiralCurtiss/core-timing-events-pass-system
CoreTiming: Pass Core::System to Events.
2022-11-23 04:46:11 +00:00
Mai 677121bdbc
Merge pull request #11292 from JosJuice/jit64-imm-ra-update
Jit64: Use MOV instead of ADD for updating imm Ra
2022-11-23 04:42:46 +00:00
Mai e573a0bbc2
Merge pull request #11294 from JosJuice/jitarm64-movpage2r
Arm64Emitter: Add MOVPage2R utility function
2022-11-23 04:41:31 +00:00
Mai cb232155d9
Merge pull request #11298 from Pokechu22/vertexloader-no-DataReader
VertexLoader: Eliminate use of DataReader
2022-11-23 04:40:53 +00:00
Pokechu22 e13094766d Fix VertexLoader.cpp using the wrong size for texture matrix indices without a corresponding texture
This regressed in 0a906f553f, I think (though I haven't confirmed it). Mario Tennis and Luigi's Mansion both use these for some reason (as far as I can tell, the data isn't actually used; it's just extra data included for no reason)
2022-11-22 17:49:54 -08:00
Pokechu22 0bcd3c79bb VertexLoader: Eliminate use of DataReader
DataReader is generally jank - it has a start and end pointer, but the end pointer is generally not used, and all of the vertex loaders mostly bypassed it anyways.

Wrapper code (the vertex loaer test, as well as Fifo.cpp and OpcodeDecoding.cpp) still uses it, as does the software vertex loader (which is not a subclass of VertexLoader). These can probably be eliminated later.
2022-11-22 17:17:11 -08:00
Sam Belliveau edb2c90b38
Improve FPS/VPS Counting and Revamp Appearance 2022-11-23 00:11:47 +01:00
Admiral H. Curtiss 5e442f6ffa
Merge pull request #11281 from AdmiralCurtiss/updater-admin-check
Updater: Check for write permissions in directory of Updater.exe.
2022-11-22 23:50:13 +01:00
Admiral H. Curtiss 19b6251a3c
Merge pull request #11291 from JosJuice/gba-tas-input
DolphinQt: Add GBA TAS input window
2022-11-22 23:49:43 +01:00
Admiral H. Curtiss 81557f611a
Qt/GameCubePane: Display a warning if a GCI folder override is set. 2022-11-22 17:53:20 +01:00
Admiral H. Curtiss c18d6c3deb
Config: Use JPN for custom GCI folder paths. 2022-11-22 17:53:20 +01:00
Admiral H. Curtiss 86d01c3399
Config: Add option to use JPN as the Japanese region directory in GetDirectoryForRegion().
See https://bugs.dolphin-emu.org/issues/13076 for motivation for this.
2022-11-22 17:53:19 +01:00
Admiral H. Curtiss 1089d3cab6
GCMemcardDirectory: Compare GCI files in GetFileNamesForGameID() by their identity instead of their default filename. 2022-11-22 10:54:11 +01:00
Admiral H. Curtiss 4b0312ecf8
GCMemcardDirectory: Decode and strip strings for GCI filenames. 2022-11-22 10:54:11 +01:00
Admiral H. Curtiss c517e92719
GCMemcardDirectory: Use HasSameIdentity() in LoadGCI().
This is cheaper and more accurate than comparing default GCI filenames.
2022-11-22 10:54:11 +01:00
Admiral H. Curtiss b31b2db5fa
GCMemcard: Remove unused methods. 2022-11-22 10:54:10 +01:00
Admiral H. Curtiss 2132e005c3
Core: Add config setting for base GCI folder path. 2022-11-22 10:48:37 +01:00
Admiral H. Curtiss 5ebb894685
Updater: Delete the file we check for write rights with on Windows. 2022-11-22 02:38:42 +01:00
Admiral H. Curtiss f0fb8c22b0
Updater: Check for write permissions in directory of Updater.exe. 2022-11-22 01:28:02 +01:00
Pokechu22 8f5a58f8be
Merge pull request #11285 from K0bin/cp-checks
VideoCommon:VertexLoaderManager: Reduce CPConfig checks
2022-11-21 15:35:06 -08:00
JosJuice d64c3dc267 Arm64Emitter: Add MOVPage2R utility function
This new function is like MOVP2R, except it masks out the lower 12 bits,
returning them instead of writing them to the register. These lower
12 bits can then be used as an offset for LDR/STR. This lets us turn
ADRP+ADD+LDR sequences with a zero offset into ADRP+LDR sequences with
a non-zero offset, saving one instruction.
2022-11-21 23:24:06 +01:00
JosJuice 40571cf13c DolphinQt: Add GBA TAS input window
When emulated GBAs were added to Dolphin, it was possible to control them
using the GC TAS input window. (Z was mapped to Select.) Unaware of this,
I broke the functionality in b296248.

To make it possible to control emulated GBAs using TAS input again,
I'm adding a proper TAS input window for GBAs, with a real Select button
and no analog controls.
2022-11-21 19:16:30 +01:00
JMC47 22bcf134bf
Merge pull request #11139 from JosJuice/jit64-nans-no-freg
Jit64: Don't use fregsIn in HandleNaNs
2022-11-20 13:47:02 -05:00
JosJuice 4b6bad2f9e Jit64: Use MOV instead of ADD for updating imm Ra
The old code would first MOV the old imm into Ra and then do an ADD.
We can skip the ADD and just MOV the new imm.
2022-11-20 10:50:25 +01:00
Admiral H. Curtiss 5d03577189
Memmap: Fix initialization of PhysicalMemoryRegion. 2022-11-18 06:57:54 +01:00
Robin Kertels f179fd9c33
VideoCommon:VertexLoaderManager: Reduce CPConfig checks
A bit of a micro optimization:
CheckCPConfiguration is called 350 times instead of 35k times.
2022-11-18 01:42:30 +01:00
Léo Lam f1c9774159
Merge pull request #11240 from noahpistilli/es_v1_ticket
IOS/ES: Add support for V1Ticket
2022-11-18 00:25:47 +01:00
Sketch 2fd9852ca8 IOS/ES: Add support for V1Ticket 2022-11-17 17:54:06 -05:00
Admiral H. Curtiss f0b0fcbb95
Netplay: Add more logging to save syncing. 2022-11-16 04:00:43 +01:00
Admiral H. Curtiss 99a918d884
Merge pull request #11280 from Pokechu22/efb-cache-cleanup
VideoCommon/FramebufferManager: Further EFB cache cleanup
2022-11-16 02:22:53 +01:00
Admiral H. Curtiss 43e90ca023
Merge pull request #11105 from vpelletier/si_ignore_setGameId
SI: Ignore non-standard setGameID command
2022-11-16 02:08:39 +01:00
Pokechu22 1fdf15a1be VideoCommon/FramebufferManager: Rename m_efb_cache_tiles_wide to m_efb_cache_tile_row_stride
This also initializes it in the non-tiled case just for consistency, although it's not actually read in that case.
2022-11-15 16:04:41 -08:00
Pokechu22 55e1c3b51d VideoCommon/FramebufferManager: use !IsUsingTiledEFBCache() in GetEFBCacheTileRect
This is for readability only, and should behave identically.
2022-11-15 15:48:56 -08:00
Pokechu22 90d05fe37e VideoCommon/FramebufferManager: Always update frame access mask on depth peeks
0e02ddcf52 removed separate logic for tiled versus non-tiled EFB peek caches, and as part of that made it so that color peeks updated the frame access mask even when a non-tiled cache is in use. However, the same change was not made for depth peeks. I'm not sure if this affected anything in practice.
2022-11-15 15:34:03 -08:00
JMC47 8a1c28be63
Merge pull request #11172 from K0bin/efb-refresh
VideoCommon:FramebufferManager: Mark cache as valid after refresh
2022-11-15 16:33:46 -05:00
Admiral H. Curtiss d7593dd721
Merge pull request #11243 from Sintendo/arm64mul
JitArm64: Optimize multiplication
2022-11-15 04:05:49 +01:00
Admiral H. Curtiss c9e74801ed
Merge pull request #11269 from vabold/dolphindevice-get-time
Add DolphinDevice::GetSystemTime to allow for accurate Unix timestamp generation
2022-11-15 03:48:57 +01:00
Admiral H. Curtiss 6c9b9cbf95
Merge pull request #11255 from JosJuice/disable-sd-convert
Disable SD card conversion while emulation is running
2022-11-15 03:44:49 +01:00
Admiral H. Curtiss 09c0321997
Merge pull request #11184 from Lobsterzelda/save-all-nand-files-to-save-state
HostFileSystem: Set all NAND folders to be saved in save states
2022-11-15 03:42:26 +01:00
Admiral H. Curtiss b6503d7585
Merge pull request #11018 from Dentomologist/add_updater_error_messages
Add updater error messages
2022-11-15 01:08:55 +01:00
Admiral H. Curtiss 5bdb291d90
Qt/Updater: Remove unused member variable. 2022-11-15 00:56:08 +01:00
Admiral H. Curtiss f05b0ad669
Merge pull request #11271 from jordan-woyak/mapping-button-expanding
DolphinQt: Allow mapping buttons to expand horizontally.
2022-11-15 00:53:02 +01:00
Admiral H. Curtiss 2a81fa6c26
Merge pull request #11015 from TryTwo/Conditional_Breakpoints
Conditional breakpoints
2022-11-13 01:06:52 +01:00
vabold 083b8172e0 Replace `std::time` with `std::chrono::system_clock` 2022-11-12 05:36:49 -05:00
vabold ff1c71cc38 Fix inaccurate function name, add old function 2022-11-12 05:36:49 -05:00
Jordan Woyak 6044bc32a8 DolphinQt: Allow mapping buttons to expand horizontally. 2022-11-11 23:14:03 -06:00
Jordan Woyak e9af3d945a DolphinQt: Rename "Keyboard" to "Keyboard Controller" and add warning text. 2022-11-11 22:26:35 -06:00
Jordan Woyak 296959ec58 GCKeyboardEmu: Eliminate unused Options group. 2022-11-11 01:59:09 -06:00
Lobsterzelda ed54e1905a HostFileSystem: Set all NAND folders to be saved in save states when a movie is active 2022-11-10 14:02:29 -05:00
TellowKrinkle 37a51f1d09 VideoCommon: Add an option to disable mipmaps
Needed by M1 fifoci to work around a minor non-determinism bug
2022-11-07 22:18:56 -06:00
Robin Kertels 3beb22ed7f
VideoBackends:Vulkan: Synchronize presentation
Synchronize with the submission thread
if the last present is not done yet.
2022-11-07 02:20:22 +01:00
Admiral H. Curtiss a98df18947
VideoCommon: Hold ImGui lock while initializing and shutting down ImGui. 2022-11-06 21:48:55 +01:00
Pokechu22 e37aa3ed90
RenderWidget: Fix random crash due to missing ImGui context
`ImGui::GetIO` performs an assertion that a context exists, and if one doesn't then things will likely crash.  Unfortunately this crash is hard to consistently reproduce.
2022-11-06 21:41:07 +01:00
Admiral H. Curtiss c931529e7a
Merge pull request #11225 from iwubcode/graphics-mod-textureload-callable
VideoCommon: call texture load graphics mod hook when textures are loaded
2022-11-06 18:58:51 +01:00
Admiral H. Curtiss 1348337277
Merge pull request #11246 from tellowkrinkle/PVDMemset
VideoCommon: Zero PortableVertexDeclarations on initialization
2022-11-06 18:54:21 +01:00
Admiral H. Curtiss c75b53c7ed
Merge pull request #11250 from AdmiralCurtiss/memory-widget-menu
MemoryWidget: Split Actions into Import and Export.
2022-11-06 18:50:02 +01:00
Admiral H. Curtiss a36a5c1308
CoreTiming: Pass Core::System to Events. 2022-11-06 17:54:58 +01:00
JosJuice de93b4dc13 DolphinQt: Disable SD card conversion while emulation is running 2022-11-06 17:48:55 +01:00
Admiral H. Curtiss db679ab620
Merge pull request #11249 from JosJuice/load-dol-elf-after-mem
Boot: Load DOL/ELF after memory setup
2022-11-06 05:40:54 +01:00
Admiral H. Curtiss e1f5eb3d8d
Merge pull request #11233 from AdmiralCurtiss/netplay-split-save-sync-function
NetPlay: Split SyncSaveData() into two parts.
2022-11-06 05:39:26 +01:00
Admiral H. Curtiss 1c63349984
AudioCommon: Pass Core::System to AudioCommon functions. 2022-11-06 02:13:58 +01:00
Admiral H. Curtiss e9caa09f7b
NetPlay: Split SyncSaveData() into two parts.
This allows the 'save collection' part to run even if no clients are connected. Fixes issue 13095.
2022-11-06 01:51:01 +01:00
Admiral H. Curtiss cf533df814
MemoryWidget: Split Actions into Import and Export. 2022-11-05 23:05:15 +01:00
Admiral H. Curtiss 89bc1649e3
Merge pull request #11111 from TryTwo/PR_MemoryView_TableUpdates
MemoryViewWidget refactor memory table
2022-11-05 22:59:44 +01:00
JosJuice fb916a4c33 Boot: Load DOL/ELF after memory setup
I recently talked to a homebrew developer who was trying to add exception
handlers at link time but found out that Dolphin was overwriting their
exception handlers. I figure that's not the usual way to do exception
handlers, but... making us load the executable after setting up memory
rather than before is easy, and matches what we do when booting discs,
so I suppose there's no reason not to do it. It also matches the intent
of why Dolphin is writing default exception handlers – we're writing
them because some homebrew relies on exception handlers being left
around from whatever program was running before it (see 3dd777be70).
2022-11-05 13:55:17 +01:00
TellowKrinkle d9ed9ae331 VideoCommon: Zero PortableVertexDeclarations on initialization
Fixes an issue where the default initializer wouldn't initialize padding, making for fun non-determinism
2022-11-05 02:02:53 -05:00
Admiral H. Curtiss 431301add3
Merge pull request #10771 from TryTwo/PR_AutoStep
Debugger: Implement base code tracing logic. and feature to auto-step through code.
2022-11-04 23:32:54 +01:00
Admiral H. Curtiss 26b68f1f84
Merge pull request #11228 from Pokechu22/statistics-macros
VideoCommon/Statistics: Require semicolons after statistics macros
2022-11-04 23:15:52 +01:00
Admiral H. Curtiss 8b4e315fb7
Merge pull request #11242 from Sintendo/arm64cmp
JitArm64: Optimize cmp
2022-11-04 23:13:09 +01:00
Robin Kertels 0e02ddcf52
VideoCommon:FramebufferManager: Cleanup 2022-11-04 01:18:23 +01:00
Robin Kertels 371935d61e
VideoCommon:FramebufferManager: Mark cache as valid after refresh
Otherwise we might never hit the early return
if either depth or color doesnt have any active
tiles.
2022-11-04 01:18:23 +01:00
TellowKrinkle 83ca1ad8a6 VideoBackends:Metal: Headless render support 2022-11-03 02:35:24 -05:00
Admiral H. Curtiss 1d07332657
Merge pull request #11193 from jordan-woyak/ciface-input-backend-interface
ControllerInterface: Add InputBackend interface.
2022-11-03 04:42:05 +01:00
Bram Speeckaert 274e34ddf1 JitArm64: MultiplyImmediate - Handle -(2^n) + 1
Let's take advantage of ARM64's input register shifting one last time,
shall we?

Before:
0x1280005b   mov    w27, #-0x3
0x1b1b7f18   mul    w24, w24, w27

After:
0x4b180b18   sub    w24, w24, w24, lsl #2
2022-11-02 21:53:19 +01:00
Bram Speeckaert 7073a135c6 JitArm64: MultiplyImmediate - Handle -(2^n)
ARM64's flexible shifting of input registers also allows us to calculate
a negative power of two in one instruction; shift the input of a NEG
instruction.

Before:
0x128001f7   mov    w23, #-0x10
0x1b1a7efa   mul    w26, w23, w26
0x93407f58   sxtw   x24, w26

After:
0x4b1a13fa   neg    w26, w26, lsl #4
0x93407f58   sxtw   x24, w26
2022-11-02 21:53:19 +01:00
Bram Speeckaert 1c87f040a3 JitArm64: mulli - Only allocate reg when necessary
If the destination register doesn't equal the input register, using it
to temporarily hold the immediate value is fair game as it'll be
overwritten with the result of the multiplication anyway. This can
slightly reduce register pressure.

Before:

0x52800659   mov    w25, #0x32
0x1b197f5b   mul    w27, w26, w25

After:
0x5280065b   mov    w27, #0x32
0x1b1b7f5b   mul    w27, w26, w27
2022-11-02 21:53:19 +01:00
Bram Speeckaert 20dd5cadab JitArm64: MultiplyImmediate - Add comments 2022-11-02 21:53:17 +01:00
Bram Speeckaert c349875cdc JitArm64: MultiplyImmediate - Handle 2^n + 1
By taking advantage of ARM64's ability to shift an input register by any
amount, we can calculate multiplication by a number that is one more
than a power of two with a single instruction.

Before:
0x52800838   mov    w24, #0x41
0x1b187f7b   mul    w27, w27, w24

After:
0x0b1b1b7b   add    w27, w27, w27, lsl #6
2022-11-02 21:52:44 +01:00
Bram Speeckaert 3aaf1a2b8b JitArm64: MultiplyImmediate - Handle 2^n
Turn multiplications by a power of two into bitshifts.

Before:
0x52800817   mov    w23, #0x40
0x1b167ef6   mul    w22, w23, w22

After:
0x531a66d6   lsl    w22, w22, #6
2022-11-02 21:52:37 +01:00
Markus Wick 0210d115c2
Merge pull request #11227 from JosJuice/jitarm64-mmio-clobber
JitArm64: Move MMIO handler result before popping stack
2022-11-02 10:19:22 +01:00
Jordan Woyak 168a49c87f ControllerInterface: DSU InputBackend implementation. 2022-11-01 21:59:09 -05:00
Jordan Woyak 2e5cd5d519 ControllerInterface: evdev InputBackend implementation. 2022-11-01 21:59:08 -05:00
Jordan Woyak 44a4573303 ControllerInterface: Add InputBackend interface and SDL implementation. 2022-11-01 21:59:08 -05:00
Bram Speeckaert f25611f388 JitArm64: MultiplyImmediate - Handle 1
Multiplication by one is also trivial. Depending on the registers
involved, either a single MOV or no instructions will be generated.

Before:
0x52800038   mov    w24, #0x1
0x1b1a7f1b   mul    w27, w24, w26

After:
0x2a1a03fb   mov    w27, w26

Before:
0x52800039   mov    w25, #0x1
0x1b1a7f3a   mul    w26, w25, w26

After:
Nothing!
2022-11-01 21:13:45 +01:00
Bram Speeckaert 51cb918aa5 JitArm64: MultiplyImmediate - Handle 0
Multiplication by zero always gives zero.

Before:
0x52800019   mov    w25, #0x0
0x1b197f5b   mul    w27, w26, w25

After:
Nothing!
2022-11-01 21:13:38 +01:00
Bram Speeckaert 080513284c JitArm64: mullwx - Use MultiplyImmediate 2022-11-01 19:05:33 +01:00
Bram Speeckaert 53a8cd1563 JitArm64: mulli - Use MultiplyImmediate 2022-11-01 19:04:50 +01:00
Bram Speeckaert 4aa0c0133a JitArm64: Introduce MultiplyImmediate
Add a new function that will handle all the special cases regarding
multiplication. It does nothing for now, but will be expanded in
follow-up commits.
2022-11-01 19:01:38 +01:00
Bram Speeckaert d0de68c41b JitArm64: cmp - Optimize general case
We can merge an SXTW with the SUB, eliminating one instruction. In
addition, it is no longer necessary to allocate a temporary register,
reducing register pressure.

Before:
0x93407f59   sxtw   x25, w26
0x93407ebb   sxtw   x27, w21
0xcb1b033b   sub    x27, x25, x27

After:
0x93407f5b   sxtw   x27, w26
0xcb35c37b   sub    x27, x27, w21, sxtw
2022-11-01 12:21:24 +01:00
Bram Speeckaert ae6ce1df48 Arm64Emitter: Add ArithOption with ExtendSpecifier
ARM64 can do perform various types of sign and zero extension on a
register value before using it. The Arm64Emitter already had support for
this, but it was kinda hidden away.

This commit exposes the functionality by making the ExtendSpecifier enum
available everywhere and adding a new ArithOption constructor.
2022-11-01 12:15:56 +01:00
Bram Speeckaert 82f22cdfa1 JitArm64: cmp - Optimize a == -1 case
By explicitly handling this, we can avoid materializing -1 in a
register and generate more efficient code by taking advantage of -x ==
~x + 1.

Before:
0x12800015   mov    w21, #-0x1
0x93407eb9   sxtw   x25, w21
0x93407ef8   sxtw   x24, w23
0xcb180338   sub    x24, x25, x24

After:
0x2a3703f8   mvn    w24, w23
0x93407f18   sxtw   x24, w24
2022-11-01 12:00:32 +01:00
Bram Speeckaert 592ba31e22 JitArm64: cmp - Optimize a == 0 case
By explicitly handling this, we can avoid materializing zero in a
register and generate more efficient code altogether.

Before:
0x52800016   mov    w22, #0x0
0xb94093b5   ldr    w21, [x29, #0x90]
0x93407ed7   sxtw   x23, w22
0x93407eb9   sxtw   x25, w21
0xcb1902f9   sub    x25, x23, x25

After:
0xb94093b7   ldr    w23, [x29, #0x90]
0x4b1703f9   neg    w25, w23
0x93407f39   sxtw   x25, w25
2022-11-01 11:52:00 +01:00
Bram Speeckaert f5e7e70cc5 JitArm64: cmp - Refactor 2022-11-01 11:47:17 +01:00
Bram Speeckaert dbb8f588c7 JitArm64: cmpl - Optimize a == 0 case
By explicitly handling this, we can avoid materializing zero in a
register.

Before:
0x52800019   mov    w25, #0x0
0xb94087b6   ldr    w22, [x29, #0x84]
0xcb16033b   sub    x27, x25, x22

After:
0xb94087b9   ldr    w25, [x29, #0x84]
0xcb1903fb   neg    x27, x25
2022-11-01 11:27:45 +01:00
Dentomologist 7cd08fde75 Updater: Add/clarify error messages 2022-10-31 23:36:07 -07:00
Dentomologist 2808db7f2f FileUtil: Return success bool from CopyDir 2022-10-31 23:33:02 -07:00
shuffle2 111e965c7e
Revert "MacUpdater: test that os version check is working" 2022-10-31 18:53:22 -07:00
Tilka b182abe0ae
Merge pull request #11234 from shuffle2/updater
MacUpdater: test that os version check is working
2022-11-01 01:28:20 +00:00
Tillmann Karras 22eb7e6645 OGL: use already known object label lengths
Passing -1 means the driver has to call strlen().
2022-11-01 01:10:03 +00:00
Tillmann Karras 4b8fe959d4 OGL: fix compute shader labels
This fixes GL_INVALID_VALUE errors when using GPU texture decoding.
2022-11-01 01:04:46 +00:00
Robin Kertels f5fecaf964
VideoBackends:Vulkan: Fix 0 size descriptor pools
[ VUID-VkDescriptorPoolCreateInfo-maxSets-00301 ] Object 0:
handle = 0x7f1,b8d,3cd,e70, type = VK_OBJECT_TYPE_DEVICE; |
MessageID = 0xa1,70e,236 | vkCreateDescriptorPool():
pCreateInfo->maxSets is not greater than 0.
The Vulkan spec states: maxSets must be greater than 0
2022-10-31 22:41:16 +01:00
Shawn Hoffman 7cc8e37aee MacUpdater: test that os version check is working
Adds a key to Info.plist with default value to test
Updater - this commit is intended to be reverted
2022-10-30 13:19:43 -07:00
JMC47 969309c457
Merge pull request #11220 from shuffle2/macversion
MacUpdater: check os version
2022-10-30 15:19:55 -04:00
Shawn Hoffman 089886a6f8 MacUpdater: check os version 2022-10-30 12:04:57 -07:00
JMC47 f277a921a9
Merge pull request #11231 from shuffle2/updater
windows: Rename: use std::filesystem::rename for posix behavior
2022-10-30 13:32:10 -04:00
JMC47 950e1f94dc
Merge pull request #11185 from TryTwo/PR_MemoryWidget_Address_Input_History
MemoryWidget: Make search address a combobox that holds address history.
2022-10-30 04:21:14 -04:00
TryTwo 053320b7cf MemoryWidget: Make search address a combobox that holds address history.
Always update the combobox when a new target address is sent.
2022-10-29 22:41:30 -07:00
Shawn Hoffman 68875dc06b MacUpdater: add version info to Updater.app too 2022-10-29 20:32:59 -07:00
Shawn Hoffman 836bc74b2d windows: Rename: use std::filesystem::rename for posix behavior 2022-10-29 19:57:26 -07:00
Pokechu22 fe559f3ed3 VideoCommon/Statistics: Require semicolons after statistics macros
This is clearer and reduces IntelliSense problems.
2022-10-29 15:39:41 -07:00
Admiral H. Curtiss 0628794cb6
Merge pull request #11226 from K0bin/d3d12-fix
VideoBackends:D3D12: Fix hang in Twilight Princess
2022-10-30 00:24:16 +02:00
Robin Kertels a07ee729e5
VideoBackends:D3D12: Defer binding framebuffer in SetAndDiscardFramebuffer
BindFramebuffer depends on the pipeline which might not be set yet.
That's why the framebuffer dirty flag exists in the first place.
I assume BindFramebuffer was called directly here, in order to handle
the texture state transitions necessary for DiscardResource.
The state is tracked anyway, so we can just issue those transitions there
too and defer binding the actual framebuffer.

Fixes an issue in Zelda Twilight Princess with EFB depth peeks.
Dolphin would bind a frame buffer which doesn't have an integer format
descriptor for the color target before binding the new pipeline.
So it would accidentally use the 0 descriptor.

Debug layer error:
D3D12 ERROR: ID3D12CommandList::OMSetRenderTargets:
Specified CPU descriptor handle ptr=0x0000000000000000 does not refer to
a location in a descriptor heap. pRenderTargetDescriptors[0] is the issue.
[ EXECUTION ERROR #646: INVALID_DESCRIPTOR_HANDLE]
2022-10-29 23:41:32 +02:00
Robin Kertels a6aa651291
VideoBackends:D3D12: Use COMMON as initial state for default heap buffer
Fixes the following error in the D3D12 debug layer:

D3D12 WARNING: ID3D12Device::CreateCommittedResource:
Ignoring InitialState D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
Buffers are effectively created in state D3D12_RESOURCE_STATE_COMMON.
[ STATE_CREATION WARNING #1328: CREATERESOURCE_STATE_IGNORED]
2022-10-29 23:39:32 +02:00
Robin Kertels 22fecb41fc
VideoBackends:D3D12: Don't query GPU descriptor handle for non-shader visible heap
Fixes the following error in the D3D12 debug layer:

D3D12 ERROR: ID3D12DescriptorHeap::GetGPUDescriptorHandleForHeapStart:
GetGPUDescriptorHandleForHeapStart is invalid to call on a descriptor
heap that does not have DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE set.
If the heap is not supposed to be shader visible, then
GetCPUDescriptorHandleForHeapStart would be the appropriate method
to call. That call is valid both for shader visible and non shader
visible descriptor heaps.
[ STATE_GETTING ERROR #1315: DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE]
2022-10-29 23:39:27 +02:00
Tillmann Karras cacdd18ca0 VolumeVerifier: fix bogus "serial/version missing" error
When searching for a disc where the revision doesn't match any disc in
the datfile, the loop would never get to the part where serials_exist is
set to true, leading to a bogus error message.
2022-10-29 21:32:57 +01:00
Pokechu22 6dcf8a6fc9
Merge pull request #11201 from JoshuaMKW/fix-instruction-patches
MemoryPatches: Fix instruction patches
2022-10-29 12:34:00 -07:00
JosJuice 431ee1c48a JitArm64: Improve register handling for MMIO loadstores
Because of the previous commit, `regs_in_use` must not include `dest_reg`
when calling MMIOLoadToReg. There are also some other registers we can
skip including in regs_in_use just for efficiency's sake.

The `addr_reg_set = false` statements that I've added in this commit are
technically redundant – if `mmio_address` is non-zero then `addr_reg_set`
is already false – but it's just a coincidence that that's the case.
2022-10-29 14:16:53 +02:00
JosJuice 0660f12da4 JitArm64: Move MMIO handler result before popping stack
Otherwise we might throw the result away.
Fixes https://bugs.dolphin-emu.org/issues/13083.
2022-10-29 14:16:43 +02:00
iwubcode ea3e133200 VideoCommon: call texture load graphics mod hook when Dolphin loads a texture 2022-10-28 19:24:43 -05:00
iwubcode 0e1ffe009a VideoBackends: fix d3d12 subresource calculation 2022-10-28 19:07:08 -05:00
Admiral H. Curtiss 8efd7833e5
Merge pull request #11150 from jordan-woyak/all-devices-less-confusing
DolphinQt: Make "All Devices" mapping hopefully less confusing.
2022-10-29 00:53:19 +02:00
Admiral H. Curtiss 8001535d12
Merge pull request #11211 from jordan-woyak/fix-focus-resume-after-manual-pause
DolphinQt: Fix window focus from unpausing after a manual pause.
2022-10-29 00:35:50 +02:00
JoshuaMK e2f4400f49 Make SetPatch responsible for overwriting old patches 2022-10-26 22:46:49 -05:00
Pokechu22 2f3805e1b4 GraphicsSettings: Remove unused FreelookControlType enum forward declaration 2022-10-26 16:23:13 -07:00
Jordan Woyak 4fc05dd025 DolphinQt: Fix window focus from unpausing after a manual pause. 2022-10-25 19:39:41 -05:00
Pokechu22 581a575042 VertexLoader: Remove "too many initializer values" workaround functions
I originally added these in 2b1d1038a6, for both the TPipelineFunction and the size. The size was moved into the header in fdcd2b7d00 (making the size functions obsolete), but it seems that the functions themselves are no longer needed now.

I think I didn't use this approach before because it would have required ComponentFormatTable and ComponentCountRow to be templated, which would end up resulting in lines that were too long and thus wrapped in awkward places. (I *think* they didn't get inferred properly.) Now that we only need TPipelineFunction, the templating is not needed, and this ends up being a more readable version of the version with the wrapper functions.
2022-10-25 15:29:09 -07:00
JMC47 027e10460a
Merge pull request #10977 from tellowkrinkle/FixBackendMultithreading
VideoBackends:Vulkan: Improve backend multithreading
2022-10-25 04:14:01 -04:00
JMC47 9ef7a3b44c
Merge pull request #11207 from Pokechu22/invalid-normal-count
VideoCommon: Treat invalid normal count as NormalTangentBinormal
2022-10-25 03:17:19 -04:00
Pokechu22 574939b683 VideoCommon: Treat invalid normal count as NormalTangentBinormal
See https://bugs.dolphin-emu.org/issues/13070.
2022-10-24 22:36:43 -07:00
TellowKrinkle fa8134deda VideoBackends:Metal: Default to presentDrawable when vsync is on 2022-10-24 17:55:30 -05:00
JMC47 b66793194e
Merge pull request #11028 from tellowkrinkle/MetalFixes
Various Metal renderer improvements
2022-10-24 15:22:37 -04:00
JMC47 4787b25a7f
Merge pull request #10741 from Pokechu22/audio-dma-one-block-at-a-time
DSP: Copy audio dma samples one block at a time
2022-10-24 01:43:22 -04:00
JoshuaMK 2594447c25 Have UnsetPatch only unset the argument address 2022-10-23 18:42:34 -05:00
JoshuaMK e10b3308c2 Fix patch corruption using find_if instead of remove_if 2022-10-23 18:41:15 -05:00
JMC47 33733ff81c
Merge pull request #11199 from JosJuice/translation-fixes
WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
2022-10-23 16:07:11 -04:00
JosJuice 7437d2d9ad WiimoteEmu: Change Shinkansen Start/Select to START/SELECT
For consistency with GameCube controllers and GBAs. I missed this
when reviewing the PR.

Also adding some i18n comments while I'm at it.
2022-10-23 21:50:54 +02:00
JosJuice 063c2739b3
Merge pull request #11135 from AdmiralCurtiss/ppcanalyst-unused-stats
PPCAnalyst: Remove unused variables and methods in BlockStats and BlockRegStats.
2022-10-23 21:22:54 +02:00
TryTwo e2df81b0c1 Add logging and error reporting to Breakpoint Conditionals. 2022-10-23 08:22:35 -07:00
Shawn Hoffman 4705fb7588 Updater: clarify a string 2022-10-23 01:47:02 -07:00
Shawn Hoffman 08c019608d WinUpdater: fix renaming of Updater 2022-10-23 01:34:04 -07:00
Shawn Hoffman f952c3dbbe this is a test commit for WinUpdater 2022-10-23 00:19:46 -07:00
JMC47 34de2b85f3
Merge pull request #11189 from shuffle2/updater-elevation
WinUpdater: Defer modifying any files until Updater.exe
2022-10-23 02:20:56 -04:00
JMC47 cdcbe51b2a
Merge pull request #10890 from tellowkrinkle/VertexLineExpand
VideoCommon: Add vertex shader point/line expansion
2022-10-23 01:49:26 -04:00
JMC47 06bd0a9086
Merge pull request #11132 from K0bin/vma
Vulkan: Use VMA for memory allocations
2022-10-23 01:18:47 -04:00
Robin Kertels aa1679f2c7
VideoBackends:Vulkan: Clean up unused memory allocation code 2022-10-23 03:21:29 +02:00
Robin Kertels 1ba58e83ca
VideoBackends:Vulkan: Use VMA for stream buffer 2022-10-23 03:21:29 +02:00
Robin Kertels 0e1b7a7b35
VideoBackends:Vulkan: Use VMA for bounding box 2022-10-23 03:21:29 +02:00
Robin Kertels 0532f4a05a
VideoBackends:Vulkan: Use VMA for staging buffers 2022-10-23 03:21:14 +02:00
TellowKrinkle 1e9b6f88e4 VideoCommon: Support hot reloading of VS expand 2022-10-22 20:18:02 -05:00
TellowKrinkle 3912fa7a2e VideoCommon: Add reasons for disabled VS expand 2022-10-22 20:18:02 -05:00
TellowKrinkle b567f3afcf VideoCommon: Move repeated point/line expansion code to ShaderGenCommon 2022-10-22 20:13:24 -05:00
TellowKrinkle 0a42c534c3 VideoCommon: Add configuration to prefer VS for line/point expansion 2022-10-22 20:13:24 -05:00
TellowKrinkle 1eeba6dcca VideoBackends:D3D12: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
TellowKrinkle 9624479933 VideoBackends:OGL: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
TellowKrinkle 3a5901d12e VideoBackends:Vulkan: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
TellowKrinkle 678ee48bfc VideoBackends:Metal: Add support for vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
TellowKrinkle 68f49df0f8 VideoCommon: Add vertex shader point and line expansion 2022-10-22 20:13:24 -05:00
Robin Kertels 3ffbf94b2a
VideoBackends:Vulkan: Set up VMA
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2022-10-23 02:54:35 +02:00
TryTwo 6f4f4e057e MemoryViewWidget refactor memory table.
Don't re-create the table on every update.
2022-10-22 17:52:39 -07:00
Pokechu22 bac75de79c Fifo recorder: Fix incorrect calculation of the size of an array
The old calculation was stride * (max_index + 1), which fails if stride is less than the size of a component (for instance, if float XYZ positions are used, and the stride was set to 4 (i.e. sizeof(float)) instead of 12 (i.e. 3 * sizeof(float)), it would be missing the last 8 bytes of the final element in the array.  Or, if stride was set to 0, then no bytes would be recorded at all (though that's not a useful configuration so it's unlikely to actually exist).

I'm not aware of any games affected by this issue.
2022-10-22 13:36:16 -07:00
Pokechu22 c9ff2a9b3d Fifo recorder: Fix NormalIndex3
This should fix recording the wall in the staircase leading to the basement in Luigi's Mansion (though I haven't tested it, as I don't own a copy of Luigi's Mansion).  This uses NormalIndex3, and the index for the normal vector (generally 0x02XX or 0x01XX) there is always lower than the tangent or binormal (generally 0x07XX).  Other games seem to usually have a similar range of indices for the normal, tangent, and binormal, so this issue wouldn't affect them.
2022-10-22 13:36:16 -07:00
Pokechu22 24b761acda Fifo recorder: Fix position's type being used for normals/colors/texture coords
In most cases, games will use the same type for all vertex components (either Index8 or Index16 or Direct).  However, RS2's deflection towers use Index16 for the texture coordinate and Index8 for everything else, meaning the texture coordinates were recorded incorrectly (the first byte was used, so only indices 0 and 1 were recorded instead of 0 through 0x0192).  Worse still, some background elements in RS2 use direct positions but indexed normals or texture coordinates, and those would not be recorded at all.

This is a regression from b5fd35f951.
2022-10-22 13:36:16 -07:00
JMC47 804e42150e
Merge pull request #11188 from GaryOderNichts/feature/vwii_ancast
Support for loading vWii System Menu
2022-10-22 15:57:55 -04:00
Pokechu22 6de55e416b WaveFile: Fix size check
`count` is the number of stereo samples to write (where each stereo sample is two shorts), while `BUFFER_SIZE` is the size of the buffer in shorts.  So `count` needs to be multiplied by `2`, not `BUFFER_SIZE`.  Also, when this check was failed, the previous code just clobbered whatever was past the end of the buffer after logging the warning, which corrupted `basename`, eventually resulting in Dolphin crashing.

This affected Datel's Wii-compatible Action Replay, which uses a block size of 2298, or 18384 stereo samples, which is 36768 shorts, which is bigger than the buffer size of 32768. (However, the previous commit means that only one block is transfered at a time, eliminating this issue; fixing the bounds check is just a general safety thing instead of an actual bugfix now.)
2022-10-22 11:44:38 -07:00
Pokechu22 2a83b17ffb DSP: Copy audio dma samples one block at a time
Reverts 9f8e1e2a0d, but keeps the changes from e4e44909d5.

This fixes missing audio in Datel titles; see https://bugs.dolphin-emu.org/issues/12281.
2022-10-22 11:44:38 -07:00
GaryOderNichts 88c57a00a3 Show vWii System Menu version in Menu Bar 2022-10-22 13:36:55 +02:00
GaryOderNichts 82d20ce352 Support for loading Ancast images 2022-10-22 13:35:49 +02:00
JMC47 5b69c67b3a
Merge pull request #11147 from JosJuice/jitarm64-arith-org
JitArm64: Merge ps_mulsX, ps_maddXX, and parts of fp_arith
2022-10-22 06:37:27 -04:00
JMC47 b7310a180f
Merge pull request #11170 from JosJuice/jit64-dispatcher-no-check
Jit64: Add dispatcher_no_timing_check jump target
2022-10-22 06:19:00 -04:00
JMC47 55d269c9e0
Merge pull request #11190 from jordan-woyak/shinkansen-ui-button-order
WiimoteEmu: Shinkansen Tweaks
2022-10-22 05:21:00 -04:00
JosJuice 812067ab7c JitArm64: Move ps instructions from fp_arith to ps_arith
This lets us simplify fp_arith without making ps_arith much more
complicated.

No behavior change.
2022-10-22 11:15:41 +02:00
JosJuice 554a2fd332 JitArm64: Merge ps_mulsX and ps_maddXX
They have a lot of shared code, most notably the code for rounding c.

No behavior change.
2022-10-22 11:12:19 +02:00
JMC47 2153276ab9
Merge pull request #10046 from JosJuice/jitarm64-improve-const-stores
JitArm64: FIFO optimization improvements
2022-10-22 05:03:43 -04:00
JMC47 bc4d08047d
Merge pull request #10979 from tellowkrinkle/QuartzWindowSpeed
InputCommon:QuartzKB&M: Use KVO to watch window position
2022-10-22 04:55:12 -04:00
Markus Wick 7a2256469e
Merge pull request #11127 from JosJuice/aarch64-jitasm-macro-op
JitAsm64: Reorder instructions in routines to allow macro-op fusion
2022-10-22 10:31:54 +02:00
Markus Wick 583c2b8a0c
Merge pull request #11181 from JosJuice/jitarm64-25-bit-urshr
JitArm64: Reimplement Force25BitPrecision
2022-10-22 10:26:07 +02:00
Markus Wick 5c7b5514ed
Merge pull request #11148 from JosJuice/jitarm64-remove-cdts-inst
JitArm64: Remove unnecessary instruction from ConvertDoubleToSingle
2022-10-22 10:10:23 +02:00
JosJuice 4dbf0b8e90 JitArm64: Reimplement Force25BitPrecision
The previous implementation of Force25BitPrecision was essentially a
translation of the x86-64 implementation. It worked, but we can make a
more efficient implementation by using an AArch64 instruction I don't
believe x86-64 has an equivalent of: URSHR. The latency is the same as
before, but the instruction count and register count are both reduced.
2022-10-22 10:03:52 +02:00
Jordan Woyak d9d6428189 WiimoteEmu: Replace shinkansen MixedTriggers with Triggers. 2022-10-22 02:42:40 -05:00
Jordan Woyak d705b8d4b8 WiimoteEmu: Reorder shinkansen buttons in UI. 2022-10-22 02:37:28 -05:00
Markus Wick bba38a3642
Merge pull request #11182 from JosJuice/aarch64-emit-shift-imm
Arm64Emitter: Combine immh and immb for Emit(Scalar)ShiftImm
2022-10-22 09:23:06 +02:00
Jordan Woyak 5ed0543430 GCAdapter: Process pad state in read thread and other general cleanups. 2022-10-22 00:38:59 -05:00
Shawn Hoffman 2b43f96899 WinUpdater: Defer modifying any files until Updater.exe
Fixes https://bugs.dolphin-emu.org/issues/12151
2022-10-21 19:14:00 -07:00
Léo Lam 79e09c3731
Merge pull request #11186 from GaryOderNichts/ios/device_creation
IOS::HLE::Kernel::InitIPC: Replace s_ios check with Core::IsRunning
2022-10-21 21:17:58 +02:00
GaryOderNichts 2fb45660b3 IOS::HLE::Kernel::InitIPC: Replace s_ios check with Core::IsRunning 2022-10-21 20:38:02 +02:00
JMC47 00e23da607
Merge pull request #11051 from shuffle2/update-vcredist
WinUpdater: Check OS and VC++ Redist versions
2022-10-21 13:55:51 -04:00
JMC47 9222956acd
Merge pull request #10859 from tellowkrinkle/UniformBufferSize
VideoCommon: Increase uniform stream buffer size to 64mb
2022-10-20 17:13:31 -04:00
JosJuice 84375a91d9 Arm64Emitter: Combine immh and immb for Emit(Scalar)ShiftImm
This simplifies the callers of EmitShiftImm and EmitScalarShiftImm.
2022-10-19 20:20:39 +02:00
JMC47 9aece1810c
Merge pull request #10836 from iwubcode/d3d_uint_fix
VideoCommon: fix uint shader compiler error when using d3d
2022-10-18 12:12:08 -04:00
Lobsterzelda 486a523e0d IOS: Simplify IOS::HLE::Device savestate method 2022-10-17 23:11:04 -04:00
TellowKrinkle 6fd933915b VideoBackends:Vulkan: Improve backend multithreading
Makes the multiple threads actually able to run at the same time
2022-10-17 00:05:35 -05:00
Admiral H. Curtiss 10f973a87f
Merge pull request #11122 from K0bin/descriptor-overhaul
VideoBackends:Vulkan: Allocate descriptor pools as needed
2022-10-17 04:25:35 +02:00
Admiral H. Curtiss 9992a198f1
IOS/NetKDRequest: Don't abort on first unset bit in subtask mask. 2022-10-16 20:43:59 +02:00
Admiral H. Curtiss cbc96adfd2
VFFUtil: Invalidate window on mount. 2022-10-16 18:06:51 +02:00
Admiral H. Curtiss b1725dfb33
Zero-initialize structures passed to FatFs functions. 2022-10-16 17:12:04 +02:00
Robin Kertels 6992b0d8e1
VideoBackends:Vulkan: Allocate descriptor pools as needed 2022-10-16 17:04:35 +02:00
JosJuice 09f9a58859 Jit64: Add dispatcher_no_timing_check jump target
The new `dispatcher_no_timing_check` is the same as `dispatcher_no_check`
except it includes the "stepping check" in debug mode. This lets us avoid
the `m_enable_debugging ? dispatcher : dispatcher_no_check` dance.
2022-10-16 11:22:34 +02:00
Admiral H. Curtiss c0476fdac3
Merge pull request #11072 from SketchMaster2001/wiiconnect24
Add initial WiiConnect24 support
2022-10-16 04:31:28 +02:00
SketchMaster2001 e413d7f5ec
Add initial WiiConnect24 support 2022-10-16 04:19:36 +02:00
Admiral H. Curtiss fbe782f1a9
Merge pull request #11077 from JosJuice/jitasm-no-breakpoint
Jit64: Remove breakpoint check from JitAsm.cpp
2022-10-16 04:02:12 +02:00
JosJuice 351d095fff JitArm64: Optimize a few tail calls
Maybe "tail call" isn't quite the right term for what this code
is doing, since it's jumping to the dispatcher rather than
returning, but it's the same optimization as for a tail call.
2022-10-15 21:45:44 +02:00
JosJuice 2a5f4a2390 Jit64: Don't use fregsIn in HandleNaNs
fregsIn will include FD for double-precision instructions, since for
dependency tracking purposes the instruction does read the upper
half of FD. This is not what we want in HandleNaNs.

The consequence of this bug is that if an instruction was supposed to
output a NaN and FD happens to contain a NaN and FD happens to be the
same register as an unused register in the instruction encoding, the
NaN in FD could get used as the output instead of the correct NaN.
This isn't known to affect any games, which isn't especially surprising
considering that there's only one game that needs AccurateNaNs anyway.
2022-10-15 18:11:40 +02:00
Admiral H. Curtiss cd1f89a02b
Merge pull request #11138 from JosJuice/jit64-quiet-nans
Jit64: Turn SNaN into QNaN in HandleNaNs
2022-10-15 18:06:40 +02:00
Admiral H. Curtiss 85f7cf7c1e
Merge pull request #11169 from JosJuice/jit64-speculative-constants-dispatcher
Jit64: Jump to dispatcher_no_check from InitializeSpeculativeConstants
2022-10-15 17:46:22 +02:00
JosJuice ec6a4115eb Jit64: Jump to dispatcher_no_check from InitializeSpeculativeConstants
Jumping to `dispatcher` requires first subtracting the downcount,
otherwise `dispatcher` may unpredictably jump to CoreTiming::Advance,
which could break determinism compatibility with JitArm64. We should
jump to `dispatcher_no_check` instead.
2022-10-15 17:21:38 +02:00
JosJuice b9aed428e8 Jit64: Remove breakpoint check from JitAsm.cpp
The breakpoint check in Jit.cpp makes it redundant.

Normally this redundant check doesn't cause any issues, but if you
create a breakpoint and enable logging without breaking, you get two
log messages if the breakpoint is at the beginning of a block. See
https://bugs.dolphin-emu.org/issues/13044.

This is also a tiny performance improvement for when debugging is
active, since we no longer check for breakpoints for blocks that never
had any breakpoints to begin with.
2022-10-15 17:06:32 +02:00
JosJuice dbf5dca11c JitArm64: FIFO optimization improvements
JitArm64 port of 789975e.
2022-10-15 12:57:18 +02:00
Jordan Woyak 9c1a936ca6 WiimoteEmu: Do send a status report on connection when an extension is already attached. 2022-10-15 03:35:01 -05:00
Lobsterzelda 65c7304bd4 VideoInterface: Simplify VideoInterface savestate code
VideoInterface: Simplify savestate code in VideoInterface
2022-10-13 15:21:22 -04:00
Admiral H. Curtiss e47af664cc
HW: Move MemoryInterface variables to Core::System. 2022-10-13 04:28:17 +02:00
Admiral H. Curtiss 06f74bd7d1
Merge pull request #11152 from jordan-woyak/wm-emu-ir-point-size
WiimoteEmu: Improve simulated IR point size accuracy.
2022-10-13 02:18:58 +02:00
Pokechu22 ae7b14887b Remove varargs support from LOG_VULKAN_ERROR
Nothing currently uses it. It could theoretically be replaced with fmt support, but I don't think the LOG_VULKAN_ERROR macro is that useful and it'd be better to replace it with regular logging instead.
2022-10-12 16:50:51 -07:00
Pokechu22 f9fe25291d Remove most uses of StringFromFormat in favor of fmt 2022-10-12 16:50:47 -07:00
Mai a5fa95adfd
Merge pull request #11151 from jordan-woyak/quat-fix
Fix some bad quaternion math.
2022-10-12 17:35:50 +00:00
Mai 1f8b196d6d
Merge pull request #11158 from jordan-woyak/abs-function
Input: Add "abs" input expression function.
2022-10-12 17:35:12 +00:00
Jordan Woyak f5b9049421 Input: Add "abs" input expression function. 2022-10-11 19:28:21 -05:00
Jordan Woyak bf53e14abe WiimoteEmu: Fix gyroscope/quaternion conversion math. 2022-10-11 15:01:33 -05:00
Jordan Woyak 3939b32ed6 WiimoteEmu: Improve simulated IR point size accuracy. 2022-10-11 14:57:04 -05:00
Lioncash dbfb8408d9 HW: Use unsigned indices in RegisterMMIO where applicable
base is an unsigned variable, so we can make things little more
consistent by making the loop index unsigned so we aren't doing bit
arithmetic with signed types.

MemoryInterface already does this, so we can leave it alone.

No behavioral changes, just a consistency thing.
2022-10-11 09:27:34 -04:00
Minty-Meeo a84633f748 Remove #pragma once in DesiredWiimoteState.cpp
That shouldn't be there...
2022-10-11 01:16:56 -05:00
Jordan Woyak 6eb1f8beba Common/Matrix: Fix Quaternion Norm function. 2022-10-10 21:16:35 -05:00
Admiral H. Curtiss a056a1366f
Merge pull request #11131 from Pokechu22/cp-state-savestate-mistakes
Include tangent/binormal cache in savestates and simplify saving CP state
2022-10-11 03:42:17 +02:00
Pokechu22 ffed23c059 Simplify saving CP state
Rather than makring some parts of VertexLoaderManager dirty in some places and some in others, do it all in VideoState. Also, since CPState no longer contains pointers/non-CP data after d039b1bc0d, we can just use p.Do on it instead of manually saving each field.
2022-10-09 19:32:59 -07:00
Admiral H. Curtiss 333ede5416
Merge pull request #11136 from AdmiralCurtiss/gqr-array
Jit64: Convert constantGqr to std::array.
2022-10-10 02:13:30 +02:00
Pokechu22 05f3bbfa4d Include tangent/binormal cache in savestates
This theoretically matters for RS2/RS3, although in practice these games reconfigure it each frame so it shouldn't matter for savestates.
2022-10-09 16:21:49 -07:00
Jordan Woyak c3ceee8967 DolphinQt: Make "All Devices" mapping hopefully less confusing. 2022-10-09 17:27:25 -05:00
JosJuice bf492c1ff3 JitArm64: Fix register number typo
I think this typo was actually ignored by the code, but nevertheless,
it should be fixed.
2022-10-09 16:46:09 +02:00
JosJuice 04628034bc JitAsm64: Reorder instructions in routines to allow macro-op fusion
Micro-optimization. Some CPUs can fuse CMP+B, TST+B, arith+CBZ, etc.

I also moved things around for CMP+CSET and TST+CSET - which I'm not sure
if any CPUs support - but it doesn't hurt anything, so I might as well.
2022-10-09 16:46:09 +02:00
JosJuice 6e01ab56fa JitArm64: Remove unnecessary instruction from ConvertDoubleToSingle
The upper bits are masked away by the preceding LSR, and the lower bits
are masked away by the following BFXIL.
2022-10-09 14:17:18 +02:00
Admiral H. Curtiss 1647fa350b
Merge pull request #10804 from iwubcode/graphics-mod-input-output-structs
VideoCommon: add structures to graphics mods internal API
2022-10-09 13:17:11 +02:00
Admiral H. Curtiss 4c7fcf58b0
Merge pull request #11140 from JosJuice/jit64-inaccurate-single-fprf
Jit64: Fix single FPRF when !jo.accurateSinglePrecision
2022-10-09 13:08:53 +02:00
JosJuice c361f9155b Jit64: Turn SNaN into QNaN in HandleNaNs
Improves accuracy but isn't known to affect any games.

This turned out to be fairly convenient to implement; ORing with the
PPC default NaN will quieten SNaNs and do nothing to QNaNs.
2022-10-09 09:49:52 +02:00
iwubcode bc360584a3 VideoCommon: add structures to graphics mods to allow for future adding or removing parameters with less code overhead 2022-10-09 00:00:01 -05:00
Admiral H. Curtiss 6cf99195c6
Merge pull request #11142 from JosJuice/jit64-handle-nans-no-output
Jit64: Remove HandleNaNs's xmm_out parameter
2022-10-09 04:16:57 +02:00
Admiral H. Curtiss bfbc04ef5e
ENetUtil: Check return values of ENet functions in SendPacket(). 2022-10-09 02:39:38 +02:00
Admiral H. Curtiss 66684a392f
Deduplicate NetPlayServer::Send() and NetPlayClient::Send() into ENetUtil::SendPacket(). 2022-10-09 02:25:28 +02:00
Admiral H. Curtiss da27a3e6bc
Merge pull request #11095 from K0bin/misc-vulkan
Remove special treatment for Android in video settings
2022-10-08 22:24:30 +02:00
TryTwo 1ed6028af4 NewBreakpointDialog: Add a help message for conditionals. 2022-10-08 13:23:24 -07:00
Admiral H. Curtiss 1dd30b58f3
Merge pull request #11143 from K0bin/cmd_buffer_cleanup-fix
VideoBackends:Vulkan: Fix command buffer cleanup
2022-10-08 22:07:58 +02:00
Robin Kertels 332824f7d5
VideoBackends:Vulkan: Fix command buffer cleanup 2022-10-08 21:40:33 +02:00
JosJuice 4b8a720c9b Jit64: Remove HandleNaNs's xmm_out parameter
All HandleNaNs does with the xmm_out parameter is emit MOVAPD at the end
if xmm_out != xmm. The caller might as well do that themselves.
2022-10-08 19:49:30 +02:00
JosJuice 0b1fdee289 Jit64: Fix single FPRF when !jo.accurateSinglePrecision
jo.accurateSinglePrecision is always true, so it's not like this
matters much...
2022-10-08 18:35:46 +02:00
Admiral H. Curtiss 1c2182d069
Merge pull request #11134 from Pokechu22/memmap-remove-io-size
Memmap: Remove unused IO size field
2022-10-08 13:59:44 +02:00
Admiral H. Curtiss e7219f7389
Jit64: Convert constantGqr to std::array. 2022-10-08 13:54:50 +02:00
TellowKrinkle fd2680d8b4 VideoBackends:Metal: Use a temporary buffer for large texture uploads 2022-10-08 04:46:07 -05:00
TellowKrinkle a13f09433c VideoBackends:Metal: Add config option to use presentDrawable 2022-10-08 04:46:07 -05:00
TellowKrinkle 5a1b90c7f3 VideoBackends:Metal: Explicitly disable arc
Makes it easier to enable arc elsewhere without breaking the Metal backend
2022-10-08 04:46:07 -05:00
TellowKrinkle c08de82e90 VideoBackends:Metal: Bring back unified memory config
Turns out it was helpful.  (Most improvement in ubershaders.)  This time with much better auto mode.
2022-10-08 04:46:05 -05:00
TellowKrinkle 93ce7bf344 VideoBackends:Metal: Unroll lighting loop 2022-10-08 04:44:48 -05:00
TellowKrinkle 45ee1be6da VideoBackends:Metal: Properly set vsync on creation 2022-10-08 04:44:48 -05:00
TellowKrinkle 274d4679ca VideoBackends:Multiple: More GPUs with broken subgroup ops 2022-10-08 04:44:48 -05:00
Admiral H. Curtiss 1abffc0b05
PPCAnalyst: Remove unused variables in BlockStats. 2022-10-08 03:30:56 +02:00
Admiral H. Curtiss a5217c07b8
PPCAnalyst: Remove unused variables and methods in BlockRegStats. 2022-10-08 03:26:42 +02:00
Admiral H. Curtiss 6a2ed5758e
JitCache: Erase address from noSpeculativeConstantsAddresses when block is invalidated. 2022-10-08 02:44:36 +02:00
Pokechu22 be65e96991 Memmap: Remove unused IO size field
This existed in the initial megacommit (though I don't know why) as IO_SIZE. It was used in Memmap's Init() to compute totalMemSize, but I don't know if it actually did anything then. That use was removed in 2d0f714546, but the constant persisted until cc858c63b8, when it became a static variable.
2022-10-07 17:24:51 -07:00
TryTwo fb79c04cf1 MemoryView auto updateDebugger. Implement base codetrace logic. Add register breakpoints. Add CodeViewWidget autostepping to track a value.Debugger 2022-10-06 22:17:22 -07:00
smurf3tte 85cb4d1bc5 Support memory reads/writes from breakpoint expressions
Co-authored-by:  TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
smurf3tte 1224575b0b Add cast expression functions u8(), s8(), u16(), etc.
This allows for easy reinterpretation of GPRs in an expression.

Co-authored-by:  TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
smurf3tte 7842f9a715 Debugger: Initial implementation of conditional breakpoints
Expression class to store compiled expressions and associated variable list.

Co-authored-by:  TryTwo <taolas@gmail.com>
2022-10-06 21:34:44 -07:00
Lobsterzelda d2db451eba
HW/MemoryInterface: Add data to savestates and initialize on boot. 2022-10-07 01:31:56 +02:00
Admiral H. Curtiss 691135dbc3
HW: Move SerialInterface variables to Core::System. 2022-10-06 22:08:20 +02:00
Pokechu22 4d33f6af7c GCMemcard: Remove manual std::vector handling in DoState 2022-10-06 11:25:36 -07:00
Pokechu22 e8221d7948 Common/PointerWrap: Remove DoPOD
This was added in 385d8e2b15, but became somewhat redundant with Do in 4c7bbd96e4, and completely redundant now that std::is_trivially_copyable_v is well-supported.
2022-10-06 11:25:36 -07:00
Mai 7498eb1e6c
Merge pull request #11121 from AdmiralCurtiss/globals-exi
HW: Move ExpansionInterface variables to Core::System.
2022-10-06 10:33:22 -04:00
Admiral H. Curtiss 26318e2c51
HW: Move ExpansionInterface variables to Core::System. 2022-10-06 01:19:29 +02:00
Admiral H. Curtiss de5a98a3fa
Merge pull request #11120 from AdmiralCurtiss/gci-open-fail
HW/GCMemcardDirectory: Add error message if opening GCI fails.
2022-10-06 01:09:47 +02:00
Admiral H. Curtiss 662caf91ac
HW/GCMemcardDirectory: Add error message if opening GCI fails. 2022-10-05 19:56:05 +02:00
Admiral H. Curtiss cf094eb415
Merge pull request #11117 from JosJuice/jitarm64-imm-not-dirty
JitArm64: Fix BindToRegister in case Immediate && !set_dirty
2022-10-05 19:31:44 +02:00
JMC47 4b6086b20a
Merge pull request #11098 from K0bin/refresh-efb-cache
VideoCommon: Update EFB peek cache on draw done and tokens
2022-10-04 22:40:58 -04:00
Admiral H. Curtiss eea31db781
Vulkan/CommandBufferManager: Show error code in PanicAlerts. 2022-10-04 19:50:23 +02:00
Admiral H. Curtiss 9c944d5734
HW: Move VideoInterface variables to Core::System. 2022-10-04 02:25:12 +02:00
JosJuice 51ee05cb35 Android: Use input override system for touch controls
This is the first step of getting rid of the controller indirection
on Android. (Needing a way for touch controls to provide input
to the emulator core is the reason why the controller indirection
exists to begin with as far as I understand it.)
2022-10-03 22:04:09 +02:00
JosJuice b296248b49 DolphinQt: Use input override system for TAS input windows
This lets the TAS input code use a higher-level interface for
overriding inputs instead of having to fiddle with raw bits.
WiiTASInputWindow in particular was messy with how much
controller code it had to re-implement.
2022-10-03 22:04:09 +02:00
JosJuice 8fd25259ee ControllerEmu: Round input floats instead of casting, part 2
Like 3bc4968 but for Wii Remote extensions. I'm doing this to ensure
that TAS input values will still roundtrip after the next commit.
2022-10-03 22:04:08 +02:00
JosJuice cb16d20f2d ControllerEmu: Add new "input override" system 2022-10-03 22:00:21 +02:00
JosJuice f4f189c51f JitArm64: Rename BindToRegister parameters for clarity 2022-10-03 21:41:34 +02:00
Admiral H. Curtiss e137f7f878
WiimoteEmu: Rewrite serialization of DesiredWiimoteState to optimize for network bandwidth. 2022-10-02 23:25:15 +02:00
Admiral H. Curtiss ae4b89441c
Qt/WiimoteControllersWidget: Disable remote Wiimote configuration during netplay. 2022-10-02 23:25:15 +02:00
Admiral H. Curtiss a1563f2def
Netplay: Implement batching for Wiimotes. 2022-10-02 23:25:10 +02:00
Admiral H. Curtiss aade584180
Netplay: Completely rewrite Wiimote syncing logic to be similar to the GameCube controller one. 2022-10-02 23:22:02 +02:00
Admiral H. Curtiss f8518b2ff6
WiimoteEmu: Add serialization for DesiredWiimoteState. 2022-10-02 23:14:36 +02:00
Admiral H. Curtiss a2dadbb2f0
Wiimote: Separate the Input system state update from the emulated state update. 2022-10-02 23:14:36 +02:00
Admiral H. Curtiss bb5943ae77
Wiimote: Separate the Wiimote index in the Input system from the index of the Wiimote in the emulated system. 2022-10-02 23:14:36 +02:00
Admiral H. Curtiss b67ffb9ab5
WiimoteEmu: Make Reset() deterministic under WantsDeterminism(). 2022-10-02 23:14:36 +02:00
Admiral H. Curtiss 466f0b377b
WiimoteEmu: Update extensions from DesiredWiimoteState. 2022-10-02 23:14:35 +02:00
Admiral H. Curtiss e7543a9e05
WiimoteEmu: Update MotionPlus status from DesiredWiimoteState. 2022-10-02 23:14:35 +02:00
Admiral H. Curtiss 26fd4ea361
WiimoteEmu: Update IR camera status from DesiredWiimoteState. 2022-10-02 23:14:35 +02:00
Admiral H. Curtiss 9669722dfc
WiimoteEmu: Update accelerometer status from DesiredWiimoteState. 2022-10-02 23:14:35 +02:00
Admiral H. Curtiss a39f82cb1f
WiimoteEmu: Update button status from DesiredWiimoteState. 2022-10-02 23:14:34 +02:00
Admiral H. Curtiss 52424fe327
Qt: Allow opening controller settings during netplay. 2022-10-02 23:14:34 +02:00
Admiral H. Curtiss bc47a9a31a
Qt/WiimoteControllersWidget: Disable potentially breaking stuff during netplay. 2022-10-02 23:13:26 +02:00
Admiral H. Curtiss 37ae9ab524
Qt/GamecubeControllersWidget: Disable dropdowns during netplay. 2022-10-02 23:10:43 +02:00
JosJuice 42775eed36 JitArm64: Fix BindToRegister in case Immediate && !set_dirty
Fixes a Rogue Squadron II regression from 9d73583.

This set_dirty stuff is pretty tricky to reason about. I thought I
was clever when coming up with set_dirty, but maybe I was too clever
for my own good...
2022-10-02 22:38:00 +02:00
Admiral H. Curtiss 95cace837a
HW: Move DSP variables to Core::System. 2022-10-02 05:13:55 +02:00
Admiral H. Curtiss c84835c53c
Merge pull request #11114 from JosJuice/jitarm64-divwx-imm
JitArm64: Fix divwx BindToRegister condition
2022-10-02 01:10:48 +02:00
Admiral H. Curtiss 6911e1b730
Merge pull request #11113 from DivineWinds/translate_tooltip
DolphinQt/HacksWidget: Make backend name in GPU Texture Decoding/Bounding Box tooltip translatable
2022-10-02 00:16:25 +02:00
Admiral H. Curtiss f3a23db0e0
Core/State: Minor cleanup around the undo load state buffer. 2022-10-02 00:01:01 +02:00
Admiral H. Curtiss e0d30e371c
Core/State: Rewrite threading behavior when multiple Save requests are happening. Should improve responsiveness when eg. mashing a save state button. 2022-10-02 00:00:29 +02:00
Admiral H. Curtiss 79efd5df1e
Common/WorkQueueThread: Make Shutdown() public, so users can wait for all currently queued tasks to finish when shutting down the thread. 2022-10-01 23:58:52 +02:00
Robin Kertels 4e204a9a1a
VideoCommon: Remove special treatment for Android in video settings 2022-10-01 20:53:02 +02:00
JosJuice 8984777749 JitArm64: Call GetImm before BindToRegister
In case the register we're binding is the same as the immediate register,
we should fetch the immediate before calling BindToRegister. The way
the register cache currently works, calling GetImm after BindToRegister
actually does work, but it's better to not rely on it.
2022-10-01 20:44:51 +02:00
JosJuice 8902d2fe3a JitArm64: Fix divwx BindToRegister condition
a is being used both as an immediate and as a register here.
Since it's being used as a register, it must be loaded.
2022-10-01 19:29:41 +02:00
Robin Kertels 779fe13e62
VideoCommon: Update EFB peek cache on draw done and tokens
Massively improves performance in Mario Galaxy on Android.
2022-10-01 18:08:38 +02:00
DivineWinds 37892a8611 DolphinQt/HacksWidget: Make backend name in GPU Texture Decoding/Bounding Box tooltip translatable 2022-10-01 12:32:49 +03:00
JMC47 c196c47e81
Merge pull request #11090 from K0bin/submit-rework
Vulkan: Raise number of command buffers
2022-09-30 20:15:25 -04:00
Robin Kertels e5fb9c9adf
VideoBackends:Vulkan: Raise number of command buffers
Avoid waiting for earlier submissions when we flush more often.
The vertex manager will flush more often if the game accesses the EFB
on the CPU, to give the GPU a head start.
2022-10-01 01:26:04 +02:00
Robin Kertels fba7d35f94
VideoBackends:Vulkan: Associate descriptor pool with frame rather than command buffer 2022-10-01 01:26:04 +02:00
Robin Kertels ed75a58061
VideoBackends:Vulkan: Decouple available command buffers from frames in flight 2022-10-01 01:26:04 +02:00
Robin Kertels e8fa867f14
VideoBackends:Vulkan: Only synchronize with submission thread when necessary
We only need to synchronize with the submission thread
when submitting on the GPU thread or when waiting for a command buffer.
2022-10-01 01:26:04 +02:00
Robin Kertels 2e6d8d6575
VideoBackends:Vulkan: Fix validation error around surface_capabilities2 2022-10-01 01:26:03 +02:00
JMC47 68eda7f887
Merge pull request #11084 from K0bin/qcom-workaround
Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom
2022-09-30 15:33:00 -04:00
Robin Kertels 81c817c54d
VideoBackends:Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom driver 2022-09-30 21:13:42 +02:00
Sepalani 481ddd1308 NetworkCaptureLogger: Allow PCAP shared read access on Windows 2022-09-29 23:08:25 +04:00
JosJuice 2e8d775df1 Jit64: boolX formatting fixes 2022-09-29 20:27:15 +02:00
Mai 1f2ec9afd6
Merge pull request #11052 from Tilka/shinkansen
Add emulated Shinkansen controller
2022-09-29 09:21:27 -04:00
Mai e3e6c3dfa4
Merge pull request #11088 from JosJuice/uicommon-set-enable-alert
Move a SetEnableAlert call to UICommon
2022-09-29 09:09:29 -04:00
Mai 6805c9dd0d
Merge pull request #11108 from AdmiralCurtiss/fat-fs-callbacks
FatFsUtil: Add ability to provide callbacks for the FatFs code.
2022-09-29 09:08:12 -04:00
Mai 0c19a1d87c
Merge pull request #11100 from Pokechu22/software-settings-merge
Use the same settings for the software renderer as other backends
2022-09-29 09:05:51 -04:00
Mai 865348cfb1
Merge pull request #11103 from JosJuice/android-gamefilecache-not-null
Android: Allocate GameFileCache on GUI thread
2022-09-29 09:02:47 -04:00
Pokechu22 87f84d4f54 Debugger/CodeWidget: Update callstack/callers/calls on symbol changes
Before, only the symbols box would update. However, if you edit the symbol of a function in the call stack (which seems like something that would happen reasonably often while debugging), the call stack would be out of date until it was updated by clicking on it. Callers and calls were more of an edge case; for them to be out of date, you would need to right-click on an instruction in a function other than the one containing the currently-selected instruction (though it would also affect recursive functions).
2022-09-28 21:01:37 -07:00
Admiral H. Curtiss 3182d9178c
FatFsUtil: Add ability to provide callbacks for the FatFs code. 2022-09-29 05:16:21 +02:00
Vincent Pelletier fbf9d6ea17 SI: Ignore non-standard setGameID command
Avoids a panic when loading recent swiss. Not enough to have it run,
unfortunately.
2022-09-28 22:29:50 +00:00
Admiral H. Curtiss dafe2c785a
Merge pull request #9481 from Sintendo/jit64boolx
Jit64: boolX constant optimizations
2022-09-28 23:40:26 +02:00
Admiral H. Curtiss 95615ab91b
Merge pull request #11096 from Sintendo/arm64boolx
JitArm64: boolX constant optimizations
2022-09-28 21:58:06 +02:00
Admiral H. Curtiss 32bdc54869
Merge pull request #11101 from Pokechu22/backend-multithreading-enabled
DolphinQt: Only enable the backend multithreading checkbox if the backend supports it
2022-09-28 21:57:37 +02:00
Admiral H. Curtiss 4de70f1e99
Merge pull request #11099 from Pokechu22/draw_done_and_token_stats
VideoCommon: Add statistics for draw done and token commands
2022-09-28 21:56:54 +02:00
Vincent Pelletier 85d2358157 EXI_DeviceMemoryCard: Drop comment about ChipErase behaviour
Tested on an official DOL-014 (251 blocks) memory card by executing the
0xf4 command on a card with content along its entire length and then
dumping the whole card: it reads as 0xff all the way through.
Therefor, the current implementation is already consistent with hardware.
2022-09-28 11:55:46 +00:00
JosJuice 51debaeb47 Revert "Android: Don't hold gameFileCache lock during updateAdditionalMetadata"
This reverts commit fb265b610d.

The optimization in that commit is safe when the executor thread is
writing and the GUI thread is reading, but I had failed to take into
account that it's unsafe when the GUI thread is writing and the executor
thread is reading. (The native UpdateAdditionalMetadata function loops
through m_cached_files, which is unsafe if another thread is adding
elements to m_cached_files simultaneously.)

Losing out on this optimization isn't too bad, because
719930bb39 makes it very unlikely that
both threads will want the lock at the same time.
2022-09-27 19:06:05 +02:00
Pokechu22 3d0cd8b076 DolphinQt: Remove software renderer settings widget
Thus, the software renderer uses the same settings as everything else, fixing https://bugs.dolphin-emu.org/issues/13051.
2022-09-26 19:43:57 -07:00
Pokechu22 b90d23158f Software: Fix mipmaps and uneven strides in SWTexture
I think this is only used for texture dumping, but this resolves some failed assertions and glitchy results.
2022-09-26 19:43:57 -07:00
Pokechu22 94a77bc573 DolphinQt: Only enable the backend multithreading checkbox if the backend supports it 2022-09-26 19:25:11 -07:00
Pokechu22 a6c00c7633 D3D12: Fix backend multithreading incorrectly being marked as supported 2022-09-26 19:24:52 -07:00
Pokechu22 56fce3ba8a Software: Remove dedicated texture/frame dumping infrastructure
Texture dumping can already be done using VideoCommon's system (and in fact the same setting already enabled *both* of these). Dumping objects/TEV stages/texture fetches doesn't currently have an equivalent, but could be added to the FIFO player instead.
2022-09-26 18:25:54 -07:00
Pokechu22 39569392bd VideoCommon: Add statistics for draw done and token commands 2022-09-26 16:19:54 -07:00
Pokechu22 67ed4fa92d Common/Image: Add unit to log message 2022-09-26 15:04:15 -07:00
Bram Speeckaert 4914ff25d6 JitArm64: boolX constant optimizations
A (partial) port of #9481 to ARM64. This commit adds special cases for
immediate values equal to 0 or 0xFFFFFFFF, allowing for more efficient
or no code to be generated.
2022-09-25 14:58:26 +02:00
Bram Speeckaert 9d73583ea3 JitArm64: Skip redundant imm to register writes
When a guest register is an immediate, it may be necessary to move this
value into a register. This is handled by gpr.R(), which lacks context
on how the register will be used. This leads to cases where the
immediate is written to a register, only for it to be overwritten. Take
for example this code generated by srwx:

0x5280031b   mov    w27, #0x18
0x53187edb   lsr    w27, w22, #24

gpr.BindToRegister() does have this context through the do_load
parameter, but didn't handle immediates. By adding this logic, we can
intelligently skip the write when do_load is false.
2022-09-25 10:04:51 +02:00
Admiral H. Curtiss f106bc150a
Merge pull request #11083 from sepalani/bba-check
BBA/BuiltIn: Fix a crash during network stack exhaustion
2022-09-24 20:30:46 +02:00
Admiral H. Curtiss 63975556a4
Merge pull request #10175 from dreamsyntax/pause-on-panic
Core/DolphinQt: Add Pause on Panic Option for DSI Exceptions and Unknown Instruction
2022-09-24 20:28:09 +02:00
Admiral H. Curtiss 571e300e9e
Merge pull request #11047 from AdmiralCurtiss/netplay-save-options-rework
Netplay: Simplify save data options.
2022-09-24 20:26:05 +02:00
JosJuice 04072f0ce6 Integrate "Ignore for this session" better with config system
Because of the previous commit, this is needed to stop DolphinQt from
forgetting that the user pressed ignore whenever any part of the config
is changed.

This commit also changes the behavior a bit on DolphinQt: "Ignore for
this session" now applies to the current emulation session instead of
the current Dolphin launch. This matches how it already worked on
Android, and is in my opinion better because it means the user won't
lose out on important panic alerts in a game becase they played another
game first that had repeated panic alerts that they wanted to ignore.

For Android, this commit isn't necessary, but it makes the code cleaner.
2022-09-24 13:03:45 +02:00
JosJuice 16c71b9a35 Move a SetEnableAlert call to UICommon
This fixes a problem where changing the Use Panic Handlers setting on
Android wouldn't take effect until the app was restarted.
2022-09-24 12:35:10 +02:00
Admiral H. Curtiss 02a967f786
InputCommon: Add equality operators to RawValue. 2022-09-24 01:44:21 +02:00
Admiral H. Curtiss 24a1fe32f1
InputCommon: Make RawValue constructors constexpr. 2022-09-24 01:38:09 +02:00
Admiral H. Curtiss 70485472b1
Common/Matrix: Add equality operators to TVec2/3/4. 2022-09-24 01:38:01 +02:00
Admiral H. Curtiss 3fa9fdf57a
Merge pull request #11075 from AdmiralCurtiss/controller-gui-refresh
Qt/Controllers: Refresh GUI on settings change.
2022-09-24 00:14:54 +02:00
Sepalani 34858e934f BBA/BuiltIn: Ignore UPnP request to itself 2022-09-23 20:54:26 +04:00
Sepalani df53ebb59f BBA/BuiltIn: Fix a crash during network stack exhaustion 2022-09-23 18:59:27 +04:00
Admiral H. Curtiss 9860b68b9c
Common: Add [[nodiscard]] to GetStringT(). 2022-09-23 14:58:18 +02:00
Admiral H. Curtiss 4cb8914ad3
VolumeVerifier: Add missing assignment to summary_text. 2022-09-23 14:57:55 +02:00
Admiral H. Curtiss f426e3cd79
Merge pull request #11039 from TryTwo/PR_MemoryWidget_MiniMenu
Debugger MemoryWidget: Create mini-menu at top of sidebar.
2022-09-23 04:22:10 +02:00
Admiral H. Curtiss b7855a3a56
Merge pull request #11073 from Hibyehello/Fix-Metal-init
Add Metal as backend option with Vulkan Disabled
2022-09-23 04:21:23 +02:00
Admiral H. Curtiss 75c50223f2
Merge pull request #11078 from Minty-Meeo/mapfloat-tweak
Use std::llround in MapFloat
2022-09-23 04:18:03 +02:00
JMC47 b0ac5ac6af
Merge pull request #10949 from Zopolis4/reprecated
Resolve C++20 deprecation warnings
2022-09-22 21:56:24 -04:00
Minty-Meeo 73dfcc15a5 Use std::llround in MapFloat
I don't see why not.
2022-09-22 11:30:32 -05:00
Shawn Hoffman 717c36bc43 WinUpdater: Check OS and VC++ Redist versions. 2022-09-20 15:57:50 -07:00
Admiral H. Curtiss 270ffa7351
Qt/WiimoteControllersWidget: Refresh GUI on settings change and refactor a bit. 2022-09-20 23:47:16 +02:00
Admiral H. Curtiss a5dbf6b60d
Qt/GamecubeControllersWidget: Refresh GUI on settings change and refactor a bit. 2022-09-20 23:46:45 +02:00
Admiral H. Curtiss 019dc86b6f
Qt/CommonControllersWidget: Refresh GUI on settings change. 2022-09-20 23:46:36 +02:00
JMC47 22197c09a3
Merge pull request #10781 from tellowkrinkle/UberVertexLoader
VideoCommon: Add dynamic vertex loader for ubershaders to reduce pipeline count
2022-09-20 17:14:07 -04:00
JosJuice 6203c101f8 JitArm64: Enforce correct alignment of SPR_TL 2022-09-20 18:55:28 +02:00
TellowKrinkle ee692abbe1 VideoBackends:Metal: Use BitField for stuffing bits in pipeline ids
Also removes cullmode all handling, it's handled in CPU and DX11 backend doesn't specially handle it either
2022-09-20 01:45:18 -05:00
Admiral H. Curtiss d04e1ca96a
Merge pull request #11058 from shuffle2/updater-inflate
Updater: Move inflate intermediate buffer to heap and enlarge
2022-09-20 02:45:50 +02:00
JMC47 3b10bf04ac
Merge pull request #10808 from Pokechu22/vertex-loader-direct-normals-with-index3
VideoCommon: Fix direct normal+tangent+binormal with index3 set
2022-09-19 19:47:37 -04:00
Admiral H. Curtiss 0d095b4d9b
Netplay: Simplify save data options. 2022-09-20 01:37:32 +02:00
Admiral H. Curtiss 39314ac162
Add more logging around Wii save copying for Netplay. 2022-09-20 01:37:31 +02:00
TellowKrinkle 1eb3aaa548 VideoCommon: Use std::array in PortableVertexDeclaration 2022-09-19 16:28:24 -05:00
TellowKrinkle 28b31b8327 VideoBackends:Vulkan: Make dynamic vertex loader optional
Makes it easier to disable in the future if support for VK_EXT_vertex_input_dynamic_state is added
2022-09-19 16:28:24 -05:00
TellowKrinkle dae56a24b8 VideoBackends:D3D12: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
TellowKrinkle 936b4d5d0d VideoBackends:Vulkan: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
TellowKrinkle 7edc8b4e79 VideoBackends:Metal: Don't set primitive on ubershaders 2022-09-19 16:28:24 -05:00
TellowKrinkle 99533d2840 VideoCommon: Add separate pipeline usage for UberShaders 2022-09-19 16:28:24 -05:00
TellowKrinkle d289e9c51c VideoCommon: Compile a few extra pipelines 2022-09-19 16:28:24 -05:00
TellowKrinkle d3dae1cd7e VideoBackends:Metal: Dynamic vertex loader support 2022-09-19 16:28:24 -05:00
TellowKrinkle 4c629c2bee VideoCommon: Add dynamic vertex loader to ubershaders 2022-09-19 16:28:23 -05:00
Admiral H. Curtiss c21f2512c8
HW: Move g_SRAM to System. 2022-09-19 21:47:15 +02:00
Admiral H. Curtiss 0a517ebdbd
Core: Pass Netplay SRAM through boot process.
This removes the Netplay classes touching emulated hardware structures before emulation even starts.
2022-09-19 21:47:12 +02:00
Admiral H. Curtiss 9963637463
HW: Remove global state from functions in Sram.h. 2022-09-19 21:42:43 +02:00
Josh 1fd60aeb5d
Merge branch 'dolphin-emu:master' into Fix-Metal-init 2022-09-19 12:27:37 -05:00
Josh ef13a54b0a
VideoBackends - Enable Metal without Vulkan 2022-09-19 11:28:34 -05:00
JosJuice 720b3f5519
Merge pull request #11071 from AdmiralCurtiss/netplay-settings-style
Netplay: Rename variable names in NetSettings to match style guide.
2022-09-19 17:55:36 +02:00
Pokechu22 d80201a57f VertexLoaderARM64: Fix direct normal+tangent+binormal with index3 set
Fixes https://bugs.dolphin-emu.org/issues/12952
2022-09-18 23:33:24 -07:00
Pokechu22 f148de161f VertexLoaderARM64: Specify the register to use as a parameter to ReadVertex
This also means that both a register and a vertex are always specified, though right now if the register is scratch1_reg the offset is always 0.
2022-09-18 23:33:24 -07:00
Pokechu22 ad644d5e92 VertexLoaderARM64: Merge GetAddressImm into GetVertexAddr
This way it more closely matches VertexLoaderX64, and is in general easier to understand.
2022-09-18 23:33:24 -07:00
Pokechu22 9a290c3d50 VertexLoaderARM64: Always use unscaled load/store instructions
The source and destination offsets will always be less than 255, so we can get rid of a lot of the complexity by doing this.
2022-09-18 23:33:24 -07:00
Pokechu22 a34d5e5960 Arm64Emitter: Add additional alignment assertions
Before, unaligned values would be silently ignored in most cases.
2022-09-18 23:33:24 -07:00
Pokechu22 afe5adb74d VertexLoaderARM64: Use EnumMap for normal scales 2022-09-18 23:33:24 -07:00
Pokechu22 200676f4e3 VertexLoaderX64: Fix direct normal+tangent+binormal with index3 set
Fixes https://bugs.dolphin-emu.org/issues/12952
2022-09-18 23:33:23 -07:00
Pokechu22 5cc2f7729e VertexLoaderX64: Use EnumMap for normal scales 2022-09-18 23:33:23 -07:00
JMC47 6f4f5b0b7b
Merge pull request #11067 from K0bin/cache-vertex-size
OpcodeDecoding: Cache vertex sizes
2022-09-18 22:38:06 -04:00
Admiral H. Curtiss bec4850fc3
Netplay: Rename variable names in NetSettings to match style guide. 2022-09-19 01:25:46 +02:00
Robin Kertels 2db74e7f21
OpcodeDecoding: Get vertex size from the loader 2022-09-19 01:14:53 +02:00
Robin Kertels a6c6ec012c
VertexLoaderManager: Clean up and slightly speed up with templates 2022-09-19 01:14:49 +02:00
JosJuice eec43ce3f3
Merge pull request #11068 from JosJuice/revert-vcredist
Revert "windows: distribute vcredist loose files"
2022-09-18 23:40:33 +02:00
Admiral H. Curtiss 07f86446a6
Netplay: Remove unused m_HostInputAuthority in NetSettings. 2022-09-18 23:00:08 +02:00
Admiral H. Curtiss 69ad2cc4d0
Merge pull request #11059 from AdmiralCurtiss/netplay-graceful-shutdown
NetPlayClient: Treat power button event as a netplay stop.
2022-09-18 00:00:44 +02:00
JosJuice fec6f1bd5a Revert "windows: distribute vcredist loose files"
This reverts commit 0837af4344.
2022-09-16 10:33:39 +02:00
Robin Kertels a31e36aeb7
VertexLoaderManager: Fix backwards preprocess check
Spotted by Pokechu22.
2022-09-15 23:56:04 +02:00
JMC47 32fba6dbd8
Merge pull request #11066 from K0bin/vertex-size-opt
Optimize GetVertexSize
2022-09-15 14:25:32 -04:00
Robin Kertels fdcd2b7d00
VertexLoader: Inline GetSize 2022-09-15 12:50:15 +02:00
Robin Kertels 8aa214453a
VertexLoader: Optimize GetVertexSize
GetComponentSizes was unused, so we simplify this and get rid
of the branches.
2022-09-15 02:47:23 +02:00
Shawn Hoffman 0837af4344 windows: distribute vcredist loose files 2022-09-14 13:15:45 -07:00
Admiral H. Curtiss bf331ffa45
NetPlayClient: Treat power button event as a netplay stop. 2022-09-13 01:26:45 +02:00
Admiral H. Curtiss 35f6d12acc
NetPlayClient: Consolidate stopping code to function. 2022-09-13 01:26:45 +02:00
Admiral H. Curtiss c4b3f2302a
NetPlayClient: Consolidate Wiimote buffer waiting code to function. 2022-09-13 01:26:45 +02:00
Shawn Hoffman 7432b6ce91 Updater: Move inflate intermediate buffer to heap and enlarge 2022-09-12 03:35:03 -07:00
Tillmann Karras f5670f870e Add emulated Shinkansen controller 2022-09-11 17:12:19 +01:00
Mai dbcf7fd2c9
Merge pull request #11049 from Tilka/tatacon
TaTaCon: fix possible hotswap problem
2022-09-11 05:12:12 -04:00
Admiral H. Curtiss 1732071a10
Netplay: Pass netplay settings via BootSessionData. 2022-09-11 04:18:26 +02:00
Tillmann Karras b418441f4a TaTaCon: fix possible hotswap problem 2022-09-11 00:16:00 +01:00
Mai 4edb3a8074
Merge pull request #11041 from AdmiralCurtiss/global-state-audio
HW: Move AudioInterface variables to Core::System.
2022-09-10 17:10:17 -04:00
Mai 804af55b3a
Merge pull request #11042 from AdmiralCurtiss/global-state-file-monitor
HW: Convert FileMonitor::Log into a class.
2022-09-10 17:08:25 -04:00
JosJuice 84507ec420
Merge pull request #10725 from t895/theme-merge
Android: App redesign with multi-theme system
2022-09-10 20:08:37 +02:00
Admiral H. Curtiss b51d37fe49
HW: Convert FileMonitor::Log into a class. 2022-09-09 22:35:51 +02:00
Admiral H. Curtiss 001fe8f94d
HW: Move AudioInterface variables to Core::System. 2022-09-09 04:13:43 +02:00
TryTwo 50db8f35b8 Debugger MemoryWidget: Create mini-menu at top of sidebar. Move dump buttons and "set value from file" to the menu. 2022-09-08 16:36:36 -07:00
Admiral H. Curtiss 426b5b1927
Merge pull request #10123 from sepalani/ai-cleanup
AudioInterface: Cleanup
2022-09-09 00:37:58 +02:00
Admiral H. Curtiss 200c9dd0c5
Merge pull request #11011 from Pokechu22/audio-mixer-assertions
Mixer: Add assertions regarding num_samples versus buffer length
2022-09-08 22:01:18 +02:00
Admiral H. Curtiss d4fe54147e
Merge pull request #10757 from AdmiralCurtiss/show-memcard-path-in-gui
Qt: Show currently configured Memory Card path in the config window.
2022-09-08 21:12:21 +02:00
Pokechu22 72de74d4fc Mixer: Add assertions regarding num_samples versus buffer length 2022-09-08 12:10:10 -07:00
Pokechu22 abb59a781a Mixer: Use smaller array for PushWiimoteSpeakerSamples 2022-09-08 12:10:02 -07:00
Admiral H. Curtiss 329d279c05
Merge pull request #10751 from Zopolis4/manifesto
Update supportedOS values in .manifest files
2022-09-08 20:36:28 +02:00
Admiral H. Curtiss 85bd57df0e
Merge pull request #11007 from PEmu2/enj
Edit error message
2022-09-08 20:00:18 +02:00
Admiral H. Curtiss 696614fd1b
Merge pull request #11014 from AdmiralCurtiss/nand-repair-scrollable-box
Qt: Make custom dialog for NAND Repair.
2022-09-08 19:58:46 +02:00
Admiral H. Curtiss 45c4aa288a
Merge pull request #10881 from iwubcode/graphics-mod-draw-fb-texture-names
VideoCommon: fix graphics target texture names for efb/xfb
2022-09-08 19:56:49 +02:00
Admiral H. Curtiss 710210365a
Merge pull request #11038 from AdmiralCurtiss/steam-overlay-crash-fix-wgi
WGInput: Work around crash with Steam overlay.
2022-09-08 19:03:31 +02:00
Pokechu22 2dfe91336a
Merge pull request #10549 from Pokechu22/sw-tev-enum-map
Refactor various bits of graphics code for readability
2022-09-08 09:42:12 -07:00
Mai 74851fe94a
Merge pull request #11029 from AdmiralCurtiss/global-state-dvd
HW: Move DVD variables to Core::System.
2022-09-07 23:40:16 -04:00
Mai 348db11bdb
Merge pull request #11040 from AdmiralCurtiss/update-references-deadlock
InputCommon: Fix deadlock in EmulatedController::UpdateReferences().
2022-09-07 23:39:10 -04:00
Admiral H. Curtiss b8ca1b2907
InputCommon: Fix deadlock in EmulatedController::UpdateReferences(). 2022-09-07 22:37:24 +02:00
Admiral H. Curtiss 67c97a0bf2
WGInput: Work around crash with Steam overlay. 2022-09-07 21:06:26 +02:00
Admiral H. Curtiss dbb0cfbc09
DSPLLE: Remove dead DSPSymbolDB. 2022-09-03 22:20:24 +02:00
Admiral H. Curtiss 2d45ce5c4e
HW: Move DVDInterface variables to Core::System. 2022-09-03 21:54:25 +02:00
Admiral H. Curtiss c4d5804f60
HW: Move DVDThread variables to Core::System. 2022-09-03 21:54:25 +02:00
Sepalani 9b9f701ac5 AudioInterface: Add setters for AIS/AID sample rate 2022-09-03 23:36:34 +04:00
Sepalani 59eb1253a3 AudioInterface: Use anonymous namespace for static functions 2022-09-03 23:02:28 +04:00
Sepalani f7a2972899 AudioInterface: Use IsPlaying method 2022-09-03 22:40:38 +04:00
dreamsyntax 78c6819f5e Core: pause on panic handler option 2022-09-02 13:22:32 -07:00
Mai 23902f99ae
Merge pull request #11026 from AdmiralCurtiss/sound-stream
AudioCommon: Move sound stream variables to Core::System.
2022-09-01 23:41:42 -04:00
Mai 50550cf978
Merge pull request #11009 from shuffle2/device-notify
ciface/win32 and WGInput bug fixes
2022-09-01 00:27:55 -04:00
Charles Lombardo 940a38f172 Android: App redesign with multi-theme system 2022-08-31 18:01:15 -04:00
Admiral H. Curtiss c310e504cb
AudioCommon: Move sound stream variables to Core::System. 2022-08-31 21:44:21 +02:00
Admiral H. Curtiss 9195e1a9b8
Merge pull request #11021 from merryhime/constructor-order
Ensure constructor initializer order matches initialization order
2022-08-30 02:29:37 +02:00
Merry 362167fde5 MTLObjectCache: Correct signature of equality operator
Not doing so produces a warning in clang:
    ISO C++20 considers use of overloaded operator '!=' (with operand types
    'Metal::DepthStencilSelector' and 'Metal::DepthStencilSelector') to be
    ambiguous despite there being a unique best viable function with
    non-reversed arguments

The underlying reason for this warning is an incorrect method signature.
2022-08-29 21:23:23 +01:00
Merry b0717607b2 TextureInfo: Reorder members in constructor
m_stage is initialized last
2022-08-29 21:16:21 +01:00
Merry 3323375efb GraphicsModManager: Reorder DecoratedAction members to initialization order
m_action_impl is initialized before m_mod in constructor
2022-08-29 21:15:49 +01:00
Pokechu22 698def66ff Fifo analyzer: Fix various XF mistakes
* 'hangle' was a typo
* Light colors include an alpha value, so they should be 8 characters, not 6
* The XF command format adds 1 to the count internally (so 0 is one word), but we need to subtract that back to produce a valid command
* XFMEM_POSTMATRICES was calculating the row by subtracting XFMEM_POSMATRICES (POS vs POST), resulting in incorrect row numbering
2022-08-29 11:10:05 -07:00
Pokechu22 3fb09e3297 Fifo analyzer: Improve some BP descriptions
Mainly, the improvements are passing in the current command ID so that e.g. stage numbers can be directly included, instead of saying 0/1 or even/odd.
2022-08-29 11:10:05 -07:00
Pokechu22 546f9952a2 UberShaderPixel: Fix typo 2022-08-29 11:10:05 -07:00
Pokechu22 5ef8a7973e BPMemory: Make TevKSel more clear
It stores both the konst selection value for alpha and color channels (for two tev stages per ksel), and half of a swap table row (there are 4 total swap tables, which can be used for swizzling the rasterized color and the texture color, and indices selecting which tables to use are stored per tev stage in the alpha combiner).  Since these are indexed very differently, the old code was hard to follow.
2022-08-29 11:10:05 -07:00
Pokechu22 f21798b9b6 BPMemory: Use even/odd in TwoTevStageOrders instead of 0/1 2022-08-29 11:10:05 -07:00
Pokechu22 e43f02c752 BPMemory: Improve consistency of hex offset comments
I search for these somewhat often with control+f, but tend to default to adding a 0x prefix, which means I don't find them until I remove it.
2022-08-29 11:10:05 -07:00
Pokechu22 4206ac243b SW/Rasterizer: Use RAS1_IREF::getTexCoord and getTexMap 2022-08-29 11:10:05 -07:00
Pokechu22 ae0fcd9a9f SW/Tev: Replace Tev::SetRegColor with Tev::SetKonstColors 2022-08-29 11:10:05 -07:00
Pokechu22 3b9a048291 SW/Tev: Use std::clamp for Clamp255 and Clamp1024 2022-08-29 11:10:05 -07:00
Pokechu22 bae0f21f74 SW/Tev: Remove Tev::Init 2022-08-29 11:10:05 -07:00
Pokechu22 c9936f8c1c SW/Tev: Use EnumMap for scale/bias tables 2022-08-29 11:10:05 -07:00
Pokechu22 b02992548e SW/Tev: Use EnumMap for Reg 2022-08-29 11:10:03 -07:00
Pokechu22 2db7569463 SW/Tev: Use TevColorRef/TevAlphaRef instead of raw s16 pointers 2022-08-29 11:05:10 -07:00
Pokechu22 ec1ed64832 EnumMap: Fix typo 2022-08-28 22:38:35 -07:00
JMC47 6d61e6a601
Merge pull request #11016 from Pokechu22/software-indirect-texture-bug
Software/Rasterizer: Fix indirect stage using texture coordinates/maps >= 4
2022-08-29 01:37:36 -04:00
Pokechu22 e04d23e086 SW/Rasterizer: Fix indirect stage using texture coordinates/maps >= 4
The masking was incorrect. This affects the main menu of The Last Avatar, though that menu also relies on copy filter functionality that is not correctly handled in the software renderer so the difference is not obvious; that game shuffles textures across all indices for some reason, so this issue would presumably result in subtle flickering.
2022-08-28 12:19:36 -07:00
Sepalani 7dc647fd4c BBA/BuiltIn: Add UPnP HTTP listener 2022-08-28 23:09:09 +04:00
Admiral H. Curtiss 59f3be8c54
Qt: Make custom dialog for NAND Repair.
This is so that if you have a lot of titles that need repair the dialog can still fit on screen.
2022-08-28 03:11:17 +02:00
Shawn Hoffman cd407abe34 WGInput: implement error handling 2022-08-27 02:11:27 -07:00
Shawn Hoffman 6bc8ab7001 WGInput: use c++/winrt 2022-08-26 23:20:34 -07:00
Shawn Hoffman 76d2e47444 ciface/win32: use CM_Register_Notification instead of wnd msgs 2022-08-26 21:59:56 -07:00
Sepalani 7202cf2650 BBA/BuiltIn: Add SSDP multicast support 2022-08-24 21:29:57 +04:00
Sepalani f992f8f38c BBA/BuiltIn: Make network interface consistent 2022-08-24 21:05:18 +04:00
Sepalani e783a7f409 Common/Network: Add StrNetworkError helper function 2022-08-24 21:05:18 +04:00
Admiral H. Curtiss 9c9962083d
Merge pull request #10956 from Dentomologist/address_cpp20_todo_comments
Address c++20 TODO comments
2022-08-24 17:18:56 +02:00
Admiral H. Curtiss e5cfa286bd
Merge pull request #10960 from shuffle2/mz
ResourcePack: dont scan for individual files
2022-08-24 17:11:21 +02:00
Admiral H. Curtiss a7d358a97b
Merge pull request #11003 from sepalani/decode-error
Move SocketManager's DecodeError to Common
2022-08-24 17:01:07 +02:00
Pokechu22 0cced44142 Use `__VA_OPT__(, ) __VA_ARGS__` instead of `##__VA_ARGS__`
Per https://en.cppreference.com/w/cpp/preprocessor/replace#.23_and_.23.23_operators the `##` behavior is a nonstandard extension; this extension seems to be supported by all compilers we care about, but IntelliSense in visual studio doesn't correctly handle it, resulting in false errors in the IDE (but not when compiling).

Per https://en.cppreference.com/w/cpp/preprocessor/replace#Function-like_macros C++20 introduced a workaround, where `__VA_OPT__(, )` generates a comma if and only if `__VA_ARGS__` is non-empty.

This PR replaces all occurrences, with the exception of Externals, DSPSpy (which is not likely to be edited in MSVC and does not target C++20 currently), and JitArm64_Integer.cpp (which uses `Function(__VA_ARGS__)`, and thus does not ever need a comma).
2022-08-23 12:09:57 -07:00
JosJuice 299aef945b
Merge pull request #11005 from t895/cover-only
Android: Add option to disable game cover text
2022-08-23 18:24:51 +02:00
Admiral H. Curtiss aa8364a327
Merge pull request #10996 from JosJuice/gpu-texture-uint
VideoCommon: Fix OpenGL ES GPU texture decoding
2022-08-23 10:48:51 +02:00
PEmu2 b516ae12ca
Edit error message
Edit error message to be less sarcastic. I doubt many users appreciate this when Dolphin has just crashed.
2022-08-22 19:52:13 -07:00
JMC47 48fdbcde23
Merge pull request #10809 from TryTwo/PR_CodeWidget_Filters
Debugger CodeWidget: Add filter boxes to callstack, function calls, a…
2022-08-22 15:47:20 -04:00
Charles Lombardo 2caa1f3b43 Android: Add option to disable game cover text 2022-08-22 13:50:39 -04:00
Admiral H. Curtiss 1845a13cbe
Merge pull request #10905 from shuffle2/netplay-hash
netplay: use sha1 instead of md5
2022-08-22 15:57:49 +02:00
Admiral H. Curtiss 8b7e6f1863
Merge pull request #10933 from shuffle2/vs
msbuild: fix overbuilding of externals and lessen rebuild likelyhood
2022-08-22 15:19:13 +02:00
Admiral H. Curtiss aba87ba1e3
Merge pull request #10997 from JosJuice/nfs-check
DiscIO: Fix an incorrect error check in NFSBlob
2022-08-22 15:14:15 +02:00
Sepalani 597fb9ff6d Move SocketManager's DecodeError to Common
Fix thread safety issue
2022-08-22 14:02:26 +04:00
JosJuice 052fdfa00d DiscIO: Fix an incorrect error check in NFSBlob 2022-08-21 00:06:53 +02:00
Mai fef8325ff7
Merge pull request #10995 from JosJuice/nfs-size-out
DiscIO: Fix calculation of NFS raw size
2022-08-20 17:57:46 -04:00
JosJuice 724bd3e597 VideoCommon: Fix OpenGL ES GPU texture decoding 2022-08-20 23:21:23 +02:00
JosJuice aca624ef9c DiscIO: Fix calculation of NFS raw size 2022-08-20 21:18:36 +02:00
Shawn Hoffman 7c3cdeda2b qt: defer writing gamelist cache until EndRefresh
large speedup
2022-08-19 19:51:31 -07:00
TellowKrinkle 1bc133f3ae CMake: Properly include lzma include directories 2022-08-18 21:06:57 -05:00
TellowKrinkle 048f6fac52 CMake: Properly include zstd include directories 2022-08-18 21:06:57 -05:00
JMC47 498c06b85a
Merge pull request #10989 from CasualPokePlayer/fifo_reset_dual_core
Fix crashes in dual core mode on a PI_FIFO_RESET
2022-08-18 17:32:29 -04:00
TellowKrinkle 588c4bd635 InputCommon:QuarzKB&M: Use view position instead of window position 2022-08-18 16:29:43 -05:00
TellowKrinkle 798b241832 InputCommon:QuarzKB&M: Use KVO to watch window position
CGWindowListCreateDescriptionFromArray would block for up to ~1ms, which isn't a great thing to do on the main emulation thread
2022-08-18 16:29:43 -05:00
CasualPokePlayer ab8a8e6f84 Fix crashes in dual core mode on a PI_FIFO_RESET 2022-08-18 13:38:37 -07:00
Mai 39aa5f29a6
Merge pull request #10991 from Pokechu22/dsp-hle-ax-ucode-switch-state
DSPHLE/AX: Set state to WaitingForCmdListSize when switching uCodes
2022-08-18 10:34:57 -04:00
Mai 7a23b45aa1
Merge pull request #10992 from Pokechu22/swapchain-unused-functions
VideoCommon: Remove unused swap chain functions
2022-08-18 10:32:51 -04:00
Pokechu22 3c38f5c1d2 D3DCommon: Remove unused swap chain functions
These were added in ea15080d8f (which added D3DCommon), but never were used.
2022-08-17 18:16:50 -07:00
Pokechu22 da7aded00d Vulkan: Remove unused swap chain functions
These were added in 5e29508b8f and 1f2d43c870, but were replaced with CONFIG_CHANGE_BIT_VSYNC and CONFIG_CHANGE_BIT_STEREO_MODE in e4b205c769.
2022-08-17 18:16:17 -07:00
Pokechu22 f9e1933111 DSPHLE/AX: Set state to WaitingForCmdListSize when switching uCodes
Fixes https://bugs.dolphin-emu.org/issues/13017. With uCode switching, the existing instance of AXUCode is re-activated when GBAUCode is done, but if the state remains as WaitingForNextTask, it won't be able to do anything. Instead, it needs to be in WaitingForCmdListSize.

(When the AX uCode is resumed, startpc is set to 0x0030, at least for 0x07f88145; this is the same location as MAIL_RESUME jumps to, so DSP_RESUME should be sent when the resuming happens; that's already handled by AXUCode::Update.)
2022-08-17 12:05:53 -07:00
Shawn Hoffman 4ae475b6a1 fix verifying wii dev signatures
allows verifying dev-signed discs and wads
2022-08-16 12:47:26 -07:00
Admiral H. Curtiss 650f172637
DolphinQt: Only show raw memory card path if it's not the default. 2022-08-16 00:23:36 +02:00
Admiral H. Curtiss d11839fd64
DolphinQt: Show raw memory card path and AGP cartridge path in config window. 2022-08-16 00:20:58 +02:00
Admiral H. Curtiss 43d4923e78
Config: Allow passing std::nullopt for the region in GetMemcardPath() to use the region as configured in the path itself. Falls back to the fallback region if no region is in the path. 2022-08-16 00:20:58 +02:00
Admiral H. Curtiss 92c6407c45
Merge pull request #10970 from AdmiralCurtiss/directoryblob-encrypted
DirectoryBlob: Fix partition size mixup for encrypted Wii discs.
2022-08-12 22:35:40 +02:00
TellowKrinkle b96bc4267e InputCommon: Enable ARC for obj-c++ 2022-08-12 02:09:53 -05:00
TellowKrinkle 235b67707f Common:X64ABI: Work around clang-format being dumb 2022-08-11 23:57:28 -05:00
Léo Lam be33e1079d
Merge pull request #10972 from AdmiralCurtiss/ios-fs-metadata-nop
IOS/FS: Skip writing FST if SetMetadata() changes nothing.
2022-08-11 16:16:45 +01:00
TellowKrinkle f2a074f4f8 Common:X64ABI: Make proper stack frames 2022-08-10 23:48:56 -05:00
Admiral H. Curtiss 7ac042d00b
DirectoryBlob: Fix partition size mixup for encrypted Wii discs. 2022-08-10 20:43:52 +02:00
Admiral H. Curtiss 0d39c4a78a
IOS/FS: Skip writing FST if SetMetadata() changes nothing. 2022-08-10 06:28:23 +02:00
Admiral H. Curtiss dcdba11ded
Merge pull request #10962 from askew-etc/inc-dec-select-state-hotkeys
Add hotkeys for incrementing/decrementing select state slot
2022-08-10 01:41:32 +02:00
Sage King da803adf15 Work around for compiler bug on Debian and FreeBSD 2022-08-09 16:26:54 -06:00
Sage King 66276ac61b Added type to SyncIndentifierComparison enum in SyncIdentifier.h in an
attempt to fix a failed call to operator<< in SendResponse()
2022-08-09 16:26:53 -06:00
Sage King 978b6a8724 Added comment explaining obscure folding syntax in NetPlayServer.cpp 2022-08-09 16:26:53 -06:00
Sage King a12099404e Added SendResponseToAllPlayers() and SendResponseToPlayer() to NetPlayServer.cpp and refactored OnConnect to use them 2022-08-09 16:26:52 -06:00
Sage King 477c20e28d Updated comment explaining enet_peer_timeout's use in NetPlayClient.cpp and NetPlayServer.cpp; Corrected syntax related to PEER_TIMEOUT in NetplayClient.cpp 2022-08-09 16:26:52 -06:00
Sage King 2f367d7a9b Updated PEER_TIMOUT in NetPlayCommon.h to use chrono literals; Updated NetPlayServer.cpp OnConnect() by putting commonly used code into named functions 2022-08-09 16:26:52 -06:00
Sage King d81756e9b9 Refactored parameter to OnConnect() in NetPlayServer.cpp from rpac to received_packet 2022-08-09 16:26:51 -06:00
Sage King 9d14d95737 Removed code duplicating comments in NetPlayServer.cpp OnConnect() 2022-08-09 16:26:51 -06:00
Sage King 5dea8aaed0 Added initializer braces to Client player; in NetPlayServer.cpp OnConnect() 2022-08-09 16:26:50 -06:00
Sage King d11df2b700 Refactored variable declared in NetPlayServer.cpp OnConnect() from npver to netplay_version 2022-08-09 16:26:50 -06:00
Mai c2dd58c361
Merge pull request #10959 from JosJuice/frsp-subnormal
Interpreter: Fix rounding edge case in frsp
2022-08-09 18:17:21 -04:00
Mai e9e2c741a2
Merge pull request #10953 from JosJuice/aarch64-add-encoding
Arm64Emitter: Fix encoding of size for ADD (vector)
2022-08-09 18:13:50 -04:00
Zopolis4 e54818e60d
Resolve "implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20" warning 2022-08-08 11:25:19 +10:00
Zopolis4 e2aefe13a6
Restrict OpenSLES to Android via CMake 2022-08-08 09:18:36 +10:00
Scott Mansell 4c2d707538
Merge pull request #10940 from InvoxiPlayGames/ipc-discord
Add Discord presence ioctlv to /dev/dolphin
2022-08-08 08:11:42 +12:00
askew-etc 914f38753a Add hotkeys for incrementing/decrementing selected state slot (like RetroArch) 2022-08-07 12:20:09 -05:00
Shawn Hoffman 6e94c20abd add TODO for chrono in GetLocalTimeSinceJan1970 2022-08-06 22:25:30 -07:00
Shawn Hoffman 292724b228 Revert "msvc: use std::chrono for GetLocalTimeSinceJan1970"
This reverts commit 86da6c98fb.
2022-08-06 22:22:14 -07:00
Shawn Hoffman 9bb8315441 ResourcePack: dont scan for individual files
walking the zip prevents minizip from re-reading the same
data repeatedly from the actual backing filesystem.
also improves most usages of minizip to allow for >4GB,
files altho we probably don't need it
2022-08-06 15:38:46 -07:00
iwubcode 637dca680c VideoCommon: update ubershader pixel to not enforce d3d when writing color output that has been defined as uints 2022-08-06 16:08:58 -05:00
iwubcode 05135b4f43 VideoCommon: fix uint shader compiler error in specialized shaders. This error is in renderers that use uint for their color output (for logic ops). Remove D3D check for uint output since other backends could use uint output as well. 2022-08-06 16:08:58 -05:00
Dentomologist 02cd4ecf7d Core: Use std::chrono time_since_epoch 2022-08-06 13:28:28 -07:00
Dentomologist ff26f6435e Use structured binding for pair values
dir_path is used by PanicAlertFormatT, which prior to PR 10209 used a
lambda. Before c++20, referring to structured bindings in lambda captures
was forbidden. The problem is now doubly fixed, so put the structured
binding back in.
2022-08-06 13:28:28 -07:00
iwubcode 0b5f7d2c5f VideoCommon: fix graphics target not properly setting 'draw_started' texture names for efb/xfb 2022-08-06 12:01:33 -05:00
JosJuice c5d9514cd9 Interpreter: Fix rounding edge case in frsp
Fixes the Dolphin bug mentioned in
https://github.com/dolphin-emu/hwtests/issues/45.

Because this doesn't fix any observed behavior in games (no, 1080°
Avalanche isn't affected), I haven't implemented this in the JITs,
so as to not cause unnecessary performance degradations.
2022-08-06 18:54:19 +02:00
InvoxiPlayGames f9e39cf200 Add Discord presence ioctlv to /dev/dolphin 2022-08-06 07:32:29 +01:00
Shawn Hoffman 3ca673a675 WiiSave: protect against a stack buffer overflow 2022-08-05 17:24:03 -07:00
Tilka 3595c8b295
Merge pull request #10952 from JosJuice/bitutils-remove-unused
Common: Remove unused stuff from BitUtils.h
2022-08-05 21:08:02 +01:00
JosJuice 52661dcc76 Arm64Emitter: Fix encoding of size for ADD (vector)
This was causing a bug in the rounding of paired single multiplication
operands. If Force25BitPrecision was called for quad registers, the
element size of its ADD instruction would get treated as if it was 16
instead of the intended 64, which would cause the result of the
calculation to be incorrect if the carry had to pass a 16-bit boundary.

Fixes one of the two bugs reported in
https://bugs.dolphin-emu.org/issues/12998.
2022-08-05 21:49:28 +02:00
JosJuice c00008e3cd Common: Remove unused stuff from BitUtils.h 2022-08-05 17:54:51 +02:00
Tillmann Karras b8e64b1f43 AX: fix comments and variable names (NFC)
This command does not upload the MAIN buffers to CPU memory. This was
functionally fixed in f11a40f858 without
updating the comments and variable names.
2022-08-05 15:00:17 +01:00
Scott Mansell ebf95370ef
Merge pull request #10946 from Pokechu22/remove-iLog
VideoCommon: Remove old iLog field
2022-08-05 22:42:09 +12:00
JosJuice 939fa1ed1c
Merge pull request #10941 from shuffle2/crypto-cleanup
Crypto cleanup
2022-08-05 12:12:34 +02:00
Zopolis4 b9b7ff6e25
Update supportedOS values in .manifest files 2022-08-05 10:26:22 +10:00
Tilka e638bb658f
Merge pull request #10945 from Pokechu22/vulkan-source-file-name
Vulkan: Call setSourceFile in addition to addSourceText
2022-08-05 00:03:25 +01:00
Pokechu22 354530cf61 VideoCommon: Remove old iLog field
Prior to 7854bd7109, this was used by the debugger for the OpenGL and D3D9 plugins to control logging (via PRIM_LOG and INFO_LOG/DEBUG_LOG in VideoCommon code; PRIM_LOG was changed in 77215fd27c), and also framedumping (removed in 64927a2f81 and 2d8515c0cf), shader dumping (removed in 2d8515c0cf and this commit), and texture dumping (removed in 54aeec7a8f). Apart from shader dumping, all of these features have modern alternatives, and shader source code can be seen in RenderDoc if "Enable API Validation Layers" is checked (which also enables source attachment), so there's no point in keeping this around.
2022-08-04 15:49:39 -07:00
Pokechu22 20a2a2174d Vulkan: Call setSourceFile in addition to addSourceText 2022-08-04 15:09:12 -07:00
Admiral H. Curtiss 5508c52a95
Merge pull request #10932 from JosJuice/nfs
DiscIO: Add support for the NFS format
2022-08-04 22:20:08 +02:00
JosJuice 6fc3bbbdd9 DiscIO/VolumeVerifier: Add a note about NFS bad dumps 2022-08-04 22:01:00 +02:00
JosJuice 02e3125f23 DiscIO/VolumeVerifier: Small logic cleanup
Just for ease of reading. No behavioral difference.
2022-08-04 22:00:59 +02:00
JosJuice 40a4eb3893 DiscIO: Adjust GetDataSizeType logic for NFS 2022-08-04 22:00:59 +02:00
JosJuice a87dffe52d DiscIO: Replace IsDataSizeAccurate with GetDataSizeType
Previously, we had WBFS and CISO which both returned an upper bound
of the size, and other formats which returned an accurate size. But
now we also have NFS, which returns a lower bound of the size. To
allow VolumeVerifier to make better informed decisions for NFS, let's
use an enum instead of a bool for the type of data size a blob has.
2022-08-04 22:00:59 +02:00
JosJuice 3a6df63e9b DiscIO: Add support for the NFS format
For a few years now, I've been thinking it would be nice to make Dolphin
support reading Wii games in the format they come in when you download
them from the Wii U eShop. The Wii U eShop has some good deals on Wii
games (Metroid Prime Trilogy especially is rather expensive if you try
to buy it physically!), and it's the only place right now where you can
buy Wii games digitally.

Of course, Nintendo being Nintendo, next year they're going to shut down
this only place where you can buy Wii games digitally. I kind of wish I
had implemented this feature earlier so that people would've had ample
time to buy the games they want, but... better late than never, right?

I used MIT-licensed code from the NOD library as a reference when
implementing this. None of the code has been directly copied, but
you may notice that the names of the struct members are very similar.
c1635245b8/lib/DiscIONFS.cpp
2022-08-04 22:00:58 +02:00
JosJuice bb27d4cc95 DiscIO/VolumeWii: Decouple "is encrypted" from "is hashed"
Needed for the next commit. NFS disc images are hashed but not encrypted.

While we're at it, also get rid of SupportsIntegrityCheck.
It does the same thing as old IsEncryptedAndHashed and new HasWiiHashes.
2022-08-04 20:29:22 +02:00
Pokechu22 8129874d11 Sanitize and use increased precision when normalizing light directions
This normalization was added in 02ac5e95c8, and changed to use floats in 4bf031c064.  The conversion to floats means that sometimes there is insufficient precision for the normalization process, which results in values of NaN or infinity.  Performing the whole process with doubles prevents that, but games also sometimes set the values to NaN or infinity directly (possibly accidentally due to the values not being initialized due to them not being used in the current configuration?).

The version of Mesa currently in use on FifoCI (20.3.5) has issues with NaN.  Although this bug has been fixed (b3f3287eac in 21.2.0), FifoCI is stuck with the older version.

This change may or may not be incorrect, but it should result in the same behavior as already present in Dolphin, while working around the Mesa bug.
2022-08-04 08:52:44 -07:00
Mai f59f1a2a35
Merge pull request #10740 from Tilka/cxx20
Move to C++20 for non-MSVC compilers
2022-08-04 09:31:31 -04:00
Tilka 3ad6e3abc2
Merge pull request #10768 from Pokechu22/dsp-hle-gba-class
DSPHLE: Eliminate global state in GBA and AX uCode + accuracy improvements
2022-08-04 13:50:30 +01:00
Tilka 8105d0034d
Merge pull request #10821 from Pokechu22/dimar-masking
DVDInterface: Mask upper bits of DIMAR in GC mode
2022-08-04 12:50:49 +01:00
Pokechu22 bf70026728 DSPHLE: Require implementing DoState
CARDUCode, GBAUCode, and INITUCode previously didn't have an implementation of it. In practice it's unlikely that this caused an issue, since these uCodes are only active for a few frames at most, but now that GBAUCode doesn't have global state, we can implement it there. I also implemented it for CARDUCode, although our CARDUCode implementation does not have all states handled yet - this is simply future-proofing so that when the card uCode is properly implemented, the save state version does not need to be bumped. INITUCode does not have any state to save, though.
2022-08-03 17:32:12 -07:00
Pokechu22 f2e833b5c4 DSPHLE: Eliminate global state in AX uCode
This also increases accuracy as to when specific mail is allowed, and correctly handles masking of the 0xCDD1 mails.
2022-08-03 17:32:12 -07:00
Pokechu22 8d66c29f33 DSPHLE: Eliminate global state in GBA uCode + accuracy improvements
The accuracy improvements are:

* The request mail must be 0xabba0000 exactly; both the low and high parts are checked
* The address is masked with 0x0fffffff
* Before, the global state meant that after the GBA uCode had been used once, it would accept 0xcdd1 commands immediately. Now, it only accepts them after execution has finished.
2022-08-03 17:32:12 -07:00
Pokechu22 8b65e84121 DSPHLE: Make all uCode implementations final classes
(Apart from AXUCode, which is inherited by AXWiiUCode.)
2022-08-03 17:32:12 -07:00
Mai 27669fc7c8
Merge pull request #10828 from JosJuice/jitarm64-32-bit-exception
JitArm64: Pass 32-bit temp GPR to WriteConditionalExceptionExit
2022-08-03 14:36:19 -04:00
Mai a8b2174ce6
Merge pull request #10872 from shuffle2/timer
Timer improvements
2022-08-03 14:30:29 -04:00
Mai 385764ebe0
Merge pull request #10913 from shuffle2/vsnext
msvc: fix issues with vs 17.3
2022-08-03 14:21:53 -04:00
Mai ebb8402a24
Merge pull request #10934 from sepalani/bba-igmp
BBA/BuiltIn: Add minimal IGMP support
2022-08-03 14:17:41 -04:00
Mai f93b04dc94
Merge pull request #10935 from Pokechu22/icache-dont-save-lookup-table
PPCCache: Stop storing lookup table in savestates
2022-08-03 14:14:39 -04:00
Minty-Meeo 347dd03c3f Remove Vestigial Preprocessor Block in Jit64/Jit.cpp
"Common/GekkoDisassembler.h" became used by Release builds with commit 77e9aa48bc, but this got left in by mistake.
2022-08-03 12:30:20 -05:00
Shawn Hoffman bf5076eb01 crypto/sha1: add real workaround for msvc/arm64 bad codegen 2022-08-02 23:05:45 -07:00
Shawn Hoffman 78142e30cc crypto/sha1: simplify enablement of sha insns on non-msvc 2022-08-02 23:05:07 -07:00
Shawn Hoffman 4e6aa28da4 crypto/aes: silence warning on godforsaken android gcc 2022-08-02 23:03:51 -07:00
Shawn Hoffman 403f3693da NetPlay: use sha1 instead of md5 2022-08-02 22:25:05 -07:00
Shawn Hoffman c7ce035a7f NetPlay: rename md5 -> game digest 2022-08-02 22:25:05 -07:00
Shawn Hoffman ec9b30681b msvc: silence warning in qt header 2022-08-02 22:24:33 -07:00
Shawn Hoffman bdf3a03c04 DolphinQt: fix BootSessionData dtor not being called
std::unique_ptr can't/won't call deleter on incomplete type
generated warning on vs 17.3.0 preview 5.0
2022-08-02 22:24:33 -07:00
Shawn Hoffman 683f7f7210 msbuild: tidy up the linked libs 2022-08-02 22:24:22 -07:00
Shawn Hoffman c5da2877cc msbuild: refactor to reduce rebuild events
* moves dolphin-specific settings out of Base.props
* creates exports.props for externals, allowing to easily import
  individual Externals
* corrects some cruft that accumulated and probably contributed
  to msbuild overbuilding
2022-08-02 22:24:22 -07:00
Shawn Hoffman fec61f89a3 Timer: protect usages of ms timers from rollover 2022-08-02 22:24:06 -07:00
Shawn Hoffman 0fe99e9bc8 ThrottleCallback: correct units in log
make first invocation a bit more correct
2022-08-02 22:24:06 -07:00
Shawn Hoffman 86da6c98fb msvc: use std::chrono for GetLocalTimeSinceJan1970 2022-08-02 22:24:06 -07:00
Shawn Hoffman b473c35873 windows: mark as HighQoS, ensure timer resolution is honored 2022-08-02 22:24:06 -07:00
Shawn Hoffman 3384b1385e move "double time" code into State from Timer
Ideally the statesave format could be changed
to just store a u64 in the future
2022-08-02 22:24:06 -07:00
Shawn Hoffman 49218f9695 DolphinDevice: expose elapsed ms in GetSystemTime 2022-08-02 22:24:06 -07:00
Shawn Hoffman 09089eeee0 Common::Timer: use chrono::steady_clock internally 2022-08-02 22:24:06 -07:00
Shawn Hoffman 8d16971a6f LogManager: use own timestamp function 2022-08-02 22:24:05 -07:00
Shawn Hoffman d71797154a VolumeVerifier: enable fast hash functions by default
sets defaults based on cpu support.
2022-08-02 22:23:49 -07:00
Tilka 7d2d5d914b
Merge pull request #10903 from shuffle2/hash-reorg
Common/Hash: use zlib-ng for adler32. small cleanups.
2022-08-02 18:29:04 +01:00
Tilka e62ceab349
Merge pull request #10902 from shuffle2/aes
Implement hw accelerated AES
2022-08-02 18:28:47 +01:00
Pokechu22 134397754e PPCCache: Stop storing lookup table in savestates
These lookup tables total 4 megabytes, and contain data that's entirely redundant to the actual cache state (as part of an optimization, though I'm not sure whether the optimization actually is useful). This change instead recomputes these lookup tables when loading the state (which involves filling the lookup table with a marker (0xff), and then setting the 128 * 8 valid entries (1 kilobyte)).
2022-08-01 16:36:59 -07:00
Shawn Hoffman 17c554c165 Common/Hash: use zlib-ng for adler32. small cleanups. 2022-08-01 10:07:27 -07:00
Shawn Hoffman 46ad8b9d68 Implement hw accelerated AES 2022-08-01 10:00:42 -07:00
Sepalani 4fa65ec9cf BBA/BuiltIn: Add minimal IGMP support 2022-08-01 12:49:38 +04:00
Sepalani bfc2d11891 BBA/BuiltIn: Simplify HandleARP 2022-08-01 12:48:33 +04:00
Sepalani 7e9711d738 BBA/BuiltIn: Rename m_fake_mac to m_router_mac 2022-08-01 12:48:32 +04:00
Sepalani b029b468cd BBA/BuiltIn: Fix MAC address issues with TCP and UDP 2022-08-01 12:48:32 +04:00
Sepalani cc7cfe249e BBA/BuiltIn: Move TryGetDataFromSocket 2022-08-01 12:48:32 +04:00
Sepalani 0f5fe2274a BBA/BuiltIn: Save current MAC address 2022-08-01 12:48:32 +04:00
Sepalani ec60416c00 BBA/BuiltIn: Add an ARP table 2022-08-01 12:48:32 +04:00
Tilka fb45ed3981
Merge pull request #10883 from Pokechu22/pi-fifo-reset-gp-fifo
ProcessorInterface: Reset both GPFifo and Fifo on PI_FIFO_RESET
2022-07-31 17:06:37 +02:00
Tilka 45f8ae6d51
Merge pull request #10926 from shuffle2/old-gcc-warning
SHA1/arm64: fix casting warning on certain gcc
2022-07-31 16:31:35 +02:00
Tillmann Karras d033d92b05 Move to C++20 for non-MSVC compilers 2022-07-30 23:35:53 +01:00
Admiral H. Curtiss 92c7566646
Merge pull request #10924 from Pokechu22/symbols-missing-last-function
PPCSymbolDB: Fix getting symbol for the last function
2022-07-30 21:52:10 +02:00
Shawn Hoffman 97ff757a74 SHA1/arm64: fix casting warning on certain gcc 2022-07-30 12:06:21 -07:00
JosJuice ecc4bc5098
Merge pull request #10925 from AdmiralCurtiss/ppc-state-hle-print
HLE_OS: Don't modify emulated state in printf hooks.
2022-07-30 19:49:18 +02:00
Admiral H. Curtiss 2a56113a5b
Merge pull request #10898 from Pokechu22/dsp-hle-homebrew-padding
DSPHLE: Support padded versions of libasnd and libaesnd uCodes
2022-07-30 14:21:28 +02:00
Admiral H. Curtiss a9d9f5c0da
Merge pull request #10899 from shuffle2/sha1
add hw-accelerated SHA1
2022-07-30 14:11:37 +02:00
Admiral H. Curtiss b364a301dc
HLE_OS: Don't modify emulated state in printf hooks, since the actual PPC function will be called afterwards. 2022-07-30 14:06:28 +02:00
Admiral H. Curtiss 4b6ad977c6
Merge pull request #10922 from Pokechu22/apploader-hle-no-replace
Boot_BS2Emu: Create an actual function for AppLoaderReport
2022-07-30 14:05:58 +02:00
Pokechu22 1f17a3bb1e PPCSymbolDB: Fix getting symbol for the last function 2022-07-29 18:41:11 -07:00
Pokechu22 e97ad90681 Boot/ElfReader: Log to BOOT log instead of MASTER log 2022-07-29 12:18:05 -07:00
Pokechu22 7a7a3a7f41 Boot_BS2EMU: Log apploader-related messages to BOOT log instead of MASTER log 2022-07-29 12:17:09 -07:00
Pokechu22 d3d7cc6f96 Boot_BS2Emu: Create an actual function for AppLoaderReport
Before, we used a replace hook and didn't write anything there. Now, we write a BLR instruction to immediately return, and then use a start hook. This makes the behavior a bit clearer (though it shoudln't matter in practice).
2022-07-29 12:16:20 -07:00
Sepalani 18b8f147ab BBA/BuiltIn: Ensure UDP ports are open 2022-07-29 21:25:17 +04:00
JMC47 a81f3a95db
Merge pull request #10917 from sepalani/bba-ntohs
BBA/BuiltIn: Fix network byte order issues
2022-07-29 13:19:25 -04:00
JMC47 ae4fa53a9c
Merge pull request #10914 from JMC47/bbarename
BBA - Rename Built In BBA to BBA (HLE)
2022-07-29 10:16:51 -04:00
JMC47 205d78d780 BBA - Rename BBA Built In to BBA (HLE)
All of our BBA options are technically built in, so it made the BBA
Built In option kind of confusing as to what it did.  So rename it to
BBA HLE to make it more clear what it is doing and why it doesn't need a
TAP.
2022-07-29 10:06:44 -04:00
Sepalani 2de4d52021 BBA/BuiltIn: Fix network byte order issues 2022-07-29 11:33:36 +04:00
JMC47 3bf1ddc549
Merge pull request #10730 from AdmiralCurtiss/riivolution-sysfile-patches
Riivolution: Add custom extension to patch boot.bin, bi2.bin, and apploader.img.
2022-07-28 20:29:31 -04:00
Admiral H. Curtiss 000c9c7545
Merge pull request #10907 from shuffle2/pngend
SavePNG: make sure to finalize image file
2022-07-28 19:28:00 +02:00
Shawn Hoffman 25462f4a3c SavePNG: make sure to finalize image file 2022-07-28 10:12:36 -07:00
Mai e10d66270f
Merge pull request #10909 from JosJuice/volume-verifier-read-succeeded
VolumeVerifier: Fix read_succeeded condition
2022-07-28 12:05:03 -04:00
JosJuice 14c1a1c658 VolumeVerifier: Fix read_succeeded condition
We shouldn't set m_read_errors_occurred to true just because
is_data_needed was false.
2022-07-28 09:57:17 +02:00
Shawn Hoffman 8939210d8a Common/Crypto/SHA1: implement accelerated versions 2022-07-27 01:07:48 -07:00
Shawn Hoffman bfa2a66c98 WIABlob: remove outdated mbedtls workaround 2022-07-26 22:16:37 -07:00
Shawn Hoffman dd29a54cf6 introduce wrapper for SHA1 functionality 2022-07-26 22:16:37 -07:00
Pokechu22 cc02471da2 DSPHLE: Support padded versions of the libaesnd uCode
This is used by libogc2 and libogc-rice.
2022-07-26 19:06:05 -07:00
Pokechu22 33b63a62d1 DSPHLE: Support padded version of libasnd uCode
This is used by libogc2 and libogc-rice.
2022-07-26 18:44:08 -07:00
Josh 7e75bcd36f
Use Dynamic last Log Type 2022-07-27 00:07:53 +02:00
JosJuice 97100290ee
Merge pull request #10885 from JosJuice/android-graphics-mods
Android: Add graphics mods support to GUI
2022-07-26 15:44:01 +02:00
Admiral H. Curtiss a9edf129e3
Merge pull request #10889 from shuffle2/spng
replace libpng with libspng
2022-07-26 12:53:04 +02:00
Admiral H. Curtiss 6b419c7ca3
Merge pull request #10876 from shuffle2/cpudetect
CPUDetect: improve win/arm64 support
2022-07-26 12:52:50 +02:00
Admiral H. Curtiss 9d15a1c5a1
Merge pull request #10858 from AdmiralCurtiss/mouse-center-hotkey
Add hotkey for centering mouse in render window.
2022-07-26 12:52:33 +02:00
Admiral H. Curtiss c7752f80e4
Merge pull request #10892 from Pokechu22/dsp-hle-aesnd-more-versions
DSPHLE: Support EDuke32 Wii libaesnd uCode
2022-07-26 11:36:18 +02:00
CasualPokePlayer bd27e18d51
Fix ARAM Expansion Writes
Looks like the memcpy here had its args in the wrong order.
2022-07-26 02:01:25 -07:00
Shawn Hoffman 76b4318b88 CPUDetect: improve win/arm64 support
read brand_string on macos/arm64
remove unused flags
report family/model info instead of vendor name
2022-07-25 21:21:11 -07:00
Pokechu22 1dcccb1f75 DSPHLE: Add warning to use of MAIL_TERMINATE 2022-07-25 20:35:43 -07:00
Pokechu22 e44b596f50 DSPHLE: Fix typos in libaesnd logging 2022-07-25 20:35:43 -07:00
Pokechu22 58d344e189 DSPHLE: Support EDuke32 Wii libaesnd uCode
This version is exclusive to EDuke32 Wii (see https://bugs.dolphin-emu.org/issues/12990).
2022-07-25 20:35:41 -07:00
Pokechu22 a6d08571bd DSPHLE: Move aesnd uCode hash constants into header 2022-07-25 20:32:02 -07:00
Pokechu22 4b179e01da DSPHLE: Move asnd uCode hash constants into header 2022-07-25 20:31:04 -07:00
Shawn Hoffman f92541fbd9 StripSpaces: only strip spaces
StripWhitespace maintains old behavior
2022-07-25 18:40:12 -07:00
Shawn Hoffman acb10f0006 replace libpng with libspng 2022-07-25 18:32:16 -07:00
Admiral H. Curtiss e4ff49769c
Merge pull request #10888 from shuffle2/zlib-ng
replace zlib with zlib-ng
2022-07-26 02:25:17 +02:00
JMC47 bfd03cd1a4
Merge pull request #10793 from Pokechu22/dsp-hle-aesnd
DSPHLE: Add HLE version of libaesnd ucode
2022-07-25 05:12:53 -04:00
JosJuice 86bb290cc5
Merge pull request #10886 from OatmealDome/metal-minor-fixes
Metal: Prevent usage of macOS-only APIs on non-macOS platforms
2022-07-25 08:31:18 +02:00
Admiral H. Curtiss d14bd10cd7
Quartz: Handle mouse centering hotkey.
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2022-07-25 01:26:57 +02:00
Admiral H. Curtiss e0870166ef
XInput2: Handle mouse centering hotkey. 2022-07-25 01:26:56 +02:00
Admiral H. Curtiss d57d04bb04
DInput: Handle mouse centering hotkey. 2022-07-25 01:26:56 +02:00
Admiral H. Curtiss 4d27022d0e
Add hotkey for centering mouse in render window. 2022-07-25 00:59:47 +02:00
Shawn Hoffman c3b64012d1 replace zlib with zlib-ng
since the benefits are so high, don't link with shared zlib
2022-07-24 14:33:37 -07:00
OatmealDome 700162b8bd MTLUtil: Include TargetConditionals 2022-07-23 17:22:11 -04:00
OatmealDome 77f44f1600 MTLMain: Include TargetConditionals 2022-07-23 17:22:11 -04:00
OatmealDome b32b27ae9a MTLMain: Only compile NSView manipulation code on macOS 2022-07-23 17:22:04 -04:00
JosJuice e5a177ece9
Merge pull request #10868 from tellowkrinkle/UsesDSBFix
VideoCommon: Fix IsDualSrc check for dst blend factors
2022-07-23 22:14:07 +02:00
JosJuice 8f410bff15 Android: Add graphics mods support to CheatsActivity 2022-07-23 21:58:45 +02:00
OatmealDome 8ad7fa0313 MTLUtil: Return invalid for non-supported texture formats on non-macOS platforms 2022-07-23 13:53:31 -04:00
OatmealDome 7edd3aff75 MTLUtil: Don't attempt to get all GPUs on non-macOS platforms 2022-07-23 13:53:22 -04:00
OatmealDome 50d3ad58df CMakeLists: Link videometal with Foundation 2022-07-23 13:53:15 -04:00
Pokechu22 6a7aa8f2c6 Convert CP/XF matrix indices mismatch panic alert to a warning
https://bugs.dolphin-emu.org/issues/12977 indicates that this happens on startup of Spider-Man 2, even in single-core. I don't have the game, so I can't directly determine why this is happening, but presumably real hardware does not hang in this case, so we can make it less obtrusive.
2022-07-23 09:01:22 -07:00
JMC47 89c4fdeeea
Merge pull request #10754 from tellowkrinkle/Metal
VideoBackends: Add Metal backend
2022-07-23 01:57:35 -04:00
Pokechu22 5bbdf7ae15 ProcessorInterface: Reset both GPFifo and Fifo on PI_FIFO_RESET
Fixes https://bugs.dolphin-emu.org/issues/12981
2022-07-22 22:22:34 -07:00
Pokechu22 97412553f9 Add a more detailed comment about SPR_WPAR's BNE bit 2022-07-22 22:22:34 -07:00
Pokechu22 c06f203e98 MMU: Clarify masking on gather pipe address 2022-07-22 22:22:34 -07:00
Pokechu22 1c833ddc3c Create constant for GPFifo physical address 2022-07-22 22:22:33 -07:00
Pokechu22 b76f4dd5f8 ProcessorInterface: Remove unused fields 2022-07-22 22:20:26 -07:00
TellowKrinkle 6559c6b8ee VideoBackends:Multiple: Grammar fixes 2022-07-21 20:44:19 -05:00
TellowKrinkle a41345127f VideoBackends:Metal: Remove unified memory config
Not worth the extra code
2022-07-21 20:44:19 -05:00
TellowKrinkle 5065767abd VideoBackends:Metal: Avoid submitting draw calls with no vertices/indices 2022-07-21 20:44:19 -05:00
TellowKrinkle ee3f2b8fcb VideoBackends:Metal: Implement PerfQuery 2022-07-21 20:44:19 -05:00
TellowKrinkle c48035908c VideoBackends:Metal: Use unified memory path by default on all GPUs 2022-07-21 20:44:19 -05:00
TellowKrinkle 6ee0248eab VideoBackends:Metal: MSAA support 2022-07-21 20:44:19 -05:00
TellowKrinkle c0fd128171 VideoBackends:Metal: Use base vertex 2022-07-21 20:44:19 -05:00
TellowKrinkle 5742ccf8de VideoBackends:Metal: Cache pipelines
Metal pipelines hold less stuff than Dolphin pipelines, so duplicates will appear
2022-07-21 20:44:19 -05:00
TellowKrinkle e32213d031 VideoBackends:Metal: Create samplers on demand 2022-07-21 20:44:19 -05:00
TellowKrinkle 61705b05da VideoBackends:Metal: FBFetch for Intel GPUs 2022-07-21 20:44:19 -05:00
TellowKrinkle a5ef9dfd53 VideoBackends:Metal: Use DriverDetails for bugs 2022-07-21 20:44:19 -05:00
TellowKrinkle 716c0980d7 VideoBackends: Add Metal renderer 2022-07-21 20:44:19 -05:00
Admiral H. Curtiss df399b0995
Merge pull request #10878 from Pokechu22/btreal-allow-libusb-descriptor-errors
BTReal: Treat libusb_get_string_descriptor_ascii failure as non-fatal warning
2022-07-22 02:00:13 +02:00
Pokechu22 6eaa4a4e89 DSPHLE: Add HLE version of libaesnd ucode 2022-07-20 18:41:47 -07:00
Pokechu22 5e64f453ab DSPHLE/ASnd: Rename m_next_command_is_voice_addr to m_next_mail_is_voice_addr 2022-07-20 18:41:47 -07:00
Pokechu22 75ae3b7ec4 DSPHLE: Fix comment in libasnd uCode 2022-07-20 18:41:47 -07:00
Pokechu22 76fd0479b8 JitAsm: Remove old commented-out code
I'm not sure what the XMM0 check was supposed to be, but the 0xCC008000 one is for the fifo and is handled elsewhere now (look for `optimizeGatherPipe`).
2022-07-20 16:38:54 -07:00
Léo Lam e40be6e8fd
Merge pull request #10865 from JosJuice/volume-verifier-ios-case
VolumeVerifier: Ignore case when looking for IOS on update partition
2022-07-20 20:41:55 +01:00
Admiral H. Curtiss a1e8e60c4c
IOS: Add IOSC::KeyEntry::misc_data to savestate. 2022-07-20 21:32:44 +02:00
Pokechu22 a23a7f7b10 BTReal: Treat libusb_get_string_descriptor_ascii failure as non-fatal warning 2022-07-20 11:21:23 -07:00
Admiral H. Curtiss b0b5faa793
Merge pull request #10874 from JosJuice/cmpr-layout
VideoCommon: Fix CMPR compute shader layout
2022-07-19 12:05:29 +02:00
Admiral H. Curtiss ec3cfc01c1
DiscIO/DirectoryBlob: Add callback to modify sys files before they're added to the disc. 2022-07-19 00:55:04 +02:00
Admiral H. Curtiss cc315cb7af
DiscIO/Riivolution: Add dolphin-specific extensions "dolphin_sys_file" and "dolphin_sys_folder" to patch sys files like you would patch regular files. 2022-07-19 00:55:04 +02:00
Admiral H. Curtiss f5c132580c
DiscIO/DirectoryBlob: Add ContentSource that stores data locally in std::vector. 2022-07-19 00:55:03 +02:00
Admiral H. Curtiss 9e5bc98496
DiscIO/RiivolutionPatcher: Skip main.dol patches if no main.dol was given. 2022-07-19 00:55:03 +02:00
Admiral H. Curtiss fa30ba18f5
Merge pull request #10783 from JosJuice/frontend-controller-init
Require frontend to initialize controllers
2022-07-19 00:50:32 +02:00
JosJuice 1a2bc2eff9 VideoCommon: Fix CMPR compute shader layout
Looks like a copy-paste gone wrong. The compute shaders for the other
formats use a group size of 8 * 8, whereas the CMPR compute shader
is supposed to use a flattened 64 * 1 as I understand it.
2022-07-18 18:56:50 +02:00
Shawn Hoffman 28828435bb Qt/LogWidget: remove extra space 2022-07-18 09:52:54 -07:00
Shawn Hoffman 0a15d2fcec cubeb: fix logged source file paths 2022-07-18 09:52:54 -07:00
TellowKrinkle 88c85ce471 VideoCommon: Fix IsDualSrc check for dst blend factors 2022-07-17 20:50:53 -05:00
Joon Park 319288de8e Fix OpenGL error on M1 Mac.
Followup to #10466. Resolves the following error:

ERROR: 0:85: '&' does not operate on 'uvec3' and 'int'
2022-07-17 08:54:39 -04:00
JosJuice dabad82219 Require frontend to initialize controllers
We currently have two different code paths for initializing controllers:
Either the frontend (DolphinQt) can do it, or if the frontend doesn't do
it, the core will do it automatically when booting. Having these two
paths has caused problems in the past due to only one frontend being
tested (see de7ef47548). I would like to get rid of the latter path to
avoid further problems like this.
2022-07-17 14:03:04 +02:00
JosJuice 2f3c0cdbc5 Split out controller initialization to UICommon 2022-07-17 14:02:03 +02:00
JosJuice 81a20a1d74 VolumeVerifier: Ignore case when looking for IOS on update partition
One of the Dragon Quest X expansions (S4SJGD) uses lowercase instead of
the usual uppercase for the IOS59 file on its update partition.
2022-07-17 09:20:12 +02:00
CasualPokePlayer 581fd2b1e3 Fix SYSCONF movie settings
The movie config layer is not active for recording, only playback. Thus, recording ends up stuck with default SYSCONF settings.
The fix is simply to add in the movie config layer when recording. The way it's done is a bit hacky, but seems to work.
2022-07-16 23:16:35 -07:00
JMC47 70b0b03c3c
Merge pull request #10747 from tellowkrinkle/LateUIDFixup
Add a post-cache shader UID fixup pass
2022-07-17 00:43:16 -04:00
JMC47 f1d23ff9a4
Merge pull request #10466 from Pokechu22/efb-copy-gamma
Accurately handle the copy filter and gamma for EFB and XFB copies
2022-07-17 00:07:50 -04:00
Admiral H. Curtiss 2ef069e0e8
Merge pull request #10833 from sepalani/BBA-log
NetworkCaptureLogger: Add GameCube BBA support
2022-07-16 21:44:08 +02:00
OatmealDome 2eecfc8595 WiiPane: Adjust capitalization of conversion buttons and alert titles 2022-07-16 04:08:55 -04:00
OatmealDome 60aaa308bf WiiPane: Trim automatic SD sync checkbox string 2022-07-16 04:00:26 -04:00
Pokechu22 a6e06f38ad Add notes about precision of YUV->RGB conversion factors for XFB 2022-07-16 00:07:10 -07:00
Pokechu22 2f43889141 Software: Use hardware-verified numbers for RGB->YUV conversion 2022-07-16 00:07:10 -07:00
Pokechu22 e7339d63f1 Rework TextureConversionShader for hardware accuracy and simplicity 2022-07-16 00:07:10 -07:00
Pokechu22 b16ec5b6dc Rework TextureConverterShaderGen for hardware accuracy and simplicity 2022-07-16 00:07:10 -07:00
Pokechu22 791bd16b28 Restructure parameters to TetxureConverterShaderGen/TextureConversionShader
This will be used for later refactoring for increased accuracy.
2022-07-16 00:07:10 -07:00
TellowKrinkle 89ae060214 VideoCommon: Increase uniform stream buffer size to 64mb
Densha De Go uses 27mb per frame, and we want enough space for the CPU to be encoding one frame while the GPU is rendering the previous
2022-07-15 18:21:50 -05:00
TellowKrinkle fb5648541c VideoCommon: Remove dstalpha from BlendingState
It's not supported by any PC graphics API, and therefore completely unused
2022-07-15 15:31:47 -05:00
TellowKrinkle 991024173e VideoCommon: Always use fbfetch in ubershaders if available
Reduce the number of different pipelines needed.  Also works around drivers that break when you combine fbfetch with dual source blending
2022-07-15 15:31:47 -05:00
Pokechu22 d20094efa2 Add extra Low and High fields to CopyFilterCoefficients
This struct is the only one in BPMemory that uses u64 as its base.  These fields are to allow viewing it as two u32s instead.  It's not used by Dolphin right now, but it is used in the copy of BPMemory.h used by hwtests.
2022-07-15 12:29:40 -07:00
Pokechu22 bed278d3b7 Create dedicated enum for EFB/XFB gamma correction
This also changes the behavior for the invalid gamma value, which was confirmed to behave the same as 2.2.

Note that currently, the gamma value is only used for XFB copies, even though hardware testing indicates it also works for EFB copies.  This will be changed in a later commit.
2022-07-15 12:29:40 -07:00
Pokechu22 dd41a72378 Only use intensity formats if both intensity_fmt and auto_conv are set
auto_conv is normally always set for EFB copies, but hardware testing indicates that intensity_fmt does nothing if auto_conv is not set.
2022-07-15 12:29:40 -07:00
Pokechu22 cd2cc5fa22 Rename EFB copy bit 2 from yuv to unknown_bit
It was named yuv in 522746b2c2, but hardware testing indicates that that bit does nothing (the intensity format bit enables YUV conversion, instead).
2022-07-15 12:29:40 -07:00
Pokechu22 850e524514 Use fmt::to_string for texture format overlay
This required adding parentheses to the font used by that.
2022-07-15 12:29:40 -07:00
Pokechu22 290e62f179 Remove casts to integers for texture and EFB formats
The only remaining casts for these types that I know of are in TextureInfo (where format_name is set to the int version of the format, and since that affects filenames and probably would break resource packs, I'm not changing it) and in TextureDecoder_Common's TexDecoder_DrawOverlay, which will be handled separately.
2022-07-15 12:29:40 -07:00
Admiral H. Curtiss 89067e66f9
InputCommon: Get rid of static strings. 2022-07-15 19:53:10 +02:00
Admiral H. Curtiss 537fe33997
Merge pull request #10843 from Pokechu22/freelook-background-input
Free Look: Add background input setting (disabled by default)
2022-07-14 19:08:29 +02:00
Admiral H. Curtiss a739f63d96
Merge pull request #10840 from AdmiralCurtiss/cmake-windows-sdl
Fix CMake Windows build after SDL merge.
2022-07-14 19:05:25 +02:00
TellowKrinkle 6ab24e6c17 VideoCommon: Better driver bug handling
Adds a pass to process driver deficiencies between UID caching and use, allowing a full view of the whole pipeline, since some bugs/workarounds involve interactions between blend modes and the pixel shader
2022-07-13 21:51:24 -05:00
JMC47 e237aa1435
Merge pull request #10777 from tellowkrinkle/EFBFlush
VideoCommon: Remember to flush command buffers after multiple EFB copies
2022-07-13 19:45:31 -04:00
Pokechu22 25aa30ac69 Free Look: Add background input setting (disabled by default)
Before, Free Look would accept background input by default, which means it was easy to accidentally move the camera while typing in another window. (This is because HotkeyScheduler::Run sets the input gate to `true` after it's copied the hotkey state, supposedly for other threads (though `SetInputGate` uses a `thread_local` variable so I'm not 100% sure that's correct) and for the GBA windows (which always accept unfocused input, presumably because they won't be focused normally).
2022-07-13 15:23:00 -07:00
JMC47 5663a44962
Merge pull request #10842 from tellowkrinkle/ClearBackendInfo
VideoCommon: Clear backend_info before populating
2022-07-13 16:40:46 -04:00
Admiral H. Curtiss bae715f396
Merge pull request #10838 from AdmiralCurtiss/volume-verifier-out-of-bounds-read
DiscIO/VolumeVerifier: Avoid out-of-bounds reads on trimmed Wii ISOs.
2022-07-13 18:49:24 +02:00
Admiral H. Curtiss 10407cc8c1
DiscIO/VolumeVerifier: Don't try to verify data that would read out of bounds. 2022-07-13 13:35:18 +02:00
JMC47 cb350aed53
Merge pull request #10841 from tellowkrinkle/FBFetchLogicOpMasking
VideoCommon: Properly mask fbfetch logic op emulation
2022-07-13 03:56:14 -04:00
TellowKrinkle f83015649c VideoCommon: Clear backend_info before populating 2022-07-13 02:55:54 -05:00
TellowKrinkle 6bd0fc86ba VideoCommon: Properly mask fbfetch logic op emulation 2022-07-13 02:27:45 -05:00
Admiral H. Curtiss e79c7d4985
InputCommon: Don't force-link against SDL2.lib on Windows. 2022-07-13 01:37:05 +02:00
Sepalani 76fe7b6497 NetworkCaptureLogger: Add GameCube BBA support 2022-07-12 13:35:49 +04:00
Admiral H. Curtiss 2d8d3358c4
FatFsUtil: Skip past entries with invalid filenames. 2022-07-11 23:11:42 +02:00
Admiral H. Curtiss de9c9f2281
FatFsUtil: Improve error handling and error reporting. 2022-07-11 23:11:42 +02:00
Admiral H. Curtiss d2910b5753
Qt: Add 'convert now' buttons for the SD card in the WiiPane. 2022-07-11 23:11:42 +02:00
Admiral H. Curtiss f40eeebcf0
FatFsUtil: Add some path traversal attack protection when unpacking. 2022-07-11 23:11:42 +02:00
Admiral H. Curtiss a621fdf857
Core: In deterministic mode, build SD cards with a consistent filename order and dummy timestamps. 2022-07-11 23:11:41 +02:00
Admiral H. Curtiss 1d12e95404
Qt: Put Wii SD card path and SD sync folder fields in the WiiPane. 2022-07-11 23:11:41 +02:00
Admiral H. Curtiss a5b1bfef68
Common: Change default path for Wii SD cards to not be inside the Wii NAND. 2022-07-11 23:11:41 +02:00
Admiral H. Curtiss 4bf75c950b
Qt/WiiPane: Add checkbox for SD card folder syncing. 2022-07-11 23:11:41 +02:00
Admiral H. Curtiss 77d4591fb4
Core: If configured, sync SD card image with SD card folder on emulation start and end.
Co-authored-by: Pablo Stebler <pablo@stebler.xyz>
2022-07-11 23:11:41 +02:00
Admiral H. Curtiss b66cc1caf6
Config and UICommon: Add config option and user path for Wii SD card sync folder. 2022-07-11 23:11:40 +02:00
Admiral H. Curtiss 96751c4457
Treewide: Rename references to SD Card image path to clarify they mean the image file, not the folder. 2022-07-11 23:11:40 +02:00
Admiral H. Curtiss fdc327c252
Externals/FatFs: Build as part of Dolphin.
Co-authored-by: Pablo Stebler <pablo@stebler.xyz>
2022-07-11 23:11:37 +02:00
Admiral H. Curtiss 32523f155b
Merge pull request #10825 from Rudolchr/fix_build_with_libfmt-9
MsgHandler: Add a check for libfmt version to fix build with libfmt-9
2022-07-11 23:02:08 +02:00
Admiral H. Curtiss 20059776d9
Merge pull request #10831 from sepalani/BBA-cleanup
Common/Network+BBA/Builtin: Cleanup
2022-07-11 23:00:21 +02:00
JMC47 b2be9b40cc
Merge pull request #10561 from shuffle2/sdl-motion
ControllerInterface: Add support for motion and rumble to SDL backend
2022-07-11 16:28:30 -04:00
Pokechu22 6cc8adb3ae DVDInterface: Mask upper bits of DIMAR in GC mode
The masking was removed in d3aad1d6d5, based on a Wii hardware test. Based on https://bugs.dolphin-emu.org/issues/12970 the masking should apply in GameCube mode, though.
2022-07-10 18:00:07 -07:00
Admiral H. Curtiss 99eef44765
Merge pull request #10832 from tellowkrinkle/FixCTZ
Common: Fix CountTrailingZeros for weird compilers
2022-07-11 02:12:45 +02:00
JMC47 cce6133ef6
Merge pull request #10749 from tellowkrinkle/IntelUbershaders
VideoCommon: Fix ubershaders on MoltenVK Intel
2022-07-10 19:35:55 -04:00
Shawn Hoffman 54b4ad8f55 ci/sdl: pump messages for SDL_hidapi so device detection works 2022-07-10 15:39:06 -07:00
Shawn Hoffman ddf83462ac sdl: enable SDL_HINT_JOYSTICK_THREAD
fixes window message pumping
2022-07-10 15:39:06 -07:00
Shawn Hoffman 655fb94e61 ci/win32: give the wndclass a unique name
other things (like SDL) may try to use "Message"
2022-07-10 15:39:06 -07:00
Shawn Hoffman dd20c7cf78 ci/sdl: re-add the x360 controller block 2022-07-10 15:39:06 -07:00
Shawn Hoffman 3f7a2c6d4d ci/sdl: minor cleanup 2022-07-10 15:39:06 -07:00
Jun Bo Bi ceed42a0ee Add SDL as a submodule 2022-07-10 15:38:59 -07:00
TellowKrinkle 3d34a20105 Common: Fix CountTrailingZeros for weird compilers 2022-07-10 17:35:47 -05:00
Jun Bo Bi 6cb936d0cf Add SDL motion input and rumble support 2022-07-10 14:49:49 -07:00
JMC47 38cb76dea5
Merge pull request #10807 from merryhime/LogicalImm
Arm64Emitter: Simplify LogicalImm logic
2022-07-10 17:27:47 -04:00
Merry 0d947ed6fe Arm64Emitter: Simplify LogicalImm further
h/t @dougallj
2022-07-10 22:17:09 +01:00
Merry 20ccc38f0f BitUtils: Implement CountTrailingZeros 2022-07-10 22:17:09 +01:00
Sepalani be2ede6109 BBA/BuiltIn: Move functions to anonymous namespace 2022-07-10 20:57:35 +04:00
Sepalani b950d038b9 Common/Network: Update IP checksum since total_len might have changed 2022-07-10 20:56:07 +04:00
Sepalani 5fdf255a2d Common/Network: Make Build() methods const 2022-07-10 20:12:07 +04:00
Sepalani d902b04ae0 Common/Network: Remove unused offset variables 2022-07-10 14:11:50 +04:00
Sepalani b206f98261 Common/Network: Remove unnecessary size checks 2022-07-10 14:04:03 +04:00
Sepalani 6238834c05 Common/Network: Add InsertObj helper 2022-07-10 13:56:33 +04:00
Sepalani 4efe1e7ca7 Common/Network: Ensure offsetof is valid 2022-07-10 12:48:12 +04:00
Sepalani b7bd2a4001 Common/Network: Use member initializer list 2022-07-10 12:31:59 +04:00
Sepalani 13957a627c Common/Network: Remove unused constructors 2022-07-10 11:42:58 +04:00
JosJuice 6e09b13ce3
Merge pull request #10829 from AdmiralCurtiss/spirv-cross-cmake-fix
Fix CMake Windows build after #10673 (HLSL from SPIRV).
2022-07-10 09:08:24 +02:00
OatmealDome 1c6a0073d2 ShaderCompiler: Use compute shader header in compute shaders 2022-07-09 19:01:58 -04:00
Admiral H. Curtiss cdd3571491
D3DCommon: Add glslang include directories in CMake. 2022-07-10 00:59:32 +02:00
Admiral H. Curtiss 5a7759e359
Merge pull request #10690 from schthack/BBA-tapless
BBA: Added BuiltIn device that allow BBA emulation without the need o…
2022-07-09 23:20:53 +02:00
schthack 087020b23a Refactoring of the code to match dolphin style
Changed access for offsetof + some clean up
2022-07-09 17:01:22 -04:00
JosJuice 0ebc510e6f JitArm64: Pass 32-bit temp GPR to WriteConditionalExceptionExit
If a 64-bit register is passed to WriteConditionalExceptionExit,
the LDR instruction in it will read too much data. This seems
to be harmless right now, but causes problem in one of my PRs.
2022-07-09 21:19:25 +02:00
Admiral H. Curtiss 5337943785
Merge pull request #10827 from JosJuice/jitarm64-psqst-unlock
JitArm64: Fix GPR unlocking in psq_stXX
2022-07-09 20:27:40 +02:00
JosJuice 6f40981ac0 JitArm64: Fix GPR unlocking in psq_stXX
This is what happens when I copypaste things a bit too quickly
2022-07-09 20:10:00 +02:00
Christopher Rudolph 66f330e573 Add a check for libfmt version so that in case libfmt-9 is used the function is_compile_string is called under it's new namespace 2022-07-09 17:02:09 +02:00
Admiral H. Curtiss e072aaa769
ShaderCache: Fix inverted usage of palette_format. 2022-07-09 13:17:53 +02:00
JMC47 fac66897af
Merge pull request #10819 from Dentomologist/fix_shader_compilation_warnings
VideoCommon: Fix D3D shader compilation warnings
2022-07-08 18:46:29 -04:00
JMC47 7853b72c46
Merge pull request #10430 from OatmealDome/mac-portable
UICommon: Add support for portable.txt on macOS
2022-07-08 18:41:14 -04:00
JMC47 59e8aacf42
Merge pull request #10745 from JosJuice/softmmu
JitArm64: Implement "soft MMU"
2022-07-08 15:55:49 -04:00
JMC47 828afc6735
Merge pull request #10673 from iwubcode/spirv-backends
D3D: Generate HLSL from SPIRV*
2022-07-08 15:29:58 -04:00
Dentomologist e1e0f42b37 VideoCommon: Fix D3D shader warning X3557 (single iteration loop)
Fix warning "loop only executes for 1 iteration(s), forcing loop to
unroll" when vertex_in == 1
2022-07-08 00:25:55 -07:00
Dentomologist 71541c1324 VideoCommon: Fix D3D shader warning X4000 (uninitialized variables)
Initialize alpha_A and alpha_B. They were previously only initialized in
cases where they were used, but D3D isn't able to figure that out.
2022-07-08 00:25:14 -07:00
Dentomologist 0fac1d6e87 VideoCommon: Fix D3D shader warning X3571 (negative base for pow())
Add abs() to fix "pow(f, e) will not work for negative f, use abs(f) or
conditionally handle negative values if you expect them".
2022-07-08 00:19:05 -07:00
Merry 3092f40e9f Arm64Emitter: Simplify LogicalImm logic
Heavily simplify logical immediate encoding.

This is based on the observation that if a valid repeating element
exists, it repeats through `value`. Thus it does not matter which
one you analyse. Thus we skip over the least significent element
if LSB = 1 by masking it out with `inverse_mask_from_trailing_ones`,
to avoid the degenerate case of a stretch of 1 bits going 'round
the end' of the word.
2022-07-07 22:53:36 +01:00
Admiral H. Curtiss eccf527bf6
Merge pull request #9147 from jordan-woyak/imu-accel-weight-setting
WiimoteEmu: Expose IMU pointing accelerometer weight setting.
2022-07-07 23:17:47 +02:00
Admiral H. Curtiss ccdb909d06
Merge pull request #10710 from jordan-woyak/rename-range
DolphinQt: Renamed "Range" to "Multiplier" in advanced mapping window and improved UX.
2022-07-07 23:04:11 +02:00
TellowKrinkle 3ee4b89a46 VideoCommon: Remember to flush command buffers after multiple EFB copies 2022-07-06 18:38:05 -05:00
JMC47 7321802b4b
Merge pull request #10811 from Pokechu22/bs2-dfi-typo
BS2Emu: Fix DFI typo
2022-07-06 03:23:55 -04:00
Pokechu22 263d2a419a BS2Emu: Fix DFI typo 2022-07-05 17:15:59 -07:00
TryTwo d0b33c7adf Debugger CodeWidget: Add filter boxes to callstack, function calls, and function callers. Move symbols search box to align with changes. 2022-07-05 12:57:41 -07:00
OatmealDome c6eb5e2623 FileUtil: Only attempt to write to the destination in Copy if there is actually content to write 2022-07-05 15:13:20 -04:00
Admiral H. Curtiss 24498ca315
Merge pull request #10712 from tellowkrinkle/ControllerLocks
InputCommon/ControllerEmu: Use more locks
2022-07-05 11:39:48 +02:00
Admiral H. Curtiss de3d1344d5
Merge pull request #10762 from CasualPokePlayer/fix_slow_audio_desyncs
Reduce gradual audio desyncing in dumps and apply the correct sample rate for GameCube audio
2022-07-05 11:37:30 +02:00
CasualPokePlayer 4234b25682 Do not directly store input sample rate, rather just store a divisor for that sample rate, with it using a fixed dividend of 54000000 * 2.
This should reduce (but not completely eliminate) gradual audio desyncs in dumps. This also allows for accurate sample rates for the GameCube.
Completely eliminating gradual audio desyncs will require resampling to an integer sample rate, as nothing seems to support a non-integer sample rate.
2022-07-03 15:07:06 -07:00
schthack 01ada3850f BBA: Added BuiltIn device that allow BBA emulation without the need of a TapDevice Configuration include a dns server setting 2022-07-02 18:02:50 -04:00
Admiral H. Curtiss 3bcd7aced9
Merge pull request #8467 from CookiePLMonster/interruptable-shader-precompile
Make shader precompilation interruptable
2022-07-02 13:08:37 +02:00
Admiral H. Curtiss 2f228310af
Merge pull request #10794 from TryTwo/PR_MemoryWidget_Cell_Edit
Debugger MemoryViewWidget: Allow direct editing of memory cells.
2022-07-02 13:05:39 +02:00
JosJuice 2a791116f1
Merge pull request #10800 from Pokechu22/registerwidget-crash
RegisterWidget: Fix crash when right-clicking when there is no selected cell
2022-07-02 09:18:28 +02:00
JosJuice 07a15a3228
Merge pull request #10624 from Minty-Meeo/resolve-gcc-warnings
Resolve Linux GCC Warnings
2022-07-02 09:17:44 +02:00
JMC47 b5f4b0dffe
Merge pull request #10803 from Zopolis4/clangingaround
Resolve additional warnings generated by clang
2022-07-02 03:12:34 -04:00
Zopolis4 0f07deb0ef
Remove unused variable in SI_DeviceKeyboard.h left over from SI_DeviceGCController.h 2022-07-02 16:16:54 +10:00
iwubcode 66f5085800 DolphinQt: add word wrap to graphics mods description 2022-07-01 19:31:19 -05:00
iwubcode 8dd4e916a7 DolphinQt: save changes to disk before refreshing mod list 2022-07-01 19:31:19 -05:00
TryTwo bd59b0a490 Debugger MemoryViewWidget: Allow direct editing of memory cells. 2022-07-01 17:30:24 -07:00
Pokechu22 bf68211878 RegisterWidget: Fix crash when right-clicking when there is no selected cell 2022-07-01 17:13:00 -07:00
Minty-Meeo 69e32dea52 Resolve GCC Warnings 2022-06-30 15:26:48 -05:00
iwubcode 4788a05c76 VideoCommon: fix projection graphics mod affecting more than the intended draw call 2022-06-29 20:04:59 -05:00
JMC47 5d04e1e1de
Merge pull request #10518 from iwubcode/draw-mod
Introducing a 'GraphicsMod' system for creators
2022-06-28 13:35:39 -04:00
JMC47 e50e45f400
Merge pull request #10700 from sepalani/ssl-handshake
Socket: Fix some non-blocking connect edge cases
2022-06-27 21:39:36 -04:00
iwubcode 8aef0015fd DolphinQt: add warning if graphics mods are not enabled 2022-06-27 18:28:28 -05:00
iwubcode f3054aa99f DolphinQt: add widget in game properties to list the various graphics mods available 2022-06-27 18:22:06 -05:00
iwubcode 1480b78f64 VideoCommon: dump EFB with size and texture format details and dump XFB with size details. Finally move count to front of image for XFB/EFB dumps so as to make it easier to see them in order. Change the count value prefix to 'n' 2022-06-27 18:20:52 -05:00
iwubcode 69839df1eb VideoCommon: support dynamically updating game mods at runtime 2022-06-27 18:20:52 -05:00
iwubcode 892678648e VideoCommon: trigger mod calls in TextureCacheBase (efb/xfb calls), VertexManagerBase (draw calls), and VertexShaderManager (projection calls) 2022-06-27 18:20:52 -05:00
iwubcode 62c186e14b VideoCommon: add UninitializeEFBMemory to mirror XFB function 2022-06-27 18:20:52 -05:00
iwubcode 0f88155729 Core / DolphinQt / VideoCommon: add setting for enabling graphic mods 2022-06-27 18:20:52 -05:00
iwubcode f416b71925 VideoCommon: add logic to handle a GraphicsMod while Dolphin is running 2022-06-27 18:20:52 -05:00
iwubcode 254246b814 VideoCommon: add logic to read a GraphicsMod from configuration 2022-06-27 18:20:52 -05:00
Jordan Woyak 87fb42b64c DolphinQt: Renamed "Range" to "Multiplier" in advanced mapping window. Removed the slider. Moved the spin box. 2022-06-26 22:52:20 -05:00
Jordan Woyak 4c409411ed DolphinQt: Don't show the advanced input settings on the main dialog. 2022-06-26 22:48:13 -05:00
Jordan Woyak 80d9e79cf1 ControllerEmu: Allow settings to be categorized as "advanced". Make "Virtual Notches" and "Gate Size" categorized as such. 2022-06-26 22:42:16 -05:00
Jordan Woyak 643f82539c ControllerEmu: Expose gate size setting for octagon analog sticks. 2022-06-26 22:33:44 -05:00
iwubcode f92beb611f VideoCommon: add game mod constants 2022-06-26 21:53:21 -05:00
iwubcode 3857e1fa66 Core: add GraphicsMod directory 2022-06-26 21:53:21 -05:00
iwubcode 4fbbd85ef4 VideoCommon: create variables for EFB/XFB copy prefix. Reword prefix to 'efb1' and 'xfb1' to match textures 2022-06-26 21:53:21 -05:00
iwubcode b9995b04a0 VideoCommon: add a way to get have a graphics directory count for all games by using a special 'all.txt' instead of a 'gameid.txt' file 2022-06-26 00:45:13 -05:00
iwubcode 7854afe512 VideoCommon: add support for setting and getting the stage from the texture info 2022-06-26 00:45:13 -05:00
iwubcode a1892a9c68 VideoCommon: add function to check whether TextureFormat is a valid value 2022-06-26 00:45:13 -05:00
Pokechu22 76401e8ffb BS2Emu: Initialize the last rows of postMatrices to the identity matrix
This fixes Datel titles having missing textures (which was an issue with the previous commit).
2022-06-25 17:29:49 -07:00
Pokechu22 b2ddffeeb1 BS2Emu: Set HID0/1/2/4 and MSR with correct default values
These values were obtained by setting a breakpoint at a game's entry point, and then observing the register values with Dolphin's register widget.

There are other registers that aren't handled by this PR, including CR, XER, SRR0, SRR1, and "Int Mask" (as well as most of the GPRs). They could be added in a later PR if it turns out that their values matter, but probably most of them don't.

This fixes Datel titles booting with the IPL skipped (see https://bugs.dolphin-emu.org/issues/8223), though when booted this way they are currently missing textures. Due to somewhat janky code, Datel overwrites the syscall interrupt handler and then immediately triggers it (with the `sc` instruction) before they restore the correct one. This works on real hardware due to icache, and also works in Dolphin when the IPL runs due to icache, but prior to this change `HID0.ICE` defaulted to 0 so icache was not enabled when the IPL was skipped.
2022-06-25 14:27:29 -07:00
Pokechu22 9675faa232 DSPHLE: Properly reflect initial halt state in mail handler
DSPHLE::Initialize sets the halt and init bits to true (i.e. m_dsp_control.Hex starts as 0x804), which is reasonable behavior (this is the state the DSP will be in when starting a game from the IPL, as after `__OSStopAudioSystem` the control register is 0x804).
However, CMailHandler::m_halted defaults to false, and we only call CMailHandler::SetHalted in DSPHLE::DSP_WriteControlRegister when m_dsp_control.DSPHalt changes, so since DSPHalt defaults to true, if the first thing that happens is writing true to DSPHalt, we won't properly halt the mail handler.
Now, we call CMailHandler::SetHalted on startup. This fixes Datel titles when the IPL is skipped with DSP HLE (though this configuration only works once https://bugs.dolphin-emu.org/issues/8223 is fixed).
2022-06-25 14:06:55 -07:00
Admiral H. Curtiss caf0e5b3e8
DSPHLE: Add variables in CMailHandler to savestate. 2022-06-25 19:15:21 +02:00
Pokechu22 52f32e61dc DSPHLE: Fix build error in the libasnd uCode
This was a conflict between 8a144a735f and b063f15dcc.
2022-06-24 19:29:31 -07:00
JMC47 75943a7a2c
Merge pull request #10763 from Pokechu22/dsp-hle-asnd
DSPHLE: Add HLE version of libasnd ucode
2022-06-24 21:51:27 -04:00
iwubcode a8b5266347 VideoCommon: enable optimizer and remove debug details when converting GLSL to SPIR-V with validation layers turned off 2022-06-24 18:09:53 -05:00
iwubcode dda1479ecf VideoBackends / VideoCommon: refactor Vulkan to use new SPIRV functionality 2022-06-24 18:09:53 -05:00
iwubcode c2d3b7e7f5 VideoCommon: update pixel shader output to match old D3D code 2022-06-24 18:09:53 -05:00
iwubcode 0eb9352579 D3D: update BoundingBox to match generated shader code 2022-06-24 18:09:53 -05:00
iwubcode cad1d6ce90 VideoCommon: fix support of stereoscopic rendering after moving d3d to SPIRV generation 2022-06-24 18:09:53 -05:00
iwubcode 993fa3bf94 VideoCommon: update UberShaderPixel to properly support logic ops, matching the specialized shader 2022-06-24 18:09:53 -05:00
iwubcode 5dd2704416 D3D / VideoCommon: generate HLSL from SPIRV 2022-06-24 18:09:53 -05:00
iwubcode 3790c99a7d VideoCommon: add common spirv helper functions
Co-authored-by: tellowkrinkle <tellowkrinkle@gmail.com>
2022-06-24 17:52:31 -05:00
Pokechu22 1faca4bfc7
Merge pull request #10752 from tellowkrinkle/BetterShaderNames
VideoCommon: Better shader names
2022-06-24 15:50:48 -07:00
JMC47 76f890f6b0
Merge pull request #10761 from Pokechu22/dsp-halt-mail
DSPHLE: Handle mail more accurately
2022-06-24 18:46:20 -04:00
JMC47 ffa3bf86fb
Merge pull request #10760 from tellowkrinkle/std430
VideoCommon: Fix SSBO layout and remove associated "bug"
2022-06-24 18:40:47 -04:00
Zopolis4 5d2290ba3c
Removed unused variable MAX_MSGLEN in LogManager.cpp 2022-06-24 14:57:03 +10:00
Pokechu22 8a144a735f DSPHLE: Add HLE version of libasnd ucode 2022-06-23 10:50:24 -07:00
Admiral H. Curtiss 0a2aabe6ec
Merge pull request #10753 from Pokechu22/dsp-hle-cdd1-constants
DSPHLE: Move CDD1 constants to UCodes.h
2022-06-23 13:43:57 +02:00
Pierre Bourdon 2bd72dfc6f
Merge pull request #10758 from shuffle2/x64-on-arm64
windows: detect and warn if running x64 dolphin on arm64
2022-06-23 07:34:34 +02:00
Pokechu22 f3c8e75666 DSPHLE: Move CDD1 constants to UCodes.h
These are used by *all* uCodes, though not all uCodes support MAIL_RESUME or MAIL_CONTINUE.
2022-06-22 22:01:13 -07:00
Shawn Hoffman 29ddd0e6f0 windows: detect and warn if running x64 dolphin on arm64 2022-06-22 15:33:12 -07:00
Pokechu22 a72fa4b9cc DSPHLE: Don't generate new mail if the DSP is halted
This fixes booting Datel titles with DSPHLE (see https://bugs.dolphin-emu.org/issues/12943). Datel messed up their DSP initialization code, so it only works by receiving a mail later on, but if halting isn't implemented then it receives the mail too early and hangs.
2022-06-22 09:57:33 -07:00
Pokechu22 3aeafcc70b DSPHLE: Return last mail with top bit cleared if there is no new mail
This is an accuracy improvement, though I don't think it matters for anything in practice.
2022-06-22 09:56:51 -07:00
Pokechu22 bdbb23fa1a DSPHLE: Rename CMailHandler::m_Mails to m_pending_mails 2022-06-22 09:56:51 -07:00
Pokechu22 0fec8ffb3c DSPHLE: Remove empty destructors
Most of these were made unnecessary by the previous commit.
2022-06-22 09:56:51 -07:00
Pokechu22 567f9bede4 DSPHLE: Remove unneeded calls to m_mail_handler.Clear()
It's cleared whenever the uCode changes, so there's no reason to clear it in a destructor or during initialization.

I've also renamed it to ClearPending.
2022-06-22 09:56:50 -07:00
Pokechu22 b063f15dcc DSPHLE: Replace CMailHandler::IsEmpty with CMailHandler::HasPending 2022-06-22 09:56:50 -07:00
Pierre Bourdon c8e716234e
Merge pull request #10732 from Pokechu22/dsp-init
Increase accuracy of DSP initialization process
2022-06-22 14:36:04 +02:00
Pierre Bourdon 6ddff87d42
Merge pull request #10755 from tellowkrinkle/DebugUID
VideoCommon: Don't add garbage to shader uids in debug builds
2022-06-22 14:33:23 +02:00
Pierre Bourdon dc61f87fe4
Merge pull request #10772 from shuffle2/morepch
msbuild: add pch for dolphinqt
2022-06-22 14:27:44 +02:00
Pierre Bourdon ceef02ed2a
Merge pull request #10750 from Pokechu22/hermes-test
Enhance DSPAssemblyTest, and fix various DSPTool bugs discovered while doing so
2022-06-22 14:26:50 +02:00
Spotlight 430c58cf27
IOS: Use host nameserver on more BSDs 2022-06-21 21:49:02 -05:00
Spotlight a2530e3b93
IOS: Use first available IPv4 nameserver 2022-06-21 21:49:02 -05:00
Shawn Hoffman b39a11e23b msbuild: add pch for dolphinqt
since this now includes Qt headers it's better than only using
the vanilla DolphinLib one alone (previous behavior before Qt6)
2022-06-21 13:35:14 -07:00
Pokechu22 a334883c47 Qt/MemoryViewWidget: Don't elide text
Before, the Hex 32 display would get truncated on Linux.
2022-06-20 18:53:23 -07:00
Admiral H. Curtiss f441e3ab98
Merge pull request #10723 from Pokechu22/dsp-lle-unsigned-loop-counter
DSP LLE Recompiler: Fix LOOP and BLOOP when the counter is between 0x8001 and 0xFFFF
2022-06-21 02:01:13 +02:00
Pokechu22 c317f7fd22 DSPLLE: Don't log when DIRQ is set to 0
No interrupt is generated in this case. The homebrew liband uCode writes zero fairly frequently, so logging it results in spam.
2022-06-19 10:46:41 -07:00
Braxton Anderson 2b2b8e932d Rename FPS_REFRESH_INTERVAL in VideoCommon/FPSCounter 2022-06-17 20:11:53 -06:00
TellowKrinkle f79ac768d8 VideoCommon:ShaderCache: Add const to some local variables 2022-06-17 20:14:32 -05:00
Admiral H. Curtiss 23ed611077
Merge pull request #10729 from Pokechu22/libusb-error-wrap
Improve libusb error logging
2022-06-17 16:01:46 +02:00
Admiral H. Curtiss b199108964
Merge pull request #10520 from AdmiralCurtiss/resource-pack-init-crash
ResourcePack: Avoid crashes on invalid packs during Init().
2022-06-17 13:55:16 +02:00
Admiral H. Curtiss efbf5a450b
ResourcePack: Avoid crashes on invalid packs during Init(). 2022-06-17 03:49:05 +02:00
TellowKrinkle 26529a31ab VideoCommon: Fix SSBO layout and remove associated "bug" 2022-06-16 20:26:11 -05:00
Shawn Hoffman 896d5454f0 updater: use new platform id for win-arm64 2022-06-16 14:55:51 -07:00
Pokechu22 053b3e725b DSPHLE: More accurately handle initialization behavior
This improves timing, but does not fix Datel titles.
2022-06-16 12:18:05 -07:00
Pokechu22 072913bbad DSPLLE: More accurately handle initialization behavior 2022-06-16 12:18:05 -07:00
Pokechu22 c38c2b1aaa DSPLLE: Fix debug logging in ReadMailboxLow
The # option means that 0x is prepended already, so the old code resulted in 0x0xDEADBEEF instead of the intended 0xDEADBEEF. WriteMailboxLow was already correct.
2022-06-16 12:18:05 -07:00
Pokechu22 3ceda1df8c DSPLLE: Rename cr to control_reg
Before, there were two distinct fields called cr and r.cr, which is needlessly confusing (see the comment in DSPCore.h).
2022-06-16 12:18:05 -07:00
TellowKrinkle c7892d7371 VideoCommon: Name ubershaders 2022-06-16 02:08:45 -05:00
TellowKrinkle 23c1721fbd VideoCommon: Reduce duplicates of non-palette-requiring texture decode shaders 2022-06-16 02:08:45 -05:00
JosJuice 107a928452
Merge pull request #10748 from tellowkrinkle/SDL22Fun
InputCommon: SDL 2.0.22 init crash workaround
2022-06-15 18:02:59 +02:00
Admiral H. Curtiss ac3920a0da
Qt/GameCubePane: Fix swapping memory cards mid-emulation. 2022-06-15 10:42:14 +02:00
TellowKrinkle 3fe1a1a3d7 VideoCommon: Don't add garbage to shader uids in debug builds
There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero
2022-06-14 21:51:58 -05:00
TellowKrinkle 994210e369 InputCommon: SDL 2.0.22 init crash workaround
See https://github.com/libsdl-org/SDL/pull/5598
2022-06-14 21:02:45 -05:00
JMC47 431d757151
Merge pull request #10743 from tellowkrinkle/LargeBlockRVZ
Fix creation of rvz with > 2mb chunk size
2022-06-14 16:17:24 -04:00
JMC47 8a8e9c5ef6
Merge pull request #10742 from tellowkrinkle/Xcode
Improve incremental build time for Xcode projects
2022-06-14 16:14:54 -04:00
Pokechu22 41939eeaf9 DSPDisassembler: Fix disassembly of LSR and ASR
Before, both 1441 and 147f would disassemble as `lsr $acc0, #1`, when the second should be `lsr $acc0, #-1`, and both 14c1 and 14ff would be `asr $acc0, #1` when the second should be `asr $acc0, #-1`. I'm not entirely sure whether the minus signs actually make sense here, but this change is consistent with the assembler so that's an improvement at least.

devkitPro previously changed the formatting to not require negative signs for lsr and asr; this is probably something we should do in the future: 8a65c85c9b

This fixes the HermesText and HermesBinary tests (HermesText already wrote `lsr $ACC0, #-5`, so this is consistent with what it used before.)
2022-06-14 12:22:06 -07:00
Pokechu22 2d774010c3 DSPCodeUtil: Include the PC and hex in the "Extra code words" section
It's included in the section before, so it's helpful to supply here too.
2022-06-14 12:22:06 -07:00
Pokechu22 087d89225c DSPCodeUtil: Give better output when comparing instructions with large immediates 2022-06-14 12:22:06 -07:00
Pokechu22 cad9801ded DSPDisassembler: Fix out-of-bounds read when the last word is an instruction with a large immediate
For instance, ending with 0x009e (which you can do with CW 0x009e) indicates a LRI $ac0.m instruction, but there is no immediate value to load, so before whatever garbage in memory existed after the end of the file was used.

The bounds-checking also previously assumed that IRAM or IROM was being used, both of which were exactly 0x1000 long.
2022-06-14 12:22:06 -07:00
Pokechu22 693a29f8ce DSPCodeUtil: Use fmt::print instead of logging in DSP::Compare 2022-06-14 12:22:05 -07:00
TellowKrinkle 25929789c1 VideoCommon: Don't pass State by inout
Spirv-cross's MSL codegen makes the amazing choice of compiling calls to inout functions as `State temp = s; call_function(temp); s = temp`.  Not all Metal backends handle this mess well.  In particular, it causes register spills on Intel, losing about 5% in performance.
2022-06-14 00:48:47 -05:00
TellowKrinkle db6e928c8d VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershaders 2022-06-14 00:48:47 -05:00
JMC47 9315ac7071
Merge pull request #10587 from AdmiralCurtiss/memcard-path-unify
Raw Memory Card Path handling unification and consistency fixes.
2022-06-13 20:18:36 -04:00
JMC47 f96e91119a
Merge pull request #10735 from CasualPokePlayer/audio_dump_volume_fix
Have audio dumps apply volume
2022-06-13 17:09:58 -04:00
Jordan Woyak 1fc86cacd7 WiimoteEmu: Expose IMU pointing accelerometer weight setting. 2022-06-13 00:07:00 -05:00
Tillmann Karras 59dfc43949 Common: replace std::aligned_storage_t with alignas
C++23 deprecates std::aligned_storage_t while alignas works since C++11.

This fixes issue 12925.
2022-06-13 00:06:19 +01:00
JosJuice 62ec19c1ba JitArm64: Remove redundant line in the EmitBackpatchRoutine comment
All stores clobber X0, so that stores clobber X0 when emitting_routine
is true is nothing special.
2022-06-12 11:03:38 +02:00
JosJuice 75e897c40e JitArm64: Fix a minor mistake in the EmitBackpatchRoutine comment
X30 is used in fewer situations than the comment was claiming.

(I think that when I wrote the comment I was counting the use of X30
as a temp variable in the slowmem code as clobbering X30, but that
happens after pushing X30, so it doesn't actually get clobbered.)
2022-06-12 11:03:37 +02:00
JosJuice 3de49dee78 JitArm64: Properly reserve scratch register for soft MMU
Cleans up a hack from the previous commit.
2022-06-12 11:03:35 +02:00
JosJuice 3dce1df00e JitArm64: Implement "soft MMU"
This is used when fastmem isn't available. Instead of always falling
back to the C++ code in MMU.cpp, the JIT translates addresses on its
own by looking them up in a table that Dolphin constructs. This is
slower than fastmem, but faster than the old non-fastmem code.

This is primarily useful for iOS, since that's the only major platform
nowadays where you can't reliably get fastmem. I think it would make
sense to merge this feature to master despite this, since there's
nothing actually iOS-specific about the feature. It would be of use
for me when I have to disable fastmem to stop Android Studio from
constantly breaking on segfaults, for instance.

Co-authored-by: OatmealDome <julian@oatmealdome.me>
2022-06-12 11:03:25 +02:00
OatmealDome 3e5f1a4f99 MemTools: Always provide a valid pointer in send_msg for mach_msg_overwrite
This cannot be nullptr in macOS Ventura and iOS 16.
2022-06-12 00:19:09 -04:00
TellowKrinkle 7cf5547b97 CMake: Make bundled MoltenVK optional
Adds ~20s to incremental build time in Xcode projects
2022-06-11 16:34:33 -05:00
TellowKrinkle 26fc167a44 DiscIO: Fix creation of rvz with > 2mb chunk size 2022-06-11 16:10:32 -05:00
TellowKrinkle e4614067b3 CMake: Respect SKIP_POSTPROCESS_BUNDLE 2022-06-11 15:46:38 -05:00
CasualPokePlayer ad892176d0 have audio dumps apply volume (fixes cases of audio dumps being "too loud" and in game audio controls having no effect) 2022-06-10 21:27:10 -07:00
Silent 7faf5ea170
Clear the UI after async shader compilation 2022-06-10 17:19:59 +02:00
Silent dcad3ec892
Allow to interrupt shader precompilation by stopping emulation 2022-06-10 17:11:32 +02:00
JosJuice bcc64a05b3 Memmap: Remove outdated comments for 32-bit 2022-06-09 19:51:36 +02:00
JosJuice 63283dcc72 JitArm64: Refactor EmitBackpatchRoutine parameters, part 2 2022-06-09 19:51:36 +02:00
JosJuice 27ed2a99a0 JitArm64: Refactor EmitBackpatchRoutine parameters, part 1 2022-06-09 19:51:36 +02:00
Pokechu22 27772e01d9 GCAdapter: Compare with LIBUSB_SUCCESS instead of 0 2022-06-08 15:30:22 -07:00
Pokechu22 83afaba785 IOS/USB: Use LibusbUtils::ErrorWrap and LIBUSB_SUCCESS 2022-06-08 15:29:11 -07:00
Pokechu22 5d301cc206 BTReal: Log warnings when libusb calls fail 2022-06-08 15:29:11 -07:00
Pokechu22 eeab51e3a4 Log warnings when LibusbUtils::MakeConfigDescriptor fails 2022-06-08 15:29:11 -07:00
Pokechu22 15cbb5c8f9 Log warnings when LibusbUtils::GetDeviceList fails 2022-06-08 15:29:11 -07:00
Pokechu22 91a7c4bdf2 LibusbUtils: Log warnings when libusb_set_option or libusb_handle_events_timeout_completed fail 2022-06-08 13:18:31 -07:00
Sepalani d7135daff5 Socket: Fix some errors related to non-blocking connect 2022-06-08 19:06:42 +04:00
Sepalani c53a4c8c1a Socket: Keep track of the socket connection progress
Workaround for mbedtls handshake issues with partially connected sockets
2022-06-08 19:06:42 +04:00
Sepalani cbadc6e81a NetworkCaptureLogger: Move ErrorState struct to Common/Network 2022-06-08 19:06:42 +04:00
Sepalani 41ce3a83d5 Socket: Refactor WiiSockMan::Convert 2022-06-08 19:06:42 +04:00
JMC47 daf8e3ddde
Merge pull request #10462 from OatmealDome/steam-runtime
DolphinQt: Add support for a Steam Runtime build
2022-06-06 20:18:06 -04:00
Tillmann Karras 79a7bf02eb
CMake: rename minizip to minizip-ng
minizip-ng is the new name used by the upstream project as well as all
distros other than Fedora (but it looks like it will be renamed there).
2022-06-06 14:21:43 +02:00
Pokechu22 d03b277403 DSP LLE Recompiler: Fix LOOP and BLOOP when the counter is between 0x8001 and 0xFFFF 2022-06-05 19:34:31 -07:00
Admiral H. Curtiss 4fd18cf207
DolphinQt: Unify handling of raw memory card path. 2022-06-05 21:48:13 +02:00
Admiral H. Curtiss deb9964333
Core: Unify handling of raw memory card path. 2022-06-05 21:43:48 +02:00
Admiral H. Curtiss b1d1f2aa06
Common/StringUtil: Add convenience function for converting paths to use forward slashes on Windows. 2022-06-05 21:24:45 +02:00
Admiral H. Curtiss 2081e2f2a1
Config: Move ToGameCubeRegion(), GetDirectoryForRegion(), and GetBootROMPath() to new config system namespace. 2022-06-05 21:24:45 +02:00
JMC47 664663e8de
Merge pull request #10604 from Pokechu22/gcadapter-refactor
Refactor GCAdapter, part 1
2022-06-04 16:30:25 -04:00
Admiral H. Curtiss 96f9d1000d
Merge pull request #10721 from Dentomologist/fix_warnings_on_generic_builder
Fix warnings on generic builder
2022-06-04 21:51:58 +02:00
Dentomologist 92af703f29 DSPAssembler: Fix -Wswitch warning 2022-06-04 12:08:09 -07:00
Tilka d7cda67462
Merge pull request #10716 from Pokechu22/dsp-lle-loop-saturation
DSP LLE: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m
2022-06-04 15:30:06 +01:00
Admiral H. Curtiss 9fb17b5a48
Merge pull request #10718 from shuffle2/hotkeys
qt: unregister Settings' DevicesChanged callback during shutdown
2022-06-03 13:48:28 +02:00
Shawn Hoffman b16711f2af qt: fix wiipane usb list layout 2022-06-02 23:58:13 -07:00
Shawn Hoffman 27dd2c4aa4 qt: unregister Settings' DevicesChanged callback during shutdown
fixes a crash on close
2022-06-02 23:32:21 -07:00
Pokechu22 6823b4d7a0 GCAdapter: Use LibusbUtils::ErrorWrap in log messages 2022-06-02 19:39:36 -07:00
Pokechu22 457fcbaf5e LibusbUtils: Create ErrorWrap 2022-06-02 19:39:36 -07:00
Pokechu22 0d8772ccbe GCAdapter: Make local variables const where possible 2022-06-02 19:39:36 -07:00
Pokechu22 cd9edeacda GCAdapter: Merge Read logic 2022-06-02 19:39:36 -07:00
Pokechu22 9ec65baf46 GCAdapter: Have the read thread control the write thread
This was done for Android in 6cc40b1235.
2022-06-02 19:39:36 -07:00
Pokechu22 0fa92694d1 GCAdapter: Exit early if the adapter fails to open on Android
This is only so that indentation is consistent with the non-android code.
2022-06-02 19:39:36 -07:00
Pokechu22 749a4ad1ef GCAdapter: Remove check on write size on android
It was removed for non-android in 56239d1ae1, and android already uses a separate thread, so presumably this isn't needed anymore.
2022-06-02 19:39:36 -07:00
Pokechu22 27947046af GCAdapter: Harmonize read/write thread variable names 2022-06-02 19:39:36 -07:00
Pokechu22 279888da8c GCAdapter: Remove unused includes 2022-06-02 19:39:36 -07:00
Pokechu22 3ae775e574 GCAdapter: Use determinism hack on Android
This hack was added in 8f0cbefbe5, and the part of it in SI_DeviceGCAdapter is present on Android already, so I don't see any reason why this part doesn't apply to Android.
2022-06-02 19:39:36 -07:00
Pokechu22 55922e6d17 GCAdapter: Convert ControllerType to an enum class 2022-06-02 19:39:36 -07:00
Pokechu22 682d86f4da GCAdapter: Fix rumble enabled config on Android
I believe the setting already existed in the UI; it just wasn't implemented in GCAdapter_Android.cpp.
2022-06-02 19:39:36 -07:00
Pokechu22 36d4ee0939 GCAdapter: Use std::array for controller read and write payloads 2022-06-02 19:39:36 -07:00
Pokechu22 dd6592698e GCAdapter: Merge GCAdapter.cpp and GCAdapter_Android.cpp
This is mostly a brainless merge, #ifdef-ing anything that doesn't match between the two while preserving common logic.  I didn't rename any variables (although similar ones do exist), but I did change one log that was ERROR on android and NOTICE elsewhere to just always be NOTICE.  Further merging will follow.
2022-06-02 19:39:36 -07:00
Mai M f7f47d3cd0
Merge pull request #10692 from Pokechu22/dsp-manual-set40-and-write-backlog
docs/DSP: Add sections on 16-bit and 40-bit modes and on main and extended opcode writing to the same register
2022-06-02 20:26:31 -04:00
Mai M c8ab236e0a
Merge pull request #10709 from Pokechu22/dsp-lle-update-sr-16
DSP LLE JIT: Fix Update_SR_Register16_OverS32
2022-06-02 20:22:36 -04:00
Mai M 84944625df
Merge pull request #10714 from OatmealDome/macos-mojave-bump
BuildMacOSUniversalBinary: Bump minimum macOS to 10.14
2022-06-02 20:20:52 -04:00
Pokechu22 0fc1fb023f
Merge pull request #10678 from Dentomologist/skip_pagefault_test_if_no_exception_handler
UnitTests: Skip PageFaultTest if exception handlers aren't supported
2022-06-02 16:21:21 -07:00
OatmealDome 7ce1a5717a UICommon: Add support for portable.txt on macOS 2022-06-02 14:56:09 -04:00
Admiral H. Curtiss a58bb2aa24
Merge pull request #10701 from TryTwo/PR_Memory_Widget_Connections
Debugger MemoryWidget: Navigate to memory from breakpoint widget and cheat search.
2022-06-02 20:50:44 +02:00
Pokechu22 4bc42ded80 DSP LLE Interpreter: Remove OpReadRegisterAndSaturate
Instead, saturate in OpReadRegister, as all uses of OpReadRegisterAndSaturate called OpReadRegister for other registers (and there isn't anything that writes to $ac0.m or $ac1.m without saturation).
2022-06-01 22:01:49 -07:00
Pokechu22 928f745e36 DSP LLE Interpreter: Fix typo in 'LS
This was introduced in fc1db5eaa0.
2022-06-01 22:01:49 -07:00
Pokechu22 e7f78379ec DSP LLE Recompiler: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m 2022-06-01 22:01:49 -07:00
Pokechu22 bc206b7a27 DSP LLE Interpreter: Apply saturation to LOOP and BLOOP with $ac0.m and $ac1.m 2022-06-01 22:01:49 -07:00
OatmealDome 803a0de5a4 VKMain: Remove check for macOS 10.14 2022-06-01 22:57:56 -04:00
OatmealDome 1cb3058abe MemoryUtil: Remove __builtin_available for macOS 10.14 2022-06-01 22:57:56 -04:00
OatmealDome 6e2febd404 VideoBackendBase: Remove __builtin_available for macOS 10.14 2022-06-01 22:57:51 -04:00
TryTwo 177dae6a1a Add options for BreakpointWidget, WatchWidget, and CheatSearches to send address to Memory Widget 2022-06-01 01:53:15 -07:00
TellowKrinkle f9c6eb7b98 InputCommon/ControllerEmu: Use more locks
Loading configs while another thread is messing with stuff just doesn't feel like a good idea
Hopefully fixes Wiimote Scanning Thread crashes on startup
2022-05-31 20:17:37 -05:00
Dentomologist e0c9ae16b9 FileUtil: Refactor CreateSysDirectoryPath() 2022-05-31 16:18:08 -07:00
Dentomologist c2be78079c FileUtil: Remove GetSysDirectory log spam
Create and log path the first time GetSysDirectory is called, then just
return the path on future calls.
2022-05-31 16:18:08 -07:00
Dentomologist 4d563ce4d1 Android: Ensure File::s_android_sys_directory is set only once 2022-05-31 16:18:08 -07:00
Pokechu22 f88b7ab6b3 DSP LLE JIT: Fix Update_SR_Register16_OverS32
There were 3 bugs here:

- The input register for the full register wasn't actually being used; it was read into RCX but RCX wasn't used by Update_SR_Register16_OverS32 (except as a scratch register).  The way the DSP LLE recompiler uses registers is in general confusing, so this commit changes a few uses to have a variable for the register being used, to make code a bit more readable.  (Default parameter values were also removed so that they needed to be explicitly specified).
- Update_SR_Register16 was doing a 64-bit test, when it should have been doing a 16-bit test.  For the most part this doesn't matter due to sign-extension, but it does come up with e.g. `ORI` or `ANDI`.
- Update_SR_Register16_OverS32 did the over s32 check, and then called Update_SR_Register16.  Update_SR_Register16 masks $sr with ~SR_CMP_MASK, clearing the over s32 bit.  Now the over s32 check is performed after calling Update_SR_Register16 (without masking a second time).  No official uCode cares about the over s32 bit.
2022-05-30 20:10:55 -07:00
Pokechu22 7c63bd1893 docs/DSP: Fix inconsistency with ADDI and CMPI
We don't have anything called $amD, though we do have $acsD.  However, these instructions affect flags based on the whole accumulator, so it's better to just use $acD.
2022-05-29 15:00:09 -07:00
Pokechu22 baf2c710ff DSP: Fix typo with TST 2022-05-29 15:00:09 -07:00
Pokechu22 4dc7208195 docs/DSP: Fix typo with arithmetic instructions that take a 16-bit immediate
These instructions used an 'r' in their bit list, but a 'd' in the operands.
2022-05-29 15:00:09 -07:00
Pokechu22 b349254ff4 docs/DSP: Document the behavior when main and extended opcodes both write to the same register (the write backlog)
For more information, ApplyWriteBackLog, WriteToBackLog, and ZeroWriteBackLog were added in b787f5f8f7 and the explanatory comment was added in fd40513fed, although it did not mention the specific instructions that could trigger this edge case. The statements about which registers can be written by main opcodes and extension opcodes are based on my own checking of all instructions in the manual.
2022-05-29 15:00:09 -07:00
OatmealDome df22439826 FS: Reshuffle Rename to fix steamrt unit test failure 2022-05-29 13:50:32 -04:00
OatmealDome 09875c6403 DolphinQt: Copy qt.conf into Binaries output folder on Steam builds for Linux 2022-05-29 13:50:32 -04:00
OatmealDome 5c4122ec2a DolphinQt: Copy Sys into Binaries output folder on Steam builds for Linux 2022-05-29 13:50:32 -04:00
OatmealDome 77fb5fa7dc DolphinQt: Copy all Qt libraries into Binaries output folder on Steam builds for Linux 2022-05-29 13:50:32 -04:00
OatmealDome 6b05f5cca8 DolphinQt: Set the executable's rpath to a lib directory in $ORIGIN on Steam builds for Linux
We will store our Qt shared libraries here.
2022-05-29 13:50:32 -04:00
OatmealDome e679502a5d GLX: Guard against redefinition of PFNGLXSWAPINTERVALEXTPROC
This type is already declared in glxext.h in the Steam Runtime.
2022-05-29 13:50:32 -04:00
Tilka e17a4f49f5
Merge pull request #10668 from Dentomologist/convert_pointerwrap_mode_to_enum_class
Convert PointerWrap::Mode to enum class
2022-05-29 00:57:43 +01:00
Tilka 3dbc18060b
Merge pull request #10694 from Pokechu22/dsp-assembler-error-messages-etc
DSPAssembler: Rework errors and warnings, and related cleanup
2022-05-29 00:16:23 +01:00
Tilka 57e444cd5d
Merge pull request #10697 from Dentomologist/windows_remove_qt5_code_and_references
Windows: Remove unused Qt5 block and reference
2022-05-29 00:14:34 +01:00
Pokechu22 d307c34af1 DSP LLE: Rename CMPAR to CMPAXH 2022-05-27 18:22:38 -07:00
Dentomologist 059cd5f6e1 Windows: Remove unused Qt 5 code and references 2022-05-25 17:51:17 -07:00
Dentomologist c8e20c569b Convert PointerWrap::Mode to enum class 2022-05-25 13:16:46 -07:00
Dentomologist f6b9acccfc Common: Refactor PointerWrap 2022-05-25 13:06:41 -07:00
Pokechu22 2341ff00ab NetPlay: Make messages about non-matching games clearer 2022-05-24 23:20:45 -07:00
Pokechu22 ea9b0bff08 NetPlay: Delete NetPlayClient::GetPlayerList
It's been unused since DolphinWX was removed in 44b22c90df.  Prior to that, it was used in Source/Core/DolphinWX/NetPlay/NetWindow.cpp.  But the new equivalent in Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp uses NetPlayClient::GetPlayers instead.  Stringifying (or creating a table, as is done now) should be done by the UI in any case.
2022-05-24 14:44:28 -07:00
Tilka b6ad5c5902
Merge pull request #10683 from Pokechu22/gamelist-home-end
GameList: Have home/end keys move to first/last row
2022-05-24 22:10:38 +01:00
Pokechu22 bd3173e344 DSPAssembler: Rework errors and warnings
Among other things, this trims trailing newline characters. Before (on windows) the \r would corrupt the output and make them very hard to understand (as the error message would be drawn over the code line, but part of the code line would peek out from behind it).
2022-05-23 20:27:17 -07:00
Pokechu22 db3d457e5f DSPDisassembler: Remove redundant definition of CW
CW is used as a fallback to write a full instruction as hex, but we already declare it in DSPTables.h for the assembler.
2022-05-23 19:36:47 -07:00
Pokechu22 b06d38389b DSP: Remove some magic numbers for register IDs 2022-05-23 19:36:47 -07:00
Pokechu22 8b52c7315b DSP: Fix assembling x8/x9/xA/xB conditions
The assembler upper-cases the mnemonic internally, so it never would match the lower-case x.
2022-05-23 19:36:47 -07:00
Pokechu22 e7f6e19c61 DSPAssembler: Slightly improve readability of AssemblePass
This should result in no behavior differences.
2022-05-23 19:36:47 -07:00
Admiral H. Curtiss b18fd3d3ce
Core/State: Make memory layout of StateHeader more explicit. 2022-05-24 03:04:52 +02:00
Admiral H. Curtiss f68c3b758e
Common/Network: Use std::array in IPv4Header. 2022-05-23 02:01:59 +02:00
JMC47 3a3357444e
Merge pull request #8067 from endrift/hsp
Preliminary HSP support
2022-05-22 13:42:27 -04:00
Pokechu22 1c4a5d9fc9 GameList: Work around Qt bug regarding clicking in the background not setting the position used by page down/end 2022-05-21 23:33:46 -07:00
Admiral H. Curtiss 8d0f52032b
IOS/DI: Fake the error 001 read when running DirectoryBlobs or Riivolution-patched games. 2022-05-22 04:22:41 +02:00
Pokechu22 2d50ba0ca2 GameList: Have home/end keys move to first/last row 2022-05-21 18:11:24 -07:00
Admiral H. Curtiss 0e948f3e21
Merge pull request #10620 from phire/cmake_win_fixes
Various fixes for msvc/cmake builds
2022-05-22 03:08:17 +02:00
Pokechu22 8b3517a9f9
Merge pull request #10686 from Tilka/pikmin_demo
DSPHLE: handle crc of Pikmin 1 GC US Demo
2022-05-21 17:30:31 -07:00
Vicki Pfau 6a26b0ce8a HW: Initial HSP implementation with ARAM expansion 2022-05-21 17:05:49 -07:00
Admiral H. Curtiss 580c721c82
cmake: Don't use PCH with Qt6. 2022-05-22 01:19:44 +02:00
Admiral H. Curtiss a5e85627b0
cmake: Use Policy CMP0117 for more sensible RTTI flag configuration on MSVC. 2022-05-22 00:30:56 +02:00
Admiral H. Curtiss 9908219dc6
cmake: Add a few missing settings from the Visual Studio project files on MSVC. 2022-05-22 00:29:48 +02:00
Admiral H. Curtiss dbee810a04
cmake: Fixes for Qt6 on Windows. 2022-05-22 00:29:48 +02:00
Scott Mansell 876f6651b4
cmake: fix PCH to work with msvc/ninja
Ninja puts way more effort into compiling targets in parallel, and
ignores dependenceis until link time.

So we need to jump though hoops to force ninja to compile
pch.cpp before any targets which depend on the PCH.
2022-05-22 00:29:47 +02:00
Scott Mansell 0909e00117
cmake: fix MSVC PCH support
I'm not sure if the previous implementation ever worked.
2022-05-22 00:29:47 +02:00
Scott Mansell 2348017ee8
cmake: ignore external warnings in MSVC
Since we also treat all warnings as errors, we need to
ignore these to successfully build.
2022-05-22 00:29:46 +02:00
Scott Mansell 987f270083
cmake: fix buggy target sources on windows
I have no idea why cmake supports PUBLIC on target_sources,
but it does. It causes all targets that depend on this target
to try and include the files in their sources.
Except it doesn't take paths into account, so it breaks. Mabye
it would work if you used an abolute source? But I'm not sure
there is a sane usecase.
2022-05-22 00:29:46 +02:00
Sage King f0454ab2fa Added double click to add expressions when mapping 2022-05-21 14:08:49 -06:00
Tillmann Karras d7da4aca19 DSPHLE: handle crc of Pikmin 1 GC US Demo
The DSP code only has minor differences to the final release.
2022-05-21 16:48:34 +01:00
Pokechu22 863cb591fe MainSettings: Make MAIN_CUSTOM_RTC_VALUE default value less magical 2022-05-20 20:35:53 -07:00
Mai M 244e4acff2
Merge pull request #10674 from OatmealDome/mac-steam-overlay
DolphinQt: Add com.apple.security.cs.allow-dyld-environment-variables to entitlements
2022-05-19 22:43:57 -04:00
Pokechu22 151119cece DSPInterpreter: Fix typo in isOverflow comment 2022-05-19 16:36:39 -07:00