Commit Graph

660 Commits

Author SHA1 Message Date
Admiral H. Curtiss 617fcc3cf8
WiimoteEmu: Add user-accessible controls that report the desired state of the IR camera objects. 2024-03-11 22:49:19 +01:00
Filoppi 41b19e262f Add custom relative and raw (squared pixels) aspect ratio modes 2024-02-29 21:11:19 +02:00
Dentomologist 56ff19c513 BalloonTip: Rework BalloonTip drawing
* Fix irregularly shaped corners
* Remove extra space for BalloonTips with no message or no title
* When the target tip location is not on a screen, put the tooltip on
  the mouse's screen instead of the primary screen
* Fix description getting cut off when the title was too long
* Expose border width as a parameter
* Fix spacing and sizing issues with larger border widths
2024-02-17 12:36:19 -08:00
Admiral H. Curtiss e6ee217a7c
Core: Move Emulation IOS instance to System. 2024-02-07 22:07:30 +01:00
JosJuice 6cf55ab1ee InputCommon: Unify GetProfileName and GetProfileDirectoryName
After reading the previous commit, you might think "hold on, what's the
difference between GetProfileName and GetProfileDirectoryName"? These
two are being used for the exact same thing - figuring out where
profiles are stored - yet they return different values for certain
controllers like GC keyboards! As far as I can tell, the existing code
has been broken for GC keyboards since they were introduced a decade
ago. The GUI (and more recently, also InputCycler) would write and read
profiles in one location, and our code for loading profiles specified in
a game INI file would read profiles in another location.

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

This commit also fixes a regression from d6c0f8e749. The Android GUI was
using GetProfileName to figure out what key to use in the game INI,
which made it use incorrect game INI entries for GameCube controller
profiles but not Wii Remote profiles. Now the Android GUI uses
GetProfileKey for this, fixing the problem.
2024-02-04 17:55:08 +01:00
Lioncash 81aca79145 GraphicsModListWidget: Pass optional by const reference
All we do is read from it, so we don't need to copy the string if we
happen to have one.
2024-01-31 12:09:35 -05:00
Admiral H. Curtiss 9a3e770c23
Migrate SConfig::bWii to System. 2024-01-31 12:54:07 +01:00
Admiral H. Curtiss 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
luc-git 6b166f1819
DolphinQt/Mapping: Add "Use Mouse Controlled Pointing" button. 2023-12-29 20:31:39 +01:00
Patrick Ferry 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
Admiral H. Curtiss 715a551dac
Merge pull request #12170 from Filoppi/custom_aspect_ratio
Add support for custom aspect ratios
2023-12-18 05:19:06 +01:00
Filoppi 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
Filoppi 24004af814 Video: polish aspect ratio related code comments to make it clearer 2023-12-18 00:28:14 +02:00
Tilka 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
Admiral H. Curtiss 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
Lioncash e883bbc57a ConfigFloatSlider: Resolve -Wshadow warning
Fairly straightforward variable shadowing.
2023-12-12 17:07:37 -05:00
Admiral H. Curtiss 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
Admiral H. Curtiss 54301d709a
Merge pull request #12389 from lioncash/cheeve
AchievementManager: Make GetInstance() and GetLock() return a reference
2023-12-11 23:37:29 +01:00
Lioncash 9472da788d ConfigFloatSlider: Resolve -Wreorder warnings
Orders the initializer list the way that the members would actually be
initialized in.

