Commit graph

1577 commits

Author SHA1 Message Date
Daniel Mendez
b72e60a47f
Update src/citra_qt/configuration/configure_storage.h
Co-authored-by: Ben <bene_thomas@web.de>
2021-04-18 12:57:14 +02:00
Daniel Méndez
95529a8b1d citra-qt: Added configure storage to handle NAND and SDMC dir location 2021-04-18 00:13:21 +02:00
Daniel Mendez
d21b8fb1b1 config: better variable naming
Co-authored-by: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
2021-04-17 23:49:18 +02:00
Daniel Méndez
7f20d8bb88 config: Added nand_directory and sdmc_directory to Settings
Added settings to the ini
2021-04-17 23:49:02 +02:00
Daniel Méndez
3be52f818a file_util: Add a function to update the user path
Added a default value when sdmc and nand are empty
2021-04-17 23:48:30 +02:00
Daniel Méndez
49c0766b73 settings: Save and load NAND/SD dirs from config 2021-04-08 00:20:52 +02:00
Vitor K
39680264b4
citra_qt/configure_input: use pre-increment instead of post-increment
Co-authored-by: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
2021-04-06 19:02:02 -03:00
Vitor Kiguchi
3cc559f865 clang format 2021-04-05 19:52:27 -03:00
Vitor Kiguchi
0e2edbb0d2 Account for analog buttons when checking for used buttons
circle mod and analog_from_buttons weren't being accounted for.
2021-04-05 19:38:54 -03:00
Pengfei Zhu
8e3c7674d8
Merge pull request #5644 from liushuyu/master
bootmanager: fix memory leaks when loading save states
2021-03-06 16:23:24 +08:00
Pengfei Zhu
e770fd6e95
Merge pull request #5707 from vitor-k/mod-scale
configure_input: fix modifier scale saving
2021-02-08 13:14:19 +08:00
zhupengfei
b2531310b4
Minor improvements to the UX
1. Game will now be paused on movie finish
2. Added 'Save without Closing'
2021-02-08 11:25:38 +08:00
zhupengfei
f8eb9a541d
citra_qt: Fix potential indeterminstism caused by starting record/playback
Previously the movie was started *after* core starts running, causing potential indeterminism.

Some desyncs are still not fixed; they may be caused by core timing. More investigation is required.
2021-02-08 11:25:38 +08:00
zhupengfei
e60e20666e
citra_qt: Allow enabling frame advance before emulation start
Effectively allows starting emulation as paused.
2021-02-08 11:25:37 +08:00
zhupengfei
d6b64f6b09
citra_qt: Simplify movie recording code
The behavior shouldn't be changed.
2021-02-08 11:25:36 +08:00
zhupengfei
1780f8b5b8
core/movie: Add MovieFinished mode
Also mentioned in Laws of TAS.
2021-02-08 11:25:35 +08:00
zhupengfei
fb14bd956a
citra_qt: Add indicator in status bar
Since we do not have an overlay yet, it can be confusing whether movie is being recorded or played. This makes it clear.

Status messages (e.g. system archive missing) will be overriden, but that shouldn't be too important when recording movies.

Doubled the status bar updating frequency to provide a better experience. It now updates every second.
2021-02-08 11:25:32 +08:00
zhupengfei
113e0c7331
citra_qt: Rebuilt movie frontend
This is completely rebuilt, in order to allow setting author, displaying movie metadata, and toggling read-only mode.

The UX is changed to more closely match other emulators' behaviour. Now you can only record/play from start/reset (In the future, we might want to introduce 'record from savestate')

