diff --git a/.gitignore b/.gitignore
index 8357033e6..0c46c50c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,8 @@ build/
[Oo]bj/
AppDir/
publish_appimage/
+publish_ava/
+publish_tmp_ava/
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
!packages/*/build/
diff --git a/distribution/macos/Assets.car b/distribution/macos/Assets.car
new file mode 100644
index 000000000..d0121ede0
Binary files /dev/null and b/distribution/macos/Assets.car differ
diff --git a/distribution/macos/Info.plist b/distribution/macos/Info.plist
index 7f7fe0dd4..a2d8a96f8 100644
--- a/distribution/macos/Info.plist
+++ b/distribution/macos/Info.plist
@@ -10,6 +10,8 @@
Ryujinx
CFBundleIconFile
Ryujinx.icns
+ CFBundleIconName
+ Ryujinx
CFBundleDocumentTypes
@@ -40,7 +42,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 1.2
+ 1.3
CFBundleSignature
????
CFBundleVersion
diff --git a/distribution/macos/create_app_bundle.sh b/distribution/macos/create_app_bundle.sh
index 0b4ab8e04..b90848334 100755
--- a/distribution/macos/create_app_bundle.sh
+++ b/distribution/macos/create_app_bundle.sh
@@ -25,6 +25,7 @@ cp "$PUBLISH_DIRECTORY"/*.dylib "$APP_BUNDLE_DIRECTORY/Contents/Frameworks"
cp Info.plist "$APP_BUNDLE_DIRECTORY/Contents"
cp Ryujinx.icns "$APP_BUNDLE_DIRECTORY/Contents/Resources/Ryujinx.icns"
cp updater.sh "$APP_BUNDLE_DIRECTORY/Contents/Resources/updater.sh"
+cp Assets.car "$APP_BUNDLE_DIRECTORY/Contents/Resources/Assets.car"
cp -r "$PUBLISH_DIRECTORY/THIRDPARTY.md" "$APP_BUNDLE_DIRECTORY/Contents/Resources"
echo -n "APPL????" > "$APP_BUNDLE_DIRECTORY/Contents/PkgInfo"
diff --git a/src/Ryujinx.Input.SDL3/SDL3Gamepad.cs b/src/Ryujinx.Input.SDL3/SDL3Gamepad.cs
index 707fdb909..2b006147d 100644
--- a/src/Ryujinx.Input.SDL3/SDL3Gamepad.cs
+++ b/src/Ryujinx.Input.SDL3/SDL3Gamepad.cs
@@ -22,7 +22,7 @@ namespace Ryujinx.Input.SDL3
private StandardControllerInputConfig _configuration;
- private static readonly SDL_GamepadButton[] _buttonsDriverMapping =
+ private readonly SDL_GamepadButton[] _buttonsDriverMapping =
[
// Unbound, ignored.
SDL_GamepadButton.SDL_GAMEPAD_BUTTON_INVALID,
@@ -88,6 +88,20 @@ namespace Ryujinx.Input.SDL3
Features = GetFeaturesFlag();
_triggerThreshold = 0.0f;
+ // Face button mapping
+ SDL_GamepadButton[] faceButtons = _buttonsDriverMapping[1..5];
+ foreach (SDL_GamepadButton btn in faceButtons) {
+ int mapId = SDL_GetGamepadButtonLabel(_gamepadHandle, btn) switch {
+ SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_A or SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_CROSS => 1,
+ SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_B or SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_CIRCLE => 2,
+ SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_X or SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_SQUARE => 3,
+ SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_Y or SDL_GamepadButtonLabel.SDL_GAMEPAD_BUTTON_LABEL_TRIANGLE => 4,
+ _ => -1
+ };
+ if (mapId == -1) { continue; }
+ _buttonsDriverMapping[mapId] = btn;
+ }
+
// Enable motion tracking
if ((Features & GamepadFeaturesFlag.Motion) != 0)
{
diff --git a/src/Ryujinx.Input.SDL3/SDL3GamepadDriver.cs b/src/Ryujinx.Input.SDL3/SDL3GamepadDriver.cs
index 0eb64cfab..b1100384f 100644
--- a/src/Ryujinx.Input.SDL3/SDL3GamepadDriver.cs
+++ b/src/Ryujinx.Input.SDL3/SDL3GamepadDriver.cs
@@ -65,7 +65,7 @@ namespace Ryujinx.Input.SDL3
string strGuid = new(guidBytes);
- return $"{strGuid[0..8]}-{strGuid[8..12]}-{strGuid[12..16]}-{strGuid[16..20]}-{strGuid[20..32]}";
+ return $"{strGuid[4..6]}{strGuid[6..8]}{strGuid[2..4]}{strGuid[0..2]}-{strGuid[10..12]}{strGuid[8..10]}-{strGuid[12..16]}-{strGuid[16..20]}-{strGuid[20..32]}";
}