Commit Graph

34015 Commits

Author SHA1 Message Date
LC 26c097ebfc
Merge pull request #8867 from iwubcode/freelook_controller
Make Free Look a proper controller, move to separate UI
2020-12-24 15:10:17 -05:00
iwubcode c7b24d6213 VideoCommon: Update active config when we check for config changes, this ensures Free Look settings are copied at the start of the frame. Also update the camera's controller type at this time 2020-12-24 13:51:46 -06:00
iwubcode a893c25b01 Core: Refresh the Free Look configuration when Free Look is initialized, ensuring that the configuration updates appropriately with any changes 2020-12-24 13:49:25 -06:00
iwubcode b4c41adac4 Core: Only respond to Free Look controller buttons when the camera is active 2020-12-24 13:49:25 -06:00
iwubcode b9d9b27a81 DolphinQt: Only trigger Free Look mouse movement when the Free Look camera is active 2020-12-24 13:49:25 -06:00
iwubcode bcf63c463b VideoCommon: Add 'Active' state to FreelookCamera to future proof if we ever add multiple cameras 2020-12-24 13:49:25 -06:00
iwubcode a37fd8c5d9 VideoCommon: Update Free Look camera with settings change... 2020-12-24 13:49:25 -06:00
iwubcode 670f34af60 Core: Update state to account for save system change 2020-12-24 13:49:25 -06:00
iwubcode 9bd4e0939e DolphinQt: Update mapping window device to use expanding size policy 2020-12-24 13:49:25 -06:00
iwubcode 9a744ab25b DolphinQt: Move Free Look out of Graphics/Hotkey and into its own configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads 2020-12-24 13:49:25 -06:00
iwubcode 9ac6090c9a Core: Add Free Look controllers that are initialized at boot 2020-12-24 13:49:25 -06:00
iwubcode 27acba620c Core: Add new Free Look settings and config 2020-12-24 13:49:25 -06:00
iwubcode f6ab9a9b6f Core / VideoCommon: Remove old Free Look config 2020-12-24 13:49:25 -06:00
iwubcode e7ac095ba1 HotkeyManager: Remove Free Look functionality in preparation for replacement 2020-12-24 13:48:38 -06:00
iwubcode d5bc209eb6 VideoCommon: Change 'Zoom' to 'MoveForward' since it really isn't a zoom 2020-12-24 13:48:38 -06:00
iwubcode cb6ae6a4b1 VideoCommon: Add speed to Free Look camera 2020-12-24 13:48:38 -06:00
LC d61c64684b
Merge pull request #9357 from JosJuice/android-one-settings-entrypoint
Android: Only have one settings entrypoint per activity/dialog
2020-12-24 12:46:43 -05:00
LC 464bc80482
Merge pull request #9356 from JosJuice/android-save-ingame-change
Android: Correctly save in-game settings changes to disk
2020-12-24 12:45:09 -05:00
JosJuice 8c723d0584 Android: Only have one settings entrypoint per activity/dialog
Basically, instead of having one button for config, one button
for graphics settings and so on, we now have just one settings
button which takes you to a screen where you pick between
config/graphics/GameCube controllers/Wii Remotes.

