Commit Graph

785 Commits

Author SHA1 Message Date
german77 b5dac5f525 service: hid: Create abstracted pad structure 2024-01-11 19:35:04 -06:00
Liam aae9eea532 fsp-srv: use program registry for SetCurrentProcess 2024-01-11 11:28:52 -05:00
t895 d3ba6b334b android: Fix added driver path
While this didn't break anything, the extra separator was unnecessary
2024-01-10 23:14:04 -05:00
t895 dac8c4ce4d android: Add button to use global driver value 2024-01-10 23:14:04 -05:00
t895 9e974d4c7e android: Reload driver data on importing user data 2024-01-10 23:14:04 -05:00
t895 6bfc3c530c android: Rework driver fragment
Applies settings upon selection and uses a new Driver model to represent the information in-view. Also switches from an async diff list to a plain one.
2024-01-10 23:14:04 -05:00
t895 93239f191a android: Refactor DriverAdapter to use AbstractSingleSelectionList 2024-01-10 23:14:04 -05:00
t895 b17db2b462 android: Create generic single selection list adapter 2024-01-10 23:14:04 -05:00
t895 9130366a58 android: Refactor recycler view adapters to use AbstractListAdapter 2024-01-10 23:14:04 -05:00
t895 ad0066a6b6 android: Create generic list adapter for basic lists
Simplifies basic setup for lists
2024-01-10 23:14:04 -05:00
t895 78c323c4eb android: Refactor async diff adapters to use AbstractDiffAdapter 2024-01-10 23:14:04 -05:00
t895 51ad2d10de android: Create generic adapter and viewholder
Eliminates repeated code associated with every async differ list
2024-01-10 23:14:04 -05:00
flodavid 63b835f822 Save profile name used
- Save the profile name in global config
- Read the profile name when reading the global config
2024-01-08 18:43:56 +01:00
Charles Lombardo 1220309323
Merge pull request #12560 from GayPotatoEmma/master
android: add basic support for google game dashboard
2024-01-07 10:43:53 -05:00
liamwhite 87430acff1
Merge pull request #12576 from t895/total-save-manager
android: Re-add global save manager
2024-01-07 07:33:31 -05:00
Narr the Reg ee847f8ff0 hid_core: Move hid to it's own subproject 2024-01-05 11:41:15 -06:00
liamwhite a8f62bff43
Merge pull request #12575 from t895/inconsistent-settings-application
frontend_common: config: Only write setting related to opened config file
2024-01-04 15:51:24 -05:00
liamwhite 519904e8a8
Merge pull request #12571 from t895/apply-orientation-on-start
android: Expose more orientation options
2024-01-04 15:51:08 -05:00
t895 53d4dbacf0 android: Re-add global save manager
Reworked to correctly collect and import/export saves that could exist in either /nand/user/save/000...000/<user id> or /nand/user/save/account/<user id raw string>
2024-01-04 00:56:40 -05:00
t895 39d28a5131 android: Save global config synchronously in onCloseGameFoldersFragment
Could cause multiple global saves at once that went untracked previously
2024-01-03 22:50:21 -05:00
t895 1c278974a8 android: Don't save settings on config destruction
Android doesn't have a proper way of destroying its config object so it's best to stick to the built-in methods to control saving config
2024-01-03 22:12:15 -05:00
t895 2b838b6d06 android: Update orientation on emulation fragment start 2024-01-03 21:35:45 -05:00
t895 82ea082997 android: Expose all orientation locking options 2024-01-03 21:35:45 -05:00
Emma e5de3d5a77 android: add basic support for google game dashboard 2024-01-04 01:07:43 +01:00
t895 dace726d08 android: Add internal option to disable compression for zip exports
Disables compression for user data and save exports
2024-01-02 18:11:22 -05:00
liamwhite cec91c5fd6
Merge pull request #12551 from t895/dpad-save-fix
android: Fix dpad position saving
2024-01-02 10:44:26 -05:00
t895 3c78926d75 android: Use case-insensitive check for addon directory 2024-01-01 22:51:32 -05:00
t895 466cdeb8a0 android: Fix dpad position saving
Was using the wrong key previously
2024-01-01 22:48:10 -05:00
t895 aa4d15594f android: Expose touchscreen toggle 2023-12-30 15:11:36 -05:00
t895 278cafb76c android: Don't apply material you below android 12
Since you can manually change the config file now, users can force the material you theme under Android 12 and that will result in crashing on startup. This swaps to the default theme if that happens.
2023-12-30 15:11:36 -05:00
t895 d163b18208 android: Migrate in-game overlay settings to ini 2023-12-30 15:11:36 -05:00
t895 051afd21e7 frontend_common: config: Refactor WriteSetting to stricter types
Previously this could cause problems if a version of the template generated for WriteSetting didn't use the type you needed (e.g. floating point values). Now these are all ready without having to be used within frontend_common first.
2023-12-30 15:11:36 -05:00
t895 d3f38ce56c android: Migrate theme settings to ini 2023-12-30 15:11:35 -05:00
t895 b2b4742e61 android: Update Kotlin version to 1.9.20 2023-12-30 15:11:00 -05:00
t895 21e7f86697 android: Expose anisotropic filtering setting 2023-12-29 17:43:36 -05:00
t895 347b3bd18d android: Center switch setting title when no description is present 2023-12-29 17:28:01 -05:00
t895 755c45777f android: Pair fastmem toggle to CPU Debug toggle
Hides fastmem toggle when CPU Debugging is disabled
2023-12-29 17:27:36 -05:00
t895 d3070cafa7 android: Fix "No games found" text appearing on load 2023-12-21 00:49:22 -05:00
Liam 6ca530a721 android: add oboe to audio configuration 2023-12-17 11:44:49 -05:00
liamwhite 00965e6c34
Merge pull request #12335 from t895/per-game-settings
android: Game Properties
2023-12-16 13:57:54 -05:00
liamwhite 4f600f746a
Merge pull request #12237 from liamwhite/nce-sigtrap
nce: implement instruction emulation for misaligned memory accesses
2023-12-16 11:47:35 -05:00
t895 86d26914a2 android: Rework InstallableProperty view with icon 2023-12-12 17:25:37 -05:00
t895 6ae4177b25 android: Prevent editing non-savable settings in per-game settings 2023-12-12 17:25:37 -05:00
t895 f6bf8b3ed3 android: Pre-select custom config in game launch dialog 2023-12-12 17:25:37 -05:00
t895 345fb6b226 android: Use confirmation dialog when deleting shader cache 2023-12-12 17:25:37 -05:00
t895 87a9dc9489 android: Always use custom settings when launched from intent 2023-12-12 17:25:37 -05:00
t895 5acffe75df android: Adjust variable name format for native config 2023-12-12 17:25:37 -05:00
t895 ac222ceba2 android: Add game dir entries to FilesystemProvider
Allows us to correctly parse update metadata
2023-12-12 17:25:37 -05:00
t895 f9d4827102 android: Fix games list loading thread safety
Previously we relied on a stateflow for reloading state. Now we use an atomic boolean.
2023-12-12 17:25:37 -05:00
t895 7ea7c72dde android: Collect latest information for games list 2023-12-12 17:25:37 -05:00
t895 809230f634 android: Remove global save import/exporter UI
The original implementation exposed here was fundamentally broken where it would not export or import all of your saves depending on your user profile configuration
2023-12-12 17:25:37 -05:00
t895 698c854d5b android: Compare all properties between games in DiffCallback 2023-12-12 17:25:37 -05:00
t895 ca5b135ddf android: Expose MemoryUtil size formatting function 2023-12-12 17:25:37 -05:00
t895 dbddc627d4 android: Add JNI initialization information for Game class
Unused in this PR, but will be useful later
2023-12-12 17:25:37 -05:00
t895 f2eb3c579f android: Add per-game drivers 2023-12-12 17:25:37 -05:00
t895 2fce812026 android: Add per-game settings 2023-12-12 17:25:36 -05:00
t895 e975f3cde9 android: Add Game properties
This commit has the UI for viewing a game's properties on long-press and some links to useful tools like
- Game info
- Shortcut to settings (global in this commit)
- Addon manager with installer
- Save data manager
- Option to clear all save data
- Option to clear shader cache
2023-12-12 17:25:36 -05:00
t895 70c3d36536 android: Refactor settings to expose more options
In AbstractSetting, this removes the category, androidDefault, and valueAsString properties as they are no longer needed and have replacements. isSwitchable, global, and getValueAsString are all exposed and give better options for working with global/per-game settings.
2023-12-12 17:25:36 -05:00
Liam bd59934350 nce: implement instruction emulation for misaligned memory accesses 2023-12-10 18:23:42 -05:00
german77 a22a025c5b core: Use single instance of profile manager 2023-12-10 11:29:43 -06:00
t895 a53cd2854e android: Listen for directory selection in viewmodel
Fixes broken game directory selection setup flow
2023-12-08 22:02:04 -05:00
t895 08be9cff0f android: Don't reload filesystem on update install 2023-12-01 20:19:28 -05:00
liamwhite 57a391e71d
Merge pull request #12074 from GPUCode/yuwu-on-the-metal
Implement Native Code Execution (NCE)
2023-11-30 09:20:55 -05:00
liamwhite aded28f276
Merge pull request #12204 from t895/config-migration
android: Multi directory UI
2023-11-29 12:34:09 -05:00
t895 7dddf5cb3c android: Save global settings in onStop 2023-11-27 23:46:30 -05:00
t895 b8f66c9412 android: Multi directory UI 2023-11-27 23:46:29 -05:00
german77 de58618421 android: input: Flip abxy on backbone labs controllers 2023-11-25 18:22:03 -06:00
german77 b5bde8451c android: input: Flip abxy on redmagic controllers 2023-11-25 10:53:59 -06:00
GPUCode 9ff8d0f3e6 Address more review comments 2023-11-25 00:47:43 -05:00
Liam 20de0ddf1f android: show current backend in fps overlay 2023-11-25 00:47:36 -05:00
GPUCode 8fab363237 android: Add cpu bakend gui toggle 2023-11-25 00:47:28 -05:00
t895 e637ec0c38 android: Rework config lifecycle
Exposes options for initializing, unloading, reloading, and saving settings that let us update the config much more granularly based on what's happening in the UI.
2023-11-21 01:58:13 -05:00
t895 e744c06f61 android: Remove ini4j 2023-11-21 01:58:13 -05:00
t895 aa20311969 general: Remove inih 2023-11-21 01:58:13 -05:00
t895 da14c7b8e4 config: Unify config handling under frontend_common
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.

