Commit Graph

2045 Commits

Author SHA1 Message Date
PabloG02
b24bf9eb91 Make TitleId check more robust 2023-05-02 13:39:07 +01:00
PabloG02
a634bca2d2 Initial implementation of save management 2023-05-02 13:39:07 +01:00
lynxnb
b7548e51cf Use AndroidX use extension function instead of Kotlin built-in one
The Kotlin built-in `use` extension function applies to `AutoCloseable` only, and throws an error if the object it's being called on is not an `AutoCloseable`. This causes `OnScreenView` to fail to inflate on SDK < 31 as it retrieved the current theme primary color with a `TypedArray`, which only implements `AutoCloseable` since SDK 31 (Android 12).
The AndroidX core library provides a `use` extension function that applies to `TypeArray` instead of `AutoCloseable` so the fix is just a simple import.
2023-05-02 12:27:57 +01:00
lynxnb
cce4b3f89a Add OSC recenter sticks option description 2023-05-02 12:27:57 +01:00
lynxnb
563c72afa9 Implement OSC customizable stick activation radius 2023-05-02 12:27:57 +01:00
lynxnb
d86b2ec3e9 Implement OSC stick regions
Stick regions extend the activation area of the sticks to rectangles covering the corresponding half of the screen.
E.g. for the left stick: when any point of the left side of the screen is touched, the stick is repositioned there, and acts as if it was centered in the touched position. When the finger is lifter, the stick is hidden.
2023-05-02 12:27:57 +01:00
lynxnb
32f995165c Use 1.0 as the default OSC button scale value
The default value was previously 1.15.
2023-05-02 12:27:57 +01:00
lynxnb
821cdb8d72 Draw a circle indicator on OSC buttons with toggle mode enabled 2023-05-02 12:27:57 +01:00
lynxnb
7cf45b11b0 Vibrate on OSC roll-over button presses too 2023-05-02 12:27:57 +01:00
lynxnb
655ca8f89b Ignore OSC roll-over events if the button is already pressed 2023-05-02 12:27:57 +01:00
lynxnb
560fcd9442 Implement toggle mode for OSC buttons
When toggle mode is enabled, the button will toggle between the `Pressed` and `Released` state when it's pressed.

Without toggle mode:
ACTION_DOWN -> Pressed
ACTION_UP -> Released
ACTION_DOWN -> Pressed
ACTION_UP -> Released

