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]}"; }