As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
2023-11-21 01:58:13 -05:00
liamwhite 00dcf69ce8
Merge pull request #12093 from t895/zip-intent
android: Use file picker intent for save exporter
2023-11-20 09:38:44 -05:00
liamwhite 1ea0890a36
Merge pull request #12092 from t895/recent-games-default
android: Select recently played games by default in search tab
2023-11-20 09:38:36 -05:00
t895 82a4a67f6b android: Use file picker intent for save exporter 2023-11-19 17:52:53 -05:00
t895 8e93a9a9ef android: Use path instead of programId for recently added / played key 2023-11-19 16:00:41 -05:00
t895 23c1f7c72f android: Select recently played games by default in search tab 2023-11-19 15:57:05 -05:00
t895 d3ed771f39 android: Allow up to 400% for the limit speed percent setting 2023-11-19 15:36:25 -05:00
t895 e2be180136 android: Disable PiP by default 2023-11-15 10:30:43 -05:00
liamwhite 24548b1f5c
Merge pull request #12034 from t895/fps-outline
android: Add drop shadow to FPS counter
2023-11-14 18:20:24 -05:00
t895 fcd54c6479 android: Don't enter PiP during startup or shutdown 2023-11-14 18:11:38 -05:00
t895 08296f151e android: Add drop shadow to FPS counter
Also let the style control the text size
2023-11-14 17:53:40 -05:00
t895 4d0b7f8496 android: Use suspend function for creating dynamic shortcuts
If the coil loader ever got stuck when creating a dynamic shortcut icon, the app would freeze. This would happen most notably when booting nca format games. This pushes that process to a separate coroutine that can be cancelled by the main activity's lifecycle.
2023-11-14 10:57:00 -05:00
liamwhite 0047d8a01e
Merge pull request #12014 from t895/shrink-logo
android: Shrink branding images
2023-11-13 09:12:16 -05:00
liamwhite efc0187537
Merge pull request #12015 from t895/remove-auto
android: Remove "auto" region option
2023-11-13 09:12:07 -05:00
t895 4aac971864 android: Use the same transition animation between every fragment in settings
The animation that I used for entering search was prone to weird visual bugs and could appear visually jarring. This just makes things appear more consistent.
2023-11-12 21:36:51 -05:00
t895 6c93cdffb1 android: Use more padding on top of each settings header 2023-11-12 21:36:51 -05:00
t895 470714e2d1 android: Remove dividers between each setting 2023-11-12 21:36:51 -05:00
t895 6b888b0fa8 android: Add icons and descriptions to the first-level advanced settings page
Additionally adjusts padding to place the icons in-line with the back button in the top app bar and makes the text for normal settings appear in-line with the expanded top app bar title.
2023-11-12 21:36:50 -05:00
t895 1a1393dad7 android: Remove general section from settings
Limit speed options were moved to system, cpu accuracy was moved to debug, and PiP was moved to graphics.
2023-11-12 19:08:57 -05:00
t895 55412962c0 android: Remove "auto" region option
This doesn't exist and if you clicked it, your region would be set to Taiwan.
2023-11-12 15:45:42 -05:00
t895 d920da2631 android: Add a landscape-specific layout to the about page
Moves the logo to the side to fit more information on screen
2023-11-12 13:56:42 -05:00
t895 ff72bf2cb2 android: Shrink logo in about page 2023-11-12 13:56:13 -05:00
t895 4efb9763d9 android: Shrink logo in settings tab
Adjusts padding between the cards and logo to fit appropriately
2023-11-12 13:55:20 -05:00
t895 c600bc8652 android: Fix top app bar tint being cut off in the about fragment
Adjust margin on the toolbar, not the app bar
2023-11-12 13:54:31 -05:00
t895 09f993899e android: Hide loading animation on first frame 2023-11-09 22:27:40 -05:00
liamwhite ca1dd1862b
Merge pull request #11972 from t895/fps-counter-adjustments
android: FPS counter adjustments
2023-11-06 11:09:59 -05:00
Charles Lombardo 5191465b0a android: Simplify FPS counter padding 2023-11-05 18:34:27 -05:00
Charles Lombardo 50c604f37f android: Color the FPS counter white 2023-11-05 18:29:00 -05:00
Charles Lombardo 9543adf072 android: Always update FPS counter 2023-11-04 00:04:20 -04:00
Charles Lombardo 036d2686af android: Don't reload log/system after loading firmware/backup 2023-11-03 22:49:31 -04:00
Charles Lombardo 0a83047368 android: Log more system information during startup
Logs device manufacturer/model, SoC manufacturer/model where available, and the total system memory
2023-11-03 15:52:01 -04:00
Charles Lombardo 9bb8ac7cb6 android: Fix fetching system memory size from MemoryUtil
We weren't rounding up the value at a unit before (GB, MB, etc) we were rounding up the total bytes and that would do nothing. This fixes that, and the check for total system memory during first emulation start where we tried to check the required system memory against 1 gigabyte.
2023-11-03 15:51:17 -04:00
Charles Lombardo b3a1f793c3 android: Update surface parameters on emulation start
This adds a quick update that notifies the render surface if there was a change between surface creation and emulation starting.
2023-11-03 13:31:06 -04:00
liamwhite 57c8dcfd77
Merge pull request #11942 from t895/log-version
android: Adjust log lifecycle
2023-11-01 15:45:53 -04:00
Charles Lombardo 398e881428 android: Adjust log lifecycle
Now logging will start when the frontend starts like qt does. This also adjusts the share log button to follow where we share the current log if we just returned from a game or return the old log if we haven't started a game yet.
2023-11-01 14:41:19 -04:00
Charles Lombardo 92418e909f android: Use yuzu logging system
Now anything that's logged in the frontend will be printed into the log file
2023-11-01 14:41:19 -04:00
Charles Lombardo 344162db75 android: Default to player number 0 if we get an input from an unrecognized controller 2023-11-01 13:10:51 -04:00
Charles Lombardo 5872c7d420 android: Adjust driver manager source string 2023-11-01 00:18:20 -04:00
Charles Lombardo 2b6edd3efd android: Reorganize settings tab 2023-11-01 00:17:38 -04:00
Charles Lombardo 97b4ca1d01 android: Auto-generate locale config 2023-10-31 22:07:44 -04:00
Charles Lombardo 1d7ff850d6 android: Update translations from transifex 2023-10-31 22:07:43 -04:00
liamwhite 7e284809de
Merge pull request #11931 from t895/applet-launcher
android: Applet launcher UI
2023-10-31 16:55:57 -04:00
Charles Lombardo 133788d0d4 android: Initialize filesystem components during application start 2023-10-31 14:41:40 -04:00
Charles Lombardo e8cb8b2668 android: Implement applet launcher 2023-10-31 14:41:40 -04:00
liamwhite ab3e3c11af
Merge pull request #11925 from t895/controller-fix
android: Fix controllers stuck on player 2
2023-10-31 09:47:42 -04:00
Charles Lombardo f7755df2af android: Reorder controller indexes and only use controllers
Before we could ignore controller inputs by forwarding them to player two if a non-controller was connected before and recognized as an input device.
2023-10-30 21:38:51 -04:00
liamwhite c60204e255
Merge pull request #11922 from t895/simplify-card-layout
android: Simplify game card layout
2023-10-30 15:32:45 -04:00
Charles Lombardo e867768316 android: Simplify game card layout
Using a material card view to shape the image was just a waste of a layout pass. A shapeable image view does what we want and does it faster.
2023-10-30 13:28:52 -04:00
Charles Lombardo f04bc172ae android: FileUtil: Add option to suppress log for native exists() calls
We often check for the existence of files that only exist in ExeFS so this can spam logcat with useless messages when scanning for games.
2023-10-30 11:38:10 -04:00
Charles Lombardo 585b6e9d46 android: Fix resolving android URIs in native code 2023-10-30 11:38:10 -04:00
Charles Lombardo a9e29a3972 android: Refactor game metadata collection to new file
This also removes irrelevant data and adds new information from/to the Game data class and RomMetadata struct
2023-10-30 11:38:09 -04:00
Charles Lombardo 1e61c3e1e7 android: Use header for EmulationSession 2023-10-30 11:28:23 -04:00
liamwhite 3e0da4f698
Merge pull request #11916 from t895/focus-fix
android: Release touch on input overlay when opening in-game menu
2023-10-30 09:59:53 -04:00
liamwhite 789c16305d
Merge pull request #11915 from t895/startup-freeze
android: Move game deserialization to another thread
2023-10-30 09:59:45 -04:00
Charles Lombardo 70be45c992 android: InputHandler: Convert to object
This doesn't need to be an instance of a class because it doesn't hold any data. It's just all helper functions.
2023-10-30 01:20:27 -04:00
Charles Lombardo 9b3c64f4a4 android: Removed unused ControllerMappingHelper 2023-10-30 01:20:27 -04:00
Charles Lombardo 2c1d850b46 android: Release touch on input overlay when opening in-game menu 2023-10-29 21:42:47 -04:00
Charles Lombardo 2581590023 android: Move game deserialization to another thread
Deserializing games from the cache in shared preferences was done on the main thread and could cause a stutter on startup.
2023-10-29 21:29:32 -04:00
Charles Lombardo a5aa5876b4 android: Break home settings into grid with large screens 2023-10-29 13:47:41 -04:00
Charles Lombardo 3e4edbe007
Merge pull request #11767 from t895/gradle-stuff
android: Update dependencies
2023-10-13 15:08:47 -04:00
Charles Lombardo 82c845dc2f android: Fix incorrect assumption for driver installation validation
The driver was assumed to be installed at this point before I made a refactor. Now we just check if the copy operation was successful and delete the file if it fails.
2023-10-13 13:50:38 -04:00
Charles Lombardo 9b961dddb4 android: Remove unnecessary flag to extract native libs in AndroidManifest.xml 2023-10-13 12:55:41 -04:00
Charles Lombardo 224b6036a4 android: Update dependencies
Updates to androidx navigation, lifecycle, preference, fragment, recyclerview, and core
2023-10-13 12:55:41 -04:00
Charles Lombardo 1591923f91 android: Update ndk to 26.1.10909125
The new ndk uses LLVM 17.0.2 so we can remove the LLVM download and libc++ options for the android builds
2023-10-13 12:55:41 -04:00
liamwhite c8602e1b1f
Merge pull request #11649 from t895/driver-manager
android: Driver manager
2023-10-13 09:28:53 -04:00
Charles Lombardo 8b64878258 android: Update AGP to 8.1.2 2023-10-12 18:59:57 -04:00
Charles Lombardo a5fb9de6fa android: Add GPU driver management fragment
Implements a GPU driver manager that saves all drivers to the user data directory and asynchronously installs drivers when they're needed.
2023-10-12 17:17:21 -04:00
Liam b32940d3ea vk_present_manager: recreate surface on any surface loss 2023-10-02 19:07:18 -04:00
Charles Lombardo 26f9d1f122 android: Use application context for all FileUtil functions 2023-10-01 15:56:02 -04:00
liamwhite 4487c165c8
Merge pull request #11604 from t895/only-install-nsp
Frontend: Remove ability to install xci files
2023-09-28 09:35:16 -04:00
Charles Lombardo 882859bc78
Merge pull request #11613 from t895/fragment-exception-change
android: Various play store fixes
2023-09-27 18:08:54 -04:00
Charles Lombardo 22284fc504 android: Prevent crash when trying to change pages in setup fragment
Sometimes when we want to change the current setup page, the current view isn't available and we try to alter the current view. This adds a guard to prevent that issue.
2023-09-27 13:40:09 -04:00
Charles Lombardo d70f18b87b android: Prevent setup fragment crash in background
Sometimes during onSaveInstanceState, the SetupFragment would crash the app in the background if we tried to store the state of a view.
2023-09-27 13:40:09 -04:00
Charles Lombardo ec388622ff android: Don't update views if binding is null in onConfigurationChanged 2023-09-27 13:40:09 -04:00
Charles Lombardo 6a425e95cb android: Don't wait for post to update input overlay visibility 2023-09-27 13:40:09 -04:00
Charles Lombardo 1fdfedc43e android: Close activity with toast if emulation has no game 2023-09-27 13:40:09 -04:00