Commit Graph

642 Commits

Author SHA1 Message Date
bc67fc97c3 Revert "Audit uses of IsRunning and GetState"
This reverts commit 72cf2bdb87.

SYSCONF settings are getting cleared when they shouldn't be. Let's
revert the change until I get proper time to figure out why it's broken.
2024-06-26 20:36:46 +02:00
c337ab6473 Merge pull request #12884 from Tilka/qt_this
DolphinQt: fix some warnings
2024-06-23 15:08:13 +02:00
8e7d11d1a1 DolphinQt: fix -Wunused-const-variable warning 2024-06-23 02:38:04 +01:00
72cf2bdb87 Audit uses of IsRunning and GetState
Some pieces of code are calling IsRunning because there's some
particular action that only makes sense when emulation is running, for
instance showing the state of the emulated CPU. IsRunning is appropriate
to use for this. Then there are pieces of code that are calling
IsRunning because there's some particular thing they must avoid doing
e.g. when the CPU thread is running or IOS is running. IsRunning isn't
quite appropriate for this. Such code should also be checking for the
states Starting and Stopping. Keep in mind that:

* When the state is Starting, the state can asynchronously change to
  Running at any time.
* When we try to stop the core, the state gets set to Stopping before we
  take any action to actually stop things.

This commit adds a new method Core::IsUninitialized, and changes all
callers of IsRunning and GetState that look to me like they should be
changed.
2024-06-21 20:52:55 +02:00
33b64d6c91 InterfacePane: Add BalloonTip to cursor visible radio buttons 2024-05-31 19:09:00 +02:00
7d704ca9ca InterfacePane: Add BalloonTip to language combobox 2024-05-31 18:57:28 +02:00
55aaa323ec InterfacePane: Add BalloonTip to theme combobox 2024-05-31 18:52:13 +02:00
c23562b7b5 Merge pull request #12695 from mitaclaw/core-global-system-4
Core::IsRunning: Avoid Global System Accessor
2024-05-04 05:15:35 +02:00
5817be7bd3 Merge pull request #12747 from mitaclaw/qt-memory-leaks
DolphinQt: Properly Delete (Some) Widgets
2024-05-02 17:30:49 +02:00
ad969dfc0d Disabled Hardcore Mode when Achievements disabled
Bugfix for hardcore-disabled items being disabled when hardcore was true but achievement integration was false, which should mean hardcore is effectively disabled. Now everything checks the IsHardcoreModeActive method in AchievementManager which processes the setting AND the game state to determine if hardcore mode is actually active.
2024-05-02 04:44:52 -04:00
0df401b164 Core::IsRunning: Avoid Global System Accessor 2024-05-01 08:54:17 -07:00
0397339ab1 DolphinQt: Properly Delete (Some) Widgets
This is not every memory leak, just the ones that were obvious.
2024-04-30 11:17:28 -07:00
3815819136 Qt: fix 13524 - output resampling mode not loading correctly from ini 2024-04-27 22:11:45 +03:00
d3cf35019c Merge pull request #12726 from JosJuice/i18n-2024-04-20
i18n: Add comments and improve source strings
2024-04-20 23:34:32 +02:00
83b280d903 i18n: Add comments and improve source strings 2024-04-20 23:02:46 +02:00
20665ebce7 Merge pull request #12710 from jordan-woyak/mouse-pointing-disable-relative
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-20 14:14:03 +01:00
df7dd5d36a Config: Expose GFX_OVERLAY_PROJ_STATS setting in UI. 2024-04-18 14:45:28 -05:00
31dc3477ad DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed. 2024-04-15 14:52:26 -05:00
b3939052b4 Merge pull request #12436 from Filoppi/frame-dump-raw-internal-resolution
Frame dump at raw internal resolution
2024-04-13 03:39:37 +02:00
d58c998d6d Merge pull request #12696 from mitaclaw/verify-widget-core-state-slot
VerifyWidget: Listen for Core::State OnEmulationStateChanged
2024-04-13 01:39:32 +02:00
9321318cb6 DolphinQt: Ensure controller settings show the game-controller indicator while expression editing. 2024-04-12 15:54:18 -05:00
fe8f836668 VerifyWidget: Listen for Core::State OnEmulationStateChanged 2024-04-09 12:13:02 -07:00
eb92d6f0a8 Core::GetState: Avoid Global System Accessor 2024-04-08 16:23:23 -07:00
72db62e178 Video: split frame dumping settings into 3 resolution dumping modes
also polish aspect ratio related code for clarity
2024-04-08 22:54:45 +03:00
d6230bbad8 Video: Change the frame dumper to actually use the raw emulation output resolution, avoiding any scaling if possible.
This should make comparisons much more reliable as pixels wouldn't be smushed together or stretched.
2024-04-03 13:32:01 +03:00
ac4fd2297f CheatsManager: Allow making the window smaller
Move CheatManager's child widgets into scroll areas to allow making the
window smaller than the default.

