Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a3079c7b5 | |||
| 0487d834b0 | |||
| 619e01001e | |||
| baec92eba7 | |||
| a023f2d7a3 | |||
| cf1d704910 | |||
| e1ab96e4a5 | |||
| 3b5d9b3b98 | |||
| 2e13867b45 | |||
| 0550075d97 | |||
| 138d4349ef |
+1
-1
@@ -1,4 +1,4 @@
|
||||
[submodule "deps/mame"]
|
||||
path = deps/mame
|
||||
url = https://github.com/stuartcarnie/mame.git
|
||||
branch = mame0209-headless
|
||||
branch = mame0225-headless
|
||||
|
||||
+13
-13
@@ -19,23 +19,11 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.215.0</string>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OEGameCoreController</string>
|
||||
<key>OEGameCoreClass</key>
|
||||
<string>MAMEGameCore</string>
|
||||
<key>OEGameCorePlayerCount</key>
|
||||
<string>8</string>
|
||||
<key>OEProjectURL</key>
|
||||
<string>http://mamedev.org</string>
|
||||
<key>OESystemIdentifiers</key>
|
||||
<array>
|
||||
<string>openemu.system.arcade</string>
|
||||
</array>
|
||||
<key>SUEnableAutomaticChecks</key>
|
||||
<string>1</string>
|
||||
<key>SUFeedURL</key>
|
||||
<string>https://raw.github.com/OpenEmu/OpenEmu-Update/master/mame_appcast.xml</string>
|
||||
<key>OEGameCoreOptions</key>
|
||||
<dict>
|
||||
<key>openemu.system.arcade</key>
|
||||
@@ -50,5 +38,17 @@
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>OEGameCorePlayerCount</key>
|
||||
<string>8</string>
|
||||
<key>OEProjectURL</key>
|
||||
<string>http://mamedev.org</string>
|
||||
<key>OESystemIdentifiers</key>
|
||||
<array>
|
||||
<string>openemu.system.arcade</string>
|
||||
</array>
|
||||
<key>SUEnableAutomaticChecks</key>
|
||||
<string>1</string>
|
||||
<key>SUFeedURL</key>
|
||||
<string>https://raw.github.com/OpenEmu/OpenEmu-Update/master/mame_appcast.xml</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
D00A069F17637AB600C99008 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
||||
D00A06A417637E9100C99008 /* MAMEGameCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MAMEGameCore.h; sourceTree = "<group>"; };
|
||||
D00A06A517637E9100C99008 /* MAMEGameCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MAMEGameCore.m; sourceTree = "<group>"; };
|
||||
D00A06A717637EB500C99008 /* OEArcadeSystemResponderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OEArcadeSystemResponderClient.h; path = ../OpenEmu/Arcade/OEArcadeSystemResponderClient.h; sourceTree = "<group>"; };
|
||||
D00A06A717637EB500C99008 /* OEArcadeSystemResponderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OEArcadeSystemResponderClient.h; path = ../OpenEmu/SystemPlugins/Arcade/OEArcadeSystemResponderClient.h; sourceTree = "<group>"; };
|
||||
D0AADE2F176381FB00759E26 /* MAME_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MAME_Prefix.pch; sourceTree = "<group>"; };
|
||||
D0AADE30176382F900759E26 /* OpenEmuBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OpenEmuBase.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AADE331763838A00759E26 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
@@ -97,7 +97,7 @@
|
||||
D00A06A317637BDD00C99008 /* Classes */,
|
||||
D0AADE2E176381E900759E26 /* Other Sources */,
|
||||
D00A06931763763000C99008 /* Resources */,
|
||||
D00A068C1763763000C99008 /* Frameworks and Libraries */,
|
||||
D00A068C1763763000C99008 /* Frameworks */,
|
||||
D00A068B1763763000C99008 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
@@ -110,7 +110,7 @@
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D00A068C1763763000C99008 /* Frameworks and Libraries */ = {
|
||||
D00A068C1763763000C99008 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0510AA1D2300825D002028C1 /* mamearcade_headless.dylib */,
|
||||
@@ -118,7 +118,7 @@
|
||||
D00A068F1763763000C99008 /* Linked Frameworks */,
|
||||
D0AADE321763833600759E26 /* Other Frameworks */,
|
||||
);
|
||||
name = "Frameworks and Libraries";
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D00A068F1763763000C99008 /* Linked Frameworks */ = {
|
||||
@@ -138,7 +138,6 @@
|
||||
D00A069F17637AB600C99008 /* Info.plist */,
|
||||
);
|
||||
name = Resources;
|
||||
path = MAME;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D00A06A317637BDD00C99008 /* Classes */ = {
|
||||
@@ -409,6 +408,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 0.225.0;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = NO;
|
||||
@@ -435,6 +435,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 0.225.0;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = NO;
|
||||
|
||||
+65
-7
@@ -174,6 +174,49 @@ static os_log_t OE_CORE_LOG, OE_CORE_AUDIT_LOG;
|
||||
|
||||
#pragma mark - Execution
|
||||
|
||||
BOOL driverIsNotWorking(GameDriverOptions o)
|
||||
{
|
||||
if ((o & GameDriverMachineNotWorking) == GameDriverMachineNotWorking) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
if ((o & GameDriverMachineIsSkeleton) == GameDriverMachineIsSkeleton) {
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)validateGameDriver:(GameDriver *)driver error:(NSError **)error
|
||||
{
|
||||
GameDriverOptions o = driver.flags;
|
||||
|
||||
if (o & (GameDriverMachineClickableArtwork | GameDriverMachineRequiresArtwork | GameDriverMachineMechanical))
|
||||
{
|
||||
if (error != nil)
|
||||
{
|
||||
*error = [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotLoadROMError userInfo:@{
|
||||
NSLocalizedDescriptionKey : @"Unable to load ROM.",
|
||||
NSLocalizedRecoverySuggestionErrorKey: [NSString stringWithFormat:@"\"%@\" (%@).\n\nMechanical systems or systems which require artwork to operate are not supported.", driver.fullName, driver.name],
|
||||
}];
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
if (driverIsNotWorking(o)) {
|
||||
if (error != nil)
|
||||
{
|
||||
*error = [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotLoadROMError userInfo:@{
|
||||
NSLocalizedDescriptionKey : @"Unable to load ROM.",
|
||||
NSLocalizedRecoverySuggestionErrorKey: [NSString stringWithFormat:@"\"%@\" (%@).\n\nThis machine does not work and the emulation is not yet complete. There is nothing you can do to fix this problem except wait for the MAME developers to improve the emulation.", driver.fullName, driver.name],
|
||||
}];
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)loadFileAtPath:(NSString *)path error:(NSError **)error
|
||||
{
|
||||
NSString *romDir = [path stringByDeletingLastPathComponent];
|
||||
@@ -195,14 +238,28 @@ static os_log_t OE_CORE_LOG, OE_CORE_AUDIT_LOG;
|
||||
|
||||
NSString *rom = [[path lastPathComponent] stringByDeletingPathExtension];
|
||||
AuditResult *ar;
|
||||
BOOL success = [_osd loadGame:rom withAuditResult:&ar error:error];
|
||||
BOOL success = [_osd setDriver:rom withAuditResult:&ar error:error];
|
||||
if (!success)
|
||||
{
|
||||
if (error != nil && ar != nil)
|
||||
return NO;
|
||||
}
|
||||
|
||||
if (![self validateGameDriver:_osd.driver error:error])
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
if (ar.summary == AuditSummaryIncorrect || ar.summary == AuditSummaryNotFound)
|
||||
{
|
||||
if (error != nil)
|
||||
{
|
||||
*error = [self processAuditResult:ar forRomDir:romDir];
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
if (![_osd initializeWithError:error])
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
@@ -217,7 +274,8 @@ static os_log_t OE_CORE_LOG, OE_CORE_AUDIT_LOG;
|
||||
|
||||
- (NSError *)processAuditResult:(AuditResult *)ar forRomDir:(NSString *)romDir
|
||||
{
|
||||
NSString *gameDriverName = _osd.driverName;
|
||||
GameDriver *driver = _osd.driver;
|
||||
NSString *gameDriverName = driver.name;
|
||||
NSMutableOrderedSet<MAMEAuditResult *> *results = [NSMutableOrderedSet new];
|
||||
|
||||
for (AuditRecord *rec in ar.records) {
|
||||
@@ -281,7 +339,7 @@ static os_log_t OE_CORE_LOG, OE_CORE_AUDIT_LOG;
|
||||
}
|
||||
|
||||
// Give an audit report to the user
|
||||
NSString *game = [NSString stringWithFormat:@"%@ (%@.zip)", _osd.driverFullName, _osd.driverName];
|
||||
NSString *game = [NSString stringWithFormat:@"%@ (%@.zip)", driver.fullName, gameDriverName];
|
||||
NSString *versionRequired = [[[[[self owner] bundle] infoDictionary] objectForKey:@"CFBundleVersion"] substringToIndex:5];
|
||||
|
||||
NSError *outErr = [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotLoadROMError userInfo:@{
|
||||
@@ -394,7 +452,7 @@ static os_log_t OE_CORE_LOG, OE_CORE_AUDIT_LOG;
|
||||
else
|
||||
{
|
||||
err = [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotSaveStateError userInfo:@{
|
||||
NSLocalizedDescriptionKey : [NSString stringWithFormat:@"Game \"%@\" does not not support save states.", _osd.driverFullName],
|
||||
NSLocalizedDescriptionKey : [NSString stringWithFormat:@"Game \"%@\" does not not support save states.", _osd.driver.fullName],
|
||||
}];
|
||||
}
|
||||
|
||||
@@ -413,7 +471,7 @@ static os_log_t OE_CORE_LOG, OE_CORE_AUDIT_LOG;
|
||||
else
|
||||
{
|
||||
err = [NSError errorWithDomain:OEGameCoreErrorDomain code:OEGameCoreCouldNotSaveStateError userInfo:@{
|
||||
NSLocalizedDescriptionKey : [NSString stringWithFormat:@"Game \"%@\" does not not support save states.", _osd.driverFullName],
|
||||
NSLocalizedDescriptionKey : [NSString stringWithFormat:@"Game \"%@\" does not not support save states.", _osd.driver.fullName],
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
Submodule deps/mame updated: 822ae8c825...c5b276e865
Reference in New Issue
Block a user