Commit Graph

2064 Commits

Author SHA1 Message Date
TheASVigilante
5f88077406 Add a few comments to the Memory manager 2023-05-05 21:02:16 +02:00
TheASVigilante
242e39dc4d Move SvcMap/UnmapMemory inside the memory manager 2023-05-05 19:07:01 +02:00
TheASVigilante
850f616dc7 General memman fixups & address review 2023-05-05 18:16:17 +02:00
TheASVigilante
1513e5f6df Implement svcSetMemoryPermission
Used by Minecraft legends, this should allow it to proceed further.
2023-05-05 18:16:17 +02:00
TheASVigilante
93fd0b2536 Implement KTransferMemory correctly 2023-05-05 18:16:16 +02:00
TheASVigilante
dac180d7c1 Restructure the memory manager
Changes and improves the accuracy of various features of the memory manager. Reduces stuttering in certain games.
2023-05-05 18:16:16 +02:00
PabloG02
35fb874a42 Address remaining feedback 2023-05-02 13:39:07 +01:00
PabloG02
6e68786bd8 Address some feedback
Replace 0-9 with \d
Change zip import to use cache dir
Move export and import logic to their own functions
Delete zip after being shared
2023-05-02 13:39:07 +01:00
PabloG02
a6c2699395 Use constants instead of 0666 2023-05-02 13:39:07 +01:00
PabloG02
e7cf7c9dae Change name of zip to {name} (v{version}) [{titleId}] - {saveTime} 2023-05-02 13:39:07 +01:00
PabloG02
dae5469a61 Fix regex 2023-05-02 13:39:07 +01:00
PabloG02
f85ecc23be Change file creation permissions to 0666 2023-05-02 13:39:07 +01:00
PabloG02
71a0033f5b Use the title of the game as the name of the zip.
This zip will have the structure gameTitle.zip/titleId/...
2023-05-02 13:39:07 +01:00
PabloG02
3dbd47082d Make import and export buttons have text 2023-05-02 13:39:07 +01:00
PabloG02
9bcbb3af47 Extract strings 2023-05-02 13:39:07 +01:00
PabloG02
dc36f3d76a Clean layout 2023-05-02 13:39:07 +01:00
PabloG02
5c4973e141 Use coroutines 2023-05-02 13:39:07 +01:00
PabloG02
c57d572936 Show dialog before deleting save 2023-05-02 13:39:07 +01:00
PabloG02
92c6eecfc8 Delete zip after exporting 2023-05-02 13:39:07 +01:00
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