forked from MeloNX/MeloNX
Fix some stuff :3
This commit is contained in:
parent
26fe33703d
commit
5ee90c81e9
Binary file not shown.
@ -58,6 +58,10 @@ func waitforcontroller() {
|
||||
|
||||
window.bringSubviewToFront(containerView)
|
||||
|
||||
let window = SDL_GetWindowFromID(1)
|
||||
|
||||
SDL_SetWindowPosition(window, 0, 0);
|
||||
|
||||
timer.invalidate()
|
||||
} else {
|
||||
timer.invalidate()
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
firmwareInstaller.toggle()
|
||||
DispatchQueue.main.async {
|
||||
firmwareInstaller.toggle()
|
||||
}
|
||||
} label: {
|
||||
Text("Install Firmware")
|
||||
}
|
||||
@ -147,8 +171,9 @@ struct GameLibraryView: View {
|
||||
Text("Mii Maker")
|
||||
}
|
||||
Button {
|
||||
|
||||
isImporting.toggle()
|
||||
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 {
|
||||
|
@ -3,7 +3,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>MeloID</key>
|
||||
<string></string>
|
||||
<string>1d0e26921bac938456ee7210ff4f2fa701dc16c02de1760e0aa757db28818ec7</string>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
@ -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
|
||||
if bool {
|
||||
print("Yippee")
|
||||
} else {
|
||||
// exit(0)
|
||||
}
|
||||
InitializeRyujinx() { bool in
|
||||
if bool {
|
||||
print("Ryujinx Files Initialized Successfully")
|
||||
} else {
|
||||
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
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user