diff --git a/Directory.Packages.props b/Directory.Packages.props
index 40275763b..2c85de9ae 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -35,7 +35,7 @@
-
+
@@ -51,4 +51,4 @@
-
+
\ No newline at end of file
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml b/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml
index ed17d5b5c..f06d650a3 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/AndroidManifest.xml
@@ -5,6 +5,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/BorealisHandler.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/BorealisHandler.java
deleted file mode 100644
index e3c324199..000000000
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/BorealisHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.libsdl.app;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Message;
-import android.util.Log;
-import android.view.Window;
-import android.view.WindowManager;
-
-public class BorealisHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case 0:
- Window window = ((Activity)msg.obj).getWindow();
- WindowManager.LayoutParams lp = window.getAttributes();
- lp.screenBrightness = msg.arg1 / 255.0f;
- if (lp.screenBrightness < 0.04) lp.screenBrightness = 0.04f;
- window.setAttributes(lp);
- break;
- }
- }
-}
\ No newline at end of file
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
index 5310d6016..21a1c1d18 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
@@ -277,6 +277,7 @@ public class HIDDeviceManager {
0x044f, // Thrustmaster
0x045e, // Microsoft
0x0738, // Mad Catz
+ 0x0b05, // ASUS
0x0e6f, // PDP
0x0f0d, // Hori
0x10f5, // Turtle Beach
@@ -285,6 +286,7 @@ public class HIDDeviceManager {
0x24c6, // PowerA
0x2dc8, // 8BitDo
0x2e24, // Hyperkin
+ 0x3537, // GameSir
};
if (usbInterface.getId() == 0 &&
@@ -358,6 +360,12 @@ public class HIDDeviceManager {
private void initializeBluetooth() {
Log.d(TAG, "Initializing Bluetooth");
+ if (Build.VERSION.SDK_INT >= 31 /* Android 12 */ &&
+ mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH_CONNECT, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) {
+ Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH_CONNECT");
+ return;
+ }
+
if (Build.VERSION.SDK_INT <= 30 /* Android 11.0 (R) */ &&
mContext.getPackageManager().checkPermission(android.Manifest.permission.BLUETOOTH, mContext.getPackageName()) != PackageManager.PERMISSION_GRANTED) {
Log.d(TAG, "Couldn't initialize Bluetooth, missing android.permission.BLUETOOTH");
@@ -583,7 +591,13 @@ public class HIDDeviceManager {
} else {
flags = 0;
}
- mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
+ if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) {
+ Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION);
+ intent.setPackage(mContext.getPackageName());
+ mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags));
+ } else {
+ mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
+ }
} catch (Exception e) {
Log.v(TAG, "Couldn't request permission for USB device " + usbDevice);
HIDDeviceOpenResult(deviceID, false);
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/PlatformUtils.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/PlatformUtils.java
deleted file mode 100644
index 67bc56f09..000000000
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/PlatformUtils.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package org.libsdl.app;
-
-import android.app.Activity;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.net.Network;
-import android.net.NetworkCapabilities;
-import android.net.NetworkInfo;
-import android.net.Uri;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-import android.os.BatteryManager;
-import android.os.Message;
-import android.provider.Settings;
-import android.view.Window;
-import android.view.WindowManager;
-
-public class PlatformUtils {
- public static boolean isBatterySupported() {
- Context context = SDLActivity.getContext();
- Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
- return batteryIntent != null;
- }
-
- public static int getBatteryLevel() {
- Context context = SDLActivity.getContext();
-
- Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
- if (batteryIntent == null) {
- return 0;
- }
- int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
- int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
-
- if (level >= 0 && scale > 0) {
- return (level * 100) / scale;
- }
-
- return 0;
- }
-
- public static boolean isBatteryCharging() {
- Context context = SDLActivity.getContext();
-
- IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
- Intent batteryStatus = context.registerReceiver(null, filter);
-
- int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
- return status == BatteryManager.BATTERY_STATUS_CHARGING ||
- status == BatteryManager.BATTERY_STATUS_FULL;
- }
-
- public static boolean isEthernetConnected() {
- Context context = SDLActivity.getContext();
-
- ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- Network[] networks = connectivityManager.getAllNetworks();
- for (Network network : networks) {
- NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
- if (capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
- return true;
- }
- }
- return false;
- }
-
- public static boolean isWifiSupported() {
- Context context = SDLActivity.getContext();
-
- WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
- return wifiManager != null && wifiManager.isWifiEnabled();
- }
-
- public static boolean isWifiConnected() {
- Context context = SDLActivity.getContext();
-
- ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
- return wifiInfo != null && wifiInfo.isConnected();
- }
-
- public static int getWifiSignalStrength() {
- Context context = SDLActivity.getContext();
-
- WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
- WifiInfo wifiInfo = wifiManager.getConnectionInfo();
- return wifiInfo.getRssi();
- }
-
- public static void openBrowser(String url) {
- Context context = SDLActivity.getContext();
-
- Uri webpage = Uri.parse(url);
- Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
- if (intent.resolveActivity(context.getPackageManager()) != null) {
- context.startActivity(intent);
- }
- }
-
- public static float getSystemScreenBrightness(Context context) {
- ContentResolver contentResolver = context.getContentResolver();
- return Settings.System.getInt(contentResolver,
- Settings.System.SCREEN_BRIGHTNESS, 125) * 1.0f / 255.0f;
- }
-
- public static BorealisHandler borealisHandler = null;
-
- public static void setAppScreenBrightness(Activity activity, float value) {
- Message message = Message.obtain();
- message.obj = activity;
- message.arg1 = (int)(value * 255);
- message.what = 0;
- if(borealisHandler != null) borealisHandler.sendMessage(message);
- }
-
- public static float getAppScreenBrightness(Activity activity) {
- Window window = activity.getWindow();
- WindowManager.LayoutParams lp = window.getAttributes();
- if (lp.screenBrightness < 0) return getSystemScreenBrightness(activity);
- return lp.screenBrightness;
- }
-}
\ No newline at end of file
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDL.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDL.java
index 44c21c1c7..139be9d15 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDL.java
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDL.java
@@ -38,6 +38,10 @@ public class SDL {
}
public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
+ loadLibrary(libraryName, mContext);
+ }
+
+ public static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
if (libraryName == null) {
throw new NullPointerException("No library name provided.");
@@ -53,10 +57,10 @@ public class SDL {
// To use ReLinker, just add it as a dependency. For more information, see
// https://github.com/KeepSafe/ReLinker for ReLinker's repository.
//
- Class> relinkClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
- Class> relinkListenerClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
- Class> contextClass = mContext.getClassLoader().loadClass("android.content.Context");
- Class> stringClass = mContext.getClassLoader().loadClass("java.lang.String");
+ Class> relinkClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
+ Class> relinkListenerClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
+ Class> contextClass = context.getClassLoader().loadClass("android.content.Context");
+ Class> stringClass = context.getClassLoader().loadClass("java.lang.String");
// Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if
// they've changed during updates.
@@ -66,7 +70,7 @@ public class SDL {
// Actually load the library!
Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass);
- loadMethod.invoke(relinkInstance, mContext, libraryName, null, null);
+ loadMethod.invoke(relinkInstance, context, libraryName, null, null);
}
catch (final Throwable e) {
// Fall back
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java
index bfadc26df..31164f80f 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLActivity.java
@@ -91,7 +91,7 @@ public class SDLActivity extends AppCompatActivity implements View.OnSystemUiVis
| InputDevice.SOURCE_CLASS_POSITION
| InputDevice.SOURCE_CLASS_TRACKBALL);
- if (s2 != 0) cls += "Some_Unkown";
+ if (s2 != 0) cls += "Some_Unknown";
s2 = s_copy & InputDevice.SOURCE_ANY; // keep source only, no class;
@@ -165,7 +165,7 @@ public class SDLActivity extends AppCompatActivity implements View.OnSystemUiVis
if (s == FLAG_TAINTED) src += " FLAG_TAINTED";
s2 &= ~FLAG_TAINTED;
- if (s2 != 0) src += " Some_Unkown";
+ if (s2 != 0) src += " Some_Unknown";
Log.v(TAG, prefix + "int=" + s_copy + " CLASS={" + cls + " } source(s):" + src);
}
@@ -276,14 +276,14 @@ public class SDLActivity extends AppCompatActivity implements View.OnSystemUiVis
// "SDL2_mixer",
// "SDL2_net",
// "SDL2_ttf",
- "main"
+// "main"
};
}
// Load the .so
public void loadLibraries() {
for (String lib : getLibraries()) {
- SDL.loadLibrary(lib);
+ SDL.loadLibrary(lib, this);
}
}
@@ -997,8 +997,8 @@ public class SDLActivity extends AppCompatActivity implements View.OnSystemUiVis
/* No valid hint, nothing is explicitly allowed */
if (!is_portrait_allowed && !is_landscape_allowed) {
if (resizable) {
- /* All orientations are allowed */
- req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
+ /* All orientations are allowed, respecting user orientation lock setting */
+ req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
} else {
/* Fixed window and nothing specified. Get orientation from w/h of created window */
req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
@@ -1007,8 +1007,8 @@ public class SDLActivity extends AppCompatActivity implements View.OnSystemUiVis
/* At least one orientation is allowed */
if (resizable) {
if (is_portrait_allowed && is_landscape_allowed) {
- /* hint allows both landscape and portrait, promote to full sensor */
- req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
+ /* hint allows both landscape and portrait, promote to full user */
+ req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
} else {
/* Use the only one allowed "orientation" */
req = (is_landscape_allowed ? orientation_landscape : orientation_portrait);
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLControllerManager.java b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLControllerManager.java
index d6913f157..9d8b20b7b 100644
--- a/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLControllerManager.java
+++ b/src/MeloNX-Skip/melonx-native/Android/app/src/main/java/org/libsdl/app/SDLControllerManager.java
@@ -546,13 +546,15 @@ class SDLHapticHandler {
if (haptic == null) {
InputDevice device = InputDevice.getDevice(deviceIds[i]);
Vibrator vib = device.getVibrator();
- if (vib.hasVibrator()) {
- haptic = new SDLHaptic();
- haptic.device_id = deviceIds[i];
- haptic.name = device.getName();
- haptic.vib = vib;
- mHaptics.add(haptic);
- SDLControllerManager.nativeAddHaptic(haptic.device_id, haptic.name);
+ if (vib != null) {
+ if (vib.hasVibrator()) {
+ haptic = new SDLHaptic();
+ haptic.device_id = deviceIds[i];
+ haptic.name = device.getName();
+ haptic.vib = vib;
+ mHaptics.add(haptic);
+ SDLControllerManager.nativeAddHaptic(haptic.device_id, haptic.name);
+ }
}
}
}
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so
index 6f790fbc7..dbeab145e 100644
Binary files a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so and b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libRyujinx.Headless.SDL2.so differ
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so1
similarity index 100%
rename from src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so
rename to src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libmain.so1
diff --git a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so
index a8648ea67..e236a9803 100755
Binary files a/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so and b/src/MeloNX-Skip/melonx-native/Android/app/src/main/jniLibs/arm64-v8a/libsdl2.so differ
diff --git a/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift b/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift
index 7342bcbe2..66430609f 100644
--- a/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift
+++ b/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/Ryujinx.swift
@@ -139,12 +139,12 @@ private extension Ryujinx {
args.append(config.gamepath)
// Starts with vulkan
- args.append("--graphics-backend")
- args.append("Vulkan")
+// args.append("--graphics-backend")
+// args.append("Vulkan")
args.append(contentsOf: ["--memory-manager-mode", config.memoryManagerMode])
- // args.append(contentsOf: ["--exclusive-fullscreen", String(true)])
+ args.append(contentsOf: ["--exclusive-fullscreen", String(true)])
// args.append(contentsOf: ["--exclusive-fullscreen-width", "\(Int(UIScreen.main.bounds.width))"])
// args.append(contentsOf: ["--exclusive-fullscreen-height", "\(Int(UIScreen.main.bounds.height))"])
// We don't need this. Ryujinx should handle it fine :3
diff --git a/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/SDLLib.swift b/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/SDLLib.swift
index 2ecacdf69..1503e6142 100644
--- a/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/SDLLib.swift
+++ b/src/MeloNX-Skip/melonx-native/Sources/MeloNXModel/SDLLib.swift
@@ -35,8 +35,16 @@ extension SDLLib {
let SdlInitFlags: uint = SDL_INIT_EVENTS | SDL_INIT_GAMECONTROLLER | SDL_INIT_JOYSTICK | SDL_INIT_AUDIO | SDL_INIT_VIDEO
let sym_SDL_Init = dlsym(handle, "SDL_Init")
- typealias SDL_Init = @convention(c) (uint) -> ()
+ typealias SDL_Init = @convention(c) (uint) -> (Int32)
let f_SDL_Init = unsafeBitCast(sym_SDL_Init, to: SDL_Init.self)
- f_SDL_Init(SdlInitFlags)
+ let result = f_SDL_Init(SdlInitFlags)
+ logger.info("SDL_Init result: \(result)")
+
+// void SDL_LogSetAllPriority(SDL_LogPriority priority);
+
+ let sym_SDL_LogSetAllPriority = dlsym(handle, "SDL_LogSetAllPriority")
+ typealias SDL_LogSetAllPriority = @convention(c) (Int32) -> ()
+ let f_SDL_LogSetAllPriority = unsafeBitCast(sym_SDL_LogSetAllPriority, to: SDL_LogSetAllPriority.self)
+ f_SDL_LogSetAllPriority(1)
}
}
diff --git a/src/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceDriver.cs b/src/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceDriver.cs
index 58137bb38..2a797a95f 100644
--- a/src/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceDriver.cs
+++ b/src/Ryujinx.Audio.Backends.SDL2/SDL2HardwareDeviceDriver.cs
@@ -6,6 +6,7 @@ using Ryujinx.SDL2.Common;
using System;
using System.Collections.Concurrent;
using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
using System.Threading;
using static Ryujinx.Audio.Integration.IHardwareDeviceDriver;
using static SDL2.SDL;
@@ -23,7 +24,7 @@ namespace Ryujinx.Audio.Backends.SDL2
// TODO: Add this to SDL2-CS
// NOTE: We use a DllImport here because of marshaling issue for spec.
#pragma warning disable SYSLIB1054
- [DllImport("SDL2.framework/SDL2")]
+ [DllImport("SDL2")]
private static extern int SDL_GetDefaultAudioInfo(IntPtr name, out SDL_AudioSpec spec, int isCapture);
#pragma warning restore SYSLIB1054
diff --git a/src/Ryujinx.Headless.SDL2/Program.cs b/src/Ryujinx.Headless.SDL2/Program.cs
index e5ae4f1d2..89ce1062b 100644
--- a/src/Ryujinx.Headless.SDL2/Program.cs
+++ b/src/Ryujinx.Headless.SDL2/Program.cs
@@ -321,7 +321,14 @@ namespace Ryujinx.Headless.SDL2
// Make process DPI aware for proper window sizing on high-res screens.
ForceDpiAware.Windows();
- Silk.NET.Core.Loader.SearchPathContainer.Platform = Silk.NET.Core.Loader.UnderlyingPlatform.MacOS;
+ if (PlatformInfo.IsBionic)
+ {
+ Silk.NET.Core.Loader.SearchPathContainer.Platform = Silk.NET.Core.Loader.UnderlyingPlatform.Android;
+ }
+ else
+ {
+ Silk.NET.Core.Loader.SearchPathContainer.Platform = Silk.NET.Core.Loader.UnderlyingPlatform.MacOS;
+ }
Logger.Info?.Print(LogClass.Application, $"Start Emu Test 4");
Version = ReleaseInformation.GetVersion();
@@ -332,7 +339,6 @@ namespace Ryujinx.Headless.SDL2
Console.Title = $"Ryujinx Console {Version} (Headless SDL2)";
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 1");
if (OperatingSystem.IsMacOS() || OperatingSystem.IsIOS() || OperatingSystem.IsLinux() || PlatformInfo.IsBionic)
{
AutoResetEvent invoked = new(false);
@@ -340,7 +346,6 @@ namespace Ryujinx.Headless.SDL2
// MacOS must perform SDL polls from the main thread.
SDL2Driver.MainThreadDispatcher = action =>
{
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 3");
invoked.Reset();
WindowBase.QueueMainThreadAction(() =>
@@ -354,7 +359,6 @@ namespace Ryujinx.Headless.SDL2
};
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 2");
var result = Parser.Default.ParseArguments(args)
.WithParsed(options =>
{
@@ -1149,13 +1153,11 @@ namespace Ryujinx.Headless.SDL2
static void Load(Options option)
{
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 4");
if (_virtualFileSystem == null)
{
_virtualFileSystem = VirtualFileSystem.CreateInstance();
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 5");
if (_libHacHorizonManager == null)
{
_libHacHorizonManager = new LibHacHorizonManager();
@@ -1165,7 +1167,6 @@ namespace Ryujinx.Headless.SDL2
_libHacHorizonManager.InitializeSystemClients();
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 6");
if (_contentManager == null)
{
_contentManager = new ContentManager(_virtualFileSystem);
@@ -1186,7 +1187,6 @@ namespace Ryujinx.Headless.SDL2
_inputManager = new InputManager(new SDL2KeyboardDriver(), new SDL2GamepadDriver());
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 7");
GraphicsConfig.EnableShaderCache = true;
if (OperatingSystem.IsMacOS() || OperatingSystem.IsIOS())
@@ -1198,6 +1198,12 @@ namespace Ryujinx.Headless.SDL2
}
}
+ // if (PlatformInfo.IsBionic)
+ // {
+ // option.GraphicsBackend = GraphicsBackend.OpenGl;
+ // Logger.Warning?.Print(LogClass.Application, "Set OpenGL in test purpose!");
+ // }
+
IGamepad gamepad;
if (option.ListInputIds)
@@ -1225,7 +1231,6 @@ namespace Ryujinx.Headless.SDL2
return;
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 8");
if (option.InputPath == null)
{
Logger.Error?.Print(LogClass.Application, "Please provide a file to load");
@@ -1233,7 +1238,6 @@ namespace Ryujinx.Headless.SDL2
return;
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 9");
if (option.InputPath == "MiiMaker") {
string contentPath = _contentManager.GetInstalledContentPath(0x0100000000001009, StorageId.BuiltInSystem, NcaContentType.Program);
@@ -1270,16 +1274,24 @@ namespace Ryujinx.Headless.SDL2
}
// Setup logging level
- Logger.SetEnable(LogLevel.Debug, option.LoggingEnableDebug);
- Logger.SetEnable(LogLevel.Stub, !option.LoggingDisableStub);
- Logger.SetEnable(LogLevel.Info, !option.LoggingDisableInfo);
- Logger.SetEnable(LogLevel.Warning, !option.LoggingDisableWarning);
- Logger.SetEnable(LogLevel.Error, option.LoggingEnableError);
- Logger.SetEnable(LogLevel.Trace, option.LoggingEnableTrace);
- Logger.SetEnable(LogLevel.Guest, !option.LoggingDisableGuest);
- Logger.SetEnable(LogLevel.AccessLog, option.LoggingEnableFsAccessLog);
+ // Logger.SetEnable(LogLevel.Debug, option.LoggingEnableDebug);
+ // Logger.SetEnable(LogLevel.Stub, !option.LoggingDisableStub);
+ // Logger.SetEnable(LogLevel.Info, !option.LoggingDisableInfo);
+ // Logger.SetEnable(LogLevel.Warning, !option.LoggingDisableWarning);
+ // Logger.SetEnable(LogLevel.Error, option.LoggingEnableError);
+ // Logger.SetEnable(LogLevel.Trace, option.LoggingEnableTrace);
+ // Logger.SetEnable(LogLevel.Guest, !option.LoggingDisableGuest);
+ // Logger.SetEnable(LogLevel.AccessLog, option.LoggingEnableFsAccessLog);
+
+ Logger.SetEnable(LogLevel.Debug, true);
+ Logger.SetEnable(LogLevel.Stub, true);
+ Logger.SetEnable(LogLevel.Info, true);
+ Logger.SetEnable(LogLevel.Warning, true);
+ Logger.SetEnable(LogLevel.Error, true);
+ Logger.SetEnable(LogLevel.Trace, false);
+ Logger.SetEnable(LogLevel.Guest, false);
+ Logger.SetEnable(LogLevel.AccessLog, true);
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 10");
if (!option.DisableFileLog)
{
Logger.AddTarget(new AsyncLogTargetWrapper(
@@ -1289,7 +1301,6 @@ namespace Ryujinx.Headless.SDL2
));
}
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 11");
// Setup graphics configuration
GraphicsConfig.EnableShaderCache = !option.DisableShaderCache;
GraphicsConfig.EnableTextureRecompression = option.EnableTextureRecompression;
@@ -1298,13 +1309,10 @@ namespace Ryujinx.Headless.SDL2
GraphicsConfig.ShadersDumpPath = option.GraphicsShadersDumpPath;
GraphicsConfig.EnableMacroHLE = !option.DisableMacroHLE;
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 12");
while (true)
{
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 13");
LoadApplication(option);
- Logger.Info?.Print(LogClass.Application, "Starting emu Test 14");
if (_userChannelPersistence.PreviousIndex == -1 || !_userChannelPersistence.ShouldRestart)
{
break;
diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs
index 13c18ac8f..2ce4416f0 100644
--- a/src/Ryujinx.Headless.SDL2/WindowBase.cs
+++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs
@@ -186,6 +186,12 @@ namespace Ryujinx.Headless.SDL2
}
// WindowHandle = SDL_GetWindowFromID(1);
+ Logger.Info?.Print(LogClass.Application, $"Ryujinx Window {Program.Version}{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}");
+ Logger.Info?.Print(LogClass.Application, $"Width {Width}");
+ Logger.Info?.Print(LogClass.Application, $"Height {Height}");
+ Logger.Info?.Print(LogClass.Application, $"DefaultFlags {DefaultFlags}");
+ Logger.Info?.Print(LogClass.Application, $"FullscreenFlag {FullscreenFlag}");
+ Logger.Info?.Print(LogClass.Application, $"GetWindowFlags {GetWindowFlags()}");
WindowHandle = SDL_CreateWindow($"Ryujinx {Program.Version}{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}", 0, 0, Width, Height, DefaultFlags | FullscreenFlag | GetWindowFlags());
if (WindowHandle == IntPtr.Zero)