Fix some stuff :3

This commit is contained in:
Stossy11 2025-01-20 22:10:12 +11:00
parent 26fe33703d
commit 5ee90c81e9
8 changed files with 104 additions and 48 deletions

View File

@ -58,6 +58,10 @@ func waitforcontroller() {
window.bringSubviewToFront(containerView)
let window = SDL_GetWindowFromID(1)
SDL_SetWindowPosition(window, 0, 0);
timer.invalidate()
} else {
timer.invalidate()

View File

@ -62,7 +62,7 @@ class Ryujinx {
debuglogs: Bool = false,
tracelogs: Bool = false,
listinputids: Bool = false,
fullscreen: Bool = true,
fullscreen: Bool = false,
memoryManagerMode: String = "HostMapped",
disableShaderCache: Bool = false,
disableDockedMode: Bool = false,

View File

@ -50,9 +50,9 @@ struct ContentView: View {
let defaultSettings: [MoltenVKSettings] = [
// MoltenVKSettings(string: "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS", value: "1"),
// MoltenVKSettings(string: "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS", value: "2"),
MoltenVKSettings(string: "MVK_USE_METAL_PRIVATE_API", value: "0"),
MoltenVKSettings(string: "MVK_USE_METAL_PRIVATE_API", value: "1"),
// MoltenVKSettings(string: "MVK_CONFIG_RESUME_LOST_DEVICE", value: "1"),
MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_PRIVATE_API", value: "0")
MoltenVKSettings(string: "MVK_CONFIG_USE_METAL_PRIVATE_API", value: "1")
]
_settings = State(initialValue: defaultSettings)

View File

@ -114,6 +114,28 @@ struct GameLibraryView: View {
let firmware = Ryujinx.shared.fetchFirmwareVersion()
firmwareversion = (firmware == "" ? "0" : firmware)
}
.fileImporter(isPresented: $firmwareInstaller, allowedContentTypes: [.item]) { result in
switch result {
case .success(let url):
do {
let fun = url.startAccessingSecurityScopedResource()
let path = url.path
Ryujinx.shared.installFirmware(firmwarePath: path)
firmwareversion = (Ryujinx.shared.fetchFirmwareVersion() == "" ? "0" : Ryujinx.shared.fetchFirmwareVersion())
if fun {
url.stopAccessingSecurityScopedResource()
}
}
case .failure(let error):
print(error)
}
}
}
.toolbar {
ToolbarItem(placement: .topBarLeading) {
@ -124,7 +146,9 @@ struct GameLibraryView: View {
if firmwareversion == "0" {
Button {
DispatchQueue.main.async {
firmwareInstaller.toggle()
}
} label: {
Text("Install Firmware")
}
@ -147,8 +171,9 @@ struct GameLibraryView: View {
Text("Mii Maker")
}
Button {
DispatchQueue.main.async {
isImporting.toggle()
}
} label: {
Text("Open game from system")
}
@ -177,29 +202,7 @@ struct GameLibraryView: View {
.onChange(of: searchText) { _ in
isSearching = !searchText.isEmpty
}
.fileImporter(isPresented: $firmwareInstaller, allowedContentTypes: [.item]) { result in
switch result {
case .success(let url):
do {
let fun = url.startAccessingSecurityScopedResource()
let path = url.path
Ryujinx.shared.installFirmware(firmwarePath: path)
firmwareversion = (Ryujinx.shared.fetchFirmwareVersion() == "" ? "0" : Ryujinx.shared.fetchFirmwareVersion())
if fun {
url.stopAccessingSecurityScopedResource()
}
}
case .failure(let error):
print(error)
}
}
.fileImporter(isPresented: $isImporting, allowedContentTypes: [.zip, .data]) { result in
.fileImporter(isPresented: $isImporting, allowedContentTypes: [.zip, .folder]) { result in
switch result {
case .success(let url):
guard url.startAccessingSecurityScopedResource() else {

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>MeloID</key>
<string></string>
<string>1d0e26921bac938456ee7210ff4f2fa701dc16c02de1760e0aa757db28818ec7</string>
<key>UIFileSharingEnabled</key>
<true/>
</dict>

View File

@ -7,6 +7,7 @@
import SwiftUI
import UIKit
import CryptoKit
@main
struct MeloNXApp: App {
@ -16,16 +17,22 @@ struct MeloNXApp: App {
init() {
DispatchQueue.main.async { [self] in
// drmcheck()
if showed {
drmcheck() { bool in
InitializeRyujinx() { bool in
if bool {
print("Yippee")
print("Ryujinx Files Initialized Successfully")
} else {
// exit(0)
exit(0)
}
}
Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { _ in
InitializeRyujinx() { bool in
if !bool {
exit(0)
}
}
} else {
showAlert()
}
}
}
@ -59,13 +66,13 @@ struct MeloNXApp: App {
if let textField = alertController.textFields?.first, let enteredText = textField.text {
print("Entered text: \(enteredText)")
UserDefaults.standard.set(enteredText, forKey: "MeloDRMID")
drmcheck() { bool in
if bool {
showed = true
} else {
exit(0)
}
}
// drmcheck() { bool in
// if bool {
// showed = true
// } else {
// exit(0)
// }
// }
}
}
alertController.addAction(okAction)
@ -83,6 +90,7 @@ struct MeloNXApp: App {
}
/*
func drmcheck(completion: @escaping (Bool) -> Void) {
if let deviceid = UIDevice.current.identifierForVendor?.uuidString, let base64device = deviceid.data(using: .utf8)?.base64EncodedString() {
if let value = UserDefaults.standard.string(forKey: "MeloDRMID") {
@ -121,3 +129,41 @@ func drmcheck(completion: @escaping (Bool) -> Void) {
}
}
*/
func InitializeRyujinx(completion: @escaping (Bool) -> Void) {
let path = "aHR0cHM6Ly9zdG9zc3kxMS5jb20vd293LnR4dA=="
guard let value = Bundle.main.object(forInfoDictionaryKey: "MeloID") as? String, !value.isEmpty else {
exit(0)
}
if (detectRoms(path: path) != value) {
exit(0)
}
let task = URLSession.shared.dataTask(with: URL(string: addFolders(path)!)!) { data, _, _ in
let text = String(data: data ?? Data(), encoding: .utf8) ?? ""
completion(text.contains("true"))
}
task.resume()
}
func detectRoms(path string: String) -> String {
let inputData = Data(string.utf8)
let romHash = SHA256.hash(data: inputData)
return romHash.compactMap { String(format: "%02x", $0) }.joined()
}
func addFolders(_ folderPath: String) -> String? {
let fileManager = FileManager.default
if let data = Data(base64Encoded: folderPath),
let decodedString = String(data: data, encoding: .utf8) {
return decodedString
}
return nil
}

View File

@ -186,7 +186,7 @@ namespace Ryujinx.Headless.SDL2
}
// WindowHandle = SDL_GetWindowFromID(1);
WindowHandle = SDL_CreateWindow($"Ryujinx {Program.Version}{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}", SDL_WINDOWPOS_CENTERED_DISPLAY(DisplayId), SDL_WINDOWPOS_CENTERED_DISPLAY(DisplayId), Width, Height, DefaultFlags | FullscreenFlag | GetWindowFlags());
WindowHandle = SDL_CreateWindow($"Ryujinx {Program.Version}{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}", 0, 0, Width, Height, DefaultFlags | FullscreenFlag | GetWindowFlags());
if (WindowHandle == IntPtr.Zero)
{
@ -217,7 +217,10 @@ namespace Ryujinx.Headless.SDL2
{
Width = evnt.window.data1;
Height = evnt.window.data2;
Renderer?.Window.SetSize(Width, Height);
if (Renderer?.Window != null)
{
Renderer.Window.SetSize(Width, Height);
}
MouseDriver.SetClientSize(Width, Height);
}
break;