Resolves some -Wreorder warnings
2023-12-11 16:15:48 -05:00
Lioncash 5d1514418e GraphicsModListWidget: Add string specifier to By and Description fields
Translators should always know where text is going to be appended and
have the ability to move things around to fit the language better.
2023-12-11 15:43:41 -05:00
Lioncash e55f9ed102 AchievementManager: Make GetInstance() return a reference
The internal static member will always have a valid lifetime. Makes this
consistent with other instance based objects in our code.
2023-12-11 13:36:39 -05:00
rsgnz 8c973188ef Fix "Post-processing shader not found" when (off) is selected. (2nd version) 2023-12-07 11:26:31 +01:00
LillyJadeKatrin 3aebbbb3e7 Disable cheats in hardcore mode
RetroAchievements does not allow cheats such as Action Replay or Gecko in hardcore mode, for fairness.
2023-12-02 16:41:17 -05:00
LillyJadeKatrin 0abfa94bc8 Disable Freelook in hardcore mode
The player getting a better view of their surroundings than the game would normally allow could possibly give the player an advantage over the original hardware, so Freelook is disabled in hardcore mode. To do this, I disable the config flag for Freelook when it is accessed, to make sure that it is disabled whether it was enabled before or after hardcore mode was enabled.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin 1a19a92943 Disable memory patches in hardcore mode
Memory patches would be an easy way to manipulate the memory needed to calculate achievement logic, so they must be disabled. Riivolution patches that do not affect memory are allowed, as they will be hashed with the game file.
2023-12-02 16:41:16 -05:00
LillyJadeKatrin 71f3039f96 Added Hardcore Warning Widget
This widget will be used in several places to notify the player that a feature has been disabled because hardcore mode is on. It includes a button to open the Achievement Settings so that Hardcore Mode may be turned off. Also included is the framework required to open AchievementsWindow specifically on the Settings tab.
2023-12-02 16:41:15 -05:00
iwubcode d57c1cbe6c Android / Core / DolphinQt: disable arbitrary mipmap detection by default, let the games that need it be enabled with a config option, there aren't many of them 2023-12-01 14:23:56 -06:00
Tilka c53e29c3c8
Merge pull request #11093 from Pokechu22/disable-graphics-settings
Disable graphics settings fields when incompatible settings are enabled
2023-11-27 12:54:02 +00:00
Filoppi a8fd938a06 Change paper white default to 203 to match the ITU 2023-11-14 20:21:34 +02:00
Tilka 166423ad61
Merge pull request #12273 from Dentomologist/dolphinqt_remove_unnecessary_qoverloads
DolphinQt: Remove unnecessary qOverloads
2023-11-12 19:43:05 +00:00
Admiral H. Curtiss 6d585b6eb6
DolphinQt/Settings: Split setting of the user style into two functions.
This makes it so that if you just want to reload the current style (eg. on program start, or in response to a system event), you don't need to know the name of the currently selected user style. It's also more consistent with the way the 'userstyle/enabled' flag works.
2023-11-05 12:58:11 +01:00
Dentomologist 43e69d3e6a DolphinQt: Remove unnecessary qOverloads
qOverload is used to disambiguate pointers to overloaded functions, but
most of the usages in the code base were with non-overloaded functions.
2023-11-04 14:14:14 -07:00
Admiral H. Curtiss 4b2dad074a
DolphinQt: Move GraphicsModListWidget::ClearLayoutRecursively() to QtUtils. 2023-10-15 18:39:05 +02:00
Admiral H. Curtiss 7b32530de6
Qt/EnhancementsWidget: Fix size of resolution dropdown. 2023-10-10 15:03:49 +02:00
Filoppi 8027c88e58 Video: add support for 12x resolution multiplier 2023-10-06 01:12:10 +03:00
Pokechu22 d0afe36269 Disable Arbitrary Mipmap Detection checkbox when GPU Texture Decoding is enabled
See https://bugs.dolphin-emu.org/issues/13049
2023-09-04 13:24:05 -07:00
Pokechu22 b969d89103 Disable Texture Filtering dropdown when Manual Texture Sampling is checked
See https://bugs.dolphin-emu.org/issues/13049
2023-09-04 13:24:03 -07:00
JosJuice e7c2133160 Fixes to translatable strings 2023-08-21 16:29:52 +02:00
Admiral H. Curtiss 3441fe6efc
Merge pull request #11999 from Filoppi/post_process_fixes
Video: implement output resampling (upscaling/downscaling) methods
2023-08-18 20:33:09 +02:00
JosJuice a9ec2a6e41
Merge pull request #12116 from AdmiralCurtiss/log-colors
DolphinQt/LogWidget: Restore log window colors.
2023-08-18 09:00:43 +02:00
Sam Belliveau 39d96a21a8 Video: Improved Tooltips & Bicubic (#5)
Edited by Filoppi
2023-08-18 02:00:56 +03:00
Sam Belliveau ca93a5191f Video: Added Box Resampling
Edited by Filoppi
2023-08-18 02:00:56 +03:00
Filoppi 2edf81cdb0 Video: implement output resampling (upscaling/downscaling) methods 2023-08-18 02:00:55 +03:00
Admiral H. Curtiss a9cba9be36
DolphinQt/LogWidget: Restore log window colors. 2023-08-16 19:55:18 +02:00
Admiral H. Curtiss 5635a0bdef
DolphinQt/EnhancementsWidget: Use custom tooltip for Color Correction button. 2023-08-13 22:46:46 +02:00
Admiral H. Curtiss e6c7f4e14b
DolphinQt: Add ToolTipPushButton. 2023-08-12 21:33:43 +02:00
Admiral H. Curtiss 24012cfc7f
DolphinQt: Adjust panel-specific colors and syntax highlighting for dark theme. 2023-08-12 19:43:12 +02:00
Admiral H. Curtiss e2fb8fab2f
DolphinQt: Set window decorations for all top-level QWidgets. 2023-08-12 16:54:54 +02:00
Martino Fontana 1e5e319783 Qt/GameConfigWidget: Add Manual Texture Sampling 2023-07-25 00:45:13 +02:00
Martino Fontana 41f81aca69 Qt/GameConfigWidget: Rename `m_enable_fast_disc` to `m_emulate_disc_speed` 2023-07-25 00:45:10 +02:00
Martino Fontana 0892998af1 Qt/GameConfigWidget: Add `reverse` argument for `{Save,Load}CheckBox`
In order to not hard code `if (key == "FastDiscSpeed")`
2023-07-24 20:48:32 +02:00
Admiral H. Curtiss fb2b3753b5
Merge pull request #12015 from nyanpasu64/gc-adapter-sleep-detach
Fix GC Adapter breaking and burning a full CPU core after sleep-wake on Linux
2023-07-22 03:38:45 +02:00
Mateus B. Cassiano d7e79683cc Qt: Color Correction window fixes 2023-07-16 16:48:08 -04:00
nyanpasu64 c8df26554b Fix GC adapter not being detected when you enable controller in settings
GCAdapter::UseAdapter() reads s_is_adapter_wanted, which gets
initialized by config_guard.~ConfigChangeCallbackGuard(). So we must
wait until after destroying the config guard to know whether we have any
controllers set to GC Adapter.
2023-07-05 20:38:22 -07:00
Admiral H. Curtiss 94f34260a6
Merge pull request #12001 from Filoppi/patch-21
Qt: Fix some Post Process Configuration Widget issues #3-4
2023-06-30 19:11:10 +02:00
Filippo Tarpini 28fafbeef2 Qt: Fix some Post Process Configuration Widget issues n3
1 ) When first opened, the (user selected) post process shader config widget would print the wrong values on the text label next to int range sliders. For example if the range was from 1 to 6, and the value loaded from the config was 1, the label would print 0 when first opened, to then start showing the correct value once the slider was first moved.

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

