summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--macosx/Pcsxr.xcodeproj/project.pbxproj14
-rwxr-xr-xmacosx/PcsxrController.m2
-rwxr-xr-xmacosx/PcsxrPlugin.h4
-rwxr-xr-xmacosx/PcsxrPlugin.m99
-rw-r--r--macosx/plugins/Bladesio1/macsrc/ARCBridge.h36
-rw-r--r--macosx/plugins/DFCdrom/ARCBridge.h36
-rw-r--r--macosx/plugins/DFInput/ARCBridge.h36
-rw-r--r--macosx/plugins/DFNet/macsrc/ARCBridge.h36
-rw-r--r--macosx/plugins/DFSound/macsrc/ARCBridge.h36
-rw-r--r--macosx/plugins/DFXVideo/ARCBridge.h36
-rwxr-xr-x[-rw-r--r--]macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings0
-rw-r--r--macosx/plugins/PeopsXgl/ARCBridge.h36
-rwxr-xr-x[-rw-r--r--]macosx/plugins/PeopsXgl/English.lproj/InfoPlist.strings0
13 files changed, 59 insertions, 312 deletions
diff --git a/macosx/Pcsxr.xcodeproj/project.pbxproj b/macosx/Pcsxr.xcodeproj/project.pbxproj
index 1d867f2b..4712a3e6 100644
--- a/macosx/Pcsxr.xcodeproj/project.pbxproj
+++ b/macosx/Pcsxr.xcodeproj/project.pbxproj
@@ -450,7 +450,6 @@
551A74B917868BEA0052D185 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
551A74BB17868BEA0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
551A74BC17868BEA0052D185 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
- 551A74BE17868BEA0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARCBridge.h; sourceTree = "<group>"; };
551A74BF17868BEA0052D185 /* cfg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cfg.c; sourceTree = "<group>"; };
551A74C017868BEA0052D185 /* PluginConfigController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PluginConfigController.h; sourceTree = "<group>"; };
551A74C117868BEA0052D185 /* PluginConfigController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PluginConfigController.m; sourceTree = "<group>"; };
@@ -506,7 +505,6 @@
551A750117868BEA0052D185 /* SDL_systhread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_systhread.h; sourceTree = "<group>"; };
551A750217868BEA0052D185 /* SDL_thread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SDL_thread.c; sourceTree = "<group>"; };
551A750317868BEA0052D185 /* SDL_thread_c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDL_thread_c.h; sourceTree = "<group>"; };
- 551A750517868BEA0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARCBridge.h; path = ../ARCBridge.h; sourceTree = "<group>"; };
551A750A17868BEB0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
551A750C17868BEB0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/DFCdromPluginConfig.xib; sourceTree = "<group>"; };
551A750E17868BEB0052D185 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@@ -517,7 +515,6 @@
551A751517868BEB0052D185 /* PluginConfigController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PluginConfigController.h; sourceTree = "<group>"; };
551A751617868BEB0052D185 /* PluginConfigController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PluginConfigController.m; sourceTree = "<group>"; };
551A751717868BEB0052D185 /* version.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = version.plist; sourceTree = "<group>"; };
- 551A751917868BEB0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARCBridge.h; path = ../ARCBridge.h; sourceTree = "<group>"; };
551A751E17868BEB0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
551A752017868BEB0052D185 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
551A752217868BEB0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -540,7 +537,6 @@
551A753D17868BEB0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
551A753F17868BEC0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/SockDialog.xib; sourceTree = "<group>"; };
551A754017868BEC0052D185 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
- 551A754217868BEC0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARCBridge.h; sourceTree = "<group>"; };
551A754317868BEC0052D185 /* cfg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cfg.c; sourceTree = "<group>"; };
551A754417868BEC0052D185 /* PluginConfigController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PluginConfigController.h; sourceTree = "<group>"; };
551A754517868BEC0052D185 /* PluginConfigController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PluginConfigController.m; sourceTree = "<group>"; };
@@ -549,7 +545,6 @@
551A754817868BEC0052D185 /* version.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = version.plist; sourceTree = "<group>"; };
551A754A17868BEC0052D185 /* Info-AL.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-AL.plist"; path = "../../Info-AL.plist"; sourceTree = "<group>"; };
551A754B17868BEC0052D185 /* Info-SDL.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-SDL.plist"; path = "../../Info-SDL.plist"; sourceTree = "<group>"; };
- 551A754D17868BEC0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARCBridge.h; sourceTree = "<group>"; };
551A754E17868BEC0052D185 /* maccfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = maccfg.h; sourceTree = "<group>"; };
551A754F17868BEC0052D185 /* NamedSlider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NamedSlider.h; sourceTree = "<group>"; };
551A755017868BEC0052D185 /* NamedSlider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NamedSlider.m; sourceTree = "<group>"; };
@@ -562,7 +557,6 @@
551A756117868BEC0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
551A756317868BEC0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
551A756517868BEC0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/NetSfPeopsSpuPluginMain.xib; sourceTree = "<group>"; };
- 551A756717868BEC0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARCBridge.h; path = ../ARCBridge.h; sourceTree = "<group>"; };
551A756917868BEC0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
551A756B17868BEC0052D185 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
551A756D17868BEC0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -582,7 +576,6 @@
551A757D17868BEC0052D185 /* PluginWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PluginWindowController.m; sourceTree = "<group>"; };
551A757E17868BEC0052D185 /* SGPUPreferences.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SGPUPreferences.h; sourceTree = "<group>"; };
551A757F17868BED0052D185 /* NetSfPeopsSoftGPUInterface.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NetSfPeopsSoftGPUInterface.xib; sourceTree = "<group>"; };
- 551A758417868BED0052D185 /* ARCBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARCBridge.h; path = ../ARCBridge.h; sourceTree = "<group>"; };
551A758617868BED0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
551A758817868BED0052D185 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
551A758A17868BED0052D185 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -1137,7 +1130,6 @@
551A74BD17868BEA0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A74BE17868BEA0052D185 /* ARCBridge.h */,
551A74BF17868BEA0052D185 /* cfg.c */,
551A74C017868BEA0052D185 /* PluginConfigController.h */,
551A74C117868BEA0052D185 /* PluginConfigController.m */,
@@ -1320,7 +1312,6 @@
551A751217868BEB0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A750517868BEA0052D185 /* ARCBridge.h */,
551A751317868BEB0052D185 /* cdr-macosx.c */,
551A751417868BEB0052D185 /* cfg.c */,
551A751517868BEB0052D185 /* PluginConfigController.h */,
@@ -1342,7 +1333,6 @@
551A752617868BEB0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A751917868BEB0052D185 /* ARCBridge.h */,
551A752717868BEB0052D185 /* cfg.c */,
551A752817868BEB0052D185 /* cfg.h */,
551A752917868BEB0052D185 /* ControllerList.h */,
@@ -1371,7 +1361,6 @@
551A754117868BEC0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A754217868BEC0052D185 /* ARCBridge.h */,
551A754317868BEC0052D185 /* cfg.c */,
551A754417868BEC0052D185 /* PluginConfigController.h */,
551A754517868BEC0052D185 /* PluginConfigController.m */,
@@ -1394,7 +1383,6 @@
551A754C17868BEC0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A754D17868BEC0052D185 /* ARCBridge.h */,
551A754E17868BEC0052D185 /* maccfg.h */,
551A754F17868BEC0052D185 /* NamedSlider.h */,
551A755017868BEC0052D185 /* NamedSlider.m */,
@@ -1457,7 +1445,6 @@
551A757317868BEC0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A756717868BEC0052D185 /* ARCBridge.h */,
551A757417868BEC0052D185 /* drawgl.m */,
551A757517868BEC0052D185 /* ExtendedKeys.h */,
551A757617868BEC0052D185 /* PluginConfigController.h */,
@@ -1486,7 +1473,6 @@
551A758E17868BED0052D185 /* macsrc */ = {
isa = PBXGroup;
children = (
- 551A758417868BED0052D185 /* ARCBridge.h */,
551A758F17868BED0052D185 /* drawgl.h */,
551A759017868BED0052D185 /* drawgl.m */,
551A759117868BED0052D185 /* ExtendedKeys.h */,
diff --git a/macosx/PcsxrController.m b/macosx/PcsxrController.m
index e13bca27..6fe9fa40 100755
--- a/macosx/PcsxrController.m
+++ b/macosx/PcsxrController.m
@@ -733,7 +733,7 @@ otherblock();\
strcpy(Config.BiosDir, "Bios/");
strcpy(Config.PatchesDir, "Patches/");
- saveStatePath = RETAINOBJ(@"sstates");
+ saveStatePath = @"sstates";
}
// set plugin path
diff --git a/macosx/PcsxrPlugin.h b/macosx/PcsxrPlugin.h
index 8576622b..75764464 100755
--- a/macosx/PcsxrPlugin.h
+++ b/macosx/PcsxrPlugin.h
@@ -20,8 +20,8 @@
int active;
}
-@property (readonly) NSString *path;
-@property (readonly) NSString *name;
+@property (readonly, copy) NSString *path;
+@property (readonly, retain) NSString *name;
+ (NSString *)prefixForType:(int)type;
+ (NSString *)defaultKeyForType:(int)type;
diff --git a/macosx/PcsxrPlugin.m b/macosx/PcsxrPlugin.m
index 8fd720a4..6b715a3b 100755
--- a/macosx/PcsxrPlugin.m
+++ b/macosx/PcsxrPlugin.m
@@ -12,8 +12,24 @@
#include "plugins.h"
#import "ARCBridge.h"
+#define kPCSXRGetLibName "PSEgetLibName"
+#define kPCSXRGetLibVersion "PSEgetLibVersion"
+#define kPCSXRGetLibType "PSEgetLibType"
+
+@interface PcsxrPlugin ()
+@property (readwrite, copy) NSString *path;
+@property (readwrite, retain) NSDate *modDate;
+@property (readwrite, retain) NSString *name;
+@property (readwrite, retain) NSString *fullPlugPath;
+@end
+
@implementation PcsxrPlugin
+@synthesize path;
+@synthesize name;
+@synthesize fullPlugPath;
+@synthesize modDate;
+
+ (NSString *)prefixForType:(int)aType
{
switch (aType) {
@@ -55,7 +71,6 @@
static char *net[2] = {(char *)&Config.Net, NULL};
static char *sio1[2] = {(char *)&Config.Sio1, NULL};
-
switch (aType) {
case PSE_LT_GPU: return (char **)gpu;
case PSE_LT_CDR: return (char **)cdr;
@@ -100,9 +115,6 @@
return returnArray;
}
-@synthesize path;
-@synthesize name;
-
- (id)initWithPath:(NSString *)aPath
{
if (!(self = [super init])) {
@@ -117,7 +129,7 @@
pluginRef = NULL;
name = nil;
- path = [aPath copy];
+ self.path = aPath;
NSString *goodPath = nil;
if ([aPath isAbsolutePath]) {
goodPath = aPath;
@@ -130,7 +142,7 @@
void *tempHandle = SysLoadLibrary([fullPath fileSystemRepresentation]);
if (tempHandle != NULL)
{
- PSEgetLibVersion tempLibVersion = SysLoadSym(tempHandle, "PSEgetLibVersion");
+ PSEgetLibVersion tempLibVersion = SysLoadSym(tempHandle, kPCSXRGetLibVersion);
if (SysLibError() == NULL)
{
long tempVers2 = tempLibVersion();
@@ -138,8 +150,7 @@
goodPath = fullPath;
tempVers = tempVers2;
if (![plugDir isEqualToString:[fm stringWithFileSystemRepresentation:Config.PluginsDir length:strlen(Config.PluginsDir)]]) {
- RELEASEOBJ(path);
- path = [goodPath copy];
+ self.path = goodPath;
}
}
}
@@ -158,12 +169,13 @@
pluginRef = SysLoadLibrary([goodPath fileSystemRepresentation]);
if (pluginRef == NULL) {
+ SysLibError();
AUTORELEASEOBJNORETURN(self);
return nil;
}
// TODO: add support for plugins with multiple functionalities???
- PSE_getLibType = (PSEgetLibType) SysLoadSym(pluginRef, "PSEgetLibType");
+ PSE_getLibType = (PSEgetLibType) SysLoadSym(pluginRef, kPCSXRGetLibType);
if (SysLibError() != nil) {
if (([path rangeOfString: @"gpu" options:NSCaseInsensitiveSearch]).length != 0)
type = PSE_LT_GPU;
@@ -189,12 +201,12 @@
}
}
- PSE_getLibName = (PSEgetLibName) SysLoadSym(pluginRef, "PSEgetLibName");
+ PSE_getLibName = (PSEgetLibName) SysLoadSym(pluginRef, kPCSXRGetLibName);
if (SysLibError() == nil) {
- name = RETAINOBJ(@(PSE_getLibName()));
+ self.name = @(PSE_getLibName());
}
- PSE_getLibVersion = (PSEgetLibVersion) SysLoadSym(pluginRef, "PSEgetLibVersion");
+ PSE_getLibVersion = (PSEgetLibVersion) SysLoadSym(pluginRef, kPCSXRGetLibVersion);
if (SysLibError() == nil) {
version = PSE_getLibVersion();
} else {
@@ -203,8 +215,8 @@
// save the current modification date
NSDictionary *fattrs = [fm attributesOfItemAtPath:[goodPath stringByResolvingSymlinksInPath] error:NULL];
- modDate = RETAINOBJ([fattrs fileModificationDate]);
- fullPlugPath = RETAINOBJ(goodPath);
+ self.modDate = [fattrs fileModificationDate];
+ self.fullPlugPath = goodPath;
active = 0;
@@ -225,15 +237,17 @@
if (pluginRef) SysCloseLibrary(pluginRef);
#if !__has_feature(objc_arc)
- [modDate release];
- [path release];
- [name release];
- [fullPlugPath release];
+ self.modDate = nil;
+ self.path = nil;
+ self.name = nil;
+ self.fullPlugPath = nil;
[super dealloc];
#endif
}
+#define PluginSymbolName(type, theName) [[PcsxrPlugin prefixForType:type] stringByAppendingString:theName]
+
- (void)runCommand:(id)arg
{
@autoreleasepool {
@@ -252,9 +266,10 @@
}
}
+#define PluginSymbolNameShutdownInit(type, isInit) PluginSymbolName(type, isInit ? @"init" : @"shutdown")
+
- (long)runAs:(int)aType
{
- char symbol[255];
long (*init)();
long (*initArg)(long arg);
int res = PSE_ERR_FATAL;
@@ -263,8 +278,8 @@
return 0;
}
- sprintf(symbol, "%sinit", [[PcsxrPlugin prefixForType:aType] cStringUsingEncoding:NSASCIIStringEncoding]);
- init = initArg = SysLoadSym(pluginRef, symbol);
+ init = initArg = SysLoadSym(pluginRef, [PluginSymbolNameShutdownInit(aType, YES)
+ cStringUsingEncoding:NSASCIIStringEncoding]);
if (SysLibError() == nil) {
if (aType != PSE_LT_PAD) {
res = init();
@@ -277,20 +292,22 @@
active |= aType;
} else {
NSRunCriticalAlertPanel(NSLocalizedString(@"Plugin Initialization Failed!", nil),
- [NSString stringWithFormat:NSLocalizedString(@"Pcsxr failed to initialize the selected %@ plugin (error=%i).\nThe plugin might not work with your system.", nil), [PcsxrPlugin prefixForType:aType], res],
- nil, nil, nil);
+ NSLocalizedString(@"Pcsxr failed to initialize the selected %@ plugin (error=%i).\nThe plugin might not work with your system.", nil),
+ nil, nil, nil, [PcsxrPlugin prefixForType:aType], res);
}
return res;
}
+//#define PluginSymbolNameShutdown(type) PluginSymbolNameShutdownInit(type, NO)
+#define PluginSymbolNameShutdown(type) PluginSymbolName(type, @"shutdown")
+
- (long)shutdownAs:(int)aType
{
- char symbol[255];
long (*shutdown)(void);
- sprintf(symbol, "%sshutdown", [[PcsxrPlugin prefixForType:aType] cStringUsingEncoding:NSASCIIStringEncoding]);
- shutdown = SysLoadSym(pluginRef, symbol);
+ shutdown = SysLoadSym(pluginRef, [PluginSymbolNameShutdown(aType)
+ cStringUsingEncoding:NSASCIIStringEncoding]);
if (SysLibError() == nil) {
active &= ~aType;
return shutdown();
@@ -299,22 +316,20 @@
return PSE_ERR_FATAL;
}
+#define PluginSymbolNameAboutConfigure(type, isAbout) PluginSymbolName(type,isAbout ? @"about" : @"configure")
+
- (BOOL)hasAboutAs:(int)aType
{
- char symbol[255];
-
- sprintf(symbol, "%sabout", [[PcsxrPlugin prefixForType:aType] cStringUsingEncoding:NSASCIIStringEncoding]);
- SysLoadSym(pluginRef, symbol);
+ SysLoadSym(pluginRef, [PluginSymbolNameAboutConfigure(aType, YES)
+ cStringUsingEncoding:NSASCIIStringEncoding]);
return (SysLibError() == nil);
}
- (BOOL)hasConfigureAs:(int)aType
{
- char symbol[255];
-
- sprintf(symbol, "%sconfigure", [[PcsxrPlugin prefixForType:aType] cStringUsingEncoding:NSASCIIStringEncoding]);
- SysLoadSym(pluginRef, symbol);
+ SysLoadSym(pluginRef, [PluginSymbolNameAboutConfigure(aType, NO)
+ cStringUsingEncoding:NSASCIIStringEncoding]);
return (SysLibError() == nil);
}
@@ -322,11 +337,10 @@
- (void)aboutAs:(int)aType
{
NSArray *arg;
- char symbol[255];
-
- sprintf(symbol, "%sabout", [[PcsxrPlugin prefixForType:aType] cStringUsingEncoding:NSASCIIStringEncoding]);
- arg = [[NSArray alloc] initWithObjects:[NSString stringWithCString:symbol encoding:NSASCIIStringEncoding],
- [NSNumber numberWithInt:0], nil];
+
+ NSString *aboutSym = PluginSymbolNameAboutConfigure(aType, YES);
+ arg = @[aboutSym, @0];
+ RETAINOBJNORETURN(arg);
// detach a new thread
[NSThread detachNewThreadSelector:@selector(runCommand:) toTarget:self
@@ -338,11 +352,10 @@
- (void)configureAs:(int)aType
{
NSArray *arg;
- char symbol[255];
- sprintf(symbol, "%sconfigure", [[PcsxrPlugin prefixForType:aType] cStringUsingEncoding:NSASCIIStringEncoding]);
- arg = [[NSArray alloc] initWithObjects:[NSString stringWithCString:symbol encoding:NSASCIIStringEncoding],
- [NSNumber numberWithInt:1], nil];
+ NSString *configSym = PluginSymbolNameAboutConfigure(aType, NO);
+ arg = @[configSym, @1];
+ RETAINOBJNORETURN(arg);
// detach a new thread
[NSThread detachNewThreadSelector:@selector(runCommand:) toTarget:self
diff --git a/macosx/plugins/Bladesio1/macsrc/ARCBridge.h b/macosx/plugins/Bladesio1/macsrc/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/Bladesio1/macsrc/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/DFCdrom/ARCBridge.h b/macosx/plugins/DFCdrom/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/DFCdrom/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/DFInput/ARCBridge.h b/macosx/plugins/DFInput/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/DFInput/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/DFNet/macsrc/ARCBridge.h b/macosx/plugins/DFNet/macsrc/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/DFNet/macsrc/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/DFSound/macsrc/ARCBridge.h b/macosx/plugins/DFSound/macsrc/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/DFSound/macsrc/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/DFXVideo/ARCBridge.h b/macosx/plugins/DFXVideo/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/DFXVideo/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings b/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings
index 18460eb6..18460eb6 100644..100755
--- a/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings
+++ b/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings
diff --git a/macosx/plugins/PeopsXgl/ARCBridge.h b/macosx/plugins/PeopsXgl/ARCBridge.h
deleted file mode 100644
index ea274b84..00000000
--- a/macosx/plugins/PeopsXgl/ARCBridge.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ARCBridge.h
-// PPMacho
-//
-// Created by C.W. Betts on 12/23/12.
-//
-//
-
-#ifndef PPMacho_ARCBridge_h
-#define PPMacho_ARCBridge_h
-
-#if __has_feature(objc_arc)
-
-#define SUPERDEALLOC
-#define RELEASEOBJ(obj)
-#define RETAINOBJ(obj) obj
-#define RETAINOBJNORETURN(obj)
-#define AUTORELEASEOBJ(obj) obj
-#define AUTORELEASEOBJNORETURN(obj)
-#define BRIDGE(toType, obj) (__bridge toType)(obj)
-#define __arcweak __weak
-
-#else
-
-#define SUPERDEALLOC [super dealloc]
-#define RELEASEOBJ(obj) [obj release]
-#define RETAINOBJ(obj) [obj retain]
-#define RETAINOBJNORETURN(obj) [obj retain]
-#define AUTORELEASEOBJ(obj) [obj autorelease]
-#define AUTORELEASEOBJNORETURN(obj) [obj autorelease]
-#define BRIDGE(toType, obj) (toType)obj
-#define __arcweak
-
-#endif
-
-#endif
diff --git a/macosx/plugins/PeopsXgl/English.lproj/InfoPlist.strings b/macosx/plugins/PeopsXgl/English.lproj/InfoPlist.strings
index c00fde43..c00fde43 100644..100755
--- a/macosx/plugins/PeopsXgl/English.lproj/InfoPlist.strings
+++ b/macosx/plugins/PeopsXgl/English.lproj/InfoPlist.strings