Cocoa Port:
- The input handler now supports autohold. - NDS inputs in the input handler now support turbo.
This commit is contained in:
parent
71c196b920
commit
7fa5f7763e
|
@ -868,6 +868,16 @@
|
|||
AB7DDA6E173DC399004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; };
|
||||
AB7DDA6F173DC39E004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; };
|
||||
AB7DDA70173DC3A3004F3D07 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABB6AD5C173A3F2B00EC2E8D /* Carbon.framework */; };
|
||||
AB851D2A189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB851D2B189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB851D2C189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB851D2D189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB851D2E189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB851D2F189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB851D30189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB851D31189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB851D32189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB851D33189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB8C6CBF186A950C00E3EC64 /* Image_PassME.png in Resources */ = {isa = PBXBuildFile; fileRef = AB8C6CBE186A950C00E3EC64 /* Image_PassME.png */; };
|
||||
AB8C6CC0186A950C00E3EC64 /* Image_PassME.png in Resources */ = {isa = PBXBuildFile; fileRef = AB8C6CBE186A950C00E3EC64 /* Image_PassME.png */; };
|
||||
AB8C6CC1186A950C00E3EC64 /* Image_PassME.png in Resources */ = {isa = PBXBuildFile; fileRef = AB8C6CBE186A950C00E3EC64 /* Image_PassME.png */; };
|
||||
|
@ -1368,6 +1378,8 @@
|
|||
AB80E050142BC4FA00A52038 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = "<group>"; };
|
||||
AB817A34143EE2DB00A7DFE9 /* videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videofilter.h; sourceTree = "<group>"; };
|
||||
AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = videofilter.cpp; sourceTree = "<group>"; };
|
||||
AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_AutoholdClear_420x420.png; path = images/Icon_AutoholdClear_420x420.png; sourceTree = "<group>"; };
|
||||
AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_AutoholdSet_420x420.png; path = images/Icon_AutoholdSet_420x420.png; sourceTree = "<group>"; };
|
||||
AB8C6CBE186A950C00E3EC64 /* Image_PassME.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Image_PassME.png; path = images/Image_PassME.png; sourceTree = "<group>"; };
|
||||
AB8C6E56186CD07E00E3EC64 /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = System/Library/Frameworks/ForceFeedback.framework; sourceTree = SDKROOT; };
|
||||
AB8FFE491872032B00C10085 /* Image_PaddleController.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Image_PaddleController.png; path = images/Image_PaddleController.png; sourceTree = "<group>"; };
|
||||
|
@ -2008,6 +2020,8 @@
|
|||
AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */,
|
||||
AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */,
|
||||
AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */,
|
||||
AB851D28189B2C9A007363CC /* Icon_AutoholdClear_420x420.png */,
|
||||
AB851D29189B2C9A007363CC /* Icon_AutoholdSet_420x420.png */,
|
||||
AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */,
|
||||
ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */,
|
||||
ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */,
|
||||
|
@ -2677,6 +2691,8 @@
|
|||
ABBFDFAB1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
ABBFDFB61898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
ABBFDFB71898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */,
|
||||
AB851D32189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB851D33189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -2770,6 +2786,8 @@
|
|||
ABBFDFA81898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
ABBFDFB01898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
ABBFDFB11898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */,
|
||||
AB851D2C189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB851D2D189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -2863,6 +2881,8 @@
|
|||
ABBFDFA71898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
ABBFDFAE1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
ABBFDFAF1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */,
|
||||
AB851D2A189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB851D2B189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -2956,6 +2976,8 @@
|
|||
ABBFDFAA1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
ABBFDFB41898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
ABBFDFB51898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */,
|
||||
AB851D30189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB851D31189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3049,6 +3071,8 @@
|
|||
ABBFDFA91898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
ABBFDFB21898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */,
|
||||
ABBFDFB31898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */,
|
||||
AB851D2E189B2C9A007363CC /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB851D2F189B2C9A007363CC /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -398,6 +398,10 @@
|
|||
AB796D6A15CDCBA200C59155 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; };
|
||||
AB796D6B15CDCBA200C59155 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; };
|
||||
AB796D6C15CDCBA200C59155 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; };
|
||||
AB7EC7FA189B2CBA009D198A /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F8189B2CBA009D198A /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB7EC7FB189B2CBA009D198A /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F8189B2CBA009D198A /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB7EC7FC189B2CBA009D198A /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F9189B2CBA009D198A /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB7EC7FD189B2CBA009D198A /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F9189B2CBA009D198A /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB80E04D142BC4A800A52038 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB82445B1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; };
|
||||
AB82445C1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; };
|
||||
|
@ -878,6 +882,8 @@
|
|||
AB796CA215CDCB6B00C59155 /* instruction_attributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = instruction_attributes.h; path = ../instruction_attributes.h; sourceTree = "<group>"; };
|
||||
AB796CA315CDCB6B00C59155 /* instructions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = instructions.h; path = ../instructions.h; sourceTree = "<group>"; };
|
||||
AB796D7015CDCBA200C59155 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
AB7EC7F8189B2CBA009D198A /* Icon_AutoholdClear_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_AutoholdClear_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_AutoholdClear_420x420.png; sourceTree = "<group>"; };
|
||||
AB7EC7F9189B2CBA009D198A /* Icon_AutoholdSet_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_AutoholdSet_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_AutoholdSet_420x420.png; sourceTree = "<group>"; };
|
||||
AB80E04C142BC4A800A52038 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = "<group>"; };
|
||||
AB80E050142BC4FA00A52038 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = "<group>"; };
|
||||
AB817A34143EE2DB00A7DFE9 /* videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videofilter.h; sourceTree = "<group>"; };
|
||||
|
@ -1545,6 +1551,8 @@
|
|||
AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */,
|
||||
AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */,
|
||||
AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */,
|
||||
AB7EC7F8189B2CBA009D198A /* Icon_AutoholdClear_420x420.png */,
|
||||
AB7EC7F9189B2CBA009D198A /* Icon_AutoholdSet_420x420.png */,
|
||||
AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */,
|
||||
ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */,
|
||||
ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */,
|
||||
|
@ -2064,6 +2072,7 @@
|
|||
AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB7EC7FB189B2CBA009D198A /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB9A1F921898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
AB0F29AC14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */,
|
||||
|
@ -2080,6 +2089,7 @@
|
|||
AB0F29B614BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */,
|
||||
AB0F29B714BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */,
|
||||
AB3ACC3E14C24D5400D7D192 /* AUTHORS in Resources */,
|
||||
AB7EC7FD189B2CBA009D198A /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
AB3ACC3F14C24D5400D7D192 /* ChangeLog in Resources */,
|
||||
AB3ACC4014C24D5400D7D192 /* COPYING in Resources */,
|
||||
AB3ACC4114C24D5400D7D192 /* README in Resources */,
|
||||
|
@ -2157,6 +2167,7 @@
|
|||
AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */,
|
||||
AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */,
|
||||
AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */,
|
||||
AB7EC7FA189B2CBA009D198A /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
AB9A1F911898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */,
|
||||
AB796CDC15CDCBA200C59155 /* Icon_DSButtonStart_420x420.png in Resources */,
|
||||
|
@ -2173,6 +2184,7 @@
|
|||
AB796CE615CDCBA200C59155 /* Icon_ShowHUD_420x420.png in Resources */,
|
||||
AB796CE715CDCBA200C59155 /* Icon_Speaker_420x420.png in Resources */,
|
||||
AB796CE815CDCBA200C59155 /* AUTHORS in Resources */,
|
||||
AB7EC7FC189B2CBA009D198A /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
AB796CE915CDCBA200C59155 /* ChangeLog in Resources */,
|
||||
AB796CEA15CDCBA200C59155 /* COPYING in Resources */,
|
||||
AB796CEB15CDCBA200C59155 /* README in Resources */,
|
||||
|
|
|
@ -425,6 +425,10 @@
|
|||
AB796D6A15CDCBA200C59155 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; };
|
||||
AB796D6B15CDCBA200C59155 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; };
|
||||
AB796D6C15CDCBA200C59155 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; };
|
||||
AB7EC7F4189B2B92009D198A /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F2189B2B92009D198A /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB7EC7F5189B2B92009D198A /* Icon_AutoholdClear_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F2189B2B92009D198A /* Icon_AutoholdClear_420x420.png */; };
|
||||
AB7EC7F6189B2B92009D198A /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F3189B2B92009D198A /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB7EC7F7189B2B92009D198A /* Icon_AutoholdSet_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB7EC7F3189B2B92009D198A /* Icon_AutoholdSet_420x420.png */; };
|
||||
AB80E04D142BC4A800A52038 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB82445B1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; };
|
||||
AB82445C1704AE9A00B8EE20 /* utilities.c in Sources */ = {isa = PBXBuildFile; fileRef = AB82445A1704AE9A00B8EE20 /* utilities.c */; };
|
||||
|
@ -893,6 +897,8 @@
|
|||
AB796CA215CDCB6B00C59155 /* instruction_attributes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = instruction_attributes.h; path = ../instruction_attributes.h; sourceTree = "<group>"; };
|
||||
AB796CA315CDCB6B00C59155 /* instructions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = instructions.h; path = ../instructions.h; sourceTree = "<group>"; };
|
||||
AB796D7015CDCBA200C59155 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
AB7EC7F2189B2B92009D198A /* Icon_AutoholdClear_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_AutoholdClear_420x420.png; path = images/Icon_AutoholdClear_420x420.png; sourceTree = "<group>"; };
|
||||
AB7EC7F3189B2B92009D198A /* Icon_AutoholdSet_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_AutoholdSet_420x420.png; path = images/Icon_AutoholdSet_420x420.png; sourceTree = "<group>"; };
|
||||
AB80E04C142BC4A800A52038 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = "<group>"; };
|
||||
AB80E050142BC4FA00A52038 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = "<group>"; };
|
||||
AB817A34143EE2DB00A7DFE9 /* videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videofilter.h; sourceTree = "<group>"; };
|
||||
|
@ -1545,6 +1551,8 @@
|
|||
AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */,
|
||||
AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */,
|
||||
AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */,
|
||||
AB7EC7F2189B2B92009D198A /* Icon_AutoholdClear_420x420.png */,
|
||||
AB7EC7F3189B2B92009D198A /* Icon_AutoholdSet_420x420.png */,
|
||||
AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */,
|
||||
ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */,
|
||||
ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */,
|
||||
|
@ -2064,6 +2072,7 @@
|
|||
AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */,
|
||||
AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */,
|
||||
AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */,
|
||||
AB7EC7F5189B2B92009D198A /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
ABDDF7C61898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
AB0F298F14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */,
|
||||
AB0F29A614BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */,
|
||||
|
@ -2080,6 +2089,7 @@
|
|||
AB0F29AE14BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */,
|
||||
AB0F29AF14BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */,
|
||||
AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */,
|
||||
AB7EC7F7189B2B92009D198A /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */,
|
||||
AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */,
|
||||
AB0F29B314BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */,
|
||||
|
@ -2157,6 +2167,7 @@
|
|||
AB796CD215CDCBA200C59155 /* Icon_ArrowDown_420x420.png in Resources */,
|
||||
AB796CD315CDCBA200C59155 /* Icon_ArrowLeft_420x420.png in Resources */,
|
||||
AB796CD415CDCBA200C59155 /* Icon_ArrowRight_420x420.png in Resources */,
|
||||
AB7EC7F4189B2B92009D198A /* Icon_AutoholdClear_420x420.png in Resources */,
|
||||
ABDDF7C51898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */,
|
||||
AB796CD515CDCBA200C59155 /* Icon_ArrowUp_420x420.png in Resources */,
|
||||
AB796CD615CDCBA200C59155 /* Icon_DoubleSpeed_420x420.png in Resources */,
|
||||
|
@ -2173,6 +2184,7 @@
|
|||
AB796CDE15CDCBA200C59155 /* Icon_DSButtonY_420x420.png in Resources */,
|
||||
AB796CDF15CDCBA200C59155 /* Icon_Emulation_420x420.png in Resources */,
|
||||
AB796CE015CDCBA200C59155 /* Icon_Input_420x420.png in Resources */,
|
||||
AB7EC7F6189B2B92009D198A /* Icon_AutoholdSet_420x420.png in Resources */,
|
||||
AB796CE115CDCBA200C59155 /* Icon_Microphone_420x420.png in Resources */,
|
||||
AB796CE215CDCBA200C59155 /* Icon_OpenROM_420x420.png in Resources */,
|
||||
AB796CE315CDCBA200C59155 /* Icon_Reset_420x420.png in Resources */,
|
||||
|
|
|
@ -38,6 +38,8 @@
|
|||
<string>Piano: B</string>
|
||||
<string>Piano: High C</string>
|
||||
<string>Paddle</string>
|
||||
<string>Autohold - Set</string>
|
||||
<string>Autohold - Clear</string>
|
||||
<string>Execute/Pause</string>
|
||||
<string>Frame Advance</string>
|
||||
<string>Frame Jump</string>
|
||||
|
@ -77,6 +79,8 @@
|
|||
<string>126</string>
|
||||
<key>elementName</key>
|
||||
<string>Up Arrow</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Down</key>
|
||||
|
@ -92,6 +96,8 @@
|
|||
<string>125</string>
|
||||
<key>elementName</key>
|
||||
<string>Down Arrow</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Left</key>
|
||||
|
@ -107,6 +113,8 @@
|
|||
<string>123</string>
|
||||
<key>elementName</key>
|
||||
<string>Left Arrow</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Right</key>
|
||||
|
@ -122,6 +130,8 @@
|
|||
<string>124</string>
|
||||
<key>elementName</key>
|
||||
<string>Right Arrow</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>A</key>
|
||||
|
@ -137,6 +147,8 @@
|
|||
<string>7</string>
|
||||
<key>elementName</key>
|
||||
<string>X</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>B</key>
|
||||
|
@ -152,6 +164,8 @@
|
|||
<string>6</string>
|
||||
<key>elementName</key>
|
||||
<string>Z</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>X</key>
|
||||
|
@ -167,6 +181,8 @@
|
|||
<string>1</string>
|
||||
<key>elementName</key>
|
||||
<string>S</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Y</key>
|
||||
|
@ -182,6 +198,8 @@
|
|||
<string>0</string>
|
||||
<key>elementName</key>
|
||||
<string>A</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>L</key>
|
||||
|
@ -197,6 +215,8 @@
|
|||
<string>12</string>
|
||||
<key>elementName</key>
|
||||
<string>Q</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>R</key>
|
||||
|
@ -212,6 +232,8 @@
|
|||
<string>13</string>
|
||||
<key>elementName</key>
|
||||
<string>W</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Start</key>
|
||||
|
@ -227,6 +249,8 @@
|
|||
<string>36</string>
|
||||
<key>elementName</key>
|
||||
<string>Return</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Select</key>
|
||||
|
@ -242,6 +266,8 @@
|
|||
<string>48</string>
|
||||
<key>elementName</key>
|
||||
<string>Tab</string>
|
||||
<key>intValue1</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Touch</key>
|
||||
|
@ -595,6 +621,10 @@
|
|||
<integer>5</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Autohold - Set</key>
|
||||
<array/>
|
||||
<key>Autohold - Clear</key>
|
||||
<array/>
|
||||
<key>HUD</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
@ -100,6 +100,58 @@
|
|||
<integer>1</integer>
|
||||
<key>Input_ControllerMappings</key>
|
||||
<dict>
|
||||
<key>Up</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>126</string>
|
||||
<key>elementName</key>
|
||||
<string>Up Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Down</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>125</string>
|
||||
<key>elementName</key>
|
||||
<string>Down Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Left</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>123</string>
|
||||
<key>elementName</key>
|
||||
<string>Left Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Right</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>124</string>
|
||||
<key>elementName</key>
|
||||
<string>Right Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>A</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -126,61 +178,129 @@
|
|||
<string>Z</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Copy Screen</key>
|
||||
<array/>
|
||||
<key>X</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>1</string>
|
||||
<key>elementName</key>
|
||||
<string>S</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Y</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>0</string>
|
||||
<key>elementName</key>
|
||||
<string>A</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>L</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>12</string>
|
||||
<key>elementName</key>
|
||||
<string>Q</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>R</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>13</string>
|
||||
<key>elementName</key>
|
||||
<string>W</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>36</string>
|
||||
<key>elementName</key>
|
||||
<string>Return</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Select</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>48</string>
|
||||
<key>elementName</key>
|
||||
<string>Tab</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Touch</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventMouse</string>
|
||||
<key>deviceName</key>
|
||||
<string>Mouse</string>
|
||||
<key>elementCode</key>
|
||||
<string>0</string>
|
||||
<key>elementName</key>
|
||||
<string>Primary Button</string>
|
||||
<key>useInputForIntCoord</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Microphone</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>50</string>
|
||||
<key>elementName</key>
|
||||
<string>` (Accent)</string>
|
||||
<key>intValue1</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Lid</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>51</string>
|
||||
<key>elementName</key>
|
||||
<string>Delete (Backspace)</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Debug</key>
|
||||
<array/>
|
||||
<key>Down</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>125</string>
|
||||
<key>elementName</key>
|
||||
<string>Down Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Enable/Disable Auto Frame Skip</key>
|
||||
<array/>
|
||||
<key>Enable/Disable Cheats</key>
|
||||
<array/>
|
||||
<key>Enable/Disable GPU State</key>
|
||||
<array/>
|
||||
<key>Enable/Disable Speed Limiter</key>
|
||||
<array/>
|
||||
<key>Execute/Pause</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>117</string>
|
||||
<key>elementName</key>
|
||||
<string>Forward Delete</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Frame Advance</key>
|
||||
<array/>
|
||||
<key>Frame Jump</key>
|
||||
<array/>
|
||||
<key>Guitar Grip: Blue</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>16</string>
|
||||
<key>elementName</key>
|
||||
<string>Y</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Guitar Grip: Green</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -220,7 +340,7 @@
|
|||
<string>T</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>HUD</key>
|
||||
<key>Guitar Grip: Blue</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
|
@ -228,137 +348,9 @@
|
|||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>4</string>
|
||||
<string>16</string>
|
||||
<key>elementName</key>
|
||||
<string>H</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>L</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>12</string>
|
||||
<key>elementName</key>
|
||||
<string>Q</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Left</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>123</string>
|
||||
<key>elementName</key>
|
||||
<string>Left Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Lid</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>51</string>
|
||||
<key>elementName</key>
|
||||
<string>Delete (Backspace)</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Load State Slot</key>
|
||||
<array/>
|
||||
<key>Microphone</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>50</string>
|
||||
<key>elementName</key>
|
||||
<string>` (Accent)</string>
|
||||
<key>intValue1</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Mute/Unmute</key>
|
||||
<array/>
|
||||
<key>Paddle</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>31</string>
|
||||
<key>elementName</key>
|
||||
<string>O</string>
|
||||
<key>intValue1</key>
|
||||
<integer>-5</integer>
|
||||
<key>isInputAnalog</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>35</string>
|
||||
<key>elementName</key>
|
||||
<string>P</string>
|
||||
<key>intValue1</key>
|
||||
<integer>5</integer>
|
||||
<key>isInputAnalog</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: A</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>43</string>
|
||||
<key>elementName</key>
|
||||
<string>, (Comma)</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: A#</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>37</string>
|
||||
<key>elementName</key>
|
||||
<string>L</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: B</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>47</string>
|
||||
<key>elementName</key>
|
||||
<string>. (Period)</string>
|
||||
<string>Y</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: C</key>
|
||||
|
@ -478,6 +470,45 @@
|
|||
<string>K</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: A</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>43</string>
|
||||
<key>elementName</key>
|
||||
<string>, (Comma)</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: A#</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>37</string>
|
||||
<key>elementName</key>
|
||||
<string>L</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: B</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>47</string>
|
||||
<key>elementName</key>
|
||||
<string>. (Period)</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Piano: High C</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -491,7 +522,7 @@
|
|||
<string>/</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>R</key>
|
||||
<key>Paddle</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
|
@ -499,11 +530,63 @@
|
|||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>13</string>
|
||||
<string>31</string>
|
||||
<key>elementName</key>
|
||||
<string>W</string>
|
||||
<string>O</string>
|
||||
<key>intValue1</key>
|
||||
<integer>-5</integer>
|
||||
<key>isInputAnalog</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>35</string>
|
||||
<key>elementName</key>
|
||||
<string>P</string>
|
||||
<key>intValue1</key>
|
||||
<integer>5</integer>
|
||||
<key>isInputAnalog</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Autohold - Set</key>
|
||||
<array/>
|
||||
<key>Autohold - Clear</key>
|
||||
<array/>
|
||||
<key>HUD</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>4</string>
|
||||
<key>elementName</key>
|
||||
<string>H</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Execute/Pause</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>117</string>
|
||||
<key>elementName</key>
|
||||
<string>Forward Delete</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Frame Advance</key>
|
||||
<array/>
|
||||
<key>Frame Jump</key>
|
||||
<array/>
|
||||
<key>Reset</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -517,19 +600,14 @@
|
|||
<string>Page Down</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Right</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>124</string>
|
||||
<key>elementName</key>
|
||||
<string>Right Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Mute/Unmute</key>
|
||||
<array/>
|
||||
<key>Load State Slot</key>
|
||||
<array/>
|
||||
<key>Save State Slot</key>
|
||||
<array/>
|
||||
<key>Copy Screen</key>
|
||||
<array/>
|
||||
<key>Rotate Display Left</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -560,21 +638,8 @@
|
|||
<integer>90</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Save State Slot</key>
|
||||
<key>Toggle All Displays</key>
|
||||
<array/>
|
||||
<key>Select</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>48</string>
|
||||
<key>elementName</key>
|
||||
<string>Tab</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Set Speed</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -602,75 +667,14 @@
|
|||
<integer>2</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>36</string>
|
||||
<key>elementName</key>
|
||||
<string>Return</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Toggle All Displays</key>
|
||||
<key>Enable/Disable Speed Limiter</key>
|
||||
<array/>
|
||||
<key>Enable/Disable Auto Frame Skip</key>
|
||||
<array/>
|
||||
<key>Enable/Disable Cheats</key>
|
||||
<array/>
|
||||
<key>Enable/Disable GPU State</key>
|
||||
<array/>
|
||||
<key>Touch</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventMouse</string>
|
||||
<key>deviceName</key>
|
||||
<string>Mouse</string>
|
||||
<key>elementCode</key>
|
||||
<string>0</string>
|
||||
<key>elementName</key>
|
||||
<string>Primary Button</string>
|
||||
<key>useInputForIntCoord</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Up</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>126</string>
|
||||
<key>elementName</key>
|
||||
<string>Up Arrow</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>X</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>1</string>
|
||||
<key>elementName</key>
|
||||
<string>S</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Y</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>deviceCode</key>
|
||||
<string>NSEventKeyboard</string>
|
||||
<key>deviceName</key>
|
||||
<string>Keyboard</string>
|
||||
<key>elementCode</key>
|
||||
<string>0</string>
|
||||
<key>elementName</key>
|
||||
<string>A</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>Input_SavedDeviceProperties</key>
|
||||
<dict/>
|
||||
|
|
|
@ -63,25 +63,39 @@ enum
|
|||
DSControllerState_StatesCount
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool state;
|
||||
bool turbo;
|
||||
bool autohold;
|
||||
uint16_t turboPattern;
|
||||
} NDSInput;
|
||||
|
||||
@interface CocoaDSController : NSObject
|
||||
{
|
||||
BOOL autohold;
|
||||
BOOL isAutoholdCleared;
|
||||
NSInteger micMode;
|
||||
NSPoint touchLocation;
|
||||
bool controllerState[DSControllerState_StatesCount];
|
||||
|
||||
NDSInput ndsInput[DSControllerState_StatesCount];
|
||||
AudioSampleBlockGenerator *selectedAudioFileGenerator;
|
||||
NSInteger paddleAdjust;
|
||||
|
||||
OSSpinLock spinlockControllerState;
|
||||
}
|
||||
|
||||
@property (assign) BOOL autohold;
|
||||
@property (assign) NSInteger micMode;
|
||||
@property (assign) AudioSampleBlockGenerator *selectedAudioFileGenerator;
|
||||
@property (assign) NSInteger paddleAdjust;
|
||||
|
||||
- (void) setControllerState:(BOOL)theState controlID:(const NSUInteger)controlID;
|
||||
- (void) setControllerState:(BOOL)theState controlID:(const NSUInteger)controlID turbo:(const BOOL)isTurboEnabled;
|
||||
- (void) setTouchState:(BOOL)theState location:(const NSPoint)theLocation;
|
||||
- (void) setMicrophoneState:(BOOL)theState inputMode:(const NSInteger)inputMode;
|
||||
- (void) setSineWaveGeneratorFrequency:(const double)freq;
|
||||
- (void) clearAutohold;
|
||||
- (void) flush;
|
||||
- (void) flushEmpty;
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
@implementation CocoaDSController
|
||||
|
||||
@dynamic autohold;
|
||||
@synthesize micMode;
|
||||
@synthesize selectedAudioFileGenerator;
|
||||
@synthesize paddleAdjust;
|
||||
|
@ -40,10 +41,16 @@
|
|||
|
||||
for (size_t i = 0; i < DSControllerState_StatesCount; i++)
|
||||
{
|
||||
controllerState[i] = false;
|
||||
ndsInput[i].state = false;
|
||||
ndsInput[i].turbo = false;
|
||||
ndsInput[i].turboPattern = false;
|
||||
ndsInput[i].autohold = false;
|
||||
}
|
||||
|
||||
spinlockControllerState = OS_SPINLOCK_INIT;
|
||||
autohold = NO;
|
||||
isAutoholdCleared = YES;
|
||||
|
||||
micMode = MICMODE_NONE;
|
||||
selectedAudioFileGenerator = NULL;
|
||||
touchLocation = NSMakePoint(0.0f, 0.0f);
|
||||
|
@ -57,7 +64,43 @@
|
|||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void) setControllerState:(BOOL)theState controlID:(const NSUInteger)controlID
|
||||
- (void) setAutohold:(BOOL)theState
|
||||
{
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
|
||||
autohold = theState;
|
||||
|
||||
if (autohold && isAutoholdCleared)
|
||||
{
|
||||
memset(ndsInput, 0, sizeof(ndsInput));
|
||||
isAutoholdCleared = NO;
|
||||
}
|
||||
|
||||
if (!autohold)
|
||||
{
|
||||
for (size_t i = 0; i < DSControllerState_StatesCount; i++)
|
||||
{
|
||||
ndsInput[i].state = ndsInput[i].autohold;
|
||||
}
|
||||
}
|
||||
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
}
|
||||
|
||||
- (BOOL) autohold
|
||||
{
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
const BOOL theState = autohold;
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
return theState;
|
||||
}
|
||||
|
||||
- (void) setControllerState:(BOOL)theState controlID:(const NSUInteger)controlID
|
||||
{
|
||||
[self setControllerState:theState controlID:controlID turbo:NO];
|
||||
}
|
||||
|
||||
- (void) setControllerState:(BOOL)theState controlID:(const NSUInteger)controlID turbo:(const BOOL)isTurboEnabled
|
||||
{
|
||||
if (controlID >= DSControllerState_StatesCount)
|
||||
{
|
||||
|
@ -65,14 +108,30 @@
|
|||
}
|
||||
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
controllerState[controlID] = (theState) ? true : false;
|
||||
|
||||
if (autohold)
|
||||
{
|
||||
if (theState)
|
||||
{
|
||||
ndsInput[controlID].turbo = (isTurboEnabled) ? true : false;
|
||||
ndsInput[controlID].turboPattern = (ndsInput[controlID].turbo) ? 0x5555 : 0;
|
||||
ndsInput[controlID].autohold = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ndsInput[controlID].state = (theState || ndsInput[controlID].autohold);
|
||||
ndsInput[controlID].turbo = (isTurboEnabled && ndsInput[controlID].state);
|
||||
ndsInput[controlID].turboPattern = (ndsInput[controlID].turbo) ? 0x5555 : 0;
|
||||
}
|
||||
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
}
|
||||
|
||||
- (void) setTouchState:(BOOL)theState location:(const NSPoint)theLocation
|
||||
{
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
controllerState[DSControllerState_Touch] = (theState) ? true : false;
|
||||
ndsInput[DSControllerState_Touch].state = (theState) ? true : false;
|
||||
touchLocation = theLocation;
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
}
|
||||
|
@ -80,7 +139,7 @@
|
|||
- (void) setMicrophoneState:(BOOL)theState inputMode:(const NSInteger)inputMode
|
||||
{
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
controllerState[DSControllerState_Microphone] = (theState) ? true : false;
|
||||
ndsInput[DSControllerState_Microphone].state = (theState) ? true : false;
|
||||
micMode = inputMode;
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
}
|
||||
|
@ -90,6 +149,20 @@
|
|||
sineWaveGenerator.setFrequency(freq);
|
||||
}
|
||||
|
||||
- (void) clearAutohold
|
||||
{
|
||||
[self setAutohold:NO];
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
|
||||
if (!isAutoholdCleared)
|
||||
{
|
||||
memset(ndsInput, 0, sizeof(ndsInput));
|
||||
isAutoholdCleared = YES;
|
||||
}
|
||||
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
}
|
||||
|
||||
- (void) flush
|
||||
{
|
||||
OSSpinLockLock(&spinlockControllerState);
|
||||
|
@ -98,9 +171,24 @@
|
|||
const NSInteger theMicMode = micMode;
|
||||
static bool flushedStates[DSControllerState_StatesCount] = {0};
|
||||
|
||||
for (size_t i = 0; i < DSControllerState_StatesCount; i++)
|
||||
if (!autohold)
|
||||
{
|
||||
flushedStates[i] = controllerState[i];
|
||||
for (size_t i = 0; i < DSControllerState_StatesCount; i++)
|
||||
{
|
||||
flushedStates[i] = (ndsInput[i].state || ndsInput[i].autohold);
|
||||
|
||||
if (ndsInput[i].turbo)
|
||||
{
|
||||
const bool turboState = ndsInput[i].turboPattern & 0x0001;
|
||||
flushedStates[i] = (flushedStates[i] && turboState);
|
||||
ndsInput[i].turboPattern >>= 1;
|
||||
ndsInput[i].turboPattern |= (turboState) ? 0x8000 : 0x0000;
|
||||
}
|
||||
else
|
||||
{
|
||||
flushedStates[i] = ndsInput[i].state;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OSSpinLockUnlock(&spinlockControllerState);
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -184,6 +184,7 @@ class AudioSampleBlockGenerator;
|
|||
- (IBAction) toggleAllDisplays:(id)sender;
|
||||
|
||||
// Tools Menu
|
||||
- (IBAction) autoholdSet:(id)sender;
|
||||
- (IBAction) toggleGPUState:(id)sender;
|
||||
|
||||
- (IBAction) changeCoreSpeed:(id)sender;
|
||||
|
@ -208,6 +209,10 @@ class AudioSampleBlockGenerator;
|
|||
- (IBAction) closeSheet:(id)sender;
|
||||
|
||||
- (void) cmdUpdateDSController:(NSValue *)cmdAttrValue;
|
||||
- (void) cmdUpdateDSControllerWithTurbo:(NSValue *)cmdAttrValue;
|
||||
- (void) cmdUpdateDSTouch:(NSValue *)cmdAttrValue;
|
||||
- (void) cmdUpdateDSMicrophone:(NSValue *)cmdAttrValue;
|
||||
- (void) cmdUpdateDSPaddle:(NSValue *)cmdAttrValue;
|
||||
|
||||
- (void) cmdLoadEmuSaveStateSlot:(NSValue *)cmdAttrValue;
|
||||
- (void) cmdSaveEmuSaveStateSlot:(NSValue *)cmdAttrValue;
|
||||
|
|
|
@ -881,6 +881,16 @@
|
|||
[inputManager dispatchCommandUsingIBAction:_cmd sender:sender];
|
||||
}
|
||||
|
||||
- (IBAction) autoholdSet:(id)sender
|
||||
{
|
||||
[inputManager dispatchCommandUsingIBAction:_cmd sender:sender];
|
||||
}
|
||||
|
||||
- (IBAction) autoholdClear:(id)sender
|
||||
{
|
||||
[inputManager dispatchCommandUsingIBAction:_cmd sender:sender];
|
||||
}
|
||||
|
||||
- (IBAction) chooseSlot1R4Directory:(id)sender
|
||||
{
|
||||
NSOpenPanel *panel = [NSOpenPanel openPanel];
|
||||
|
@ -993,66 +1003,117 @@
|
|||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
const BOOL theState = (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_ON) ? YES : NO;
|
||||
const NSUInteger controlID = cmdAttr.intValue[0];
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[[cdsCore cdsController] setControllerState:theState controlID:controlID];
|
||||
}
|
||||
|
||||
- (void) cmdUpdateDSControllerWithTurbo:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
const BOOL theState = (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_ON) ? YES : NO;
|
||||
const NSUInteger controlID = cmdAttr.intValue[0];
|
||||
const BOOL isTurboEnabled = (BOOL)cmdAttr.intValue[1];
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[[cdsCore cdsController] setControllerState:theState controlID:controlID turbo:isTurboEnabled];
|
||||
}
|
||||
|
||||
- (void) cmdUpdateDSTouch:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
const BOOL theState = (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_ON) ? YES : NO;
|
||||
|
||||
if (controlID == DSControllerState_Touch)
|
||||
const NSPoint touchLoc = (cmdAttr.useInputForIntCoord) ? NSMakePoint(cmdAttr.input.intCoordX, cmdAttr.input.intCoordY) : NSMakePoint(cmdAttr.intValue[1], cmdAttr.intValue[2]);
|
||||
if (touchLoc.x >= 0.0 && touchLoc.y >= 0.0)
|
||||
{
|
||||
const NSPoint touchLoc = (cmdAttr.useInputForIntCoord) ? NSMakePoint(cmdAttr.input.intCoordX, cmdAttr.input.intCoordY) : NSMakePoint(cmdAttr.intValue[1], cmdAttr.intValue[2]);
|
||||
if (touchLoc.x >= 0.0 && touchLoc.y >= 0.0)
|
||||
{
|
||||
[[cdsCore cdsController] setTouchState:theState location:touchLoc];
|
||||
}
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[[cdsCore cdsController] setTouchState:theState location:touchLoc];
|
||||
}
|
||||
else if (controlID == DSControllerState_Microphone)
|
||||
}
|
||||
|
||||
- (void) cmdUpdateDSMicrophone:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
const BOOL theState = (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_ON) ? YES : NO;
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
|
||||
const NSInteger micMode = cmdAttr.intValue[1];
|
||||
[[cdsCore cdsController] setMicrophoneState:theState inputMode:micMode];
|
||||
|
||||
const float sineWaveFrequency = cmdAttr.floatValue[0];
|
||||
[[cdsCore cdsController] setSineWaveGeneratorFrequency:sineWaveFrequency];
|
||||
|
||||
NSString *audioFilePath = cmdAttr.object[0];
|
||||
[[cdsCore cdsController] setSelectedAudioFileGenerator:[inputManager audioFileGeneratorFromFilePath:audioFilePath]];
|
||||
}
|
||||
|
||||
- (void) cmdUpdateDSPaddle:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
|
||||
if (cmdAttr.input.isAnalog)
|
||||
{
|
||||
const NSInteger micMode = cmdAttr.intValue[1];
|
||||
[[cdsCore cdsController] setMicrophoneState:theState inputMode:micMode];
|
||||
const NSInteger paddleSensitivity = cmdAttr.floatValue[0];
|
||||
const float paddleScalar = cmdAttr.input.scalar;
|
||||
float paddleAdjust = (paddleScalar * 2.0f) - 1.0f;
|
||||
|
||||
const float sineWaveFrequency = cmdAttr.floatValue[0];
|
||||
[[cdsCore cdsController] setSineWaveGeneratorFrequency:sineWaveFrequency];
|
||||
// Clamp the paddle value.
|
||||
if (paddleAdjust < -1.0f)
|
||||
{
|
||||
paddleAdjust = -1.0f;
|
||||
}
|
||||
|
||||
NSString *audioFilePath = cmdAttr.object[0];
|
||||
[[cdsCore cdsController] setSelectedAudioFileGenerator:[inputManager audioFileGeneratorFromFilePath:audioFilePath]];
|
||||
}
|
||||
else if (controlID == DSControllerState_Paddle)
|
||||
{
|
||||
if (cmdAttr.input.isAnalog)
|
||||
if (paddleAdjust > 1.0f)
|
||||
{
|
||||
const NSInteger paddleSensitivity = cmdAttr.floatValue[0];
|
||||
const float paddleScalar = cmdAttr.input.scalar;
|
||||
|
||||
float paddleAdjust = (paddleScalar * 2.0f) - 1.0f;
|
||||
|
||||
// Clamp the paddle value.
|
||||
if (paddleAdjust < -1.0f)
|
||||
{
|
||||
paddleAdjust = -1.0f;
|
||||
}
|
||||
|
||||
if (paddleAdjust > 1.0f)
|
||||
{
|
||||
paddleAdjust = 1.0f;
|
||||
}
|
||||
|
||||
// Normalize the input value for the paddle.
|
||||
paddleAdjust *= (float)paddleSensitivity;
|
||||
[[cdsCore cdsController] setPaddleAdjust:paddleAdjust];
|
||||
}
|
||||
else
|
||||
{
|
||||
const NSInteger paddleAdjust = (theState) ? cmdAttr.intValue[1] : 0;
|
||||
[[cdsCore cdsController] setPaddleAdjust:paddleAdjust];
|
||||
paddleAdjust = 1.0f;
|
||||
}
|
||||
|
||||
// Normalize the input value for the paddle.
|
||||
paddleAdjust *= (float)paddleSensitivity;
|
||||
[[cdsCore cdsController] setPaddleAdjust:paddleAdjust];
|
||||
}
|
||||
else
|
||||
{
|
||||
[[cdsCore cdsController] setControllerState:theState controlID:controlID];
|
||||
const BOOL theState = (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_ON) ? YES : NO;
|
||||
const NSInteger paddleAdjust = (theState) ? cmdAttr.intValue[1] : 0;
|
||||
[[cdsCore cdsController] setPaddleAdjust:paddleAdjust];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) cmdAutoholdSet:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
const BOOL theState = (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_ON) ? YES : NO;
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[[cdsCore cdsController] setAutohold:theState];
|
||||
}
|
||||
|
||||
- (void) cmdAutoholdClear:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
[cmdAttrValue getValue:&cmdAttr];
|
||||
|
||||
if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content];
|
||||
[[cdsCore cdsController] clearAutohold];
|
||||
|
||||
}
|
||||
|
||||
- (void) cmdLoadEmuSaveStateSlot:(NSValue *)cmdAttrValue
|
||||
{
|
||||
CommandAttributes cmdAttr;
|
||||
|
|
|
@ -231,7 +231,7 @@ void HandleDeviceRemovalCallback(void *inContext, IOReturn inResult, void *inSen
|
|||
|
||||
CommandAttributes NewDefaultCommandAttributes(const char *commandTag);
|
||||
CommandAttributes NewCommandAttributesForSelector(const char *commandTag, const SEL theSelector);
|
||||
CommandAttributes NewCommandAttributesForDSControl(const char *commandTag, const NSUInteger controlID);
|
||||
CommandAttributes NewCommandAttributesForDSControl(const char *commandTag, const NSUInteger controlID, const bool supportTurbo);
|
||||
void UpdateCommandAttributesWithDeviceInfoDictionary(CommandAttributes *cmdAttr, NSDictionary *deviceInfo);
|
||||
|
||||
NSMutableDictionary* DeviceInfoDictionaryWithCommandAttributes(const CommandAttributes *cmdAttr,
|
||||
|
|
|
@ -1044,6 +1044,8 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Piano_256x256" ofType:@"png"]] autorelease], @"Piano: B",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Piano_256x256" ofType:@"png"]] autorelease], @"Piano: High C",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_PaddleKnob_256x256" ofType:@"png"]] autorelease], @"Paddle",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_AutoholdSet_420x420" ofType:@"png"]] autorelease], @"Autohold - Set",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_AutoholdClear_420x420" ofType:@"png"]] autorelease], @"Autohold - Clear",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_DisplayToggle_420x420" ofType:@"png"]] autorelease], @"Toggle All Displays",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_RotateCCW_420x420" ofType:@"png"]] autorelease], @"Rotate Display Left",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_RotateCW_420x420" ofType:@"png"]] autorelease], @"Rotate Display Right",
|
||||
|
@ -1051,26 +1053,28 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Execute_420x420" ofType:@"png"]] autorelease], @"Execute",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Pause_420x420" ofType:@"png"]] autorelease], @"Pause",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Execute_420x420" ofType:@"png"]] autorelease], @"Execute/Pause",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_FrameAdvance_420x420" ofType:@"png"]] autorelease], @"Frame Advance",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_FrameJump_420x420" ofType:@"png"]] autorelease], @"Frame Jump",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Reset_420x420" ofType:@"png"]] autorelease], @"Reset",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_DSButtonSelect_420x420" ofType:@"png"]] autorelease], @"Touch",
|
||||
[[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeMute_16x16" ofType:@"png"]] autorelease], @"Mute/Unmute",
|
||||
nil];
|
||||
|
||||
// Initialize the selectors used for each command tag. (Do this in code rather than in an external file.)
|
||||
commandSelector["Up"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Down"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Right"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Left"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["A"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["B"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["X"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Y"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["L"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["R"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Start"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Select"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Touch"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Microphone"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Up"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Down"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Right"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Left"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["A"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["B"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["X"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Y"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["L"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["R"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Start"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Select"] = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
commandSelector["Touch"] = @selector(cmdUpdateDSTouch:);
|
||||
commandSelector["Microphone"] = @selector(cmdUpdateDSMicrophone:);
|
||||
commandSelector["Debug"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Lid"] = @selector(cmdUpdateDSController:);
|
||||
|
||||
|
@ -1091,8 +1095,10 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
commandSelector["Piano: A#"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Piano: B"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Piano: High C"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Paddle"] = @selector(cmdUpdateDSController:);
|
||||
commandSelector["Paddle"] = @selector(cmdUpdateDSPaddle:);
|
||||
|
||||
commandSelector["Autohold - Set"] = @selector(cmdAutoholdSet:);
|
||||
commandSelector["Autohold - Clear"] = @selector(cmdAutoholdClear:);
|
||||
commandSelector["Load State Slot"] = @selector(cmdLoadEmuSaveStateSlot:);
|
||||
commandSelector["Save State Slot"] = @selector(cmdSaveEmuSaveStateSlot:);
|
||||
commandSelector["Copy Screen"] = @selector(cmdCopyScreen:);
|
||||
|
@ -1112,51 +1118,53 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
commandSelector["Enable/Disable GPU State"] = @selector(cmdToggleGPUState:);
|
||||
|
||||
// Generate the default command attributes for each command tag. (Do this in code rather than in an external file.)
|
||||
CommandAttributes cmdDSControlRight = NewCommandAttributesForDSControl("Right", DSControllerState_Right);
|
||||
CommandAttributes cmdDSControlLeft = NewCommandAttributesForDSControl("Left", DSControllerState_Left);
|
||||
CommandAttributes cmdDSControlDown = NewCommandAttributesForDSControl("Down", DSControllerState_Down);
|
||||
CommandAttributes cmdDSControlUp = NewCommandAttributesForDSControl("Up", DSControllerState_Up);
|
||||
CommandAttributes cmdDSControlSelect = NewCommandAttributesForDSControl("Select", DSControllerState_Select);
|
||||
CommandAttributes cmdDSControlStart = NewCommandAttributesForDSControl("Start", DSControllerState_Start);
|
||||
CommandAttributes cmdDSControlB = NewCommandAttributesForDSControl("B", DSControllerState_B);
|
||||
CommandAttributes cmdDSControlA = NewCommandAttributesForDSControl("A", DSControllerState_A);
|
||||
CommandAttributes cmdDSControlY = NewCommandAttributesForDSControl("Y", DSControllerState_Y);
|
||||
CommandAttributes cmdDSControlX = NewCommandAttributesForDSControl("X", DSControllerState_X);
|
||||
CommandAttributes cmdDSControlL = NewCommandAttributesForDSControl("L", DSControllerState_L);
|
||||
CommandAttributes cmdDSControlR = NewCommandAttributesForDSControl("R", DSControllerState_R);
|
||||
CommandAttributes cmdDSControlDebug = NewCommandAttributesForDSControl("Debug", DSControllerState_Debug);
|
||||
CommandAttributes cmdDSControlLid = NewCommandAttributesForDSControl("Lid", DSControllerState_Lid);
|
||||
CommandAttributes cmdDSControlRight = NewCommandAttributesForDSControl("Right", DSControllerState_Right, true);
|
||||
CommandAttributes cmdDSControlLeft = NewCommandAttributesForDSControl("Left", DSControllerState_Left, true);
|
||||
CommandAttributes cmdDSControlDown = NewCommandAttributesForDSControl("Down", DSControllerState_Down, true);
|
||||
CommandAttributes cmdDSControlUp = NewCommandAttributesForDSControl("Up", DSControllerState_Up, true);
|
||||
CommandAttributes cmdDSControlSelect = NewCommandAttributesForDSControl("Select", DSControllerState_Select, true);
|
||||
CommandAttributes cmdDSControlStart = NewCommandAttributesForDSControl("Start", DSControllerState_Start, true);
|
||||
CommandAttributes cmdDSControlB = NewCommandAttributesForDSControl("B", DSControllerState_B, true);
|
||||
CommandAttributes cmdDSControlA = NewCommandAttributesForDSControl("A", DSControllerState_A, true);
|
||||
CommandAttributes cmdDSControlY = NewCommandAttributesForDSControl("Y", DSControllerState_Y, true);
|
||||
CommandAttributes cmdDSControlX = NewCommandAttributesForDSControl("X", DSControllerState_X, true);
|
||||
CommandAttributes cmdDSControlL = NewCommandAttributesForDSControl("L", DSControllerState_L, true);
|
||||
CommandAttributes cmdDSControlR = NewCommandAttributesForDSControl("R", DSControllerState_R, true);
|
||||
CommandAttributes cmdDSControlDebug = NewCommandAttributesForDSControl("Debug", DSControllerState_Debug, false);
|
||||
CommandAttributes cmdDSControlLid = NewCommandAttributesForDSControl("Lid", DSControllerState_Lid, false);
|
||||
|
||||
CommandAttributes cmdDSControlTouch = NewCommandAttributesForDSControl("Touch", DSControllerState_Touch);
|
||||
CommandAttributes cmdDSControlTouch = NewCommandAttributesForDSControl("Touch", DSControllerState_Touch, false);
|
||||
cmdDSControlTouch.useInputForIntCoord = true;
|
||||
|
||||
CommandAttributes cmdDSControlMic = NewCommandAttributesForDSControl("Microphone", DSControllerState_Microphone);
|
||||
CommandAttributes cmdDSControlMic = NewCommandAttributesForDSControl("Microphone", DSControllerState_Microphone, false);
|
||||
cmdDSControlMic.intValue[1] = MICMODE_INTERNAL_NOISE;
|
||||
cmdDSControlMic.floatValue[0] = 250.0f;
|
||||
|
||||
CommandAttributes cmdGuitarGripGreen = NewCommandAttributesForDSControl("Guitar Grip: Green", DSControllerState_GuitarGrip_Green);
|
||||
CommandAttributes cmdGuitarGripRed = NewCommandAttributesForDSControl("Guitar Grip: Red", DSControllerState_GuitarGrip_Red);
|
||||
CommandAttributes cmdGuitarGripYellow = NewCommandAttributesForDSControl("Guitar Grip: Yellow", DSControllerState_GuitarGrip_Yellow);
|
||||
CommandAttributes cmdGuitarGripBlue = NewCommandAttributesForDSControl("Guitar Grip: Blue", DSControllerState_GuitarGrip_Blue);
|
||||
CommandAttributes cmdPianoC = NewCommandAttributesForDSControl("Piano: C", DSControllerState_Piano_C);
|
||||
CommandAttributes cmdPianoCSharp = NewCommandAttributesForDSControl("Piano: C#", DSControllerState_Piano_CSharp);
|
||||
CommandAttributes cmdPianoD = NewCommandAttributesForDSControl("Piano: D", DSControllerState_Piano_D);
|
||||
CommandAttributes cmdPianoDSharp = NewCommandAttributesForDSControl("Piano: D#", DSControllerState_Piano_DSharp);
|
||||
CommandAttributes cmdPianoE = NewCommandAttributesForDSControl("Piano: E", DSControllerState_Piano_E);
|
||||
CommandAttributes cmdPianoF = NewCommandAttributesForDSControl("Piano: F", DSControllerState_Piano_F);
|
||||
CommandAttributes cmdPianoFSharp = NewCommandAttributesForDSControl("Piano: F#", DSControllerState_Piano_FSharp);
|
||||
CommandAttributes cmdPianoG = NewCommandAttributesForDSControl("Piano: G", DSControllerState_Piano_G);
|
||||
CommandAttributes cmdPianoGSharp = NewCommandAttributesForDSControl("Piano: G#", DSControllerState_Piano_GSharp);
|
||||
CommandAttributes cmdPianoA = NewCommandAttributesForDSControl("Piano: A", DSControllerState_Piano_A);
|
||||
CommandAttributes cmdPianoASharp = NewCommandAttributesForDSControl("Piano: A#", DSControllerState_Piano_ASharp);
|
||||
CommandAttributes cmdPianoB = NewCommandAttributesForDSControl("Piano: B", DSControllerState_Piano_B);
|
||||
CommandAttributes cmdPianoHighC = NewCommandAttributesForDSControl("Piano: High C", DSControllerState_Piano_HighC);
|
||||
CommandAttributes cmdGuitarGripGreen = NewCommandAttributesForDSControl("Guitar Grip: Green", DSControllerState_GuitarGrip_Green, false);
|
||||
CommandAttributes cmdGuitarGripRed = NewCommandAttributesForDSControl("Guitar Grip: Red", DSControllerState_GuitarGrip_Red, false);
|
||||
CommandAttributes cmdGuitarGripYellow = NewCommandAttributesForDSControl("Guitar Grip: Yellow", DSControllerState_GuitarGrip_Yellow, false);
|
||||
CommandAttributes cmdGuitarGripBlue = NewCommandAttributesForDSControl("Guitar Grip: Blue", DSControllerState_GuitarGrip_Blue, false);
|
||||
CommandAttributes cmdPianoC = NewCommandAttributesForDSControl("Piano: C", DSControllerState_Piano_C, false);
|
||||
CommandAttributes cmdPianoCSharp = NewCommandAttributesForDSControl("Piano: C#", DSControllerState_Piano_CSharp, false);
|
||||
CommandAttributes cmdPianoD = NewCommandAttributesForDSControl("Piano: D", DSControllerState_Piano_D, false);
|
||||
CommandAttributes cmdPianoDSharp = NewCommandAttributesForDSControl("Piano: D#", DSControllerState_Piano_DSharp, false);
|
||||
CommandAttributes cmdPianoE = NewCommandAttributesForDSControl("Piano: E", DSControllerState_Piano_E, false);
|
||||
CommandAttributes cmdPianoF = NewCommandAttributesForDSControl("Piano: F", DSControllerState_Piano_F, false);
|
||||
CommandAttributes cmdPianoFSharp = NewCommandAttributesForDSControl("Piano: F#", DSControllerState_Piano_FSharp, false);
|
||||
CommandAttributes cmdPianoG = NewCommandAttributesForDSControl("Piano: G", DSControllerState_Piano_G, false);
|
||||
CommandAttributes cmdPianoGSharp = NewCommandAttributesForDSControl("Piano: G#", DSControllerState_Piano_GSharp, false);
|
||||
CommandAttributes cmdPianoA = NewCommandAttributesForDSControl("Piano: A", DSControllerState_Piano_A, false);
|
||||
CommandAttributes cmdPianoASharp = NewCommandAttributesForDSControl("Piano: A#", DSControllerState_Piano_ASharp, false);
|
||||
CommandAttributes cmdPianoB = NewCommandAttributesForDSControl("Piano: B", DSControllerState_Piano_B, false);
|
||||
CommandAttributes cmdPianoHighC = NewCommandAttributesForDSControl("Piano: High C", DSControllerState_Piano_HighC, false);
|
||||
|
||||
CommandAttributes cmdPaddle = NewCommandAttributesForDSControl("Paddle", DSControllerState_Paddle);
|
||||
CommandAttributes cmdPaddle = NewCommandAttributesForDSControl("Paddle", DSControllerState_Paddle, false);
|
||||
cmdPaddle.allowAnalogInput = true;
|
||||
cmdPaddle.intValue[1] = 0;
|
||||
cmdPaddle.floatValue[0] = 10.0f;
|
||||
|
||||
CommandAttributes cmdAutoholdSet = NewCommandAttributesForSelector("Autohold - Set", commandSelector["Autohold - Set"]);
|
||||
CommandAttributes cmdAutoholdClear = NewCommandAttributesForSelector("Autohold - Clear", commandSelector["Autohold - Clear"]);
|
||||
CommandAttributes cmdLoadEmuSaveStateSlot = NewCommandAttributesForSelector("Load State Slot", commandSelector["Load State Slot"]);
|
||||
CommandAttributes cmdSaveEmuSaveStateSlot = NewCommandAttributesForSelector("Save State Slot", commandSelector["Save State Slot"]);
|
||||
CommandAttributes cmdCopyScreen = NewCommandAttributesForSelector("Copy Screen", commandSelector["Copy Screen"]);
|
||||
|
@ -1223,6 +1231,8 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
defaultCommandAttributes["Piano: High C"] = cmdPianoHighC;
|
||||
defaultCommandAttributes["Paddle"] = cmdPaddle;
|
||||
|
||||
defaultCommandAttributes["Autohold - Set"] = cmdAutoholdSet;
|
||||
defaultCommandAttributes["Autohold - Clear"] = cmdAutoholdClear;
|
||||
defaultCommandAttributes["Load State Slot"] = cmdLoadEmuSaveStateSlot;
|
||||
defaultCommandAttributes["Save State Slot"] = cmdSaveEmuSaveStateSlot;
|
||||
defaultCommandAttributes["Copy Screen"] = cmdCopyScreen;
|
||||
|
@ -1243,6 +1253,8 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
defaultCommandAttributes["Enable/Disable GPU State"] = cmdToggleGPUState;
|
||||
|
||||
// Map all IBActions (the target object is an EmuControllerDelegate)
|
||||
[self addMappingForIBAction:@selector(autoholdSet:) commandAttributes:&cmdAutoholdSet];
|
||||
[self addMappingForIBAction:@selector(autoholdClear:) commandAttributes:&cmdAutoholdClear];
|
||||
[self addMappingForIBAction:@selector(loadEmuSaveStateSlot:) commandAttributes:&cmdLoadEmuSaveStateSlot];
|
||||
[self addMappingForIBAction:@selector(saveEmuSaveStateSlot:) commandAttributes:&cmdSaveEmuSaveStateSlot];
|
||||
[self addMappingForIBAction:@selector(copy:) commandAttributes:&cmdCopyScreen];
|
||||
|
@ -1316,7 +1328,8 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
// Force DS control commands to use IDs from code instead of from the file.
|
||||
// (In other words, we can't trust an external file with this information since
|
||||
// IDs might desync if the DS Control ID enumeration changes.)
|
||||
if (cmdAttr.selector == @selector(cmdUpdateDSController:))
|
||||
if (cmdAttr.selector == @selector(cmdUpdateDSController:) ||
|
||||
cmdAttr.selector == @selector(cmdUpdateDSControllerWithTurbo:))
|
||||
{
|
||||
cmdAttr.intValue[0] = defaultCommandAttributes[cmdTag].intValue[0];
|
||||
}
|
||||
|
@ -1623,7 +1636,23 @@ static std::tr1::unordered_map<unsigned short, std::string> keyboardNameTable; /
|
|||
{
|
||||
NSString *inputSummary = nil;
|
||||
|
||||
if (strncmp(commandTag, "Touch", INPUT_HANDLER_STRING_LENGTH) == 0)
|
||||
if ((strncmp(commandTag, "Up", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "Down", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "Left", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "Right", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "A", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "B", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "X", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "Y", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "L", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "R", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "Start", INPUT_HANDLER_STRING_LENGTH) == 0) ||
|
||||
(strncmp(commandTag, "Select", INPUT_HANDLER_STRING_LENGTH) == 0))
|
||||
{
|
||||
const BOOL isTurbo = [(NSNumber *)[deviceInfo valueForKey:@"intValue1"] boolValue];
|
||||
inputSummary = [NSString stringWithFormat:@"Turbo: %@", (isTurbo) ? @"Yes" : @"No"];
|
||||
}
|
||||
else if (strncmp(commandTag, "Touch", INPUT_HANDLER_STRING_LENGTH) == 0)
|
||||
{
|
||||
const BOOL useInputForIntCoord = [(NSNumber *)[deviceInfo valueForKey:@"useInputForIntCoord"] boolValue];
|
||||
if (useInputForIntCoord)
|
||||
|
@ -1980,10 +2009,45 @@ CommandAttributes NewCommandAttributesForSelector(const char *commandTag, const
|
|||
return cmdAttr;
|
||||
}
|
||||
|
||||
CommandAttributes NewCommandAttributesForDSControl(const char *commandTag, const NSUInteger controlID)
|
||||
CommandAttributes NewCommandAttributesForDSControl(const char *commandTag, const NSUInteger controlID, const bool supportTurbo)
|
||||
{
|
||||
CommandAttributes cmdAttr = NewCommandAttributesForSelector(commandTag, @selector(cmdUpdateDSController:));
|
||||
|
||||
switch (controlID)
|
||||
{
|
||||
case DSControllerState_Right:
|
||||
case DSControllerState_Left:
|
||||
case DSControllerState_Down:
|
||||
case DSControllerState_Up:
|
||||
case DSControllerState_Select:
|
||||
case DSControllerState_Start:
|
||||
case DSControllerState_B:
|
||||
case DSControllerState_A:
|
||||
case DSControllerState_Y:
|
||||
case DSControllerState_X:
|
||||
case DSControllerState_L:
|
||||
case DSControllerState_R:
|
||||
cmdAttr.selector = @selector(cmdUpdateDSControllerWithTurbo:);
|
||||
break;
|
||||
|
||||
case DSControllerState_Touch:
|
||||
cmdAttr.selector = @selector(cmdUpdateDSTouch:);
|
||||
break;
|
||||
|
||||
case DSControllerState_Microphone:
|
||||
cmdAttr.selector = @selector(cmdUpdateDSMicrophone:);
|
||||
break;
|
||||
|
||||
case DSControllerState_Paddle:
|
||||
cmdAttr.selector = @selector(cmdUpdateDSPaddle:);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
cmdAttr.intValue[0] = controlID;
|
||||
cmdAttr.intValue[1] = NO;
|
||||
|
||||
return cmdAttr;
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
NSWindow *inputProfileSheet;
|
||||
NSWindow *inputProfileRenameSheet;
|
||||
NSWindow *inputSettingsNDSInput;
|
||||
NSWindow *inputSettingsMicrophone;
|
||||
NSWindow *inputSettingsTouch;
|
||||
NSWindow *inputSettingsLoadStateSlot;
|
||||
|
@ -70,6 +71,7 @@
|
|||
|
||||
@property (readonly) IBOutlet NSWindow *inputProfileSheet;
|
||||
@property (readonly) IBOutlet NSWindow *inputProfileRenameSheet;
|
||||
@property (readonly) IBOutlet NSWindow *inputSettingsNDSInput;
|
||||
@property (readonly) IBOutlet NSWindow *inputSettingsMicrophone;
|
||||
@property (readonly) IBOutlet NSWindow *inputSettingsTouch;
|
||||
@property (readonly) IBOutlet NSWindow *inputSettingsLoadStateSlot;
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
@synthesize inputPrefOutlineView;
|
||||
@synthesize inputSettingsController;
|
||||
@synthesize inputProfileController;
|
||||
@synthesize inputSettingsNDSInput;
|
||||
@synthesize inputSettingsMicrophone;
|
||||
@synthesize inputSettingsTouch;
|
||||
@synthesize inputSettingsLoadStateSlot;
|
||||
|
@ -168,6 +169,18 @@
|
|||
- (void) initSettingsSheets
|
||||
{
|
||||
inputSettingsMappings = [[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
inputSettingsNDSInput, @"Up",
|
||||
inputSettingsNDSInput, @"Down",
|
||||
inputSettingsNDSInput, @"Right",
|
||||
inputSettingsNDSInput, @"Left",
|
||||
inputSettingsNDSInput, @"A",
|
||||
inputSettingsNDSInput, @"B",
|
||||
inputSettingsNDSInput, @"X",
|
||||
inputSettingsNDSInput, @"Y",
|
||||
inputSettingsNDSInput, @"L",
|
||||
inputSettingsNDSInput, @"R",
|
||||
inputSettingsNDSInput, @"Start",
|
||||
inputSettingsNDSInput, @"Select",
|
||||
inputSettingsMicrophone, @"Microphone",
|
||||
inputSettingsTouch, @"Touch",
|
||||
inputSettingsLoadStateSlot, @"Load State Slot",
|
||||
|
|
Loading…
Reference in New Issue