Also fixed a critical bug where movie file can be corrupted when ending the recording while game is still running.
2021-02-08 11:25:31 +08:00
liushuyu
8290423d16
bootmanager: fix memory leaks when loading save states 2021-02-07 15:18:57 -07:00
Vitor Kiguchi
611b186a97 configure_input: set modifier_scale undonditionally when restoring default 2021-02-04 14:19:41 -03:00
Marshall Mohror
e2adb51494
Merge pull request #5693 from FearlessTobi/port-5342
Port yuzu-emu/yuzu#5342: "yuzu: Migrate off of setMargin() to setContentsMargins()"
2021-02-04 10:50:32 -06:00
Marshall Mohror
2461f67a98
Merge pull request #5671 from FearlessTobi/port-5217
Port yuzu-emu/yuzu#5217: "citra_qt/main: Save settings when starting guest"
2021-02-03 10:22:38 -06:00
Vitor Kiguchi
75f9c2cc13 configure_input: fix modifier scale saving 2021-01-31 00:15:00 -03:00
FearlessTobi
aeba818634 citra_qt: Migrate off of setMargin() to setContentsMargins()
setMargin() has been deprecated since Qt 5, and replaced with
setContentsMargins(). We can move over to setContentsMargins() to stay
forward-compatible with Qt 6.0.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2021-01-17 02:48:52 +01:00
Lioncash
10f440cb59 common/telemetry: Migrate namespace into the Common namespace
Migrates the Telemetry namespace into the Common namespace to make the
code consistent with the rest of our common code.
2021-01-04 05:17:13 +01:00
FearlessTobi
ddb4135dea main/common: Log/append AVX/FMA to the Host CPU string if available and add AVX512 detection
Co-Authored-By: Morph <morph1984@users.noreply.github.com>
2021-01-04 04:25:03 +01:00
FearlessTobi
251b265777 citra_qt/main: Save settings when starting guest
Saves UISettings and Settings when booting a guest. Moves updating
UISettings::values from GMainWindow::closeEvent into its own function,
then reuses it in GMainWindow::BootGame.