With toggle mode:
ACTION_DOWN -> Pressed
ACTION_UP -> No event
ACTION_DOWN -> No event
ACTION_UP -> Released
2023-05-02 12:27:57 +01:00
lynxnb
78252fbcbd Show current input values in OnScreenEditActivity
This was made primarily for debugging on-screen controls, but it might be useful to users too.
2023-05-02 12:27:57 +01:00
lynxnb
69fb15ffc9 Improve separation between OSCEditActivity and OSCView
The activity shouldn't access the edit button directly, but should only access data available through the public interface.
2023-05-02 12:27:57 +01:00
lynxnb
7e3d3bd281 Draw a box around disabled OSC buttons in edit mode
The box is also drawn if the alpha is configured too low (<5%).
2023-05-02 12:27:57 +01:00
lynxnb
659e090d38 Enable OSC per-button text and color selection 2023-05-02 12:27:57 +01:00
lynxnb
c7d213c3ea Make the OSC edit panel collapsible
The panel can now be closed to try out the buttons.
2023-05-02 12:27:57 +01:00
lynxnb
3f2fd7a653 Make some properties constant in OnScreenButton
They were initially made variable by mistake
2023-05-02 12:27:57 +01:00
lynxnb
37a2a2fbad Fix inconsistent OSC button movements when using the arrow buttons
A combination of factors caused inconsistent button movements when using the arrow buttons to move it, namely floating point approximation and the round down performed when snapping a button to the grid. Sometimes the layman solution is the best one: adding/subtracting one to the move amount depending on the direction ensures that the button always ends up on a grid line.
2023-05-02 12:27:57 +01:00
lynxnb
1d6b075d5c Draw a selection rectangle around the active button while editing 2023-05-02 12:27:57 +01:00
lynxnb
e91993698f Remove OSC EditMode enum
An enum isn't needed anymore, as there's no state to enumerate anymore.
2023-05-02 12:27:57 +01:00
lynxnb
2556b25ebf Fix OSC incorrect pressed alpha when low values are used
OSC would "light up" when the alpha value was low because of the value being coerced to an arbitrary range. Divide the alpha value by 3 instead.
2023-05-02 12:27:57 +01:00
lynxnb
d69c9f472f Make the OSC control panel draggable 2023-05-02 12:27:57 +01:00
lynxnb
d7e38e9556 Introduce a control panel to edit buttons instead of a fab bar
An unusual big commit, unfortunately needed because none of these changes would make sense nor work individual. A quick list of what have been done follows.
* Introduced a control panel to control buttons replacing the FAB bar
* `ConfigurableButton` and `OnScreenConfiguration` interfaces have been introduced to allow for easier proxying of actions when applying the same changes to all buttons
* Button resize logic has been stripped from the buttons in favor of the new sliders
* General cleanup and renaming of various methods to better reflect their functionality
2023-05-02 12:27:57 +01:00
lynxnb
49de8a8f38 Rework OSC action bar appearance
FABs are now placed on top of a sheet hanging from the top. Actions are now properly enumerated and don't rely on the icon resource ID anymore.
2023-05-02 12:27:57 +01:00
Abandoned Cart
fe4ccd1ee0 Suppress or resolve common warnings 2023-05-02 12:27:06 +01:00
Abandoned Cart
97694e639a Add a Parcelable helper to handle deprecation 2023-05-02 12:27:06 +01:00
Abandoned Cart
96c5b94429 Always resume emulator, even if running
Fixes skyline-emu/skyline#2305
2023-05-02 12:27:06 +01:00
lynxnb
24d4f5e3cd Improve the robustness of the ROMs auto-refresh feature 2023-04-27 19:14:14 +02:00
lynxnb
e6efaf26bc Don't scroll to the top of the game list on adapter changes 2023-04-27 00:31:14 +02:00
lynxnb
caa15f729f Revert setting the app category to game
It was causing unbelievable slow cold app boot times on some devices (e.g. Pixel 6), for no apparent reason.
2023-04-27 00:31:14 +02:00
Dima
bdf73aa20d Fix GetSharedFontInOrderOfPriority
return fonts array size instead of loaded state
2023-04-25 10:20:50 +01:00
Pablo González
8c2b39858d
Add xml for the shader compilation screen (#2255)
* Add xml for the shader compilation screen
* Change ConstraintLayout for LinearLayout and adapt style to MD3
* Change some aspects of the progress indicator and the source of text color
2023-04-23 21:43:48 +02:00
Abandoned Cart
178dbea801 Use the searching text to specify load state 2023-04-22 19:54:04 +01:00
Abandoned Cart
30aee55122 Suppress AppItem serialVersionUID warning 2023-04-22 19:54:04 +01:00
Abandoned Cart
56fd79ff46 Remove the DataItem wrapper on AppItem 2023-04-22 19:54:04 +01:00
Abandoned Cart
c8e0f71bb7 Remove RomFormat as an AppEntry key
There may be a time and place where knowing the format is necessary, but it is not in the list of games being presented to the end-user
2023-04-22 19:54:04 +01:00
Abandoned Cart
fe46213beb Remove "Group Games By Format" option 2023-04-22 19:54:04 +01:00
Abandoned Cart
0b453ca4ed Simplify placeholder for empty items 2023-04-22 19:54:04 +01:00
Abandoned Cart
b82452f8f8 Remove HeaderItem as a DataItem type 2023-04-22 19:54:04 +01:00
Dima
1841727c56 Remove header rom filter 2023-04-22 19:54:04 +01:00
Billy Laws
d3d36c6fa0 Update hades 2023-04-16 16:31:42 +01:00
Billy Laws
6a57fd16fb Don't bail out when invalid desc types are encountered
This caused graphical artifacts and didn't particularly help prevent crashes.
2023-04-16 16:31:42 +01:00
Billy Laws
34611ba180 Optimise waiter queue push 2023-04-16 16:31:42 +01:00
Billy Laws
e63108bff1 Mark app as being a game 2023-04-16 16:31:42 +01:00
Billy Laws
9caa845d4f Avoid using interconnect for texture data copies
Since the interonnect copies aren't visible or tracked by texture manager, this could cause the texture manager to effectively miss the upload.
2023-04-16 16:31:42 +01:00
Billy Laws
4192873744 Fix TLS writes from X2/3
These mistakenly used the wrong source register.
2023-04-16 16:31:42 +01:00
Billy Laws
5bcc79ef80 Ensure SVC trampoline is always correctly sized
Despite the trampoline size being hardcoded, it was previously dynamic and could change based off of the value stored in the target register potentially leading to instructions being missed.
2023-04-16 16:31:42 +01:00
Billy Laws
e0c487f607 Fix system register state handling
We failed to preserve NCSZ, and and we stored instead of loaded FPCR when returning to guest.
2023-04-16 16:31:42 +01:00
Billy Laws
77ca290a78 Silence counter reset warnings
Some games reset all counters at the start of a frame.
2023-04-16 16:31:42 +01:00
Billy Laws
7d0b7f0b71 Handle OOB blits by adding to the texture base offset
The previous method would cause OOB reads for the last row to clamp, and adding an extra row would potentially encounter unmapped memory. So use this technique based on how Ryu does it.
2023-04-16 16:31:42 +01:00