In CheatSearchWidget, enable word wrapping for the label describing the
address space and search type to help it fit better inside a narrower
window.
2024-03-31 13:17:56 -07:00
f3bf5d175e Merge pull request #12609 from JosJuice/aspect-ratio-description
DolphinQt: Tweak the aspect ratio setting description
2024-03-31 06:39:36 +02:00
6e5f8d6692 Merge pull request #12640 from jordan-woyak/sdl-cleanup
SDL: Cleanups
2024-03-31 06:33:50 +02:00
28da3160c3 DolphinQt: Tweak the aspect ratio setting description
With this, I intend to make it clearer that Auto, Force 4:3, Force 16:9
and Custom are really the same thing, just with the aspect ratio of the
simulated TV being selected in a different way. I also extended the
introduction in a way I feel will clarify things but which you are
welcome to bikeshed :)

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

I'm a bit unsure what to do about the word "analog" in "analog TV". I
felt that repeating it for each of these options would be too
repetitive. I suppose there's a reason why we used the word originally,
but digital TVs do give you basically the same aspect ratio for GC/Wii
games as analog TVs. (Of course, whether it's 4:3-like or 16:9-like
depends on what aspect ratio you set in the TV's settings, but that's
the case for widescreen CRTs too.)
2024-03-24 15:18:58 +01:00
647eba36f3 DolphinQt: Fix BalloonTip positioning on secondary monitors. 2024-03-20 03:13:11 -05:00
ee43c9508c ControllerInterface: Add IsHidden function to Control interface. 2024-03-14 23:43:58 -05:00
62caa24d40 DolphinQt: Add IRPassthrough indicator. 2024-03-11 21:40:53 -05:00
617fcc3cf8 WiimoteEmu: Add user-accessible controls that report the desired state of the IR camera objects. 2024-03-11 22:49:19 +01:00
41b19e262f Add custom relative and raw (squared pixels) aspect ratio modes 2024-02-29 21:11:19 +02:00
56ff19c513 BalloonTip: Rework BalloonTip drawing
* Fix irregularly shaped corners
* Remove extra space for BalloonTips with no message or no title
* When the target tip location is not on a screen, put the tooltip on
  the mouse's screen instead of the primary screen
* Fix description getting cut off when the title was too long
* Expose border width as a parameter
* Fix spacing and sizing issues with larger border widths
2024-02-17 12:36:19 -08:00
e6ee217a7c Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
6cf55ab1ee InputCommon: Unify GetProfileName and GetProfileDirectoryName
After reading the previous commit, you might think "hold on, what's the
difference between GetProfileName and GetProfileDirectoryName"? These
two are being used for the exact same thing - figuring out where
profiles are stored - yet they return different values for certain
controllers like GC keyboards! As far as I can tell, the existing code
has been broken for GC keyboards since they were introduced a decade
ago. The GUI (and more recently, also InputCycler) would write and read
profiles in one location, and our code for loading profiles specified in
a game INI file would read profiles in another location.

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

This commit also fixes a regression from d6c0f8e749. The Android GUI was
using GetProfileName to figure out what key to use in the game INI,
which made it use incorrect game INI entries for GameCube controller
profiles but not Wii Remote profiles. Now the Android GUI uses
GetProfileKey for this, fixing the problem.
2024-02-04 17:55:08 +01:00
81aca79145 GraphicsModListWidget: Pass optional by const reference
All we do is read from it, so we don't need to copy the string if we
happen to have one.
2024-01-31 12:09:35 -05:00
9a3e770c23 Migrate SConfig::bWii to System. 2024-01-31 12:54:07 +01:00
295d86c86f Merge pull request #12455 from PatrickFerry/qt_handle_overridden_graphics_backend
Qt: Handle Overridden Graphics Backend
2024-01-01 22:42:30 +01:00
6b166f1819 DolphinQt/Mapping: Add "Use Mouse Controlled Pointing" button. 2023-12-29 20:31:39 +01:00
1c68f4231b Qt: Handle Overridden Graphics Backend
This fixes an issue where the game specific graphics backend would be saved as the global setting after playing a game.

This also now displays the currently running graphics backend when looking in the graphics configuration window.
2023-12-28 17:28:08 +00:00
715a551dac Merge pull request #12170 from Filoppi/custom_aspect_ratio
Add support for custom aspect ratios
2023-12-18 05:19:06 +01:00
b3aa6ad93b Video: implement custom aspect ratio support (already exposed to Qt).
This also renamed some variables/functions.
2023-12-18 02:00:24 +02:00
24004af814 Video: polish aspect ratio related code comments to make it clearer 2023-12-18 00:28:14 +02:00
18f9b966a0 Merge pull request #12358 from rsgnz/master
VideoCommon: Fix "Post-processing shader not found" when (off) is selected.
2023-12-17 09:50:41 +00:00
36cb8110f4 Merge pull request #12346 from iwubcode/arb_mipmaps_default_off
Core: disable arbitrary mipmap detection by default
2023-12-16 16:23:10 +01:00
e883bbc57a ConfigFloatSlider: Resolve -Wshadow warning
Fairly straightforward variable shadowing.
2023-12-12 17:07:37 -05:00
b48af86148 Merge pull request #12390 from lioncash/string
GraphicsModListWidget: Add string specifier to By and Description fields
2023-12-11 23:47:53 +01:00
54301d709a Merge pull request #12389 from lioncash/cheeve
AchievementManager: Make GetInstance() and GetLock() return a reference
2023-12-11 23:37:29 +01:00