The main reason I want to do this is because people still have
trouble finding Overlay Controls in the "new" in-game menu.
Typically (depending on the screen size and the length of the
game name), the scrollable part of the menu can fit 4 items,
and merging Config and Graphics Settings into one item would
move Overlay Controls from 5th place to 4th place (assuming the
user doesn't have savestates enabled), which makes it findable
even for users who don't realize the menu can be scrolled.

The dialog that's shown when long pressing a game in the game
list is also shortened. While not a pressing matter, I think
it was getting a bit long.

An additional reason to do this is because we probably will
want to make it possible to edit the controller settings
from the in-game menu at some point in the future. With the
old approach, this would require us to dedicate a whopping 4
menu items just for settings (not including Overlay Controls),
which I think is excessive.
2020-12-24 16:48:20 +01:00
JosJuice 8f475371b9 JitArm64: Call UpdatePerformanceMonitor 2020-12-24 16:23:24 +01:00
JosJuice 6f05c40013 Android: Correctly save in-game settings changes to disk 2020-12-24 13:37:33 +01:00
JosJuice 8c0f32e6be Interpreter: Call UpdatePerformanceMonitor 2020-12-23 17:34:47 +01:00
JosJuice 2dcd0b248f CachedInterpreter: Call UpdatePerformanceMonitor 2020-12-23 17:34:32 +01:00
JosJuice f8f3548ca9 CoreTiming: Call UpdatePerformanceMonitor on idle 2020-12-23 17:34:02 +01:00
Markus Wick 1d489b3fd5
Merge pull request #9347 from JosJuice/fpr-utilization
Jit64: Fix FPURegCache::GetRegUtilization
2020-12-21 18:37:03 +01:00
JosJuice 9460467e7c Jit64: Fix FPURegCache::GetRegUtilization
This performance bug was probably a simple copy-paste error.
(The function was identical to GPRRegCache::GetRegUtilization.)
2020-12-21 18:02:43 +01:00
Sintendo 567357e12d JitArm64: srawix - Fix undefined behavior
Signed bitwise left shift invokes UB when shifting a negative value.
2020-12-21 11:05:22 +01:00
Sintendo 97eb616719 JitArm64: srawx - Fix undefined behavior
Signed bitwise left shift invokes UB when shifting a negative value.
2020-12-21 11:01:42 +01:00
LC 4c8ccc63b5
Merge pull request #9345 from MerryMage/analytics
Analytics: Add rarer OSes to analytics
2020-12-20 18:55:34 -05:00
LC 7c81f0256c
Merge pull request #9344 from MerryMage/HW_PHYSMEM64
MemoryUtil: Use HW_PHYSMEM64 sysctl in MemPhysical
2020-12-20 18:53:46 -05:00
MerryMage d109451ad5 Analytics: Add rarer OSes to analytics 2020-12-20 22:32:07 +00:00
MerryMage 29fceeb37f MemoryUtil: Use HW_PHYSMEM64 sysctl in MemPhysical
HW_PHYSMEM is deprecated on OpenBSD and only supplies a 32-bit value on NetBSD
2020-12-20 22:25:36 +00:00
JosJuice c582fb098d
Merge pull request #9342 from lioncash/system
Core: Add initial System class
2020-12-20 13:57:15 +01:00
JosJuice 399ede37a6 Android: Catch all exceptions in ContentHandler 2020-12-20 13:24:54 +01:00
JosJuice ae8de35105 Android: Use storage access framework for game list 2020-12-20 13:24:54 +01:00
JosJuice 2126f62111 Android: Add content provider support to File::ScanDirectoryTree 2020-12-20 13:24:54 +01:00
JosJuice 525268f043 Android: Fix opening games with extensionless URI 2020-12-20 13:24:54 +01:00
JosJuice e60665da94 Android: Use storage access framework for picking single games 2020-12-20 13:24:54 +01:00
JosJuice a7c05d7e84 Android: Add content provider support to File::FileInfo 2020-12-20 13:24:54 +01:00
JosJuice 99ffee9a0a Android: Add content provider support to File::OpenFStream 2020-12-20 13:24:54 +01:00
Ryan Meredith 64afe97491 Android: Convert ISOPaths to INI settings 2020-12-20 13:24:54 +01:00
Lioncash 142406f337 Core: Add initial System class
Introduces the system class that will eventually contain all relevant
system state, as opposed to everything being distributed all over the
place as global variables.

Throughout the codebase we have code that from its interface-view, does
not actually require its dependencies to be described in the interface,
and we routinely run into issues with initialization where we sometimes
make use of a facility before it's been initialized, which leads to
annoying to debug cases, because the reader needs to run through the
codebase and see what order things get initialized in, and how they're
being used. This is particularly a frequent issue in the video code.

Further, we also have a lot of code that makes use of file-scope
variables (many of which are non-trivial), which must all be default
initialized before the application can actually enter main(). While this
may not be a huge issue in itself, some of these are allocating, which
means that the application may need to use memory that it otherwise
wouldn't need to (e.g. when a game isn't running, this excess memory is
being used).

Being able to wrap all these subsystems into objects would be nicer,
since they can be constructed when they're actually needed. Them being
objects also means we can better express dependencies on subsystems as
types directly in the interface, making them explicit to the reader
instead of a change randomly blowing up, said reader inspecting it, and finding
out that something needed to be initialized beforehand. With the global
turned into a function parameter, the dependency is explicit and they
know just by reading it, that the given subsystem needs to be in a valid
state before calling the function.

For a prior example of an emulator that has moved to this model, see
yuzu, which has been migrated off of global variables all over the place
and replaced with a system instance (which has now reached the stage,
where the singleton can be removed).
2020-12-19 23:22:06 -05:00
LC 5493a86086
Merge pull request #9330 from leoetlino/tapserver-define
EXI_Device: Always define EXIDEVICE_ETHTAPSERVER for consistency
2020-12-19 21:46:01 -05:00
LC 0315ca5e37
Merge pull request #9332 from leoetlino/warning-fixes
Core: Fix various warnings
2020-12-19 21:45:21 -05:00
LC 2097de603c
Merge pull request #9339 from AdmiralCurtiss/utf8-libpng
Common: Write PNGs in two steps to allow Unicode target paths.
2020-12-19 21:43:05 -05:00
LC 331738c882
Merge pull request #9337 from Avasam/game-settings-pitfall-the-lost-expedition-the-big-adventure
GameSettings: Set Safe Texture Cache to Safe for Pitfall: The Lost Ex…
2020-12-19 21:31:51 -05:00
LC c08fab6f82
Merge pull request #9340 from AdmiralCurtiss/truncated-shadercache
Common/LinearDiskCache: Handle truncated shadercache files.
2020-12-19 21:30:40 -05:00
Admiral H. Curtiss 5bbd5fce2f Common: Write PNGs in two steps to allow Unicode target paths. 2020-12-20 03:30:17 +01:00
Admiral H. Curtiss f5170dc69b Common/LinearDiskCache: Handle truncated shadercache files. 2020-12-19 19:09:33 +01:00
Admiral H. Curtiss e91a347a07 Common/LinearDiskCache: Use unique_ptr instead of new/delete. 2020-12-19 19:09:33 +01:00