Я пытаюсь запустить Nestopia NES Emulation library на tvOS, но каждый раз, когда он пытается загрузить свою базу данных или файл игры, он останавливается здесь
void In::SafeRead(byte* data,dword size) {
static_cast<std::istream*>(stream)->read( reinterpret_cast<char*>(data), size);
}
Без вывода на консоль и с EXC_BAD_ACCESS (код = 1 адрес = 0xffffffff00000000)
Это мой ViewController
class ViewController: UIViewController {
let emuWidth: CGFloat = 341.0
let emuHeight: CGFloat = 320.0
var emulatorCore: EmulatorCore!
var emulatorView: ScreenView!
override func viewDidLoad() {
super.viewDidLoad()
self.emulatorView = ScreenView(frame: CGRectMake(0, 0, emuWidth, emuHeight))
self.emulatorView.backgroundColor = UIColor.blackColor()
self.view.addSubview(self.emulatorView)
self.emulatorCore = EmulatorCore()
self.emulatorCore.initializeEmulator()
self.emulatorCore.frameBufferSize = CGSizeMake(emuWidth, emuHeight)
do {
let fileManager = NSFileManager.defaultManager()
if !fileManager.fileExistsAtPath((NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("NstDatabase.dat")) {
try NSFileManager.defaultManager().copyItemAtPath(NSBundle.mainBundle().pathForResource("NstDatabase", ofType: "dat")!, toPath: (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("NstDatabase.dat"))
}
if !fileManager.fileExistsAtPath((NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("mega_man.nes")) {
try NSFileManager.defaultManager().copyItemAtPath(NSBundle.mainBundle().pathForResource("mega_man", ofType: "nes")!, toPath: (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("mega_man.nes"))
}
} catch _ {
print("Error copying files!")
}
if self.emulatorCore.loadROM((NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("mega_man.nes")) {
self.emulatorCore.configureEmulator()
self.emulatorCore.screenDelegate = self.emulatorView
self.emulatorCore.frameBufferAddress = self.emulatorView.frameBufferAddress
self.emulatorView.delegate = self.emulatorCore
} else {
print("Error: invalid game path")
}
}
}
Тот же код прекрасно работает на iOS.
Спасибо!
Задача ещё не решена.
Других решений пока нет …