From bf2461fae1918c9423cf536507413003d3c9c3ae Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Thu, 18 Feb 2021 13:45:49 -0600 Subject: [PATCH] Enables syncing DS(i) BIOS files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Excludes DSi NAND for now, since it is ~240MB and Harmony can’t selectively download files (yet). --- Delta/Database/Model/Human/Game.swift | 34 ++++++++++++++++++++------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/Delta/Database/Model/Human/Game.swift b/Delta/Database/Model/Human/Game.swift index 600c01b..305dcb3 100644 --- a/Delta/Database/Model/Human/Game.swift +++ b/Delta/Database/Model/Human/Game.swift @@ -9,6 +9,8 @@ import Foundation import DeltaCore +import MelonDSDeltaCore + import Harmony public extension Game @@ -142,12 +144,32 @@ extension Game: Syncable } public var syncableFiles: Set { - let gameFile = File(identifier: "game", fileURL: self.fileURL) - let artworkURL = DatabaseManager.artworkURL(for: self) let artworkFile = File(identifier: "artwork", fileURL: artworkURL) - - return [gameFile, artworkFile] + + switch self.identifier + { + case Game.melonDSBIOSIdentifier: + let bios7File = File(identifier: "bios7", fileURL: MelonDSEmulatorBridge.shared.bios7URL) + let bios9File = File(identifier: "bios9", fileURL: MelonDSEmulatorBridge.shared.bios9URL) + let firmwareFile = File(identifier: "firmware", fileURL: MelonDSEmulatorBridge.shared.firmwareURL) + + return [artworkFile, bios7File, bios9File, firmwareFile] + + case Game.melonDSDSiBIOSIdentifier: + let bios7File = File(identifier: "bios7", fileURL: MelonDSEmulatorBridge.shared.dsiBIOS7URL) + let bios9File = File(identifier: "bios9", fileURL: MelonDSEmulatorBridge.shared.dsiBIOS9URL) + let firmwareFile = File(identifier: "firmware", fileURL: MelonDSEmulatorBridge.shared.dsiFirmwareURL) + + // DSi NAND is ~240MB, so don't sync for now until Harmony can selectively download files. + // let nandFile = File(identifier: "nand", fileURL: MelonDSEmulatorBridge.shared.dsiNANDURL) + + return [artworkFile, bios7File, bios9File, firmwareFile] + + default: + let gameFile = File(identifier: "game", fileURL: self.fileURL) + return [artworkFile, gameFile] + } } public var syncableRelationships: Set { @@ -157,8 +179,4 @@ extension Game: Syncable public var syncableLocalizedName: String? { return self.name } - - public var isSyncingEnabled: Bool { - return self.identifier != Game.melonDSBIOSIdentifier && self.identifier != Game.melonDSDSiBIOSIdentifier - } }