2 ) The defautl int slider value would also be set wrong on first load, as it was being divided by the slider max instead of the slider step amount (again, just like for the float implementation). This is a mistake I had made with my previous submission.
2023-06-29 14:13:38 +03:00
JosJuice 3384e02098 DolphinQt: Don't translate empty strings
Trying to translate an empty string will return a long metadata string
for the loaded translation file rather than the expected empty string.
2023-06-28 18:43:52 +02:00
Filoppi daddf4cd9c Qt: add color correction and HDR Qt settings widgets 2023-06-19 01:34:42 +03:00
Dentomologist 527f8e783c ControllerEmu: Convert Translatability to enum class 2023-06-12 18:11:04 -07:00
Filoppi 03ec86f248
Qt: Add float config tooltip slider 2023-06-09 22:07:12 +02:00
Pokechu22 ac48b2eea4 EnhancementsWidget: Handle gaps in AA mode list
Mesa (llvmpipe) only reports 4x MSAA, and doesn't report 2x (or 1x, but we implicitly add that). The old logic did not handle this correctly, causing selecting 4x to fail and fall back to None.

This also removes VideoUtils::GetAvailableAntialiasingModes, and thus VideoUtils entirely, as its only other function was removed in 1f74653501.
2023-06-08 22:07:41 -07:00
Pokechu22 c63f0f37cd VideoCommon: Pass WindowSystemInfo to InitBackendInfo 2023-06-08 22:07:39 -07:00
Filippo Tarpini 3f22e9849b
Qt: Fix some Post Process Configuration Widget issues 2
Same fix as https://github.com/dolphin-emu/dolphin/pull/11846 but applied to int sliders instead of float ones
2023-06-01 21:38:38 +02:00
Admiral H. Curtiss 4dc4b28db4
Merge pull request #11845 from jnaidu360/skylanders-portal-hotkey
Add hotkey to open Skylanders and Infinity Menus
2023-05-28 23:27:41 +02:00
jnaidu360 5eb1669573 Add Hotkeys for Skylanders Portal and Infinity Base Menus
Adds two new hotkeys to open the menus for emulated USB devices- Skylanders Portal of Power and the Infinity Base. (Hotkeys only active when game is running).

Portal menu: Default is <Ctrl+P>.
Infinity base: Default is <Ctrl+I>
2023-05-26 13:36:08 -07:00
Filoppi aeff66d373 Qt: Fix some Post Process Configuration Widget issues:
-The float sliders initial value wasn't calculated correctly
-Fix the checkbox dependencies not being applied until a setting was changed for the first time
2023-05-26 03:50:51 +03:00
Lioncash 21df3ca572 StringUtil: Move IsPrintableCharacter() into Common namespace 2023-05-16 14:17:54 -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
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
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
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
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
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
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
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 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
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 258cf0ff28 DolphinQt: assume QT_VERSION_CHECK >= 6.0.0 2023-04-25 10:39:05 -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
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 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
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
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
Lioncash 0f326c6067 Common: Move FixedSizeQueue into Common namespace
Gets this out of the global namespace.
2023-03-22 01:23:15 -04:00
Admiral H. Curtiss bf2f901a99
HW/SerialInterface: Refactor to class. 2023-03-12 16:08:56 +01:00
Dentomologist d18735e82e Qt/WiimoteControllersWidget: Add bluetooth unavailable message 2023-02-24 14:30:43 -08: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
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
Scott Mansell ccf92a3e56
Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13: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 0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
Pierre Bourdon 9c9310bf44
Merge pull request #11208 from TellowKrinkle/CPUCull
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
TellowKrinkle 7413be1487 VideoCommon: Add configuration option for CPUCull 2023-01-25 02:21:56 -06:00
Sam Belliveau 23ad07b368 Add VISkip 2023-01-14 01:56:37 -05:00