diff --git a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj index 29c48b488..6c2e994fc 100644 --- a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj @@ -1101,6 +1101,21 @@ ABBCE29715ACB1FF00A2C965 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */; }; ABBCE29815ACB1FF00A2C965 /* arm_jit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBCE29515ACB1FF00A2C965 /* arm_jit.cpp */; }; ABBF04A614B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; + ABBFDFA71898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFA81898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFA91898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFAA1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFAB1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */; }; + ABBFDFAE1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFAF1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB01898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB11898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB21898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB31898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB41898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB51898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; + ABBFDFB61898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */; }; + ABBFDFB71898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */; }; ABC3AF3314B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */; }; ABC3AF3414B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */; }; ABC3AF3514B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */; }; @@ -1219,7 +1234,7 @@ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; + AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = ""; }; AB00E89114205ECC00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = ""; }; AB02475B13886BF300E9F9AB /* KeyNames.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = KeyNames.plist; sourceTree = ""; }; @@ -1390,6 +1405,9 @@ ABBCE29D15ACB26100A2C965 /* instruction_attributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = instruction_attributes.h; path = ../instruction_attributes.h; sourceTree = SOURCE_ROOT; }; ABBCE29E15ACB26100A2C965 /* instructions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = instructions.h; path = ../instructions.h; sourceTree = SOURCE_ROOT; }; ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMCheats.icns; sourceTree = ""; }; + ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DisplayToggle_420x420.png; path = images/Icon_DisplayToggle_420x420.png; sourceTree = ""; }; + ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameAdvance_420x420.png; path = images/Icon_FrameAdvance_420x420.png; sourceTree = ""; }; + ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = images/Icon_FrameJump_420x420.png; sourceTree = ""; }; ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeFull_16x16.png; path = images/Icon_VolumeFull_16x16.png; sourceTree = ""; }; ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeMute_16x16.png; path = images/Icon_VolumeMute_16x16.png; sourceTree = ""; }; ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeOneThird_16x16.png; path = images/Icon_VolumeOneThird_16x16.png; sourceTree = ""; }; @@ -1993,6 +2011,7 @@ AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + ABBFDFA61898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png */, AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, @@ -2004,6 +2023,8 @@ AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + ABBFDFAC1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png */, + ABBFDFAD1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png */, ABD59813187D417900069403 /* Icon_GuitarGrip_Button_Blue_512x512.png */, ABD59814187D417900069403 /* Icon_GuitarGrip_Button_Green_512x512.png */, ABD59815187D417900069403 /* Icon_GuitarGrip_Button_Red_512x512.png */, @@ -2653,6 +2674,9 @@ ABD5982A187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD5983B187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD5984B187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFAB1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB61898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB71898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2743,6 +2767,9 @@ ABD5981A187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD59837187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD59847187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFA81898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB01898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB11898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2833,6 +2860,9 @@ ABD5981E187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD59838187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD59848187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFA71898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFAE1898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFAF1898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2923,6 +2953,9 @@ ABD59826187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD5983A187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD5984A187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFAA1898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB41898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB51898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3013,6 +3046,9 @@ ABD59822187D417900069403 /* Icon_GuitarGrip_Button_Yellow_512x512.png in Resources */, ABD59839187D466700069403 /* Icon_Piano_256x256.png in Resources */, ABD59849187D4A6C00069403 /* Icon_PaddleKnob_256x256.png in Resources */, + ABBFDFA91898EE3200A3FFA5 /* Icon_DisplayToggle_420x420.png in Resources */, + ABBFDFB21898EE4B00A3FFA5 /* Icon_FrameAdvance_420x420.png in Resources */, + ABBFDFB31898EE4B00A3FFA5 /* Icon_FrameJump_420x420.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj index 096731268..f48a1056b 100644 --- a/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (XCode 4).xcodeproj/project.pbxproj @@ -408,6 +408,12 @@ AB8967DE16D2ED2700F826F1 /* DisplayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB8967DB16D2ED2700F826F1 /* DisplayWindow.xib */; }; AB901BDE1420706100348EEC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB901BDD1420706100348EEC /* Localizable.strings */; }; AB91D46B13BD013800462471 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + AB9A1F911898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */; }; + AB9A1F921898F0E7000DF924 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */; }; + AB9A1F951898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */; }; + AB9A1F961898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */; }; + AB9A1F971898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */; }; + AB9A1F981898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */; }; ABA6574B14511EC90077E5E9 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; }; ABACB8DC1710B621003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; ABACB8DD1710B656003B845D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABACB8DB1710B621003B845D /* AudioToolbox.framework */; }; @@ -888,6 +894,9 @@ AB901BE31420707D00348EEC /* Norwegian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = ""; }; AB901BE41420708200348EEC /* Romanian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Romanian; path = translations/Romanian.lproj/Localizable.strings; sourceTree = ""; }; AB9971CE134EDA0800531BA7 /* cocoa_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_globals.h; sourceTree = ""; }; + AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DisplayToggle_420x420.png; path = images/Icon_DisplayToggle_420x420.png; sourceTree = ""; }; + AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameAdvance_420x420.png; path = images/Icon_FrameAdvance_420x420.png; sourceTree = ""; }; + AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = images/Icon_FrameJump_420x420.png; sourceTree = ""; }; ABA6574914511EC90077E5E9 /* cocoa_cheat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_cheat.h; sourceTree = ""; }; ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_cheat.mm; sourceTree = ""; }; ABACB8DB1710B621003B845D /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; @@ -1539,6 +1548,7 @@ AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + AB9A1F901898F0E7000DF924 /* Icon_DisplayToggle_420x420.png */, AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, @@ -1550,6 +1560,8 @@ AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + AB9A1F931898F0F7000DF924 /* Icon_FrameAdvance_420x420.png */, + AB9A1F941898F0F7000DF924 /* Icon_FrameJump_420x420.png */, ABBCA20D187D4BED00383DBE /* Icon_GuitarGrip_Button_Blue_512x512.png */, ABBCA20E187D4BED00383DBE /* Icon_GuitarGrip_Button_Green_512x512.png */, ABBCA20F187D4BED00383DBE /* Icon_GuitarGrip_Button_Red_512x512.png */, @@ -2020,6 +2032,7 @@ ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */, + AB9A1F981898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */, AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */, AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */, AB0F290514BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */, @@ -2051,11 +2064,13 @@ AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */, AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_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 */, AB0F29AD14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */, AB0F29AE14BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */, AB0F29AF14BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */, + AB9A1F961898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */, AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */, AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */, AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */, @@ -2110,6 +2125,7 @@ AB796CB915CDCBA200C59155 /* Icon_VolumeOneThird_16x16.png in Resources */, AB796CBA15CDCBA200C59155 /* Icon_VolumeTwoThird_16x16.png in Resources */, AB796CBB15CDCBA200C59155 /* Icon_Execute_420x420.png in Resources */, + AB9A1F971898F0F7000DF924 /* Icon_FrameJump_420x420.png in Resources */, AB796CBC15CDCBA200C59155 /* Icon_Pause_420x420.png in Resources */, AB796CBD15CDCBA200C59155 /* Icon_Speed1x_420x420.png in Resources */, AB796CBE15CDCBA200C59155 /* Icon_Speed2x_420x420.png in Resources */, @@ -2141,11 +2157,13 @@ AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */, AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */, AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_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 */, AB796CDD15CDCBA200C59155 /* Icon_DSButtonX_420x420.png in Resources */, AB796CDE15CDCBA200C59155 /* Icon_DSButtonY_420x420.png in Resources */, AB796CDF15CDCBA200C59155 /* Icon_Emulation_420x420.png in Resources */, + AB9A1F951898F0F7000DF924 /* Icon_FrameAdvance_420x420.png in Resources */, AB796CE015CDCBA200C59155 /* Icon_Input_420x420.png in Resources */, AB796CE115CDCBA200C59155 /* Icon_Microphone_420x420.png in Resources */, AB796CE215CDCBA200C59155 /* Icon_OpenROM_420x420.png in Resources */, diff --git a/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj index 2d4b66c80..1e1c0210e 100644 --- a/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj +++ b/desmume/src/cocoa/DeSmuME (Xcode 5).xcodeproj/project.pbxproj @@ -672,6 +672,12 @@ ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; ABD42047172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; ABD42048172319D1006A9B46 /* FileMigrationDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */; }; + ABDDF7C51898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */; }; + ABDDF7C61898F024007583C1 /* Icon_DisplayToggle_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */; }; + ABDDF7C91898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */; }; + ABDDF7CA1898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */; }; + ABDDF7CB1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */; }; + ABDDF7CC1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */; }; ABE5DE95143F781900835AD8 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; ABE5DFE5143FB1DA00835AD8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; ABE6702B1415DE6C00E8E4C9 /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; @@ -703,7 +709,7 @@ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; AB0038A61872A96700B0B055 /* Image_PaddleController.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Image_PaddleController.png; path = images/Image_PaddleController.png; sourceTree = ""; }; - AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; + AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 2483028224; lastKnownFileType = text.plist.strings; name = English; path = translations/English.lproj/InfoPlist.strings; sourceTree = ""; }; AB00E87D14205EBC00DE561F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/MainMenu.xib; sourceTree = ""; }; AB00E89114205ECC00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = English; path = translations/English.lproj/Localizable.strings; sourceTree = ""; }; AB01005C170D07AF00D70FBE /* InputProfileController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputProfileController.h; sourceTree = ""; }; @@ -1141,6 +1147,9 @@ ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timestretcher.cpp; sourceTree = ""; }; ABD42045172319D1006A9B46 /* FileMigrationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileMigrationDelegate.h; sourceTree = ""; }; ABD42046172319D1006A9B46 /* FileMigrationDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileMigrationDelegate.mm; sourceTree = ""; }; + ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DisplayToggle_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png; sourceTree = ""; }; + ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameAdvance_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_FrameAdvance_420x420.png; sourceTree = ""; }; + ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = ../../../../../../../Volumes/rogerman/desmume/trunk/desmume/src/cocoa/images/Icon_FrameJump_420x420.png; sourceTree = ""; }; ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_videofilter.h; sourceTree = ""; }; ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_videofilter.mm; sourceTree = ""; }; ABE670251415DE6C00E8E4C9 /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = ""; }; @@ -1539,6 +1548,7 @@ AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + ABDDF7C41898F024007583C1 /* Icon_DisplayToggle_420x420.png */, AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, @@ -1550,6 +1560,8 @@ AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + ABDDF7C71898F032007583C1 /* Icon_FrameAdvance_420x420.png */, + ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */, AB681013187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Blue_512x512.png */, AB681014187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Green_512x512.png */, AB681015187D4AEF0049F2C2 /* Icon_GuitarGrip_Button_Red_512x512.png */, @@ -2020,6 +2032,7 @@ ABC3AF3014B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */, ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, + ABDDF7CC1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */, AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */, AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */, AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */, @@ -2051,11 +2064,13 @@ AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */, AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */, AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_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 */, AB0F29A714BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */, AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */, AB681028187D4AEF0049F2C2 /* Icon_Piano_256x256.png in Resources */, + ABDDF7CA1898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */, AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */, AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */, @@ -2110,6 +2125,7 @@ AB796CB815CDCBA200C59155 /* Icon_VolumeMute_16x16.png in Resources */, AB796CB915CDCBA200C59155 /* Icon_VolumeOneThird_16x16.png in Resources */, AB796CBA15CDCBA200C59155 /* Icon_VolumeTwoThird_16x16.png in Resources */, + ABDDF7CB1898F032007583C1 /* Icon_FrameJump_420x420.png in Resources */, AB796CBB15CDCBA200C59155 /* Icon_Execute_420x420.png in Resources */, AB796CBC15CDCBA200C59155 /* Icon_Pause_420x420.png in Resources */, AB796CBD15CDCBA200C59155 /* Icon_Speed1x_420x420.png in Resources */, @@ -2141,11 +2157,13 @@ AB796CD215CDCBA200C59155 /* Icon_ArrowDown_420x420.png in Resources */, AB796CD315CDCBA200C59155 /* Icon_ArrowLeft_420x420.png in Resources */, AB796CD415CDCBA200C59155 /* Icon_ArrowRight_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 */, AB796CD715CDCBA200C59155 /* Icon_DSButtonA_420x420.png in Resources */, AB796CD815CDCBA200C59155 /* Icon_DSButtonB_420x420.png in Resources */, AB681027187D4AEF0049F2C2 /* Icon_Piano_256x256.png in Resources */, + ABDDF7C91898F032007583C1 /* Icon_FrameAdvance_420x420.png in Resources */, AB796CD915CDCBA200C59155 /* Icon_DSButtonL_420x420.png in Resources */, AB796CDA15CDCBA200C59155 /* Icon_DSButtonR_420x420.png in Resources */, AB796CDB15CDCBA200C59155 /* Icon_DSButtonSelect_420x420.png in Resources */, diff --git a/desmume/src/cocoa/DefaultKeyMappings.plist b/desmume/src/cocoa/DefaultKeyMappings.plist index 3c93abd51..5f5056ce2 100644 --- a/desmume/src/cocoa/DefaultKeyMappings.plist +++ b/desmume/src/cocoa/DefaultKeyMappings.plist @@ -39,6 +39,8 @@ Piano: High C Paddle Execute/Pause + Frame Advance + Frame Jump Reset Mute/Unmute Load State Slot @@ -46,6 +48,7 @@ Copy Screen Rotate Display Left Rotate Display Right + Toggle All Displays Set Speed Enable/Disable Speed Limiter Enable/Disable Auto Frame Skip @@ -622,6 +625,10 @@ Forward Delete + Frame Advance + + Frame Jump + Reset @@ -679,6 +686,8 @@ 90 + Toggle All Displays + Set Speed diff --git a/desmume/src/cocoa/DefaultUserPrefs.plist b/desmume/src/cocoa/DefaultUserPrefs.plist index 8df98e9c5..ded56e410 100644 --- a/desmume/src/cocoa/DefaultUserPrefs.plist +++ b/desmume/src/cocoa/DefaultUserPrefs.plist @@ -164,6 +164,10 @@ Forward Delete + Frame Advance + + Frame Jump + Guitar Grip: Blue @@ -611,6 +615,8 @@ Return + Toggle All Displays + Touch diff --git a/desmume/src/cocoa/cocoa_core.h b/desmume/src/cocoa/cocoa_core.h index 8d3151e1b..9d4a85546 100644 --- a/desmume/src/cocoa/cocoa_core.h +++ b/desmume/src/cocoa/cocoa_core.h @@ -35,6 +35,7 @@ typedef struct int state; bool isFrameSkipEnabled; size_t frameCount; + NSUInteger frameJumpTarget; int framesToSkip; uint64_t timeBudgetMachAbsTime; bool exitThread; @@ -72,6 +73,8 @@ typedef struct NSInteger cpuEmulationEngine; NSInteger slot1DeviceType; NSString *slot1StatusText; + NSString *frameStatus; + NSString *executionSpeedStatus; NSURL *slot1R4URL; @@ -110,6 +113,8 @@ typedef struct @property (assign) NSInteger maxJITBlockSize; @property (assign) NSInteger slot1DeviceType; @property (assign) NSString *slot1StatusText; +@property (assign) NSString *frameStatus; +@property (assign) NSString *executionSpeedStatus; @property (copy) NSURL *arm9ImageURL; @property (copy) NSURL *arm7ImageURL; @@ -133,6 +138,9 @@ typedef struct - (void) restoreCoreState; - (void) reset; +- (NSUInteger) frameNumber; +- (void) frameJumpTo:(NSUInteger)targetFrameNum; +- (void) frameJump:(NSUInteger)relativeFrameNum; - (void) addOutput:(CocoaDSOutput *)theOutput; - (void) removeOutput:(CocoaDSOutput *)theOutput; diff --git a/desmume/src/cocoa/cocoa_core.mm b/desmume/src/cocoa/cocoa_core.mm index 3626cacaa..9c77fba63 100644 --- a/desmume/src/cocoa/cocoa_core.mm +++ b/desmume/src/cocoa/cocoa_core.mm @@ -31,6 +31,7 @@ #include "../NDSSystem.h" #include "../slot1.h" #include "../slot2.h" +#include "../movie.h" #undef BOOL @@ -65,6 +66,8 @@ volatile bool execute = true; @dynamic maxJITBlockSize; @synthesize slot1DeviceType; @synthesize slot1StatusText; +@synthesize frameStatus; +@synthesize executionSpeedStatus; @dynamic arm9ImageURL; @dynamic arm7ImageURL; @@ -122,6 +125,7 @@ static BOOL isCoreStarted = NO; threadParam.isFrameSkipEnabled = true; threadParam.frameCount = 0; threadParam.framesToSkip = 0; + threadParam.frameJumpTarget = 0; uint64_t timeBudgetNanoseconds = (uint64_t)(DS_SECONDS_PER_FRAME * 1000000000.0 / speedScalar); AbsoluteTime timeBudgetAbsTime = NanosecondsToAbsolute(*(Nanoseconds *)&timeBudgetNanoseconds); @@ -136,6 +140,9 @@ static BOOL isCoreStarted = NO; [cdsGPU setMutexProducer:self.mutexCoreExecute]; + frameStatus = @"---"; + executionSpeedStatus = @"1.00x"; + return self; } @@ -497,16 +504,33 @@ static BOOL isCoreStarted = NO; { pthread_mutex_lock(&threadParam.mutexThreadExecute); - if (threadParam.state == CORESTATE_PAUSE) + if (threadParam.state == CORESTATE_EXECUTE || threadParam.state == CORESTATE_PAUSE) { - prevCoreState = CORESTATE_PAUSE; - } - else - { - prevCoreState = CORESTATE_EXECUTE; + prevCoreState = threadParam.state; } threadParam.state = coreState; + threadParam.framesToSkip = 0; + + switch (coreState) + { + case CORESTATE_PAUSE: + case CORESTATE_FRAMEADVANCE: + [self setFrameStatus:[NSString stringWithFormat:@"%lld", (unsigned long)[self frameNumber]]]; + break; + + case CORESTATE_EXECUTE: + [self setFrameStatus:@"Executing..."]; + break; + + case CORESTATE_FRAMEJUMP: + [self setFrameStatus:[NSString stringWithFormat:@"Jumping to frame %lld.", (unsigned long)threadParam.frameJumpTarget]]; + break; + + default: + break; + } + pthread_cond_signal(&threadParam.condThreadExecute); pthread_mutex_unlock(&threadParam.mutexThreadExecute); } @@ -622,12 +646,16 @@ static BOOL isCoreStarted = NO; pthread_mutex_lock(&threadParam.mutexThreadExecute); threadParam.timeBudgetMachAbsTime = GetFrameAbsoluteTime(1.0/theSpeed); pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self setExecutionSpeedStatus:[NSString stringWithFormat:@"%1.2fx", theSpeed]]; } else { pthread_mutex_lock(&threadParam.mutexThreadExecute); threadParam.timeBudgetMachAbsTime = 0; pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self setExecutionSpeedStatus:@"Unlimited"]; } } @@ -721,6 +749,36 @@ static BOOL isCoreStarted = NO; self.masterExecute = YES; } +- (NSUInteger) frameNumber +{ + pthread_mutex_lock(&threadParam.mutexCoreExecute); + const NSUInteger currFrameNum = currFrameCounter; + pthread_mutex_unlock(&threadParam.mutexCoreExecute); + + return currFrameNum; +} + +- (void) frameJumpTo:(NSUInteger)targetFrameNum +{ + pthread_mutex_lock(&threadParam.mutexThreadExecute); + + threadParam.frameJumpTarget = targetFrameNum; + if (targetFrameNum <= (NSUInteger)currFrameCounter) + { + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + return; + } + + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self setCoreState:CORESTATE_FRAMEJUMP]; +} + +- (void) frameJump:(NSUInteger)relativeFrameNum +{ + [self frameJumpTo:[self frameNumber] + relativeFrameNum]; +} + - (void) addOutput:(CocoaDSOutput *)theOutput { pthread_mutex_lock(&threadParam.mutexOutputList); @@ -818,6 +876,7 @@ static void* RunCoreThread(void *arg) CoreThreadParam *param = (CoreThreadParam *)arg; CocoaDSCore *cdsCore = (CocoaDSCore *)param->cdsCore; NSMutableArray *cdsOutputList = [cdsCore cdsOutputList]; + NSUInteger frameNum = 0; uint64_t startTime = 0; uint64_t timeBudget = 0; // Need local variable to ensure that param->timeBudgetMachAbsTime is thread-safe. @@ -827,7 +886,7 @@ static void* RunCoreThread(void *arg) pthread_mutex_lock(¶m->mutexThreadExecute); timeBudget = param->timeBudgetMachAbsTime; - while (!(param->state == CORESTATE_EXECUTE && execute && !param->exitThread)) + while (!(param->state != CORESTATE_PAUSE && execute && !param->exitThread)) { pthread_cond_wait(¶m->condThreadExecute, ¶m->mutexThreadExecute); startTime = mach_absolute_time(); @@ -840,9 +899,14 @@ static void* RunCoreThread(void *arg) break; } - // Get the user's input, execute a single emulation frame, and generate - // the frame output. - [(CocoaDSController *)param->cdsController flush]; + if (param->state != CORESTATE_FRAMEJUMP) + { + [(CocoaDSController *)param->cdsController flush]; + } + else + { + [(CocoaDSController *)param->cdsController flushEmpty]; + } NDS_beginProcessingInput(); // Shouldn't need to do any special processing steps in between. @@ -852,6 +916,7 @@ static void* RunCoreThread(void *arg) // Execute the frame and increment the frame counter. pthread_mutex_lock(¶m->mutexCoreExecute); NDS_exec(); + frameNum = currFrameCounter; pthread_mutex_unlock(¶m->mutexCoreExecute); // Check if an internal execution error occurred that halted the emulation. @@ -869,36 +934,107 @@ static void* RunCoreThread(void *arg) } pthread_mutex_lock(¶m->mutexOutputList); - for(CocoaDSOutput *cdsOutput in cdsOutputList) + + switch (param->state) { - if (param->framesToSkip > 0 && [cdsOutput isKindOfClass:[CocoaDSDisplay class]]) + case CORESTATE_EXECUTE: { - continue; + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + if (param->framesToSkip > 0 && [cdsOutput isKindOfClass:[CocoaDSDisplay class]]) + { + continue; + } + + [cdsOutput doCoreEmuFrame]; + } + break; } - - [cdsOutput doCoreEmuFrame]; + + case CORESTATE_FRAMEADVANCE: + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + [cdsOutput doCoreEmuFrame]; + } + break; + + case CORESTATE_FRAMEJUMP: + { + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + if ([cdsOutput isKindOfClass:[CocoaDSDisplay class]] && (param->framesToSkip == 0 || frameNum >= param->frameJumpTarget)) + { + [cdsOutput doCoreEmuFrame]; + } + } + break; + } + + default: + break; } + pthread_mutex_unlock(¶m->mutexOutputList); - // Determine the number of frames to skip based on how much time "debt" - // we owe on timeBudget. - if (param->isFrameSkipEnabled) + switch (param->state) { - if (param->framesToSkip > 0) + case CORESTATE_EXECUTE: { - NDS_SkipNextFrame(); - param->framesToSkip--; + // Determine the number of frames to skip based on how much time "debt" + // we owe on timeBudget. + if (param->isFrameSkipEnabled) + { + if (param->framesToSkip > 0) + { + NDS_SkipNextFrame(); + param->framesToSkip--; + } + else + { + param->framesToSkip = CalculateFrameSkip(timeBudget, startTime); + } + } + break; } - else + + case CORESTATE_FRAMEJUMP: { - param->framesToSkip = CalculateFrameSkip(timeBudget, startTime); + if (param->framesToSkip > 0) + { + NDS_SkipNextFrame(); + param->framesToSkip--; + } + else + { + param->framesToSkip = (int)((DS_FRAMES_PER_SECOND * 1.0) + 0.85); + } + break; } + + default: + break; } pthread_mutex_unlock(¶m->mutexThreadExecute); - // If there is any time left in the loop, go ahead and pad it. - mach_wait_until(startTime + timeBudget); + // If we doing a frame advance, switch back to pause state immediately + // after we're done with the frame. + if (param->state == CORESTATE_FRAMEADVANCE) + { + [cdsCore setCoreState:CORESTATE_PAUSE]; + } + else if (param->state == CORESTATE_FRAMEJUMP) + { + if (frameNum >= param->frameJumpTarget) + { + [cdsCore restoreCoreState]; + } + } + else + { + // If there is any time left in the loop, go ahead and pad it. + mach_wait_until(startTime + timeBudget); + } } while (!param->exitThread); diff --git a/desmume/src/cocoa/cocoa_globals.h b/desmume/src/cocoa/cocoa_globals.h index 6f3c16a47..a7d84afde 100644 --- a/desmume/src/cocoa/cocoa_globals.h +++ b/desmume/src/cocoa/cocoa_globals.h @@ -487,8 +487,10 @@ enum */ enum { - CORESTATE_EXECUTE = 0, - CORESTATE_PAUSE + CORESTATE_PAUSE = 0, + CORESTATE_EXECUTE, + CORESTATE_FRAMEADVANCE, + CORESTATE_FRAMEJUMP }; /* @@ -514,6 +516,13 @@ enum MICMODE_SINE_WAVE }; +enum +{ + FRAMEJUMP_TYPE_FORWARD = 0, + FRAMEJUMP_TYPE_TOFRAME = 1, + FRAMEJUMP_TYPE_NEXTMARKER = 2 +}; + enum { PADDLE_CONTROL_RELATIVE = 0, diff --git a/desmume/src/cocoa/cocoa_input.h b/desmume/src/cocoa/cocoa_input.h index f216b1dcc..8e5f8906d 100644 --- a/desmume/src/cocoa/cocoa_input.h +++ b/desmume/src/cocoa/cocoa_input.h @@ -83,5 +83,6 @@ enum - (void) setMicrophoneState:(BOOL)theState inputMode:(const NSInteger)inputMode; - (void) setSineWaveGeneratorFrequency:(const double)freq; - (void) flush; +- (void) flushEmpty; @end diff --git a/desmume/src/cocoa/cocoa_input.mm b/desmume/src/cocoa/cocoa_input.mm index 70c1139d7..5022bc85a 100644 --- a/desmume/src/cocoa/cocoa_input.mm +++ b/desmume/src/cocoa/cocoa_input.mm @@ -235,4 +235,87 @@ } } +- (void) flushEmpty +{ + // Setup the DS pad. + NDS_setPad(false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false); + + // Setup the DS touch pad. + NDS_releaseTouch(); + + // Setup the inputs from SLOT-2 devices. + const NDS_SLOT2_TYPE slot2DeviceType = slot2_GetSelectedType(); + switch (slot2DeviceType) + { + case NDS_SLOT2_GUITARGRIP: + guitarGrip_setKey(false, + false, + false, + false); + break; + + case NDS_SLOT2_EASYPIANO: + piano_setKey(false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false); + break; + + case NDS_SLOT2_PADDLE: + // Do nothing. + break; + + default: + break; + } + + // Setup the DS mic. + AudioGenerator *selectedGenerator = &nullSampleGenerator; + + NDS_setMic(false); + + static const bool useBufferedSource = false; + Mic_SetUseBufferedSource(useBufferedSource); + if (useBufferedSource) + { + static u8 generatedSampleBuffer[(size_t)(MIC_MAX_BUFFER_SAMPLES + 0.5)] = {0}; + static const size_t requestedSamples = MIC_MAX_BUFFER_SAMPLES; + + const size_t availableSamples = micInputBuffer.getAvailableElements(); + if (availableSamples < requestedSamples) + { + micInputBuffer.drop(requestedSamples - availableSamples); + } + + selectedGenerator->generateSampleBlock(requestedSamples, generatedSampleBuffer); + micInputBuffer.write(generatedSampleBuffer, requestedSamples); + } + else + { + Mic_SetSelectedDirectSampleGenerator(selectedGenerator); + } +} + @end diff --git a/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png b/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png new file mode 100644 index 000000000..8ea8225aa Binary files /dev/null and b/desmume/src/cocoa/images/Icon_DisplayToggle_420x420.png differ diff --git a/desmume/src/cocoa/images/Icon_FrameAdvance_420x420.png b/desmume/src/cocoa/images/Icon_FrameAdvance_420x420.png new file mode 100644 index 000000000..37af722a8 Binary files /dev/null and b/desmume/src/cocoa/images/Icon_FrameAdvance_420x420.png differ diff --git a/desmume/src/cocoa/images/Icon_FrameJump_420x420.png b/desmume/src/cocoa/images/Icon_FrameJump_420x420.png new file mode 100644 index 000000000..3fbc426e8 Binary files /dev/null and b/desmume/src/cocoa/images/Icon_FrameJump_420x420.png differ diff --git a/desmume/src/cocoa/translations/English.lproj/InfoPlist.strings b/desmume/src/cocoa/translations/English.lproj/InfoPlist.strings index a93b49170..4a772b78f 100644 Binary files a/desmume/src/cocoa/translations/English.lproj/InfoPlist.strings and b/desmume/src/cocoa/translations/English.lproj/InfoPlist.strings differ diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings index 923b737e5..ce7dfbf68 100644 Binary files a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings and b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings differ diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib index de606cf9e..c4ae70573 100644 --- a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib +++ b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib @@ -2,10 +2,10 @@ 1050 - 12F45 + 13B42 851 - 1187.40 - 626.00 + 1265 + 696.00 com.apple.InterfaceBuilder.CocoaPlugin 851 @@ -13,6 +13,7 @@ YES + YES @@ -396,7 +397,7 @@ - + YES YES @@ -526,78 +527,75 @@ Emulation YES - + - Speed Limit - - 2147483647 - - - submenuAction: - - - Speed Limit - - YES - - - Half - - 2147483647 - - - 50 - - - - Normal - - 2147483647 - - - 100 - - - - Double - - 2147483647 - - - 200 - - - - YES - YES - - - 2147483647 - - - -1 - - - - Custom... - - 2147483647 - - - -1 - - - - - - - Disable Speed Limit + Show Execution Control... 2147483647 - + + + YES + YES + + + 2147483647 + + + + + + Execute + + 2147483647 + + + + + + Pause + + 2147483647 + + + + + + Frame Advance + + 2147483647 + + + + + + Frame Jump + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Reset + + 2147483647 + + + + YES YES @@ -641,32 +639,6 @@ - - - YES - YES - - - 2147483647 - - - - - - Execute - - 2147483647 - - - - - - Reset - - 2147483647 - - - YES @@ -693,6 +665,50 @@ + + + YES + YES + + + 2147483647 + + + + + + Show Emulation Settings... + + 2147483647 + + + + + + Show 3D Rendering Settings... + + 2147483647 + + + + + + Show Sound Settings... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + ROM Save Type @@ -1438,40 +1454,6 @@ - - - YES - YES - - - 2147483647 - - - - - - Show 3D Rendering Settings... - - 2147483647 - - - - - - Show Emulation Settings... - - 2147483647 - - - - - - Show Sound Settings... - - 2147483647 - - - YES @@ -1536,6 +1518,25 @@ + + + YES + YES + + + 2147483647 + + + + + + Toggle All Displays + t + 1048576 + 2147483647 + + + @@ -1708,69 +1709,6 @@ _NSMainMenu - - Media - - 2147483647 - - - submenuAction: - - - Media - - YES - - - New Movie Recording - - 2147483647 - - - - - - Open Movie... - - 2147483647 - - - - - - Open Recent Movie - - 2147483647 - - - submenuAction: - - - Open Recent Movie - - YES - - - Clear Menu - - 2147483647 - - - - - - - - - Close Movie - - 2147483647 - - - - - - AppDelegate @@ -1783,7 +1721,7 @@ 15 2 - {{81, 659}, {550, 450}} + {{53, 296}, {550, 450}} 1148716032 About DeSmuME NSWindow @@ -1855,7 +1793,7 @@ 2322 - {490, 244} + {505, 244} @@ -1873,7 +1811,7 @@ - 490 + 505 1 @@ -1940,11 +1878,11 @@ 1 6 - {495, 10000000} + {505, 10000000} - {490, 244} + {505, 244} @@ -1975,7 +1913,7 @@ 256 - {{490, 0}, {15, 244}} + {{489, 0}, {16, 244}} NO @@ -2455,6 +2393,7 @@ NO + 1 @@ -2478,18 +2417,19 @@ NO + 1 {550, 450} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} YES 7 2 - {{121, 962}, {400, 100}} + {{94, 633}, {400, 100}} 1685588992 DeSmuME Preferences NSWindow @@ -2714,7 +2654,7 @@ 256 {400, 100} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} YES @@ -2751,6 +2691,7 @@ NO + 1 @@ -2789,6 +2730,7 @@ NO + 1 @@ -2807,6 +2749,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 {{1, 1}, {484, 81}} @@ -2865,6 +2808,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -2903,6 +2847,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 {{1, 1}, {484, 45}} @@ -3182,6 +3127,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3258,6 +3204,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3746,6 +3693,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 {640, 495} @@ -3796,6 +3744,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3813,6 +3762,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -3996,6 +3946,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -4013,6 +3964,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA NO + 1 @@ -4800,6 +4752,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4882,6 +4835,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4925,6 +4879,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4942,6 +4897,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4959,6 +4915,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4976,6 +4933,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -4993,6 +4951,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {429, 141}} @@ -5324,6 +5283,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5342,6 +5302,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5615,6 +5576,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5632,6 +5594,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5758,6 +5721,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -5863,6 +5827,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -6104,6 +6069,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -6118,7 +6084,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 12}, {148, 18}} + {{16, 12}, {149, 18}} YES @@ -6920,6 +6886,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7015,7 +6982,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 32}, {197, 18}} + {{16, 32}, {198, 18}} YES @@ -7355,6 +7322,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7431,6 +7399,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7489,7 +7458,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 32}, {145, 18}} + {{16, 32}, {146, 18}} YES @@ -7643,7 +7612,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 117}, {182, 18}} + {{16, 117}, {183, 18}} YES @@ -7681,6 +7650,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7698,6 +7668,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7738,6 +7709,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7755,6 +7727,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7861,7 +7834,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 61}, {205, 18}} + {{16, 61}, {206, 18}} YES @@ -7899,6 +7872,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -7916,6 +7890,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8282,6 +8257,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8322,6 +8298,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8452,6 +8429,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8491,6 +8469,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {452, 115} @@ -8815,6 +8794,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -8935,6 +8915,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9042,6 +9023,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {620, 267} @@ -9091,6 +9073,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9171,6 +9154,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9188,6 +9172,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9268,6 +9253,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {314, 74}} @@ -9355,6 +9341,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9394,6 +9381,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 263} @@ -9576,6 +9564,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9637,6 +9626,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 125} @@ -9819,6 +9809,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9880,6 +9871,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 125} @@ -9920,6 +9912,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9959,6 +9952,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9976,6 +9970,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -9993,6 +9988,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10010,6 +10006,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10027,6 +10024,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10044,6 +10042,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10084,6 +10083,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10165,6 +10165,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10702,6 +10703,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {516, 283} @@ -10742,6 +10744,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10833,6 +10836,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -10872,6 +10876,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {314, 46}} @@ -10993,6 +10998,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11012,6 +11018,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {314, 39}} @@ -11058,6 +11065,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11077,6 +11085,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {350, 240} @@ -11119,6 +11128,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11138,6 +11148,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11155,6 +11166,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11172,6 +11184,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11189,6 +11202,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11206,6 +11220,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11223,6 +11238,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11638,6 +11654,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11699,6 +11716,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -11759,6 +11777,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12130,6 +12149,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12190,6 +12210,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {380, 200} @@ -12229,6 +12250,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12290,6 +12312,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12359,11 +12382,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - + + -2147483392 {{256, 0}, {16, 17}} - YES @@ -12517,7 +12539,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4 - {{20, 49}, {272, 353}} @@ -12688,7 +12709,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{16, 402}, {129, 18}} + {{16, 402}, {130, 18}} YES @@ -12724,6 +12745,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12764,6 +12786,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12781,6 +12804,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12897,6 +12921,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -12942,6 +12967,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13023,6 +13049,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13040,6 +13067,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13143,6 +13171,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13160,6 +13189,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13186,11 +13216,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - + + -2147483392 {{224, 0}, {16, 17}} - YES @@ -13311,7 +13340,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4 - {{20, 20}, {288, 194}} @@ -13540,6 +13568,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13557,6 +13586,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13659,6 +13689,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13677,6 +13708,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13695,6 +13727,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13713,6 +13746,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {500, 416} @@ -13809,6 +13843,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 255 NO + 1 @@ -13826,6 +13861,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13843,6 +13879,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {328, 134} @@ -13869,6 +13906,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13886,6 +13924,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13933,6 +13972,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -13950,6 +13990,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14084,6 +14125,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14101,6 +14143,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14144,6 +14187,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14216,6 +14260,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14233,6 +14278,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14251,6 +14297,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14268,6 +14315,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14753,6 +14801,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {320, 290} @@ -14816,6 +14865,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {320, 290} @@ -14873,6 +14923,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -14913,6 +14964,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15227,6 +15279,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15268,6 +15321,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15371,6 +15425,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15773,6 +15828,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {512, 66}} @@ -15836,6 +15892,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -15865,6 +15922,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15884,6 +15942,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15903,6 +15962,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -15932,6 +15992,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15952,6 +16013,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15971,6 +16033,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -15990,6 +16053,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16038,6 +16102,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16087,6 +16152,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16116,6 +16182,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16263,6 +16330,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16481,6 +16549,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16558,6 +16627,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16577,6 +16647,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16644,6 +16715,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -16663,6 +16735,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16670,7 +16743,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NSView - + 268 YES @@ -16691,7 +16764,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{75, 96}, {254, 204}} - _NS:2165 YES @@ -16715,7 +16787,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{127, 12}, {150, 32}} - _NS:610 YES @@ -16739,7 +16810,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{17, 60}, {366, 28}} - _NS:3939 YES @@ -16753,11 +16823,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} - - _NS:1109 NSView @@ -16820,6 +16889,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -16827,7 +16897,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NSView - + 268 YES @@ -16836,7 +16906,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{17, 60}, {366, 28}} - _NS:3939 YES @@ -16850,13 +16919,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 268 {{127, 12}, {150, 32}} - _NS:610 YES @@ -16892,7 +16961,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{87, 96}, {230, 204}} - _NS:2165 YES @@ -16913,8 +16981,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {400, 320} - - _NS:1109 NSView @@ -16999,6 +17065,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -17064,6 +17131,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {400, 320} @@ -17371,6 +17439,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {250, 85}} @@ -17854,6 +17923,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -17871,6 +17941,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {250, 86}} @@ -18272,6 +18343,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18308,6 +18380,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18325,6 +18398,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18342,6 +18416,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18359,6 +18434,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18376,6 +18452,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18395,6 +18472,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -18414,6 +18492,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {260, 328} @@ -18430,10 +18509,949 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + 23 + 2 + {{144, 214}, {254, 262}} + -461896704 + Execution Control + NSPanel + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{0, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_Execute_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{32, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_Pause_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{64, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_FrameAdvance_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{222, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_Reset_420x420 + + + + 400 + 75 + + NO + + + + 268 + {{96, 230}, {32, 32}} + + _NS:2530 + YES + + 67108864 + 134217728 + + + _NS:2530 + + -2033958912 + 134 + + NSImage + Icon_FrameJump_420x420 + + + + 400 + 75 + + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + + YES + + {{176, 53}, {64, 19}} + + _NS:817 + YES + + -1804599231 + 272761856 + + + + YES + + YES + allowsFloats + formatterBehavior + groupingSize + locale + negativeInfinitySymbol + nilSymbol + numberStyle + positiveFormat + positiveInfinitySymbol + usesGroupingSeparator + + + YES + + + + + -∞ + + + # + +∞ + + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + _NS:817 + + YES + + + + NO + 1 + + + + 268 + + YES + + {{176, 33}, {64, 19}} + + _NS:817 + YES + + -1804599231 + -1874721792 + + + + + YES + + YES + allowsFloats + formatterBehavior + locale + negativeInfinitySymbol + nilSymbol + positiveInfinitySymbol + + + YES + + + + -∞ + + +∞ + + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + _NS:817 + + YES + + + + NO + 1 + + + + 268 + {{18, 14}, {150, 58}} + + _NS:736 + YES + NO + 3 + 1 + + YES + + -2080374784 + 131072 + Jump forward frames: + + + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + Jump to frame number: + + + 1 + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw +IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ +29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 +dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA +AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG +AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ +0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ +7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ +5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ +3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD +AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns +AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ +6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ +/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ +///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl +YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA +AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD +AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu +AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw +cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA +AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA +BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA +AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA +AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 +cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD +AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH +SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF +hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8 +vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt +7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq +Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo +aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e +n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX +2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW +FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O +Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6 +ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt +rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA +AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA +AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl +A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq +DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU +HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8 +MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v +UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/ +eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj +rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn +5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh +AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK +CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY +GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95 +MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S +UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2 +d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV +pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK +0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf// +AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw +BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA +FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H +LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh +Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ +h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp +svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb +1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX +8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE +AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg +QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA + + + + + + + + 400 + 75 + + + 603979776 + 131072 + Jump to next marker + + + 2 + 1211912448 + 0 + + 12779520 + + YES + + YES + + + + YES + + YES + size + state + value + widget + + + YES + regular + normal + + radiobutton + + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + {150, 18} + {4, 2} + 1151868928 + NSActionCell + + 67108864 + 131072 + Radio + + 1211912448 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw +IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ +29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 +dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA +AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG +AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ +0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ +7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ +5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ +3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD +AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns +AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ +6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ +/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ +///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl +YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA +AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD +AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu +AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAxIAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMSExp +bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAA +AAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAA +AhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA +A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAA +BDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 +bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA +AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA +b6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA +ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYx +OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 +LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl +c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA +AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM +CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 +cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 +AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQET +ARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp +AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML +AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+ +BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI +BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghu +CIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz +CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e +DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx +EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTw +FRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg +GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3D +HeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLd +IwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx +KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C +Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT +NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn +PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPA +RANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi +TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSP +VNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J +XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT +Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw +cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzh +fUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp +iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK +lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH +obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h +rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8Ibyb +vRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2 +y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 +2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb +6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn ++3f8B/yY/Sn9uv5L/tz/bf//A + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {258, 82}} + + _NS:21 + + + {{-3, 124}, {260, 98}} + + _NS:18 + {0, 0} + + 67108864 + 0 + Frame Jump Properties + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 274 + + YES + + + 268 + {{18, 30}, {222, 16}} + + YES + + -2080112384 + 262144 + + + 10 + 0.0 + 1 + 0.0 + 11 + 1 + NO + NO + + NO + + + + 268 + {{219, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 10x + + + + + + NO + 1 + + + + 268 + {{52, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 2x + + + + + + NO + 1 + + + + 268 + {{94, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 4x + + + + + + NO + 1 + + + + 268 + {{136, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 6x + + + + + + NO + 1 + + + + 268 + {{178, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 8x + + + + + + NO + 1 + + + + 268 + {{151, 62}, {89, 17}} + + 100 + YES + + 67108864 + 134348800 + Normal Speed + + + -2038153216 + 164 + + + 400 + 75 + + NO + + + + 268 + {{15, 14}, {133, 14}} + + + YES + + 68157504 + 4326400 + Execution speed set to: + + + + + + NO + 1 + + + + 268 + {{150, 14}, {93, 14}} + + YES + + 68157504 + 4326400 + + statusText + + + + + NO + 1 + + + + 268 + {{15, 62}, {98, 18}} + + + YES + + -2080374784 + 131072 + Enable Limiter + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{9, 45}, {28, 11}} + + + YES + + 68157504 + 138675200 + 0x + + + + + + NO + 1 + + + {{1, 1}, {258, 88}} + + _NS:21 + + + {{-3, 16}, {260, 104}} + + _NS:18 + {0, 0} + + 67108864 + 0 + Execution Speed Properties + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{4, 4}, {42, 14}} + + _NS:4068 + YES + + 68157504 + 272761856 + Frame: + + _NS:4068 + + + + + NO + 1 + + + + 268 + {{48, 4}, {189, 14}} + + _NS:4068 + YES + + 68157504 + 272761856 + + + statusText + _NS:4068 + + + + + NO + 1 + + + {254, 262} + + _NS:103 + + {{0, 0}, {1440, 878}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + ExecutionControlPanel + NO + 279 2 - {{1572, 795}, {194, 241}} + {{170, 20}, {194, 241}} -461896704 HUD Settings NSPanel @@ -18675,14 +19693,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {194, 241} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} YES 279 2 - {{1651, 276}, {204, 521}} + {{1004, 215}, {204, 521}} -461896704 Set Video Output NSPanel @@ -19358,7 +20376,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {204, 521} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} DisplayVideoSettingsPanel YES @@ -19437,7 +20455,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{15, 37}, {80, 18}} + {{15, 37}, {81, 18}} YES @@ -19538,6 +20556,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -19555,6 +20574,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21436,6 +22456,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21806,7 +22827,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8215 2 - {{107, 480}, {580, 588}} + {{69, 199}, {580, 588}} -461897728 ROM Info NSPanel @@ -21875,6 +22896,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21893,6 +22915,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21911,6 +22934,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21929,6 +22953,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21951,6 +22976,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21970,6 +22996,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -21989,6 +23016,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22008,6 +23036,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {408, 116}} @@ -22063,6 +23092,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22081,6 +23111,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22099,6 +23130,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22117,6 +23149,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22135,6 +23168,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22153,6 +23187,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22172,6 +23207,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22191,6 +23227,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22210,6 +23247,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22229,6 +23267,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22248,6 +23287,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22267,6 +23307,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {216, 400}} @@ -22322,6 +23363,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22340,6 +23382,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22358,6 +23401,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22376,6 +23420,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22394,6 +23439,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22412,6 +23458,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22430,6 +23477,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22448,6 +23496,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22466,6 +23515,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22485,6 +23535,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22504,6 +23555,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22523,6 +23575,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22542,6 +23595,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22561,6 +23615,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22580,6 +23635,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22599,6 +23655,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {324, 192}} @@ -22654,6 +23711,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22673,6 +23731,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22691,6 +23750,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22710,6 +23770,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22728,6 +23789,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22747,6 +23809,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22765,6 +23828,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22784,6 +23848,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {324, 104}} @@ -22839,6 +23904,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22858,6 +23924,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22876,6 +23943,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -22894,6 +23962,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {{1, 1}, {324, 60}} @@ -22926,312 +23995,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {580, 588} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {1.7976931348623157e+308, 1.7976931348623157e+308} ROMInfoPanel YES - - 279 - 2 - {{1360, 99}, {467, 128}} - -461897728 - Set Speed Limit - NSPanel - - - {1.7976931348623157e+308, 1.7976931348623157e+308} - - - 256 - - YES - - - 268 - {{30, 43}, {411, 26}} - - - YES - - -2080112384 - 0 - - - 10 - 0.0 - 1 - 0.0 - 11 - 1 - NO - NO - - NO - - - - 268 - {{20, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 0x - - - - - - NO - - - - 268 - {{412, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 10x - - - - - - NO - - - - 268 - {{98, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 2x - - - - - - NO - - - - 268 - {{177, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 4x - - - - - - NO - - - - 268 - {{255, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 6x - - - - - - NO - - - - 268 - {{335, 70}, {38, 17}} - - - YES - - 68157504 - 138413056 - 8x - - - - - - NO - - - - 268 - {{32, 18}, {133, 19}} - - - 100 - YES - - 67108864 - 134217728 - Set to Normal Speed - - - -2038153216 - 164 - - - 400 - 75 - - NO - - - - 268 - {{203, 21}, {156, 17}} - - - YES - - 68157504 - 71304192 - Speed limit set to: - - - - - - NO - - - - 268 - {{361, 21}, {81, 17}} - - YES - - 68157504 - 4195328 - - - - YES - - YES - allowsFloats - alwaysShowsDecimalSeparator - formatterBehavior - lenient - locale - maximumFractionDigits - minimumFractionDigits - negativeFormat - negativeInfinitySymbol - nilSymbol - numberStyle - positiveFormat - positiveInfinitySymbol - usesGroupingSeparator - - - YES - - - - - - - - #0.00x - -∞ - - - #0.00x - +∞ - - - - #0.00x - #0.00x - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - %1.2fx - - - - - NO - - - - 268 - {{158, 93}, {154, 18}} - - - YES - - -2080374784 - 0 - Enable Speed Limit - - - 1211912448 - 2 - - - - - 200 - 25 - - NO - - - {467, 128} - - - {{0, 0}, {1920, 1178}} - {1.7976931348623157e+308, 1.7976931348623157e+308} - SetSpeedLimitPanel - YES - 279 2 @@ -23286,6 +24054,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23303,6 +24072,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23320,6 +24090,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23337,6 +24108,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23420,6 +24192,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23437,6 +24210,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23541,6 +24315,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23558,6 +24333,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23575,6 +24351,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23592,6 +24369,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23609,6 +24387,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23626,6 +24405,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -23704,6 +24484,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24244,6 +25025,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 {450, 35} @@ -24252,7 +25034,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7 2 - {{75, 507}, {580, 592}} + {{88, 206}, {580, 592}} 1685586944 Troubleshooting Form NSWindow @@ -24265,7 +25047,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 256 {580, 592} - {{0, 0}, {1920, 1178}} + {{0, 0}, {1440, 878}} {580, 614} {580, 614} YES @@ -24299,6 +25081,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24488,6 +25271,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24527,6 +25311,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24544,6 +25329,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24583,6 +25369,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24600,6 +25387,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24639,6 +25427,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24656,6 +25445,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24673,6 +25463,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24690,6 +25481,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24708,6 +25500,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24726,6 +25519,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -24802,6 +25596,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25133,6 +25928,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25172,6 +25968,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25189,6 +25986,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25206,6 +26004,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25223,6 +26022,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25262,6 +26062,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25279,6 +26080,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25318,6 +26120,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25335,6 +26138,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25352,6 +26156,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25369,6 +26174,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25387,6 +26193,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25405,6 +26212,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25494,6 +26302,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO + 1 @@ -25550,7 +26359,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2322 - {{0, 157}, {523, 443}} + {538, 443} @@ -25568,7 +26377,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - 523 + 538 1 @@ -25614,7 +26423,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - {{1, 1}, {523, 443}} + {{1, 1}, {538, 443}} @@ -25625,7 +26434,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 256 - {{524, 1}, {15, 443}} + {{523, 1}, {16, 443}} NO @@ -25710,6 +26519,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cdsGPU.layerSubBG2 cdsGPU.layerSubBG3 cdsGPU.layerSubOBJ + coreState + frameStatus + executionSpeedStatus CocoaDSCore @@ -25758,6 +26570,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 mainWindow.screenshotFileFormat selectedExportRomSaveID mainWindow.displayGap + frameJumpType + frameJumpFramesForward + frameJumpToFrame EmuControllerDelegate @@ -26206,70 +27021,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 1776 - - - value: selection.speedScalar - - - - - - value: selection.speedScalar - value - selection.speedScalar - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - 2 - - - 1869 - - - - value: selection.speedScalar - - - - - - value: selection.speedScalar - value - selection.speedScalar - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - 2 - - - 1872 - delegate @@ -27333,14 +28084,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4151 - - - makeKeyAndOrderFront: - - - - 4279 - makeKeyAndOrderFront: @@ -29261,39 +30004,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 5733 - - - value: selection.isSpeedLimitEnabled - - - - - - value: selection.isSpeedLimitEnabled - value - selection.isSpeedLimitEnabled - - YES - - YES - NSAllowsEditingMultipleValuesSelection - NSConditionallySetsEnabled - NSRaisesForNotApplicableKeys - NSValidatesImmediately - - - YES - - - - - - - 2 - - - 5971 - value: values.DisplayView_Rotation @@ -31510,38 +32220,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 6745 - - - changeCoreSpeed: - - - - 6747 - - - - changeCoreSpeed: - - - - 6748 - - - - changeCoreSpeed: - - - - 6749 - - - - changeCoreSpeed: - - - - 6750 - value: selection.currentVolumeValue @@ -32917,14 +33595,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7005 - - - toggleExecutePause: - - - - 7009 - reset: @@ -32949,14 +33619,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7012 - - - toggleSpeedLimiter: - - - - 7013 - viewInput @@ -35375,14 +36037,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8241 - - - changeCoreSpeed: - - - - 8242 - makeKeyAndOrderFront: @@ -36628,6 +37282,521 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8745 + + + toggleAllDisplays: + + + + 8977 + + + + frameAdvance: + + + + 8980 + + + + frameJump: + + + + 8982 + + + + frameAdvance: + + + + 9004 + + + + frameJump: + + + + 9005 + + + + reset: + + + + 9006 + + + + makeKeyAndOrderFront: + + + + 9008 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9012 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9014 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9016 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9018 + + + + enabled: selection.currentRom + + + + + + enabled: selection.currentRom + enabled + selection.currentRom + + NSValueTransformerName + NSIsNotNil + + 2 + + + 9022 + + + + enabled2: selection.coreState + + + + + + enabled2: selection.coreState + enabled2 + selection.coreState + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 9028 + + + + enabled2: selection.coreState + + + + + + enabled2: selection.coreState + enabled2 + selection.coreState + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + + + 2 + + + 9029 + + + + changeCoreSpeed: + + + + 9065 + + + + value: selection.isSpeedLimitEnabled + + + + + + value: selection.isSpeedLimitEnabled + value + selection.isSpeedLimitEnabled + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + 2 + + + 9067 + + + + value: selection.speedScalar + + + + + + value: selection.speedScalar + value + selection.speedScalar + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSConditionallySetsEnabled + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + + 2 + + + 9068 + + + + enabled2: selection.coreState + + + + + + enabled2: selection.coreState + enabled2 + selection.coreState + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValueTransformerName + + + YES + + + + + NSNegateBoolean + + + + 2 + + + 9070 + + + + enabled: selection.isSpeedLimitEnabled + + + + + + enabled: selection.isSpeedLimitEnabled + enabled + selection.isSpeedLimitEnabled + 2 + + + 9073 + + + + enabled: selection.isSpeedLimitEnabled + + + + + + enabled: selection.isSpeedLimitEnabled + enabled + selection.isSpeedLimitEnabled + 2 + + + 9077 + + + + changeCoreSpeed: + + + + 9078 + + + + value: selection.frameStatus + + + + + + value: selection.frameStatus + value + selection.frameStatus + + NSValidatesImmediately + + + 2 + + + 9092 + + + + value: selection.executionSpeedStatus + + + + + + value: selection.executionSpeedStatus + value + selection.executionSpeedStatus + + YES + + YES + NSAllowsEditingMultipleValuesSelection + NSRaisesForNotApplicableKeys + NSValidatesImmediately + + + YES + + + + + + 2 + + + 9093 + + + + selectedTag: selection.frameJumpType + + + + + + selectedTag: selection.frameJumpType + selectedTag + selection.frameJumpType + 2 + + + 9096 + + + + value: selection.frameJumpFramesForward + + + + + + value: selection.frameJumpFramesForward + value + selection.frameJumpFramesForward + 2 + + + 9097 + + + + value: selection.frameJumpToFrame + + + + + + value: selection.frameJumpToFrame + value + selection.frameJumpToFrame + 2 + + + 9098 + + + + executionControlWindow + + + + 9099 + + + + coreExecute: + + + + 9100 + + + + corePause: + + + + 9101 + + + + coreExecute: + + + + 9102 + + + + corePause: + + + + 9103 + @@ -36714,7 +37883,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - @@ -36726,6 +37894,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + @@ -36867,9 +38036,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - - @@ -36878,11 +38045,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - + + @@ -36960,28 +38127,31 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - - - - - - + + + + + + + + + + + + + + - - 578 - - - 594 @@ -37972,225 +39142,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 983 - - - YES - - - - - - 984 - - - YES - - - - - - - - - - 987 - - - - - 989 - - - - - 990 - - - - - 991 - - - - - 993 - - - - - 998 - - - YES - - - - - - 999 - - - YES - - - - - - - - - - - - - - - - 1000 - - - YES - - - - - - 1001 - - - - - 1002 - - - YES - - - - - - 1003 - - - - - 1004 - - - YES - - - - - - 1005 - - - - - 1006 - - - YES - - - - - - 1007 - - - - - 1008 - - - YES - - - - - - 1009 - - - - - 1010 - - - YES - - - - - - 1011 - - - - - 1012 - - - YES - - - - - - 1013 - - - - - 1016 - - - YES - - - - - - 1017 - - - - - 1020 - - - YES - - - - - - 1021 - - - - - 1024 - - - YES - - - - - - 1025 - - - YES - - - - 1034 @@ -38619,11 +39570,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 CocoaDS Core Controller - - 1736 - - - 1855 @@ -39144,11 +40090,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 2473 - - - 2482 @@ -39924,11 +40865,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Preferences Window Controller - - 3521 - - - 3522 @@ -39958,11 +40894,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 3709 - - - 3712 @@ -40342,11 +41273,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 3789 - - - 3790 @@ -41148,11 +42074,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Internal Firmware Drawer - - 4062 - - - 4059 @@ -43239,45 +44160,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 491 - - - YES - - - - - - - - - - - 980 - - - - - 979 - - - - - 978 - - - - - 977 - - - - - 492 - - - 5419 @@ -43848,65 +44730,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 2529 - - - YES - - - - - - 2530 - - - YES - - - - - - - - - 2548 - - - - - 2549 - - - - - 2551 - - - - - 2558 - - - YES - - - - - - 2559 - - - YES - - - - - - 2560 - - - 2553 @@ -43987,20 +44810,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - - 5965 - - - YES - - - - - - 5966 - - - 6131 @@ -44840,11 +45649,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Troubleshooting Window Controller - - 6451 - - - 6484 @@ -49665,6 +50469,504 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + 491 + + + YES + + + + + + + + + + + 6451 + + + + + 492 + + + + + 977 + + + + + 978 + + + + + 979 + + + + + 980 + + + + + 8758 + + + + + 8975 + + + + + 8978 + + + + + 8979 + + + + + 8991 + + + YES + + + + + + 8992 + + + YES + + + + + + + + + + + + + + 8993 + + + YES + + + + + + 8994 + + + + + 8995 + + + YES + + + + + + 8996 + + + + + 8997 + + + YES + + + + + + 8998 + + + + + 9001 + + + YES + + + + + + 9002 + + + + + 9007 + + + + + 9019 + + + YES + + + + + + 9020 + + + + + 9071 + + + YES + + + + + + + + 9032 + + + YES + + + + + + 9033 + + + YES + + + + + + 9039 + + + YES + + + + + + 9040 + + + YES + + + + + + 9034 + + + YES + + + + + + + + + 9038 + + + + + 9037 + + + + + 9036 + + + + + 9035 + + + + + 9072 + + + YES + + + + + + + + + + + + + + + + 9041 + + + YES + + + + + + 9063 + + + + + 9043 + + + YES + + + + + + 9061 + + + + + 9044 + + + YES + + + + + + 9060 + + + + + 9045 + + + YES + + + + + + 9059 + + + + + 9046 + + + YES + + + + + + 9058 + + + + + 9047 + + + YES + + + + + + 9057 + + + + + 9049 + + + YES + + + + + + 9055 + + + + + 9050 + + + YES + + + + + + 9053 + + + YES + + + + + 9051 + + + YES + + + + + + 9052 + + + + + 9042 + + + YES + + + + + + 9062 + + + + + 9075 + + + YES + + + + + + 9076 + + + + + 9083 + + + + + 9084 + + + + + 8976 + + + + + 3789 + + + + + 4062 + + + + + 3709 + + + + + 9085 + + + + + 9086 + + + + + 9087 + + + YES + + + + + + 9088 + + + + + 9089 + + + YES + + + + + + 9090 + + + + + 9094 + + + + + 9095 + + + @@ -49674,26 +50976,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 -1.IBPluginDependency -2.IBPluginDependency -3.IBPluginDependency - 1000.IBPluginDependency - 1001.IBPluginDependency - 1002.IBPluginDependency - 1003.IBPluginDependency - 1004.IBPluginDependency - 1005.IBPluginDependency - 1006.IBPluginDependency - 1007.IBPluginDependency - 1008.IBPluginDependency - 1009.IBPluginDependency - 1010.IBPluginDependency - 1011.IBPluginDependency - 1012.IBPluginDependency - 1013.IBPluginDependency - 1016.IBPluginDependency - 1017.IBPluginDependency - 1020.IBPluginDependency - 1021.IBPluginDependency - 1024.IBPluginDependency - 1025.IBPluginDependency 1034.IBPluginDependency 1035.IBPluginDependency 1036.IBPluginDependency @@ -49710,6 +50992,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 112.IBPluginDependency 1120.IBPluginDependency 124.IBPluginDependency + 125.IBEditorWindowLastContentRect 125.IBPluginDependency 126.IBPluginDependency 129.IBPluginDependency @@ -49810,9 +51093,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 1681.toolbarItem.selectable 1682.IBPluginDependency 1721.IBPluginDependency - 1736.IBNumberFormatterBehaviorMetadataKey - 1736.IBNumberFormatterLocalizesFormatMetadataKey - 1736.IBPluginDependency 1855.IBPluginDependency 1856.IBPluginDependency 1856.IBWindowTemplateEditedContentRect @@ -49931,6 +51211,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2377.IBPluginDependency 2378.IBPluginDependency 2382.IBPluginDependency + 2383.IBEditorWindowLastContentRect 2383.IBPluginDependency 2384.IBPluginDependency 2385.IBPluginDependency @@ -49949,6 +51230,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2397.IBPluginDependency 2398.IBPluginDependency 2399.IBPluginDependency + 24.IBEditorWindowLastContentRect 24.IBPluginDependency 2427.IBAttributePlaceholdersKey 2427.IBPluginDependency @@ -49971,21 +51253,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2439.IBAttributePlaceholdersKey 2439.IBPluginDependency 2440.IBPluginDependency - 2473.IBPluginDependency 2482.IBPluginDependency 2483.IBPluginDependency 2518.IBPluginDependency 2519.IBPluginDependency - 2529.IBPluginDependency - 2530.IBPluginDependency - 2548.IBPluginDependency - 2549.IBPluginDependency - 2551.IBPluginDependency 2553.IBPluginDependency 2556.IBPluginDependency - 2558.IBPluginDependency - 2559.IBPluginDependency - 2560.IBPluginDependency 2565.IBAttributePlaceholdersKey 2565.IBPluginDependency 2566.IBPluginDependency @@ -50067,6 +51340,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 3146.IBPluginDependency 3148.IBPluginDependency 3204.IBPluginDependency + 3205.IBEditorWindowLastContentRect 3205.IBPluginDependency 3206.IBPluginDependency 3207.IBPluginDependency @@ -50109,7 +51383,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 3516.IBPluginDependency 3517.IBPluginDependency 3520.IBPluginDependency - 3521.IBPluginDependency 3522.IBPluginDependency 3523.IBPluginDependency 3644.IBPluginDependency @@ -50204,6 +51477,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 3787.IBPluginDependency 3788.IBPluginDependency 3789.IBPluginDependency + 3790.IBEditorWindowLastContentRect 3790.IBPluginDependency 3790.IBWindowTemplateEditedContentRect 3790.NSWindowTemplate.visibleAtLaunch @@ -50314,6 +51588,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4003.IBPluginDependency 4004.IBPluginDependency 4024.IBPluginDependency + 4027.IBEditorWindowLastContentRect 4027.IBPluginDependency 4027.IBWindowTemplateEditedContentRect 4027.NSWindowTemplate.visibleAtLaunch @@ -50348,9 +51623,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4050.IBAttributePlaceholdersKey 4050.IBPluginDependency 4051.IBPluginDependency + 4053.IBEditorWindowLastContentRect 4053.IBPluginDependency 4054.IBPluginDependency 4059.IBPluginDependency + 4059.IBViewBoundsToFrameTransform 4060.IBPluginDependency 4062.IBPluginDependency 4066.IBPluginDependency @@ -50591,10 +51868,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4907.IBPluginDependency 4908.IBPluginDependency 4909.IBPluginDependency + 491.IBEditorWindowLastContentRect 491.IBPluginDependency 4910.IBAttributePlaceholdersKey 4910.IBPluginDependency 4911.IBPluginDependency + 4912.IBEditorWindowLastContentRect 4912.IBPluginDependency 4913.IBPluginDependency 4914.IBPluginDependency @@ -50676,9 +51955,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 534.IBPluginDependency 535.IBPluginDependency 538.IBPluginDependency + 539.IBEditorWindowLastContentRect 539.IBPluginDependency 541.IBPluginDependency 5419.IBPluginDependency + 542.IBEditorWindowLastContentRect 542.IBPluginDependency 5420.IBPluginDependency 5421.IBPluginDependency @@ -50688,6 +51969,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 56.IBPluginDependency 5648.IBPluginDependency 5649.IBPluginDependency + 5651.IBEditorWindowLastContentRect 5651.IBPluginDependency 5651.IBWindowTemplateEditedContentRect 5651.NSWindowTemplate.visibleAtLaunch @@ -50731,7 +52013,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 575.IBPluginDependency 576.IBEditorWindowLastContentRect 576.IBPluginDependency - 578.IBPluginDependency 58.IBPluginDependency 5933.IBPluginDependency 5934.IBPluginDependency @@ -50744,8 +52025,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 5942.IBPluginDependency 596.IBPluginDependency 5963.IBPluginDependency - 5965.IBPluginDependency - 5966.IBPluginDependency 607.IBPluginDependency 608.IBEditorWindowLastContentRect 608.IBPluginDependency @@ -50770,9 +52049,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 6161.IBPluginDependency 6162.IBPluginDependency 6168.IBPluginDependency + 6169.IBEditorWindowLastContentRect 6169.IBPluginDependency 6170.IBPluginDependency 6171.IBPluginDependency + 6172.IBEditorWindowLastContentRect 6172.IBPluginDependency 6173.IBPluginDependency 6174.IBPluginDependency @@ -50879,6 +52160,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 6427.IBPluginDependency 6428.IBPluginDependency 6429.IBPluginDependency + 6430.IBEditorWindowLastContentRect 6430.IBPluginDependency 6431.IBPluginDependency 6432.IBPluginDependency @@ -50945,6 +52227,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7137.IBPluginDependency 7138.IBPluginDependency 7139.IBPluginDependency + 714.IBEditorWindowLastContentRect 714.IBPluginDependency 7140.IBPluginDependency 7141.IBPluginDependency @@ -51210,6 +52493,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7766.IBPluginDependency 7767.IBPluginDependency 7771.IBPluginDependency + 7772.IBEditorWindowLastContentRect 7772.IBPluginDependency 7773.IBPluginDependency 7774.IBPluginDependency @@ -51240,6 +52524,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7811.IBPluginDependency 7812.IBPluginDependency 7813.IBPluginDependency + 7817.IBEditorWindowLastContentRect 7817.IBPluginDependency 7817.IBWindowTemplateEditedContentRect 7817.NSWindowTemplate.visibleAtLaunch @@ -51261,6 +52546,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7837.IBPluginDependency 7838.IBPluginDependency 7839.IBPluginDependency + 784.IBEditorWindowLastContentRect 784.IBPluginDependency 7840.IBNumberFormatterBehaviorMetadataKey 7840.IBNumberFormatterLocalizesFormatMetadataKey @@ -51303,6 +52589,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 7877.IBPluginDependency 7878.IBPluginDependency 7879.IBPluginDependency + 788.IBEditorWindowLastContentRect 788.IBPluginDependency 7880.IBPluginDependency 7881.IBPluginDependency @@ -51310,11 +52597,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 789.IBPluginDependency 7899.IBPluginDependency 79.IBPluginDependency + 794.IBEditorWindowLastContentRect 794.IBPluginDependency 794.IBWindowTemplateEditedContentRect 794.NSWindowTemplate.visibleAtLaunch 795.IBAttributePlaceholdersKey 795.IBPluginDependency + 796.IBEditorWindowLastContentRect 796.IBPluginDependency 796.IBWindowTemplateEditedContentRect 796.NSWindowTemplate.visibleAtLaunch @@ -51383,6 +52672,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8077.IBPluginDependency 8078.IBPluginDependency 8084.IBPluginDependency + 81.IBEditorWindowLastContentRect 81.IBPluginDependency 8134.IBPluginDependency 8134.IBWindowTemplateEditedContentRect @@ -51429,6 +52719,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 823.IBPluginDependency 824.IBPluginDependency 8245.IBPluginDependency + 8246.IBEditorWindowLastContentRect 8246.IBPluginDependency 8247.IBPluginDependency 8248.IBPluginDependency @@ -51650,6 +52941,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8608.IBPluginDependency 8608.IBViewBoundsToFrameTransform 8609.IBPluginDependency + 861.IBEditorWindowLastContentRect 861.IBPluginDependency 861.IBWindowTemplateEditedContentRect 861.NSWindowTemplate.visibleAtLaunch @@ -51737,6 +53029,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8746.IBViewBoundsToFrameTransform 8747.IBPluginDependency 875.IBPluginDependency + 8758.IBPluginDependency 876.IBPluginDependency 877.IBPluginDependency 878.IBPluginDependency @@ -51751,18 +53044,112 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 889.IBPluginDependency 890.IBPluginDependency 897.IBPluginDependency + 8975.IBPluginDependency + 8976.IBPluginDependency + 8978.IBPluginDependency + 8979.IBPluginDependency 898.IBPluginDependency 899.IBPluginDependency + 8991.IBEditorWindowLastContentRect + 8991.IBPluginDependency + 8991.IBWindowTemplateEditedContentRect + 8991.NSWindowTemplate.visibleAtLaunch + 8992.IBPluginDependency + 8993.IBAttributePlaceholdersKey + 8993.IBPluginDependency + 8993.IBViewBoundsToFrameTransform + 8994.IBPluginDependency + 8995.IBAttributePlaceholdersKey + 8995.IBPluginDependency + 8995.IBViewBoundsToFrameTransform + 8996.IBPluginDependency + 8997.IBAttributePlaceholdersKey + 8997.IBPluginDependency + 8997.IBViewBoundsToFrameTransform + 8998.IBPluginDependency 900.IBPluginDependency + 9001.IBAttributePlaceholdersKey + 9001.IBPluginDependency + 9001.IBViewBoundsToFrameTransform + 9002.IBPluginDependency + 9007.IBPluginDependency 901.IBPluginDependency + 9019.IBAttributePlaceholdersKey + 9019.IBPluginDependency + 9019.IBViewBoundsToFrameTransform 902.IBPluginDependency + 9020.IBPluginDependency 903.IBPluginDependency + 9032.IBPluginDependency + 9032.IBViewBoundsToFrameTransform + 9033.IBPluginDependency + 9034.IBPluginDependency + 9034.IBViewBoundsToFrameTransform + 9035.IBPluginDependency + 9036.IBPluginDependency + 9037.IBPluginDependency + 9039.IBPluginDependency + 9039.IBViewBoundsToFrameTransform 904.IBPluginDependency + 9040.IBPluginDependency + 9041.IBPluginDependency + 9041.IBViewBoundsToFrameTransform + 9042.IBPluginDependency + 9042.IBViewBoundsToFrameTransform + 9043.IBPluginDependency + 9043.IBViewBoundsToFrameTransform + 9044.IBPluginDependency + 9044.IBViewBoundsToFrameTransform + 9045.IBPluginDependency + 9045.IBViewBoundsToFrameTransform + 9046.IBPluginDependency + 9046.IBViewBoundsToFrameTransform + 9047.IBPluginDependency + 9047.IBViewBoundsToFrameTransform + 9049.IBPluginDependency + 9049.IBViewBoundsToFrameTransform 905.IBPluginDependency + 9050.IBPluginDependency + 9050.IBViewBoundsToFrameTransform + 9051.IBPluginDependency + 9051.IBViewBoundsToFrameTransform + 9052.IBPluginDependency + 9053.IBPluginDependency + 9055.IBPluginDependency + 9057.IBPluginDependency + 9058.IBPluginDependency + 9059.IBPluginDependency 906.IBPluginDependency + 9060.IBPluginDependency + 9061.IBPluginDependency + 9062.IBPluginDependency + 9063.IBPluginDependency 907.IBPluginDependency + 9071.IBPluginDependency + 9071.IBViewBoundsToFrameTransform + 9072.IBPluginDependency + 9072.IBViewBoundsToFrameTransform + 9075.IBPluginDependency + 9075.IBViewBoundsToFrameTransform + 9076.IBPluginDependency 908.IBPluginDependency + 9083.IBPluginDependency + 9084.IBPluginDependency + 9085.IBPluginDependency + 9086.IBPluginDependency + 9087.IBPluginDependency + 9087.IBViewBoundsToFrameTransform + 9088.IBPluginDependency + 9089.IBPluginDependency + 9089.IBViewBoundsToFrameTransform 909.IBPluginDependency + 9090.IBPluginDependency + 9094.IBNumberFormatterBehaviorMetadataKey + 9094.IBNumberFormatterLocalizesFormatMetadataKey + 9094.IBPluginDependency + 9095.IBNumberFormatterBehaviorMetadataKey + 9095.IBNumberFormatterLocalizesFormatMetadataKey + 9095.IBPluginDependency 910.IBPluginDependency 911.IBPluginDependency 912.IBPluginDependency @@ -51821,17 +53208,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 978.IBPluginDependency 979.IBPluginDependency 980.IBPluginDependency - 983.IBPluginDependency - 984.IBPluginDependency - 987.IBPluginDependency - 989.IBPluginDependency - 990.IBPluginDependency - 991.IBPluginDependency - 993.IBPluginDependency - 998.IBPluginDependency - 998.IBWindowTemplateEditedContentRect - 998.NSWindowTemplate.visibleAtLaunch - 999.IBPluginDependency YES @@ -51854,30 +53230,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{807, 773}, {143, 23}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{629, 734}, {520, 422}} + {{629, 434}, {520, 422}} com.apple.InterfaceBuilder.CocoaPlugin YES @@ -52021,9 +53378,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{1388, 659}, {213, 198}} @@ -52055,7 +53409,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin Sound - {{903, 745}, {400, 373}} + {{728, 483}, {400, 373}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52233,6 +53587,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{740, 153}, {156, 293}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52251,6 +53606,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{709, 763}, {194, 73}} com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -52328,15 +53684,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -52401,7 +53748,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1107, 1136}, {512, 20}} + {{295, 836}, {512, 20}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52410,7 +53757,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{463, 585}, {315, 333}} + {{569, 543}, {315, 293}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52427,6 +53774,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{439, 683}, {151, 153}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52453,9 +53801,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{184, 141}, {640, 480}} + {{343, 141}, {640, 480}} com.apple.InterfaceBuilder.CocoaPlugin - {{184, 141}, {640, 480}} + {{343, 141}, {640, 480}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52492,7 +53840,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -52662,8 +54009,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 119}, {301, 560}} com.apple.InterfaceBuilder.CocoaPlugin - {{1000, 254}, {301, 560}} + {{343, 119}, {301, 560}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52887,7 +54235,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{778, 855}, {132, 63}} + {{884, 773}, {132, 63}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52975,8 +54323,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 285}, {286, 522}} com.apple.InterfaceBuilder.CocoaPlugin - {{1332, 177}, {286, 522}} + {{343, 285}, {286, 522}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53065,9 +54414,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 299}, {260, 328}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwp4AAA + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53387,6 +54740,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{780, 723}, {261, 113}} com.apple.InterfaceBuilder.CocoaPlugin YES @@ -53397,6 +54751,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{831, 704}, {198, 37}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53496,9 +54851,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{756, 530}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{756, 510}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53515,8 +54872,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 269}, {550, 450}} com.apple.InterfaceBuilder.CocoaPlugin - {{548, 341}, {550, 450}} + {{343, 269}, {550, 450}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53558,12 +54916,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{859, 953}, {203, 183}} + {{392, 653}, {203, 183}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1035, 893}, {220, 243}} + {{483, 463}, {257, 373}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53578,10 +54936,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{513, 865}, {196, 53}} + {{619, 783}, {196, 53}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53646,9 +55001,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 733}, {123, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 713}, {178, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53716,12 +55073,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{711, 876}, {400, 100}} + {{711, 700}, {400, 100}} com.apple.InterfaceBuilder.CocoaPlugin - {{711, 876}, {400, 100}} + {{711, 700}, {400, 100}} com.apple.InterfaceBuilder.CocoaPlugin - {{603, 976}, {616, 0}} + {{603, 800}, {616, 0}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{962, 321}, {580, 592}} @@ -53797,6 +55154,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{331, 164}, {580, 567}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53905,6 +55263,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{709, 350}, {328, 434}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -53912,9 +55271,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{934, 298}, {350, 263}} + {{784, 552}, {350, 263}} com.apple.InterfaceBuilder.CocoaPlugin - {{934, 298}, {350, 263}} + {{784, 552}, {350, 263}} com.apple.InterfaceBuilder.CocoaPlugin {{84, 906}, {350, 125}} @@ -54250,6 +55609,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 603}, {118, 133}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54294,8 +55654,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{331, 627}, {441, 133}} com.apple.InterfaceBuilder.CocoaPlugin - {{1120, 724}, {441, 133}} + {{331, 627}, {441, 133}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54315,6 +55676,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 633}, {136, 163}} com.apple.InterfaceBuilder.CocoaPlugin @@ -54394,6 +55756,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 713}, {70, 103}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54401,8 +55764,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{343, 530}, {194, 241}} com.apple.InterfaceBuilder.CocoaPlugin - {{1299, 599}, {194, 241}} + {{343, 530}, {194, 241}} YES @@ -54412,8 +55776,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin + {{343, 181}, {204, 521}} com.apple.InterfaceBuilder.CocoaPlugin - {{1413, 517}, {204, 521}} + {{343, 181}, {204, 521}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54506,6 +55871,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{397, 443}, {325, 393}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{1444, 249}, {173, 339}} @@ -54552,6 +55918,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{884, 253}, {239, 463}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -54871,8 +56238,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 P4AAAL+AAABDFSEAwfgAAA com.apple.InterfaceBuilder.CocoaPlugin + {{326, 250}, {580, 588}} com.apple.InterfaceBuilder.CocoaPlugin - {{668, 434}, {580, 588}} + {{326, 250}, {580, 588}} com.apple.InterfaceBuilder.CocoaPlugin @@ -55029,19 +56397,186 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{307, 552}, {254, 262}} com.apple.InterfaceBuilder.CocoaPlugin + {{307, 552}, {254, 262}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Execute + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAAAAAAAAwfAAAA + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Frame Advance + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB+AAAwqgAAA + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Reset + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDYgAAw6YAAA + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Frame Jump + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+AAAwfAAAA + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Pause + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAAAAAAAAwqgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDQgAAw5KAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwowAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDQgAAw4iAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCFAAAwkQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB4AAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDXwAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABChgAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC1AAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDEQAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDOQAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwrAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDFgAAwrAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDKQAAwqYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABDRAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABCsAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCdAAAww8AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCbAAAwYAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -55100,8 +56635,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{1117, 350}, {467, 128}} - com.apple.InterfaceBuilder.CocoaPlugin @@ -55121,7 +56654,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - 8747 + 9103 @@ -55634,6 +57167,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 userinterface/cheatWindowDelegate.h + + DisplayView + NSView + + IBProjectSource + userinterface/DisplayWindowController.h + + DisplayWindowController NSWindowController @@ -55824,20 +57365,38 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - saveScreenshotPanelAccessoryView - NSView - - - saveScreenshotPanelAccessoryView - - saveScreenshotPanelAccessoryView - NSView + YES + + YES + saveScreenshotPanelAccessoryView + view + + + YES + NSView + DisplayView - - IBProjectSource - userinterface/DisplayWindowController.h + + YES + + YES + saveScreenshotPanelAccessoryView + view + + + YES + + saveScreenshotPanelAccessoryView + NSView + + + view + DisplayView + + + EmuControllerDelegate @@ -55859,7 +57418,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 chooseSlot1R4Directory: closeRom: closeSheet: + coreExecute: + corePause: exportRomSave: + frameAdvance: + frameJump: importRomSave: loadEmuSaveStateSlot: loadRecentRom: @@ -55874,6 +57437,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 saveEmuSaveStateAs: saveEmuSaveStateSlot: slot1Eject: + toggleAllDisplays: toggleAutoFrameSkip: toggleCheats: toggleExecutePause: @@ -55923,6 +57487,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 id id id + id + id + id + id + id @@ -55942,7 +57511,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 chooseSlot1R4Directory: closeRom: closeSheet: + coreExecute: + corePause: exportRomSave: + frameAdvance: + frameJump: importRomSave: loadEmuSaveStateSlot: loadRecentRom: @@ -55957,6 +57530,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 saveEmuSaveStateAs: saveEmuSaveStateSlot: slot1Eject: + toggleAllDisplays: toggleAutoFrameSkip: toggleCheats: toggleExecutePause: @@ -56021,10 +57595,26 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 closeSheet: id + + coreExecute: + id + + + corePause: + id + exportRomSave: id + + frameAdvance: + id + + + frameJump: + id + importRomSave: id @@ -56081,6 +57671,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 slot1Eject: id + + toggleAllDisplays: + id + toggleAutoFrameSkip: id @@ -56129,6 +57723,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cheatListController cheatWindowController cheatWindowDelegate + executionControlWindow exportRomSavePanelAccessoryView firmwarePanelController inputManager @@ -56146,6 +57741,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NSArrayController NSObjectController CheatWindowDelegate + NSWindow NSView NSObjectController InputManager @@ -56166,6 +57762,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cheatListController cheatWindowController cheatWindowDelegate + executionControlWindow exportRomSavePanelAccessoryView firmwarePanelController inputManager @@ -56201,6 +57798,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 cheatWindowDelegate CheatWindowDelegate + + executionControlWindow + NSWindow + exportRomSavePanelAccessoryView NSView @@ -58140,7 +59741,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 Icon_CodeBreaker_128x128 Icon_DeSmuME_32x32 Icon_Emulation_420x420 + Icon_Execute_420x420 + Icon_FrameAdvance_420x420 + Icon_FrameJump_420x420 Icon_Input_420x420 + Icon_Pause_420x420 + Icon_Reset_420x420 Icon_ShowHUD_420x420 Icon_Speaker_420x420 Icon_VolumeFull_16x16 @@ -58184,13 +59790,18 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {420, 420} {420, 420} {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} {20, 20} {421, 339} {360, 136} {698, 479} {111.60000000000001, 85.600000000000009} {515, 457} - {15, 15} + {14, 14} {8, 8} {512, 512} {11, 11} diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.h b/desmume/src/cocoa/userinterface/DisplayWindowController.h index b8b1061df..38b0f5921 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.h +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.h @@ -103,6 +103,8 @@ @interface DisplayWindowController : NSWindowController #endif { + NSObject *dummyObject; + DisplayView *view; NSView *saveScreenshotPanelAccessoryView; @@ -140,6 +142,8 @@ OSSpinLock spinlockVideoFilterType; } +@property (readonly) IBOutlet NSObject *dummyObject; + @property (readonly) IBOutlet DisplayView *view; @property (readonly) IBOutlet NSView *saveScreenshotPanelAccessoryView; diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.mm b/desmume/src/cocoa/userinterface/DisplayWindowController.mm index 1810edf94..42f2d4215 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.mm +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.mm @@ -85,6 +85,7 @@ enum OGLVertexAttributeID @implementation DisplayWindowController +@synthesize dummyObject; @synthesize emuControl; @synthesize cdsVideoOutput; @synthesize assignedScreen; diff --git a/desmume/src/cocoa/userinterface/EmuControllerDelegate.h b/desmume/src/cocoa/userinterface/EmuControllerDelegate.h index 443d61ad7..07a8a36b5 100644 --- a/desmume/src/cocoa/userinterface/EmuControllerDelegate.h +++ b/desmume/src/cocoa/userinterface/EmuControllerDelegate.h @@ -48,6 +48,7 @@ class AudioSampleBlockGenerator; NSArrayController *cheatListController; NSArrayController *cheatDatabaseController; + NSWindow *executionControlWindow; NSWindow *slot1ManagerWindow; NSWindow *saveFileMigrationSheet; NSWindow *saveStatePrecloseSheet; @@ -66,6 +67,9 @@ class AudioSampleBlockGenerator; NSURL *currentSaveStateURL; NSInteger selectedExportRomSaveID; NSInteger selectedRomSaveTypeID; + NSInteger frameJumpType; + NSInteger frameJumpFramesForward; + NSInteger frameJumpToFrame; CGFloat lastSetSpeedScalar; BOOL isSoundMuted; @@ -104,6 +108,7 @@ class AudioSampleBlockGenerator; @property (readonly) IBOutlet NSArrayController *cheatListController; @property (readonly) IBOutlet NSArrayController *cheatDatabaseController; +@property (readonly) IBOutlet NSWindow *executionControlWindow; @property (readonly) IBOutlet NSWindow *slot1ManagerWindow; @property (readonly) IBOutlet NSWindow *saveFileMigrationSheet; @property (readonly) IBOutlet NSWindow *saveStatePrecloseSheet; @@ -130,6 +135,9 @@ class AudioSampleBlockGenerator; @property (retain) NSURL *currentSaveStateURL; @property (assign) NSInteger selectedExportRomSaveID; @property (assign) NSInteger selectedRomSaveTypeID; +@property (assign) NSInteger frameJumpType; +@property (assign) NSInteger frameJumpFramesForward; +@property (assign) NSInteger frameJumpToFrame; @property (assign) NSInteger render3DRenderingEngine; @property (assign) BOOL render3DHighPrecisionColorInterpolation; @@ -165,9 +173,16 @@ class AudioSampleBlockGenerator; - (IBAction) toggleAutoFrameSkip:(id)sender; - (IBAction) toggleCheats:(id)sender; - (IBAction) toggleExecutePause:(id)sender; +- (IBAction) coreExecute:(id)sender; +- (IBAction) corePause:(id)sender; +- (IBAction) frameAdvance:(id)sender; +- (IBAction) frameJump:(id)sender; - (IBAction) reset:(id)sender; - (IBAction) changeRomSaveType:(id)sender; +// View Menu +- (IBAction) toggleAllDisplays:(id)sender; + // Tools Menu - (IBAction) toggleGPUState:(id)sender; @@ -199,12 +214,17 @@ class AudioSampleBlockGenerator; - (void) cmdCopyScreen:(NSValue *)cmdAttrValue; - (void) cmdRotateDisplayRelative:(NSValue *)cmdAttrValue; +- (void) cmdToggleAllDisplays:(NSValue *)cmdAttrValue; - (void) cmdHoldToggleSpeedScalar:(NSValue *)cmdAttrValue; - (void) cmdToggleSpeedLimiter:(NSValue *)cmdAttrValue; - (void) cmdToggleAutoFrameSkip:(NSValue *)cmdAttrValue; - (void) cmdToggleCheats:(NSValue *)cmdAttrValue; - (void) cmdToggleExecutePause:(NSValue *)cmdAttrValue; +- (void) cmdCoreExecute:(NSValue *)cmdAttrValue; +- (void) cmdCorePause:(NSValue *)cmdAttrValue; +- (void) cmdFrameAdvance:(NSValue *)cmdAttrValue; +- (void) cmdFrameJump:(NSValue *)cmdAttrValue; - (void) cmdReset:(NSValue *)cmdAttrValue; - (void) cmdToggleGPUState:(NSValue *)cmdAttrValue; diff --git a/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm b/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm index a92342905..9a373f466 100644 --- a/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm +++ b/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm @@ -52,6 +52,7 @@ @synthesize cheatDatabaseController; @synthesize slot2WindowController; +@synthesize executionControlWindow; @synthesize slot1ManagerWindow; @synthesize saveFileMigrationSheet; @synthesize saveStatePrecloseSheet; @@ -80,6 +81,9 @@ @synthesize currentSaveStateURL; @synthesize selectedExportRomSaveID; @synthesize selectedRomSaveTypeID; +@synthesize frameJumpType; +@synthesize frameJumpFramesForward; +@synthesize frameJumpToFrame; @dynamic render3DRenderingEngine; @dynamic render3DHighPrecisionColorInterpolation; @@ -122,6 +126,9 @@ currentSaveStateURL = nil; selectedRomSaveTypeID = ROMSAVETYPE_AUTOMATIC; selectedExportRomSaveID = 0; + frameJumpType = FRAMEJUMP_TYPE_FORWARD; + frameJumpFramesForward = 60; + frameJumpToFrame = 0; lastSetSpeedScalar = 1.0f; isSoundMuted = NO; @@ -736,6 +743,26 @@ [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; } +- (IBAction) coreExecute:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + +- (IBAction) corePause:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + +- (IBAction) frameAdvance:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + +- (IBAction) frameJump:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + - (IBAction) reset:(id)sender { [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; @@ -849,6 +876,11 @@ [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_SYNC_METHOD integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; } +- (IBAction) toggleAllDisplays:(id)sender +{ + [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; +} + - (IBAction) chooseSlot1R4Directory:(id)sender { NSOpenPanel *panel = [NSOpenPanel openPanel]; @@ -1124,6 +1156,49 @@ [mainWindow setDisplayRotation:angleDegrees]; } +- (void) cmdToggleAllDisplays:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF) + { + return; + } + + for (DisplayWindowController *theWindow in windowList) + { + const NSInteger displayMode = [theWindow displayMode]; + switch (displayMode) + { + case DS_DISPLAY_TYPE_MAIN: + [theWindow setDisplayMode:DS_DISPLAY_TYPE_TOUCH]; + break; + + case DS_DISPLAY_TYPE_TOUCH: + [theWindow setDisplayMode:DS_DISPLAY_TYPE_MAIN]; + break; + + case DS_DISPLAY_TYPE_DUAL: + { + const NSInteger displayOrder = [theWindow displayOrder]; + if (displayOrder == DS_DISPLAY_ORDER_MAIN_FIRST) + { + [theWindow setDisplayOrder:DS_DISPLAY_ORDER_TOUCH_FIRST]; + } + else + { + [theWindow setDisplayOrder:DS_DISPLAY_ORDER_MAIN_FIRST]; + } + break; + } + + default: + break; + } + } +} + - (void) cmdHoldToggleSpeedScalar:(NSValue *)cmdAttrValue { CommandAttributes cmdAttr; @@ -1234,6 +1309,82 @@ } } +- (void) cmdCoreExecute:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil) + { + return; + } + + [self executeCore]; +} + +- (void) cmdCorePause:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil) + { + return; + } + + [self pauseCore]; +} + +- (void) cmdFrameAdvance:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [cdsCore coreState] != CORESTATE_PAUSE || [self currentRom] == nil) + { + return; + } + + [cdsCore setCoreState:CORESTATE_FRAMEADVANCE]; +} + +- (void) cmdFrameJump:(NSValue *)cmdAttrValue +{ + CommandAttributes cmdAttr; + [cmdAttrValue getValue:&cmdAttr]; + + if (cmdAttr.input.state == INPUT_ATTRIBUTE_STATE_OFF || [self currentRom] == nil) + { + return; + } + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [executionControlWindow makeFirstResponder:nil]; + NSUInteger jumpFrames = 0; + + switch ([self frameJumpType]) + { + case FRAMEJUMP_TYPE_FORWARD: + jumpFrames = [self frameJumpFramesForward]; + [cdsCore frameJump:jumpFrames]; + break; + + case FRAMEJUMP_TYPE_TOFRAME: + jumpFrames = [self frameJumpToFrame]; + [cdsCore frameJumpTo:jumpFrames]; + break; + + case FRAMEJUMP_TYPE_NEXTMARKER: + // TODO: Support when replay markers are implemented. + break; + + default: + break; + } +} + - (void) cmdReset:(NSValue *)cmdAttrValue { CommandAttributes cmdAttr; @@ -1917,7 +2068,7 @@ { [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_EXECUTE_CONTROL]; } - else + else if ([cdsCore coreState] == CORESTATE_EXECUTE) { [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_PAUSE_CONTROL]; } @@ -1929,22 +2080,57 @@ [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_EXECUTE_CONTROL]; [(NSToolbarItem*)theItem setImage:iconExecute]; } - else + else if ([cdsCore coreState] == CORESTATE_EXECUTE) { [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_PAUSE_CONTROL]; [(NSToolbarItem*)theItem setImage:iconPause]; } } } - else if (theAction == @selector(executeCore) || - theAction == @selector(pauseCore)) - { + else if (theAction == @selector(frameAdvance:)) + { + if ([cdsCore coreState] != CORESTATE_PAUSE) + { + enable = NO; + } + + if ([cdsCore coreState] != CORESTATE_PAUSE || + ![cdsCore masterExecute] || + [self currentRom] == nil || + [self isShowingSaveStateDialog]) + { + enable = NO; + } + } + else if (theAction == @selector(frameJump:)) + { if (![cdsCore masterExecute] || [self currentRom] == nil || [self isShowingSaveStateDialog]) { enable = NO; } + } + else if (theAction == @selector(coreExecute:)) + { + if ([cdsCore coreState] == CORESTATE_EXECUTE || + [cdsCore coreState] == CORESTATE_FRAMEADVANCE || + ![cdsCore masterExecute] || + [self currentRom] == nil || + [self isShowingSaveStateDialog]) + { + enable = NO; + } + } + else if (theAction == @selector(corePause:)) + { + if ([cdsCore coreState] == CORESTATE_PAUSE || + ![cdsCore masterExecute] || + [self currentRom] == nil || + [self isShowingSaveStateDialog]) + { + enable = NO; + } } else if (theAction == @selector(reset:)) { diff --git a/desmume/src/cocoa/userinterface/InputManager.mm b/desmume/src/cocoa/userinterface/InputManager.mm index cd07315db..84c40f4f3 100644 --- a/desmume/src/cocoa/userinterface/InputManager.mm +++ b/desmume/src/cocoa/userinterface/InputManager.mm @@ -1044,6 +1044,7 @@ static std::tr1::unordered_map 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_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", [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_ShowHUD_420x420" ofType:@"png"]] autorelease], @"HUD", @@ -1096,11 +1097,16 @@ static std::tr1::unordered_map keyboardNameTable; / commandSelector["Save State Slot"] = @selector(cmdSaveEmuSaveStateSlot:); commandSelector["Copy Screen"] = @selector(cmdCopyScreen:); commandSelector["Rotate Display Relative"] = @selector(cmdRotateDisplayRelative:); + commandSelector["Toggle All Displays"] = @selector(cmdToggleAllDisplays:); commandSelector["Set Speed"] = @selector(cmdHoldToggleSpeedScalar:); commandSelector["Enable/Disable Speed Limiter"] = @selector(cmdToggleSpeedLimiter:); commandSelector["Enable/Disable Auto Frame Skip"] = @selector(cmdToggleAutoFrameSkip:); commandSelector["Enable/Disable Cheats"] = @selector(cmdToggleCheats:); + commandSelector["Execute"] = @selector(cmdCoreExecute:); + commandSelector["Pause"] = @selector(cmdCorePause:); commandSelector["Execute/Pause"] = @selector(cmdToggleExecutePause:); + commandSelector["Frame Advance"] = @selector(cmdFrameAdvance:); + commandSelector["Frame Jump"] = @selector(cmdFrameJump:); commandSelector["Reset"] = @selector(cmdReset:); commandSelector["Mute/Unmute"] = @selector(cmdToggleMute:); commandSelector["Enable/Disable GPU State"] = @selector(cmdToggleGPUState:); @@ -1152,7 +1158,7 @@ static std::tr1::unordered_map keyboardNameTable; / cmdPaddle.floatValue[0] = 10.0f; CommandAttributes cmdLoadEmuSaveStateSlot = NewCommandAttributesForSelector("Load State Slot", commandSelector["Load State Slot"]); - CommandAttributes cmdSaveEmuSaveStateSlot = NewCommandAttributesForSelector("Save State Slot", commandSelector["Save State Slot"]); + CommandAttributes cmdSaveEmuSaveStateSlot = NewCommandAttributesForSelector("Save State Slot", commandSelector["Save State Slot"]); CommandAttributes cmdCopyScreen = NewCommandAttributesForSelector("Copy Screen", commandSelector["Copy Screen"]); CommandAttributes cmdRotateDisplayRelative = NewCommandAttributesForSelector("Rotate Display Relative", commandSelector["Rotate Display Relative"]); @@ -1164,13 +1170,19 @@ static std::tr1::unordered_map keyboardNameTable; / CommandAttributes cmdRotateDisplayRight = NewCommandAttributesForSelector("Rotate Display Right", commandSelector["Rotate Display Relative"]); cmdRotateDisplayRight.intValue[0] = 90; + CommandAttributes cmdToggleAllDisplays = NewCommandAttributesForSelector("Toggle All Displays", commandSelector["Toggle All Displays"]); + CommandAttributes cmdToggleSpeed = NewCommandAttributesForSelector("Set Speed", commandSelector["Set Speed"]); cmdToggleSpeed.floatValue[0] = 1.0f; CommandAttributes cmdToggleSpeedLimiter = NewCommandAttributesForSelector("Enable/Disable Speed Limiter", commandSelector["Enable/Disable Speed Limiter"]); CommandAttributes cmdToggleAutoFrameSkip = NewCommandAttributesForSelector("Enable/Disable Auto Frame Skip", commandSelector["Enable/Disable Auto Frame Skip"]); CommandAttributes cmdToggleCheats = NewCommandAttributesForSelector("Enable/Disable Cheats", commandSelector["Enable/Disable Cheats"]); + CommandAttributes cmdCoreExecute = NewCommandAttributesForSelector("Execute", commandSelector["Execute"]); + CommandAttributes cmdCorePause = NewCommandAttributesForSelector("Pause", commandSelector["Pause"]); CommandAttributes cmdToggleExecutePause = NewCommandAttributesForSelector("Execute/Pause", commandSelector["Execute/Pause"]); + CommandAttributes cmdFrameAdvance = NewCommandAttributesForSelector("Frame Advance", commandSelector["Frame Advance"]); + CommandAttributes cmdFrameJump = NewCommandAttributesForSelector("Frame Jump", commandSelector["Frame Jump"]); CommandAttributes cmdReset = NewCommandAttributesForSelector("Reset", commandSelector["Reset"]); CommandAttributes cmdToggleMute = NewCommandAttributesForSelector("Mute/Unmute", commandSelector["Mute/Unmute"]); CommandAttributes cmdToggleGPUState = NewCommandAttributesForSelector("Enable/Disable GPU State", commandSelector["Enable/Disable GPU State"]); @@ -1216,11 +1228,16 @@ static std::tr1::unordered_map keyboardNameTable; / defaultCommandAttributes["Copy Screen"] = cmdCopyScreen; defaultCommandAttributes["Rotate Display Left"] = cmdRotateDisplayLeft; defaultCommandAttributes["Rotate Display Right"] = cmdRotateDisplayRight; + defaultCommandAttributes["Toggle All Displays"] = cmdToggleAllDisplays; defaultCommandAttributes["Set Speed"] = cmdToggleSpeed; defaultCommandAttributes["Enable/Disable Speed Limiter"] = cmdToggleSpeedLimiter; defaultCommandAttributes["Enable/Disable Auto Frame Skip"] = cmdToggleAutoFrameSkip; defaultCommandAttributes["Enable/Disable Cheats"] = cmdToggleCheats; + defaultCommandAttributes["Execute"] = cmdCoreExecute; + defaultCommandAttributes["Pause"] = cmdCorePause; defaultCommandAttributes["Execute/Pause"] = cmdToggleExecutePause; + defaultCommandAttributes["Frame Advance"] = cmdFrameAdvance; + defaultCommandAttributes["Frame Jump"] = cmdFrameJump; defaultCommandAttributes["Reset"] = cmdReset; defaultCommandAttributes["Mute/Unmute"] = cmdToggleMute; defaultCommandAttributes["Enable/Disable GPU State"] = cmdToggleGPUState; @@ -1229,11 +1246,16 @@ static std::tr1::unordered_map keyboardNameTable; / [self addMappingForIBAction:@selector(loadEmuSaveStateSlot:) commandAttributes:&cmdLoadEmuSaveStateSlot]; [self addMappingForIBAction:@selector(saveEmuSaveStateSlot:) commandAttributes:&cmdSaveEmuSaveStateSlot]; [self addMappingForIBAction:@selector(copy:) commandAttributes:&cmdCopyScreen]; + [self addMappingForIBAction:@selector(toggleAllDisplays:) commandAttributes:&cmdToggleAllDisplays]; [self addMappingForIBAction:@selector(changeRotationRelative:) commandAttributes:&cmdRotateDisplayRelative]; [self addMappingForIBAction:@selector(toggleSpeedLimiter:) commandAttributes:&cmdToggleSpeedLimiter]; [self addMappingForIBAction:@selector(toggleAutoFrameSkip:) commandAttributes:&cmdToggleAutoFrameSkip]; [self addMappingForIBAction:@selector(toggleCheats:) commandAttributes:&cmdToggleCheats]; + [self addMappingForIBAction:@selector(coreExecute:) commandAttributes:&cmdCoreExecute]; + [self addMappingForIBAction:@selector(corePause:) commandAttributes:&cmdCorePause]; [self addMappingForIBAction:@selector(toggleExecutePause:) commandAttributes:&cmdToggleExecutePause]; + [self addMappingForIBAction:@selector(frameAdvance:) commandAttributes:&cmdFrameAdvance]; + [self addMappingForIBAction:@selector(frameJump:) commandAttributes:&cmdFrameJump]; [self addMappingForIBAction:@selector(reset:) commandAttributes:&cmdReset]; [self addMappingForIBAction:@selector(toggleGPUState:) commandAttributes:&cmdToggleGPUState];