Co-Authored-By: lat9nq <22451773+lat9nq@users.noreply.github.com>
2021-01-03 05:28:52 +01:00
FearlessTobi
1653ebaa45 general: Fix various spelling errors
Co-Authored-By: Morph <39850852+Morph1984@users.noreply.github.com>
2021-01-03 02:39:41 +01:00
Vitor K
ce16653cc8
Automatic Controller Binding (#5100)
* Implement the basics of controller auto mapping. From testing doesn't currenlty work.
Opening the controller requires the device index, but it is only known and guaranteed
at boot time or when a controller is connected.

* Use the SDL_INIT_GAMECONTROLLER flag to initialize the controller
subsystem. It automatically initializes the joystick subsystem too,
so SDL_INIT_JOYSTICK is not needed.

* Implement the SDLGameController class to handle open game controllers.
Based on the SDLJoystick implementation.

* Address review comments

* Changes SDLJoystick and SDLGameController to use a custom default
constructible destructor, to improve readability. The only deleters
used previously were SDL_JoystickClose and SDL_GameControllerClose,
respectively, plus null lambdas. Given that both SDL functions
accept null pointers with just an early return, this should be
functionally the same.
with just an early return

* warn the user when a controller mapping is not found

* Get axis direction and threshold from SDL_ExtendedGameControllerBind

* Reject analog bind if it's not axis, for the couple of examples present in SDL2.0.10's db.
Also add SDL_CONTROLLER_BINDTYPE_NONE for the button bind switch, with a better log message.

* sdl_impl.cpp: Log the error returned by SDL_GetError upon failure to open joystick

* sdl: only use extended binding on SDL2.0.6 and up

* sdl_impl.cpp: minor changes
2021-01-01 10:01:07 +01:00
Pengfei Zhu
6f2bbbcced
Merge pull request #5658 from FearlessTobi/cheat-window-flags
citra_qt/cheats: Make window resizable and remove help hint
2021-01-01 10:03:15 +08:00
FearlessTobi
54a95e9c58 citra_qt/cheats: Make window resizable and remove help hint
Fixes https://github.com/citra-emu/citra/issues/5575.
2020-12-28 17:01:30 +01:00
Lioncash
fdf0825369 game_list_p: Resolve deprecated usage of QVariant operator<
This is designated as obsolete in Qt's docs (see:
https://doc.qt.io/qt-5/qvariant-obsolete.html#operator-lt)
2020-12-19 18:48:38 +01:00
Tobias
702af87f0d
Port yuzu-emu/yuzu#4700: "game_list: Eliminate redundant argument copies" (#5571)
* game_list: Eliminate redundant argument copies

Several functions can be taken by const reference to avoid copies

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>

* game_list: Make game list function naming consistent

Makes the naming consistent with the rest of the functions that are
present.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>

Co-authored-by: Lioncash <mathew1800@gmail.com>
Co-authored-by: LC <712067+lioncash@users.noreply.github.com>
2020-12-07 16:05:13 +01:00
Vitor Kiguchi
7e19ed1309 Rename profiler parameter names
Rename the parameter names of the overriden methods to match
the qt names.
2020-12-06 16:03:25 -03:00
Vitor Kiguchi
db0383fe0e Use maybe_unused instead of Q_UNUSED 2020-12-06 16:03:24 -03:00
Vitor Kiguchi
62a69e0547 fix clang format 2020-12-06 16:01:59 -03:00
Vitor Kiguchi
8e54e7cf1a fix some conversion warnings 2020-12-06 16:01:59 -03:00
Vitor Kiguchi
3381a05f7c unreachable code 2020-12-06 16:01:58 -03:00
Vitor Kiguchi
e4285d574a Fix nihstro include style to conform to the style used in other instances. 2020-12-06 16:01:58 -03:00
Vitor Kiguchi
ecb2541a93 Solve some unreferenced parameter warnings
(C4100: unreferenced formal parameter)
2020-12-06 16:01:58 -03:00
Vitor Kiguchi
d87fee05a9 Resolve some variable hiding warnings
(C4456: variable hides previous local declaration)
2020-12-06 15:59:13 -03:00
Vitor Kiguchi
2696add2fd remove unnecessary headers 2020-12-06 15:59:13 -03:00
Vitor Kiguchi
e68aeedc3d resolve warnings of deprecated Qt members 2020-12-06 15:59:13 -03:00
Vitor K
2f5eec3576
Fixes to "hide mouse on inactivity" (#5476)
The feature wasn't working when the "single window mode" was off.
Changed the cursor setting to only affect the render_window and
moved to a signal/slot model to show the mouse.
2020-12-05 22:12:17 +01:00
Marshall Mohror
a89261d397
Merge pull request #5580 from oneup03/master
Implement Reverse Interlaced 3D
2020-11-16 16:53:05 -06:00
Pengfei Zhu
de3d7cf49f
kernel/thread: Change owner_process to std::weak_ptr (#5325)
* kernel/thread: Change owner_process to std::weak_ptr

Previously this leaked almost all kernel objects. In short, Threads own Processes which own HandleTables which own maps of Objects which include Threads.

Changing this to weak_ptr at least got the camera interfaces to destruct properly. Did not really check the other objects though, and I think there are probably more leaks.

* hle/kernel: Lock certain objects while deserializing

When deserializing other kernel objects, these objects (`MemoryRegion`s and `VMManager`s) can possibly get modified. To avoid inconsistent state caused by destructor side-effects, we may as well simply lock them until loading is fully completed.

* Fix silly typo

Somehow this didn't break?!
2020-11-15 12:59:45 +01:00
tywald
2e0ce86c9e
Band-aid solution for 'Disk Shader Cache' (#5188)
* Enable 'Accurate Multiplication' by default.

* Move 'Disk Shader Cache' to the 'Advanced' tab

* Prevent enabling 'Disk Shader Cache' when 'Enable Hardware Shader' or 'Accurate Multiplication' is disabled.

* Do not load 'Disk Shader Cache' when 'Accurate Multiplication' is disabled.

* Add a tooltip for 'Disk Shader Cache'.
2020-11-06 10:07:59 -08:00
OneUp03
a4f57e6910 Implement Reverse Interlaced 3D 2020-10-16 11:41:08 -05:00
FearlessTobi
e12ee55faa qt/game_list: Give GameListSearchField::KeyReleaseEater a parent
This fixes a memory leak as KeyReleaseEater's destructor was never
called.

Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2020-10-04 05:14:49 +02:00
Vitor K
a26b466ac8
Use unique_ptr on all ui objects from .ui files (#5511)
* Forward declare ui and use unique_ptr

* ConfigureEnhancements: use unique_ptr for ui

* Use make_unique instead of new where applicable

* Move some of the ui includes that already used unique_ptr

* main.cpp: also make use of make_unique on Config

* Address review comments
2020-10-01 09:23:01 +08:00
FearlessTobi
84c42bf581 game_list_p: Mark some constants as constexpr
Consistency change with how we mark constants in the rest of the
codebase.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2020-09-09 17:06:15 +02:00
Tobias
316a64961c
Port yuzu-emu/yuzu#4605: "bootmanager: Prevent unnecessary copies in TouchUpdateEvent()" (#5539)
The list of points is returned by const reference, so we don't need to
make a copy of every element in the list.

Co-authored-by: Lioncash <mathew1800@gmail.com>
2020-09-05 06:09:31 +02:00
Pengfei Zhu
6a77547bde
Minor frontend fixes to savestates (#5430) 2020-09-03 00:04:23 +02:00
Pengfei Zhu
2f01046f77
Merge pull request #5504 from xperia64/savestate_locale_fix
Don't translate save/load state hotkey text for the map
2020-09-01 22:42:17 +08:00
Pengfei Zhu
a39e0ea3b1
Merge pull request #5516 from encounter/qdropevent-fix
Avoid incorrect casts to QDropEvent
2020-09-01 22:27:37 +08:00
Tobias
f4be733355
citra_qt: Backport review comments from the yuzu translation PR (#5465) 2020-08-31 21:13:24 +02:00
Tobias
f6b543886c
Port yuzu-emu/yuzu#4528: "common: Make use of [[nodiscard]] where applicable" (#5535)
Co-authored-by: LC <712067+lioncash@users.noreply.github.com>
2020-08-31 21:06:16 +02:00
Marshall Mohror
e48110bdf4
Merge pull request #5512 from vitor-k/untangle-includes
Forward declare some classes and remove some unnecessary includes
2020-08-29 22:02:25 -05:00
Marshall Mohror
88c0288cb1
Merge pull request #5521 from xperia64/fix_hotkey_ordering
Fix hotkey ordering
2020-08-28 13:53:40 -05:00
Marshall Mohror
69f4aacccf
Merge pull request #5531 from FearlessTobi/port-4536
Port yuzu-emu/yuzu#4536: "yuzu: Resolve -Wextra-semi warnings"
2020-08-28 13:29:22 -05:00
Lioncash
1e2e9e555a yuzu: Make use of qOverload where applicable
Eliminates a verbose function cast.
2020-08-28 16:55:55 +02:00
Lioncash
8d6927dc4c yuzu: Resolve -Wextra-semi warnings
While we're in the same area, we can ensure GameDir member variables are
always initialized to consistent values.
2020-08-28 16:43:17 +02:00
xperia64
9a6fb16c06 Hotkeys were carelessly added out of alphabetical order, and notably broke in the 'Restore Hotkeys' PR 2020-08-23 15:16:38 -04:00
xperia64
07d2daf2f9 Fix order 2020-08-21 21:47:57 -04:00
Vitor Kiguchi
08e4614817 interface.h: forward declare resolution 2020-08-20 01:30:13 -03:00
Vitor Kiguchi
683fb833f2 camera_util.cpp: remove unnecessary includes 2020-08-20 01:30:13 -03:00
Vitor Kiguchi
7bcfff4e71 clang format 2020-08-19 01:45:57 -03:00
Vitor Kiguchi
a6efc7c1ee Separate the enums from cam/cam.h
The settings.h file doesn't actually need all of the definitions
on cam.h, only some of the enums. They can, therefore, be separated
into another file, which is included by settings.h instead.
The other changes are fixing files that included settings.h and
depended on indirect includes from includes of includes of cam.h
2020-08-19 01:45:57 -03:00
Luke Street
21d7c4faa8 Avoid incorrect casts to QDropEvent 2020-08-18 23:24:06 -04:00
Vitor Kiguchi
9d99755d4f configure_camera: forward declare CameraInterface 2020-08-17 21:07:38 -03:00
Vitor Kiguchi
9c2986de41 profiler: remove unnecessary includes 2020-08-17 18:31:58 -03:00
Vitor Kiguchi
9394724902 main: forward declare QLabel 2020-08-17 18:17:42 -03:00
xperia64
1d5d278f8d Don't translate hotkey text 2020-08-10 23:06:22 -04:00
David Marcec
7c578b0579 frontend: Improve wait tree readability for dark themes 2020-07-19 14:41:50 +02:00
FearlessTobi
88edf9d62c cmake: stop linking against QGL
Co-Authored-By: Jan Beich <jbeich@users.noreply.github.com>
2020-07-11 19:06:31 +02:00
Tobias
96fa75fb93
discord_impl: Update the client ID (#5449)
THis should hopefully fix Rich Presence for CItra.
2020-07-08 23:45:54 +02:00
Kaiwen Xu
265b0aa444 Fix framebuffer size on fractional scaling display. 2020-06-28 20:34:37 +02:00
SutandoTsukai181
485d64ae73
citra-qt: Add an "Alternative Speed Limit" with its hotkey (#5281)
* Change "Toggle Speed Limit" to toggle between 100% and a custom value

This will change the shortcut for "Toggle Speed Limit" to make it swap between 100% and the value of "Limit Speed Percent" in the config. Old functionality is still there, but renamed to "Unthrottle".

* Complete reimplementation of the function

* Fix something that didn't get saved correctly

* Fix missing indentation

* Rewrite to keep only a single QSpinBox

* Second rewrite

* set Unthrottled to 0 in the Qspinbox

* Hotkey for Unthrottle

* minor improvements to the design

* Apply suggestions from code review

Co-authored-by: Ben <bene_thomas@web.de>

* Default slider values

* clang-format fixes

* Prevent the speed slider from changing size

...when an element in its row has variable width.

* Change "Game Speed" to "Emulation Speed"

* Apply suggestions from code review

`game_speed` to` emulation_speed`

Co-authored-by: Valentin Vanelslande <vvanelslandedev@gmail.com>

* Fix for QSliders

* Revert "Prevent the speed slider from changing size"

This reverts commit ddaca2004484f1e024f49d2e6dc99ef5e261f64d.

* clang-format

...doesn't seem to stick to a choice

* Fix 2 for QSliders

Co-authored-by: B3n30 <benediktthomas@gmail.com>
Co-authored-by: Ben <bene_thomas@web.de>
Co-authored-by: Valentin Vanelslande <vvanelslandedev@gmail.com>
2020-06-20 13:52:14 -05:00
Dragios
3090f840a8
Fix: fatal error CVT1100 when compiling manifest file (#5322) 2020-06-20 13:50:33 -05:00
Marshall Mohror
8a080146c9
Merge pull request #5344 from vitor-k/fix-folder-order
game_list: Fix folder reordering
2020-06-20 13:23:44 -05:00
LC
8ce81b19be
General: Remove usages of ARRAY_SIZE where applicable. (#5392)
Same behavior, but without our own boilerplate function.
2020-06-19 09:10:45 -05:00
Pengfei Zhu
e6ad0d390e
Merge pull request #5381 from zhaowenlan1779/swkbd-another-fix
applets/swkbd: Properly handle button_text
2020-06-08 22:04:49 +08:00
xperia64
76253063a3
Merge pull request #5376 from xperia64/save_default_controls
Actually save the input when clearing/resetting to default
2020-05-31 16:27:55 -04:00
Pengfei Zhu
81a1e5680f
Merge pull request #5163 from z87/input-touch-mapping
input: allow mapping buttons to touchscreen
2020-05-31 22:23:02 +08:00
zhupengfei
46e8c38395
Use attribute instead of comment 2020-05-31 10:47:46 +08:00
zhupengfei
190a053987
applets/swkbd: Properly handle button_text
I'm not sure why we decided to have a boolean here, but apparently that wasn't the correct behaviour. According to HW tests, the Software Keyboard simply displays the default text when the button text provided is empty (**not necessarily all zero**). For example, if you set a text for one of the buttons and leave others empty, the button you set will have your text, while others will have their default texts. Removed the boolean and updated frontend code to make it correct.
2020-05-31 09:41:30 +08:00
xperia64
8d19e144cb Actually save the input when clearing/resetting to default 2020-05-28 20:03:29 -04:00
SutandoTsukai181
9ed6762c59 Use fixed indices for button order
Apps always return 3 strings, even if there is no custom text, so the index should be constant for each button.
2020-05-24 21:45:23 +03:00
Tobias
63c86f2417
Port yuzu-emu/yuzu#3268: "GUI: Deadzone controls for sdl engine at configuration input" (#5174)
* GUI: Deadzone controls for sdl engine at configuration input

Co-Authored-By: CJ Bok <cjbok@users.noreply.github.com>

* configure_input: Use slider to edit modifier scale

Co-Authored-By: Kewlan <kewlan@users.noreply.github.com>

* Address minor review comment

Co-Authored-By: Kewlan <kewlan@users.noreply.github.com>

Co-authored-by: CJ Bok <cjbok@users.noreply.github.com>
Co-authored-by: Kewlan <kewlan@users.noreply.github.com>
2020-05-13 18:26:05 +02:00
z87
26a6f64418 address review comments 2020-05-11 17:05:05 +03:00
Vitor Kiguchi
01b9302a28 game_list: cleanup and clang format in AddPermDirPopup 2020-05-10 13:45:43 -03:00
Vitor Kiguchi
fbf24e3ca4 game_list: fix folder reordering 2020-05-09 23:44:41 -03:00
Vitor Kiguchi
950c032837 change gameListDir to hold an index instead of a raw pointer 2020-05-09 23:36:40 -03:00
Ben
007fb63e47
Merge pull request #5230 from B3n30/circumvent_apple_intel_hw_shader_issue
Add flag to disable seperable shaders for osx Intel GPUs.
2020-05-09 12:34:21 +02:00
z87
09cba69b48 citra_qt: improve touchscreen mapping UI 2020-05-08 20:04:05 +03:00
z87
41facaece3 input_common: add TouchFromButtonDevice 2020-05-04 13:51:37 +03:00
Vitor K
36809b2e2e
Small fixes to "Option to hide mouse on inactivity" (#5280)
* Menubar: fix mouse tracking bug

* citra_qt: Fix copy/paste error
2020-05-04 12:33:02 +02:00
Mat M
30414eeb4b
service/cfg: Make GenerateConsoleUniqueId() return a pair (#5321)
Same behavior, but allows the use of structured bindings.
2020-05-04 12:21:43 +02:00
B3n30
ed48f8accf clang-format fix 2020-05-04 12:14:40 +02:00
Pengfei Zhu
60669a7dd8
swkbd: Fix a bug where clicking Cancel hangs the game (#5294)
* swkbd: Fix a bug where clicking Cancel hangs the game

The text is validated in `Finalize`. If the validation fails, an error is returned and the applet is not actually finalized. This can result in hangs.

This is usually not a problem as the frontend is expected to validate the text passed to `Finalize`. However, when the user clicked on `Cancel`, the text is ignored and the frontend won't do any validation. Therefore, we should skip the validation here as well.

Also fixed a potential data race. All these functions should now be called on the same thread

* Address review comments

Renamed the fields
Remove close button
2020-05-04 11:31:17 +02:00