From 0d4811a028c80b2f3f954ec20a82fabd6cce9bd5 Mon Sep 17 00:00:00 2001 From: rogerman Date: Fri, 20 Jan 2012 05:09:13 +0000 Subject: [PATCH] Cocoa Port: Here it is folks -- A brand new Cocoa port! This is a complete remake from the ground up, and constitutes about a year's worth of coding and testing, so enjoy! This log entry only includes a summary of the new features compared to v0.9.7. Due to the number of changes that have taken place, any bug fixes and developer-related details will not be reported here. User Experience: - Added many icons throughout the application to improve the visual appearance and provide easier visual cues. - Added a toolbar and a sound volume slider to the emulation window. - Added mouseover tooltips for most of the controls. - Added the ability to change the emulation window display mode. The user can choose to display only the main screen, only the touch screen, or both screens. - Added the ability to rotate the emulation window display to any arbitrary rotation angle. - Added a bilinear filtering option for the display output. - Added support for using video filters on the display output. - Added the ability to copy a screenshot to the clipboard using Edit > Copy. - ROM Info now provides much more ROM information in a better organized panel. - The emulation window's status bar now gives more user feedback. - In the emulation window, you can now click close to unload ROMs and quit the application. - Externally loaded save states now behave more like typical document files: they ask to save upon close/quit, behave properly using Save and Save As, and support revert. Emulation System: - A modernized program architecture brings substantial performance improvements, especially on multiprocessor/multicore machines. This brings the Cocoa port much closer to the Windows port in terms of performance. - Exposed all emulation, firmware, SPU, and SoftRasterizer options in the user interface. This should help users in configuring DeSmuME to work with many ROMs that were unusable before. - Added support for using BIOS and firmware images. - Added support for completely disabling GPUs (Tools > View Layers > Main GPU and Tools > View Layers > Sub GPU menu options). - Added the ability to change the number of 3D rendering threads. - Added support for using an ADVANsCEne database to autodetect the ROM save type. Cheat System: - Added a cheat manager, which allows the user to use cheat codes. DeSmuME internal cheats and Action Replay cheats are both supported. - Added the ability to run a cheat search. - Added the ability to import Action Replay cheats from an R4 Cheat database. Input System: - Any non-modifier key on the keyboard may now be used for the controller input. - Added support for using USB HID devices for the controller input. Yes, you can use your favorite gamepads and joysticks now. - All emulated controls can now be mapped, including Lid and Debug. - Microphone input is now partially supported. Internal and white noise samples can now be generated for certain ROMs that require microphone input. For now, this should help the user complete certain games that rely heavily on microphone input, such as "The Legend of Zelda: Spirit Tracks". File Handling: - Added a file migration assistant to help the user migrate their old files to the current version of DeSmuME. - Added support for importing and exporting ROM save files in RAW and No$GBA formats. - Added the Tools > Show Support Folder in Finder menu option, which opens DeSmuME's Application Support folder. This exists as a convenience for Lion users. - Added new icons for DeSmuME's files. Note: The XCode Legacy project is now deprecated, and should only be used to make unofficial Tiger builds. Any new builds should use the XCode 3 project. --- .../project.pbxproj | 2006 + desmume/src/cocoa/DefaultKeyMappings.plist | 333 + desmume/src/cocoa/DefaultUserPrefs.plist | Bin 0 -> 4955 bytes desmume/src/cocoa/Info (Debug).plist | 474 + desmume/src/cocoa/Info.plist | 474 + desmume/src/cocoa/KeyNames.plist | 202 + desmume/src/cocoa/cocoa_cheat.h | 164 + desmume/src/cocoa/cocoa_cheat.mm | 1246 + desmume/src/cocoa/cocoa_core.h | 123 + desmume/src/cocoa/cocoa_core.mm | 709 + desmume/src/cocoa/cocoa_firmware.h | 60 + desmume/src/cocoa/cocoa_firmware.mm | 307 + desmume/src/cocoa/cocoa_hid.h | 69 + desmume/src/cocoa/cocoa_hid.mm | 840 + desmume/src/cocoa/cocoa_input.h | 89 + desmume/src/cocoa/cocoa_input.mm | 648 + desmume/src/cocoa/cocoa_mic.h | 63 + desmume/src/cocoa/cocoa_mic.mm | 251 + desmume/src/cocoa/cocoa_output.h | 207 + desmume/src/cocoa/cocoa_output.mm | 1723 + desmume/src/cocoa/cocoa_rom.h | 70 + desmume/src/cocoa/cocoa_rom.mm | 649 + desmume/src/cocoa/cocoa_videofilter.h | 51 + desmume/src/cocoa/cocoa_videofilter.mm | 179 + .../cocoa/images/ColorSwatch_Blue_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Brown_16x16.png | Bin 0 -> 115 bytes .../images/ColorSwatch_DarkBlue_16x16.png | Bin 0 -> 117 bytes .../images/ColorSwatch_DarkGreen_16x16.png | Bin 0 -> 117 bytes .../images/ColorSwatch_DarkPurple_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Gray_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Green_16x16.png | Bin 0 -> 115 bytes .../images/ColorSwatch_LimeGreen_16x16.png | Bin 0 -> 115 bytes .../images/ColorSwatch_Magenta_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Orange_16x16.png | Bin 0 -> 115 bytes .../cocoa/images/ColorSwatch_Pink_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Red_16x16.png | Bin 0 -> 115 bytes .../images/ColorSwatch_SeaGreen_16x16.png | Bin 0 -> 117 bytes .../images/ColorSwatch_Turquoise_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Violet_16x16.png | Bin 0 -> 117 bytes .../cocoa/images/ColorSwatch_Yellow_16x16.png | Bin 0 -> 115 bytes .../images/Icon_ActionReplay_128x128.png | Bin 0 -> 8915 bytes .../cocoa/images/Icon_ActionReplay_32x32.png | Bin 0 -> 4078 bytes .../cocoa/images/Icon_ArrowDown_420x420.png | Bin 0 -> 51637 bytes .../cocoa/images/Icon_ArrowLeft_420x420.png | Bin 0 -> 54391 bytes .../cocoa/images/Icon_ArrowRight_420x420.png | Bin 0 -> 56407 bytes .../src/cocoa/images/Icon_ArrowUp_420x420.png | Bin 0 -> 57050 bytes .../cocoa/images/Icon_CodeBreaker_128x128.png | Bin 0 -> 17702 bytes .../cocoa/images/Icon_CodeBreaker_32x32.png | Bin 0 -> 4153 bytes .../cocoa/images/Icon_DSButtonA_420x420.png | Bin 0 -> 63258 bytes .../cocoa/images/Icon_DSButtonB_420x420.png | Bin 0 -> 58274 bytes .../cocoa/images/Icon_DSButtonL_420x420.png | Bin 0 -> 20241 bytes .../cocoa/images/Icon_DSButtonR_420x420.png | Bin 0 -> 56398 bytes .../images/Icon_DSButtonSelect_420x420.png | Bin 0 -> 106520 bytes .../images/Icon_DSButtonStart_420x420.png | Bin 0 -> 84736 bytes .../cocoa/images/Icon_DSButtonX_420x420.png | Bin 0 -> 65120 bytes .../cocoa/images/Icon_DSButtonY_420x420.png | Bin 0 -> 48574 bytes .../src/cocoa/images/Icon_DeSmuME_32x32.png | Bin 0 -> 1499 bytes .../cocoa/images/Icon_DoubleSpeed_420x420.png | Bin 0 -> 40255 bytes .../cocoa/images/Icon_Emulation_420x420.png | Bin 0 -> 128107 bytes .../src/cocoa/images/Icon_Input_420x420.png | Bin 0 -> 81032 bytes .../cocoa/images/Icon_Microphone_420x420.png | Bin 0 -> 56070 bytes .../src/cocoa/images/Icon_OpenROM_420x420.png | Bin 0 -> 42418 bytes .../src/cocoa/images/Icon_Reset_420x420.png | Bin 0 -> 84994 bytes .../cocoa/images/Icon_RotateCCW_420x420.png | Bin 0 -> 66121 bytes .../cocoa/images/Icon_RotateCW_420x420.png | Bin 0 -> 60655 bytes .../src/cocoa/images/Icon_ShowHUD_420x420.png | Bin 0 -> 47810 bytes .../src/cocoa/images/Icon_Speaker_420x420.png | Bin 0 -> 90033 bytes .../cocoa/images/VideoFilterPreview_64x64.png | Bin 0 -> 4382 bytes .../English.lproj/HID_usage_strings.plist | 1704 + .../English.lproj/MainMenu.strings | Bin 0 -> 255216 bytes .../translations/English.lproj/MainMenu.xib | 41521 ++++++++++++++++ desmume/src/cocoa/userinterface/appDelegate.h | 104 + .../src/cocoa/userinterface/appDelegate.mm | 589 + .../cocoa/userinterface/cheatWindowDelegate.h | 122 + .../userinterface/cheatWindowDelegate.mm | 538 + desmume/src/cocoa/userinterface/displayView.h | 141 + .../src/cocoa/userinterface/displayView.mm | 1038 + .../cocoa/userinterface/emuWindowDelegate.h | 215 + .../cocoa/userinterface/emuWindowDelegate.mm | 2033 + .../src/cocoa/userinterface/inputPrefsView.h | 47 + .../src/cocoa/userinterface/inputPrefsView.mm | 417 + .../userinterface/preferencesWindowDelegate.h | 126 + .../preferencesWindowDelegate.mm | 824 + desmume/src/cocoa/videofilter.cpp | 608 + desmume/src/cocoa/videofilter.h | 139 + 85 files changed, 61103 insertions(+) create mode 100644 desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj create mode 100644 desmume/src/cocoa/DefaultKeyMappings.plist create mode 100644 desmume/src/cocoa/DefaultUserPrefs.plist create mode 100644 desmume/src/cocoa/Info (Debug).plist create mode 100644 desmume/src/cocoa/Info.plist create mode 100644 desmume/src/cocoa/KeyNames.plist create mode 100644 desmume/src/cocoa/cocoa_cheat.h create mode 100644 desmume/src/cocoa/cocoa_cheat.mm create mode 100644 desmume/src/cocoa/cocoa_core.h create mode 100644 desmume/src/cocoa/cocoa_core.mm create mode 100644 desmume/src/cocoa/cocoa_firmware.h create mode 100644 desmume/src/cocoa/cocoa_firmware.mm create mode 100644 desmume/src/cocoa/cocoa_hid.h create mode 100644 desmume/src/cocoa/cocoa_hid.mm create mode 100644 desmume/src/cocoa/cocoa_input.h create mode 100644 desmume/src/cocoa/cocoa_input.mm create mode 100644 desmume/src/cocoa/cocoa_mic.h create mode 100644 desmume/src/cocoa/cocoa_mic.mm create mode 100644 desmume/src/cocoa/cocoa_output.h create mode 100644 desmume/src/cocoa/cocoa_output.mm create mode 100644 desmume/src/cocoa/cocoa_rom.h create mode 100644 desmume/src/cocoa/cocoa_rom.mm create mode 100644 desmume/src/cocoa/cocoa_videofilter.h create mode 100644 desmume/src/cocoa/cocoa_videofilter.mm create mode 100644 desmume/src/cocoa/images/ColorSwatch_Blue_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Brown_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_DarkBlue_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_DarkGreen_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_DarkPurple_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Gray_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Green_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_LimeGreen_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Magenta_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Orange_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Pink_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Red_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_SeaGreen_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Turquoise_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Violet_16x16.png create mode 100644 desmume/src/cocoa/images/ColorSwatch_Yellow_16x16.png create mode 100644 desmume/src/cocoa/images/Icon_ActionReplay_128x128.png create mode 100644 desmume/src/cocoa/images/Icon_ActionReplay_32x32.png create mode 100644 desmume/src/cocoa/images/Icon_ArrowDown_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_ArrowLeft_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_ArrowRight_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_ArrowUp_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_CodeBreaker_128x128.png create mode 100644 desmume/src/cocoa/images/Icon_CodeBreaker_32x32.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonA_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonB_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonL_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonR_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonSelect_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonStart_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonX_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DSButtonY_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_DeSmuME_32x32.png create mode 100644 desmume/src/cocoa/images/Icon_DoubleSpeed_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_Emulation_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_Input_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_Microphone_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_OpenROM_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_Reset_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_RotateCCW_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_RotateCW_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_ShowHUD_420x420.png create mode 100644 desmume/src/cocoa/images/Icon_Speaker_420x420.png create mode 100644 desmume/src/cocoa/images/VideoFilterPreview_64x64.png create mode 100644 desmume/src/cocoa/translations/English.lproj/HID_usage_strings.plist create mode 100644 desmume/src/cocoa/translations/English.lproj/MainMenu.strings create mode 100644 desmume/src/cocoa/translations/English.lproj/MainMenu.xib create mode 100644 desmume/src/cocoa/userinterface/appDelegate.h create mode 100644 desmume/src/cocoa/userinterface/appDelegate.mm create mode 100644 desmume/src/cocoa/userinterface/cheatWindowDelegate.h create mode 100644 desmume/src/cocoa/userinterface/cheatWindowDelegate.mm create mode 100644 desmume/src/cocoa/userinterface/displayView.h create mode 100644 desmume/src/cocoa/userinterface/displayView.mm create mode 100644 desmume/src/cocoa/userinterface/emuWindowDelegate.h create mode 100644 desmume/src/cocoa/userinterface/emuWindowDelegate.mm create mode 100644 desmume/src/cocoa/userinterface/inputPrefsView.h create mode 100644 desmume/src/cocoa/userinterface/inputPrefsView.mm create mode 100644 desmume/src/cocoa/userinterface/preferencesWindowDelegate.h create mode 100644 desmume/src/cocoa/userinterface/preferencesWindowDelegate.mm create mode 100644 desmume/src/cocoa/videofilter.cpp create mode 100644 desmume/src/cocoa/videofilter.h diff --git a/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj new file mode 100644 index 000000000..de0be4d00 --- /dev/null +++ b/desmume/src/cocoa/DeSmuME (XCode 3).xcodeproj/project.pbxproj @@ -0,0 +1,2006 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AB00E87B14205EAE00DE561F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87914205EAE00DE561F /* InfoPlist.strings */; }; + AB00E87E14205EBC00DE561F /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87C14205EBC00DE561F /* MainMenu.xib */; }; + AB02475C13886BF300E9F9AB /* KeyNames.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB02475B13886BF300E9F9AB /* KeyNames.plist */; }; + AB0F290214BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */; }; + AB0F290314BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */; }; + AB0F290414BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */; }; + AB0F290514BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */; }; + AB0F290614BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */; }; + AB0F290714BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */; }; + AB0F290814BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */; }; + AB0F290914BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */; }; + AB0F291D14BE6F4A009ABC6F /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; }; + AB0F293814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */; }; + AB0F293914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */; }; + AB0F293A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */; }; + AB0F293B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */; }; + AB0F293C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */; }; + AB0F293D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */; }; + AB0F293E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */; }; + AB0F293F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */; }; + AB0F294014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */; }; + AB0F294114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */; }; + AB0F294214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */; }; + AB0F294314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */; }; + AB0F294414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */; }; + AB0F294514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */; }; + AB0F294614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */; }; + AB0F294714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */; }; + AB0F294814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */; }; + AB0F294914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */; }; + AB0F294A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */; }; + AB0F294B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */; }; + AB0F294C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */; }; + AB0F294D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */; }; + AB0F294E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */; }; + AB0F294F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */; }; + AB0F295014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */; }; + AB0F295114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */; }; + AB0F295214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */; }; + AB0F295314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */; }; + AB0F295414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */; }; + AB0F295514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */; }; + AB0F295614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */; }; + AB0F295714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */; }; + AB0F296D14BE705D009ABC6F /* Icon_ActionReplay_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */; }; + AB0F296E14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */; }; + AB0F296F14BE705D009ABC6F /* Icon_ActionReplay_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */; }; + AB0F297014BE705D009ABC6F /* Icon_CodeBreaker_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */; }; + AB0F297A14BE70BC009ABC6F /* VideoFilterPreview_64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */; }; + AB0F297B14BE70BC009ABC6F /* VideoFilterPreview_64x64.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */; }; + AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */; }; + AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */; }; + AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */; }; + AB0F298F14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */; }; + AB0F299014BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */; }; + AB0F299114BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */; }; + AB0F299214BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */; }; + AB0F299314BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */; }; + AB0F29A614BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */; }; + AB0F29A714BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */; }; + AB0F29A814BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */; }; + AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */; }; + AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */; }; + AB0F29AB14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */; }; + AB0F29AC14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */; }; + AB0F29AD14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */; }; + AB0F29AE14BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */; }; + AB0F29AF14BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */; }; + AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */; }; + AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */; }; + AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */; }; + AB0F29B314BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */; }; + AB0F29B414BE7213009ABC6F /* Icon_RotateCCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */; }; + AB0F29B514BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */; }; + AB0F29B614BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */; }; + AB0F29B714BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */; }; + AB0F29B814BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */; }; + AB0F29B914BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */; }; + AB0F29BA14BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */; }; + AB0F29BB14BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */; }; + AB0F29BC14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */; }; + AB0F29BD14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */; }; + AB0F29BE14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */; }; + AB0F29BF14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */; }; + AB0F29C014BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */; }; + AB0F29C114BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */; }; + AB0F29C214BE7213009ABC6F /* Icon_Input_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */; }; + AB0F29C314BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */; }; + AB0F29C414BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */; }; + AB0F29C514BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */; }; + AB0F29C614BE7213009ABC6F /* Icon_RotateCCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */; }; + AB0F29C714BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */; }; + AB0F29C814BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */; }; + AB0F29C914BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */ = {isa = PBXBuildFile; fileRef = AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */; }; + AB15CA7214A29EE500B8A6A4 /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */; }; + AB181D0013B66889006CA82D /* datetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */; }; + AB1F468413A0ADE400B80DE6 /* SndOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */; }; + AB1F469813A0AE2F00B80DE6 /* Timestretcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */; }; + AB350B6A1478A5B3007165AC /* cocoa_hid.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB350B691478A5B3007165AC /* cocoa_hid.mm */; }; + AB350BA51478AC96007165AC /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; }; + AB350D3B147A1D93007165AC /* HID_usage_strings.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB350D3A147A1D93007165AC /* HID_usage_strings.plist */; }; + AB3ACB7214C2361100D7D192 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; }; + AB3ACB7314C2361100D7D192 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; }; + AB3ACB7414C2361100D7D192 /* displayView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6B14C2361100D7D192 /* displayView.mm */; }; + AB3ACB7514C2361100D7D192 /* emuWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6D14C2361100D7D192 /* emuWindowDelegate.mm */; }; + AB3ACB7614C2361100D7D192 /* inputPrefsView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */; }; + AB3ACB7714C2361100D7D192 /* preferencesWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */; }; + AB3ACB7814C2361100D7D192 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; }; + AB3ACB7914C2361100D7D192 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; }; + AB3ACB7A14C2361100D7D192 /* displayView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6B14C2361100D7D192 /* displayView.mm */; }; + AB3ACB7B14C2361100D7D192 /* emuWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6D14C2361100D7D192 /* emuWindowDelegate.mm */; }; + AB3ACB7C14C2361100D7D192 /* inputPrefsView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */; }; + AB3ACB7D14C2361100D7D192 /* preferencesWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */; }; + AB3ACC3E14C24D5400D7D192 /* AUTHORS in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3814C24D5400D7D192 /* AUTHORS */; }; + AB3ACC3F14C24D5400D7D192 /* ChangeLog in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3914C24D5400D7D192 /* ChangeLog */; }; + AB3ACC4014C24D5400D7D192 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3A14C24D5400D7D192 /* COPYING */; }; + AB3ACC4114C24D5400D7D192 /* README in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3B14C24D5400D7D192 /* README */; }; + AB3ACC4214C24D5400D7D192 /* README.TRANSLATION in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3C14C24D5400D7D192 /* README.TRANSLATION */; }; + AB3ACC4314C24D5400D7D192 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; + AB3ACC4414C24D5400D7D192 /* AUTHORS in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3814C24D5400D7D192 /* AUTHORS */; }; + AB3ACC4514C24D5400D7D192 /* ChangeLog in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3914C24D5400D7D192 /* ChangeLog */; }; + AB3ACC4614C24D5400D7D192 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3A14C24D5400D7D192 /* COPYING */; }; + AB3ACC4714C24D5400D7D192 /* README in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3B14C24D5400D7D192 /* README */; }; + AB3ACC4814C24D5400D7D192 /* README.TRANSLATION in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3C14C24D5400D7D192 /* README.TRANSLATION */; }; + AB3ACC4914C24D5400D7D192 /* README.MAC in Resources */ = {isa = PBXBuildFile; fileRef = AB3ACC3D14C24D5400D7D192 /* README.MAC */; }; + AB3E34C9134AF4500056477A /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; }; + AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + AB58F32D1364F44B0074C376 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; }; + AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; + AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; + AB711ED21481C35F009011C8 /* KeyNames.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB02475B13886BF300E9F9AB /* KeyNames.plist */; }; + AB711ED31481C35F009011C8 /* DefaultKeyMappings.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */; }; + AB711ED81481C35F009011C8 /* DefaultUserPrefs.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */; }; + AB711EDE1481C35F009011C8 /* FileTypeInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */; }; + AB711EEF1481C35F009011C8 /* AppIcon_ROMSave.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */; }; + AB711EF01481C35F009011C8 /* AppIcon_DeSmuME.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */; }; + AB711EF11481C35F009011C8 /* AppIcon_NintendoDS_ROM.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */; }; + AB711EF21481C35F009011C8 /* AppIcon_SaveState.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */; }; + AB711EF31481C35F009011C8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87914205EAE00DE561F /* InfoPlist.strings */; }; + AB711EF41481C35F009011C8 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB00E87C14205EBC00DE561F /* MainMenu.xib */; }; + AB711EF51481C35F009011C8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB901BDD1420706100348EEC /* Localizable.strings */; }; + AB711EFB1481C35F009011C8 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */; }; + AB711EFC1481C35F009011C8 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */; }; + AB711EFD1481C35F009011C8 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */; }; + AB711EFE1481C35F009011C8 /* HID_usage_strings.plist in Resources */ = {isa = PBXBuildFile; fileRef = AB350D3A147A1D93007165AC /* HID_usage_strings.plist */; }; + AB711F001481C35F009011C8 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; + AB711F011481C35F009011C8 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; + AB711F021481C35F009011C8 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; + AB711F031481C35F009011C8 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; + AB711F041481C35F009011C8 /* cheatSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */; }; + AB711F051481C35F009011C8 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA81345AC8400AF11D1 /* common.cpp */; }; + AB711F061481C35F009011C8 /* cp15.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA91345AC8400AF11D1 /* cp15.cpp */; }; + AB711F071481C35F009011C8 /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAB1345AC8400AF11D1 /* debug.cpp */; }; + AB711F081481C35F009011C8 /* Disassembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */; }; + AB711F091481C35F009011C8 /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAE1345AC8400AF11D1 /* driver.cpp */; }; + AB711F0A1481C35F009011C8 /* emufile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */; }; + AB711F0B1481C35F009011C8 /* FIFO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */; }; + AB711F0C1481C35F009011C8 /* firmware.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB11345AC8400AF11D1 /* firmware.cpp */; }; + AB711F0D1481C35F009011C8 /* gfx3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */; }; + AB711F0E1481C35F009011C8 /* GPU_osd_stub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */; }; + AB711F0F1481C35F009011C8 /* GPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB71345AC8400AF11D1 /* GPU.cpp */; }; + AB711F101481C35F009011C8 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB91345AC8400AF11D1 /* matrix.cpp */; }; + AB711F111481C35F009011C8 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBA1345AC8400AF11D1 /* mc.cpp */; }; + AB711F121481C35F009011C8 /* MMU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */; }; + AB711F131481C35F009011C8 /* movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBF1345AC8400AF11D1 /* movie.cpp */; }; + AB711F141481C35F009011C8 /* NDSSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */; }; + AB711F151481C35F009011C8 /* path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC21345AC8400AF11D1 /* path.cpp */; }; + AB711F161481C35F009011C8 /* rasterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */; }; + AB711F171481C35F009011C8 /* readwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */; }; + AB711F181481C35F009011C8 /* render3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC51345AC8400AF11D1 /* render3D.cpp */; }; + AB711F191481C35F009011C8 /* ROMReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */; }; + AB711F1A1481C35F009011C8 /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC71345AC8400AF11D1 /* rtc.cpp */; }; + AB711F1B1481C35F009011C8 /* saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC81345AC8400AF11D1 /* saves.cpp */; }; + AB711F1C1481C35F009011C8 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; + AB711F1D1481C35F009011C8 /* SPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECB1345AC8400AF11D1 /* SPU.cpp */; }; + AB711F1E1481C35F009011C8 /* texcache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECC1345AC8400AF11D1 /* texcache.cpp */; }; + AB711F1F1481C35F009011C8 /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */; }; + AB711F201481C35F009011C8 /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECE1345AC8400AF11D1 /* version.cpp */; }; + AB711F211481C35F009011C8 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; + AB711F221481C35F009011C8 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; + AB711F231481C35F009011C8 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; + AB711F241481C35F009011C8 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; + AB711F251481C35F009011C8 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; + AB711F261481C35F009011C8 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; + AB711F271481C35F009011C8 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; + AB711F281481C35F009011C8 /* slot2_mpcf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */; }; + AB711F291481C35F009011C8 /* slot2_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */; }; + AB711F2A1481C35F009011C8 /* slot2_paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */; }; + AB711F2B1481C35F009011C8 /* slot2_piano.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */; }; + AB711F2C1481C35F009011C8 /* slot2_rumblepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */; }; + AB711F2D1481C35F009011C8 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; + AB711F2E1481C35F009011C8 /* crc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF221345ACBF00AF11D1 /* crc.cpp */; }; + AB711F2F1481C35F009011C8 /* decrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */; }; + AB711F301481C35F009011C8 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF261345ACBF00AF11D1 /* header.cpp */; }; + AB711F311481C35F009011C8 /* dlditool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */; }; + AB711F321481C35F009011C8 /* emufat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF291345ACBF00AF11D1 /* emufat.cpp */; }; + AB711F331481C35F009011C8 /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */; }; + AB711F341481C35F009011C8 /* cache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF301345ACBF00AF11D1 /* cache.cpp */; }; + AB711F351481C35F009011C8 /* directory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF331345ACBF00AF11D1 /* directory.cpp */; }; + AB711F361481C35F009011C8 /* disc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF351345ACBF00AF11D1 /* disc.cpp */; }; + AB711F371481C35F009011C8 /* fatdir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */; }; + AB711F381481C35F009011C8 /* fatfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */; }; + AB711F391481C35F009011C8 /* file_allocation_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */; }; + AB711F3A1481C35F009011C8 /* filetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */; }; + AB711F3B1481C35F009011C8 /* libfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF411345ACBF00AF11D1 /* libfat.cpp */; }; + AB711F3C1481C35F009011C8 /* libfat_public_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */; }; + AB711F3D1481C35F009011C8 /* lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF451345ACBF00AF11D1 /* lock.cpp */; }; + AB711F3E1481C35F009011C8 /* partition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF481345ACBF00AF11D1 /* partition.cpp */; }; + AB711F3F1481C35F009011C8 /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */; }; + AB711F401481C35F009011C8 /* task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4C1345ACBF00AF11D1 /* task.cpp */; }; + AB711F411481C35F009011C8 /* vfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */; }; + AB711F421481C35F009011C8 /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF511345ACBF00AF11D1 /* xstring.cpp */; }; + AB711F431481C35F009011C8 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; + AB711F461481C35F009011C8 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; }; + AB711F471481C35F009011C8 /* cocoa_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104121346652500AF11D1 /* cocoa_core.mm */; }; + AB711F481481C35F009011C8 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; }; + AB711F491481C35F009011C8 /* sndOSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD104141346652500AF11D1 /* sndOSX.cpp */; }; + AB711F4A1481C35F009011C8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABD104271346653B00AF11D1 /* main.m */; }; + AB711F4C1481C35F009011C8 /* cocoa_output.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3E34C8134AF4500056477A /* cocoa_output.mm */; }; + AB711F4E1481C35F009011C8 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB58F32C1364F44B0074C376 /* cocoa_file.mm */; }; + AB711F501481C35F009011C8 /* slot1_retail_nand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */; }; + AB711F511481C35F009011C8 /* SndOut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */; }; + AB711F521481C35F009011C8 /* Timestretcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */; }; + AB711F531481C35F009011C8 /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */; }; + AB711F541481C35F009011C8 /* FIFOSampleBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */; }; + AB711F551481C35F009011C8 /* FIRFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */; }; + AB711F561481C35F009011C8 /* mmx_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */; }; + AB711F571481C35F009011C8 /* RateTransposer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */; }; + AB711F581481C35F009011C8 /* SoundTouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */; }; + AB711F591481C35F009011C8 /* sse_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */; }; + AB711F5A1481C35F009011C8 /* TDStretch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */; }; + AB711F5B1481C35F009011C8 /* WavFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */; }; + AB711F5C1481C35F009011C8 /* datetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */; }; + AB711F5D1481C35F009011C8 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + AB711F5E1481C35F009011C8 /* cocoa_mic.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD9A46413DB99B300777194 /* cocoa_mic.mm */; }; + AB711F5F1481C35F009011C8 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; }; + AB711F601481C35F009011C8 /* cocoa_firmware.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */; }; + AB711F611481C35F009011C8 /* tinystr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670251415DE6C00E8E4C9 /* tinystr.cpp */; }; + AB711F621481C35F009011C8 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */; }; + AB711F631481C35F009011C8 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */; }; + AB711F641481C35F009011C8 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */; }; + AB711F651481C35F009011C8 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210314234C8B00348EEC /* 2xsai.cpp */; }; + AB711F661481C35F009011C8 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210414234C8B00348EEC /* bilinear.cpp */; }; + AB711F671481C35F009011C8 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210514234C8B00348EEC /* epx.cpp */; }; + AB711F681481C35F009011C8 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210714234C8B00348EEC /* hq2x.cpp */; }; + AB711F691481C35F009011C8 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210914234C8B00348EEC /* hq4x.cpp */; }; + AB711F6A1481C35F009011C8 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210D14234C8B00348EEC /* lq2x.cpp */; }; + AB711F6B1481C35F009011C8 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210F14234C8B00348EEC /* scanline.cpp */; }; + AB711F6C1481C35F009011C8 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; }; + AB711F6D1481C35F009011C8 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; }; + AB711F6E1481C35F009011C8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; }; + AB711F701481C35F009011C8 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; }; + AB711F711481C35F009011C8 /* cpu_detect_x86_gcc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */; }; + AB711F721481C35F009011C8 /* cocoa_hid.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB350B691478A5B3007165AC /* cocoa_hid.mm */; }; + AB711F741481C35F009011C8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AB711F751481C35F009011C8 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */; }; + AB711F761481C35F009011C8 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; + AB711F771481C35F009011C8 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; + AB711F781481C35F009011C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; + AB711F7B1481C35F009011C8 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB350BA41478AC96007165AC /* IOKit.framework */; }; + AB75226E14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; + AB75226F14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */ = {isa = PBXBuildFile; fileRef = AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */; }; + AB80E04D142BC4A800A52038 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; }; + AB901BDE1420706100348EEC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB901BDD1420706100348EEC /* Localizable.strings */; }; + AB90211014234C8B00348EEC /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210314234C8B00348EEC /* 2xsai.cpp */; }; + AB90211114234C8B00348EEC /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210414234C8B00348EEC /* bilinear.cpp */; }; + AB90211214234C8B00348EEC /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210514234C8B00348EEC /* epx.cpp */; }; + AB90211314234C8B00348EEC /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210714234C8B00348EEC /* hq2x.cpp */; }; + AB90211414234C8B00348EEC /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210914234C8B00348EEC /* hq4x.cpp */; }; + AB90211614234C8B00348EEC /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210D14234C8B00348EEC /* lq2x.cpp */; }; + AB90211714234C8B00348EEC /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB90210F14234C8B00348EEC /* scanline.cpp */; }; + AB91D46B13BD013800462471 /* fs-linux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */; }; + ABA6574B14511EC90077E5E9 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; }; + ABAD3E7113AF1D6D00502E1E /* AAFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */; }; + ABAD3E7413AF1D6D00502E1E /* FIFOSampleBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */; }; + ABAD3E7513AF1D6D00502E1E /* FIRFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */; }; + ABAD3E7613AF1D6D00502E1E /* mmx_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */; }; + ABAD3E7713AF1D6D00502E1E /* RateTransposer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */; }; + ABAD3E7813AF1D6D00502E1E /* SoundTouch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */; }; + ABAD3E7913AF1D6D00502E1E /* sse_optimized.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */; }; + ABAD3E7A13AF1D6D00502E1E /* TDStretch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */; }; + ABAD3E7B13AF1D6D00502E1E /* WavFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */; }; + ABB97876144E89CC00793FA3 /* Icon_ActionReplay_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */; }; + ABB97877144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */; }; + ABB97878144E89CC00793FA3 /* Icon_DeSmuME_32x32.png in Resources */ = {isa = PBXBuildFile; fileRef = ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */; }; + ABBC0F8D1394B1AA0028B6BD /* DefaultUserPrefs.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */; }; + ABBF04A514B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; + ABBF04A614B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */; }; + ABC3AF2F14B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */; }; + ABC3AF3014B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */; }; + ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */; }; + ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.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 */; }; + ABC3AF3614B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */; }; + ABC3AFCF14B8D16700D5B13D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AB0A0D1914AACA9600E83E91 /* libz.dylib */; }; + ABC570D1134431CE00E7B0B1 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */; }; + ABC570D5134431DA00E7B0B1 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D4134431DA00E7B0B1 /* OpenGL.framework */; }; + ABC5720D1344346600E7B0B1 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; + ABC572101344347000E7B0B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; + ABC719E2138CB25E002827A9 /* DefaultKeyMappings.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */; }; + ABD1041C1346652500AF11D1 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; }; + ABD1041D1346652500AF11D1 /* cocoa_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104121346652500AF11D1 /* cocoa_core.mm */; }; + ABD1041E1346652500AF11D1 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; }; + ABD1041F1346652500AF11D1 /* sndOSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD104141346652500AF11D1 /* sndOSX.cpp */; }; + ABD104281346653B00AF11D1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = ABD104271346653B00AF11D1 /* main.m */; }; + ABD1FED01345AC8400AF11D1 /* addons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA11345AC8400AF11D1 /* addons.cpp */; }; + ABD1FED21345AC8400AF11D1 /* arm_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */; }; + ABD1FED31345AC8400AF11D1 /* armcpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */; }; + ABD1FED41345AC8400AF11D1 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA51345AC8400AF11D1 /* bios.cpp */; }; + ABD1FED51345AC8400AF11D1 /* cheatSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */; }; + ABD1FED71345AC8400AF11D1 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA81345AC8400AF11D1 /* common.cpp */; }; + ABD1FED81345AC8400AF11D1 /* cp15.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEA91345AC8400AF11D1 /* cp15.cpp */; }; + ABD1FEDA1345AC8400AF11D1 /* debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAB1345AC8400AF11D1 /* debug.cpp */; }; + ABD1FEDC1345AC8400AF11D1 /* Disassembler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */; }; + ABD1FEDD1345AC8400AF11D1 /* driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAE1345AC8400AF11D1 /* driver.cpp */; }; + ABD1FEDE1345AC8400AF11D1 /* emufile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */; }; + ABD1FEDF1345AC8400AF11D1 /* FIFO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */; }; + ABD1FEE01345AC8400AF11D1 /* firmware.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB11345AC8400AF11D1 /* firmware.cpp */; }; + ABD1FEE31345AC8400AF11D1 /* gfx3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */; }; + ABD1FEE41345AC8400AF11D1 /* GPU_osd_stub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */; }; + ABD1FEE61345AC8400AF11D1 /* GPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB71345AC8400AF11D1 /* GPU.cpp */; }; + ABD1FEE81345AC8400AF11D1 /* matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEB91345AC8400AF11D1 /* matrix.cpp */; }; + ABD1FEE91345AC8400AF11D1 /* mc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBA1345AC8400AF11D1 /* mc.cpp */; }; + ABD1FEED1345AC8400AF11D1 /* MMU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */; }; + ABD1FEEE1345AC8400AF11D1 /* movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEBF1345AC8400AF11D1 /* movie.cpp */; }; + ABD1FEEF1345AC8400AF11D1 /* NDSSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */; }; + ABD1FEF11345AC8400AF11D1 /* path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC21345AC8400AF11D1 /* path.cpp */; }; + ABD1FEF21345AC8400AF11D1 /* rasterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */; }; + ABD1FEF31345AC8400AF11D1 /* readwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */; }; + ABD1FEF41345AC8400AF11D1 /* render3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC51345AC8400AF11D1 /* render3D.cpp */; }; + ABD1FEF51345AC8400AF11D1 /* ROMReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */; }; + ABD1FEF61345AC8400AF11D1 /* rtc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC71345AC8400AF11D1 /* rtc.cpp */; }; + ABD1FEF71345AC8400AF11D1 /* saves.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC81345AC8400AF11D1 /* saves.cpp */; }; + ABD1FEF81345AC8400AF11D1 /* slot1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC91345AC8400AF11D1 /* slot1.cpp */; }; + ABD1FEFA1345AC8400AF11D1 /* SPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECB1345AC8400AF11D1 /* SPU.cpp */; }; + ABD1FEFB1345AC8400AF11D1 /* texcache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECC1345AC8400AF11D1 /* texcache.cpp */; }; + ABD1FEFC1345AC8400AF11D1 /* thumb_instructions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */; }; + ABD1FEFD1345AC8400AF11D1 /* version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECE1345AC8400AF11D1 /* version.cpp */; }; + ABD1FEFE1345AC8400AF11D1 /* wifi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FECF1345AC8400AF11D1 /* wifi.cpp */; }; + ABD1FF0B1345AC9C00AF11D1 /* slot1_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */; }; + ABD1FF0C1345AC9C00AF11D1 /* slot1_r4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */; }; + ABD1FF0D1345AC9C00AF11D1 /* slot1_retail.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */; }; + ABD1FF0E1345AC9C00AF11D1 /* slot2_expMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */; }; + ABD1FF0F1345AC9C00AF11D1 /* slot2_gbagame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */; }; + ABD1FF101345AC9C00AF11D1 /* slot2_guitarGrip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */; }; + ABD1FF111345AC9C00AF11D1 /* slot2_mpcf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */; }; + ABD1FF121345AC9C00AF11D1 /* slot2_none.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */; }; + ABD1FF131345AC9C00AF11D1 /* slot2_paddle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */; }; + ABD1FF141345AC9C00AF11D1 /* slot2_piano.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */; }; + ABD1FF151345AC9C00AF11D1 /* slot2_rumblepak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */; }; + ABD1FF531345ACBF00AF11D1 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */; }; + ABD1FF551345ACBF00AF11D1 /* crc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF221345ACBF00AF11D1 /* crc.cpp */; }; + ABD1FF561345ACBF00AF11D1 /* decrypt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */; }; + ABD1FF571345ACBF00AF11D1 /* header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF261345ACBF00AF11D1 /* header.cpp */; }; + ABD1FF581345ACBF00AF11D1 /* dlditool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */; }; + ABD1FF591345ACBF00AF11D1 /* emufat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF291345ACBF00AF11D1 /* emufat.cpp */; }; + ABD1FF5A1345ACBF00AF11D1 /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */; }; + ABD1FF5B1345ACBF00AF11D1 /* cache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF301345ACBF00AF11D1 /* cache.cpp */; }; + ABD1FF5C1345ACBF00AF11D1 /* directory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF331345ACBF00AF11D1 /* directory.cpp */; }; + ABD1FF5D1345ACBF00AF11D1 /* disc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF351345ACBF00AF11D1 /* disc.cpp */; }; + ABD1FF5E1345ACBF00AF11D1 /* fatdir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */; }; + ABD1FF5F1345ACBF00AF11D1 /* fatfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */; }; + ABD1FF601345ACBF00AF11D1 /* file_allocation_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */; }; + ABD1FF611345ACBF00AF11D1 /* filetime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */; }; + ABD1FF621345ACBF00AF11D1 /* libfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF411345ACBF00AF11D1 /* libfat.cpp */; }; + ABD1FF631345ACBF00AF11D1 /* libfat_public_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */; }; + ABD1FF641345ACBF00AF11D1 /* lock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF451345ACBF00AF11D1 /* lock.cpp */; }; + ABD1FF651345ACBF00AF11D1 /* partition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF481345ACBF00AF11D1 /* partition.cpp */; }; + ABD1FF661345ACBF00AF11D1 /* md5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */; }; + ABD1FF671345ACBF00AF11D1 /* task.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4C1345ACBF00AF11D1 /* task.cpp */; }; + ABD1FF681345ACBF00AF11D1 /* vfat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */; }; + ABD1FF691345ACBF00AF11D1 /* xstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF511345ACBF00AF11D1 /* xstring.cpp */; }; + ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */; }; + ABD9A46513DB99B300777194 /* cocoa_mic.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD9A46413DB99B300777194 /* cocoa_mic.mm */; }; + 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 */; }; + ABE6702C1415DE6C00E8E4C9 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */; }; + ABE6702D1415DE6C00E8E4C9 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */; }; + ABE6702E1415DE6C00E8E4C9 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */; }; + ABE7F53E13EE1C7900FD3A71 /* cocoa_firmware.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */; }; + ABEFCF61141AB82A000CC0CD /* AppIcon_ROMSave.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */; }; + ABEFCF62141AB82A000CC0CD /* AppIcon_DeSmuME.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */; }; + ABEFCF63141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */; }; + ABEFCF64141AB82A000CC0CD /* AppIcon_SaveState.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 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; }; + AB00E87A14205EAE00DE561F /* English */ = {isa = PBXFileReference; fileEncoding = 4; 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 = ""; }; + AB02475B13886BF300E9F9AB /* KeyNames.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = KeyNames.plist; sourceTree = ""; }; + AB02791814415E4C0075E58C /* Info (Debug).plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info (Debug).plist"; sourceTree = ""; }; + AB0A0D1914AACA9600E83E91 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Execute_420x420.png; path = images/Icon_Execute_420x420.png; sourceTree = ""; }; + AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Pause_420x420.png; path = images/Icon_Pause_420x420.png; sourceTree = ""; }; + AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speed1x_420x420.png; path = images/Icon_Speed1x_420x420.png; sourceTree = ""; }; + AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speed2x_420x420.png; path = images/Icon_Speed2x_420x420.png; sourceTree = ""; }; + AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Blue_16x16.png; path = images/ColorSwatch_Blue_16x16.png; sourceTree = ""; }; + AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Brown_16x16.png; path = images/ColorSwatch_Brown_16x16.png; sourceTree = ""; }; + AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_DarkBlue_16x16.png; path = images/ColorSwatch_DarkBlue_16x16.png; sourceTree = ""; }; + AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_DarkGreen_16x16.png; path = images/ColorSwatch_DarkGreen_16x16.png; sourceTree = ""; }; + AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_DarkPurple_16x16.png; path = images/ColorSwatch_DarkPurple_16x16.png; sourceTree = ""; }; + AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Gray_16x16.png; path = images/ColorSwatch_Gray_16x16.png; sourceTree = ""; }; + AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Green_16x16.png; path = images/ColorSwatch_Green_16x16.png; sourceTree = ""; }; + AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_LimeGreen_16x16.png; path = images/ColorSwatch_LimeGreen_16x16.png; sourceTree = ""; }; + AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Magenta_16x16.png; path = images/ColorSwatch_Magenta_16x16.png; sourceTree = ""; }; + AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Orange_16x16.png; path = images/ColorSwatch_Orange_16x16.png; sourceTree = ""; }; + AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Pink_16x16.png; path = images/ColorSwatch_Pink_16x16.png; sourceTree = ""; }; + AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Red_16x16.png; path = images/ColorSwatch_Red_16x16.png; sourceTree = ""; }; + AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_SeaGreen_16x16.png; path = images/ColorSwatch_SeaGreen_16x16.png; sourceTree = ""; }; + AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Turquoise_16x16.png; path = images/ColorSwatch_Turquoise_16x16.png; sourceTree = ""; }; + AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Violet_16x16.png; path = images/ColorSwatch_Violet_16x16.png; sourceTree = ""; }; + AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ColorSwatch_Yellow_16x16.png; path = images/ColorSwatch_Yellow_16x16.png; sourceTree = ""; }; + AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ActionReplay_128x128.png; path = images/Icon_ActionReplay_128x128.png; sourceTree = ""; }; + AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_CodeBreaker_128x128.png; path = images/Icon_CodeBreaker_128x128.png; sourceTree = ""; }; + AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = VideoFilterPreview_64x64.png; path = images/VideoFilterPreview_64x64.png; sourceTree = ""; }; + AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowDown_420x420.png; path = images/Icon_ArrowDown_420x420.png; sourceTree = ""; }; + AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowLeft_420x420.png; path = images/Icon_ArrowLeft_420x420.png; sourceTree = ""; }; + AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowRight_420x420.png; path = images/Icon_ArrowRight_420x420.png; sourceTree = ""; }; + AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ArrowUp_420x420.png; path = images/Icon_ArrowUp_420x420.png; sourceTree = ""; }; + AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DoubleSpeed_420x420.png; path = images/Icon_DoubleSpeed_420x420.png; sourceTree = ""; }; + AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonA_420x420.png; path = images/Icon_DSButtonA_420x420.png; sourceTree = ""; }; + AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonB_420x420.png; path = images/Icon_DSButtonB_420x420.png; sourceTree = ""; }; + AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonL_420x420.png; path = images/Icon_DSButtonL_420x420.png; sourceTree = ""; }; + AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonR_420x420.png; path = images/Icon_DSButtonR_420x420.png; sourceTree = ""; }; + AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonSelect_420x420.png; path = images/Icon_DSButtonSelect_420x420.png; sourceTree = ""; }; + AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonStart_420x420.png; path = images/Icon_DSButtonStart_420x420.png; sourceTree = ""; }; + AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonX_420x420.png; path = images/Icon_DSButtonX_420x420.png; sourceTree = ""; }; + AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DSButtonY_420x420.png; path = images/Icon_DSButtonY_420x420.png; sourceTree = ""; }; + AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Emulation_420x420.png; path = images/Icon_Emulation_420x420.png; sourceTree = ""; }; + AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Input_420x420.png; path = images/Icon_Input_420x420.png; sourceTree = ""; }; + AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Microphone_420x420.png; path = images/Icon_Microphone_420x420.png; sourceTree = ""; }; + AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_OpenROM_420x420.png; path = images/Icon_OpenROM_420x420.png; sourceTree = ""; }; + AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Reset_420x420.png; path = images/Icon_Reset_420x420.png; sourceTree = ""; }; + AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_RotateCCW_420x420.png; path = images/Icon_RotateCCW_420x420.png; sourceTree = ""; }; + AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_RotateCW_420x420.png; path = images/Icon_RotateCW_420x420.png; sourceTree = ""; }; + AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ShowHUD_420x420.png; path = images/Icon_ShowHUD_420x420.png; sourceTree = ""; }; + AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_Speaker_420x420.png; path = images/Icon_Speaker_420x420.png; sourceTree = ""; }; + AB350B681478A5B3007165AC /* cocoa_hid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_hid.h; sourceTree = ""; }; + AB350B691478A5B3007165AC /* cocoa_hid.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_hid.mm; sourceTree = ""; }; + AB350BA41478AC96007165AC /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + AB350D38147A1D8D007165AC /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = English; path = translations/English.lproj/HID_usage_strings.plist; sourceTree = ""; }; + AB3ACB6614C2361100D7D192 /* appDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = appDelegate.h; sourceTree = ""; }; + AB3ACB6714C2361100D7D192 /* appDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = appDelegate.mm; sourceTree = ""; }; + AB3ACB6814C2361100D7D192 /* cheatWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cheatWindowDelegate.h; sourceTree = ""; }; + AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cheatWindowDelegate.mm; sourceTree = ""; }; + AB3ACB6A14C2361100D7D192 /* displayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = displayView.h; sourceTree = ""; }; + AB3ACB6B14C2361100D7D192 /* displayView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = displayView.mm; sourceTree = ""; }; + AB3ACB6C14C2361100D7D192 /* emuWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emuWindowDelegate.h; sourceTree = ""; }; + AB3ACB6D14C2361100D7D192 /* emuWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = emuWindowDelegate.mm; sourceTree = ""; }; + AB3ACB6E14C2361100D7D192 /* inputPrefsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inputPrefsView.h; sourceTree = ""; }; + AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = inputPrefsView.mm; sourceTree = ""; }; + AB3ACB7014C2361100D7D192 /* preferencesWindowDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = preferencesWindowDelegate.h; sourceTree = ""; }; + AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = preferencesWindowDelegate.mm; sourceTree = ""; }; + AB3ACC3814C24D5400D7D192 /* AUTHORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = AUTHORS; path = ../../AUTHORS; sourceTree = SOURCE_ROOT; }; + AB3ACC3914C24D5400D7D192 /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ChangeLog; path = ../../ChangeLog; sourceTree = SOURCE_ROOT; }; + AB3ACC3A14C24D5400D7D192 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = COPYING; path = ../../COPYING; sourceTree = SOURCE_ROOT; }; + AB3ACC3B14C24D5400D7D192 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README; path = ../../README; sourceTree = SOURCE_ROOT; }; + AB3ACC3C14C24D5400D7D192 /* README.TRANSLATION */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.TRANSLATION; path = ../../README.TRANSLATION; sourceTree = SOURCE_ROOT; }; + AB3ACC3D14C24D5400D7D192 /* README.MAC */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.MAC; path = ../../README.MAC; sourceTree = SOURCE_ROOT; }; + AB3E34C7134AF4500056477A /* cocoa_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_output.h; sourceTree = ""; }; + AB3E34C8134AF4500056477A /* cocoa_output.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_output.mm; sourceTree = ""; }; + AB58F32B1364F44B0074C376 /* cocoa_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_file.h; sourceTree = ""; }; + AB58F32C1364F44B0074C376 /* cocoa_file.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_file.mm; sourceTree = ""; }; + AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = FileTypeInfo.plist; sourceTree = ""; }; + AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_nand.cpp; sourceTree = ""; }; + AB711F7F1481C35F009011C8 /* DeSmuME (Debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DeSmuME (Debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; + AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_FirmwareConfig.icns; sourceTree = ""; }; + AB80E04C142BC4A800A52038 /* cocoa_util.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_util.mm; sourceTree = ""; }; + AB80E050142BC4FA00A52038 /* cocoa_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_util.h; sourceTree = ""; }; + AB817A34143EE2DB00A7DFE9 /* videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videofilter.h; sourceTree = ""; }; + AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = videofilter.cpp; sourceTree = ""; }; + AB901BDF1420706B00348EEC /* Japanese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Japanese; path = translations/Japanese.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE01420706F00348EEC /* French */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = French; path = translations/French.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE11420707400348EEC /* Italian */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Italian; path = translations/Italian.lproj/Localizable.strings; sourceTree = ""; }; + AB901BE21420707800348EEC /* Chinese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; lineEnding = 0; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = ""; }; + 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 = ""; }; + AB90210314234C8B00348EEC /* 2xsai.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 2xsai.cpp; sourceTree = ""; }; + AB90210414234C8B00348EEC /* bilinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bilinear.cpp; sourceTree = ""; }; + AB90210514234C8B00348EEC /* epx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = epx.cpp; sourceTree = ""; }; + AB90210614234C8B00348EEC /* filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter.h; sourceTree = ""; }; + AB90210714234C8B00348EEC /* hq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq2x.cpp; sourceTree = ""; }; + AB90210814234C8B00348EEC /* hq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq2x.h; sourceTree = ""; }; + AB90210914234C8B00348EEC /* hq4x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq4x.cpp; sourceTree = ""; }; + AB90210B14234C8B00348EEC /* hq4x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq4x.h; sourceTree = ""; }; + AB90210C14234C8B00348EEC /* interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp.h; sourceTree = ""; }; + AB90210D14234C8B00348EEC /* lq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lq2x.cpp; sourceTree = ""; }; + AB90210E14234C8B00348EEC /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lq2x.h; sourceTree = ""; }; + AB90210F14234C8B00348EEC /* scanline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scanline.cpp; sourceTree = ""; }; + AB9971CE134EDA0800531BA7 /* cocoa_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_globals.h; 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 = ""; }; + ABAD3E5913AF1D6D00502E1E /* AAFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAFilter.h; sourceTree = ""; }; + ABAD3E5A13AF1D6D00502E1E /* BPMDetect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BPMDetect.h; sourceTree = ""; }; + ABAD3E5B13AF1D6D00502E1E /* cpu_detect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu_detect.h; sourceTree = ""; }; + ABAD3E5C13AF1D6D00502E1E /* FIFOSampleBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIFOSampleBuffer.h; sourceTree = ""; }; + ABAD3E5D13AF1D6D00502E1E /* FIFOSamplePipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIFOSamplePipe.h; sourceTree = ""; }; + ABAD3E5E13AF1D6D00502E1E /* FIRFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRFilter.h; sourceTree = ""; }; + ABAD3E5F13AF1D6D00502E1E /* RateTransposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RateTransposer.h; sourceTree = ""; }; + ABAD3E6013AF1D6D00502E1E /* SoundTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundTouch.h; sourceTree = ""; }; + ABAD3E6113AF1D6D00502E1E /* STTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STTypes.h; sourceTree = ""; }; + ABAD3E6213AF1D6D00502E1E /* TDStretch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDStretch.h; sourceTree = ""; }; + ABAD3E6313AF1D6D00502E1E /* WavFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WavFile.h; sourceTree = ""; }; + ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AAFilter.cpp; sourceTree = ""; }; + ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu_detect_x86_gcc.cpp; sourceTree = ""; }; + ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FIFOSampleBuffer.cpp; sourceTree = ""; }; + ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FIRFilter.cpp; sourceTree = ""; }; + ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mmx_optimized.cpp; sourceTree = ""; }; + ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RateTransposer.cpp; sourceTree = ""; }; + ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SoundTouch.cpp; sourceTree = ""; }; + ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sse_optimized.cpp; sourceTree = ""; }; + ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TDStretch.cpp; sourceTree = ""; }; + ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WavFile.cpp; sourceTree = ""; }; + ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_ActionReplay_32x32.png; path = Images/Icon_ActionReplay_32x32.png; sourceTree = ""; }; + ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_CodeBreaker_32x32.png; path = Images/Icon_CodeBreaker_32x32.png; sourceTree = ""; }; + ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_DeSmuME_32x32.png; path = Images/Icon_DeSmuME_32x32.png; sourceTree = ""; }; + ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = DefaultUserPrefs.plist; sourceTree = ""; }; + ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMCheats.icns; 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 = ""; }; + ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_VolumeTwoThird_16x16.png; path = images/Icon_VolumeTwoThird_16x16.png; sourceTree = ""; }; + ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; }; + ABC570D4134431DA00E7B0B1 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = DefaultKeyMappings.plist; sourceTree = ""; }; + ABD103FE1346652500AF11D1 /* cocoa_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_core.h; sourceTree = ""; }; + ABD103FF1346652500AF11D1 /* cocoa_input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_input.h; sourceTree = ""; }; + ABD104001346652500AF11D1 /* cocoa_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_rom.h; sourceTree = ""; }; + ABD104011346652500AF11D1 /* sndOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sndOSX.h; sourceTree = ""; }; + ABD104111346652500AF11D1 /* cocoa_input.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_input.mm; sourceTree = ""; }; + ABD104121346652500AF11D1 /* cocoa_core.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_core.mm; sourceTree = ""; }; + ABD104131346652500AF11D1 /* cocoa_rom.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_rom.mm; sourceTree = ""; }; + ABD104141346652500AF11D1 /* sndOSX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sndOSX.cpp; sourceTree = ""; }; + ABD104271346653B00AF11D1 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + ABD10452134666DD00AF11D1 /* DeSmuME_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeSmuME_Prefix.pch; sourceTree = ""; }; + ABD1FE6B1345AC8400AF11D1 /* addons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = addons.h; path = ../addons.h; sourceTree = SOURCE_ROOT; }; + ABD1FE6C1345AC8400AF11D1 /* agg2d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = agg2d.h; path = ../agg2d.h; sourceTree = SOURCE_ROOT; }; + ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aggdraw.h; path = ../aggdraw.h; sourceTree = SOURCE_ROOT; }; + ABD1FE6E1345AC8400AF11D1 /* arm_instructions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arm_instructions.h; path = ../arm_instructions.h; sourceTree = SOURCE_ROOT; }; + ABD1FE6F1345AC8400AF11D1 /* armcpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armcpu.h; path = ../armcpu.h; sourceTree = SOURCE_ROOT; }; + ABD1FE701345AC8400AF11D1 /* bios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bios.h; path = ../bios.h; sourceTree = SOURCE_ROOT; }; + ABD1FE711345AC8400AF11D1 /* bits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bits.h; path = ../bits.h; sourceTree = SOURCE_ROOT; }; + ABD1FE721345AC8400AF11D1 /* cheatSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cheatSystem.h; path = ../cheatSystem.h; sourceTree = SOURCE_ROOT; }; + ABD1FE731345AC8400AF11D1 /* commandline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = commandline.h; path = ../commandline.h; sourceTree = SOURCE_ROOT; }; + ABD1FE741345AC8400AF11D1 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../common.h; sourceTree = SOURCE_ROOT; }; + ABD1FE751345AC8400AF11D1 /* cp15.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cp15.h; path = ../cp15.h; sourceTree = SOURCE_ROOT; }; + ABD1FE761345AC8400AF11D1 /* ctrlssdl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ctrlssdl.h; path = ../ctrlssdl.h; sourceTree = SOURCE_ROOT; }; + ABD1FE771345AC8400AF11D1 /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debug.h; path = ../debug.h; sourceTree = SOURCE_ROOT; }; + ABD1FE781345AC8400AF11D1 /* desmume_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = desmume_config.h; path = ../desmume_config.h; sourceTree = SOURCE_ROOT; }; + ABD1FE791345AC8400AF11D1 /* Disassembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Disassembler.h; path = ../Disassembler.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7A1345AC8400AF11D1 /* driver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = driver.h; path = ../driver.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7B1345AC8400AF11D1 /* emufile_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emufile_types.h; path = ../emufile_types.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7C1345AC8400AF11D1 /* emufile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = emufile.h; path = ../emufile.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7D1345AC8400AF11D1 /* FIFO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FIFO.h; path = ../FIFO.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7E1345AC8400AF11D1 /* firmware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = firmware.h; path = ../firmware.h; sourceTree = SOURCE_ROOT; }; + ABD1FE7F1345AC8400AF11D1 /* fs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fs.h; path = ../fs.h; sourceTree = SOURCE_ROOT; }; + ABD1FE801345AC8400AF11D1 /* gdbstub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gdbstub.h; path = ../gdbstub.h; sourceTree = SOURCE_ROOT; }; + ABD1FE811345AC8400AF11D1 /* gfx3d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gfx3d.h; path = ../gfx3d.h; sourceTree = SOURCE_ROOT; }; + ABD1FE821345AC8400AF11D1 /* GPU_osd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GPU_osd.h; path = ../GPU_osd.h; sourceTree = SOURCE_ROOT; }; + ABD1FE831345AC8400AF11D1 /* GPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GPU.h; path = ../GPU.h; sourceTree = SOURCE_ROOT; }; + ABD1FE841345AC8400AF11D1 /* lua-engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "lua-engine.h"; path = "../lua-engine.h"; sourceTree = SOURCE_ROOT; }; + ABD1FE851345AC8400AF11D1 /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = matrix.h; path = ../matrix.h; sourceTree = SOURCE_ROOT; }; + ABD1FE861345AC8400AF11D1 /* mc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mc.h; path = ../mc.h; sourceTree = SOURCE_ROOT; }; + ABD1FE871345AC8400AF11D1 /* mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mem.h; path = ../mem.h; sourceTree = SOURCE_ROOT; }; + ABD1FE881345AC8400AF11D1 /* mic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mic.h; path = ../mic.h; sourceTree = SOURCE_ROOT; }; + ABD1FE891345AC8400AF11D1 /* MMU_timing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMU_timing.h; path = ../MMU_timing.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8A1345AC8400AF11D1 /* MMU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MMU.h; path = ../MMU.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8B1345AC8400AF11D1 /* movie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = movie.h; path = ../movie.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8C1345AC8400AF11D1 /* NDSSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NDSSystem.h; path = ../NDSSystem.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8D1345AC8400AF11D1 /* OGLRender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OGLRender.h; path = ../OGLRender.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8E1345AC8400AF11D1 /* PACKED_END.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PACKED_END.h; path = ../PACKED_END.h; sourceTree = SOURCE_ROOT; }; + ABD1FE8F1345AC8400AF11D1 /* PACKED.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PACKED.h; path = ../PACKED.h; sourceTree = SOURCE_ROOT; }; + ABD1FE901345AC8400AF11D1 /* path.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = path.h; path = ../path.h; sourceTree = SOURCE_ROOT; }; + ABD1FE911345AC8400AF11D1 /* rasterize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rasterize.h; path = ../rasterize.h; sourceTree = SOURCE_ROOT; }; + ABD1FE921345AC8400AF11D1 /* readwrite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = readwrite.h; path = ../readwrite.h; sourceTree = SOURCE_ROOT; }; + ABD1FE931345AC8400AF11D1 /* registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = registers.h; path = ../registers.h; sourceTree = SOURCE_ROOT; }; + ABD1FE941345AC8400AF11D1 /* render3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = render3D.h; path = ../render3D.h; sourceTree = SOURCE_ROOT; }; + ABD1FE951345AC8400AF11D1 /* ROMReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ROMReader.h; path = ../ROMReader.h; sourceTree = SOURCE_ROOT; }; + ABD1FE961345AC8400AF11D1 /* rtc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rtc.h; path = ../rtc.h; sourceTree = SOURCE_ROOT; }; + ABD1FE971345AC8400AF11D1 /* saves.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = saves.h; path = ../saves.h; sourceTree = SOURCE_ROOT; }; + ABD1FE981345AC8400AF11D1 /* shaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = shaders.h; path = ../shaders.h; sourceTree = SOURCE_ROOT; }; + ABD1FE991345AC8400AF11D1 /* slot1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = slot1.h; path = ../slot1.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9A1345AC8400AF11D1 /* sndsdl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sndsdl.h; path = ../sndsdl.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9B1345AC8400AF11D1 /* SPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SPU.h; path = ../SPU.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9C1345AC8400AF11D1 /* texcache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = texcache.h; path = ../texcache.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9D1345AC8400AF11D1 /* thumb_instructions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = thumb_instructions.h; path = ../thumb_instructions.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9E1345AC8400AF11D1 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types.h; path = ../types.h; sourceTree = SOURCE_ROOT; }; + ABD1FE9F1345AC8400AF11D1 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../version.h; sourceTree = SOURCE_ROOT; }; + ABD1FEA01345AC8400AF11D1 /* wifi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wifi.h; path = ../wifi.h; sourceTree = SOURCE_ROOT; }; + ABD1FEA11345AC8400AF11D1 /* addons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = addons.cpp; path = ../addons.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = aggdraw.cpp; path = ../aggdraw.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arm_instructions.cpp; path = ../arm_instructions.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armcpu.cpp; path = ../armcpu.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA51345AC8400AF11D1 /* bios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bios.cpp; path = ../bios.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cheatSystem.cpp; path = ../cheatSystem.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA71345AC8400AF11D1 /* commandline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = commandline.cpp; path = ../commandline.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA81345AC8400AF11D1 /* common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = common.cpp; path = ../common.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEA91345AC8400AF11D1 /* cp15.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cp15.cpp; path = ../cp15.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAA1345AC8400AF11D1 /* ctrlssdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ctrlssdl.cpp; path = ../ctrlssdl.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAB1345AC8400AF11D1 /* debug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = debug.cpp; path = ../debug.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAC1345AC8400AF11D1 /* desmume_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = desmume_config.cpp; path = ../desmume_config.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Disassembler.cpp; path = ../Disassembler.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAE1345AC8400AF11D1 /* driver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = driver.cpp; path = ../driver.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = emufile.cpp; path = ../emufile.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FIFO.cpp; path = ../FIFO.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB11345AC8400AF11D1 /* firmware.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = firmware.cpp; path = ../firmware.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "fs-linux.cpp"; path = "../fs-linux.cpp"; sourceTree = SOURCE_ROOT; }; + ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gfx3d.cpp; path = ../gfx3d.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU_osd_stub.cpp; path = ../GPU_osd_stub.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB61345AC8400AF11D1 /* GPU_osd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU_osd.cpp; path = ../GPU_osd.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB71345AC8400AF11D1 /* GPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GPU.cpp; path = ../GPU.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEB81345AC8400AF11D1 /* lua-engine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "lua-engine.cpp"; path = "../lua-engine.cpp"; sourceTree = SOURCE_ROOT; }; + ABD1FEB91345AC8400AF11D1 /* matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = matrix.cpp; path = ../matrix.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBA1345AC8400AF11D1 /* mc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mc.cpp; path = ../mc.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBB1345AC8400AF11D1 /* mic_alsa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mic_alsa.cpp; path = ../mic_alsa.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBC1345AC8400AF11D1 /* mic_openal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mic_openal.cpp; path = ../mic_openal.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBD1345AC8400AF11D1 /* mic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mic.cpp; path = ../mic.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MMU.cpp; path = ../MMU.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEBF1345AC8400AF11D1 /* movie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = movie.cpp; path = ../movie.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NDSSystem.cpp; path = ../NDSSystem.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OGLRender.cpp; path = ../OGLRender.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC21345AC8400AF11D1 /* path.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = path.cpp; path = ../path.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rasterize.cpp; path = ../rasterize.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = readwrite.cpp; path = ../readwrite.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC51345AC8400AF11D1 /* render3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = render3D.cpp; path = ../render3D.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ROMReader.cpp; path = ../ROMReader.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC71345AC8400AF11D1 /* rtc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rtc.cpp; path = ../rtc.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC81345AC8400AF11D1 /* saves.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = saves.cpp; path = ../saves.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FEC91345AC8400AF11D1 /* slot1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = slot1.cpp; path = ../slot1.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECA1345AC8400AF11D1 /* sndsdl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sndsdl.cpp; path = ../sndsdl.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECB1345AC8400AF11D1 /* SPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SPU.cpp; path = ../SPU.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECC1345AC8400AF11D1 /* texcache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = texcache.cpp; path = ../texcache.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = thumb_instructions.cpp; path = ../thumb_instructions.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECE1345AC8400AF11D1 /* version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = version.cpp; path = ../version.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FECF1345AC8400AF11D1 /* wifi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wifi.cpp; path = ../wifi.cpp; sourceTree = SOURCE_ROOT; }; + ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_none.cpp; sourceTree = ""; }; + ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_r4.cpp; sourceTree = ""; }; + ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail.cpp; sourceTree = ""; }; + ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_expMemory.cpp; sourceTree = ""; }; + ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_gbagame.cpp; sourceTree = ""; }; + ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_guitarGrip.cpp; sourceTree = ""; }; + ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_mpcf.cpp; sourceTree = ""; }; + ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_none.cpp; sourceTree = ""; }; + ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_paddle.cpp; sourceTree = ""; }; + ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_piano.cpp; sourceTree = ""; }; + ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_rumblepak.cpp; sourceTree = ""; }; + ABD1FF171345ACA900AF11D1 /* gdbstub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gdbstub.cpp; sourceTree = ""; }; + ABD1FF181345ACA900AF11D1 /* gdbstub_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gdbstub_internal.h; sourceTree = ""; }; + ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ConvertUTF.c; sourceTree = ""; }; + ABD1FF1E1345ACBF00AF11D1 /* ConvertUTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConvertUTF.h; sourceTree = ""; }; + ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = datetime.cpp; sourceTree = ""; }; + ABD1FF201345ACBF00AF11D1 /* datetime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = datetime.h; sourceTree = ""; }; + ABD1FF221345ACBF00AF11D1 /* crc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crc.cpp; sourceTree = ""; }; + ABD1FF231345ACBF00AF11D1 /* crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc.h; sourceTree = ""; }; + ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = decrypt.cpp; sourceTree = ""; }; + ABD1FF251345ACBF00AF11D1 /* decrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decrypt.h; sourceTree = ""; }; + ABD1FF261345ACBF00AF11D1 /* header.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = header.cpp; sourceTree = ""; }; + ABD1FF271345ACBF00AF11D1 /* header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = header.h; sourceTree = ""; }; + ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dlditool.cpp; sourceTree = ""; }; + ABD1FF291345ACBF00AF11D1 /* emufat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = emufat.cpp; sourceTree = ""; }; + ABD1FF2A1345ACBF00AF11D1 /* emufat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emufat.h; sourceTree = ""; }; + ABD1FF2B1345ACBF00AF11D1 /* emufat_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emufat_types.h; sourceTree = ""; }; + ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guid.cpp; sourceTree = ""; }; + ABD1FF2D1345ACBF00AF11D1 /* guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guid.h; sourceTree = ""; }; + ABD1FF2F1345ACBF00AF11D1 /* bit_ops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_ops.h; sourceTree = ""; }; + ABD1FF301345ACBF00AF11D1 /* cache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cache.cpp; sourceTree = ""; }; + ABD1FF311345ACBF00AF11D1 /* cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cache.h; sourceTree = ""; }; + ABD1FF321345ACBF00AF11D1 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + ABD1FF331345ACBF00AF11D1 /* directory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = directory.cpp; sourceTree = ""; }; + ABD1FF341345ACBF00AF11D1 /* directory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = directory.h; sourceTree = ""; }; + ABD1FF351345ACBF00AF11D1 /* disc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disc.cpp; sourceTree = ""; }; + ABD1FF361345ACBF00AF11D1 /* disc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disc.h; sourceTree = ""; }; + ABD1FF371345ACBF00AF11D1 /* disc_io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disc_io.h; sourceTree = ""; }; + ABD1FF381345ACBF00AF11D1 /* fat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fat.h; sourceTree = ""; }; + ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fatdir.cpp; sourceTree = ""; }; + ABD1FF3A1345ACBF00AF11D1 /* fatdir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fatdir.h; sourceTree = ""; }; + ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fatfile.cpp; sourceTree = ""; }; + ABD1FF3C1345ACBF00AF11D1 /* fatfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fatfile.h; sourceTree = ""; }; + ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_allocation_table.cpp; sourceTree = ""; }; + ABD1FF3E1345ACBF00AF11D1 /* file_allocation_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_allocation_table.h; sourceTree = ""; }; + ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filetime.cpp; sourceTree = ""; }; + ABD1FF401345ACBF00AF11D1 /* filetime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filetime.h; sourceTree = ""; }; + ABD1FF411345ACBF00AF11D1 /* libfat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libfat.cpp; sourceTree = ""; }; + ABD1FF421345ACBF00AF11D1 /* libfat_pc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libfat_pc.h; sourceTree = ""; }; + ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libfat_public_api.cpp; sourceTree = ""; }; + ABD1FF441345ACBF00AF11D1 /* libfat_public_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libfat_public_api.h; sourceTree = ""; }; + ABD1FF451345ACBF00AF11D1 /* lock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lock.cpp; sourceTree = ""; }; + ABD1FF461345ACBF00AF11D1 /* lock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lock.h; sourceTree = ""; }; + ABD1FF471345ACBF00AF11D1 /* mem_allocate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem_allocate.h; sourceTree = ""; }; + ABD1FF481345ACBF00AF11D1 /* partition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = partition.cpp; sourceTree = ""; }; + ABD1FF491345ACBF00AF11D1 /* partition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = partition.h; sourceTree = ""; }; + ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md5.cpp; sourceTree = ""; }; + ABD1FF4B1345ACBF00AF11D1 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = ""; }; + ABD1FF4C1345ACBF00AF11D1 /* task.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = task.cpp; sourceTree = ""; }; + ABD1FF4D1345ACBF00AF11D1 /* task.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = task.h; sourceTree = ""; }; + ABD1FF4E1345ACBF00AF11D1 /* valuearray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = valuearray.h; sourceTree = ""; }; + ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vfat.cpp; sourceTree = ""; }; + ABD1FF501345ACBF00AF11D1 /* vfat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vfat.h; sourceTree = ""; }; + ABD1FF511345ACBF00AF11D1 /* xstring.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xstring.cpp; sourceTree = ""; }; + ABD1FF521345ACBF00AF11D1 /* xstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xstring.h; sourceTree = ""; }; + ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = metaspu.cpp; sourceTree = ""; }; + ABD1FF781345ACFA00AF11D1 /* metaspu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = metaspu.h; sourceTree = ""; }; + ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SndOut.cpp; sourceTree = ""; }; + ABD1FF7B1345ACFA00AF11D1 /* SndOut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SndOut.h; sourceTree = ""; }; + ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timestretcher.cpp; sourceTree = ""; }; + ABD9A46313DB99B300777194 /* cocoa_mic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_mic.h; sourceTree = ""; }; + ABD9A46413DB99B300777194 /* cocoa_mic.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_mic.mm; 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 = ""; }; + ABE670261415DE6C00E8E4C9 /* tinystr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinystr.h; sourceTree = ""; }; + ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = ""; }; + ABE670281415DE6C00E8E4C9 /* tinyxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyxml.h; sourceTree = ""; }; + ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlerror.cpp; sourceTree = ""; }; + ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = ""; }; + ABE7F53C13EE1C7900FD3A71 /* cocoa_firmware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_firmware.h; sourceTree = ""; }; + ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_firmware.mm; sourceTree = ""; }; + ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_ROMSave.icns; sourceTree = ""; }; + ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_DeSmuME.icns; sourceTree = ""; }; + ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_NintendoDS_ROM.icns; sourceTree = ""; }; + ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_SaveState.icns; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ABC5720D1344346600E7B0B1 /* AppKit.framework in Frameworks */, + ABC570D1134431CE00E7B0B1 /* AudioUnit.framework in Frameworks */, + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + ABC572101344347000E7B0B1 /* Foundation.framework in Frameworks */, + AB350BA51478AC96007165AC /* IOKit.framework in Frameworks */, + ABC570D5134431DA00E7B0B1 /* OpenGL.framework in Frameworks */, + AB4676F314AB12D60002FF94 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB711F731481C35F009011C8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB711F771481C35F009011C8 /* AppKit.framework in Frameworks */, + AB711F751481C35F009011C8 /* AudioUnit.framework in Frameworks */, + AB711F741481C35F009011C8 /* Cocoa.framework in Frameworks */, + AB711F781481C35F009011C8 /* Foundation.framework in Frameworks */, + AB711F7B1481C35F009011C8 /* IOKit.framework in Frameworks */, + AB711F761481C35F009011C8 /* OpenGL.framework in Frameworks */, + ABC3AFCF14B8D16700D5B13D /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Cocoa Port */ = { + isa = PBXGroup; + children = ( + AB3ACB6514C2361100D7D192 /* userinterface */, + ABD104141346652500AF11D1 /* sndOSX.cpp */, + AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */, + ABA6574914511EC90077E5E9 /* cocoa_cheat.h */, + ABD103FE1346652500AF11D1 /* cocoa_core.h */, + AB58F32B1364F44B0074C376 /* cocoa_file.h */, + ABE7F53C13EE1C7900FD3A71 /* cocoa_firmware.h */, + AB9971CE134EDA0800531BA7 /* cocoa_globals.h */, + AB350B681478A5B3007165AC /* cocoa_hid.h */, + ABD103FF1346652500AF11D1 /* cocoa_input.h */, + ABD9A46313DB99B300777194 /* cocoa_mic.h */, + AB3E34C7134AF4500056477A /* cocoa_output.h */, + ABD104001346652500AF11D1 /* cocoa_rom.h */, + AB80E050142BC4FA00A52038 /* cocoa_util.h */, + ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */, + ABD104011346652500AF11D1 /* sndOSX.h */, + AB817A34143EE2DB00A7DFE9 /* videofilter.h */, + AB350B691478A5B3007165AC /* cocoa_hid.mm */, + ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */, + ABD104121346652500AF11D1 /* cocoa_core.mm */, + AB58F32C1364F44B0074C376 /* cocoa_file.mm */, + ABE7F53D13EE1C7900FD3A71 /* cocoa_firmware.mm */, + ABD104111346652500AF11D1 /* cocoa_input.mm */, + ABD9A46413DB99B300777194 /* cocoa_mic.mm */, + AB3E34C8134AF4500056477A /* cocoa_output.mm */, + ABD104131346652500AF11D1 /* cocoa_rom.mm */, + AB80E04C142BC4A800A52038 /* cocoa_util.mm */, + ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */, + ); + name = "Cocoa Port"; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + AB350BA41478AC96007165AC /* IOKit.framework */, + ABC570D4134431DA00E7B0B1 /* OpenGL.framework */, + AB0A0D1914AACA9600E83E91 /* libz.dylib */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */, + AB711F7F1481C35F009011C8 /* DeSmuME (Debug).app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* DeSmuME */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Cocoa Port */, + ABC572B7134592D900E7B0B1 /* Core */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 19C28FACFE9D520D11CA2CBB /* Products */, + 29B97317FDCFA39411CA2CEA /* Resources */, + ); + name = DeSmuME; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + ABD104271346653B00AF11D1 /* main.m */, + ABD10452134666DD00AF11D1 /* DeSmuME_Prefix.pch */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + ABC2ECD613B1C87000FAAA2A /* Images */, + AB00E87C14205EBC00DE561F /* MainMenu.xib */, + AB350D3A147A1D93007165AC /* HID_usage_strings.plist */, + 8D1107310486CEB800E47090 /* Info.plist */, + AB02791814415E4C0075E58C /* Info (Debug).plist */, + AB00E87914205EAE00DE561F /* InfoPlist.strings */, + AB02475B13886BF300E9F9AB /* KeyNames.plist */, + AB901BDD1420706100348EEC /* Localizable.strings */, + ABC719E1138CB25E002827A9 /* DefaultKeyMappings.plist */, + ABBC0F8C1394B1AA0028B6BD /* DefaultUserPrefs.plist */, + AB64987B13ECC73800EE7DD2 /* FileTypeInfo.plist */, + AB3ACC3814C24D5400D7D192 /* AUTHORS */, + AB3ACC3914C24D5400D7D192 /* ChangeLog */, + AB3ACC3A14C24D5400D7D192 /* COPYING */, + AB3ACC3B14C24D5400D7D192 /* README */, + AB3ACC3C14C24D5400D7D192 /* README.TRANSLATION */, + AB3ACC3D14C24D5400D7D192 /* README.MAC */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + AB3ACB6514C2361100D7D192 /* userinterface */ = { + isa = PBXGroup; + children = ( + AB3ACB6614C2361100D7D192 /* appDelegate.h */, + AB3ACB6814C2361100D7D192 /* cheatWindowDelegate.h */, + AB3ACB6A14C2361100D7D192 /* displayView.h */, + AB3ACB6C14C2361100D7D192 /* emuWindowDelegate.h */, + AB3ACB6E14C2361100D7D192 /* inputPrefsView.h */, + AB3ACB7014C2361100D7D192 /* preferencesWindowDelegate.h */, + AB3ACB6714C2361100D7D192 /* appDelegate.mm */, + AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */, + AB3ACB6B14C2361100D7D192 /* displayView.mm */, + AB3ACB6D14C2361100D7D192 /* emuWindowDelegate.mm */, + AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */, + AB3ACB7114C2361100D7D192 /* preferencesWindowDelegate.mm */, + ); + path = userinterface; + sourceTree = ""; + }; + AB85D77414ABE42100286B70 /* App Icons */ = { + isa = PBXGroup; + children = ( + ABEFCF5E141AB82A000CC0CD /* AppIcon_DeSmuME.icns */, + ABEFCF5F141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns */, + ABBF04A414B515F300E505A0 /* AppIcon_ROMCheats.icns */, + ABEFCF5D141AB82A000CC0CD /* AppIcon_ROMSave.icns */, + AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */, + ABEFCF60141AB82A000CC0CD /* AppIcon_SaveState.icns */, + ); + name = "App Icons"; + sourceTree = ""; + }; + AB90210214234C8B00348EEC /* filter */ = { + isa = PBXGroup; + children = ( + AB90210314234C8B00348EEC /* 2xsai.cpp */, + AB90210414234C8B00348EEC /* bilinear.cpp */, + AB90210514234C8B00348EEC /* epx.cpp */, + AB90210714234C8B00348EEC /* hq2x.cpp */, + AB90210914234C8B00348EEC /* hq4x.cpp */, + AB90210D14234C8B00348EEC /* lq2x.cpp */, + AB90210F14234C8B00348EEC /* scanline.cpp */, + AB90210614234C8B00348EEC /* filter.h */, + AB90210814234C8B00348EEC /* hq2x.h */, + AB90210B14234C8B00348EEC /* hq4x.h */, + AB90210C14234C8B00348EEC /* interp.h */, + AB90210E14234C8B00348EEC /* lq2x.h */, + ); + name = filter; + path = ../windows/filter; + sourceTree = SOURCE_ROOT; + }; + ABC2ECD613B1C87000FAAA2A /* Images */ = { + isa = PBXGroup; + children = ( + AB85D77414ABE42100286B70 /* App Icons */, + AB0F292814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png */, + AB0F292914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png */, + AB0F292A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png */, + AB0F292B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png */, + AB0F292C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png */, + AB0F292D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png */, + AB0F292E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png */, + AB0F292F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png */, + AB0F293014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png */, + AB0F293114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png */, + AB0F293214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png */, + AB0F293314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png */, + AB0F293414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png */, + AB0F293514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png */, + AB0F293614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png */, + AB0F293714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png */, + AB0F296B14BE705D009ABC6F /* Icon_ActionReplay_128x128.png */, + ABB97873144E89CC00793FA3 /* Icon_ActionReplay_32x32.png */, + AB0F298814BE71E0009ABC6F /* Icon_ArrowDown_420x420.png */, + AB0F298914BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png */, + AB0F298A14BE71E0009ABC6F /* Icon_ArrowRight_420x420.png */, + AB0F298B14BE71E0009ABC6F /* Icon_ArrowUp_420x420.png */, + AB0F296C14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png */, + ABB97874144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png */, + ABB97875144E89CC00793FA3 /* Icon_DeSmuME_32x32.png */, + AB0F299414BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png */, + AB0F299514BE7213009ABC6F /* Icon_DSButtonA_420x420.png */, + AB0F299614BE7213009ABC6F /* Icon_DSButtonB_420x420.png */, + AB0F299714BE7213009ABC6F /* Icon_DSButtonL_420x420.png */, + AB0F299814BE7213009ABC6F /* Icon_DSButtonR_420x420.png */, + AB0F299914BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png */, + AB0F299A14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png */, + AB0F299B14BE7213009ABC6F /* Icon_DSButtonX_420x420.png */, + AB0F299C14BE7213009ABC6F /* Icon_DSButtonY_420x420.png */, + AB0F299D14BE7213009ABC6F /* Icon_Emulation_420x420.png */, + AB0F28FE14BE6E68009ABC6F /* Icon_Execute_420x420.png */, + AB0F299E14BE7213009ABC6F /* Icon_Input_420x420.png */, + AB0F299F14BE7213009ABC6F /* Icon_Microphone_420x420.png */, + AB0F29A014BE7213009ABC6F /* Icon_OpenROM_420x420.png */, + AB0F28FF14BE6E68009ABC6F /* Icon_Pause_420x420.png */, + AB0F29A114BE7213009ABC6F /* Icon_Reset_420x420.png */, + AB0F29A214BE7213009ABC6F /* Icon_RotateCCW_420x420.png */, + AB0F29A314BE7213009ABC6F /* Icon_RotateCW_420x420.png */, + AB0F29A414BE7213009ABC6F /* Icon_ShowHUD_420x420.png */, + AB0F29A514BE7213009ABC6F /* Icon_Speaker_420x420.png */, + AB0F290014BE6E68009ABC6F /* Icon_Speed1x_420x420.png */, + AB0F290114BE6E68009ABC6F /* Icon_Speed2x_420x420.png */, + ABC3AF2B14B7F06900D5B13D /* Icon_VolumeFull_16x16.png */, + ABC3AF2C14B7F06900D5B13D /* Icon_VolumeMute_16x16.png */, + ABC3AF2D14B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png */, + ABC3AF2E14B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png */, + AB0F297914BE70BC009ABC6F /* VideoFilterPreview_64x64.png */, + ); + name = Images; + sourceTree = ""; + }; + ABC572B7134592D900E7B0B1 /* Core */ = { + isa = PBXGroup; + children = ( + ABD1FEFF1345AC9B00AF11D1 /* addons */, + ABD1FF161345ACA900AF11D1 /* gdbstub */, + AB90210214234C8B00348EEC /* filter */, + ABD1FF761345ACFA00AF11D1 /* metaspu */, + ABD1FF1C1345ACBF00AF11D1 /* utils */, + ABD1FEA11345AC8400AF11D1 /* addons.cpp */, + ABD1FEA21345AC8400AF11D1 /* aggdraw.cpp */, + ABD1FEA31345AC8400AF11D1 /* arm_instructions.cpp */, + ABD1FEA41345AC8400AF11D1 /* armcpu.cpp */, + ABD1FEA51345AC8400AF11D1 /* bios.cpp */, + ABD1FEA61345AC8400AF11D1 /* cheatSystem.cpp */, + ABD1FEA71345AC8400AF11D1 /* commandline.cpp */, + ABD1FEA81345AC8400AF11D1 /* common.cpp */, + ABD1FEA91345AC8400AF11D1 /* cp15.cpp */, + ABD1FEAA1345AC8400AF11D1 /* ctrlssdl.cpp */, + ABD1FEAB1345AC8400AF11D1 /* debug.cpp */, + ABD1FEAC1345AC8400AF11D1 /* desmume_config.cpp */, + ABD1FEAD1345AC8400AF11D1 /* Disassembler.cpp */, + ABD1FEAE1345AC8400AF11D1 /* driver.cpp */, + ABD1FEAF1345AC8400AF11D1 /* emufile.cpp */, + ABD1FEB01345AC8400AF11D1 /* FIFO.cpp */, + ABD1FEB11345AC8400AF11D1 /* firmware.cpp */, + ABD1FEB21345AC8400AF11D1 /* fs-linux.cpp */, + ABD1FEB41345AC8400AF11D1 /* gfx3d.cpp */, + ABD1FEB71345AC8400AF11D1 /* GPU.cpp */, + ABD1FEB61345AC8400AF11D1 /* GPU_osd.cpp */, + ABD1FEB51345AC8400AF11D1 /* GPU_osd_stub.cpp */, + ABD1FEB81345AC8400AF11D1 /* lua-engine.cpp */, + ABD1FEB91345AC8400AF11D1 /* matrix.cpp */, + ABD1FEBA1345AC8400AF11D1 /* mc.cpp */, + ABD1FEBD1345AC8400AF11D1 /* mic.cpp */, + ABD1FEBB1345AC8400AF11D1 /* mic_alsa.cpp */, + ABD1FEBC1345AC8400AF11D1 /* mic_openal.cpp */, + ABD1FEBE1345AC8400AF11D1 /* MMU.cpp */, + ABD1FEBF1345AC8400AF11D1 /* movie.cpp */, + ABD1FEC01345AC8400AF11D1 /* NDSSystem.cpp */, + ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */, + ABD1FEC21345AC8400AF11D1 /* path.cpp */, + ABD1FEC31345AC8400AF11D1 /* rasterize.cpp */, + ABD1FEC41345AC8400AF11D1 /* readwrite.cpp */, + ABD1FEC51345AC8400AF11D1 /* render3D.cpp */, + ABD1FEC61345AC8400AF11D1 /* ROMReader.cpp */, + ABD1FEC71345AC8400AF11D1 /* rtc.cpp */, + ABD1FEC81345AC8400AF11D1 /* saves.cpp */, + ABD1FEC91345AC8400AF11D1 /* slot1.cpp */, + ABD1FECA1345AC8400AF11D1 /* sndsdl.cpp */, + ABD1FECB1345AC8400AF11D1 /* SPU.cpp */, + ABD1FECC1345AC8400AF11D1 /* texcache.cpp */, + ABD1FECD1345AC8400AF11D1 /* thumb_instructions.cpp */, + ABD1FECE1345AC8400AF11D1 /* version.cpp */, + ABD1FECF1345AC8400AF11D1 /* wifi.cpp */, + ABD1FE6B1345AC8400AF11D1 /* addons.h */, + ABD1FE6C1345AC8400AF11D1 /* agg2d.h */, + ABD1FE6D1345AC8400AF11D1 /* aggdraw.h */, + ABD1FE6E1345AC8400AF11D1 /* arm_instructions.h */, + ABD1FE6F1345AC8400AF11D1 /* armcpu.h */, + ABD1FE701345AC8400AF11D1 /* bios.h */, + ABD1FE711345AC8400AF11D1 /* bits.h */, + ABD1FE721345AC8400AF11D1 /* cheatSystem.h */, + ABD1FE731345AC8400AF11D1 /* commandline.h */, + ABD1FE741345AC8400AF11D1 /* common.h */, + ABD1FE751345AC8400AF11D1 /* cp15.h */, + ABD1FE761345AC8400AF11D1 /* ctrlssdl.h */, + ABD1FE771345AC8400AF11D1 /* debug.h */, + ABD1FE781345AC8400AF11D1 /* desmume_config.h */, + ABD1FE791345AC8400AF11D1 /* Disassembler.h */, + ABD1FE7A1345AC8400AF11D1 /* driver.h */, + ABD1FE7C1345AC8400AF11D1 /* emufile.h */, + ABD1FE7B1345AC8400AF11D1 /* emufile_types.h */, + ABD1FE7D1345AC8400AF11D1 /* FIFO.h */, + ABD1FE7E1345AC8400AF11D1 /* firmware.h */, + ABD1FE7F1345AC8400AF11D1 /* fs.h */, + ABD1FE801345AC8400AF11D1 /* gdbstub.h */, + ABD1FE811345AC8400AF11D1 /* gfx3d.h */, + ABD1FE831345AC8400AF11D1 /* GPU.h */, + ABD1FE821345AC8400AF11D1 /* GPU_osd.h */, + ABD1FE841345AC8400AF11D1 /* lua-engine.h */, + ABD1FE851345AC8400AF11D1 /* matrix.h */, + ABD1FE861345AC8400AF11D1 /* mc.h */, + ABD1FE871345AC8400AF11D1 /* mem.h */, + ABD1FE881345AC8400AF11D1 /* mic.h */, + ABD1FE8A1345AC8400AF11D1 /* MMU.h */, + ABD1FE891345AC8400AF11D1 /* MMU_timing.h */, + ABD1FE8B1345AC8400AF11D1 /* movie.h */, + ABD1FE8C1345AC8400AF11D1 /* NDSSystem.h */, + ABD1FE8D1345AC8400AF11D1 /* OGLRender.h */, + ABD1FE8F1345AC8400AF11D1 /* PACKED.h */, + ABD1FE8E1345AC8400AF11D1 /* PACKED_END.h */, + ABD1FE901345AC8400AF11D1 /* path.h */, + ABD1FE911345AC8400AF11D1 /* rasterize.h */, + ABD1FE921345AC8400AF11D1 /* readwrite.h */, + ABD1FE931345AC8400AF11D1 /* registers.h */, + ABD1FE941345AC8400AF11D1 /* render3D.h */, + ABD1FE951345AC8400AF11D1 /* ROMReader.h */, + ABD1FE961345AC8400AF11D1 /* rtc.h */, + ABD1FE971345AC8400AF11D1 /* saves.h */, + ABD1FE981345AC8400AF11D1 /* shaders.h */, + ABD1FE991345AC8400AF11D1 /* slot1.h */, + ABD1FE9A1345AC8400AF11D1 /* sndsdl.h */, + ABD1FE9B1345AC8400AF11D1 /* SPU.h */, + ABD1FE9C1345AC8400AF11D1 /* texcache.h */, + ABD1FE9D1345AC8400AF11D1 /* thumb_instructions.h */, + ABD1FE9E1345AC8400AF11D1 /* types.h */, + ABD1FE9F1345AC8400AF11D1 /* version.h */, + ABD1FEA01345AC8400AF11D1 /* wifi.h */, + ); + name = Core; + sourceTree = ""; + }; + ABD1FEFF1345AC9B00AF11D1 /* addons */ = { + isa = PBXGroup; + children = ( + ABD1FF001345AC9B00AF11D1 /* slot1_none.cpp */, + ABD1FF011345AC9B00AF11D1 /* slot1_r4.cpp */, + AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */, + ABD1FF021345AC9B00AF11D1 /* slot1_retail.cpp */, + ABD1FF031345AC9B00AF11D1 /* slot2_expMemory.cpp */, + ABD1FF041345AC9B00AF11D1 /* slot2_gbagame.cpp */, + ABD1FF051345AC9B00AF11D1 /* slot2_guitarGrip.cpp */, + ABD1FF061345AC9B00AF11D1 /* slot2_mpcf.cpp */, + ABD1FF071345AC9C00AF11D1 /* slot2_none.cpp */, + ABD1FF081345AC9C00AF11D1 /* slot2_paddle.cpp */, + ABD1FF091345AC9C00AF11D1 /* slot2_piano.cpp */, + ABD1FF0A1345AC9C00AF11D1 /* slot2_rumblepak.cpp */, + ); + name = addons; + path = ../addons; + sourceTree = SOURCE_ROOT; + }; + ABD1FF161345ACA900AF11D1 /* gdbstub */ = { + isa = PBXGroup; + children = ( + ABD1FF171345ACA900AF11D1 /* gdbstub.cpp */, + ABD1FF181345ACA900AF11D1 /* gdbstub_internal.h */, + ); + name = gdbstub; + path = ../gdbstub; + sourceTree = SOURCE_ROOT; + }; + ABD1FF1C1345ACBF00AF11D1 /* utils */ = { + isa = PBXGroup; + children = ( + ABD1FF211345ACBF00AF11D1 /* decrypt */, + ABD1FF2E1345ACBF00AF11D1 /* libfat */, + ABE670241415DE6C00E8E4C9 /* tinyxml */, + ABD1FF1D1345ACBF00AF11D1 /* ConvertUTF.c */, + ABD1FF1F1345ACBF00AF11D1 /* datetime.cpp */, + ABD1FF281345ACBF00AF11D1 /* dlditool.cpp */, + ABD1FF291345ACBF00AF11D1 /* emufat.cpp */, + ABD1FF2C1345ACBF00AF11D1 /* guid.cpp */, + ABD1FF4A1345ACBF00AF11D1 /* md5.cpp */, + ABD1FF4C1345ACBF00AF11D1 /* task.cpp */, + ABD1FF4F1345ACBF00AF11D1 /* vfat.cpp */, + ABD1FF511345ACBF00AF11D1 /* xstring.cpp */, + ABD1FF1E1345ACBF00AF11D1 /* ConvertUTF.h */, + ABD1FF201345ACBF00AF11D1 /* datetime.h */, + ABD1FF2A1345ACBF00AF11D1 /* emufat.h */, + ABD1FF2B1345ACBF00AF11D1 /* emufat_types.h */, + ABD1FF2D1345ACBF00AF11D1 /* guid.h */, + ABD1FF4B1345ACBF00AF11D1 /* md5.h */, + ABD1FF4D1345ACBF00AF11D1 /* task.h */, + ABD1FF4E1345ACBF00AF11D1 /* valuearray.h */, + ABD1FF501345ACBF00AF11D1 /* vfat.h */, + ABD1FF521345ACBF00AF11D1 /* xstring.h */, + ); + name = utils; + path = ../utils; + sourceTree = SOURCE_ROOT; + }; + ABD1FF211345ACBF00AF11D1 /* decrypt */ = { + isa = PBXGroup; + children = ( + ABD1FF221345ACBF00AF11D1 /* crc.cpp */, + ABD1FF241345ACBF00AF11D1 /* decrypt.cpp */, + ABD1FF261345ACBF00AF11D1 /* header.cpp */, + ABD1FF231345ACBF00AF11D1 /* crc.h */, + ABD1FF251345ACBF00AF11D1 /* decrypt.h */, + ABD1FF271345ACBF00AF11D1 /* header.h */, + ); + path = decrypt; + sourceTree = ""; + }; + ABD1FF2E1345ACBF00AF11D1 /* libfat */ = { + isa = PBXGroup; + children = ( + ABD1FF301345ACBF00AF11D1 /* cache.cpp */, + ABD1FF331345ACBF00AF11D1 /* directory.cpp */, + ABD1FF351345ACBF00AF11D1 /* disc.cpp */, + ABD1FF391345ACBF00AF11D1 /* fatdir.cpp */, + ABD1FF3B1345ACBF00AF11D1 /* fatfile.cpp */, + ABD1FF3D1345ACBF00AF11D1 /* file_allocation_table.cpp */, + ABD1FF3F1345ACBF00AF11D1 /* filetime.cpp */, + ABD1FF411345ACBF00AF11D1 /* libfat.cpp */, + ABD1FF431345ACBF00AF11D1 /* libfat_public_api.cpp */, + ABD1FF451345ACBF00AF11D1 /* lock.cpp */, + ABD1FF481345ACBF00AF11D1 /* partition.cpp */, + ABD1FF2F1345ACBF00AF11D1 /* bit_ops.h */, + ABD1FF311345ACBF00AF11D1 /* cache.h */, + ABD1FF321345ACBF00AF11D1 /* common.h */, + ABD1FF341345ACBF00AF11D1 /* directory.h */, + ABD1FF361345ACBF00AF11D1 /* disc.h */, + ABD1FF371345ACBF00AF11D1 /* disc_io.h */, + ABD1FF381345ACBF00AF11D1 /* fat.h */, + ABD1FF3A1345ACBF00AF11D1 /* fatdir.h */, + ABD1FF3C1345ACBF00AF11D1 /* fatfile.h */, + ABD1FF3E1345ACBF00AF11D1 /* file_allocation_table.h */, + ABD1FF401345ACBF00AF11D1 /* filetime.h */, + ABD1FF421345ACBF00AF11D1 /* libfat_pc.h */, + ABD1FF441345ACBF00AF11D1 /* libfat_public_api.h */, + ABD1FF461345ACBF00AF11D1 /* lock.h */, + ABD1FF471345ACBF00AF11D1 /* mem_allocate.h */, + ABD1FF491345ACBF00AF11D1 /* partition.h */, + ); + path = libfat; + sourceTree = ""; + }; + ABD1FF761345ACFA00AF11D1 /* metaspu */ = { + isa = PBXGroup; + children = ( + ABD1FF7C1345ACFA00AF11D1 /* SoundTouch */, + ABD1FF771345ACFA00AF11D1 /* metaspu.cpp */, + ABD1FF7A1345ACFA00AF11D1 /* SndOut.cpp */, + ABD1FF9B1345ACFA00AF11D1 /* Timestretcher.cpp */, + ABD1FF781345ACFA00AF11D1 /* metaspu.h */, + ABD1FF7B1345ACFA00AF11D1 /* SndOut.h */, + ); + name = metaspu; + path = ../metaspu; + sourceTree = SOURCE_ROOT; + }; + ABD1FF7C1345ACFA00AF11D1 /* SoundTouch */ = { + isa = PBXGroup; + children = ( + ABAD3E5913AF1D6D00502E1E /* AAFilter.h */, + ABAD3E5A13AF1D6D00502E1E /* BPMDetect.h */, + ABAD3E5B13AF1D6D00502E1E /* cpu_detect.h */, + ABAD3E5C13AF1D6D00502E1E /* FIFOSampleBuffer.h */, + ABAD3E5D13AF1D6D00502E1E /* FIFOSamplePipe.h */, + ABAD3E5E13AF1D6D00502E1E /* FIRFilter.h */, + ABAD3E5F13AF1D6D00502E1E /* RateTransposer.h */, + ABAD3E6013AF1D6D00502E1E /* SoundTouch.h */, + ABAD3E6113AF1D6D00502E1E /* STTypes.h */, + ABAD3E6213AF1D6D00502E1E /* TDStretch.h */, + ABAD3E6313AF1D6D00502E1E /* WavFile.h */, + ABAD3E6513AF1D6D00502E1E /* AAFilter.cpp */, + ABAD3E6613AF1D6D00502E1E /* cpu_detect_x86_gcc.cpp */, + ABAD3E6813AF1D6D00502E1E /* FIFOSampleBuffer.cpp */, + ABAD3E6913AF1D6D00502E1E /* FIRFilter.cpp */, + ABAD3E6A13AF1D6D00502E1E /* mmx_optimized.cpp */, + ABAD3E6B13AF1D6D00502E1E /* RateTransposer.cpp */, + ABAD3E6C13AF1D6D00502E1E /* SoundTouch.cpp */, + ABAD3E6D13AF1D6D00502E1E /* sse_optimized.cpp */, + ABAD3E6E13AF1D6D00502E1E /* TDStretch.cpp */, + ABAD3E6F13AF1D6D00502E1E /* WavFile.cpp */, + ); + path = SoundTouch; + sourceTree = ""; + }; + ABE670241415DE6C00E8E4C9 /* tinyxml */ = { + isa = PBXGroup; + children = ( + ABE670251415DE6C00E8E4C9 /* tinystr.cpp */, + ABE670261415DE6C00E8E4C9 /* tinystr.h */, + ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */, + ABE670281415DE6C00E8E4C9 /* tinyxml.h */, + ABE670291415DE6C00E8E4C9 /* tinyxmlerror.cpp */, + ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */, + ); + path = tinyxml; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* DeSmuME (v10.5 Leopard) */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "DeSmuME (v10.5 Leopard)" */; + buildPhases = ( + AB75221714C79884009B97B3 /* ShellScript */, + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DeSmuME (v10.5 Leopard)"; + productInstallPath = "$(HOME)/Applications"; + productName = DeSmuME; + productReference = 8D1107320486CEB800E47090 /* DeSmuME (Debug).app */; + productType = "com.apple.product-type.application"; + }; + AB711EBD1481C35F009011C8 /* DeSmuME (v10.6 Snow Leopard) */ = { + isa = PBXNativeTarget; + buildConfigurationList = AB711F7C1481C35F009011C8 /* Build configuration list for PBXNativeTarget "DeSmuME (v10.6 Snow Leopard)" */; + buildPhases = ( + AB75222C14C799C1009B97B3 /* ShellScript */, + AB711EBE1481C35F009011C8 /* Resources */, + AB711EFF1481C35F009011C8 /* Sources */, + AB711F731481C35F009011C8 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "DeSmuME (v10.6 Snow Leopard)"; + productInstallPath = "$(HOME)/Applications"; + productName = DeSmuME; + productReference = AB711F7F1481C35F009011C8 /* DeSmuME (Debug).app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + ORGANIZATIONNAME = "DeSmuME Team"; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "DeSmuME (XCode 3)" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + Italian, + Chinese, + Norwegian, + Romanian, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* DeSmuME */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* DeSmuME (v10.5 Leopard) */, + AB711EBD1481C35F009011C8 /* DeSmuME (v10.6 Snow Leopard) */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB02475C13886BF300E9F9AB /* KeyNames.plist in Resources */, + ABC719E2138CB25E002827A9 /* DefaultKeyMappings.plist in Resources */, + ABBC0F8D1394B1AA0028B6BD /* DefaultUserPrefs.plist in Resources */, + AB64987C13ECC73800EE7DD2 /* FileTypeInfo.plist in Resources */, + ABEFCF61141AB82A000CC0CD /* AppIcon_ROMSave.icns in Resources */, + ABEFCF62141AB82A000CC0CD /* AppIcon_DeSmuME.icns in Resources */, + ABEFCF63141AB82A000CC0CD /* AppIcon_NintendoDS_ROM.icns in Resources */, + ABEFCF64141AB82A000CC0CD /* AppIcon_SaveState.icns in Resources */, + AB00E87B14205EAE00DE561F /* InfoPlist.strings in Resources */, + AB00E87E14205EBC00DE561F /* MainMenu.xib in Resources */, + AB901BDE1420706100348EEC /* Localizable.strings in Resources */, + ABB97876144E89CC00793FA3 /* Icon_ActionReplay_32x32.png in Resources */, + ABB97877144E89CC00793FA3 /* Icon_CodeBreaker_32x32.png in Resources */, + ABB97878144E89CC00793FA3 /* Icon_DeSmuME_32x32.png in Resources */, + AB350D3B147A1D93007165AC /* HID_usage_strings.plist in Resources */, + ABBF04A514B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */, + ABC3AF2F14B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */, + ABC3AF3014B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */, + ABC3AF3114B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, + ABC3AF3214B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, + AB0F290214BE6E68009ABC6F /* Icon_Execute_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 */, + AB0F293814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png in Resources */, + AB0F293914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png in Resources */, + AB0F293A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png in Resources */, + AB0F293B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png in Resources */, + AB0F293C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png in Resources */, + AB0F293D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png in Resources */, + AB0F293E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png in Resources */, + AB0F293F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png in Resources */, + AB0F294014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png in Resources */, + AB0F294114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png in Resources */, + AB0F294214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png in Resources */, + AB0F294314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png in Resources */, + AB0F294414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png in Resources */, + AB0F294514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png in Resources */, + AB0F294614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png in Resources */, + AB0F294714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png in Resources */, + AB0F296D14BE705D009ABC6F /* Icon_ActionReplay_128x128.png in Resources */, + AB0F296E14BE705D009ABC6F /* Icon_CodeBreaker_128x128.png in Resources */, + AB0F297A14BE70BC009ABC6F /* VideoFilterPreview_64x64.png in Resources */, + AB0F298C14BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */, + AB0F298D14BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */, + AB0F298E14BE71E0009ABC6F /* Icon_ArrowRight_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 */, + AB0F29A914BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, + AB0F29AA14BE7213009ABC6F /* Icon_DSButtonR_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 */, + AB0F29B014BE7213009ABC6F /* Icon_Input_420x420.png in Resources */, + AB0F29B114BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */, + AB0F29B214BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */, + AB0F29B314BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */, + AB0F29B414BE7213009ABC6F /* Icon_RotateCCW_420x420.png in Resources */, + AB0F29B514BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */, + AB0F29B614BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */, + AB0F29B714BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */, + AB3ACC3E14C24D5400D7D192 /* AUTHORS in Resources */, + AB3ACC3F14C24D5400D7D192 /* ChangeLog in Resources */, + AB3ACC4014C24D5400D7D192 /* COPYING in Resources */, + AB3ACC4114C24D5400D7D192 /* README in Resources */, + AB3ACC4214C24D5400D7D192 /* README.TRANSLATION in Resources */, + AB3ACC4314C24D5400D7D192 /* README.MAC in Resources */, + AB75226E14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB711EBE1481C35F009011C8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB711ED21481C35F009011C8 /* KeyNames.plist in Resources */, + AB711ED31481C35F009011C8 /* DefaultKeyMappings.plist in Resources */, + AB711ED81481C35F009011C8 /* DefaultUserPrefs.plist in Resources */, + AB711EDE1481C35F009011C8 /* FileTypeInfo.plist in Resources */, + AB711EEF1481C35F009011C8 /* AppIcon_ROMSave.icns in Resources */, + AB711EF01481C35F009011C8 /* AppIcon_DeSmuME.icns in Resources */, + AB711EF11481C35F009011C8 /* AppIcon_NintendoDS_ROM.icns in Resources */, + AB711EF21481C35F009011C8 /* AppIcon_SaveState.icns in Resources */, + AB711EF31481C35F009011C8 /* InfoPlist.strings in Resources */, + AB711EF41481C35F009011C8 /* MainMenu.xib in Resources */, + AB711EF51481C35F009011C8 /* Localizable.strings in Resources */, + AB711EFB1481C35F009011C8 /* Icon_ActionReplay_32x32.png in Resources */, + AB711EFC1481C35F009011C8 /* Icon_CodeBreaker_32x32.png in Resources */, + AB711EFD1481C35F009011C8 /* Icon_DeSmuME_32x32.png in Resources */, + AB711EFE1481C35F009011C8 /* HID_usage_strings.plist in Resources */, + ABBF04A614B515F300E505A0 /* AppIcon_ROMCheats.icns in Resources */, + ABC3AF3314B7F06900D5B13D /* Icon_VolumeFull_16x16.png in Resources */, + ABC3AF3414B7F06900D5B13D /* Icon_VolumeMute_16x16.png in Resources */, + ABC3AF3514B7F06900D5B13D /* Icon_VolumeOneThird_16x16.png in Resources */, + ABC3AF3614B7F06900D5B13D /* Icon_VolumeTwoThird_16x16.png in Resources */, + AB0F290614BE6E68009ABC6F /* Icon_Execute_420x420.png in Resources */, + AB0F290714BE6E68009ABC6F /* Icon_Pause_420x420.png in Resources */, + AB0F290814BE6E68009ABC6F /* Icon_Speed1x_420x420.png in Resources */, + AB0F290914BE6E68009ABC6F /* Icon_Speed2x_420x420.png in Resources */, + AB0F294814BE6FA7009ABC6F /* ColorSwatch_Blue_16x16.png in Resources */, + AB0F294914BE6FA7009ABC6F /* ColorSwatch_Brown_16x16.png in Resources */, + AB0F294A14BE6FA7009ABC6F /* ColorSwatch_DarkBlue_16x16.png in Resources */, + AB0F294B14BE6FA7009ABC6F /* ColorSwatch_DarkGreen_16x16.png in Resources */, + AB0F294C14BE6FA7009ABC6F /* ColorSwatch_DarkPurple_16x16.png in Resources */, + AB0F294D14BE6FA7009ABC6F /* ColorSwatch_Gray_16x16.png in Resources */, + AB0F294E14BE6FA7009ABC6F /* ColorSwatch_Green_16x16.png in Resources */, + AB0F294F14BE6FA7009ABC6F /* ColorSwatch_LimeGreen_16x16.png in Resources */, + AB0F295014BE6FA7009ABC6F /* ColorSwatch_Magenta_16x16.png in Resources */, + AB0F295114BE6FA7009ABC6F /* ColorSwatch_Orange_16x16.png in Resources */, + AB0F295214BE6FA7009ABC6F /* ColorSwatch_Pink_16x16.png in Resources */, + AB0F295314BE6FA7009ABC6F /* ColorSwatch_Red_16x16.png in Resources */, + AB0F295414BE6FA7009ABC6F /* ColorSwatch_SeaGreen_16x16.png in Resources */, + AB0F295514BE6FA7009ABC6F /* ColorSwatch_Turquoise_16x16.png in Resources */, + AB0F295614BE6FA7009ABC6F /* ColorSwatch_Violet_16x16.png in Resources */, + AB0F295714BE6FA7009ABC6F /* ColorSwatch_Yellow_16x16.png in Resources */, + AB0F296F14BE705D009ABC6F /* Icon_ActionReplay_128x128.png in Resources */, + AB0F297014BE705D009ABC6F /* Icon_CodeBreaker_128x128.png in Resources */, + AB0F297B14BE70BC009ABC6F /* VideoFilterPreview_64x64.png in Resources */, + AB0F299014BE71E0009ABC6F /* Icon_ArrowDown_420x420.png in Resources */, + AB0F299114BE71E0009ABC6F /* Icon_ArrowLeft_420x420.png in Resources */, + AB0F299214BE71E0009ABC6F /* Icon_ArrowRight_420x420.png in Resources */, + AB0F299314BE71E0009ABC6F /* Icon_ArrowUp_420x420.png in Resources */, + AB0F29B814BE7213009ABC6F /* Icon_DoubleSpeed_420x420.png in Resources */, + AB0F29B914BE7213009ABC6F /* Icon_DSButtonA_420x420.png in Resources */, + AB0F29BA14BE7213009ABC6F /* Icon_DSButtonB_420x420.png in Resources */, + AB0F29BB14BE7213009ABC6F /* Icon_DSButtonL_420x420.png in Resources */, + AB0F29BC14BE7213009ABC6F /* Icon_DSButtonR_420x420.png in Resources */, + AB0F29BD14BE7213009ABC6F /* Icon_DSButtonSelect_420x420.png in Resources */, + AB0F29BE14BE7213009ABC6F /* Icon_DSButtonStart_420x420.png in Resources */, + AB0F29BF14BE7213009ABC6F /* Icon_DSButtonX_420x420.png in Resources */, + AB0F29C014BE7213009ABC6F /* Icon_DSButtonY_420x420.png in Resources */, + AB0F29C114BE7213009ABC6F /* Icon_Emulation_420x420.png in Resources */, + AB0F29C214BE7213009ABC6F /* Icon_Input_420x420.png in Resources */, + AB0F29C314BE7213009ABC6F /* Icon_Microphone_420x420.png in Resources */, + AB0F29C414BE7213009ABC6F /* Icon_OpenROM_420x420.png in Resources */, + AB0F29C514BE7213009ABC6F /* Icon_Reset_420x420.png in Resources */, + AB0F29C614BE7213009ABC6F /* Icon_RotateCCW_420x420.png in Resources */, + AB0F29C714BE7213009ABC6F /* Icon_RotateCW_420x420.png in Resources */, + AB0F29C814BE7213009ABC6F /* Icon_ShowHUD_420x420.png in Resources */, + AB0F29C914BE7213009ABC6F /* Icon_Speaker_420x420.png in Resources */, + AB3ACC4414C24D5400D7D192 /* AUTHORS in Resources */, + AB3ACC4514C24D5400D7D192 /* ChangeLog in Resources */, + AB3ACC4614C24D5400D7D192 /* COPYING in Resources */, + AB3ACC4714C24D5400D7D192 /* README in Resources */, + AB3ACC4814C24D5400D7D192 /* README.TRANSLATION in Resources */, + AB3ACC4914C24D5400D7D192 /* README.MAC in Resources */, + AB75226F14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + AB75221714C79884009B97B3 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.xib", + ); + outputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.strings", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"./translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; + }; + AB75222C14C799C1009B97B3 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.xib", + ); + outputPaths = ( + "$(SRCROOT)/translations/English.lproj/MainMenu.strings", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"./translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ABD1FF531345ACBF00AF11D1 /* ConvertUTF.c in Sources */, + AB90211014234C8B00348EEC /* 2xsai.cpp in Sources */, + ABAD3E7113AF1D6D00502E1E /* AAFilter.cpp in Sources */, + ABD1FED01345AC8400AF11D1 /* addons.cpp in Sources */, + ABD1FED21345AC8400AF11D1 /* arm_instructions.cpp in Sources */, + ABD1FED31345AC8400AF11D1 /* armcpu.cpp in Sources */, + AB90211114234C8B00348EEC /* bilinear.cpp in Sources */, + ABD1FED41345AC8400AF11D1 /* bios.cpp in Sources */, + ABD1FF5B1345ACBF00AF11D1 /* cache.cpp in Sources */, + ABD1FED51345AC8400AF11D1 /* cheatSystem.cpp in Sources */, + ABD1FED71345AC8400AF11D1 /* common.cpp in Sources */, + ABD1FED81345AC8400AF11D1 /* cp15.cpp in Sources */, + AB15CA7214A29EE500B8A6A4 /* cpu_detect_x86_gcc.cpp in Sources */, + ABD1FF551345ACBF00AF11D1 /* crc.cpp in Sources */, + AB181D0013B66889006CA82D /* datetime.cpp in Sources */, + ABD1FEDA1345AC8400AF11D1 /* debug.cpp in Sources */, + ABD1FF561345ACBF00AF11D1 /* decrypt.cpp in Sources */, + ABD1FF5C1345ACBF00AF11D1 /* directory.cpp in Sources */, + ABD1FEDC1345AC8400AF11D1 /* Disassembler.cpp in Sources */, + ABD1FF5D1345ACBF00AF11D1 /* disc.cpp in Sources */, + ABD1FF581345ACBF00AF11D1 /* dlditool.cpp in Sources */, + ABD1FEDD1345AC8400AF11D1 /* driver.cpp in Sources */, + ABD1FF591345ACBF00AF11D1 /* emufat.cpp in Sources */, + ABD1FEDE1345AC8400AF11D1 /* emufile.cpp in Sources */, + AB90211214234C8B00348EEC /* epx.cpp in Sources */, + ABD1FF5E1345ACBF00AF11D1 /* fatdir.cpp in Sources */, + ABD1FF5F1345ACBF00AF11D1 /* fatfile.cpp in Sources */, + ABD1FEDF1345AC8400AF11D1 /* FIFO.cpp in Sources */, + ABAD3E7413AF1D6D00502E1E /* FIFOSampleBuffer.cpp in Sources */, + ABD1FF601345ACBF00AF11D1 /* file_allocation_table.cpp in Sources */, + ABD1FF611345ACBF00AF11D1 /* filetime.cpp in Sources */, + ABAD3E7513AF1D6D00502E1E /* FIRFilter.cpp in Sources */, + ABD1FEE01345AC8400AF11D1 /* firmware.cpp in Sources */, + AB91D46B13BD013800462471 /* fs-linux.cpp in Sources */, + ABD1FEE31345AC8400AF11D1 /* gfx3d.cpp in Sources */, + ABD1FEE61345AC8400AF11D1 /* GPU.cpp in Sources */, + ABD1FEE41345AC8400AF11D1 /* GPU_osd_stub.cpp in Sources */, + ABD1FF5A1345ACBF00AF11D1 /* guid.cpp in Sources */, + ABD1FF571345ACBF00AF11D1 /* header.cpp in Sources */, + AB90211314234C8B00348EEC /* hq2x.cpp in Sources */, + AB90211414234C8B00348EEC /* hq4x.cpp in Sources */, + ABD1FF621345ACBF00AF11D1 /* libfat.cpp in Sources */, + ABD1FF631345ACBF00AF11D1 /* libfat_public_api.cpp in Sources */, + ABD1FF641345ACBF00AF11D1 /* lock.cpp in Sources */, + AB90211614234C8B00348EEC /* lq2x.cpp in Sources */, + ABD1FEE81345AC8400AF11D1 /* matrix.cpp in Sources */, + ABD1FEE91345AC8400AF11D1 /* mc.cpp in Sources */, + ABD1FF661345ACBF00AF11D1 /* md5.cpp in Sources */, + ABD1FF9F1345ACFA00AF11D1 /* metaspu.cpp in Sources */, + ABD1FEED1345AC8400AF11D1 /* MMU.cpp in Sources */, + ABAD3E7613AF1D6D00502E1E /* mmx_optimized.cpp in Sources */, + ABD1FEEE1345AC8400AF11D1 /* movie.cpp in Sources */, + ABD1FEEF1345AC8400AF11D1 /* NDSSystem.cpp in Sources */, + ABD1FF651345ACBF00AF11D1 /* partition.cpp in Sources */, + ABD1FEF11345AC8400AF11D1 /* path.cpp in Sources */, + ABD1FEF21345AC8400AF11D1 /* rasterize.cpp in Sources */, + ABAD3E7713AF1D6D00502E1E /* RateTransposer.cpp in Sources */, + ABD1FEF31345AC8400AF11D1 /* readwrite.cpp in Sources */, + ABD1FEF41345AC8400AF11D1 /* render3D.cpp in Sources */, + ABD1FEF51345AC8400AF11D1 /* ROMReader.cpp in Sources */, + ABD1FEF61345AC8400AF11D1 /* rtc.cpp in Sources */, + ABD1FEF71345AC8400AF11D1 /* saves.cpp in Sources */, + AB90211714234C8B00348EEC /* scanline.cpp in Sources */, + ABD1FEF81345AC8400AF11D1 /* slot1.cpp in Sources */, + ABD1FF0B1345AC9C00AF11D1 /* slot1_none.cpp in Sources */, + ABD1FF0C1345AC9C00AF11D1 /* slot1_r4.cpp in Sources */, + ABD1FF0D1345AC9C00AF11D1 /* slot1_retail.cpp in Sources */, + AB6FBEF6139B6258007BB045 /* slot1_retail_nand.cpp in Sources */, + ABD1FF0E1345AC9C00AF11D1 /* slot2_expMemory.cpp in Sources */, + ABD1FF0F1345AC9C00AF11D1 /* slot2_gbagame.cpp in Sources */, + ABD1FF101345AC9C00AF11D1 /* slot2_guitarGrip.cpp in Sources */, + ABD1FF111345AC9C00AF11D1 /* slot2_mpcf.cpp in Sources */, + ABD1FF121345AC9C00AF11D1 /* slot2_none.cpp in Sources */, + ABD1FF131345AC9C00AF11D1 /* slot2_paddle.cpp in Sources */, + ABD1FF141345AC9C00AF11D1 /* slot2_piano.cpp in Sources */, + ABD1FF151345AC9C00AF11D1 /* slot2_rumblepak.cpp in Sources */, + ABD1041F1346652500AF11D1 /* sndOSX.cpp in Sources */, + AB1F468413A0ADE400B80DE6 /* SndOut.cpp in Sources */, + ABAD3E7813AF1D6D00502E1E /* SoundTouch.cpp in Sources */, + ABD1FEFA1345AC8400AF11D1 /* SPU.cpp in Sources */, + ABAD3E7913AF1D6D00502E1E /* sse_optimized.cpp in Sources */, + ABD1FF671345ACBF00AF11D1 /* task.cpp in Sources */, + ABAD3E7A13AF1D6D00502E1E /* TDStretch.cpp in Sources */, + ABD1FEFB1345AC8400AF11D1 /* texcache.cpp in Sources */, + ABD1FEFC1345AC8400AF11D1 /* thumb_instructions.cpp in Sources */, + AB1F469813A0AE2F00B80DE6 /* Timestretcher.cpp in Sources */, + ABE6702B1415DE6C00E8E4C9 /* tinystr.cpp in Sources */, + ABE6702C1415DE6C00E8E4C9 /* tinyxml.cpp in Sources */, + ABE6702D1415DE6C00E8E4C9 /* tinyxmlerror.cpp in Sources */, + ABE6702E1415DE6C00E8E4C9 /* tinyxmlparser.cpp in Sources */, + ABD1FEFD1345AC8400AF11D1 /* version.cpp in Sources */, + ABD1FF681345ACBF00AF11D1 /* vfat.cpp in Sources */, + ABE5DE95143F781900835AD8 /* videofilter.cpp in Sources */, + ABAD3E7B13AF1D6D00502E1E /* WavFile.cpp in Sources */, + ABD1FEFE1345AC8400AF11D1 /* wifi.cpp in Sources */, + ABD1FF691345ACBF00AF11D1 /* xstring.cpp in Sources */, + ABD104281346653B00AF11D1 /* main.m in Sources */, + ABA6574B14511EC90077E5E9 /* cocoa_cheat.mm in Sources */, + ABD1041D1346652500AF11D1 /* cocoa_core.mm in Sources */, + AB58F32D1364F44B0074C376 /* cocoa_file.mm in Sources */, + ABE7F53E13EE1C7900FD3A71 /* cocoa_firmware.mm in Sources */, + AB350B6A1478A5B3007165AC /* cocoa_hid.mm in Sources */, + ABD1041C1346652500AF11D1 /* cocoa_input.mm in Sources */, + ABD9A46513DB99B300777194 /* cocoa_mic.mm in Sources */, + AB3E34C9134AF4500056477A /* cocoa_output.mm in Sources */, + ABD1041E1346652500AF11D1 /* cocoa_rom.mm in Sources */, + AB80E04D142BC4A800A52038 /* cocoa_util.mm in Sources */, + ABE5DFE5143FB1DA00835AD8 /* cocoa_videofilter.mm in Sources */, + AB0F291D14BE6F4A009ABC6F /* OGLRender.cpp in Sources */, + AB3ACB7214C2361100D7D192 /* appDelegate.mm in Sources */, + AB3ACB7314C2361100D7D192 /* cheatWindowDelegate.mm in Sources */, + AB3ACB7414C2361100D7D192 /* displayView.mm in Sources */, + AB3ACB7514C2361100D7D192 /* emuWindowDelegate.mm in Sources */, + AB3ACB7614C2361100D7D192 /* inputPrefsView.mm in Sources */, + AB3ACB7714C2361100D7D192 /* preferencesWindowDelegate.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB711EFF1481C35F009011C8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB711F2D1481C35F009011C8 /* ConvertUTF.c in Sources */, + AB711F651481C35F009011C8 /* 2xsai.cpp in Sources */, + AB711F531481C35F009011C8 /* AAFilter.cpp in Sources */, + AB711F001481C35F009011C8 /* addons.cpp in Sources */, + AB711F011481C35F009011C8 /* arm_instructions.cpp in Sources */, + AB711F021481C35F009011C8 /* armcpu.cpp in Sources */, + AB711F661481C35F009011C8 /* bilinear.cpp in Sources */, + AB711F031481C35F009011C8 /* bios.cpp in Sources */, + AB711F341481C35F009011C8 /* cache.cpp in Sources */, + AB711F041481C35F009011C8 /* cheatSystem.cpp in Sources */, + AB711F051481C35F009011C8 /* common.cpp in Sources */, + AB711F061481C35F009011C8 /* cp15.cpp in Sources */, + AB711F711481C35F009011C8 /* cpu_detect_x86_gcc.cpp in Sources */, + AB711F2E1481C35F009011C8 /* crc.cpp in Sources */, + AB711F5C1481C35F009011C8 /* datetime.cpp in Sources */, + AB711F071481C35F009011C8 /* debug.cpp in Sources */, + AB711F2F1481C35F009011C8 /* decrypt.cpp in Sources */, + AB711F351481C35F009011C8 /* directory.cpp in Sources */, + AB711F081481C35F009011C8 /* Disassembler.cpp in Sources */, + AB711F361481C35F009011C8 /* disc.cpp in Sources */, + AB711F311481C35F009011C8 /* dlditool.cpp in Sources */, + AB711F091481C35F009011C8 /* driver.cpp in Sources */, + AB711F321481C35F009011C8 /* emufat.cpp in Sources */, + AB711F0A1481C35F009011C8 /* emufile.cpp in Sources */, + AB711F671481C35F009011C8 /* epx.cpp in Sources */, + AB711F371481C35F009011C8 /* fatdir.cpp in Sources */, + AB711F381481C35F009011C8 /* fatfile.cpp in Sources */, + AB711F0B1481C35F009011C8 /* FIFO.cpp in Sources */, + AB711F541481C35F009011C8 /* FIFOSampleBuffer.cpp in Sources */, + AB711F391481C35F009011C8 /* file_allocation_table.cpp in Sources */, + AB711F3A1481C35F009011C8 /* filetime.cpp in Sources */, + AB711F551481C35F009011C8 /* FIRFilter.cpp in Sources */, + AB711F0C1481C35F009011C8 /* firmware.cpp in Sources */, + AB711F5D1481C35F009011C8 /* fs-linux.cpp in Sources */, + AB711F0D1481C35F009011C8 /* gfx3d.cpp in Sources */, + AB711F0F1481C35F009011C8 /* GPU.cpp in Sources */, + AB711F0E1481C35F009011C8 /* GPU_osd_stub.cpp in Sources */, + AB711F331481C35F009011C8 /* guid.cpp in Sources */, + AB711F301481C35F009011C8 /* header.cpp in Sources */, + AB711F681481C35F009011C8 /* hq2x.cpp in Sources */, + AB711F691481C35F009011C8 /* hq4x.cpp in Sources */, + AB711F3B1481C35F009011C8 /* libfat.cpp in Sources */, + AB711F3C1481C35F009011C8 /* libfat_public_api.cpp in Sources */, + AB711F3D1481C35F009011C8 /* lock.cpp in Sources */, + AB711F6A1481C35F009011C8 /* lq2x.cpp in Sources */, + AB711F101481C35F009011C8 /* matrix.cpp in Sources */, + AB711F111481C35F009011C8 /* mc.cpp in Sources */, + AB711F3F1481C35F009011C8 /* md5.cpp in Sources */, + AB711F431481C35F009011C8 /* metaspu.cpp in Sources */, + AB711F121481C35F009011C8 /* MMU.cpp in Sources */, + AB711F561481C35F009011C8 /* mmx_optimized.cpp in Sources */, + AB711F131481C35F009011C8 /* movie.cpp in Sources */, + AB711F141481C35F009011C8 /* NDSSystem.cpp in Sources */, + AB711F5F1481C35F009011C8 /* OGLRender.cpp in Sources */, + AB711F3E1481C35F009011C8 /* partition.cpp in Sources */, + AB711F151481C35F009011C8 /* path.cpp in Sources */, + AB711F161481C35F009011C8 /* rasterize.cpp in Sources */, + AB711F571481C35F009011C8 /* RateTransposer.cpp in Sources */, + AB711F171481C35F009011C8 /* readwrite.cpp in Sources */, + AB711F181481C35F009011C8 /* render3D.cpp in Sources */, + AB711F191481C35F009011C8 /* ROMReader.cpp in Sources */, + AB711F1A1481C35F009011C8 /* rtc.cpp in Sources */, + AB711F1B1481C35F009011C8 /* saves.cpp in Sources */, + AB711F6B1481C35F009011C8 /* scanline.cpp in Sources */, + AB711F1C1481C35F009011C8 /* slot1.cpp in Sources */, + AB711F221481C35F009011C8 /* slot1_none.cpp in Sources */, + AB711F231481C35F009011C8 /* slot1_r4.cpp in Sources */, + AB711F241481C35F009011C8 /* slot1_retail.cpp in Sources */, + AB711F501481C35F009011C8 /* slot1_retail_nand.cpp in Sources */, + AB711F251481C35F009011C8 /* slot2_expMemory.cpp in Sources */, + AB711F261481C35F009011C8 /* slot2_gbagame.cpp in Sources */, + AB711F271481C35F009011C8 /* slot2_guitarGrip.cpp in Sources */, + AB711F281481C35F009011C8 /* slot2_mpcf.cpp in Sources */, + AB711F291481C35F009011C8 /* slot2_none.cpp in Sources */, + AB711F2A1481C35F009011C8 /* slot2_paddle.cpp in Sources */, + AB711F2B1481C35F009011C8 /* slot2_piano.cpp in Sources */, + AB711F2C1481C35F009011C8 /* slot2_rumblepak.cpp in Sources */, + AB711F491481C35F009011C8 /* sndOSX.cpp in Sources */, + AB711F511481C35F009011C8 /* SndOut.cpp in Sources */, + AB711F581481C35F009011C8 /* SoundTouch.cpp in Sources */, + AB711F1D1481C35F009011C8 /* SPU.cpp in Sources */, + AB711F591481C35F009011C8 /* sse_optimized.cpp in Sources */, + AB711F401481C35F009011C8 /* task.cpp in Sources */, + AB711F5A1481C35F009011C8 /* TDStretch.cpp in Sources */, + AB711F1E1481C35F009011C8 /* texcache.cpp in Sources */, + AB711F1F1481C35F009011C8 /* thumb_instructions.cpp in Sources */, + AB711F521481C35F009011C8 /* Timestretcher.cpp in Sources */, + AB711F611481C35F009011C8 /* tinystr.cpp in Sources */, + AB711F621481C35F009011C8 /* tinyxml.cpp in Sources */, + AB711F631481C35F009011C8 /* tinyxmlerror.cpp in Sources */, + AB711F641481C35F009011C8 /* tinyxmlparser.cpp in Sources */, + AB711F201481C35F009011C8 /* version.cpp in Sources */, + AB711F411481C35F009011C8 /* vfat.cpp in Sources */, + AB711F6D1481C35F009011C8 /* videofilter.cpp in Sources */, + AB711F5B1481C35F009011C8 /* WavFile.cpp in Sources */, + AB711F211481C35F009011C8 /* wifi.cpp in Sources */, + AB711F421481C35F009011C8 /* xstring.cpp in Sources */, + AB711F4A1481C35F009011C8 /* main.m in Sources */, + AB711F701481C35F009011C8 /* cocoa_cheat.mm in Sources */, + AB711F471481C35F009011C8 /* cocoa_core.mm in Sources */, + AB711F4E1481C35F009011C8 /* cocoa_file.mm in Sources */, + AB711F601481C35F009011C8 /* cocoa_firmware.mm in Sources */, + AB711F721481C35F009011C8 /* cocoa_hid.mm in Sources */, + AB711F461481C35F009011C8 /* cocoa_input.mm in Sources */, + AB711F5E1481C35F009011C8 /* cocoa_mic.mm in Sources */, + AB711F4C1481C35F009011C8 /* cocoa_output.mm in Sources */, + AB711F481481C35F009011C8 /* cocoa_rom.mm in Sources */, + AB711F6C1481C35F009011C8 /* cocoa_util.mm in Sources */, + AB711F6E1481C35F009011C8 /* cocoa_videofilter.mm in Sources */, + AB3ACB7814C2361100D7D192 /* appDelegate.mm in Sources */, + AB3ACB7914C2361100D7D192 /* cheatWindowDelegate.mm in Sources */, + AB3ACB7A14C2361100D7D192 /* displayView.mm in Sources */, + AB3ACB7B14C2361100D7D192 /* emuWindowDelegate.mm in Sources */, + AB3ACB7C14C2361100D7D192 /* inputPrefsView.mm in Sources */, + AB3ACB7D14C2361100D7D192 /* preferencesWindowDelegate.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + AB00E87914205EAE00DE561F /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + AB00E87A14205EAE00DE561F /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + AB00E87C14205EBC00DE561F /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + AB00E87D14205EBC00DE561F /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + AB350D3A147A1D93007165AC /* HID_usage_strings.plist */ = { + isa = PBXVariantGroup; + children = ( + AB350D38147A1D8D007165AC /* English */, + ); + name = HID_usage_strings.plist; + sourceTree = ""; + }; + AB901BDD1420706100348EEC /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + AB00E89114205ECC00DE561F /* English */, + AB901BE01420706F00348EEC /* French */, + AB901BE11420707400348EEC /* Italian */, + AB901BDF1420706B00348EEC /* Japanese */, + AB901BE21420707800348EEC /* Chinese */, + AB901BE31420707D00348EEC /* Norwegian */, + AB901BE41420708200348EEC /* Romanian */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + AB711F7D1481C35F009011C8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + i386, + x86_64, + ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = macosx10.6; + VALID_ARCHS = "i386 x86_64"; + }; + name = Debug; + }; + AB711F7E1481C35F009011C8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + i386, + x86_64, + ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + SDKROOT = macosx10.6; + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = YES; + VALID_ARCHS = "i386 x86_64"; + }; + name = Release; + }; + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + SKIP_INSTALL = NO; + STRIP_INSTALLED_PRODUCT = YES; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + i386, + x86_64, + ppc, + ppc64, + ); + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_FAST_OBJC_DISPATCH = NO; + GCC_MODEL_TUNING = ""; + "GCC_MODEL_TUNING[sdk=macosx10.4][arch=ppc]" = G4; + "GCC_MODEL_TUNING[sdk=macosx10.5][arch=ppc64]" = G5; + "GCC_MODEL_TUNING[sdk=macosx10.5][arch=ppc]" = G4; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = DeSmuME_Prefix.pch; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THREADSAFE_STATICS = NO; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + "GCC_VERSION[sdk=macosx10.5][arch=ppc64]" = 4.2; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_PROTOTYPE_CONVERSION = NO; + GCC_WARN_SHADOW = NO; + GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IBC_FLATTEN_NIBS = NO; + INFOPLIST_FILE = "Info (Debug).plist"; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + PRODUCT_NAME = "DeSmuME (Debug)"; + SDKROOT = macosx10.5; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + i386, + x86_64, + ppc, + ppc64, + ); + ENABLE_OPENMP_SUPPORT = NO; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_DYNAMIC_NO_PIC = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SSE41_EXTENSIONS = YES; + GCC_ENABLE_SSE42_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = ""; + "GCC_MODEL_TUNING[sdk=macosx10.4][arch=ppc]" = G4; + "GCC_MODEL_TUNING[sdk=macosx10.5][arch=ppc64]" = G5; + "GCC_MODEL_TUNING[sdk=macosx10.5][arch=ppc]" = G4; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = DeSmuME_Prefix.pch; + GCC_STRICT_ALIASING = YES; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_THREADSAFE_STATICS = NO; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_UNROLL_LOOPS = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + "GCC_VERSION[sdk=macosx10.5][arch=ppc64]" = 4.2; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_PROTOTYPE_CONVERSION = NO; + GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + LLVM_LTO = NO; + PREBINDING = NO; + PRODUCT_NAME = DeSmuME; + SDKROOT = macosx10.5; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + AB711F7C1481C35F009011C8 /* Build configuration list for PBXNativeTarget "DeSmuME (v10.6 Snow Leopard)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AB711F7D1481C35F009011C8 /* Debug */, + AB711F7E1481C35F009011C8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "DeSmuME (v10.5 Leopard)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "DeSmuME (XCode 3)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/desmume/src/cocoa/DefaultKeyMappings.plist b/desmume/src/cocoa/DefaultKeyMappings.plist new file mode 100644 index 000000000..ccf88347e --- /dev/null +++ b/desmume/src/cocoa/DefaultKeyMappings.plist @@ -0,0 +1,333 @@ + + + + + Up + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 126 + elementName + Up Arrow + + + Down + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 125 + elementName + Down Arrow + + + Left + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 123 + elementName + Left Arrow + + + Right + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 124 + elementName + Right Arrow + + + A + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 7 + elementName + X + + + B + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 6 + elementName + Z + + + X + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 1 + elementName + S + + + Y + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 0 + elementName + A + + + L + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 12 + elementName + Q + + + R + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 13 + elementName + W + + + Start + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 36 + elementName + Return + + + Select + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 48 + elementName + Tab + + + Touch + + + deviceCode + NSEventMouse + deviceName + Mouse + elementCode + 0 + elementName + Primary Button + useDeviceValues + + pointX + 0 + pointY + 0 + + + Microphone + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 50 + elementName + ` + + + Debug + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 42 + elementName + \ + + + Lid + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 51 + elementName + Delete (Backspace) + + + Speed Half + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 27 + elementName + - + floatValue + 0.5 + selector + toggleHoldSpeedHalf: + paramType + floatValue + + + Speed Double + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 24 + elementName + = + floatValue + 2 + selector + toggleHoldSpeedDouble: + paramType + floatValue + + + HUD + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 4 + elementName + H + selector + toggleHoldHUD + + + Execute + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 117 + elementName + Forward Delete + selector + execute + + + Pause + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 119 + elementName + End + selector + pause + + + Reset + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 121 + elementName + Page Down + selector + reset + + + Mute + + + deviceCode + NSEventKeyboard + deviceName + Keyboard + elementCode + 71 + elementName + Numpad Clear + selector + mute + + + + diff --git a/desmume/src/cocoa/DefaultUserPrefs.plist b/desmume/src/cocoa/DefaultUserPrefs.plist new file mode 100644 index 0000000000000000000000000000000000000000..153a8340446a8b1d261a4c3bbb9209b30bfdab64 GIT binary patch literal 4955 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 miheO5c8FmyB6f;VQ4v>)U1D5Rb3t#h + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + nds + + CFBundleTypeIconFile + AppIcon_NintendoDS_ROM.icns + CFBundleTypeName + Nintendo DS ROM + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.nintendo.rom.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + ds.gba + + CFBundleTypeIconFile + AppIcon_NintendoGBA_ROM.icns + CFBundleTypeName + Gameboy Advance ROM + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.nintendo.rom.gba + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dst + + CFBundleTypeIconFile + AppIcon_SaveState.icns + CFBundleTypeName + DeSmuME Save State + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.savestate + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dsv + + CFBundleTypeIconFile + AppIcon_ROMSave.icns + CFBundleTypeName + DeSmuME ROM Save + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.romsave + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dfc + + CFBundleTypeIconFile + AppIcon_FirmwareConfig.icns + CFBundleTypeName + DeSmuME Firmware Configuration + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.firmwareconfig + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dct + + CFBundleTypeIconFile + AppIcon_ROMCheats.icns + CFBundleTypeName + DeSmuME ROM Cheats + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.romcheats + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + sav + + CFBundleTypeIconFile + AppIcon_NoGBA_ROMSave.icns + CFBundleTypeName + No$GBA ROM Save + CFBundleTypeRole + Viewer + LSItemContentTypes + + de.emubase.nocash.romsave.gba + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + duc + + CFBundleTypeIconFile + AppIcon_ActionReplaySave.icns + CFBundleTypeName + Action Replay Save + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.codejunkies.actionreplay.save.nintendo.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + bin + + CFBundleTypeIconFile + AppIcon_HWImage_NDS.icns + CFBundleTypeName + Nintendo DS Hardware Image + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.nintendo.hwimage.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + xml + + CFBundleTypeIconFile + AppIcon_ADVANsCEneDatabase.icns + CFBundleTypeName + ADVANsCEne Database + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.advanscene.database.nintendo.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dat + + CFBundleTypeIconFile + AppIcon_R4CheatDatabase.icns + CFBundleTypeName + R4 Cheats Database + CFBundleTypeRole + Viewer + LSItemContentTypes + + net.gbatemp.cheats.database.nintendo.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleExecutable + DeSmuME (Debug) + CFBundleIconFile + AppIcon_DeSmuME + CFBundleIdentifier + com.DeSmuME.DeSmuME + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + v0.9.8 (Debug) + CFBundleSignature + DSmM + CFBundleVersion + 0.9.8 + LSApplicationCategoryType + public.app-category.utilities + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright ©2012 DeSmuME Team. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + UTExportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME Save State + UTTypeIconFile + AppIcon_SaveState.icns + UTTypeIdentifier + com.desmume.savestate + UTTypeTagSpecification + + public.filename-extension + + dst + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME ROM Save + UTTypeIconFile + AppIcon_ROMSave.icns + UTTypeIdentifier + com.desmume.romsave + UTTypeTagSpecification + + public.filename-extension + + dsv + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME Firmware Configuration + UTTypeIconFile + AppIcon_FirmwareConfig.icns + UTTypeIdentifier + com.desmume.firmwareconfig + UTTypeTagSpecification + + public.filename-extension + + dfc + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME ROM Cheats + UTTypeIconFile + AppIcon_ROMCheats.icns + UTTypeIdentifier + com.desmume.romcheats + UTTypeTagSpecification + + public.filename-extension + + dct + + + + + UTImportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Nintendo DS ROM + UTTypeIconFile + AppIcon_NintendoDS_ROM.icns + UTTypeIdentifier + com.nintendo.rom.ds + UTTypeTagSpecification + + public.filename-extension + + nds + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Gameboy Advance ROM + UTTypeIconFile + AppIcon_NintendoGBA_ROM.icns + UTTypeIdentifier + com.nintendo.rom.gba + UTTypeTagSpecification + + public.filename-extension + + ds.gba + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + No$GBA ROM Save + UTTypeIconFile + AppIcon_NoGBA_ROMSave.icns + UTTypeIdentifier + de.emubase.nocash.romsave.gba + UTTypeTagSpecification + + public.filename-extension + + sav + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Action Replay Save + UTTypeIconFile + AppIcon_ActionReplaySave.icns + UTTypeIdentifier + com.codejunkies.actionreplay.save.nintendo.ds + UTTypeTagSpecification + + public.filename-extension + + duc + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Nintendo DS Hardware Image + UTTypeIconFile + AppIcon_HWImage_NDS.icns + UTTypeIdentifier + com.nintendo.hwimage.ds + UTTypeTagSpecification + + public.filename-extension + + bin + + + + + UTTypeConformsTo + + public.xml + + UTTypeDescription + ADVANsCEne Database + UTTypeIconFile + AppIcon_ADVANsCEneDatabase.icns + UTTypeIdentifier + com.advanscene.database.nintendo.ds + UTTypeTagSpecification + + public.filename-extension + + xml + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + R4 Cheats Database + UTTypeIconFile + AppIcon_R4CheatDatabase.icns + UTTypeIdentifier + net.gbatemp.cheats.database.nintendo.ds + UTTypeTagSpecification + + public.filename-extension + + dat + + + + + + diff --git a/desmume/src/cocoa/Info.plist b/desmume/src/cocoa/Info.plist new file mode 100644 index 000000000..75b43bd51 --- /dev/null +++ b/desmume/src/cocoa/Info.plist @@ -0,0 +1,474 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + nds + + CFBundleTypeIconFile + AppIcon_NintendoDS_ROM.icns + CFBundleTypeName + Nintendo DS ROM + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.nintendo.rom.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + ds.gba + + CFBundleTypeIconFile + AppIcon_NintendoGBA_ROM.icns + CFBundleTypeName + Gameboy Advance ROM + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.nintendo.rom.gba + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dst + + CFBundleTypeIconFile + AppIcon_SaveState.icns + CFBundleTypeName + DeSmuME Save State + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.savestate + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dsv + + CFBundleTypeIconFile + AppIcon_ROMSave.icns + CFBundleTypeName + DeSmuME ROM Save + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.romsave + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dfc + + CFBundleTypeIconFile + AppIcon_FirmwareConfig.icns + CFBundleTypeName + DeSmuME Firmware Configuration + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.firmwareconfig + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dct + + CFBundleTypeIconFile + AppIcon_ROMCheats.icns + CFBundleTypeName + DeSmuME ROM Cheats + CFBundleTypeRole + Editor + LSItemContentTypes + + com.desmume.romcheats + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + sav + + CFBundleTypeIconFile + AppIcon_NoGBA_ROMSave.icns + CFBundleTypeName + No$GBA ROM Save + CFBundleTypeRole + Viewer + LSItemContentTypes + + de.emubase.nocash.romsave.gba + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + duc + + CFBundleTypeIconFile + AppIcon_ActionReplaySave.icns + CFBundleTypeName + Action Replay Save + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.codejunkies.actionreplay.save.nintendo.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + bin + + CFBundleTypeIconFile + AppIcon_HWImage_NDS.icns + CFBundleTypeName + Nintendo DS Hardware Image + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.nintendo.hwimage.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + xml + + CFBundleTypeIconFile + AppIcon_ADVANsCEneDatabase.icns + CFBundleTypeName + ADVANsCEne Database + CFBundleTypeRole + Viewer + LSItemContentTypes + + com.advanscene.database.nintendo.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + dat + + CFBundleTypeIconFile + AppIcon_R4CheatDatabase.icns + CFBundleTypeName + R4 Cheats Database + CFBundleTypeRole + Viewer + LSItemContentTypes + + net.gbatemp.cheats.database.nintendo.ds + + LSTypeIsPackage + + NSPersistentStoreTypeKey + Binary + + + CFBundleExecutable + DeSmuME + CFBundleIconFile + AppIcon_DeSmuME + CFBundleIdentifier + com.DeSmuME.DeSmuME + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + v0.9.8 + CFBundleSignature + DSmM + CFBundleVersion + 0.9.8 + LSApplicationCategoryType + public.app-category.utilities + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright ©2012 DeSmuME Team. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + UTExportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME Save State + UTTypeIconFile + AppIcon_SaveState.icns + UTTypeIdentifier + com.desmume.savestate + UTTypeTagSpecification + + public.filename-extension + + dst + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME ROM Save + UTTypeIconFile + AppIcon_ROMSave.icns + UTTypeIdentifier + com.desmume.romsave + UTTypeTagSpecification + + public.filename-extension + + dsv + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME Firmware Configuration + UTTypeIconFile + AppIcon_FirmwareConfig.icns + UTTypeIdentifier + com.desmume.firmwareconfig + UTTypeTagSpecification + + public.filename-extension + + dfc + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + DeSmuME ROM Cheats + UTTypeIconFile + AppIcon_ROMCheats.icns + UTTypeIdentifier + com.desmume.romcheats + UTTypeTagSpecification + + public.filename-extension + + dct + + + + + UTImportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Nintendo DS ROM + UTTypeIconFile + AppIcon_NintendoDS_ROM.icns + UTTypeIdentifier + com.nintendo.rom.ds + UTTypeTagSpecification + + public.filename-extension + + nds + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Gameboy Advance ROM + UTTypeIconFile + AppIcon_NintendoGBA_ROM.icns + UTTypeIdentifier + com.nintendo.rom.gba + UTTypeTagSpecification + + public.filename-extension + + ds.gba + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + No$GBA ROM Save + UTTypeIconFile + AppIcon_NoGBA_ROMSave.icns + UTTypeIdentifier + de.emubase.nocash.romsave.gba + UTTypeTagSpecification + + public.filename-extension + + sav + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Action Replay Save + UTTypeIconFile + AppIcon_ActionReplaySave.icns + UTTypeIdentifier + com.codejunkies.actionreplay.save.nintendo.ds + UTTypeTagSpecification + + public.filename-extension + + duc + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Nintendo DS Hardware Image + UTTypeIconFile + AppIcon_HWImage_NDS.icns + UTTypeIdentifier + com.nintendo.hwimage.ds + UTTypeTagSpecification + + public.filename-extension + + bin + + + + + UTTypeConformsTo + + public.xml + + UTTypeDescription + ADVANsCEne Database + UTTypeIconFile + AppIcon_ADVANsCEneDatabase.icns + UTTypeIdentifier + com.advanscene.database.nintendo.ds + UTTypeTagSpecification + + public.filename-extension + + xml + + + + + UTTypeConformsTo + + public.data + + UTTypeDescription + R4 Cheats Database + UTTypeIconFile + AppIcon_R4CheatDatabase.icns + UTTypeIdentifier + net.gbatemp.cheats.database.nintendo.ds + UTTypeTagSpecification + + public.filename-extension + + dat + + + + + + diff --git a/desmume/src/cocoa/KeyNames.plist b/desmume/src/cocoa/KeyNames.plist new file mode 100644 index 000000000..bde239430 --- /dev/null +++ b/desmume/src/cocoa/KeyNames.plist @@ -0,0 +1,202 @@ + + + + + 12 + Q + 13 + W + 14 + E + 15 + R + 17 + T + 16 + Y + 32 + U + 34 + I + 31 + O + 35 + P + 0 + A + 1 + S + 2 + D + 3 + F + 5 + G + 4 + H + 38 + J + 40 + K + 37 + L + 6 + Z + 7 + X + 8 + C + 9 + V + 11 + B + 45 + N + 46 + M + 18 + 1 + 19 + 2 + 20 + 3 + 21 + 4 + 23 + 5 + 22 + 6 + 26 + 7 + 28 + 8 + 25 + 9 + 29 + 0 + 122 + F1 + 120 + F2 + 99 + F3 + 118 + F4 + 96 + F5 + 97 + F6 + 98 + F7 + 100 + F8 + 101 + F9 + 109 + F10 + 103 + F11 + 111 + F12 + 105 + F13 + 107 + F14 + 113 + F15 + 106 + F16 + 64 + F17 + 79 + F18 + 80 + F19 + 50 + ` + 27 + - + 24 + = + 51 + Delete (Backspace) + 48 + Tab + 33 + [ + 30 + ] + 42 + \ + 41 + ; (Semicolon) + 39 + ' (Quote) + 36 + Return + 43 + , (Comma) + 47 + . (Period) + 44 + / + 49 + Space + 115 + Home + 119 + End + 116 + Page Up + 121 + Page Down + 117 + Forward Delete + 126 + Up Arrow + 125 + Down Arrow + 123 + Left Arrow + 124 + Right Arrow + 82 + NumPad 0 + 83 + NumPad 1 + 84 + NumPad 2 + 85 + NumPad 3 + 86 + NumPad 4 + 87 + NumPad 5 + 88 + NumPad 6 + 89 + NumPad 7 + 91 + NumPad 8 + 92 + NumPad 9 + 71 + NumPad Clear + 81 + NumPad = + 75 + NumPad / + 67 + NumPad * + 78 + NumPad - + 69 + NumPad + + 65 + NumPad . + 76 + NumPad Enter + 53 + Escape + + diff --git a/desmume/src/cocoa/cocoa_cheat.h b/desmume/src/cocoa/cocoa_cheat.h new file mode 100644 index 000000000..b0672e0c8 --- /dev/null +++ b/desmume/src/cocoa/cocoa_cheat.h @@ -0,0 +1,164 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include "../cheatSystem.h" + +@class CocoaDSCore; + + +/******************************************************************************************** + CocoaDSCheatItem - OBJECTIVE-C CLASS + + This is an Objective-C wrapper class for DeSmuME's cheat item struct. + + The cheat item data is not freed upon release of this object. This is by design. + + Thread Safety: + Assume that all methods are not thread-safe. This was done for performance + reasons. The caller of this class' methods is expected to handle thread safety. + ********************************************************************************************/ +@interface CocoaDSCheatItem : NSObject +{ + CHEATS_LIST *data; + CHEATS_LIST *internalData; + BOOL willAdd; + pthread_mutex_t mutexData; + + CocoaDSCheatItem *workingCopy; + CocoaDSCheatItem *parent; +} + +@property (assign) CHEATS_LIST *data; +@property (assign) BOOL willAdd; +@property (assign, nonatomic) BOOL enabled; +@property (assign, nonatomic) NSInteger cheatType; +@property (assign, nonatomic) NSImage *cheatTypeIcon; +@property (assign, nonatomic) BOOL isSupportedCheatType; +@property (assign, nonatomic) NSInteger freezeType; +@property (assign, nonatomic) NSString *description; +@property (assign, nonatomic) NSUInteger codeCount; +@property (assign, nonatomic) NSString *code; +@property (assign, nonatomic) UInt8 bytes; +@property (assign, nonatomic) UInt32 memAddress; +@property (assign, nonatomic) NSString *memAddressString; +@property (assign, nonatomic) NSString *memAddressSixDigitString; +@property (assign, nonatomic) SInt64 value; +@property (readonly) CocoaDSCheatItem *workingCopy; +@property (assign) CocoaDSCheatItem *parent; + +- (id) initWithCheatData:(CHEATS_LIST *)cheatData; +- (BOOL) retainData; +- (char *) descriptionCString; +- (void) update; +- (CocoaDSCheatItem *) createWorkingCopy; +- (void) destroyWorkingCopy; +- (void) mergeFromWorkingCopy; +- (void) mergeToParent; +- (void) setDataWithDictionary:(NSDictionary *)dataDict; +- (NSDictionary *) dataDictionary; + +@end + +/******************************************************************************************** + CocoaDSCheatManager - OBJECTIVE-C CLASS + + This is an Objective-C wrapper class for DeSmuME's cheat list class. + + Thread Safety: + All methods are thread-safe. + ********************************************************************************************/ +@interface CocoaDSCheatManager : NSObject +{ + CHEATS *listData; + NSMutableArray *list; + + CocoaDSCore *cdsCore; + NSUInteger untitledCount; + NSString *dbTitle; + NSString *dbDate; +} + +@property (readonly) CHEATS *listData; +@property (readonly) NSMutableArray *list; +@property (assign) CocoaDSCore *cdsCore; +@property (assign) NSUInteger untitledCount; +@property (assign) NSString *dbTitle; +@property (assign) NSString *dbDate; + +- (id) initWithCore:(CocoaDSCore *)core; +- (id) initWithURL:(CocoaDSCore *)core fileURL:(NSURL *)fileURL; +- (id) initWithExistingList:(CocoaDSCore *)core listData:(CHEATS *)cheatList; +- (id) initWithURL:(CocoaDSCore *)core fileURL:(NSURL *)fileURL listData:(CHEATS *)cheatList; + +- (BOOL) add:(CocoaDSCheatItem *)cheatItem; +- (void) remove:(CocoaDSCheatItem *)cheatItem; +- (BOOL) update:(CocoaDSCheatItem *)cheatItem; +- (BOOL) save; +- (NSMutableArray *) cheatListFromDatabase:(NSURL *)fileURL errorCode:(NSInteger *)error; +- (void) applyInternalCheat:(CocoaDSCheatItem *)cheatItem; + ++ (void) setMasterCheatList:(CocoaDSCheatManager *)cheatListManager; ++ (void) applyInternalCheatWithItem:(CocoaDSCheatItem *)cheatItem; ++ (void) applyInternalCheatWithAddress:(UInt32)address value:(UInt32)value bytes:(NSUInteger)bytes; ++ (NSMutableArray *) cheatListWithListObject:(CHEATS *)cheatList; ++ (NSMutableArray *) cheatListWithItemStructArray:(CHEATS_LIST *)cheatItemArray count:(NSUInteger)itemCount; ++ (NSMutableDictionary *) cheatItemWithType:(NSInteger)cheatTypeID description:(NSString *)description; + +@end + +@interface CocoaDSCheatSearch : NSObject +{ + CHEATSEARCH *listData; + NSMutableArray *addressList; + + CocoaDSCore *cdsCore; + NSUInteger searchCount; +} + +@property (readonly) CHEATSEARCH *listData; +@property (readonly) NSMutableArray *addressList; +@property (assign) CocoaDSCore *cdsCore; +@property (readonly) NSUInteger searchCount; + +- (id) initWithCore:(CocoaDSCore *)core; + +- (NSUInteger) runExactValueSearch:(NSInteger)value byteSize:(UInt8)byteSize signType:(NSInteger)signType; +- (void) runExactValueSearchOnThread:(id)object; +- (NSUInteger) runComparativeSearch:(NSInteger)typeID byteSize:(UInt8)byteSize signType:(NSInteger)signType; +- (void) runComparativeSearchOnThread:(id)object; +- (void) reset; + ++ (NSMutableArray *) addressListWithListObject:(CHEATSEARCH *)addressList maxItems:(NSUInteger)maxItemCount; + +@end + +@interface CocoaDSCheatSearchParams : NSObject +{ + NSInteger comparativeSearchType; + NSInteger value; + UInt8 byteSize; + NSInteger signType; +} + +@property (assign) NSInteger comparativeSearchType; +@property (assign) NSInteger value; +@property (assign) UInt8 byteSize; +@property (assign) NSInteger signType; + +@end diff --git a/desmume/src/cocoa/cocoa_cheat.mm b/desmume/src/cocoa/cocoa_cheat.mm new file mode 100644 index 000000000..3b8f1b2b2 --- /dev/null +++ b/desmume/src/cocoa/cocoa_cheat.mm @@ -0,0 +1,1246 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_cheat.h" +#import "cocoa_core.h" +#import "cocoa_globals.h" +#import "cocoa_util.h" + +#include "../MMU.h" + +@implementation CocoaDSCheatItem + +static NSImage *iconInternalCheat = nil; +static NSImage *iconActionReplay = nil; +static NSImage *iconCodeBreaker = nil; + +@dynamic data; +@synthesize willAdd; +@dynamic enabled; +@dynamic cheatType; +@dynamic cheatTypeIcon; +@dynamic isSupportedCheatType; +@dynamic freezeType; +@dynamic description; +@dynamic codeCount; +@dynamic code; +@dynamic memAddress; +@dynamic memAddressString; +@dynamic memAddressSixDigitString; +@dynamic bytes; +@dynamic value; +@synthesize workingCopy; +@synthesize parent; + +- (id) init +{ + return [self initWithCheatData:nil]; +} + +- (id) initWithCheatData:(CHEATS_LIST *)cheatData +{ + self = [super init]; + if(self == nil) + { + return self; + } + + if (cheatData == NULL) + { + // Allocate our own cheat item struct since we weren't provided with one. + internalData = (CHEATS_LIST *)malloc(sizeof(CHEATS_LIST)); + if (internalData == NULL) + { + [self release]; + return nil; + } + + data = internalData; + + self.enabled = NO; + self.cheatType = CHEAT_TYPE_INTERNAL; + self.freezeType = 0; + self.description = @""; + self.code = @""; + self.memAddress = 0x00000000; + self.bytes = 1; + self.value = 0; + } + else + { + internalData = NULL; + data = cheatData; + } + + if (iconInternalCheat == nil || iconActionReplay == nil || iconCodeBreaker == nil) + { + iconInternalCheat = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"AppIcon_DeSmuME" ofType:@"icns"]]; + iconActionReplay = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_ActionReplay_128x128" ofType:@"png"]]; + iconCodeBreaker = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_CodeBreaker_128x128" ofType:@"png"]]; + } + + pthread_mutex_init(&mutexData, NULL); + + willAdd = NO; + workingCopy = nil; + parent = nil; + + return self; +} + +- (void) dealloc +{ + [workingCopy release]; + workingCopy = nil; + + free(internalData); + internalData = NULL; + + pthread_mutex_destroy(&mutexData); + + [super dealloc]; +} + +- (CHEATS_LIST *) data +{ + pthread_mutex_lock(&mutexData); + CHEATS_LIST *returnData = data; + pthread_mutex_unlock(&mutexData); + + return returnData; +} + +- (void) setData:(CHEATS_LIST *)cheatData +{ + if (cheatData == NULL) + { + return; + } + + pthread_mutex_lock(&mutexData); + + data = cheatData; + + pthread_mutex_unlock(&mutexData); + + [self update]; + + if (workingCopy != nil) + { + pthread_mutex_lock(&mutexData); + + CHEATS_LIST *thisData = data; + CHEATS_LIST *workingData = workingCopy.data; + *workingData = *thisData; + + pthread_mutex_unlock(&mutexData); + + [workingCopy update]; + } +} + +- (BOOL) retainData +{ + BOOL result = YES; + + if (internalData == NULL) + { + internalData = (CHEATS_LIST *)malloc(sizeof(CHEATS_LIST)); + if (internalData == NULL) + { + result = NO; + return result; + } + } + + pthread_mutex_lock(&mutexData); + *internalData = *data; + data = internalData; + pthread_mutex_unlock(&mutexData); + + return result; +} + +- (BOOL) enabled +{ + return data->enabled; +} + +- (void) setEnabled:(BOOL)theState +{ + data->enabled = theState; + + if (workingCopy != nil) + { + workingCopy.enabled = theState; + } +} + +- (NSString *) description +{ + return [NSString stringWithCString:(const char *)&data->description[0] encoding:NSUTF8StringEncoding]; +} + +- (void) setDescription:(NSString *)desc +{ + if (desc == nil) + { + memset(&data->description[0], 0, sizeof(data->description)); + } + else + { + [desc getCString:&data->description[0] maxLength:sizeof(data->description) encoding:NSUTF8StringEncoding]; + } + + if (workingCopy != nil) + { + workingCopy.description = desc; + } +} + +- (char *) descriptionCString +{ + return &data->description[0]; +} + +- (NSInteger) cheatType +{ + return (NSInteger)data->type; +} + +- (void) setCheatType:(NSInteger)theType +{ + data->type = (u8)theType; + + switch (theType) + { + case CHEAT_TYPE_INTERNAL: + self.cheatTypeIcon = iconInternalCheat; + self.isSupportedCheatType = YES; + break; + + case CHEAT_TYPE_ACTION_REPLAY: + self.cheatTypeIcon = iconActionReplay; + self.isSupportedCheatType = YES; + break; + + case CHEAT_TYPE_CODE_BREAKER: + self.cheatTypeIcon = iconCodeBreaker; + self.isSupportedCheatType = NO; + break; + + default: + break; + } + + if (workingCopy != nil) + { + workingCopy.cheatType = theType; + } +} + +- (void) setCheatTypeIcon:(NSImage *)theIcon +{ + // Do nothing. This method exists for KVO compliance only. +} + +- (NSImage *) cheatTypeIcon +{ + NSImage *theIcon = nil; + + switch (self.cheatType) + { + case CHEAT_TYPE_INTERNAL: + theIcon = iconInternalCheat; + break; + + case CHEAT_TYPE_ACTION_REPLAY: + theIcon = iconActionReplay; + break; + + case CHEAT_TYPE_CODE_BREAKER: + theIcon = iconCodeBreaker; + break; + + default: + break; + } + + return theIcon; +} + +- (BOOL) isSupportedCheatType +{ + BOOL isSupported = YES; + + switch (self.cheatType) + { + case CHEAT_TYPE_INTERNAL: + case CHEAT_TYPE_ACTION_REPLAY: + isSupported = YES; + break; + + case CHEAT_TYPE_CODE_BREAKER: + isSupported = NO; + break; + + default: + break; + } + + return isSupported; +} + +- (void) setIsSupportedCheatType:(BOOL)isSupported +{ + // Do nothing. This method exists for KVO compliance only. +} + +- (NSInteger) freezeType +{ + return (NSInteger)data->freezeType; +} + +- (void) setFreezeType:(NSInteger)theType +{ + data->freezeType = (u8)theType; + + if (workingCopy != nil) + { + workingCopy.freezeType = theType; + } +} + +- (UInt8) bytes +{ + return (UInt8)(data->size + 1); +} + +- (void) setBytes:(UInt8)byteSize +{ + data->size = (u8)(byteSize - 1); + + if (workingCopy != nil) + { + workingCopy.bytes = byteSize; + } +} + +- (NSUInteger) codeCount +{ + return (NSUInteger)data->num; +} + +- (void) setCodeCount:(NSUInteger)count +{ + // Do nothing. This method exists for KVO compliance only. +} + +- (NSString *) code +{ + NSString *codeLine = @""; + NSString *cheatCodes = @""; + + NSUInteger numberCodes = self.codeCount; + if (numberCodes > MAX_XX_CODE) + { + return nil; + } + + for (NSUInteger i = 0; i < numberCodes; i++) + { + codeLine = [NSString stringWithFormat:@"%08X %08X\n", data->code[i][0], data->code[i][1]]; + cheatCodes = [cheatCodes stringByAppendingString:codeLine]; + } + + return cheatCodes; +} + +- (void) setCode:(NSString *)theCode +{ + if (theCode == nil) + { + return; + } + + size_t codeCStringSize = MAX_XX_CODE * 10 * 2 * sizeof(char); + char *codeCString = (char *)calloc(codeCStringSize, 1); + [theCode getCString:codeCString maxLength:codeCStringSize encoding:NSUTF8StringEncoding]; + + CHEATS::XXCodeFromString(data, codeCString); + + free(codeCString); + codeCString = NULL; + + self.codeCount = self.codeCount; + self.bytes = self.bytes; + + if (workingCopy != nil) + { + workingCopy.code = theCode; + } +} + +- (UInt32) memAddress +{ + if (self.cheatType != CHEAT_TYPE_INTERNAL) // Needs to be the Internal Cheat type + { + return 0; + } + + return (data->code[0][0] | 0x02000000); +} + +- (void) setMemAddress:(UInt32)theAddress +{ + if (self.cheatType != CHEAT_TYPE_INTERNAL) // Needs to be the Internal Cheat type + { + return; + } + + theAddress &= 0x00FFFFFF; + theAddress |= 0x02000000; + data->code[0][0] = theAddress; + + if (workingCopy != nil) + { + workingCopy.memAddress = theAddress; + } +} + +- (NSString *) memAddressString +{ + return [NSString stringWithFormat:@"0x%08X", self.memAddress]; +} + +- (void) setMemAddressString:(NSString *)addressString +{ + if (self.cheatType != CHEAT_TYPE_INTERNAL) // Needs to be the Internal Cheat type + { + return; + } + + u32 address = 0x00000000; + [[NSScanner scannerWithString:addressString] scanHexInt:&address]; + self.memAddress = address; + + if (workingCopy != nil) + { + workingCopy.memAddressString = addressString; + } +} + +- (NSString *) memAddressSixDigitString +{ + return [NSString stringWithFormat:@"%06X", (self.memAddress & 0x00FFFFFF)]; +} + +- (void) setMemAddressSixDigitString:(NSString *)addressString +{ + self.memAddressString = addressString; +} + +- (SInt64) value +{ + if (self.cheatType != CHEAT_TYPE_INTERNAL) // Needs to be the Internal Cheat type + { + return 0; + } + + return (data->code[0][1]); +} + +- (void) setValue:(SInt64)theValue +{ + if (self.cheatType != CHEAT_TYPE_INTERNAL) // Needs to be the Internal Cheat type + { + return; + } + + data->code[0][1] = (u32)theValue; + + if (workingCopy != nil) + { + workingCopy.value = theValue; + } +} + +- (void) update +{ + self.enabled = self.enabled; + self.description = self.description; + self.cheatType = self.cheatType; + self.freezeType = self.freezeType; + self.code = self.code; + self.bytes = self.bytes; + self.memAddress = self.memAddress; + self.value = self.value; +} + +- (CocoaDSCheatItem *) createWorkingCopy +{ + CocoaDSCheatItem *newWorkingCopy = nil; + + if (workingCopy != nil) + { + [workingCopy release]; + } + + newWorkingCopy = [[CocoaDSCheatItem alloc] initWithCheatData:self.data]; + [newWorkingCopy retainData]; + newWorkingCopy.parent = self; + workingCopy = newWorkingCopy; + + return newWorkingCopy; +} + +- (void) destroyWorkingCopy +{ + [workingCopy release]; + workingCopy = nil; +} + +- (void) mergeFromWorkingCopy +{ + if (workingCopy == nil) + { + return; + } + + CHEATS_LIST *thisData = self.data; + CHEATS_LIST *workingData = workingCopy.data; + + pthread_mutex_lock(&mutexData); + *thisData = *workingData; + pthread_mutex_unlock(&mutexData); + + [self update]; +} + +- (void) mergeToParent +{ + if (parent == nil) + { + return; + } + + CHEATS_LIST *thisData = self.data; + CHEATS_LIST *parentData = parent.data; + + pthread_mutex_lock(&mutexData); + *parentData = *thisData; + pthread_mutex_unlock(&mutexData); + + [parent update]; +} + +- (void) setDataWithDictionary:(NSDictionary *)dataDict +{ + if (dataDict == nil) + { + return; + } + + NSNumber *enabledNumber = (NSNumber *)[dataDict valueForKey:@"enabled"]; + if (enabledNumber != nil) + { + self.enabled = [enabledNumber boolValue]; + } + + NSString *descriptionString = (NSString *)[dataDict valueForKey:@"description"]; + if (descriptionString != nil) + { + self.description = descriptionString; + } + + NSNumber *freezeTypeNumber = (NSNumber *)[dataDict valueForKey:@"freezeType"]; + if (freezeTypeNumber != nil) + { + self.freezeType = [freezeTypeNumber integerValue]; + } + + NSNumber *cheatTypeNumber = (NSNumber *)[dataDict valueForKey:@"cheatType"]; + if (cheatTypeNumber != nil) + { + self.cheatType = [cheatTypeNumber integerValue]; + } + + if (self.cheatType == CHEAT_TYPE_INTERNAL) + { + NSNumber *bytesNumber = (NSNumber *)[dataDict valueForKey:@"bytes"]; + if (bytesNumber != nil) + { + self.bytes = [bytesNumber unsignedIntegerValue]; + } + + NSNumber *memAddressNumber = (NSNumber *)[dataDict valueForKey:@"memAddress"]; + if (memAddressNumber != nil) + { + self.memAddress = [memAddressNumber unsignedIntegerValue]; + } + + NSNumber *valueNumber = (NSNumber *)[dataDict valueForKey:@"value"]; + if (valueNumber != nil) + { + self.value = [valueNumber integerValue]; + } + } + else + { + NSString *codeString = (NSString *)[dataDict valueForKey:@"code"]; + if (codeString != nil) + { + self.code = codeString; + } + } +} + +- (NSDictionary *) dataDictionary +{ + return [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:self.enabled], @"enabled", + [NSNumber numberWithInteger:self.cheatType], @"cheatType", + self.description, @"description", + [NSNumber numberWithInteger:self.freezeType], @"freezeType", + [NSNumber numberWithUnsignedInteger:self.codeCount], @"codeCount", + [NSNumber numberWithUnsignedInteger:self.bytes], @"bytes", + self.memAddress, @"memAddress", + self.memAddressString, @"memAddressString", + [NSNumber numberWithInteger:self.value], @"value", + self.code, @"code", + [NSNumber numberWithBool:self.isSupportedCheatType], @"isSupportedCheatType", + nil]; +} + +@end + + +@implementation CocoaDSCheatManager + +@synthesize listData; +@synthesize list; +@synthesize cdsCore; +@synthesize untitledCount; +@synthesize dbTitle; +@synthesize dbDate; + +- (id)init +{ + return [self initWithURL:nil fileURL:nil listData:nil]; +} + +- (id) initWithCore:(CocoaDSCore *)core +{ + return [self initWithURL:core fileURL:nil listData:nil]; +} + +- (id) initWithURL:(CocoaDSCore *)core fileURL:(NSURL *)fileURL +{ + return [self initWithURL:core fileURL:fileURL listData:nil]; +} + +- (id) initWithExistingList:(CocoaDSCore *)core listData:(CHEATS *)cheatList +{ + return [self initWithURL:core fileURL:nil listData:cheatList]; +} + +- (id) initWithURL:(CocoaDSCore *)core fileURL:(NSURL *)fileURL listData:(CHEATS *)cheatList +{ + self = [super init]; + if(self == nil) + { + return self; + } + + if (cheatList == nil) + { + CHEATS *newListData = new CHEATS(); + if (newListData == nil) + { + [self release]; + return nil; + } + + listData = newListData; + } + else + { + listData = cheatList; + } + + if (fileURL != nil) + { + listData->init((char *)[[fileURL path] cStringUsingEncoding:NSUTF8StringEncoding]); + list = [[CocoaDSCheatManager cheatListWithListObject:listData] retain]; + } + else + { + list = [[NSMutableArray alloc] initWithCapacity:100]; + if (list == nil) + { + delete listData; + [self release]; + return nil; + } + } + + cdsCore = core; + untitledCount = 0; + dbTitle = nil; + dbDate = nil; + + return self; +} + +- (void)dealloc +{ + [self.list release]; + delete self.listData; + [super dealloc]; +} + +- (BOOL) add:(CocoaDSCheatItem *)cheatItem +{ + BOOL result = NO; + + if (cheatItem == nil) + { + return result; + } + + // Get the current pointer to the raw cheat list data. We will need it later + // to check if the list got reallocated. + CHEATS_LIST *cheatListData = self.listData->getListPtr(); + + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + + switch (cheatItem.cheatType) + { + case CHEAT_TYPE_INTERNAL: + result = self.listData->add(cheatItem.bytes - 1, cheatItem.memAddress, cheatItem.value, [cheatItem descriptionCString], cheatItem.enabled); + break; + + case CHEAT_TYPE_ACTION_REPLAY: + { + char *cheatCodes = (char *)[cheatItem.code cStringUsingEncoding:NSUTF8StringEncoding]; + if (cheatCodes != nil) + { + result = self.listData->add_AR(cheatCodes, [cheatItem descriptionCString], cheatItem.enabled); + } + break; + } + + case CHEAT_TYPE_CODE_BREAKER: + { + char *cheatCodes = (char *)[cheatItem.code cStringUsingEncoding:NSUTF8StringEncoding]; + if (cheatCodes != nil) + { + result = self.listData->add_CB(cheatCodes, [cheatItem descriptionCString], cheatItem.enabled); + } + break; + } + + default: + break; + } + + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + if (![self.list containsObject:cheatItem]) + { + [self.list addObject:cheatItem]; + } + + // Adding a new item may cause the raw list data to get reallocated, which + // will break the data pointers. So check for reallocation, and if it occurs, + // reset the data pointers for each item. + if (cheatListData != self.listData->getListPtr()) + { + NSUInteger listCount = self.listData->getSize(); + for (NSUInteger i = 0; i < listCount; i++) + { + CocoaDSCheatItem *itemInList = (CocoaDSCheatItem *)[self.list objectAtIndex:i]; + itemInList.data = self.listData->getItemByIndex(i); + } + } + else + { + cheatItem.data = self.listData->getItemByIndex(self.listData->getSize() - 1); + } + + return result; +} + +- (void) remove:(CocoaDSCheatItem *)cheatItem +{ + if (cheatItem == nil) + { + return; + } + + NSUInteger selectionIndex = [self.list indexOfObject:cheatItem]; + if (selectionIndex == NSNotFound) + { + return; + } + + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + self.listData->remove(selectionIndex); + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + // Removing an item from the raw cheat list data shifts all higher elements + // by one, so we need to do the same. + NSUInteger listCount = self.listData->getSize(); + for (NSUInteger i = selectionIndex; i < listCount; i++) + { + [(CocoaDSCheatItem *)[self.list objectAtIndex:(i + 1)] setData:self.listData->getItemByIndex(i)]; + } + + cheatItem.data = nil; + [self.list removeObject:cheatItem]; +} + +- (BOOL) update:(CocoaDSCheatItem *)cheatItem +{ + BOOL result = NO; + + if (cheatItem == nil) + { + return result; + } + + NSUInteger selectionIndex = [self.list indexOfObject:cheatItem]; + if (selectionIndex == NSNotFound) + { + return result; + } + + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + + switch (cheatItem.cheatType) + { + case CHEAT_TYPE_INTERNAL: + result = self.listData->update(cheatItem.bytes - 1, cheatItem.memAddress, cheatItem.value, [cheatItem descriptionCString], cheatItem.enabled, selectionIndex); + break; + + case CHEAT_TYPE_ACTION_REPLAY: + { + char *cheatCodes = (char *)[cheatItem.code cStringUsingEncoding:NSUTF8StringEncoding]; + if (cheatCodes != nil) + { + result = self.listData->update_AR(cheatCodes, [cheatItem descriptionCString], cheatItem.enabled, selectionIndex); + } + break; + } + + case CHEAT_TYPE_CODE_BREAKER: + { + char *cheatCodes = (char *)[cheatItem.code cStringUsingEncoding:NSUTF8StringEncoding]; + if (cheatCodes != nil) + { + result = self.listData->update_CB(cheatCodes, [cheatItem descriptionCString], cheatItem.enabled, selectionIndex); + } + break; + } + + default: + break; + } + + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + [cheatItem update]; + + return result; +} + +- (BOOL) save +{ + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + BOOL result = self.listData->save(); + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + return result; +} + +- (NSMutableArray *) cheatListFromDatabase:(NSURL *)fileURL errorCode:(NSInteger *)error +{ + NSMutableArray *newDBList = nil; + + if (fileURL == nil) + { + return newDBList; + } + + CHEATSEXPORT *exporter = new CHEATSEXPORT(); + + BOOL result = exporter->load((char *)[[fileURL path] cStringUsingEncoding:NSUTF8StringEncoding]); + if (!result) + { + if (error != nil) + { + *error = exporter->getErrorCode(); + } + } + else + { + self.dbTitle = [NSString stringWithCString:(const char *)exporter->gametitle encoding:NSUTF8StringEncoding]; + self.dbDate = [NSString stringWithCString:(const char *)exporter->date encoding:NSUTF8StringEncoding]; + newDBList = [CocoaDSCheatManager cheatListWithItemStructArray:exporter->getCheats() count:exporter->getCheatsNum()]; + if (newDBList != nil) + { + for (CocoaDSCheatItem *cheatItem in newDBList) + { + cheatItem.willAdd = NO; + [cheatItem retainData]; + } + } + } + + delete exporter; + exporter = nil; + + return newDBList; +} + +- (void) applyInternalCheat:(CocoaDSCheatItem *)cheatItem +{ + if (cheatItem == nil) + { + return; + } + + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + [CocoaDSCheatManager applyInternalCheatWithItem:cheatItem]; + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); +} + ++ (void) setMasterCheatList:(CocoaDSCheatManager *)cheatListManager +{ + cheats = cheatListManager.listData; +} + ++ (void) applyInternalCheatWithItem:(CocoaDSCheatItem *)cheatItem +{ + [CocoaDSCheatManager applyInternalCheatWithAddress:cheatItem.memAddress value:cheatItem.value bytes:cheatItem.bytes]; +} + ++ (void) applyInternalCheatWithAddress:(UInt32)address value:(UInt32)value bytes:(NSUInteger)bytes +{ + address &= 0x00FFFFFF; + address |= 0x02000000; + + switch (bytes) + { + case 1: + { + u8 oneByteValue = (u8)(value & 0x000000FF); + _MMU_write08(address, oneByteValue); + break; + } + + case 2: + { + u16 twoByteValue = (u16)(value & 0x0000FFFF); + _MMU_write16(address, twoByteValue); + break; + } + + case 3: + { + u32 threeByteWithExtraValue = _MMU_read32(address); + threeByteWithExtraValue &= 0xFF000000; + threeByteWithExtraValue |= (value & 0x00FFFFFF); + _MMU_write32(address, threeByteWithExtraValue); + break; + } + + case 4: + _MMU_write32(address, value); + break; + + default: + break; + } +} + ++ (NSMutableArray *) cheatListWithListObject:(CHEATS *)cheatList +{ + if (cheatList == nil) + { + return nil; + } + + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:100]; + if (newList == nil) + { + return newList; + } + + u32 itemCount = cheatList->getSize(); + for (u32 i = 0; i < itemCount; i++) + { + [newList addObject:[[[CocoaDSCheatItem alloc] initWithCheatData:cheatList->getItemByIndex(i)] autorelease]]; + } + + return newList; +} + ++ (NSMutableArray *) cheatListWithItemStructArray:(CHEATS_LIST *)cheatItemArray count:(NSUInteger)itemCount +{ + if (cheatItemArray == nil) + { + return nil; + } + + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:100]; + if (newList == nil) + { + return newList; + } + + for (NSUInteger i = 0; i < itemCount; i++) + { + [newList addObject:[[[CocoaDSCheatItem alloc] initWithCheatData:cheatItemArray + i] autorelease]]; + } + + return newList; +} + ++ (NSMutableDictionary *) cheatItemWithType:(NSInteger)cheatTypeID description:(NSString *)description +{ + BOOL isSupported = YES; + + if (cheatTypeID == CHEAT_TYPE_CODE_BREAKER) + { + isSupported = NO; + } + + return [NSMutableDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:NO], @"enabled", + [NSNumber numberWithInteger:cheatTypeID], @"cheatType", + description, @"description", + [NSNumber numberWithInteger:0], @"freezeType", + [NSNumber numberWithUnsignedInteger:0], @"codeCount", + [NSNumber numberWithUnsignedInteger:4], @"bytes", + [NSNumber numberWithInteger:0], @"memAddress", + @"0x00000000", @"memAddressString", + [NSNumber numberWithInteger:0], @"value", + @"", @"code", + [NSNumber numberWithBool:isSupported], @"isSupportedCheatType", + nil]; +} + +@end + +@implementation CocoaDSCheatSearch + +@synthesize listData; +@synthesize addressList; +@synthesize cdsCore; +@synthesize searchCount; + +- (id)init +{ + return [self initWithCore:nil]; +} + +- (id) initWithCore:(CocoaDSCore *)core +{ + self = [super init]; + if(self == nil) + { + return self; + } + + CHEATSEARCH *newListData = new CHEATSEARCH(); + if (newListData == nil) + { + [self release]; + return nil; + } + + listData = newListData; + addressList = nil; + cdsCore = core; + searchCount = 0; + + return self; +} + +- (void)dealloc +{ + [self reset]; + delete self.listData; + [super dealloc]; +} + +- (NSUInteger) runExactValueSearch:(NSInteger)value byteSize:(UInt8)byteSize signType:(NSInteger)signType +{ + NSUInteger itemCount = 0; + BOOL listExists = YES; + + if (searchCount == 0) + { + byteSize--; + + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + listExists = (NSUInteger)self.listData->start((u8)CHEATSEARCH_SEARCHSTYLE_EXACT_VALUE, (u8)byteSize, (u8)signType); + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + } + + if (listExists) + { + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + itemCount = (NSUInteger)self.listData->search((u32)value); + NSMutableArray *newAddressList = [[CocoaDSCheatSearch addressListWithListObject:self.listData maxItems:100] retain]; + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + [addressList release]; + addressList = newAddressList; + searchCount++; + } + + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"com.DeSmuME.DeSmuME.searchDidFinish" object:self userInfo:nil]; + + return itemCount; +} + +- (void) runExactValueSearchOnThread:(id)object +{ + CocoaDSCheatSearchParams *searchParams = (CocoaDSCheatSearchParams *)object; + [self runExactValueSearch:searchParams.value byteSize:searchParams.byteSize signType:searchParams.signType]; +} + +- (NSUInteger) runComparativeSearch:(NSInteger)typeID byteSize:(UInt8)byteSize signType:(NSInteger)signType +{ + NSUInteger itemCount = 0; + BOOL listExists = YES; + + if (searchCount == 0) + { + byteSize--; + + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + listExists = (NSUInteger)self.listData->start((u8)CHEATSEARCH_SEARCHSTYLE_COMPARATIVE, (u8)byteSize, (u8)signType); + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + addressList = nil; + } + else + { + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + itemCount = (NSUInteger)self.listData->search((u8)typeID); + NSMutableArray *newAddressList = [[CocoaDSCheatSearch addressListWithListObject:self.listData maxItems:100] retain]; + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + [addressList release]; + addressList = newAddressList; + } + + if (listExists) + { + searchCount++; + } + + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"com.DeSmuME.DeSmuME.searchDidFinish" object:self userInfo:nil]; + + return itemCount; +} + +- (void) runComparativeSearchOnThread:(id)object +{ + CocoaDSCheatSearchParams *searchParams = (CocoaDSCheatSearchParams *)object; + [self runComparativeSearch:searchParams.comparativeSearchType byteSize:searchParams.byteSize signType:searchParams.signType]; +} + +- (void) reset +{ + pthread_mutex_lock(self.cdsCore.mutexCoreExecute); + self.listData->close(); + pthread_mutex_unlock(self.cdsCore.mutexCoreExecute); + + searchCount = 0; + [addressList release]; + addressList = nil; +} + ++ (NSMutableArray *) addressListWithListObject:(CHEATSEARCH *)addressList maxItems:(NSUInteger)maxItemCount +{ + if (addressList == nil) + { + return nil; + } + + if (maxItemCount == 0) + { + maxItemCount = 1024 * 1024 * 4; + } + + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:maxItemCount]; + if (newList == nil) + { + return newList; + } + + NSMutableDictionary *newItem = nil; + NSUInteger listCount = 0; + u32 address; + u32 value; + + addressList->getListReset(); + while (addressList->getList(&address, &value) && listCount < maxItemCount) + { + newItem = [NSMutableDictionary dictionaryWithObjectsAndKeys: + [NSString stringWithFormat:@"0x02%06X", address], @"addressString", + [NSNumber numberWithUnsignedInteger:value], @"value", + nil]; + + [newList addObject:newItem]; + listCount++; + } + + return newList; +} + +@end + +@implementation CocoaDSCheatSearchParams + +@synthesize comparativeSearchType; +@synthesize value; +@synthesize byteSize; +@synthesize signType; + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return self; + } + + comparativeSearchType = CHEATSEARCH_COMPARETYPE_EQUALS_TO; + value = 1; + byteSize = 4; + signType = CHEATSEARCH_UNSIGNED; + + return self; +} + +@end diff --git a/desmume/src/cocoa/cocoa_core.h b/desmume/src/cocoa/cocoa_core.h new file mode 100644 index 000000000..acb36bee4 --- /dev/null +++ b/desmume/src/cocoa/cocoa_core.h @@ -0,0 +1,123 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include +#include +#import "cocoa_util.h" + + +@class CocoaDSRom; +@class CocoaDSController; +@class CocoaDSFirmware; +@class CocoaDSOutput; + +typedef struct +{ + void *cdsCore; + int state; + bool isFrameSkipEnabled; + unsigned int frameCount; + unsigned int framesToSkip; + NSTimeInterval calcTimeBudget; + bool exitThread; + pthread_mutex_t *mutexCoreExecute; + pthread_mutex_t mutexThreadExecute; + pthread_cond_t condThreadExecute; +} CoreThreadParam; + +@interface CocoaDSCore : CocoaDSThread +{ + CocoaDSController *cdsController; + CocoaDSFirmware *cdsFirmware; + NSMutableArray *cdsOutputList; + + pthread_t coreThread; + CoreThreadParam threadParam; + + NSInteger prevCoreState; + BOOL isSpeedLimitEnabled; + CGFloat speedScalar; + + NSUInteger emulationFlags; + BOOL emuFlagAdvancedBusLevelTiming; + BOOL emuFlagUseExternalBios; + BOOL emuFlagEmulateBiosInterrupts; + BOOL emuFlagPatchDelayLoop; + BOOL emuFlagUseExternalFirmware; + BOOL emuFlagFirmwareBoot; + BOOL emuFlagDebugConsole; + BOOL emuFlagEmulateEnsata; + + pthread_mutex_t *mutexCoreExecute; + OSSpinLock spinlockMasterExecute; + OSSpinLock spinlockExecutionChange; + OSSpinLock spinlockCheatEnableFlag; + OSSpinLock spinlockEmulationFlags; +} + +@property (assign) CocoaDSController *cdsController; +@property (assign) CocoaDSFirmware *cdsFirmware; +@property (assign) NSMutableArray *cdsOutputList; + +@property (assign) BOOL masterExecute; +@property (assign) BOOL isFrameSkipEnabled; +@property (assign) NSInteger coreState; + +@property (assign) BOOL isSpeedLimitEnabled; +@property (assign) BOOL isCheatingEnabled; +@property (assign) CGFloat speedScalar; + +@property (assign) NSUInteger emulationFlags; +@property (assign) BOOL emuFlagAdvancedBusLevelTiming; +@property (assign) BOOL emuFlagUseExternalBios; +@property (assign) BOOL emuFlagEmulateBiosInterrupts; +@property (assign) BOOL emuFlagPatchDelayLoop; +@property (assign) BOOL emuFlagUseExternalFirmware; +@property (assign) BOOL emuFlagFirmwareBoot; +@property (assign) BOOL emuFlagDebugConsole; +@property (assign) BOOL emuFlagEmulateEnsata; + +@property (assign) NSURL *arm9ImageURL; +@property (assign) NSURL *arm7ImageURL; +@property (assign) NSURL *firmwareImageURL; + +@property (readonly) pthread_mutex_t *mutexCoreExecute; + ++ (BOOL) startupCore; ++ (void) shutdownCore; ++ (BOOL) isCoreStarted; + +- (BOOL) ejectCardFlag; +- (void) setEjectCardFlag; +- (void) toggleEjectCard; + +- (void) changeRomSaveType:(NSInteger)saveTypeID; +- (void) changeExecutionSpeed; + +- (void) restoreCoreState; +- (void) reset; + +- (void) addOutput:(CocoaDSOutput *)theOutput; +- (void) removeOutput:(CocoaDSOutput *)theOutput; +- (void) removeAllOutputs; + +@end + +void* RunCoreThread(void *arg); +void CoreFrameSkip(NSTimeInterval timeBudget, NSTimeInterval timeRemaining, unsigned int *outFramesToSkip); diff --git a/desmume/src/cocoa/cocoa_core.mm b/desmume/src/cocoa/cocoa_core.mm new file mode 100644 index 000000000..1899f4462 --- /dev/null +++ b/desmume/src/cocoa/cocoa_core.mm @@ -0,0 +1,709 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_core.h" +#import "cocoa_input.h" +#import "cocoa_firmware.h" +#import "cocoa_globals.h" +#import "cocoa_output.h" +#import "cocoa_rom.h" +#import "cocoa_util.h" + +#include "../NDSSystem.h" +#undef BOOL + + +//accessed from other files +volatile bool execute = true; + +@implementation CocoaDSCore + +@synthesize cdsController; +@synthesize cdsFirmware; +@synthesize cdsOutputList; + +@dynamic masterExecute; +@dynamic isFrameSkipEnabled; +@dynamic coreState; +@dynamic isSpeedLimitEnabled; +@dynamic isCheatingEnabled; +@dynamic speedScalar; + +@dynamic emulationFlags; +@synthesize emuFlagAdvancedBusLevelTiming; +@synthesize emuFlagUseExternalBios; +@synthesize emuFlagEmulateBiosInterrupts; +@synthesize emuFlagPatchDelayLoop; +@synthesize emuFlagUseExternalFirmware; +@synthesize emuFlagFirmwareBoot; +@synthesize emuFlagDebugConsole; +@synthesize emuFlagEmulateEnsata; + +@dynamic arm9ImageURL; +@dynamic arm7ImageURL; +@dynamic firmwareImageURL; + +@synthesize mutexCoreExecute; + +static BOOL isCoreStarted = NO; + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return self; + } + + cdsController = nil; + cdsFirmware = nil; + cdsOutputList = [[NSMutableArray alloc] initWithCapacity:32]; + + emulationFlags = EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK; + emuFlagAdvancedBusLevelTiming = YES; + emuFlagUseExternalBios = NO; + emuFlagEmulateBiosInterrupts = NO; + emuFlagPatchDelayLoop = NO; + emuFlagUseExternalFirmware = NO; + emuFlagFirmwareBoot = NO; + emuFlagDebugConsole = NO; + emuFlagEmulateEnsata = NO; + + mutexCoreExecute = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); + pthread_mutex_init(mutexCoreExecute, NULL); + spinlockMasterExecute = OS_SPINLOCK_INIT; + spinlockExecutionChange = OS_SPINLOCK_INIT; + spinlockCheatEnableFlag = OS_SPINLOCK_INIT; + spinlockEmulationFlags = OS_SPINLOCK_INIT; + + isSpeedLimitEnabled = YES; + speedScalar = SPEED_SCALAR_NORMAL; + prevCoreState = CORESTATE_PAUSE; + + threadParam.cdsCore = self; + threadParam.state = CORESTATE_PAUSE; + threadParam.isFrameSkipEnabled = true; + threadParam.frameCount = 0; + threadParam.framesToSkip = 0; + threadParam.calcTimeBudget = (NSTimeInterval)(DS_SECONDS_PER_FRAME / speedScalar); + threadParam.exitThread = false; + threadParam.mutexCoreExecute = mutexCoreExecute; + pthread_mutex_init(&threadParam.mutexThreadExecute, NULL); + pthread_cond_init(&threadParam.condThreadExecute, NULL); + pthread_create(&coreThread, NULL, &RunCoreThread, &threadParam); + + return self; +} + +- (void)dealloc +{ + [self setCoreState:CORESTATE_PAUSE]; + + // Exit the thread. + if (self.thread != nil) + { + self.threadExit = YES; + + // Wait until the thread has shut down. + while (self.thread != nil) + { + [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]; + } + } + + pthread_mutex_lock(&threadParam.mutexThreadExecute); + threadParam.exitThread = true; + pthread_cond_signal(&threadParam.condThreadExecute); + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + pthread_join(coreThread, NULL); + coreThread = nil; + pthread_mutex_destroy(&threadParam.mutexThreadExecute); + pthread_cond_destroy(&threadParam.condThreadExecute); + + pthread_mutex_destroy(self.mutexCoreExecute); + free(self.mutexCoreExecute); + mutexCoreExecute = nil; + + [super dealloc]; +} + ++ (BOOL) startupCore +{ + NSInteger result = -1; + + if (isCoreStarted) + { + return isCoreStarted; + } + + result = NDS_Init(); + if (result == -1) + { + isCoreStarted = NO; + return isCoreStarted; + } + + isCoreStarted = YES; + + return isCoreStarted; +} + ++ (void) shutdownCore +{ + if (isCoreStarted) + { + NDS_DeInit(); + isCoreStarted = NO; + } +} + ++ (BOOL) isCoreStarted +{ + return isCoreStarted; +} + +- (void) setMasterExecute:(BOOL)theState +{ + OSSpinLockLock(&spinlockMasterExecute); + + if (theState) + { + execute = true; + } + else + { + execute = false; + } + + OSSpinLockUnlock(&spinlockMasterExecute); +} + +- (BOOL) masterExecute +{ + BOOL theState = NO; + + OSSpinLockLock(&spinlockMasterExecute); + + if (execute) + { + theState = YES; + } + + OSSpinLockUnlock(&spinlockMasterExecute); + + return theState; +} + +- (void) setIsFrameSkipEnabled:(BOOL)theState +{ + pthread_mutex_lock(&threadParam.mutexThreadExecute); + + if (theState) + { + threadParam.isFrameSkipEnabled = true; + } + else + { + threadParam.isFrameSkipEnabled = false; + } + + pthread_mutex_unlock(&threadParam.mutexThreadExecute); +} + +- (BOOL) isFrameSkipEnabled +{ + BOOL theState = NO; + + pthread_mutex_lock(&threadParam.mutexThreadExecute); + bool cState = threadParam.isFrameSkipEnabled; + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + if (cState) + { + theState = YES; + } + + return theState; +} + +- (void) setSpeedScalar:(CGFloat)scalar +{ + OSSpinLockLock(&spinlockExecutionChange); + speedScalar = scalar; + OSSpinLockUnlock(&spinlockExecutionChange); + [self changeExecutionSpeed]; +} + +- (CGFloat) speedScalar +{ + OSSpinLockLock(&spinlockExecutionChange); + CGFloat scalar = speedScalar; + OSSpinLockUnlock(&spinlockExecutionChange); + + return scalar; +} + +- (void) setIsSpeedLimitEnabled:(BOOL)theState +{ + OSSpinLockLock(&spinlockExecutionChange); + isSpeedLimitEnabled = theState; + OSSpinLockUnlock(&spinlockExecutionChange); + [self changeExecutionSpeed]; +} + +- (BOOL) isSpeedLimitEnabled +{ + OSSpinLockLock(&spinlockExecutionChange); + BOOL enabled = isSpeedLimitEnabled; + OSSpinLockUnlock(&spinlockExecutionChange); + + return enabled; +} + +- (void) setIsCheatingEnabled:(BOOL)theState +{ + OSSpinLockLock(&spinlockCheatEnableFlag); + + if (theState) + { + CommonSettings.cheatsDisable = false; + } + else + { + CommonSettings.cheatsDisable = true; + } + + OSSpinLockUnlock(&spinlockCheatEnableFlag); +} + +- (BOOL) isCheatingEnabled +{ + BOOL theState = YES; + + OSSpinLockLock(&spinlockCheatEnableFlag); + + if (CommonSettings.cheatsDisable) + { + theState = NO; + } + + OSSpinLockUnlock(&spinlockCheatEnableFlag); + + return theState; +} + +- (void) setEmulationFlags:(NSUInteger)theFlags +{ + OSSpinLockLock(&spinlockEmulationFlags); + emulationFlags = theFlags; + OSSpinLockUnlock(&spinlockEmulationFlags); + + pthread_mutex_lock(self.mutexCoreExecute); + + if (theFlags & EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK) + { + self.emuFlagAdvancedBusLevelTiming = YES; + CommonSettings.advanced_timing = true; + } + else + { + self.emuFlagAdvancedBusLevelTiming = NO; + CommonSettings.advanced_timing = false; + } + + if (theFlags & EMULATION_ENSATA_MASK) + { + self.emuFlagEmulateEnsata = YES; + CommonSettings.EnsataEmulation = true; + } + else + { + self.emuFlagEmulateEnsata = NO; + CommonSettings.EnsataEmulation = false; + } + + if (theFlags & EMULATION_USE_EXTERNAL_BIOS_MASK) + { + self.emuFlagUseExternalBios = YES; + CommonSettings.UseExtBIOS = true; + } + else + { + self.emuFlagUseExternalBios = NO; + CommonSettings.UseExtBIOS = false; + } + + if (theFlags & EMULATION_BIOS_SWI_MASK) + { + self.emuFlagEmulateBiosInterrupts = YES; + CommonSettings.SWIFromBIOS = true; + } + else + { + self.emuFlagEmulateBiosInterrupts = NO; + CommonSettings.SWIFromBIOS = false; + } + + if (theFlags & EMULATION_PATCH_DELAY_LOOP_MASK) + { + self.emuFlagPatchDelayLoop = YES; + CommonSettings.PatchSWI3 = true; + } + else + { + self.emuFlagPatchDelayLoop = NO; + CommonSettings.PatchSWI3 = false; + } + + if (theFlags & EMULATION_USE_EXTERNAL_FIRMWARE_MASK) + { + self.emuFlagUseExternalFirmware = YES; + CommonSettings.UseExtFirmware = true; + } + else + { + self.emuFlagUseExternalFirmware = NO; + CommonSettings.UseExtFirmware = false; + } + + if (theFlags & EMULATION_BOOT_FROM_FIRMWARE_MASK) + { + self.emuFlagFirmwareBoot = YES; + CommonSettings.BootFromFirmware = true; + } + else + { + self.emuFlagFirmwareBoot = NO; + CommonSettings.BootFromFirmware = false; + } + + if (theFlags & EMULATION_DEBUG_CONSOLE_MASK) + { + self.emuFlagDebugConsole = YES; + CommonSettings.DebugConsole = true; + } + else + { + self.emuFlagDebugConsole = NO; + CommonSettings.DebugConsole = false; + } + + pthread_mutex_unlock(self.mutexCoreExecute); +} + +- (NSUInteger) emulationFlags +{ + OSSpinLockLock(&spinlockEmulationFlags); + NSUInteger theFlags = emulationFlags; + OSSpinLockUnlock(&spinlockEmulationFlags); + + return theFlags; +} + +- (void) setCoreState:(NSInteger)coreState +{ + if (threadParam.state == CORESTATE_PAUSE) + { + prevCoreState = CORESTATE_PAUSE; + } + else + { + prevCoreState = CORESTATE_EXECUTE; + } + + pthread_mutex_lock(&threadParam.mutexThreadExecute); + threadParam.state = coreState; + pthread_cond_signal(&threadParam.condThreadExecute); + pthread_mutex_unlock(&threadParam.mutexThreadExecute); +} + +- (NSInteger) coreState +{ + pthread_mutex_lock(&threadParam.mutexThreadExecute); + NSInteger theState = threadParam.state; + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + return theState; +} + +- (void) setArm9ImageURL:(NSURL *)fileURL +{ + if (fileURL != nil) + { + strlcpy(CommonSettings.ARM9BIOS, [[fileURL path] cStringUsingEncoding:NSUTF8StringEncoding], sizeof(CommonSettings.ARM9BIOS)); + } + else + { + memset(CommonSettings.ARM9BIOS, 0, sizeof(CommonSettings.ARM9BIOS)); + } +} + +- (NSURL *) arm9ImageURL +{ + return [NSURL fileURLWithPath:[NSString stringWithCString:CommonSettings.ARM9BIOS encoding:NSUTF8StringEncoding]]; +} + +- (void) setArm7ImageURL:(NSURL *)fileURL +{ + if (fileURL != nil) + { + strlcpy(CommonSettings.ARM7BIOS, [[fileURL path] cStringUsingEncoding:NSUTF8StringEncoding], sizeof(CommonSettings.ARM7BIOS)); + } + else + { + memset(CommonSettings.ARM7BIOS, 0, sizeof(CommonSettings.ARM7BIOS)); + } +} + +- (NSURL *) arm7ImageURL +{ + return [NSURL fileURLWithPath:[NSString stringWithCString:CommonSettings.ARM7BIOS encoding:NSUTF8StringEncoding]]; +} + +- (void) setFirmwareImageURL:(NSURL *)fileURL +{ + if (fileURL != nil) + { + strlcpy(CommonSettings.Firmware, [[fileURL path] cStringUsingEncoding:NSUTF8StringEncoding], sizeof(CommonSettings.Firmware)); + } + else + { + memset(CommonSettings.Firmware, 0, sizeof(CommonSettings.Firmware)); + } +} + +- (NSURL *) firmwareImageURL +{ + return [NSURL fileURLWithPath:[NSString stringWithCString:CommonSettings.Firmware encoding:NSUTF8StringEncoding]]; +} + +- (void) setEjectCardFlag +{ + if (nds.cardEjected) + { + self.emulationFlags = self.emulationFlags | EMULATION_CARD_EJECT_MASK; + return; + } + + self.emulationFlags = self.emulationFlags & ~EMULATION_CARD_EJECT_MASK; +} + +- (BOOL) ejectCardFlag +{ + [self setEjectCardFlag]; + if (nds.cardEjected) + { + return YES; + } + + return NO; +} + +- (void) toggleEjectCard +{ + NDS_ToggleCardEject(); + [self setEjectCardFlag]; +} + +- (void) changeRomSaveType:(NSInteger)saveTypeID +{ + pthread_mutex_lock(self.mutexCoreExecute); + [CocoaDSRom changeRomSaveType:saveTypeID]; + pthread_mutex_unlock(self.mutexCoreExecute); +} + +- (void) changeExecutionSpeed +{ + if (self.isSpeedLimitEnabled) + { + CGFloat theSpeed = self.speedScalar; + if(theSpeed <= SPEED_SCALAR_MIN) + { + theSpeed = SPEED_SCALAR_MIN; + } + + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + threadParam.calcTimeBudget = (NSTimeInterval)(DS_SECONDS_PER_FRAME / theSpeed); + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + } + else + { + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + threadParam.calcTimeBudget = 0.0; + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + } +} + +- (void) restoreCoreState +{ + [self setCoreState:prevCoreState]; +} + +- (void) reset +{ + [self setCoreState:CORESTATE_PAUSE]; + + pthread_mutex_lock(&threadParam.mutexThreadExecute); + NDS_Reset(); + pthread_mutex_unlock(&threadParam.mutexThreadExecute); + + [self restoreCoreState]; + self.masterExecute = YES; +} + +- (void) addOutput:(CocoaDSOutput *)theOutput +{ + [self.cdsOutputList addObject:theOutput]; +} + +- (void) removeOutput:(CocoaDSOutput *)theOutput +{ + [self.cdsOutputList removeObject:theOutput]; +} + +- (void) removeAllOutputs +{ + [self.cdsOutputList removeAllObjects]; +} + +- (void) runThread:(id)object +{ + [CocoaDSCore startupCore]; + [super runThread:object]; + [CocoaDSCore shutdownCore]; +} + +@end + +void* RunCoreThread(void *arg) +{ + CoreThreadParam *param = (CoreThreadParam *)arg; + CocoaDSCore *cdsCore = (CocoaDSCore *)param->cdsCore; + NSMutableArray *cdsOutputList = [cdsCore cdsOutputList]; + NSDate *loopStartDate = nil; + + do + { + loopStartDate = [[NSDate alloc] init]; + pthread_mutex_lock(¶m->mutexThreadExecute); + + while (!(param->state == CORESTATE_EXECUTE && execute && !param->exitThread)) + { + [loopStartDate release]; + pthread_cond_wait(¶m->condThreadExecute, ¶m->mutexThreadExecute); + loopStartDate = [[NSDate alloc] init]; + } + + if (param->exitThread) + { + [loopStartDate release]; + break; + } + + // Get the user's input, execute a single emulation frame, and generate + // the frame output. + [cdsCore.cdsController update]; + + NDS_beginProcessingInput(); + // Shouldn't need to do any special processing steps in between. + // We'll just jump directly to ending the input processing. + NDS_endProcessingInput(); + + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + pthread_mutex_lock(cdsOutput.mutexOutputFrame); + } + + // Execute the frame and increment the frame counter. + pthread_mutex_lock(param->mutexCoreExecute); + NDS_exec(); + pthread_mutex_unlock(param->mutexCoreExecute); + + if (param->framesToSkip == 0 || !param->isFrameSkipEnabled) + { + param->frameCount++; + } + + for(CocoaDSOutput *cdsOutput in cdsOutputList) + { + if (param->isFrameSkipEnabled && param->framesToSkip > 0 && [cdsOutput isMemberOfClass:[CocoaDSDisplay class]]) + { + pthread_mutex_unlock(cdsOutput.mutexOutputFrame); + continue; + } + + [cdsOutput doCoreEmuFrame]; + pthread_mutex_unlock(cdsOutput.mutexOutputFrame); + } + + // Determine the number of frames to skip based on how much time "debt" + // we owe on timeBudget. + if (param->isFrameSkipEnabled) + { + CoreFrameSkip(param->calcTimeBudget, param->calcTimeBudget + [loopStartDate timeIntervalSinceNow], ¶m->framesToSkip); + } + + // If there is any time left in the loop, go ahead and pad it. + NSTimeInterval timePad = param->calcTimeBudget + [loopStartDate timeIntervalSinceNow]; + + pthread_mutex_unlock(¶m->mutexThreadExecute); + + if(timePad > 0.0) + { +#if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4) // Code for Mac OS X 10.4 and earlier + [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:timePad]]; +#else // Code for Mac OS X 10.5 and later + [NSThread sleepForTimeInterval:timePad]; +#endif + } + + [loopStartDate release]; + + } while (!param->exitThread); + + return nil; +} + +void CoreFrameSkip(NSTimeInterval timeBudget, NSTimeInterval timeRemaining, unsigned int *outFramesToSkip) +{ + if (*outFramesToSkip > 0) + { + NDS_SkipNextFrame(); + (*outFramesToSkip)--; + } + else + { + if (timeRemaining <= 0.0) + { + if (timeBudget > 0.0) + { + *outFramesToSkip = (unsigned int)( ((-timeRemaining * FRAME_SKIP_AGGRESSIVENESS)/timeBudget) + FRAME_SKIP_BIAS ); + } + else + { + *outFramesToSkip = (unsigned int)( ((-timeRemaining * FRAME_SKIP_AGGRESSIVENESS * 100.0)/DS_SECONDS_PER_FRAME) + FRAME_SKIP_BIAS ); + } + + if (*outFramesToSkip > (unsigned int)MAX_FRAME_SKIP) + { + *outFramesToSkip = (unsigned int)MAX_FRAME_SKIP; + } + } + } +} diff --git a/desmume/src/cocoa/cocoa_firmware.h b/desmume/src/cocoa/cocoa_firmware.h new file mode 100644 index 000000000..ac526ca3c --- /dev/null +++ b/desmume/src/cocoa/cocoa_firmware.h @@ -0,0 +1,60 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + + +/******************************************************************************************** + CocoaDSFirmware - OBJECTIVE-C CLASS + + This is an Objective-C wrapper class for DeSmuME's firmware struct. + + If this object is instantiated through any init method other than initWithFirmwareData:, + this object allocate memory for its own internal firmware struct. This memory is then + freed upon the release of this object. + + If this object is instantiated using initWithFirmwareData:, or if a firmware struct is + assigned through the data property, the firmware struct is not freed upon the release + of this object. This is by design. + + Thread Safety: + All methods are thread-safe. + ********************************************************************************************/ +@interface CocoaDSFirmware : NSObject +{ + struct NDS_fw_config_data *data; + struct NDS_fw_config_data *internalData; + NSInteger birth_year; + pthread_mutex_t mutex; +} + +@property (assign) struct NDS_fw_config_data *data; +@property (assign) NSInteger consoleType; +@property (assign) NSString *nickname; +@property (assign) NSString *message; +@property (assign) NSInteger favoriteColor; +@property (assign) NSDate *birthday; +@property (assign) NSInteger language; + +- (id) initWithDictionary:(NSDictionary *)dataDict; +- (id) initWithFirmwareData:(struct NDS_fw_config_data *)fwData; +- (void) update; +- (void) setDataWithDictionary:(NSDictionary *)fwDataDict; +- (NSDictionary *) dataDictionary; + +@end diff --git a/desmume/src/cocoa/cocoa_firmware.mm b/desmume/src/cocoa/cocoa_firmware.mm new file mode 100644 index 000000000..10d9be38a --- /dev/null +++ b/desmume/src/cocoa/cocoa_firmware.mm @@ -0,0 +1,307 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_firmware.h" +#include "../NDSSystem.h" + + +@implementation CocoaDSFirmware + +@synthesize data; +@dynamic consoleType; +@dynamic nickname; +@dynamic message; +@dynamic favoriteColor; +@dynamic birthday; +@dynamic language; + +- (id)init +{ + return [self initWithDictionary:nil]; +} + +- (id) initWithDictionary:(NSDictionary *)fwDataDict +{ + self = [super init]; + if (self == nil) + { + return self; + } + + pthread_mutex_init(&mutex, NULL); + + // Allocate our own firmware struct since we weren't provided with one. + internalData = (struct NDS_fw_config_data *)malloc(sizeof(struct NDS_fw_config_data)); + if (internalData == nil) + { + pthread_mutex_destroy(&mutex); + [self release]; + return nil; + } + + NDS_FillDefaultFirmwareConfigData(internalData); + + data = internalData; + + [self setDataWithDictionary:fwDataDict]; + + return self; +} + +- (id) initWithFirmwareData:(struct NDS_fw_config_data *)fwData +{ + self = [super init]; + if (self == nil) + { + return self; + } + + pthread_mutex_init(&mutex, NULL); + + if (fwData == nil) + { + pthread_mutex_destroy(&mutex); + [self release]; + return nil; + } + + // Set birth_year to the current year. + NSDate *now = [[NSDate alloc] init]; + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + [dateFormatter setDateFormat:@"Y"]; + birth_year = [[dateFormatter stringFromDate:now] integerValue]; + [dateFormatter release]; + [now release]; + + internalData = NULL; + data = fwData; + + return self; +} + +- (void)dealloc +{ + free(internalData); + internalData = NULL; + + pthread_mutex_destroy(&mutex); + + [super dealloc]; +} + +- (void) setConsoleType:(NSInteger)theType +{ + pthread_mutex_lock(&mutex); + data->ds_type = (NDS_CONSOLE_TYPE)theType; + pthread_mutex_unlock(&mutex); +} + +- (NSInteger) consoleType +{ + pthread_mutex_lock(&mutex); + NSInteger theType = data->ds_type; + pthread_mutex_unlock(&mutex); + + return theType; +} + +- (void) setNickname:(NSString *)theNickname +{ + if (theNickname == nil) + { + return; + } + + pthread_mutex_lock(&mutex); + + NSRange characterRange = {0, [theNickname length]}; + + if (characterRange.length > MAX_FW_NICKNAME_LENGTH) + { + characterRange.length = MAX_FW_NICKNAME_LENGTH; + } + + [theNickname getBytes:&data->nickname[0] + maxLength:(sizeof(UInt16) * characterRange.length) + usedLength:NULL + encoding:NSUTF16LittleEndianStringEncoding + options:NSStringEncodingConversionAllowLossy + range:characterRange + remainingRange:NULL]; + + data->nickname_len = (u8)characterRange.length; + + pthread_mutex_unlock(&mutex); +} + +- (NSString *) nickname +{ + pthread_mutex_lock(&mutex); + NSString *theNickname = [[[NSString alloc] initWithBytes:&data->nickname[0] length:(sizeof(UInt16) * data->nickname_len) encoding:NSUTF16LittleEndianStringEncoding] autorelease]; + pthread_mutex_unlock(&mutex); + + return theNickname; +} + +- (void) setMessage:(NSString *)theMessage +{ + if (theMessage == nil) + { + return; + } + + pthread_mutex_lock(&mutex); + + NSRange characterRange = {0, [theMessage length]}; + + if (characterRange.length > MAX_FW_MESSAGE_LENGTH) + { + characterRange.length = MAX_FW_MESSAGE_LENGTH; + } + + [theMessage getBytes:&data->message[0] + maxLength:(sizeof(UInt16) * characterRange.length) + usedLength:NULL + encoding:NSUTF16LittleEndianStringEncoding + options:NSStringEncodingConversionAllowLossy + range:characterRange + remainingRange:NULL]; + + data->message_len = (u8)characterRange.length; + + pthread_mutex_unlock(&mutex); +} + +- (NSString *) message +{ + pthread_mutex_lock(&mutex); + NSString *theMessage = [[[NSString alloc] initWithBytes:&data->message[0] length:(sizeof(UInt16) * data->message_len) encoding:NSUTF16LittleEndianStringEncoding] autorelease]; + pthread_mutex_unlock(&mutex); + + return theMessage; +} + +- (void) setFavoriteColor:(NSInteger)colorID +{ + pthread_mutex_lock(&mutex); + data->fav_colour = (u8)colorID; + pthread_mutex_unlock(&mutex); +} + +- (NSInteger) favoriteColor +{ + pthread_mutex_lock(&mutex); + NSInteger theFavoriteColorID = data->fav_colour; + pthread_mutex_unlock(&mutex); + + return theFavoriteColorID; +} + +- (void) setBirthday:(NSDate *)theDate +{ + if (theDate == nil) + { + return; + } + + pthread_mutex_lock(&mutex); + + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + + [dateFormatter setDateFormat:@"M"]; + NSInteger theMonth = [[dateFormatter stringFromDate:theDate] integerValue]; + + [dateFormatter setDateFormat:@"d"]; + NSInteger theDay = [[dateFormatter stringFromDate:theDate] integerValue]; + + [dateFormatter setDateFormat:@"Y"]; + NSInteger theYear = [[dateFormatter stringFromDate:theDate] integerValue]; + + [dateFormatter release]; + + data->birth_month = (u8)theMonth; + data->birth_day = (u8)theDay; + birth_year = theYear; + + pthread_mutex_unlock(&mutex); +} + +- (NSDate *) birthday +{ + pthread_mutex_lock(&mutex); + NSDate *theBirthday = [NSDate dateWithString:[NSString stringWithFormat:@"%d-%d-%d 12:00:00 +0000", birth_year, data->birth_month, data->birth_day]]; + pthread_mutex_unlock(&mutex); + + return theBirthday; +} + +- (void) setLanguage:(NSInteger)languageID +{ + pthread_mutex_lock(&mutex); + data->language = (u8)languageID; + pthread_mutex_unlock(&mutex); +} + +- (NSInteger) language +{ + pthread_mutex_lock(&mutex); + NSInteger theLanguageID = data->language; + pthread_mutex_unlock(&mutex); + + return theLanguageID; +} + +- (void) update +{ + // Write the attributes to the DS via the data struct. + // We have make a copy of the struct and send that so that the firmware + // changes get saved in CommonSettings.InternalFirmwareConf. + pthread_mutex_lock(&mutex); + struct NDS_fw_config_data newFirmwareData = *data; + NDS_CreateDummyFirmware(&newFirmwareData); + pthread_mutex_unlock(&mutex); +} + +- (void) setDataWithDictionary:(NSDictionary *)dataDict +{ + if (dataDict == nil) + { + return; + } + + [self setConsoleType:[(NSNumber *)[dataDict valueForKey:@"ConsoleType"] integerValue]]; + [self setNickname:(NSString *)[dataDict valueForKey:@"Nickname"]]; + [self setMessage:(NSString *)[dataDict valueForKey:@"Message"]]; + [self setFavoriteColor:[(NSNumber *)[dataDict valueForKey:@"FavoriteColor"] integerValue]]; + [self setBirthday:(NSDate *)[dataDict valueForKey:@"Birthday"]]; + [self setLanguage:[(NSNumber *)[dataDict valueForKey:@"Language"] integerValue]]; +} + +- (NSDictionary *) dataDictionary +{ + return [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInteger:[self consoleType]], @"ConsoleType", + [self nickname], @"Nickname", + [self message], @"Message", + [NSNumber numberWithInteger:[self favoriteColor]], @"FavoriteColor", + [self birthday], @"Birthday", + [NSNumber numberWithInteger:[self language]], @"Language", + nil]; +} + +@end diff --git a/desmume/src/cocoa/cocoa_hid.h b/desmume/src/cocoa/cocoa_hid.h new file mode 100644 index 000000000..3740c69a4 --- /dev/null +++ b/desmume/src/cocoa/cocoa_hid.h @@ -0,0 +1,69 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include + + +@interface CocoaHIDDevice : NSObject +{ + IOHIDDeviceRef hidDeviceRef; + IOHIDQueueRef hidQueueRef; + NSRunLoop *runLoop; +} + +@property (readonly) IOHIDDeviceRef hidDeviceRef; +@property (assign) NSRunLoop *runLoop; + +- (id) initWithDevice:(IOHIDDeviceRef)theDevice; + +- (void) start; +- (void) stop; + +- (NSString *) manufacturerName; +- (NSString *) productName; +- (NSString *) serialNumber; + ++ (NSString *) manufacturerNameFromHIDDevice:(CocoaHIDDevice *)hidDevice; ++ (NSString *) productNameFromHIDDevice:(CocoaHIDDevice *)hidDevice; ++ (NSString *) serialNumberFromHIDDevice:(CocoaHIDDevice *)hidDevice; + ++ (NSMutableArray *) inputArrayFromHIDValue:(IOHIDValueRef)hidValueRef; ++ (NSDictionary *) inputAttributesOfHIDValue:(IOHIDValueRef)hidValueRef altElementCode:(NSString *)altElementCode altElementName:(NSString *)altElementName inputState:(NSNumber *)altOnState; ++ (NSMutableArray *) inputArrayFromHatSwitchValue:(IOHIDValueRef)hidValueRef useEightDirection:(BOOL)useEightDirection; ++ (BOOL) onStateFromHIDValue:(IOHIDValueRef)hidValueRef; + +@end + + +@interface CocoaHIDManager : NSObject +{ + IOHIDManagerRef hidManagerRef; + NSRunLoop *runLoop; + NSMutableSet *deviceList; +} + +@property (readonly) IOHIDManagerRef hidManagerRef; +@property (readonly) NSMutableSet *deviceList; +@property (assign) NSRunLoop *runLoop; + +@end + +void HandleDeviceMatchingCallback(void *inContext, IOReturn inResult, void *inSender, IOHIDDeviceRef inIOHIDDeviceRef); +void HandleDeviceRemovalCallback(void *inContext, IOReturn inResult, void *inSender, IOHIDDeviceRef inIOHIDDeviceRef); +void HandleQueueValueAvailableCallback(void *inContext, IOReturn inResult, void *inSender); diff --git a/desmume/src/cocoa/cocoa_hid.mm b/desmume/src/cocoa/cocoa_hid.mm new file mode 100644 index 000000000..18e3ca728 --- /dev/null +++ b/desmume/src/cocoa/cocoa_hid.mm @@ -0,0 +1,840 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_hid.h" +#import "cocoa_util.h" + +/* + Get the symbols for UpdateSystemActivity(). + + For some reason, in Mac OS v10.5 and earlier, UpdateSystemActivity() is not + defined for 64-bit, even though it does work on 64-bit systems. So we're going + to copy the symbols from OSServices/Power.h so that we can use them. This + solution is better than making an absolute path to the Power.h file, since + we can't assume that the header file will always be in the same location. + + Note that this isn't a problem on 32-bit, or if the target SDK is Mac OS v10.6 + or later. + */ + +#if !__LP64__ || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + +#include + +#else + +#ifdef __cplusplus +extern "C" +{ +#endif + + extern OSErr UpdateSystemActivity(UInt8 activity); + + enum + { + OverallAct = 0, + UsrActivity = 1, + NetActivity = 2, + HDActivity = 3, + IdleActivity = 4 + }; + +#ifdef __cplusplus +} +#endif + +#endif // !__LP64__ || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + +@implementation CocoaHIDDevice + +@synthesize hidDeviceRef; +@synthesize runLoop; + +static NSDictionary *hidUsageTable = nil; + +- (id)init +{ + return [self initWithDevice:nil]; +} + +- (id) initWithDevice:(IOHIDDeviceRef)theDevice +{ + self = [super init]; + if(self == nil) + { + return self; + } + + if (hidUsageTable == nil) + { + hidUsageTable = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"HID_usage_strings" ofType:@"plist"]]; + } + + hidDeviceRef = theDevice; + + hidQueueRef = IOHIDQueueCreate(kCFAllocatorDefault, hidDeviceRef, 10, kIOHIDOptionsTypeNone); + if (hidQueueRef == NULL) + { + [self release]; + return nil; + } + + CFArrayRef elementArray = IOHIDDeviceCopyMatchingElements(hidDeviceRef, NULL, kIOHIDOptionsTypeNone); + NSEnumerator *enumerator = [(NSArray *)elementArray objectEnumerator]; + IOHIDElementRef hidElement = NULL; + + while ((hidElement = (IOHIDElementRef)[enumerator nextObject])) + { + IOHIDQueueAddElement(hidQueueRef, hidElement); + } + + CFRelease(elementArray); + + [self setRunLoop:[NSRunLoop currentRunLoop]]; + + return self; +} + +- (void)dealloc +{ + [self stop]; + + self.runLoop = nil; + + if (hidQueueRef != NULL) + { + CFRelease(hidQueueRef); + hidQueueRef = NULL; + } + + [super dealloc]; +} + +- (void) setRunLoop:(NSRunLoop *)theRunLoop +{ + if (theRunLoop == nil && runLoop != nil) + { + IOHIDQueueRegisterValueAvailableCallback(hidQueueRef, NULL, NULL); + IOHIDQueueUnscheduleFromRunLoop(hidQueueRef, [runLoop getCFRunLoop], kCFRunLoopDefaultMode); + [runLoop release]; + } + + runLoop = theRunLoop; + if (runLoop != nil) + { + [runLoop retain]; + IOHIDQueueScheduleWithRunLoop(hidQueueRef, [theRunLoop getCFRunLoop], kCFRunLoopDefaultMode); + IOHIDQueueRegisterValueAvailableCallback(hidQueueRef, HandleQueueValueAvailableCallback, self); + } +} + +- (NSRunLoop *) runLoop +{ + return runLoop; +} + +- (void) start +{ + IOHIDQueueStart(hidQueueRef); +} + +- (void) stop +{ + IOHIDQueueStop(hidQueueRef); +} + +- (NSString *) manufacturerName +{ + return [CocoaHIDDevice manufacturerNameFromHIDDevice:self]; +} + +- (NSString *) productName +{ + return [CocoaHIDDevice productNameFromHIDDevice:self]; +} + +- (NSString *) serialNumber +{ + return [CocoaHIDDevice serialNumberFromHIDDevice:self]; +} + +/******************************************************************************************** + inputAttributesOfHIDValue:altElementCode:altElementName:inputState: + + Parses an IOHIDValueRef to return an input attributes NSDictionary. + + Takes: + hidValueRef - The IOHIDValueRef to parse. + altElementCode - An NSString that overrides the default element code. + altElementName - An NSString that overrides the default element name. + altOnState - An NSNumber that overrides the default on state. + + Returns: + An input attributes NSDictionary. + + Details: + None. + ********************************************************************************************/ ++ (NSDictionary *) inputAttributesOfHIDValue:(IOHIDValueRef)hidValueRef altElementCode:(NSString *)altElementCode altElementName:(NSString *)altElementName inputState:(NSNumber *)altOnState +{ + if (hidValueRef == NULL) + { + return nil; + } + + IOHIDElementRef hidElementRef = IOHIDValueGetElement(hidValueRef); + NSInteger elementUsagePage = IOHIDElementGetUsagePage(hidElementRef); + NSInteger elementUsage = IOHIDElementGetUsage(hidElementRef); + + NSString *elementCode = nil; + if (altElementCode == nil) + { + elementCode = [NSString stringWithFormat:@"0x%04X/0x%04X", elementUsagePage, elementUsage]; + } + else + { + elementCode = altElementCode; + } + + NSString *elementName = nil; + if (altElementName == nil) + { + + CFStringRef cfElementName = IOHIDElementGetName(hidElementRef); + if (cfElementName == nil) + { + if (elementUsagePage == kHIDPage_Button) + { + elementName = [NSString stringWithFormat:@"Button %i", elementUsage]; + } + else if (elementUsagePage == kHIDPage_VendorDefinedStart) + { + elementName = [NSString stringWithFormat:@"VendorDefined %i", elementUsage]; + } + else + { + NSDictionary *elementUsagePageDict = (NSDictionary *)[hidUsageTable valueForKey:[NSString stringWithFormat:@"0x%04X", elementUsagePage]]; + elementName = (NSString *)[elementUsagePageDict valueForKey:[NSString stringWithFormat:@"0x%04X", elementUsage]]; + } + } + else + { + elementName = [NSString stringWithString:(NSString *)cfElementName]; + } + } + else + { + elementName = altElementName; + } + + IOHIDDeviceRef hidDeviceRef = IOHIDElementGetDevice(hidElementRef); + + CFNumberRef cfVendorIDNumber = (CFNumberRef)IOHIDDeviceGetProperty(hidDeviceRef, CFSTR(kIOHIDVendorIDKey)); + CFNumberRef cfProductIDNumber = (CFNumberRef)IOHIDDeviceGetProperty(hidDeviceRef, CFSTR(kIOHIDProductIDKey)); + UInt32 vendorID = [(NSNumber *)cfVendorIDNumber integerValue]; + UInt32 productID = [(NSNumber *)cfProductIDNumber integerValue]; + + NSString *deviceCode = [NSString stringWithFormat:@"%d/%d/", vendorID, productID]; + CFStringRef cfDeviceCode = (CFStringRef)IOHIDDeviceGetProperty(hidDeviceRef, CFSTR(kIOHIDSerialNumberKey)); + if (cfDeviceCode == nil) + { + CFNumberRef cfLocationIDNumber = (CFNumberRef)IOHIDDeviceGetProperty(hidDeviceRef, CFSTR(kIOHIDLocationIDKey)); + UInt32 locationID = [(NSNumber *)cfLocationIDNumber integerValue]; + deviceCode = [deviceCode stringByAppendingFormat:@"0x%08X", locationID]; + } + else + { + deviceCode = [deviceCode stringByAppendingString:(NSString *)cfDeviceCode]; + } + + NSString *deviceName = nil; + CFStringRef cfDeviceName = (CFStringRef)IOHIDDeviceGetProperty(hidDeviceRef, CFSTR(kIOHIDProductKey)); + if (cfDeviceName == nil) + { + deviceName = deviceCode; + } + else + { + deviceName = [NSString stringWithString:(NSString *)cfDeviceName]; + } + + NSNumber *onState = nil; + if (altOnState == nil) + { + onState = [NSNumber numberWithBool:[CocoaHIDDevice onStateFromHIDValue:hidValueRef]]; + } + else + { + onState = altOnState; + } + + NSInteger logicalValue = IOHIDValueGetIntegerValue(hidValueRef); + + return [NSDictionary dictionaryWithObjectsAndKeys: + deviceCode, @"deviceCode", + deviceName, @"deviceName", + elementCode, @"elementCode", + elementName, @"elementName", + onState, @"on", + [NSNumber numberWithInteger:logicalValue], @"integerValue", + [NSNumber numberWithFloat:(float)logicalValue], @"floatValue", + nil]; +} + ++ (NSString *) manufacturerNameFromHIDDevice:(CocoaHIDDevice *)hidDevice +{ + return (NSString *)IOHIDDeviceGetProperty(hidDevice.hidDeviceRef, CFSTR(kIOHIDManufacturerKey)); +} + ++ (NSString *) productNameFromHIDDevice:(CocoaHIDDevice *)hidDevice +{ + return (NSString *)IOHIDDeviceGetProperty(hidDevice.hidDeviceRef, CFSTR(kIOHIDProductKey)); +} + ++ (NSString *) serialNumberFromHIDDevice:(CocoaHIDDevice *)hidDevice +{ + return (NSString *)IOHIDDeviceGetProperty(hidDevice.hidDeviceRef, CFSTR(kIOHIDSerialNumberKey)); +} + ++ (NSMutableArray *) inputArrayFromHIDValue:(IOHIDValueRef)hidValueRef +{ + NSMutableArray *inputAttributesList = nil; + + if (hidValueRef == NULL) + { + return inputAttributesList; + } + + IOHIDElementRef hidElementRef = IOHIDValueGetElement(hidValueRef); + NSInteger elementUsagePage = IOHIDElementGetUsagePage(hidElementRef); + NSInteger elementUsage = IOHIDElementGetUsage(hidElementRef); + NSInteger logicalValue = IOHIDValueGetIntegerValue(hidValueRef); + NSInteger logicalMin = IOHIDElementGetLogicalMin(hidElementRef); + NSInteger logicalMax = IOHIDElementGetLogicalMax(hidElementRef); + + inputAttributesList = [NSMutableArray arrayWithCapacity:2]; + + if (logicalMin == 0 && logicalMax == 1) + { + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:nil altElementName:nil inputState:nil]]; + } + else + { + NSInteger lowerThreshold = ((logicalMax - logicalMin) / 4) + logicalMin; + NSInteger upperThreshold = (((logicalMax - logicalMin) * 3) / 4) + logicalMin; + NSNumber *onState = [NSNumber numberWithBool:YES]; + NSNumber *offState = [NSNumber numberWithBool:NO]; + NSString *elementCodeLowerThreshold = [NSString stringWithFormat:@"0x%04X/0x%04X/LowerThreshold", elementUsagePage, elementUsage]; + NSString *elementCodeUpperThreshold = [NSString stringWithFormat:@"0x%04X/0x%04X/UpperThreshold", elementUsagePage, elementUsage]; + + if (logicalValue <= lowerThreshold) + { + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeLowerThreshold altElementName:nil inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeUpperThreshold altElementName:nil inputState:offState]]; + } + else if (logicalValue >= upperThreshold) + { + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeLowerThreshold altElementName:nil inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeUpperThreshold altElementName:nil inputState:onState]]; + } + else + { + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeLowerThreshold altElementName:nil inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeUpperThreshold altElementName:nil inputState:offState]]; + } + } + + return inputAttributesList; +} + ++ (NSMutableArray *) inputArrayFromHatSwitchValue:(IOHIDValueRef)hidValueRef useEightDirection:(BOOL)useEightDirection +{ + NSMutableArray *inputAttributesList = nil; + + if (hidValueRef == NULL) + { + return inputAttributesList; + } + + IOHIDElementRef hidElementRef = IOHIDValueGetElement(hidValueRef); + NSInteger elementUsagePage = IOHIDElementGetUsagePage(hidElementRef); + NSInteger elementUsage = IOHIDElementGetUsage(hidElementRef); + + if (elementUsage != kHIDUsage_GD_Hatswitch) + { + return inputAttributesList; + } + + inputAttributesList = [NSMutableArray arrayWithCapacity:8]; + NSInteger logicalMax = IOHIDElementGetLogicalMax(hidElementRef); + NSInteger logicalValue = IOHIDValueGetIntegerValue(hidValueRef); + + NSNumber *onState = [NSNumber numberWithBool:YES]; + NSNumber *offState = [NSNumber numberWithBool:NO]; + NSString *elementCodeFourWayUp = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-FourDirection", elementUsagePage, elementUsage, 0]; + NSString *elementCodeFourWayRight = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-FourDirection", elementUsagePage, elementUsage, 1]; + NSString *elementCodeFourWayDown = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-FourDirection", elementUsagePage, elementUsage, 2]; + NSString *elementCodeFourWayLeft = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-FourDirection", elementUsagePage, elementUsage, 3]; + NSString *elementCodeEightWayUp = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 0]; + NSString *elementCodeEightWayUpRight = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 1]; + NSString *elementCodeEightWayRight = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 2]; + NSString *elementCodeEightWayDownRight = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 3]; + NSString *elementCodeEightWayDown = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 4]; + NSString *elementCodeEightWayDownLeft = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 5]; + NSString *elementCodeEightWayLeft = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 6]; + NSString *elementCodeEightWayUpLeft = [NSString stringWithFormat:@"0x%04X/0x%04X/%d-EightDirection", elementUsagePage, elementUsage, 7]; + + if (logicalMax == 3) + { + switch (logicalValue) + { + case 0: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayUp altElementName:@"Hatswitch - Up" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 1: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayRight altElementName:@"Hatswitch - Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 2: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayDown altElementName:@"Hatswitch - Down" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 3: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayLeft altElementName:@"Hatswitch - Left" inputState:onState]]; + break; + + default: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeFourWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + } + } + else if (logicalMax == 7) + { + if (useEightDirection) + { + switch (logicalValue) + { + case 0: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 1: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 2: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 3: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 4: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 5: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 6: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + + case 7: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:onState]]; + break; + + default: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpRight altElementName:@"Hatswitch - Up/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownRight altElementName:@"Hatswitch - Down/Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDownLeft altElementName:@"Hatswitch - Down/Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUpLeft altElementName:@"Hatswitch - Up/Left" inputState:offState]]; + break; + } + } + else + { + switch (logicalValue) + { + case 0: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 1: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 2: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 3: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 4: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + + case 5: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:onState]]; + break; + + case 6: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:onState]]; + break; + + case 7: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:onState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:onState]]; + break; + + default: + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayUp altElementName:@"Hatswitch - Up" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayRight altElementName:@"Hatswitch - Right" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayDown altElementName:@"Hatswitch - Down" inputState:offState]]; + [inputAttributesList addObject:[CocoaHIDDevice inputAttributesOfHIDValue:hidValueRef altElementCode:elementCodeEightWayLeft altElementName:@"Hatswitch - Left" inputState:offState]]; + break; + } + } + } + + return inputAttributesList; +} + ++ (BOOL) onStateFromHIDValue:(IOHIDValueRef)hidValueRef +{ + BOOL onState = NO; + + if (hidValueRef == nil) + { + return onState; + } + + IOHIDElementRef hidElementRef = IOHIDValueGetElement(hidValueRef); + NSInteger logicalValue = IOHIDValueGetIntegerValue(hidValueRef); + NSInteger logicalMin = IOHIDElementGetLogicalMin(hidElementRef); + NSInteger logicalMax = IOHIDElementGetLogicalMax(hidElementRef); + NSInteger lowerThreshold = ((logicalMax - logicalMin) / 4) + logicalMin; + NSInteger upperThreshold = (((logicalMax - logicalMin) * 3) / 4) + logicalMin; + + NSInteger elementType = IOHIDElementGetType(hidElementRef); + switch (elementType) + { + case kIOHIDElementTypeInput_Misc: + { + if (logicalMin == 0 && logicalMax == 1) + { + if (logicalValue == 1) + { + onState = YES; + } + } + else + { + if (logicalValue <= lowerThreshold || logicalValue >= upperThreshold) + { + onState = YES; + } + } + break; + } + + case kIOHIDElementTypeInput_Button: + { + if (logicalValue == 1) + { + onState = YES; + } + break; + } + + case kIOHIDElementTypeInput_Axis: + { + if (logicalMin == 0 && logicalMax == 1) + { + if (logicalValue == 1) + { + onState = YES; + } + } + else + { + if (logicalValue <= lowerThreshold || logicalValue >= upperThreshold) + { + onState = YES; + } + } + break; + } + + default: + break; + } + + return onState; +} + +@end + + +@implementation CocoaHIDManager + +@synthesize hidManagerRef; +@synthesize deviceList; +@synthesize runLoop; + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return self; + } + + hidManagerRef = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); + if (hidManagerRef == NULL) + { + [self release]; + return nil; + } + + deviceList = [[NSMutableSet alloc] initWithCapacity:32]; + + CFMutableDictionaryRef cfJoystickMatcher = CFDictionaryCreateMutable(kCFAllocatorDefault, 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFDictionarySetValue(cfJoystickMatcher, CFSTR(kIOHIDDeviceUsagePageKey), (CFNumberRef)[NSNumber numberWithInteger:kHIDPage_GenericDesktop]); + CFDictionarySetValue(cfJoystickMatcher, CFSTR(kIOHIDDeviceUsageKey), (CFNumberRef)[NSNumber numberWithInteger:kHIDUsage_GD_Joystick]); + + CFMutableDictionaryRef cfGamepadMatcher = CFDictionaryCreateMutable(kCFAllocatorDefault, 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFDictionarySetValue(cfGamepadMatcher, CFSTR(kIOHIDDeviceUsagePageKey), (CFNumberRef)[NSNumber numberWithInteger:kHIDPage_GenericDesktop]); + CFDictionarySetValue(cfGamepadMatcher, CFSTR(kIOHIDDeviceUsageKey), (CFNumberRef)[NSNumber numberWithInteger:kHIDUsage_GD_GamePad]); + + NSArray *matcherArray = [NSArray arrayWithObjects:(NSMutableDictionary *)cfJoystickMatcher, (NSMutableDictionary *)cfGamepadMatcher, nil]; + + IOHIDManagerSetDeviceMatchingMultiple(hidManagerRef, (CFArrayRef)matcherArray); + + [self setRunLoop:[NSRunLoop currentRunLoop]]; + + IOReturn result = IOHIDManagerOpen(hidManagerRef, kIOHIDOptionsTypeNone); + if (result != kIOReturnSuccess) + { + [self release]; + return nil; + } + + return self; +} + +- (void)dealloc +{ + [self.deviceList release]; + + self.runLoop = nil; + + if (hidManagerRef != NULL) + { + IOHIDManagerClose(hidManagerRef, 0); + CFRelease(hidManagerRef); + hidManagerRef = NULL; + } + + [super dealloc]; +} + +- (void) setRunLoop:(NSRunLoop *)theRunLoop +{ + if (theRunLoop == nil && runLoop != nil) + { + IOHIDManagerRegisterDeviceMatchingCallback(hidManagerRef, NULL, NULL); + IOHIDManagerRegisterDeviceRemovalCallback(hidManagerRef, NULL, NULL); + IOHIDManagerUnscheduleFromRunLoop(hidManagerRef, [runLoop getCFRunLoop], kCFRunLoopDefaultMode); + [runLoop release]; + } + + runLoop = theRunLoop; + if (runLoop != nil) + { + [runLoop retain]; + IOHIDManagerScheduleWithRunLoop(hidManagerRef, [theRunLoop getCFRunLoop], kCFRunLoopDefaultMode); + IOHIDManagerRegisterDeviceMatchingCallback(hidManagerRef, HandleDeviceMatchingCallback, self); + IOHIDManagerRegisterDeviceRemovalCallback(hidManagerRef, HandleDeviceRemovalCallback, self); + } +} + +- (NSRunLoop *) runLoop +{ + return runLoop; +} + +@end + +void HandleDeviceMatchingCallback(void *inContext, IOReturn inResult, void *inSender, IOHIDDeviceRef inIOHIDDeviceRef) +{ + CocoaHIDManager *hidManager = (CocoaHIDManager *)inContext; + CocoaHIDDevice *newDevice = [[[CocoaHIDDevice alloc] initWithDevice:inIOHIDDeviceRef] autorelease]; + [hidManager.deviceList addObject:newDevice]; + [newDevice start]; +} + +void HandleDeviceRemovalCallback(void *inContext, IOReturn inResult, void *inSender, IOHIDDeviceRef inIOHIDDeviceRef) +{ + CocoaHIDManager *hidManager = (CocoaHIDManager *)inContext; + + for (CocoaHIDDevice *hidDevice in hidManager.deviceList) + { + if (hidDevice.hidDeviceRef == inIOHIDDeviceRef) + { + [hidManager.deviceList removeObject:hidDevice]; + break; + } + } +} + +void HandleQueueValueAvailableCallback(void *inContext, IOReturn inResult, void *inSender) +{ + IOHIDQueueRef hidQueue = (IOHIDQueueRef)inSender; + NSMutableArray *inputAttributesList = nil; + + do + { + IOHIDValueRef hidValueRef = IOHIDQueueCopyNextValueWithTimeout(hidQueue, 0.0); + if (hidValueRef == NULL) + { + break; + } + + NSMutableArray *hatSwitchInput = [CocoaHIDDevice inputArrayFromHatSwitchValue:hidValueRef useEightDirection:NO]; + if (hatSwitchInput != nil) + { + inputAttributesList = hatSwitchInput; + } + else + { + inputAttributesList = [CocoaHIDDevice inputArrayFromHIDValue:hidValueRef]; + } + + // HID input devices don't register events, so we need to manually prevent + // sleep and screensaver whenever we detect an input. + UpdateSystemActivity(UsrActivity); + + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"com.DeSmuME.DeSmuME.hidInputDetected" object:inputAttributesList userInfo:nil]; + + CFRelease(hidValueRef); + } while (1); +} diff --git a/desmume/src/cocoa/cocoa_input.h b/desmume/src/cocoa/cocoa_input.h new file mode 100644 index 000000000..fb346f006 --- /dev/null +++ b/desmume/src/cocoa/cocoa_input.h @@ -0,0 +1,89 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include + +@class CocoaDSMic; + + +@interface CocoaDSInput : NSObject +{ + NSMutableDictionary *map; + NSString *deviceCode; + NSString *deviceName; +} + +@property (assign) NSMutableDictionary *map; +@property (assign) NSString *deviceCode; +@property (assign) NSString *deviceName; + +- (id) initWithDeviceCode:(NSString *)theCode name:(NSString *)theName; + +- (void) set:(NSString *)elementCode attributes:(NSDictionary *)mappingAttributes; +- (NSDictionary *) mappingByElementCode:(NSString *)elementCode; +- (void) removeByElementCode:(NSString *)elementCode; +- (void) removeMapping:(NSString *)mappingName; + ++ (NSDictionary *) dictionaryWithMappingAttributes:(NSString *)mappingName + useDeviceValues:(BOOL)useDeviceValues + xPoint:(CGFloat)xPoint + yPoint:(CGFloat)yPoint + integerValue:(NSInteger)integerValue + floatValue:(float)floatValue + data:(NSData *)data + selector:(NSString *)selectorString + paramType:(NSString *)paramTypeKey; + +@end + + +@interface CocoaDSController : NSObject +{ + NSMutableDictionary *states; + CocoaDSMic *cdsMic; + pthread_mutex_t *mutexControllerUpdate; + NSMutableDictionary *inputs; +} + +@property (assign) NSMutableDictionary *states; +@property (assign) CocoaDSMic *cdsMic; +@property (assign) NSMutableDictionary *inputs; +@property (readonly) pthread_mutex_t *mutexControllerUpdate; + +- (void) initDefaultMappings; +- (BOOL) initUserDefaultMappings; +- (void) initControllerMap; + +- (void) addMapping:(NSString *)controlName deviceInfo:(NSDictionary *)deviceInfo; + +- (BOOL) setStateWithInput:(NSDictionary *)inputAttributes; +- (BOOL) setStateWithMultipleInputs:(NSArray *)inputAttributesList; +- (NSDictionary *) mappingByEvent:(NSEvent *)event; +- (BOOL) updateController:(NSArray *)inputStates; + +- (NSDate *) inputTime:(NSString *)controlName; +- (bool) isInputPressed:(NSString *)controlName; +- (NSPoint) inputLocation:(NSString *)controlName; +- (unsigned char) inputSoundSample:(NSString *)controlName; + +- (void) setSoundInputMode:(NSInteger)inputMode; +- (void) update; +- (void) handleHIDInput:(NSNotification *)aNotification; + +@end diff --git a/desmume/src/cocoa/cocoa_input.mm b/desmume/src/cocoa/cocoa_input.mm new file mode 100644 index 000000000..d375a277f --- /dev/null +++ b/desmume/src/cocoa/cocoa_input.mm @@ -0,0 +1,648 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_input.h" + +#import "cocoa_globals.h" +#import "cocoa_mic.h" + +#include "../NDSSystem.h" +#undef BOOL + + +@implementation CocoaDSInput + +@synthesize map; +@synthesize deviceCode; +@synthesize deviceName; + +- (id)init +{ + return [self initWithDeviceCode:nil name:nil]; +} + +- (id) initWithDeviceCode:(NSString *)theCode name:(NSString *)theName +{ + self = [super init]; + if (self == nil) + { + return self; + } + + map = [[NSMutableDictionary alloc] init]; + deviceCode = theCode; + deviceName = theName; + + if (theCode == nil) + { + deviceCode = [NSString stringWithFormat:@"0x%08X", rand()]; + } + + if (theName == nil) + { + deviceName = @"Unknown Device "; + deviceName = [deviceName stringByAppendingString:deviceCode]; + } + + return self; +} + +- (void)dealloc +{ + [self.map release]; + + [super dealloc]; +} + +- (void) set:(NSString *)elementCode attributes:(NSDictionary *)mappingAttributes +{ + NSString *keyString = [[self.deviceCode stringByAppendingString:@":"] stringByAppendingString:elementCode]; + [self.map setValue:mappingAttributes forKey:keyString]; +} + +- (NSDictionary *) mappingByElementCode:(NSString *)elementCode +{ + NSString *keyString = [[self.deviceCode stringByAppendingString:@":"] stringByAppendingString:elementCode]; + return [self.map valueForKey:keyString]; +} + +- (void) removeByElementCode:(NSString *)elementCode +{ + NSString *keyString = [[self.deviceCode stringByAppendingString:@":"] stringByAppendingString:elementCode]; + [self.map setValue:nil forKey:keyString]; +} + +- (void) removeMapping:(NSString *)mappingName +{ + NSArray *mapKeys = [self.map allKeys]; + for(NSString *key in mapKeys) + { + if ([(NSString *)[(NSDictionary *)[self.map valueForKey:key] valueForKey:@"name"] isEqual:mappingName]) + { + [self.map removeObjectForKey:key]; + } + } +} + ++ (NSDictionary *) dictionaryWithMappingAttributes:(NSString *)mappingName + useDeviceValues:(BOOL)useDeviceValues + xPoint:(CGFloat)xPoint + yPoint:(CGFloat)yPoint + integerValue:(NSInteger)integerValue + floatValue:(float)floatValue + data:(NSData *)data + selector:(NSString *)selectorString + paramType:(NSString *)paramTypeKey +{ + NSDictionary *attributes = nil; + + if (mappingName == nil) + { + return attributes; + } + + if (useDeviceValues) + { + attributes = [NSDictionary dictionaryWithObjectsAndKeys: + mappingName, @"name", + [NSNumber numberWithBool:useDeviceValues], @"useDeviceValues", + nil]; + } + else + { + NSData *tempData = data; + if (tempData == nil) + { + tempData = [NSData data]; + } + + attributes = [NSDictionary dictionaryWithObjectsAndKeys: + mappingName, @"name", + [NSNumber numberWithBool:useDeviceValues], @"useDeviceValues", + [NSNumber numberWithFloat:xPoint], @"xPoint", + [NSNumber numberWithFloat:yPoint], @"yPoint", + [NSNumber numberWithInteger:integerValue], @"integerValue", + [NSNumber numberWithFloat:floatValue], @"floatValue", + tempData, @"data", + selectorString, @"selector", + paramTypeKey, @"paramType", + nil]; + } + + return attributes; +} + +@end + +@implementation CocoaDSController + +@synthesize states; +@synthesize cdsMic; +@synthesize inputs; +@synthesize mutexControllerUpdate; + +- (id)init +{ + self = [super init]; + if (self == nil) + { + return self; + } + + mutexControllerUpdate = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); + pthread_mutex_init(mutexControllerUpdate, NULL); + + states = [[NSMutableDictionary alloc] init]; + cdsMic = [[CocoaDSMic alloc] init]; + inputs = [[NSMutableDictionary alloc] initWithCapacity:10]; + + [self initDefaultMappings]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleHIDInput:) + name:@"com.DeSmuME.DeSmuME.hidInputDetected" + object:nil]; + + return self; +} + +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + [self.states release]; + [self.cdsMic release]; + [self.inputs release]; + + pthread_mutex_destroy(self.mutexControllerUpdate); + free(self.mutexControllerUpdate); + mutexControllerUpdate = nil; + + [super dealloc]; +} + +- (void) initDefaultMappings +{ + [self initUserDefaultMappings]; + [self initControllerMap]; +} + +- (BOOL) initUserDefaultMappings +{ + BOOL didChange = NO; + + // Check to see if the DefaultKeyMappings.plist files exists. + NSDictionary *defaultMappings = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"DefaultKeyMappings" ofType:@"plist"]]; + if (defaultMappings == nil) + { + return didChange; + } + + // If the input mappings does not exist in the user's preferences file, then copy all the mappings from the + // DefaultKeyMappings.plist file to the preferences file. Then we're done. + NSDictionary *userMappings = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"Input_ControllerMappings"]; + if (userMappings == nil) + { + [[NSUserDefaults standardUserDefaults] setObject:defaultMappings forKey:@"Input_ControllerMappings"]; + didChange = YES; + return didChange; + } + + // At this point, we need to check every key in the user's preference file and make sure that all the keys + // exist. The keys that must exist are all listed in the DefaultKeyMappings.plist file. + NSMutableDictionary *tempUserMappings = [NSMutableDictionary dictionaryWithDictionary:userMappings]; + + NSArray *inputKeys = [defaultMappings allKeys]; + for(NSString *inputString in inputKeys) + { + if ([tempUserMappings objectForKey:inputString] == nil) + { + [tempUserMappings setValue:[defaultMappings valueForKey:inputString] forKey:inputString]; + didChange = YES; + } + } + + // If we had to add a missing key, then we need to copy our temporary dictionary back to the + // user's preferences file. + if (didChange) + { + [[NSUserDefaults standardUserDefaults] setObject:tempUserMappings forKey:@"Input_ControllerMappings"]; + } + + // And we're done. + return didChange; +} + +- (void) initControllerMap +{ + NSDictionary *defaultMappings = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"DefaultKeyMappings" ofType:@"plist"]]; + if (defaultMappings == nil) + { + return; + } + + NSDictionary *userMappings = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"Input_ControllerMappings"]; + if (userMappings == nil) + { + [self initUserDefaultMappings]; + } + + NSArray *controlNameList = [defaultMappings allKeys]; + for(NSString *controlName in controlNameList) + { + [self.states setValue:[NSMutableDictionary dictionaryWithCapacity:64] forKey:controlName]; + + NSArray *deviceInfoList = (NSArray *)[userMappings valueForKey:controlName]; + for(NSDictionary *deviceInfo in deviceInfoList) + { + [self addMapping:controlName deviceInfo:deviceInfo]; + } + } +} + +- (void) addMapping:(NSString *)controlName deviceInfo:(NSDictionary *)deviceInfo +{ + if (controlName == nil) + { + return; + } + + NSString *deviceCode = (NSString *)[deviceInfo valueForKey:@"deviceCode"]; + NSString *elementCode = (NSString *)[deviceInfo valueForKey:@"elementCode"]; + + if (deviceCode == nil || elementCode == nil) + { + return; + } + + NSDictionary *mappingAttributes = [CocoaDSInput dictionaryWithMappingAttributes:controlName + useDeviceValues:[(NSNumber *)[deviceInfo valueForKey:@"useDeviceValues"] boolValue] + xPoint:[(NSNumber *)[deviceInfo valueForKey:@"xPoint"] floatValue] + yPoint:[(NSNumber *)[deviceInfo valueForKey:@"yPoint"] floatValue] + integerValue:[(NSNumber *)[deviceInfo valueForKey:@"integerValue"] integerValue] + floatValue:[(NSNumber *)[deviceInfo valueForKey:@"floatValue"] floatValue] + data:(NSData *)[deviceInfo valueForKey:@"data"] + selector:(NSString *)[deviceInfo valueForKey:@"selector"] + paramType:(NSString *)[deviceInfo valueForKey:@"paramType"]]; + + if (mappingAttributes == nil) + { + return; + } + + CocoaDSInput *input = (CocoaDSInput *)[self.inputs valueForKey:deviceCode]; + if (input == nil) + { + NSString *deviceName = (NSString *)[deviceInfo valueForKey:@"deviceName"]; + if (deviceName == nil) + { + deviceName = deviceCode; + } + + input = [[CocoaDSInput alloc] initWithDeviceCode:deviceCode name:deviceName]; + [self.inputs setValue:input forKey:deviceCode]; + } + + [input set:elementCode attributes:mappingAttributes]; +} + +- (BOOL) setStateWithInput:(NSDictionary *)inputAttributes +{ + BOOL inputChanged = NO; + + if (inputAttributes == nil) + { + return inputChanged; + } + + NSMutableArray *attributesList = [NSMutableArray arrayWithObject:inputAttributes]; + + return [self setStateWithMultipleInputs:attributesList]; +} + +- (BOOL) setStateWithMultipleInputs:(NSArray *)inputAttributesList +{ + BOOL inputChanged = NO; + NSMutableArray *inputStates = [NSMutableArray arrayWithCapacity:8]; + + if (inputAttributesList == nil || [inputAttributesList count] <= 0) + { + return inputChanged; + } + + for (NSDictionary *attr in inputAttributesList) + { + NSString *deviceCode = (NSString *)[attr valueForKey:@"deviceCode"]; + if (deviceCode == nil) + { + continue; + } + + NSString *elementCode = (NSString *)[attr valueForKey:@"elementCode"]; + if (elementCode == nil) + { + continue; + } + + CocoaDSInput *input = (CocoaDSInput *)[self.inputs valueForKey:deviceCode]; + if (input == nil) + { + continue; + } + + NSDictionary *mappingAttributes = [input mappingByElementCode:elementCode]; + if (mappingAttributes == nil) + { + continue; + } + + NSString *controlName = (NSString *)[mappingAttributes valueForKey:@"name"]; + if (controlName == nil) + { + continue; + } + + NSMutableDictionary *inputState = [NSMutableDictionary dictionaryWithObjectsAndKeys: + controlName, @"name", + [attr valueForKey:@"on"], @"on", + nil]; + + NSNumber *xPointNumber = nil; + NSNumber *yPointNumber = nil; + NSNumber *integerNumber = nil; + NSNumber *floatNumber = nil; + NSData *inputData = nil; + NSString *selectorString = nil; + NSString *paramTypeKey = nil; + + NSNumber *useDeviceValuesNumber = (NSNumber *)[mappingAttributes valueForKey:@"useDeviceValues"]; + if (useDeviceValuesNumber == nil || ![useDeviceValuesNumber boolValue]) // Not reading from device values, use values from mapping attributes + { + xPointNumber = (NSNumber *)[mappingAttributes valueForKey:@"pointX"]; + yPointNumber = (NSNumber *)[mappingAttributes valueForKey:@"pointY"]; + integerNumber = (NSNumber *)[mappingAttributes valueForKey:@"integerValue"]; + floatNumber = (NSNumber *)[mappingAttributes valueForKey:@"floatValue"]; + inputData = (NSData *)[mappingAttributes valueForKey:@"data"]; + selectorString = (NSString *)[mappingAttributes valueForKey:@"selector"]; + paramTypeKey = (NSString *)[mappingAttributes valueForKey:@"paramType"]; + } + else // Reading from device values, use values from input attributes + { + xPointNumber = (NSNumber *)[attr valueForKey:@"pointX"]; + yPointNumber = (NSNumber *)[attr valueForKey:@"pointY"]; + integerNumber = (NSNumber *)[attr valueForKey:@"integerValue"]; + floatNumber = (NSNumber *)[attr valueForKey:@"floatValue"]; + inputData = (NSData *)[attr valueForKey:@"data"]; + } + + if (xPointNumber == nil) + { + xPointNumber = [NSNumber numberWithFloat:0.0f]; + } + + if (yPointNumber == nil) + { + yPointNumber = [NSNumber numberWithFloat:0.0f]; + } + + if (integerNumber == nil) + { + integerNumber = [NSNumber numberWithInteger:0]; + } + + if (floatNumber == nil) + { + floatNumber = [NSNumber numberWithFloat:0.0f]; + } + + [inputState setValue:xPointNumber forKey:@"pointX"]; + [inputState setValue:yPointNumber forKey:@"pointY"]; + [inputState setValue:integerNumber forKey:@"integerValue"]; + [inputState setValue:floatNumber forKey:@"floatValue"]; + [inputState setValue:inputData forKey:@"data"]; + + [inputStates addObject:inputState]; + } + + inputChanged = [self updateController:inputStates]; + + return inputChanged; +} + +- (NSDictionary *) mappingByEvent:(NSEvent *)event +{ + CocoaDSInput *input = nil; + NSString *elementCode = nil; + NSEventType eventType = [event type]; + + switch (eventType) + { + case NSKeyDown: + case NSKeyUp: + input = (CocoaDSInput *)[self.inputs valueForKey:@"NSEventKeyboard"]; + elementCode = [NSString stringWithFormat:@"%d", [event keyCode]]; + break; + + case NSLeftMouseDown: + case NSRightMouseDown: + case NSOtherMouseDown: + case NSLeftMouseUp: + case NSRightMouseUp: + case NSOtherMouseUp: + case NSLeftMouseDragged: + case NSRightMouseDragged: + case NSOtherMouseDragged: + input = (CocoaDSInput *)[self.inputs valueForKey:@"NSEventMouse"]; + elementCode = [NSString stringWithFormat:@"%i", [event buttonNumber]]; + break; + + default: + break; + } + + return [input mappingByElementCode:elementCode]; +} + +- (BOOL) updateController:(NSArray *)inputStates +{ + BOOL result = NO; + + if (inputStates == nil) + { + return result; + } + + pthread_mutex_lock(self.mutexControllerUpdate); + + for (NSDictionary *iState in inputStates) + { + NSString *controlName = (NSString *)[iState valueForKey:@"name"]; + if (controlName == nil) + { + continue; + } + + NSMutableDictionary *controlState = (NSMutableDictionary *)[self.states valueForKey:controlName]; + [controlState setDictionary:iState]; + [controlState setValue:[NSDate date] forKey:@"time"]; + + result = YES; + } + + pthread_mutex_unlock(self.mutexControllerUpdate); + + return result; +} + +- (NSDate *) inputTime:(NSString *)controlName +{ + NSDate *inputTime = nil; + + NSMutableDictionary *properties = [self.states objectForKey:controlName]; + inputTime = [properties objectForKey:@"time"]; + if (inputTime == nil) + { + return inputTime; + } + + return inputTime; +} + +- (bool) isInputPressed:(NSString *)controlName +{ + bool result = false; + + NSMutableDictionary *controlState = (NSMutableDictionary *)[self.states valueForKey:controlName]; + NSNumber *pressValue = (NSNumber *)[controlState valueForKey:@"on"]; + if (pressValue == nil) + { + return result; + } + + result = [pressValue boolValue]; + + return result; +} + +- (NSPoint) inputLocation:(NSString *)controlName +{ + NSPoint outPoint = {0.0f, 0.0f}; + NSMutableDictionary *properties = [self.states objectForKey:controlName]; + + NSNumber *xValue = [properties objectForKey:@"pointX"]; + if (xValue != nil) + { + outPoint.x = [xValue floatValue]; + } + + NSNumber *yValue = [properties objectForKey:@"pointY"]; + if (yValue != nil) + { + outPoint.y = [yValue floatValue]; + } + + return outPoint; +} + +- (unsigned char) inputSoundSample:(NSString *)controlName +{ + unsigned char sampleValue = 0; + + NSMutableDictionary *properties = [self.states objectForKey:controlName]; + NSNumber *sampleValueObj = [properties objectForKey:@"Sound Sample"]; + if (sampleValueObj == nil) + { + return sampleValue; + } + + sampleValue = [sampleValueObj unsignedCharValue]; + + return sampleValue; +} + +- (void) setSoundInputMode:(NSInteger)inputMode +{ + self.cdsMic.mode = inputMode; +} + +- (void) update +{ + pthread_mutex_lock(self.mutexControllerUpdate); + + // Setup the DS pad. + NDS_setPad([self isInputPressed:@"Right"], + [self isInputPressed:@"Left"], + [self isInputPressed:@"Down"], + [self isInputPressed:@"Up"], + [self isInputPressed:@"Select"], + [self isInputPressed:@"Start"], + [self isInputPressed:@"B"], + [self isInputPressed:@"A"], + [self isInputPressed:@"Y"], + [self isInputPressed:@"X"], + [self isInputPressed:@"L"], + [self isInputPressed:@"R"], + [self isInputPressed:@"Debug"], + [self isInputPressed:@"Lid"]); + + // Setup the DS touch pad. + if ([self isInputPressed:@"Touch"]) + { + NSPoint touchLocation = [self inputLocation:@"Touch"]; + NDS_setTouchPos((u16)touchLocation.x, (u16)touchLocation.y); + } + else + { + NDS_releaseTouch(); + } + + // Setup the DS mic. + bool isMicPressed = [self isInputPressed:@"Microphone"]; + NDS_setMic(isMicPressed); + + pthread_mutex_unlock(self.mutexControllerUpdate); + + if (isMicPressed) + { + if (self.cdsMic.mode == MICMODE_NONE) + { + [self.cdsMic fillWithNullSamples]; + } + else if (self.cdsMic.mode == MICMODE_INTERNAL_NOISE) + { + [self.cdsMic fillWithInternalNoise]; + } + else if (self.cdsMic.mode == MICMODE_WHITE_NOISE) + { + [self.cdsMic fillWithWhiteNoise]; + } + else if (self.cdsMic.mode == MICMODE_SOUND_FILE) + { + // TODO: Need to implement. Does nothing for now. + } + } +} + +- (void) handleHIDInput:(NSNotification *)aNotification +{ + NSArray *inputPropertiesList = (NSArray *)[aNotification object]; + + [self setStateWithMultipleInputs:inputPropertiesList]; +} + +@end diff --git a/desmume/src/cocoa/cocoa_mic.h b/desmume/src/cocoa/cocoa_mic.h new file mode 100644 index 000000000..5987a5b16 --- /dev/null +++ b/desmume/src/cocoa/cocoa_mic.h @@ -0,0 +1,63 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + + +#define NUM_INTERNAL_NOISE_SAMPLES 32 + +static const UInt8 noiseSample[NUM_INTERNAL_NOISE_SAMPLES] = +{ + 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0x8E, 0xFF, + 0xF4, 0xE1, 0xBF, 0x9A, 0x71, 0x58, 0x5B, 0x5F, 0x62, 0xC2, 0x25, 0x05, 0x01, 0x01, 0x01, 0x01 +}; + +@interface CocoaDSMic : NSObject +{ + UInt8 *buffer; + UInt8 *readPosition; + UInt8 *writePosition; + NSUInteger fillCount; + BOOL needsActivate; + NSInteger mode; + + NSUInteger internalSamplePosition; +} + +@property (readonly) UInt8 *buffer; +@property (readonly) UInt8 *readPosition; +@property (readonly) UInt8 *writePosition; +@property (readonly) NSUInteger fillCount; +@property (assign) BOOL needsActivate; +@property (assign) NSInteger mode; + +- (void) clear; +- (NSUInteger) fillCountRemaining; +- (BOOL) isFull; +- (BOOL) isEmpty; +- (UInt8) read; +- (void) write:(UInt8)theSample; +- (UInt8) generateInternalNoiseSample; +- (UInt8) generateWhiteNoiseSample; +- (void) fillWithNullSamples; +- (void) fillWithInternalNoise; +- (void) fillWithWhiteNoise; ++ (CocoaDSMic *) masterMic; ++ (void) setMasterMic:(CocoaDSMic *)theMic; + +@end diff --git a/desmume/src/cocoa/cocoa_mic.mm b/desmume/src/cocoa/cocoa_mic.mm new file mode 100644 index 000000000..fc4e34d05 --- /dev/null +++ b/desmume/src/cocoa/cocoa_mic.mm @@ -0,0 +1,251 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_mic.h" +#import "cocoa_globals.h" + +#include "../NDSSystem.h" +#undef BOOL + +static CocoaDSMic *masterMic = nil; + +@implementation CocoaDSMic + +@synthesize buffer; +@synthesize readPosition; +@synthesize writePosition; +@synthesize fillCount; +@synthesize needsActivate; +@synthesize mode; + +- (id)init +{ + self = [super init]; + if (self == nil) + { + return self; + } + + UInt8 *newBuffer = (UInt8 *)malloc(MIC_BUFFER_SIZE); + if (newBuffer == nil) + { + [self release]; + return nil; + } + + buffer = newBuffer; + [self clear]; + + internalSamplePosition = 0; + needsActivate = YES; + mode = MICMODE_NONE; + + [CocoaDSMic setMasterMic:self]; + + return self; +} + +- (void)dealloc +{ + if ([CocoaDSMic masterMic] == self) + { + [CocoaDSMic setMasterMic:nil]; + } + + free(buffer); + buffer = NULL; + + [super dealloc]; +} + +- (void) mode:(NSInteger)theMode +{ + switch (theMode) + { + case MICMODE_NONE: + self.needsActivate = YES; + break; + + case MICMODE_INTERNAL_NOISE: + self.needsActivate = YES; + break; + + case MICMODE_SOUND_FILE: + self.needsActivate = YES; + break; + + case MICMODE_WHITE_NOISE: + self.needsActivate = YES; + break; + + case MICMODE_PHYSICAL: + self.needsActivate = NO; + break; + + default: + break; + } +} + +- (void) clear +{ + memset(buffer, MIC_NULL_SAMPLE_VALUE, MIC_BUFFER_SIZE); + readPosition = buffer; + writePosition = buffer; + fillCount = 0; +} + +- (NSUInteger) fillCountRemaining +{ + return (MIC_MAX_BUFFER_SAMPLES - self.fillCount); +} + +- (BOOL) isFull +{ + return (self.fillCount >= MIC_MAX_BUFFER_SAMPLES); +} + +- (BOOL) isEmpty +{ + return (self.fillCount == 0); +} + +- (UInt8) read +{ + UInt8 theSample = MIC_NULL_SAMPLE_VALUE; + + bool isMicActive = NDS_getFinalUserInput().mic.micButtonPressed; + if ([self isEmpty] || (self.needsActivate && !isMicActive)) + { + return theSample; + } + + theSample = *readPosition; + readPosition++; + fillCount--; + + // Move the pointer back to start if we reach the end of the memory block. + if (readPosition >= (buffer + MIC_BUFFER_SIZE)) + { + readPosition = buffer; + } + + return theSample; +} + +- (void) write:(UInt8)theSample +{ + if ([self isFull]) + { + return; + } + + *writePosition = theSample; + writePosition++; + fillCount++; + + // Move the pointer back to start if we reach the end of the memory block. + if (writePosition >= (buffer + MIC_BUFFER_SIZE)) + { + writePosition = buffer; + } +} + +- (UInt8) generateInternalNoiseSample +{ + internalSamplePosition++; + if (internalSamplePosition >= NUM_INTERNAL_NOISE_SAMPLES) + { + internalSamplePosition = 0; + } + + return noiseSample[internalSamplePosition]; +} + +- (UInt8) generateWhiteNoiseSample +{ + return (UInt8)(rand() & 0xFF); +} + +- (void) fillWithNullSamples +{ + while (self.fillCount < MIC_MAX_BUFFER_SAMPLES) + { + [self write:MIC_NULL_SAMPLE_VALUE]; + } +} + +- (void) fillWithInternalNoise +{ + while (self.fillCount < MIC_MAX_BUFFER_SAMPLES) + { + [self write:[self generateInternalNoiseSample]]; + } +} + +- (void) fillWithWhiteNoise +{ + while (self.fillCount < MIC_MAX_BUFFER_SAMPLES) + { + [self write:[self generateWhiteNoiseSample]]; + } +} + ++ (CocoaDSMic *) masterMic +{ + return masterMic; +} + ++ (void) setMasterMic:(CocoaDSMic *)theMic +{ + masterMic = theMic; +} + +@end + +BOOL Mic_Init() +{ + // Do nothing. The CocoaDSMic object will take care of this. + return TRUE; +} + +void Mic_Reset() +{ + // Do nothing. +} + +void Mic_DeInit() +{ + // Do nothing. The CocoaDSMic object will take care of this. +} + +u8 Mic_ReadSample() +{ + return [masterMic read]; +} + +void mic_savestate(EMUFILE* os) +{ + write32le(-1, os); +} + +bool mic_loadstate(EMUFILE* is, int size) +{ + is->fseek(size, SEEK_CUR); + return true; +} diff --git a/desmume/src/cocoa/cocoa_output.h b/desmume/src/cocoa/cocoa_output.h new file mode 100644 index 000000000..09927af1b --- /dev/null +++ b/desmume/src/cocoa/cocoa_output.h @@ -0,0 +1,207 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include +#include + +#import "cocoa_util.h" + + +@interface CocoaDSOutput : CocoaDSThread +{ + BOOL isStateChanged; + NSUInteger frameCount; + NSData *frameData; + NSMutableDictionary *property; + + pthread_mutex_t *mutexOutputFrame; +} + +@property (assign) BOOL isStateChanged; +@property (assign) NSUInteger frameCount; +@property (assign) NSData *frameData; +@property (assign) NSMutableDictionary *property; +@property (readonly) pthread_mutex_t *mutexOutputFrame; + +- (void) doCoreEmuFrame; +- (void) handleEmuFrameProcessed:(NSData *)theData; + +@end + +@interface CocoaDSSpeaker : CocoaDSOutput +{ + NSUInteger bufferSize; + + OSSpinLock spinlockAudioOutputEngine; + OSSpinLock spinlockVolume; + OSSpinLock spinlockSpuAdvancedLogic; + OSSpinLock spinlockSpuInterpolationMode; + OSSpinLock spinlockSpuSyncMode; + OSSpinLock spinlockSpuSyncMethod; +} + +@property (assign) NSUInteger bufferSize; + +- (id) init; +- (id) initWithVolume:(CGFloat)vol; +- (void) dealloc; + ++ (BOOL) startupSPU; ++ (void) shutdownSPU; ++ (BOOL) isSPUStarted; + +- (void) setVolume:(float)vol; +- (float) volume; +- (void) setAudioOutputEngine:(NSInteger)methodID; +- (NSInteger) audioOutputEngine; +- (void) setSpuAdvancedLogic:(BOOL)state; +- (BOOL) spuAdvancedLogic; +- (void) setSpuInterpolationMode:(NSInteger)modeID; +- (NSInteger) spuInterpolationMode; +- (void) setSpuSyncMode:(NSInteger)modeID; +- (NSInteger) spuSyncMode; +- (void) setSpuSyncMethod:(NSInteger)methodID; +- (NSInteger) spuSyncMethod; + +- (BOOL) mute; +- (void) setMute:(BOOL)mute; +- (NSInteger) filter; +- (void) setFilter:(NSInteger)filter; +- (void) handleSetVolume:(NSData *)volumeData; +- (void) handleSetAudioOutputEngine:(NSData *)methodIdData; +- (void) handleSetSpuAdvancedLogic:(NSData *)stateData; +- (void) handleSetSpuSyncMode:(NSData *)modeIdData; +- (void) handleSetSpuSyncMethod:(NSData *)methodIdData; +- (void) handleSetSpuInterpolationMode:(NSData *)modeIdData; + +@end + +@class CocoaVideoFilter; + +@protocol CocoaDSDisplayDelegate + +@required +- (void) doInitVideoOutput:(NSDictionary *)properties; +- (void) doProcessVideoFrame:(const void *)videoFrameData frameSize:(NSSize)frameSize; + +@property (assign) NSPort *sendPortDisplay; + +@optional +- (void) doResizeView:(NSRect)rect; +- (void) doRedraw; +- (void) doDisplayTypeChanged:(NSInteger)displayTypeID; +- (void) doBilinearOutputChanged:(BOOL)useBilinear; +- (void) doVideoFilterChanged:(NSInteger)videoFilterTypeID; + +@property (assign) BOOL isHudEnabled; +@property (assign) BOOL isHudEditingModeEnabled; + +@end + + +@interface CocoaDSDisplay : CocoaDSOutput +{ + UInt32 gpuStateFlags; + id delegate; + NSInteger displayType; + CocoaVideoFilter *vf; + + pthread_mutex_t *mutexRender3D; + OSSpinLock spinlockGpuState; + OSSpinLock spinlockDisplayType; + OSSpinLock spinlockVideoFilterType; + OSSpinLock spinlockVfSrcBuffer; + OSSpinLock spinlockRender3DRenderingEngine; + OSSpinLock spinlockRender3DHighPrecisionColorInterpolation; + OSSpinLock spinlockRender3DEdgeMarking; + OSSpinLock spinlockRender3DFog; + OSSpinLock spinlockRender3DTextures; + OSSpinLock spinlockRender3DDepthComparisonThreshold; + OSSpinLock spinlockRender3DThreads; + OSSpinLock spinlockRender3DLineHack; +} + +@property (assign) UInt32 gpuStateFlags; +@property (assign) id delegate; +@property (assign) NSInteger displayType; +@property (assign) CocoaVideoFilter *vf; +@property (readonly) pthread_mutex_t *mutexRender3D; + +- (void) setRender3DRenderingEngine:(NSInteger)methodID; +- (NSInteger) render3DRenderingEngine; +- (void) setRender3DHighPrecisionColorInterpolation:(BOOL)state; +- (BOOL) render3DHighPrecisionColorInterpolation; +- (void) setRender3DEdgeMarking:(BOOL)state; +- (BOOL) render3DEdgeMarking; +- (void) setRender3DFog:(BOOL)state; +- (BOOL) render3DFog; +- (void) setRender3DTextures:(BOOL)state; +- (BOOL) render3DTextures; +- (void) setRender3DDepthComparisonThreshold:(NSUInteger)threshold; +- (NSUInteger) render3DDepthComparisonThreshold; +- (void) setRender3DThreads:(NSUInteger)numberThreads; +- (NSUInteger) render3DThreads; +- (void) setRender3DLineHack:(BOOL)state; +- (BOOL) render3DLineHack; + +- (void) handleResizeView:(NSData *)rectData; +- (void) handleRedrawView; +- (void) handleChangeGpuStateFlags:(NSData *)flagsData; +- (void) handleChangeDisplayType:(NSData *)displayTypeIdData; +- (void) handleChangeBilinearOutput:(NSData *)bilinearStateData; +- (void) handleChangeVideoFilter:(NSData *)videoFilterTypeIdData; +- (void) handleSetRender3DRenderingEngine:(NSData *)methodIdData; +- (void) handleSetRender3DHighPrecisionColorInterpolation:(NSData *)stateData; +- (void) handleSetRender3DEdgeMarking:(NSData *)stateData; +- (void) handleSetRender3DFog:(NSData *)stateData; +- (void) handleSetRender3DTextures:(NSData *)stateData; +- (void) handleSetRender3DDepthComparisonThreshold:(NSData *)thresholdData; +- (void) handleSetRender3DThreads:(NSData *)numberThreadsData; +- (void) handleSetRender3DLineHack:(NSData *)stateData; +- (void) handleSetViewToBlack; +- (void) handleSetViewToWhite; +- (void) handleRequestScreenshot:(NSData *)fileURLStringData fileTypeData:(NSData *)fileTypeData; +- (void) handleCopyToPasteboard; + +- (NSImage *) image; +- (NSBitmapImageRep *) bitmapImageRep; + +- (BOOL) gpuStateByBit:(UInt32)stateBit; +- (BOOL) isGPUTypeDisplayed:(NSInteger)theGpuType; +- (void) hideGPUType:(NSInteger)theGpuType; +- (void) showGPUType:(NSInteger)theGpuType; + +@end + +#ifdef __cplusplus +extern "C" +{ +#endif + +bool opengl_init(); + +void HandleMessageEchoResponse(NSPortMessage *portMessage); +void SetGPULayerState(int displayType, unsigned int i, bool state); +bool GetGPULayerState(int displayType, unsigned int i); +void SetGPUDisplayState(int displayType, bool state); +bool GetGPUDisplayState(int displayType); + +#ifdef __cplusplus +} +#endif diff --git a/desmume/src/cocoa/cocoa_output.mm b/desmume/src/cocoa/cocoa_output.mm new file mode 100644 index 000000000..dbf6095c3 --- /dev/null +++ b/desmume/src/cocoa/cocoa_output.mm @@ -0,0 +1,1723 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_output.h" +#import "cocoa_globals.h" +#import "cocoa_videofilter.h" +#import "cocoa_util.h" + +#include +#include "sndOSX.h" + +#include "../NDSSystem.h" +#include "../GPU.h" +#include "../OGLRender.h" +#include "../rasterize.h" +#include "../SPU.h" +#include "../metaspu/metaspu.h" + +#undef BOOL + +GPU3DInterface *core3DList[] = { + &gpu3DNull, + &gpu3DRasterize, + //&gpu3Dgl, + NULL +}; + +SoundInterface_struct *SNDCoreList[] = { + &SNDDummy, + &SNDOSX, + NULL +}; + +@implementation CocoaDSOutput + +@synthesize isStateChanged; +@synthesize frameCount; +@synthesize frameData; +@synthesize property; +@synthesize mutexOutputFrame; + +- (id)init +{ + self = [super init]; + if (self == nil) + { + return self; + } + + isStateChanged = NO; + frameCount = 0; + frameData = nil; + + property = [[NSMutableDictionary alloc] init]; + [property setValue:[NSDate date] forKey:@"outputTime"]; + + mutexOutputFrame = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); + pthread_mutex_init(mutexOutputFrame, NULL); + + return self; +} + +- (void)dealloc +{ + // Exit the thread. + if (self.thread != nil) + { + self.threadExit = YES; + + // Wait until the thread has shut down. + while (self.thread != nil) + { + [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]; + } + } + + [frameData release]; + [property release]; + + pthread_mutex_destroy(mutexOutputFrame); + free(mutexOutputFrame); + mutexOutputFrame = nil; + + [super dealloc]; +} + +- (void) doCoreEmuFrame +{ + [CocoaDSUtil messageSendOneWay:self.receivePort msgID:MESSAGE_EMU_FRAME_PROCESSED]; +} + +- (void)handlePortMessage:(NSPortMessage *)portMessage +{ + NSInteger message = (NSInteger)[portMessage msgid]; + NSArray *messageComponents = [portMessage components]; + + switch (message) + { + case MESSAGE_EMU_FRAME_PROCESSED: + [self handleEmuFrameProcessed:[messageComponents objectAtIndex:0]]; + break; + + default: + [super handlePortMessage:portMessage]; + break; + } +} + +- (void) handleEmuFrameProcessed:(NSData *)theData +{ + self.frameCount++; + + if (self.frameData != theData) + { + [self.frameData release]; + self.frameData = theData; + [self.frameData retain]; + } +} + +@end + +@implementation CocoaDSSpeaker + +@synthesize bufferSize; + +static BOOL isSPUStarted = NO; + +- (id)init +{ + return [self initWithVolume:MAX_VOLUME]; +} + +- (id) initWithVolume:(CGFloat)vol +{ + self = [super init]; + if (self == nil) + { + return self; + } + + spinlockAudioOutputEngine = OS_SPINLOCK_INIT; + spinlockVolume = OS_SPINLOCK_INIT; + spinlockSpuAdvancedLogic = OS_SPINLOCK_INIT; + spinlockSpuInterpolationMode = OS_SPINLOCK_INIT; + spinlockSpuSyncMode = OS_SPINLOCK_INIT; + spinlockSpuSyncMethod = OS_SPINLOCK_INIT; + + bufferSize = 0; + + // Set up properties. + [property setValue:[NSNumber numberWithFloat:(float)vol] forKey:@"volume"]; + [property setValue:[NSNumber numberWithBool:NO] forKey:@"mute"]; + [property setValue:[NSNumber numberWithInteger:0] forKey:@"filter"]; + [property setValue:[NSNumber numberWithInteger:SNDCORE_OSX] forKey:@"audioOutputEngine"]; + [property setValue:[NSNumber numberWithBool:NO] forKey:@"spuAdvancedLogic"]; + [property setValue:[NSNumber numberWithInteger:SPUInterpolation_None] forKey:@"spuInterpolationMode"]; + [property setValue:[NSNumber numberWithInteger:SPU_SYNC_MODE_DUAL_SYNC_ASYNC] forKey:@"spuSyncMode"]; + [property setValue:[NSNumber numberWithInteger:SPU_SYNC_METHOD_N] forKey:@"spuSyncMethod"]; + + return self; +} + +- (void)dealloc +{ + [super dealloc]; +} + ++ (BOOL) startupSPU +{ + NSInteger result = -1; + + if (isSPUStarted) + { + return isSPUStarted; + } + + SNDOSXStartup(); + + result = SPU_ChangeSoundCore(SNDCORE_OSX, (int)SPU_BUFFER_BYTES); + if(result == -1) + { + SPU_ChangeSoundCore(SNDCORE_DUMMY, 0); + isSPUStarted = NO; + return isSPUStarted; + } + + SPU_SetVolume(0); + isSPUStarted = YES; + + return isSPUStarted; +} + ++ (void) shutdownSPU +{ + SPU_ChangeSoundCore(SNDCORE_DUMMY, 0); + SNDOSXShutdown(); + isSPUStarted = NO; +} + ++ (BOOL) isSPUStarted +{ + return isSPUStarted; +} + +- (void) setVolume:(float)vol +{ + if (vol < 0.0f) + { + vol = 0.0f; + } + else if (vol > MAX_VOLUME) + { + vol = MAX_VOLUME; + } + + OSSpinLockLock(&spinlockVolume); + [property setValue:[NSNumber numberWithFloat:vol] forKey:@"volume"]; + OSSpinLockUnlock(&spinlockVolume); + + if (isSPUStarted) + { + //pthread_mutex_lock(self.mutexOutputFrame); + SPU_SetVolume((int)vol); + //pthread_mutex_unlock(self.mutexOutputFrame); + } +} + +- (float) volume +{ + OSSpinLockLock(&spinlockVolume); + float vol = [(NSNumber *)[property valueForKey:@"volume"] floatValue]; + OSSpinLockUnlock(&spinlockVolume); + + return vol; +} + +- (void) setAudioOutputEngine:(NSInteger)methodID +{ + OSSpinLockLock(&spinlockAudioOutputEngine); + [property setValue:[NSNumber numberWithInteger:methodID] forKey:@"audioOutputEngine"]; + OSSpinLockUnlock(&spinlockAudioOutputEngine); + + pthread_mutex_lock(self.mutexOutputFrame); + + NSInteger result = -1; + switch (methodID) + { + case SNDCORE_OSX: + result = SPU_ChangeSoundCore(methodID, (int)SPU_BUFFER_BYTES); + break; + + default: + SPU_ChangeSoundCore(SNDCORE_DUMMY, 0); + break; + } + + if(result == -1) + { + SPU_ChangeSoundCore(SNDCORE_DUMMY, 0); + } + + pthread_mutex_unlock(self.mutexOutputFrame); + + // Force the volume back to it's original setting. + [self setVolume:[self volume]]; +} + +- (NSInteger) audioOutputEngine +{ + OSSpinLockLock(&spinlockAudioOutputEngine); + NSInteger methodID = [(NSNumber *)[property valueForKey:@"audioOutputEngine"] integerValue]; + OSSpinLockUnlock(&spinlockAudioOutputEngine); + + return methodID; +} + +- (void) setSpuAdvancedLogic:(BOOL)state +{ + OSSpinLockLock(&spinlockSpuAdvancedLogic); + [property setValue:[NSNumber numberWithBool:state] forKey:@"spuAdvancedLogic"]; + OSSpinLockUnlock(&spinlockSpuAdvancedLogic); + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.spu_advanced = state; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (BOOL) spuAdvancedLogic +{ + OSSpinLockLock(&spinlockSpuAdvancedLogic); + BOOL state = [(NSNumber *)[property valueForKey:@"spuAdvancedLogic"] boolValue]; + OSSpinLockUnlock(&spinlockSpuAdvancedLogic); + + return state; +} + +- (void) setSpuInterpolationMode:(NSInteger)modeID +{ + OSSpinLockLock(&spinlockSpuInterpolationMode); + [property setValue:[NSNumber numberWithInteger:modeID] forKey:@"spuInterpolationMode"]; + OSSpinLockUnlock(&spinlockSpuInterpolationMode); + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.spuInterpolationMode = (SPUInterpolationMode)modeID; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (NSInteger) spuInterpolationMode +{ + OSSpinLockLock(&spinlockSpuInterpolationMode); + NSInteger modeID = [(NSNumber *)[property valueForKey:@"spuInterpolationMode"] integerValue]; + OSSpinLockUnlock(&spinlockSpuInterpolationMode); + + return modeID; +} + +- (void) setSpuSyncMode:(NSInteger)modeID +{ + OSSpinLockLock(&spinlockSpuSyncMode); + [property setValue:[NSNumber numberWithInteger:modeID] forKey:@"spuSyncMode"]; + OSSpinLockUnlock(&spinlockSpuSyncMode); + + NSInteger methodID = [self spuSyncMethod]; + + pthread_mutex_lock(self.mutexOutputFrame); + SPU_SetSynchMode(modeID, methodID); + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (NSInteger) spuSyncMode +{ + OSSpinLockLock(&spinlockSpuSyncMode); + NSInteger modeID = [(NSNumber *)[property valueForKey:@"spuSyncMode"] integerValue]; + OSSpinLockUnlock(&spinlockSpuSyncMode); + + return modeID; +} + +- (void) setSpuSyncMethod:(NSInteger)methodID +{ + OSSpinLockLock(&spinlockSpuSyncMethod); + [property setValue:[NSNumber numberWithInteger:methodID] forKey:@"spuSyncMethod"]; + OSSpinLockUnlock(&spinlockSpuSyncMethod); + + NSInteger modeID = [self spuSyncMode]; + + pthread_mutex_lock(self.mutexOutputFrame); + SPU_SetSynchMode(modeID, methodID); + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (NSInteger) spuSyncMethod +{ + OSSpinLockLock(&spinlockSpuSyncMethod); + NSInteger methodID = [(NSNumber *)[property valueForKey:@"spuSyncMethod"] integerValue]; + OSSpinLockUnlock(&spinlockSpuSyncMethod); + + return methodID; +} + +- (BOOL) mute +{ + return [[property objectForKey:@"mute"] boolValue]; +} + +- (void) setMute:(BOOL)mute +{ + [property setValue:[NSNumber numberWithBool:mute] forKey:@"mute"]; + + if (isSPUStarted) + { + if (mute) + { + SPU_SetVolume(0); + } + else + { + SPU_SetVolume((int)[self volume]); + } + } +} + +- (NSInteger) filter +{ + return [[property objectForKey:@"filter"] integerValue]; +} + +- (void) setFilter:(NSInteger)filter +{ + [property setValue:[NSNumber numberWithInteger:filter] forKey:@"filter"]; +} + +- (void) runThread:(id)object +{ + [CocoaDSSpeaker startupSPU]; + SPU_SetVolume((int)[self volume]); + + [super runThread:object]; + + [CocoaDSSpeaker shutdownSPU]; +} + +- (void)handlePortMessage:(NSPortMessage*)portMessage +{ + NSInteger message = (NSInteger)[portMessage msgid]; + NSArray *messageComponents = [portMessage components]; + + switch (message) + { + case MESSAGE_EMU_FRAME_PROCESSED: + [self handleEmuFrameProcessed:nil]; + break; + + case MESSAGE_SET_AUDIO_PROCESS_METHOD: + [self handleSetAudioOutputEngine:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_SPU_ADVANCED_LOGIC: + [self handleSetSpuAdvancedLogic:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_SPU_SYNC_MODE: + [self handleSetSpuSyncMode:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_SPU_SYNC_METHOD: + [self handleSetSpuSyncMethod:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_SPU_INTERPOLATION_MODE: + [self handleSetSpuInterpolationMode:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_VOLUME: + [self handleSetVolume:[messageComponents objectAtIndex:0]]; + break; + + default: + [super handlePortMessage:portMessage]; + break; + } +} + +- (void) handleEmuFrameProcessed:(NSData *)theData +{ + SPU_Emulate_user(); + + [super handleEmuFrameProcessed:theData]; +} + +- (void) handleSetVolume:(NSData *)volumeData +{ + const float *vol = (float *)[volumeData bytes]; + [self setVolume:*vol]; +} + +- (void) handleSetAudioOutputEngine:(NSData *)methodIdData +{ + const NSInteger *methodID = (NSInteger *)[methodIdData bytes]; + [self setAudioOutputEngine:*methodID]; +} + +- (void) handleSetSpuAdvancedLogic:(NSData *)stateData +{ + const BOOL *theState = (BOOL *)[stateData bytes]; + [self setSpuAdvancedLogic:*theState]; +} + +- (void) handleSetSpuSyncMode:(NSData *)modeIdData +{ + const NSInteger *modeID = (NSInteger *)[modeIdData bytes]; + [self setSpuSyncMode:*modeID]; +} + +- (void) handleSetSpuSyncMethod:(NSData *)methodIdData +{ + const NSInteger *methodID = (NSInteger *)[methodIdData bytes]; + [self setSpuSyncMethod:*methodID]; +} + +- (void) handleSetSpuInterpolationMode:(NSData *)modeIdData +{ + const NSInteger *modeID = (NSInteger *)[modeIdData bytes]; + [self setSpuInterpolationMode:*modeID]; +} + +@end + +@implementation CocoaDSDisplay + +@synthesize gpuStateFlags; +@synthesize delegate; +@synthesize displayType; +@synthesize vf; +@synthesize mutexRender3D; + +- (id)init +{ + self = [super init]; + if (self == nil) + { + return self; + } + + mutexRender3D = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); + pthread_mutex_init(mutexRender3D, NULL); + + spinlockGpuState = OS_SPINLOCK_INIT; + spinlockDisplayType = OS_SPINLOCK_INIT; + spinlockVideoFilterType = OS_SPINLOCK_INIT; + spinlockVfSrcBuffer = OS_SPINLOCK_INIT; + spinlockRender3DRenderingEngine = OS_SPINLOCK_INIT; + spinlockRender3DHighPrecisionColorInterpolation = OS_SPINLOCK_INIT; + spinlockRender3DEdgeMarking = OS_SPINLOCK_INIT; + spinlockRender3DFog = OS_SPINLOCK_INIT; + spinlockRender3DTextures = OS_SPINLOCK_INIT; + spinlockRender3DDepthComparisonThreshold = OS_SPINLOCK_INIT; + spinlockRender3DThreads = OS_SPINLOCK_INIT; + spinlockRender3DLineHack = OS_SPINLOCK_INIT; + + displayType = DS_DISPLAY_TYPE_COMBO; + vf = [[CocoaVideoFilter alloc] initWithSize:NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT * 2)]; + + gpuStateFlags = GPUSTATE_MAIN_GPU_MASK | + GPUSTATE_MAIN_BG0_MASK | + GPUSTATE_MAIN_BG1_MASK | + GPUSTATE_MAIN_BG2_MASK | + GPUSTATE_MAIN_BG3_MASK | + GPUSTATE_MAIN_OBJ_MASK | + GPUSTATE_SUB_GPU_MASK | + GPUSTATE_SUB_BG0_MASK | + GPUSTATE_SUB_BG1_MASK | + GPUSTATE_SUB_BG2_MASK | + GPUSTATE_SUB_BG3_MASK | + GPUSTATE_SUB_OBJ_MASK; + + frameCount = 0; + frameData = nil; + delegate = nil; + + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainGPU"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG0"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG1"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG2"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG3"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainOBJ"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubGPU"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG0"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG1"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG2"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG3"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubOBJ"]; + [property setValue:[NSNumber numberWithInteger:displayType] forKey:@"displayMode"]; + [property setValue:NSSTRING_DISPLAYMODE_MAIN forKey:@"displayModeString"]; + [property setValue:[NSNumber numberWithInteger:(NSInteger)VideoFilterTypeID_None] forKey:@"videoFilterType"]; + [property setValue:[CocoaVideoFilter typeStringByID:VideoFilterTypeID_None] forKey:@"videoFilterTypeString"]; + [property setValue:[NSNumber numberWithInteger:CORE3DLIST_NULL] forKey:@"render3DRenderingEngine"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"render3DHighPrecisionColorInterpolation"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"render3DEdgeMarking"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"render3DFog"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"render3DTextures"]; + [property setValue:[NSNumber numberWithInteger:0] forKey:@"render3DDepthComparisonThreshold"]; + [property setValue:[NSNumber numberWithInteger:0] forKey:@"render3DThreads"]; + [property setValue:[NSNumber numberWithBool:YES] forKey:@"render3DLineHack"]; + + return self; +} + +- (void)dealloc +{ + [vf release]; + + pthread_mutex_destroy(self.mutexRender3D); + free(self.mutexRender3D); + mutexRender3D = nil; + + [super dealloc]; +} + +- (void) setDelegate:(id )theDelegate +{ + if (theDelegate == nil) + { + [delegate release]; + } + else + { + [theDelegate retain]; + [theDelegate setSendPortDisplay:self.receivePort]; + } + + delegate = theDelegate; +} + +- (id ) delegate +{ + return delegate; +} + +- (void) setGpuStateFlags:(UInt32)flags +{ + OSSpinLockLock(&spinlockGpuState); + + gpuStateFlags = flags; + + if (flags & GPUSTATE_MAIN_GPU_MASK) + { + SetGPUDisplayState(DS_GPU_TYPE_MAIN, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainGPU"]; + } + else + { + SetGPUDisplayState(DS_GPU_TYPE_MAIN, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateMainGPU"]; + } + + if (flags & GPUSTATE_MAIN_BG0_MASK) + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 0, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG0"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 0, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateMainBG0"]; + } + + if (flags & GPUSTATE_MAIN_BG1_MASK) + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 1, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG1"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 1, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateMainBG1"]; + } + + if (flags & GPUSTATE_MAIN_BG2_MASK) + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 2, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG2"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 2, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateMainBG2"]; + } + + if (flags & GPUSTATE_MAIN_BG3_MASK) + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 3, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainBG3"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 3, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateMainBG3"]; + } + + if (flags & GPUSTATE_MAIN_OBJ_MASK) + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 4, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateMainOBJ"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_MAIN, 4, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateMainOBJ"]; + } + + if (flags & GPUSTATE_SUB_GPU_MASK) + { + SetGPUDisplayState(DS_GPU_TYPE_SUB, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubGPU"]; + } + else + { + SetGPUDisplayState(DS_GPU_TYPE_SUB, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateSubGPU"]; + } + + if (flags & GPUSTATE_SUB_BG0_MASK) + { + SetGPULayerState(DS_GPU_TYPE_SUB, 0, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG0"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_SUB, 0, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateSubBG0"]; + } + + if (flags & GPUSTATE_SUB_BG1_MASK) + { + SetGPULayerState(DS_GPU_TYPE_SUB, 1, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG1"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_SUB, 1, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateSubBG1"]; + } + + if (flags & GPUSTATE_SUB_BG2_MASK) + { + SetGPULayerState(DS_GPU_TYPE_SUB, 2, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG2"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_SUB, 2, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateSubBG2"]; + } + + if (flags & GPUSTATE_SUB_BG3_MASK) + { + SetGPULayerState(DS_GPU_TYPE_SUB, 3, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubBG3"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_SUB, 3, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateSubBG3"]; + } + + if (flags & GPUSTATE_SUB_OBJ_MASK) + { + SetGPULayerState(DS_GPU_TYPE_SUB, 4, true); + [property setValue:[NSNumber numberWithBool:YES] forKey:@"gpuStateSubOBJ"]; + } + else + { + SetGPULayerState(DS_GPU_TYPE_SUB, 4, false); + [property setValue:[NSNumber numberWithBool:NO] forKey:@"gpuStateSubOBJ"]; + } + + OSSpinLockUnlock(&spinlockGpuState); +} + +- (UInt32) gpuStateFlags +{ + OSSpinLockLock(&spinlockGpuState); + UInt32 flags = gpuStateFlags; + OSSpinLockUnlock(&spinlockGpuState); + + return flags; +} + +- (void) setDisplayType:(NSInteger)dispType +{ + OSSpinLockLock(&spinlockDisplayType); + + displayType = dispType; + [property setValue:[NSNumber numberWithInteger:dispType] forKey:@"displayMode"]; + + NSSize newSrcSize = NSMakeSize((CGFloat)GPU_DISPLAY_WIDTH, (CGFloat)GPU_DISPLAY_HEIGHT); + + switch (dispType) + { + case DS_DISPLAY_TYPE_MAIN: + [property setValue:NSSTRING_DISPLAYMODE_MAIN forKey:@"displayModeString"]; + break; + + case DS_DISPLAY_TYPE_TOUCH: + [property setValue:NSSTRING_DISPLAYMODE_TOUCH forKey:@"displayModeString"]; + break; + + case DS_DISPLAY_TYPE_COMBO: + [property setValue:NSSTRING_DISPLAYMODE_COMBO forKey:@"displayModeString"]; + newSrcSize.height *= 2; + break; + + default: + OSSpinLockUnlock(&spinlockDisplayType); + return; + break; + } + + OSSpinLockUnlock(&spinlockDisplayType); + + OSSpinLockLock(&spinlockVfSrcBuffer); + [vf setSourceSize:newSrcSize]; + OSSpinLockUnlock(&spinlockVfSrcBuffer); +} + +- (NSInteger) displayType +{ + OSSpinLockLock(&spinlockDisplayType); + NSInteger dispType = displayType; + OSSpinLockUnlock(&spinlockDisplayType); + + return dispType; +} + +- (void) setVfType:(NSInteger)videoFilterTypeID +{ + [vf changeFilter:(VideoFilterTypeID)videoFilterTypeID]; + + OSSpinLockLock(&spinlockVideoFilterType); + [property setValue:[NSNumber numberWithInteger:videoFilterTypeID] forKey:@"videoFilterType"]; + [property setValue:NSLocalizedString([vf typeString], nil) forKey:@"videoFilterTypeString"]; + OSSpinLockUnlock(&spinlockVideoFilterType); +} + +- (NSInteger) vfType +{ + OSSpinLockLock(&spinlockVideoFilterType); + NSInteger theType = [(NSNumber *)[property valueForKey:@"videoFilterType"] integerValue]; + OSSpinLockUnlock(&spinlockVideoFilterType); + + return theType; +} + +- (void) setRender3DRenderingEngine:(NSInteger)methodID +{ + OSSpinLockLock(&spinlockRender3DRenderingEngine); + [property setValue:[NSNumber numberWithInteger:methodID] forKey:@"render3DRenderingEngine"]; + OSSpinLockUnlock(&spinlockRender3DRenderingEngine); + + pthread_mutex_lock(self.mutexOutputFrame); + NDS_3D_ChangeCore(methodID); + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (NSInteger) render3DRenderingEngine +{ + OSSpinLockLock(&spinlockRender3DRenderingEngine); + NSInteger methodID = [(NSNumber *)[property valueForKey:@"render3DRenderingEngine"] integerValue]; + OSSpinLockUnlock(&spinlockRender3DRenderingEngine); + + return methodID; +} + +- (void) setRender3DHighPrecisionColorInterpolation:(BOOL)state +{ + OSSpinLockLock(&spinlockRender3DHighPrecisionColorInterpolation); + [property setValue:[NSNumber numberWithBool:state] forKey:@"render3DHighPrecisionColorInterpolation"]; + OSSpinLockUnlock(&spinlockRender3DHighPrecisionColorInterpolation); + + bool cState = false; + if (state) + { + cState = true; + } + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.GFX3D_HighResolutionInterpolateColor = cState; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (BOOL) render3DHighPrecisionColorInterpolation +{ + OSSpinLockLock(&spinlockRender3DHighPrecisionColorInterpolation); + BOOL state = [(NSNumber *)[property valueForKey:@"render3DHighPrecisionColorInterpolation"] boolValue]; + OSSpinLockUnlock(&spinlockRender3DHighPrecisionColorInterpolation); + + return state; +} + +- (void) setRender3DEdgeMarking:(BOOL)state +{ + OSSpinLockLock(&spinlockRender3DEdgeMarking); + [property setValue:[NSNumber numberWithBool:state] forKey:@"render3DEdgeMarking"]; + OSSpinLockUnlock(&spinlockRender3DEdgeMarking); + + bool cState = false; + if (state) + { + cState = true; + } + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.GFX3D_EdgeMark = cState; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (BOOL) render3DEdgeMarking +{ + OSSpinLockLock(&spinlockRender3DEdgeMarking); + BOOL state = [(NSNumber *)[property valueForKey:@"render3DEdgeMarking"] boolValue]; + OSSpinLockUnlock(&spinlockRender3DEdgeMarking); + + return state; +} + +- (void) setRender3DFog:(BOOL)state +{ + OSSpinLockLock(&spinlockRender3DFog); + [property setValue:[NSNumber numberWithBool:state] forKey:@"render3DFog"]; + OSSpinLockUnlock(&spinlockRender3DFog); + + bool cState = false; + if (state) + { + cState = true; + } + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.GFX3D_Fog = cState; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (BOOL) render3DFog +{ + OSSpinLockLock(&spinlockRender3DFog); + BOOL state = [(NSNumber *)[property valueForKey:@"render3DFog"] boolValue]; + OSSpinLockUnlock(&spinlockRender3DFog); + + return state; +} + +- (void) setRender3DTextures:(BOOL)state +{ + OSSpinLockLock(&spinlockRender3DTextures); + [property setValue:[NSNumber numberWithBool:state] forKey:@"render3DTextures"]; + OSSpinLockUnlock(&spinlockRender3DTextures); + + bool cState = false; + if (state) + { + cState = true; + } + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.GFX3D_Texture = cState; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (BOOL) render3DTextures +{ + OSSpinLockLock(&spinlockRender3DTextures); + BOOL state = [(NSNumber *)[property valueForKey:@"render3DTextures"] boolValue]; + OSSpinLockUnlock(&spinlockRender3DTextures); + + return state; +} + +- (void) setRender3DDepthComparisonThreshold:(NSUInteger)threshold +{ + OSSpinLockLock(&spinlockRender3DDepthComparisonThreshold); + [property setValue:[NSNumber numberWithInteger:threshold] forKey:@"render3DDepthComparisonThreshold"]; + OSSpinLockUnlock(&spinlockRender3DDepthComparisonThreshold); + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = threshold; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (NSUInteger) render3DDepthComparisonThreshold +{ + OSSpinLockLock(&spinlockRender3DDepthComparisonThreshold); + NSUInteger threshold = [(NSNumber *)[property valueForKey:@"render3DDepthComparisonThreshold"] integerValue]; + OSSpinLockUnlock(&spinlockRender3DDepthComparisonThreshold); + + return threshold; +} + +- (void) setRender3DThreads:(NSUInteger)numberThreads +{ + OSSpinLockLock(&spinlockRender3DThreads); + [property setValue:[NSNumber numberWithInteger:numberThreads] forKey:@"render3DThreads"]; + OSSpinLockUnlock(&spinlockRender3DThreads); + + NSUInteger numberCores = [[NSProcessInfo processInfo] activeProcessorCount]; + if (numberThreads == 0) + { + if (numberCores >= 4) + { + numberCores = 4; + } + else if (numberCores >= 2) + { + numberCores = 2; + } + else + { + numberCores = 1; + } + } + else + { + numberCores = numberThreads; + } + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.num_cores = numberCores; + pthread_mutex_unlock(self.mutexOutputFrame); + + if ([self render3DRenderingEngine] == CORE3DLIST_SWRASTERIZE) + { + pthread_mutex_lock(self.mutexOutputFrame); + NDS_3D_ChangeCore(CORE3DLIST_SWRASTERIZE); + pthread_mutex_unlock(self.mutexOutputFrame); + } +} + +- (NSUInteger) render3DThreads +{ + OSSpinLockLock(&spinlockRender3DThreads); + NSUInteger numberThreads = [(NSNumber *)[property valueForKey:@"render3DThreads"] integerValue]; + OSSpinLockUnlock(&spinlockRender3DThreads); + + return numberThreads; +} + +- (void) setRender3DLineHack:(BOOL)state +{ + OSSpinLockLock(&spinlockRender3DLineHack); + [property setValue:[NSNumber numberWithBool:state] forKey:@"render3DLineHack"]; + OSSpinLockUnlock(&spinlockRender3DLineHack); + + bool cState = false; + if (state) + { + cState = true; + } + + pthread_mutex_lock(self.mutexOutputFrame); + CommonSettings.GFX3D_LineHack = cState; + pthread_mutex_unlock(self.mutexOutputFrame); +} + +- (BOOL) render3DLineHack +{ + OSSpinLockLock(&spinlockRender3DLineHack); + BOOL state = [(NSNumber *)[property valueForKey:@"render3DLineHack"] boolValue]; + OSSpinLockUnlock(&spinlockRender3DLineHack); + + return state; +} + +- (void) runThread:(id)object +{ + NSAutoreleasePool *tempPool = [[NSAutoreleasePool alloc] init]; + [delegate doInitVideoOutput:self.property]; + [tempPool release]; + + [super runThread:object]; +} + +- (void) doCoreEmuFrame +{ + NSData *gpuData = nil; + NSInteger dispType = self.displayType; + + // Here, we copy the raw GPU data from the emulation core. + // + // The core data contains the GPU pixels from both the main and touch screens. So + // depending on the display type, we copy only the pixels from the respective screen. + if (dispType == DS_DISPLAY_TYPE_MAIN) + { + gpuData = [[NSData alloc] initWithBytes:GPU_screen length:GPU_SCREEN_SIZE_BYTES]; + } + else if(dispType == DS_DISPLAY_TYPE_TOUCH) + { + gpuData = [[NSData alloc] initWithBytes:(GPU_screen + GPU_SCREEN_SIZE_BYTES) length:GPU_SCREEN_SIZE_BYTES]; + } + else if(dispType == DS_DISPLAY_TYPE_COMBO) + { + gpuData = [[NSData alloc] initWithBytes:GPU_screen length:GPU_SCREEN_SIZE_BYTES * 2]; + } + + [CocoaDSUtil messageSendOneWayWithData:self.receivePort msgID:MESSAGE_EMU_FRAME_PROCESSED data:gpuData]; + + // Now that we've finished sending the GPU data, release the local copy. + [gpuData release]; +} + +- (void)handlePortMessage:(NSPortMessage *)portMessage +{ + NSInteger message = (NSInteger)[portMessage msgid]; + NSArray *messageComponents = [portMessage components]; + + switch (message) + { + case MESSAGE_EMU_FRAME_PROCESSED: + [self handleEmuFrameProcessed:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_RESIZE_VIEW: + [self handleResizeView:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_REDRAW_VIEW: + [self handleRedrawView]; + break; + + case MESSAGE_SET_GPU_STATE_FLAGS: + [self handleChangeGpuStateFlags:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_CHANGE_DISPLAY_TYPE: + [self handleChangeDisplayType:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_CHANGE_BILINEAR_OUTPUT: + [self handleChangeBilinearOutput:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_CHANGE_VIDEO_FILTER: + [self handleChangeVideoFilter:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_METHOD: + [self handleSetRender3DRenderingEngine:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_HIGH_PRECISION_COLOR_INTERPOLATION: + [self handleSetRender3DHighPrecisionColorInterpolation:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_EDGE_MARKING: + [self handleSetRender3DEdgeMarking:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_FOG: + [self handleSetRender3DFog:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_TEXTURES: + [self handleSetRender3DTextures:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_DEPTH_COMPARISON_THRESHOLD: + [self handleSetRender3DDepthComparisonThreshold:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_THREADS: + [self handleSetRender3DThreads:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_RENDER3D_LINE_HACK: + [self handleSetRender3DLineHack:[messageComponents objectAtIndex:0]]; + break; + + case MESSAGE_SET_VIEW_TO_BLACK: + [self handleSetViewToBlack]; + break; + + case MESSAGE_SET_VIEW_TO_WHITE: + [self handleSetViewToWhite]; + break; + + case MESSAGE_REQUEST_SCREENSHOT: + [self handleRequestScreenshot:[messageComponents objectAtIndex:0] fileTypeData:[messageComponents objectAtIndex:1]]; + break; + + case MESSAGE_COPY_TO_PASTEBOARD: + [self handleCopyToPasteboard]; + break; + + default: + [super handlePortMessage:portMessage]; + break; + } +} + +- (void) handleEmuFrameProcessed:(NSData *)theData +{ + // Tell the video output object to process the video frame with our copied GPU data. + if ([vf typeID] == VideoFilterTypeID_None) + { + [delegate doProcessVideoFrame:[theData bytes] frameSize:[vf destSize]]; + } + else + { + NSSize srcSize = [vf srcSize]; + + OSSpinLockLock(&spinlockVfSrcBuffer); + RGBA5551ToRGBA8888Buffer((const uint16_t *)[theData bytes], (uint32_t *)[vf srcBufferPtr], ((unsigned int)srcSize.width * (unsigned int)srcSize.height)); + OSSpinLockUnlock(&spinlockVfSrcBuffer); + + const UInt32 *vfDestBufferPtr = [vf runFilter]; + [delegate doProcessVideoFrame:vfDestBufferPtr frameSize:[vf destSize]]; + } + + [super handleEmuFrameProcessed:theData]; +} + +- (void) handleResizeView:(NSData *)rectData +{ + if (delegate == nil || ![delegate respondsToSelector:@selector(doResizeView:)]) + { + return; + } + + const NSRect *resizeRect = (NSRect *)[rectData bytes]; + [delegate doResizeView:*resizeRect]; +} + +- (void) handleRedrawView +{ + if (delegate == nil || ![delegate respondsToSelector:@selector(doRedraw)]) + { + return; + } + + [delegate doRedraw]; +} + +- (void) handleChangeGpuStateFlags:(NSData *)flagsData +{ + const NSInteger *flags = (NSInteger *)[flagsData bytes]; + self.gpuStateFlags = (UInt32)*flags; + [self handleEmuFrameProcessed:self.frameData]; +} + +- (void) handleChangeDisplayType:(NSData *)displayTypeIdData +{ + if (delegate == nil || ![delegate respondsToSelector:@selector(doDisplayTypeChanged:)]) + { + return; + } + + const NSInteger *theType = (NSInteger *)[displayTypeIdData bytes]; + self.displayType = *theType; + [delegate doDisplayTypeChanged:*theType]; +} + +- (void) handleChangeBilinearOutput:(NSData *)bilinearStateData +{ + if (delegate == nil || ![delegate respondsToSelector:@selector(doBilinearOutputChanged:)]) + { + return; + } + + const BOOL *theState = (BOOL *)[bilinearStateData bytes]; + [delegate doBilinearOutputChanged:*theState]; + [self handleEmuFrameProcessed:self.frameData]; +} + +- (void) handleChangeVideoFilter:(NSData *)videoFilterTypeIdData +{ + if (delegate == nil || ![delegate respondsToSelector:@selector(doVideoFilterChanged:)]) + { + return; + } + + const NSInteger *theType = (NSInteger *)[videoFilterTypeIdData bytes]; + [self setVfType:*theType]; + [delegate doVideoFilterChanged:*theType]; + [self handleEmuFrameProcessed:self.frameData]; +} + +- (void) handleSetRender3DRenderingEngine:(NSData *)methodIdData +{ + const NSInteger *methodID = (NSInteger *)[methodIdData bytes]; + [self setRender3DRenderingEngine:*methodID]; +} + +- (void) handleSetRender3DHighPrecisionColorInterpolation:(NSData *)stateData +{ + const BOOL *theState = (BOOL *)[stateData bytes]; + [self setRender3DHighPrecisionColorInterpolation:*theState]; +} + +- (void) handleSetRender3DEdgeMarking:(NSData *)stateData +{ + const BOOL *theState = (BOOL *)[stateData bytes]; + [self setRender3DEdgeMarking:*theState]; +} + +- (void) handleSetRender3DFog:(NSData *)stateData +{ + const BOOL *theState = (BOOL *)[stateData bytes]; + [self setRender3DFog:*theState]; +} + +- (void) handleSetRender3DTextures:(NSData *)stateData +{ + const BOOL *theState = (BOOL *)[stateData bytes]; + [self setRender3DTextures:*theState]; +} + +- (void) handleSetRender3DDepthComparisonThreshold:(NSData *)thresholdData +{ + const NSUInteger *threshold = (NSUInteger *)[thresholdData bytes]; + [self setRender3DDepthComparisonThreshold:*threshold]; +} + +- (void) handleSetRender3DThreads:(NSData *)numberThreadsData +{ + const NSUInteger *numberThreads = (NSUInteger *)[numberThreadsData bytes]; + [self setRender3DThreads:*numberThreads]; +} + +- (void) handleSetRender3DLineHack:(NSData *)stateData +{ + const BOOL *theState = (BOOL *)[stateData bytes]; + [self setRender3DLineHack:*theState]; +} + +- (void) handleSetViewToBlack +{ + NSSize destSize = [vf destSize]; + NSUInteger dataSize = (NSUInteger)destSize.width * (NSUInteger)destSize.height; + + void *texData = NULL; + if ([vf typeID] == VideoFilterTypeID_None) + { + texData = calloc(dataSize, sizeof(UInt16)); + dataSize *= sizeof(UInt16); + } + else + { + texData = calloc(dataSize, sizeof(UInt32)); + dataSize *= sizeof(UInt32); + } + + if (texData == NULL) + { + return; + } + + NSData *gpuData = [[NSData alloc] initWithBytes:texData length:dataSize]; + if (gpuData == nil) + { + return; + } + + [delegate doProcessVideoFrame:texData frameSize:destSize]; + + [self.frameData release]; + self.frameData = gpuData; + + free(texData); + texData = nil; +} + +- (void) handleSetViewToWhite +{ + NSSize destSize = [vf destSize]; + NSUInteger dataSize = (NSUInteger)destSize.width * (NSUInteger)destSize.height; + + if ([vf typeID] == VideoFilterTypeID_None) + { + dataSize *= sizeof(UInt16); + } + else + { + dataSize *= sizeof(UInt32); + } + + void *texData = malloc(dataSize); + if (texData == NULL) + { + return; + } + + memset(texData, 255, dataSize); + + NSData *gpuData = [[NSData alloc] initWithBytes:texData length:dataSize]; + if (gpuData == nil) + { + return; + } + + [delegate doProcessVideoFrame:texData frameSize:destSize]; + + [self.frameData release]; + self.frameData = gpuData; + + free(texData); + texData = nil; +} + +- (void) handleRequestScreenshot:(NSData *)fileURLStringData fileTypeData:(NSData *)fileTypeData +{ + NSString *fileURLString = [[NSString alloc] initWithData:fileURLStringData encoding:NSUTF8StringEncoding]; + NSURL *fileURL = [NSURL URLWithString:fileURLString]; + NSBitmapImageFileType *fileType = (NSBitmapImageFileType *)[fileTypeData bytes]; + NSImage *screenshotImage = [[self image] autorelease]; + + + NSMutableDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys: + fileURL, @"fileURL", + [NSNumber numberWithInteger:(NSInteger)*fileType], @"fileType", + screenshotImage, @"screenshotImage", + nil]; + + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"com.DeSmuME.DeSmuME.requestScreenshotDidFinish" object:self userInfo:userInfo]; + + [fileURLString release]; +} + +- (void) handleCopyToPasteboard +{ + NSImage *screenshot = [[self image] autorelease]; + if (screenshot == nil) + { + return; + } + + NSPasteboard *pboard = [NSPasteboard generalPasteboard]; + [pboard declareTypes:[NSArray arrayWithObjects:NSTIFFPboardType, nil] owner:self]; + [pboard setData:[screenshot TIFFRepresentationUsingCompression:NSTIFFCompressionLZW factor:1.0f] forType:NSTIFFPboardType]; +} + +- (NSImage *) image +{ + NSImage *newImage = [[NSImage alloc] initWithSize:[vf srcSize]]; + if (newImage == nil) + { + return newImage; + } + + // Render the frame in an NSBitmapImageRep + NSBitmapImageRep *newImageRep = [self bitmapImageRep]; + if (newImageRep == nil) + { + [newImage release]; + newImage = nil; + return newImage; + } + + // Attach the rendered frame to the NSImageRep + [newImage addRepresentation:newImageRep]; + + return newImage; +} + +- (NSBitmapImageRep *) bitmapImageRep +{ + if (self.frameData == nil) + { + return nil; + } + + NSSize srcSize = [vf srcSize]; + NSUInteger w = (NSUInteger)srcSize.width; + NSUInteger h = (NSUInteger)srcSize.height; + NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:w + pixelsHigh:h + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSCalibratedRGBColorSpace + bytesPerRow:w * 4 + bitsPerPixel:32]; + + if(imageRep == nil) + { + return imageRep; + } + + uint32_t *bitmapData = (uint32_t *)[imageRep bitmapData]; + RGBA5551ToRGBA8888Buffer((const uint16_t *)[self.frameData bytes], bitmapData, (w * h)); + +#ifdef __BIG_ENDIAN__ + uint32_t *bitmapDataEnd = bitmapData + (w * h); + while (bitmapData < bitmapDataEnd) + { + *bitmapData++ = CFSwapInt32LittleToHost(*bitmapData); + } +#endif + + return [imageRep autorelease]; +} + +- (BOOL) gpuStateByBit:(UInt32)stateBit +{ + BOOL result = NO; + UInt32 flags = self.gpuStateFlags; + + if (flags & (1 << stateBit)) + { + result = YES; + } + + return result; +} + +- (BOOL) isGPUTypeDisplayed:(NSInteger)theGpuType +{ + BOOL result = NO; + UInt32 flags = self.gpuStateFlags; + + switch (theGpuType) + { + case DS_GPU_TYPE_MAIN: + if (flags & GPUSTATE_MAIN_GPU_MASK) + { + result = YES; + } + break; + + case DS_GPU_TYPE_SUB: + if (flags & GPUSTATE_SUB_GPU_MASK) + { + result = YES; + } + break; + + case DS_GPU_TYPE_COMBO: + if (flags & (GPUSTATE_MAIN_GPU_MASK | GPUSTATE_SUB_GPU_MASK)) + { + result = YES; + } + break; + + default: + break; + } + + return result; +} + +- (void) hideGPUType:(NSInteger)theGpuType +{ + UInt32 flags = self.gpuStateFlags; + + switch (theGpuType) + { + case DS_GPU_TYPE_MAIN: + flags &= ~GPUSTATE_MAIN_GPU_MASK; + break; + + case DS_GPU_TYPE_SUB: + flags &= ~GPUSTATE_SUB_GPU_MASK; + break; + + case DS_GPU_TYPE_COMBO: + flags &= ~GPUSTATE_MAIN_GPU_MASK; + flags &= ~GPUSTATE_SUB_GPU_MASK; + break; + + default: + break; + } + + self.gpuStateFlags = flags; +} + +- (void) showGPUType:(NSInteger)theGpuType +{ + UInt32 flags = self.gpuStateFlags; + + switch (theGpuType) + { + case DS_GPU_TYPE_MAIN: + flags |= GPUSTATE_MAIN_GPU_MASK; + break; + + case DS_GPU_TYPE_SUB: + flags |= GPUSTATE_SUB_GPU_MASK; + break; + + case DS_GPU_TYPE_COMBO: + flags |= GPUSTATE_MAIN_GPU_MASK; + flags |= GPUSTATE_SUB_GPU_MASK; + break; + + default: + break; + } + + self.gpuStateFlags = flags; +} + +@end + +bool opengl_init(void) +{ + return true; +} + +void HandleMessageEchoResponse(NSPortMessage *portMessage) +{ + NSPortMessage *echo = [[NSPortMessage alloc] initWithSendPort:[portMessage receivePort] receivePort:[portMessage sendPort] components:nil]; + [echo setMsgid:MESSAGE_CHECK_RESPONSE_ECHO]; + NSDate *sendDate = [[NSDate alloc] init]; + [echo sendBeforeDate:sendDate]; + [echo release]; + [sendDate release]; +} + +void SetGPULayerState(int displayType, unsigned int i, bool state) +{ + GPU *theGpu = NULL; + + // Check bounds on the layer index. + if(i > 4) + { + return; + } + + switch (displayType) + { + case DS_GPU_TYPE_MAIN: + theGpu = SubScreen.gpu; + break; + + case DS_GPU_TYPE_SUB: + theGpu = MainScreen.gpu; + break; + + case DS_GPU_TYPE_COMBO: + SetGPULayerState(DS_GPU_TYPE_SUB, i, state); // Recursive call + theGpu = MainScreen.gpu; + break; + + default: + break; + } + + if (theGpu != NULL) + { + if (state) + { + GPU_addBack(theGpu, i); + } + else + { + GPU_remove(theGpu, i); + } + } +} + +bool GetGPULayerState(int displayType, unsigned int i) +{ + bool result = false; + + // Check bounds on the layer index. + if(i > 4) + { + return result; + } + + switch (displayType) + { + case DS_GPU_TYPE_MAIN: + if (SubScreen.gpu != nil) + { + result = CommonSettings.dispLayers[SubScreen.gpu->core][i]; + } + break; + + case DS_GPU_TYPE_SUB: + if (MainScreen.gpu != nil) + { + result = CommonSettings.dispLayers[MainScreen.gpu->core][i]; + } + break; + + case DS_GPU_TYPE_COMBO: + if (SubScreen.gpu != nil && MainScreen.gpu != nil) + { + result = (CommonSettings.dispLayers[SubScreen.gpu->core][i] && CommonSettings.dispLayers[MainScreen.gpu->core][i]); + } + break; + + default: + break; + } + + return result; +} + +void SetGPUDisplayState(int displayType, bool state) +{ + switch (displayType) + { + case DS_GPU_TYPE_MAIN: + CommonSettings.showGpu.sub = state; + break; + + case DS_GPU_TYPE_SUB: + CommonSettings.showGpu.main = state; + break; + + case DS_GPU_TYPE_COMBO: + CommonSettings.showGpu.sub = state; + CommonSettings.showGpu.main = state; + break; + + default: + break; + } +} + +bool GetGPUDisplayState(int displayType) +{ + bool result = false; + + switch (displayType) + { + case DS_GPU_TYPE_MAIN: + result = CommonSettings.showGpu.sub; + break; + + case DS_GPU_TYPE_SUB: + result = CommonSettings.showGpu.main; + break; + + case DS_GPU_TYPE_COMBO: + result = (CommonSettings.showGpu.sub && CommonSettings.showGpu.main); + break; + + default: + break; + } + + return result; +} diff --git a/desmume/src/cocoa/cocoa_rom.h b/desmume/src/cocoa/cocoa_rom.h new file mode 100644 index 000000000..fa46604b4 --- /dev/null +++ b/desmume/src/cocoa/cocoa_rom.h @@ -0,0 +1,70 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include + + +@interface CocoaDSRom : NSObject +{ + NSMutableDictionary *header; + NSMutableDictionary *bindings; + NSURL *fileURL; + BOOL isDataLoaded; + NSInteger saveType; + + NSMutableDictionary *xmlCurrentRom; + NSMutableArray *xmlElementStack; + NSMutableArray *xmlCharacterStack; +} + +@property (assign) NSMutableDictionary *header; +@property (assign) NSMutableDictionary *bindings; +@property (assign) NSURL *fileURL; +@property (assign) BOOL isDataLoaded; +@property (assign) NSInteger saveType; + +- (id) initWithURL:(NSURL *)theURL; +- (id) initWithURL:(NSURL *)theURL saveType:(NSInteger)saveTypeID; +- (void) initHeader; +- (BOOL) loadData:(NSURL *)theURL; +- (void) loadDataOnThread:(id)object; +- (NSString *) getRomTitle; +- (NSString *) getRomCode; +- (NSString *) getRomBannerTitle:(const UInt16 *)title; +- (NSString *) getRomInternalName; +- (NSString *) getRomSerial; +- (NSImage *) icon; +- (void) handleAdvansceneDatabaseInfo; + ++ (void) changeRomSaveType:(NSInteger)saveTypeID; ++ (NSInteger) saveTypeByString:(NSString *)saveTypeString; ++ (NSMutableDictionary *) romNotLoadedBindings; + +@end + +#ifdef __cplusplus +extern "C" +{ +#endif + +void RomIconToRGBA8888(uint32_t *bitmapData); + +#ifdef __cplusplus +} +#endif diff --git a/desmume/src/cocoa/cocoa_rom.mm b/desmume/src/cocoa/cocoa_rom.mm new file mode 100644 index 000000000..85699bbf8 --- /dev/null +++ b/desmume/src/cocoa/cocoa_rom.mm @@ -0,0 +1,649 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_rom.h" +#import "cocoa_file.h" +#import "cocoa_globals.h" +#import "cocoa_util.h" + +#include "../NDSSystem.h" +#include "../mc.h" +#undef BOOL + + +@implementation CocoaDSRom + +@synthesize header; +@synthesize bindings; +@synthesize fileURL; +@synthesize isDataLoaded; +@synthesize saveType; + +static NSMutableDictionary *saveTypeValues = nil; + +- (id)init +{ + return [self initWithURL:nil]; +} + +- (id) initWithURL:(NSURL *)theURL +{ + return [self initWithURL:theURL saveType:ROMSAVETYPE_AUTOMATIC]; +} + +- (id) initWithURL:(NSURL *)theURL saveType:(NSInteger)saveTypeID +{ + self = [super init]; + if (self == nil) + { + return self; + } + + if (saveTypeValues == nil) + { + saveTypeValues = [[NSMutableDictionary alloc] initWithObjectsAndKeys: + [NSNumber numberWithInteger:1], @"eeprom - 4 kbit", + [NSNumber numberWithInteger:2], @"eeprom - 64 kbit", + [NSNumber numberWithInteger:3], @"eeprom - 512 kbit", + [NSNumber numberWithInteger:5], @"flash - 2 mbit", + [NSNumber numberWithInteger:6], @"flash - 4 mbit", + [NSNumber numberWithInteger:7], @"flash - 8 mbit", + [NSNumber numberWithInteger:10], @"flash - 64 mbit", + [NSNumber numberWithInteger:0], @"none", + [NSNumber numberWithInteger:0], @"tbc", + nil]; + } + + header = [[NSMutableDictionary alloc] init]; + if (header == nil) + { + [self release]; + self = nil; + return self; + } + + bindings = [[CocoaDSRom romNotLoadedBindings] retain]; + if (bindings == nil) + { + [header release]; + [self release]; + self = nil; + return self; + } + + fileURL = nil; + isDataLoaded = NO; + saveType = saveTypeID; + + xmlCurrentRom = nil; + xmlElementStack = [[NSMutableArray alloc] initWithCapacity:32]; + xmlCharacterStack = [[NSMutableArray alloc] initWithCapacity:32]; + + if (theURL != nil) + { + [self loadData:theURL]; + } + + return self; +} + +- (void)dealloc +{ + if (self.isDataLoaded) + { + NDS_FreeROM(); + self.isDataLoaded = NO; + } + + [xmlElementStack release]; + [xmlCharacterStack release]; + + [self.header release]; + self.header = nil; + + [self.bindings release]; + self.bindings = nil; + + [self.fileURL release]; + self.fileURL = nil; + + [super dealloc]; +} + +- (void) initHeader +{ + const NDS_header *ndsRomHeader = NDS_getROMHeader(); + const RomBanner &ndsRomBanner = gameInfo.getRomBanner(); + + if(self.header == nil || self.bindings == nil) + { + return; + } + + if (&ndsRomBanner != NULL) + { + [self.header setValue:[self getRomBannerTitle:ndsRomBanner.titles[0]] forKey:@"bannerJapanese"]; + [self.header setValue:[self getRomBannerTitle:ndsRomBanner.titles[1]] forKey:@"bannerEnglish"]; + [self.header setValue:[self getRomBannerTitle:ndsRomBanner.titles[2]] forKey:@"bannerFrench"]; + [self.header setValue:[self getRomBannerTitle:ndsRomBanner.titles[3]] forKey:@"bannerGerman"]; + [self.header setValue:[self getRomBannerTitle:ndsRomBanner.titles[4]] forKey:@"bannerItalian"]; + [self.header setValue:[self getRomBannerTitle:ndsRomBanner.titles[5]] forKey:@"bannerSpanish"]; + + [self.bindings setValue:[self.header objectForKey:@"bannerJapanese"] forKey:@"bannerJapanese"]; + [self.bindings setValue:[self.header objectForKey:@"bannerEnglish"] forKey:@"bannerEnglish"]; + [self.bindings setValue:[self.header objectForKey:@"bannerFrench"] forKey:@"bannerFrench"]; + [self.bindings setValue:[self.header objectForKey:@"bannerGerman"] forKey:@"bannerGerman"]; + [self.bindings setValue:[self.header objectForKey:@"bannerItalian"] forKey:@"bannerItalian"]; + [self.bindings setValue:[self.header objectForKey:@"bannerSpanish"] forKey:@"bannerSpanish"]; + } + + if (ndsRomHeader != NULL) + { + [self.header setValue:[self getRomTitle] forKey:@"gameTitle"]; + [self.header setValue:[self getRomCode] forKey:@"gameCode"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->makerCode] forKey:@"makerCode"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->cardSize] forKey:@"romSize"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM9src] forKey:@"arm9BinaryOffset"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM9exe] forKey:@"arm9BinaryEntryAddress"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM9cpy] forKey:@"arm9BinaryStartAddress"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM9binSize] forKey:@"arm9BinarySize"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM7src] forKey:@"arm7BinaryOffset"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM7exe] forKey:@"arm7BinaryEntryAddress"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM7cpy] forKey:@"arm7BinaryStartAddress"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ARM7binSize] forKey:@"arm7BinarySize"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->FNameTblOff] forKey:@"fntOffset"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->FNameTblSize] forKey:@"fntTableSize"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->FATOff] forKey:@"fatOffset"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->FATSize] forKey:@"fatSize"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->IconOff] forKey:@"iconOffset"]; + [self.header setValue:[NSNumber numberWithInteger:ndsRomHeader->ROMSize] forKey:@"usedRomSize"]; + + [self.bindings setValue:[self.header objectForKey:@"gameTitle"] forKey:@"gameTitle"]; + [self.bindings setValue:[self.header objectForKey:@"gameCode"] forKey:@"gameCode"]; + [self.bindings setValue:[NSString stringWithFormat:@"%04Xh", [[self.header objectForKey:@"makerCode"] intValue]] forKey:@"makerCode"]; + [self.bindings setValue:[NSString stringWithFormat:@"%i", [[self.header objectForKey:@"romSize"] intValue]] forKey:@"romSize"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm9BinaryOffset"] intValue]] forKey:@"arm9BinaryOffset"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm9BinaryEntryAddress"] intValue]] forKey:@"arm9BinaryEntryAddress"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm9BinaryStartAddress"] intValue]] forKey:@"arm9BinaryStartAddress"]; + [self.bindings setValue:[NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, [[self.header objectForKey:@"arm9BinarySize"] intValue]] forKey:@"arm9BinarySize"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm7BinaryOffset"] intValue]] forKey:@"arm7BinaryOffset"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm7BinaryEntryAddress"] intValue]] forKey:@"arm7BinaryEntryAddress"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"arm7BinaryStartAddress"] intValue]] forKey:@"arm7BinaryStartAddress"]; + [self.bindings setValue:[NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, [[self.header objectForKey:@"arm7BinarySize"] intValue]] forKey:@"arm7BinarySize"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"fntOffset"] intValue]] forKey:@"fntOffset"]; + [self.bindings setValue:[NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, [[self.header objectForKey:@"fntTableSize"] intValue]] forKey:@"fntTableSize"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"fatOffset"] intValue]] forKey:@"fatOffset"]; + [self.bindings setValue:[NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, [[self.header objectForKey:@"fatSize"] intValue]] forKey:@"fatSize"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"fatOffset"] intValue]] forKey:@"fatOffset"]; + [self.bindings setValue:[NSString stringWithFormat:@"0x%08X", [[self.header objectForKey:@"iconOffset"] intValue]] forKey:@"iconOffset"]; + [self.bindings setValue:[NSString stringWithFormat:@"%i", [[self.header objectForKey:@"usedRomSize"] intValue]] forKey:@"usedRomSize"]; + } + + // Get ROM image + NSImage *iconImage = [self icon]; + if (iconImage != nil) + { + [header setObject:iconImage forKey:@"iconImage"]; + [self.bindings setObject:(NSImage *)[self.header objectForKey:@"iconImage"] forKey:@"iconImage"]; + } + + [self.header setValue:[self getRomInternalName] forKey:@"romInternalName"]; + [self.header setValue:[self getRomSerial] forKey:@"romSerial"]; + + [self.bindings setValue:[self.header objectForKey:@"romInternalName"] forKey:@"romInternalName"]; + [self.bindings setValue:[self.header objectForKey:@"romSerial"] forKey:@"romSerial"]; +} + +- (BOOL) loadData:(NSURL *)theURL +{ + [CocoaDSRom changeRomSaveType:saveType]; + + BOOL result = [CocoaDSFile loadRom:theURL]; + if (!result) + { + NSMutableDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], @"DidLoad", nil]; + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"com.DeSmuME.DeSmuME.loadRomDidFinish" object:self userInfo:userInfo]; + return result; + } + + self.fileURL = [theURL copyWithZone:nil]; + self.isDataLoaded = YES; + [self initHeader]; + + NSString *advscDBPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"Advanscene_DatabasePath"]; + if (advscDBPath != nil) + { + NSError *xmlError = [[NSError alloc] init]; + NSXMLParser *advscDB = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL fileURLWithPath:advscDBPath]]; + [advscDB setDelegate:self]; + [advscDB parse]; + [advscDB release]; + [xmlError release]; + } + + NSMutableDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], @"DidLoad", self.fileURL, @"URL", nil]; + [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"com.DeSmuME.DeSmuME.loadRomDidFinish" object:self userInfo:userInfo]; + + return result; +} + +- (void) loadDataOnThread:(id)object +{ + NSURL *theURL = [(NSURL *)object copyWithZone:nil]; + NSAutoreleasePool *threadPool = [[NSAutoreleasePool alloc] init]; + + [self loadData:theURL]; + + [threadPool release]; + [theURL release]; +} + +- (NSString *) getRomTitle +{ + NDS_header *ndsRomHeader = NDS_getROMHeader(); + if (ndsRomHeader == nil) + { + return nil; + } + + return [[[NSString alloc] initWithBytes:ndsRomHeader->gameTile length:ROMINFO_GAME_TITLE_LENGTH encoding:NSUTF8StringEncoding] autorelease]; +} + +- (NSString *) getRomCode +{ + NDS_header *ndsRomHeader = NDS_getROMHeader(); + if (ndsRomHeader == nil) + { + return nil; + } + + return [[[NSString alloc] initWithBytes:ndsRomHeader->gameCode length:ROMINFO_GAME_CODE_LENGTH encoding:NSUTF8StringEncoding] autorelease]; +} + +- (NSString *) getRomBannerTitle:(const UInt16 *)title +{ + NSUInteger titleLength = ROMINFO_GAME_BANNER_LENGTH * sizeof(*title); + + return [[[NSString alloc] initWithBytes:title length:titleLength encoding:NSUTF16LittleEndianStringEncoding] autorelease]; +} + +- (NSString *) getRomInternalName +{ + return [NSString stringWithCString:gameInfo.ROMname encoding:NSUTF8StringEncoding]; +} + +- (NSString *) getRomSerial +{ + return [NSString stringWithCString:gameInfo.ROMserial encoding:NSUTF8StringEncoding]; +} + +- (NSImage *) icon +{ + NSImage *newImage = nil; + + NDS_header *ndsRomHeader = NDS_getROMHeader(); + if (ndsRomHeader == nil) + { + return newImage; + } + + NSUInteger iconOffset = ndsRomHeader->IconOff; + if(iconOffset == 0) + { + return newImage; + } + + newImage = [[NSImage alloc] initWithSize:NSMakeSize(32, 32)]; + if(newImage == nil) + { + return newImage; + } + + NSUInteger w = ROM_ICON_WIDTH; + NSUInteger h = ROM_ICON_HEIGHT; + NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:w + pixelsHigh:h + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSCalibratedRGBColorSpace + bytesPerRow:w * 4 + bitsPerPixel:32]; + + if(imageRep == nil) + { + [newImage release]; + newImage = nil; + return newImage; + } + + uint32_t *bitmapData = (uint32_t *)[imageRep bitmapData]; + RomIconToRGBA8888(bitmapData); + +#ifdef __BIG_ENDIAN__ + uint32_t *bitmapDataEnd = bitmapData + (w * h); + while (bitmapData < bitmapDataEnd) + { + *bitmapData++ = CFSwapInt32LittleToHost(*bitmapData); + } +#endif + + [imageRep autorelease]; + [newImage addRepresentation:imageRep]; + + return [newImage autorelease]; +} + +- (void) handleAdvansceneDatabaseInfo +{ + if (xmlCurrentRom == nil) + { + return; + } + + // Set the ROM save type. + BOOL useAdvscForRomSave = [[NSUserDefaults standardUserDefaults] boolForKey:@"Advanscene_AutoDetectRomSaveType"]; + if (useAdvscForRomSave && (saveType == ROMSAVETYPE_AUTOMATIC)) + { + NSString *saveTypeString = (NSString *)[xmlCurrentRom valueForKey:@"saveType"]; + NSInteger saveTypeID = [CocoaDSRom saveTypeByString:saveTypeString]; + [CocoaDSRom changeRomSaveType:saveTypeID]; + + if (saveTypeID != ROMSAVETYPE_AUTOMATIC) + { + NSLog(@"Set the ROM save type using the ADVANsCEne database: %s.", [saveTypeString cStringUsingEncoding:NSUTF8StringEncoding]); + } + } +} + +- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict +{ + NSMutableString *xmlCharacters = [NSMutableString stringWithCapacity:1024]; + [xmlCharacters setString:@""]; + + [xmlCharacterStack addObject:xmlCharacters]; + [xmlElementStack addObject:elementName]; + + if ([elementName isEqualToString:@"game"]) + { + if (xmlCurrentRom == nil) + { + xmlCurrentRom = [[NSMutableDictionary alloc] initWithCapacity:32]; + } + } +} + +- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName +{ + NSString *xmlElement = (NSString *)[xmlElementStack lastObject]; + if (xmlElement == nil || ![xmlElement isEqualToString:elementName]) + { + return; + } + + NSMutableString *xmlCharacters = (NSMutableString *)[xmlCharacterStack lastObject]; + [xmlCharacters setString:[xmlCharacters stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; + + if ([elementName isEqualToString:@"game"]) + { + NSString *romHeaderSerial = (NSString *)[self.header valueForKey:@"romSerial"]; + NSString *xmlSerial = (NSString *)[xmlCurrentRom valueForKey:@"serial"]; + if ([xmlSerial isEqualToString:romHeaderSerial]) + { + [self handleAdvansceneDatabaseInfo]; + [parser abortParsing]; + } + + [xmlCurrentRom release]; + xmlCurrentRom = nil; + } + else + { + if (xmlCurrentRom != nil) + { + [xmlCurrentRom setValue:[NSString stringWithString:xmlCharacters] forKey:elementName]; + } + } + + [xmlCharacterStack removeLastObject]; + [xmlElementStack removeLastObject]; +} + +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string +{ + NSMutableString *xmlCharacters = (NSMutableString *)[xmlCharacterStack lastObject]; + if (xmlCharacters != nil) + { + [xmlCharacters appendString:string]; + } +} + +- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError +{ + NSInteger errorCode = [parseError code]; + if (errorCode == NSXMLParserDelegateAbortedParseError) + { + return; + } +} + ++ (void) changeRomSaveType:(NSInteger)saveTypeID +{ + CommonSettings.manualBackupType = (int)saveTypeID; + if (saveTypeID != ROMSAVETYPE_AUTOMATIC) + { + backup_forceManualBackupType(); + } +} + ++ (NSInteger) saveTypeByString:(NSString *)saveTypeString +{ + NSInteger saveTypeID = 0; + + if (saveTypeValues == nil) + { + return saveTypeID; + } + + NSNumber *saveTypeNumber = (NSNumber *)[saveTypeValues valueForKey:[saveTypeString lowercaseString]]; + if (saveTypeNumber == nil) + { + return saveTypeID; + } + + saveTypeID = [saveTypeNumber integerValue]; + + return saveTypeID; +} + ++ (NSMutableDictionary *) romNotLoadedBindings +{ + NSImage *iconImage = [[[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"AppIcon_DeSmuME" ofType:@"icns"]] autorelease]; + + return [NSMutableDictionary dictionaryWithObjectsAndKeys: + NSSTRING_STATUS_NO_ROM_LOADED, @"romInternalName", + NSSTRING_STATUS_NO_ROM_LOADED, @"romSerial", + NSSTRING_STATUS_NO_ROM_LOADED, @"bannerJapanese", + NSSTRING_STATUS_NO_ROM_LOADED, @"bannerEnglish", + NSSTRING_STATUS_NO_ROM_LOADED, @"bannerFrench", + NSSTRING_STATUS_NO_ROM_LOADED, @"bannerGerman", + NSSTRING_STATUS_NO_ROM_LOADED, @"bannerItalian", + NSSTRING_STATUS_NO_ROM_LOADED, @"bannerSpanish", + NSSTRING_STATUS_NO_ROM_LOADED, @"gameTitle", + NSSTRING_STATUS_NO_ROM_LOADED, @"gameCode", + NSSTRING_STATUS_NO_ROM_LOADED, @"makerCode", + [NSString stringWithFormat:NSSTRING_STATUS_NO_ROM_LOADED, 0], @"romSize", + [NSString stringWithFormat:@"0x%08X", 0], @"arm9BinaryOffset", + [NSString stringWithFormat:@"0x%08X", 0], @"arm9BinaryEntryAddress", + [NSString stringWithFormat:@"0x%08X", 0], @"arm9BinaryStartAddress", + [NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, 0], @"arm9BinarySize", + [NSString stringWithFormat:@"0x%08X", 0], @"arm7BinaryOffset", + [NSString stringWithFormat:@"0x%08X", 0], @"arm7BinaryEntryAddress", + [NSString stringWithFormat:@"0x%08X", 0], @"arm7BinaryStartAddress", + [NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, 0], @"arm7BinarySize", + [NSString stringWithFormat:@"0x%08X", 0], @"fntOffset", + [NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, 0], @"fntTableSize", + [NSString stringWithFormat:@"0x%08X", 0], @"fatOffset", + [NSString stringWithFormat:NSSTRING_STATUS_SIZE_BYTES, 0], @"fatSize", + [NSString stringWithFormat:@"0x%08X", 0], @"iconOffset", + [NSString stringWithFormat:NSSTRING_STATUS_NO_ROM_LOADED, 0], @"usedRomSize", + iconImage, @"iconImage", + nil]; +} + +@end + +/******************************************************************************************** + RomIconToRGBA8888() + + Reads the icon image data from a ROM and converts it to an RGBA8888 formatted bitmap. + + Takes: + bitmapData - Write pointer for the icon's pixel data. + + Returns: + Nothing. + + Details: + - If bitmapData is NULL, then this function immediately returns and does nothing. + - If no ROM is loaded, then bitmapData will have a black square icon. + - The caller is responsible for ensuring that bitmapData points to a valid + memory location and that the memory block is large enough to hold the pixel + data. The written data will be 32x32 pixels in 32-bit color. Therefore, a size + of at least 4096 bytes must be allocated. + ********************************************************************************************/ +void RomIconToRGBA8888(uint32_t *bitmapData) +{ + const NDS_header *ndsRomHeader = NDS_getROMHeader(); // Contains the memory addresses we need to get our read pointer locations. + int iconOffset; // Memory location offset for the ROM icon data. + const uint16_t *iconClutPtr; // Read pointer for the icon's CLUT. + const uint32_t *iconPixPtr; // Read pointer for the icon's pixel data. + + uint32_t clut[16]; // 4-bit indexed CLUT, storing RGBA8888 values for each color. + + uint32_t pixRowColors; // Temp location for storing an 8 pixel row of 4-bit indexed color values from the icon's pixel data. + unsigned int pixRowIndex; // Temp location for tracking which pixel row of an 8x8 square that we are reading. + unsigned int x; // Temp location for tracking which of the 8x8 pixel squares that we are reading (x-dimension). + unsigned int y; // Temp location for tracking which of the 8x8 pixel squares that we are reading (y-dimension). + + uint32_t *bitmapPixPtr; // Write pointer for the RGBA8888 bitmap pixel data, relative to the passed in *bitmapData pointer. + + if (bitmapData == NULL) + { + return; + } + + if (ndsRomHeader == NULL) + { + memset(bitmapData, 0, 4096); // 4096 bytes = 32px * 32px * sizeof(uint32_t) + return; + } + + // Set all of our pointers relative to iconOffset. + iconOffset = ndsRomHeader->IconOff; + iconClutPtr = (uint16_t *)&MMU.CART_ROM[iconOffset + 0x220] + 1; + iconPixPtr = (uint32_t *)&MMU.CART_ROM[iconOffset + 0x20]; + + // Setup the 4-bit color CLUT. + // + // The actual color values are stored with the ROM icon data in RGBA5551 format. + // We convert these color values and store them in the CLUT as RGBA8888 values. + // + // The first entry always represents the alpha, so we can just ignore it. + clut[0] = 0x00000000; + RGBA5551ToRGBA8888Buffer(iconClutPtr, &clut[1], 15); + + // Load the image from the icon pixel data. + // + // ROM icons are stored in 4-bit indexed color and have dimensions of 32x32 pixels. + // Also, ROM icons are split into 16 separate 8x8 pixel squares arranged in a 4x4 + // array. Here, we sequentially read from the ROM data, and adjust our write + // location appropriately within the bitmap memory block. + for(y = 0; y < 4; y++) + { + for(x = 0; x < 4; x++) + { + for(pixRowIndex = 0; pixRowIndex < 8; pixRowIndex++, iconPixPtr++) + { + // Load the entire row of pixels as a single 32-bit chunk. + pixRowColors = *iconPixPtr; + + // Set the write location. The formula below calculates the proper write + // location depending on the position of the read pointer. We use a more + // optimized version of this formula in practice. + // + // bitmapPixPtr = bitmapData + ( ((y * 8) + pixRowIndex) * 32 ) + (x * 8); + bitmapPixPtr = bitmapData + ( ((y << 3) + pixRowIndex) << 5 ) + (x << 3); + + // Set the RGBA8888 bitmap pixels using our CLUT from earlier. + +#ifdef __BIG_ENDIAN__ + *bitmapPixPtr = clut[(pixRowColors & 0x0F000000) >> 24]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0xF0000000) >> 28]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x000F0000) >> 16]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x00F00000) >> 20]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x00000F00) >> 8]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x0000F000) >> 12]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x0000000F)]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x000000F0) >> 4]; + +#else + + *bitmapPixPtr = clut[(pixRowColors & 0x0000000F)]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x000000F0) >> 4]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x00000F00) >> 8]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x0000F000) >> 12]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x000F0000) >> 16]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x00F00000) >> 20]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0x0F000000) >> 24]; + + bitmapPixPtr++; + *bitmapPixPtr = clut[(pixRowColors & 0xF0000000) >> 28]; +#endif + } + } + } +} diff --git a/desmume/src/cocoa/cocoa_videofilter.h b/desmume/src/cocoa/cocoa_videofilter.h new file mode 100644 index 000000000..e1d624a70 --- /dev/null +++ b/desmume/src/cocoa/cocoa_videofilter.h @@ -0,0 +1,51 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include "videofilter.h" + + +/******************************************************************************************** + CocoaVideoFilter - OBJECTIVE-C CLASS + + This is an Objective-C wrapper class for the video filter C++ object. + + Thread Safety: + All methods are thread-safe. + ********************************************************************************************/ +@interface CocoaVideoFilter : NSObject +{ + VideoFilter *vf; +} + +- (id) initWithSize:(NSSize)theSize; +- (id) initWithSize:(NSSize)theSize typeID:(VideoFilterTypeID)typeID; +- (BOOL) setSourceSize:(NSSize)theSize; +- (BOOL) changeFilter:(VideoFilterTypeID)typeID; +- (UInt32 *) runFilter; +- (NSImage *) image; +- (NSBitmapImageRep *) bitmapImageRep; +- (VideoFilterTypeID) typeID; +- (NSString *) typeString; +- (UInt32 *) srcBufferPtr; +- (UInt32 *) destBufferPtr; +- (NSSize) srcSize; +- (NSSize) destSize; ++ (NSString *) typeStringByID:(VideoFilterTypeID)typeID; + +@end diff --git a/desmume/src/cocoa/cocoa_videofilter.mm b/desmume/src/cocoa/cocoa_videofilter.mm new file mode 100644 index 000000000..27c6db268 --- /dev/null +++ b/desmume/src/cocoa/cocoa_videofilter.mm @@ -0,0 +1,179 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cocoa_videofilter.h" +#import "cocoa_util.h" + + +@implementation CocoaVideoFilter + +- (id)init +{ + return [self initWithSize:NSMakeSize(1, 1) typeID:VideoFilterTypeID_None]; +} + +- (id) initWithSize:(NSSize)theSize +{ + return [self initWithSize:theSize typeID:VideoFilterTypeID_None]; +} + +- (id) initWithSize:(NSSize)theSize typeID:(VideoFilterTypeID)typeID +{ + self = [super init]; + if (self == nil) + { + return self; + } + + vf = new VideoFilter((unsigned int)theSize.width, (unsigned int)theSize.height, typeID); + + return self; +} + +- (void)dealloc +{ + delete vf; + [super dealloc]; +} + +- (BOOL) setSourceSize:(NSSize)theSize +{ + BOOL result = NO; + + bool cResult = vf->SetSourceSize((unsigned int)theSize.width, (unsigned int)theSize.height); + if (cResult) + { + result = YES; + } + + return result; +} + +- (BOOL) changeFilter:(VideoFilterTypeID)typeID +{ + BOOL result = NO; + + bool cResult = vf->ChangeFilter(typeID); + if (cResult) + { + result = YES; + } + + return result; +} + +- (UInt32 *) runFilter +{ + return (UInt32 *)vf->RunFilter(); +} + +- (NSImage *) image +{ + NSImage *newImage = [[NSImage alloc] initWithSize:[self destSize]]; + if (newImage == nil) + { + return newImage; + } + + NSBitmapImageRep *newImageRep = [self bitmapImageRep]; + if (newImageRep == nil) + { + [newImage release]; + newImage = nil; + return newImage; + } + + [newImage addRepresentation:newImageRep]; + + return newImage; +} + +- (NSBitmapImageRep *) bitmapImageRep +{ + NSUInteger w = (NSUInteger)vf->GetDestWidth(); + NSUInteger h = (NSUInteger)vf->GetDestHeight(); + + NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:w + pixelsHigh:h + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSCalibratedRGBColorSpace + bytesPerRow:w * 4 + bitsPerPixel:32]; + + if(imageRep == nil) + { + return imageRep; + } + + uint32_t *bitmapData = (uint32_t *)[imageRep bitmapData]; + RGB888ToRGBA8888Buffer((const uint32_t *)[self runFilter], bitmapData, (w * h)); + +#ifdef __BIG_ENDIAN__ + uint32_t *bitmapDataEnd = bitmapData + (w * h); + while (bitmapData < bitmapDataEnd) + { + *bitmapData++ = CFSwapInt32LittleToHost(*bitmapData); + } +#endif + + return [imageRep autorelease]; +} + +- (VideoFilterTypeID) typeID +{ + return vf->GetTypeID(); +} + +- (NSString *) typeString +{ + return [NSString stringWithCString:vf->GetTypeString() encoding:NSUTF8StringEncoding]; +} + +- (UInt32 *) srcBufferPtr +{ + return (UInt32 *)vf->GetSrcBufferPtr(); +} + +- (UInt32 *) destBufferPtr +{ + return (UInt32 *)vf->GetDestBufferPtr(); +} + +- (NSSize) srcSize +{ + return NSMakeSize((CGFloat)vf->GetSrcWidth(), (CGFloat)vf->GetSrcHeight()); +} + +- (NSSize) destSize +{ + return NSMakeSize((CGFloat)vf->GetDestWidth(), (CGFloat)vf->GetDestHeight()); +} + ++ (NSString *) typeStringByID:(VideoFilterTypeID)typeID +{ + const char *vfTypeCString = VideoFilter::GetTypeStringByID(typeID); + NSString *vfTypeString = [NSString stringWithCString:vfTypeCString encoding:NSUTF8StringEncoding]; + + return vfTypeString; +} + +@end diff --git a/desmume/src/cocoa/images/ColorSwatch_Blue_16x16.png b/desmume/src/cocoa/images/ColorSwatch_Blue_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..2c63ac3ff6bb5b350fc35b21a5eccecbe4febd26 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prDkei(`n!`Q#Lj-$xy|5|R`Id$J_18kCqYFr-alY`D9}MFXgc!PC{x JWt~$(6974G8yNrq literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/ColorSwatch_Brown_16x16.png b/desmume/src/cocoa/images/ColorSwatch_Brown_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..73e721f403a1866f6e90a8bc300c6cf598a9fb92 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prC}Oi(`n!`DB|%ryYb6k`g4Y8mvm(k;TAJ_MXwO(B+CQPz{5ptDnm{ Hr-UW|7Bm|v literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/ColorSwatch_DarkBlue_16x16.png b/desmume/src/cocoa/images/ColorSwatch_DarkBlue_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c02e5d1815d5278e22784c2585aa42349696f958 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prDkei(`n!`Q(%dGmklNB_t^b_GC$1H7GG*UbP0 Hl+XkKO28cE literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/ColorSwatch_Magenta_16x16.png b/desmume/src/cocoa/images/ColorSwatch_Magenta_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..4635bd1f6daef7fd54c419b5b5120e38ac35cc6b GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prDkei(`n!`Q$(A?PoTM95~{jByrVXRpN^bpc$cz599WluLi1O@O1Ta JS?83{1OR)A9dQ5v literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/ColorSwatch_Orange_16x16.png b/desmume/src/cocoa/images/ColorSwatch_Orange_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..35252607d51b20c30064812c64f3154231b879c4 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prC}Oi(`n!`Q$(Lt&J)NjvO#pl^Alk;3@+HOA6!W0t@L0Ks5}Wu6{1- HoD!M<@WBqc~(HCUCnBa4Ayof@OFW~T54pc)2GS3j3^ HP6G^ko95~{jByrVXRpN^b28PtFOzJ77t9*f~7(8A5 KT-G@yGywo{8XTek literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/ColorSwatch_Yellow_16x16.png b/desmume/src/cocoa/images/ColorSwatch_Yellow_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..71b331363ff28e8fc12c495fcbd2381efa3d6bcb GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8prC}Oi(`n!`Q$&JXEdrDIC8*XRbt5Df~yP+Z#o(Oi+uHZ4OGM6>FVdQ I&MBb@0C-Ry?*IS* literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_ActionReplay_128x128.png b/desmume/src/cocoa/images/Icon_ActionReplay_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..e3757987e3adf15ccf247720b47dcd8cc64e9fde GIT binary patch literal 8915 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 g literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_ArrowDown_420x420.png b/desmume/src/cocoa/images/Icon_ArrowDown_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ba85bf96e26e9af93a51df1f2ced8302973292 GIT binary patch literal 51637 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

}Tx$9RYPlkK#eAJ> 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 z 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 Mr)7vN(L_J}A0+}q1poj5 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_CodeBreaker_128x128.png b/desmume/src/cocoa/images/Icon_CodeBreaker_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..bc418a69034ae6bad8c7cee5b69b584f956b58c8 GIT binary patch literal 17702 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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_CodeBreaker_32x32.png b/desmume/src/cocoa/images/Icon_CodeBreaker_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2796ed1e13c0d8dad0014f777dde731e7be395 GIT binary patch literal 4153 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

}!W21hNaPV2)!l4GzejnU)1Cz$ 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

Mc~+|^-qkd`OqZ^1HEDFo5;mt%!P zZpfK+5o5m4 zmmT6_#hjS=U+>!JR}W+k7Au4~0}T^)3C+U`2oxf~r{s;d( ztV-@sePkbDM|0*xa%0OvNCJgA4On3{x`Ob~4{H>ci=yJ{emx83`AQmNq4;XVd)g3@sBMr;ZUOybIJd;3hxmXE5gF#3IUd25 zclyENz->AGDe8Lyd#3hcB{i@7Qo6H=vcy9oF~z~)O|(;A!J!*ge} zwyxa`JDLR$eqo(o(-}xVi3Z?KFQI6<7f*qp(H2)ylC-x?ArR{JHbS&(NDZxs)Kwrv6}7&Zt^eb*28(F zlYC%J4ij{WZEcjgCYmbNwht7&y=|M4JH$@0bHnSx6@_&9Qo3Ng11UB1of?ZKo3kp# z>-II7JxK;srbM7`c3aJEuCE^si1KYDVaMHSqx0ZlRp_f{m*u6V<4>Weq|u`F#bN0F z+{^uA3m?87z>>dEd)Rnu{}+=vHl`QZI%`$F(t3FAo4%$8TDIW&@2*$tdsW=?Zfxy6 zwPsAyQ02SF`1*JVet@(A;v#UXaVA3o5V0&J7}k2+=`m%wBJi1Nc$t~8e#Yt6fA8)C ze&OkLr8~$s$y645f2dNE~4Usp4J_`Lze zr9qor9cnDiTM{kuNsf)ks8%ft{%+Aa`ki0TR2YlWw|RJ8TH#RpZjk3xSxCv(n1`y1 z&#kFu0BuosP8oQ5fkF^wehE#&78dA%>YD8H&_vtg$%&kEisQSVklT7|ILlrTl%E6N z5&JTUDmHLfs9>wBsp45Ed-nsvU%@2pVJDzJE0Bh%`5gsC$OZ8S9rx4TT%^SX7J*b8 z7~;vFA38d_BO8F4C;*s8S&DvaTpI>WmYHLJj7;sSK>#I%{oT_s4GEc-DH89OPh*OD z3%{2B)o;?nkO$$~xJ(D*V-JIF&t5qmpAFide;fYt5cgR*7RH#IAT0(b8)Lv}@gn~x z5Ls76nD z0?cK&(=H=>t#zHB&aD>{7i;Y*RR8Kspmxg)23*fR2}DxurxNruY4gcOPyu%Bb;9q0 zvd@u3`HfNlT4{Y>n^Bt_nKx(>@k0euzV9C6&5-LyS@82C=kErS%|Mj}P|-M~XYq0E zH#tTguz96N84SyHfmq8AP(e3{j^^_Ct-s3~#HL)hxrouhCOvd{-{no=OQZrQe=ak@|tg9<*kfh7h zBc;hfe!P+I6YMq_4M5mycZ4};JgQKhJ5@0e`GBEPqh?i>}Q7oiJJP_e)*l z5~`f+w&&sV{GLpebmz$e=y=Vs1O9<)Z@L}(Dj))`@db7O)Fj=Cy(;+bfGFvZ^U)sx z02-Zeb0+X6?lMn|Y>~$Pkk(mL>%teLL`0+wpH}b3Hhi9$P5&&N^S?&y?u;>y}Bwo2=Iz9l84}F&K>g$oyaF2>)&$;Rd|zVRncW$m@;Utt~mdlDXF7 z-&<&i_0kJH>TQKrw(z;V1B<4MEP9oy*BL;CQSK8Q`C!I2vwShKphOlWv%F^DZOmTH zIXh)v2>I4#ciVL;W!5k+faKLiY$jdWun)J{5~-Cl7}Qrqg4Mp764S5yWjz10|7*4e zQRe0)n4mV&82{E(fzcT4O}ZVI99FEhGponoRE@%$p=Bz4*ZN3%Cbh0OW%^gQ^3+Zn z_}q0fF3ew3K6Pv@aAHV0ZX6H&e!tvg1|0ZaElU+C2mNTMBwRnagl}9k++18h!ptKN z5c=PI-XA>Zl-C);UQwu*_-m!%LrD4O84s;Nh=La4$I3*{j+%0omofxWZ{O?xP*@Vy zGMVZnRNHFi1e;-7lLc|~!n)#rtJ=|usBtdjFC&ii9RezyB<5n?jJ#Cn&GCSdMF=%?o6%$@2oS^n4z~+iO^Slq?4^9OnHmNO}`H#W9K@HE|lauW?N+9;37|nCUf(xXN(NsPUqH725sQn`-9p>BT%jBP zdf?*Ru_x&|^=IS=4m0c;8<||D#ECIhQN^BF4oK2w9z?he3reL^kKm_v1tn4!x9J!^ z1dCzs8Wxz8;vbk6K-`f*fBSoBN8wRsMd;pdTFrlRaT&Fhw;N8IOG~`B-xtS^;@2_) zX$KAB5G**%@;T#ALf|h27OGm_L{LRq&+?gv8-x4ov}RJ zhQ7-<%6H;%w!rwlaeUKy@~(eY`@Mxtq31@()c6xm(;GIPacIW-0Xf1@v_t{0vLqIU z84Ep{)a?c-MojD9Am7e4u8z2M8zrO<$BDL4oAsC*1Nw-wAO*umbkZ>23sGU;dt6-! z?qN?r)nqX{!6iw?)LY8AFeaA#jTHXxPrItJLE^!M-p_%{l$80VW0=axB09)$)}iX( z%afZg$I2B~{f7NGLAuY?=T>(jXBc|C+==@f{K0L7v-nVb@tTn%W9h6ioO87z>#MWXZaStx@vE)o*Okv~+I{qOd@&0B>hbk;5g z#Imn>MdZ;eR=F@RM@%H&bZ!g6dD9zM3<$a*xR({H(_72#f4E9j>T=*1OgL=jNMKj48b&Q9XdeRQ1Nn(`Jk~#61r3^?Nb#eK;~#TZ0!MXlg4PFKzJHuK?wQp=yaghU9Y!y2IG&o=elMXf@$Vj*FOAzJ zx|8S*=tMU-pX)J6T8Vc_U`#g zmN-Klj) zGDs9HpxpV1e?zq{+B({<0{IKzc@EBSsY2!!e92`$)i5{2HWqOC@{3EtBC`%(Opzxi<5dS%g8Y)CkO{0cuPjA>0 z+d^!aPi~uzsrRX+?D^6M)C{KzCy6NltSt$u0kxxk)8Fo|SN4atN%q$U%vayR2D`d` zC7ZkJTX$p^%HlY`bz~a(KBaLep?xgU6|0|nVoju%vo2)kt2T%mB4BqW$<_Y8&GY&O zTh1Jm_cWR8kFkL=bn3%E^jx}-n9xxM|+v2qM3K7M*`C^JtD$TU6cZHW7n*PmRX z=ko?9?;|T9Kh!{-$>JWvwTIiE-tFG&5@yi2WvtRhnAbz{W+9kk6YkFR@sqq`DI8G-tzf7A`1$9<-{x|z> z&z?4LD7jB8-y;ni4+0}ax8XB0q6()sp=4jL22|cGH+Yg?vb z3^i~#&_3C^rzw{&O{`{Bw%b4TQat(%M}UgAceq5w$P**s<(p1vBcWgw+^VTS3{7NH zd)>t-#GPepBFgxCV7isT3dBPCOZ!#OW;#XI^gL%i(7rDPB-Rg6gpynAr)tlmgRij0 zpMxj-wMc@7?rA`_0l71GZ!P}x3I)ZNavLe&P9R0CqT>wrfctsb%8~c=?FXRJ)W*<3 z2rJsUn&A4tIdJc8jsA|&NJz&2&6U25QV}15-xJ?ereWbgbSHvdYa;5~uOL2($I|A~ zxE;1%)FY|?{yd%0l^mXS1_^?8;VO000ImwunPh(G;6Vurnf3U1LM9_hRF&COdjvqXOp<#dP-5*)#$G;n7#Q^m~lB}qzrU6w@f-7xdbk$>JD0`^vosd2T zB<8i?wxyEOsC9K#2NqaVI)X8jEJI-no`4i(%~x&Hl;O-Tn{Ix|v^~7V>HGK#3FlUj zYslXcjH_Xq@qDjn?cv*x)<{u#+_fY*wM_S|#rXBA`8`DQFB{d~T>iIpqucZiNYR56 zC6j3gf&hGCqP8Vm;Q>=xT*VJ3tB7GVmiu?;-I2krVX)=kib#TQ0X3hvYoW3BS=He) zFEz5%vGV5&CUu{{>imWK*b>0nj)F1n>VO`-4nXt9Xvx3A4*y-MSt(BOch2_Q4u8qx zpd=$O)_auuff+(qBD5zvU?(Dv2@Q5ofes04EaSq1yb!Ne8?Tw}CP0fG zSI|LwHd$%sD5(DdFWc9Uc*Z%w&BrjKpC`V$rAibyI;#GgB4mLDqy#PYcxvf1h?C7q!p|i7v>He zsIv?0pM?d{O$FQ0g2&K}Ji476l83(RP;D65C?%wu*w}>=?Q`@31{s<#^ivYigVY)JrYe{JlU3sX`Z3+} zi}lvzXF|Fe1`y4f-#y9bCEgHroANKHi`i)8?3cS;T_nuLv2dGJn^Og<2?G%BS8Aj} zpt1S`6tPBzmk!FyAb~Bgl6h_U8;Zk4Zqaxb6=xzl!0S=g=N;s)9S&YR0)?hS{pv2uU-(7kSt7T zOZgIs5$UYg!|oRPn)2C0lkWt5i)tlEwPI!>1S{y2DBzUVsoE%UxA4Q zUXknnazd9$uU#D?8@{j3L!_d!?KH(;AVAWL&&0uF-O1^~pNl{!Skm{MIn#9-dX5m=kPa#;Q_{U<7PcjJgGsxTuf*I8;KxaX5$7OoP-`qA{(?i|hgTah{%;vGpB$3?bpJkjX0QE=Ns5;vHXtUSn(q#UEb^XHYTNSsK}lCwa!{=C!QGW(}hE{<0?x zIOw#J{isEy*IE8i*DlbR7H+Q)?x;>^yZuE0O^-FlGFssosMlvsLu5aYsJ%Nqr9gay*fh+t~Q|`ZM#7p zaeXT7TP7oIy>j$Sy&1&nDXh*WcIr4hEi)~&KWc549O`{AKw*-D3&l2_jD;8sZOKvo zi^$=&@F-E)h|=VS?=pws@T?@_4!cAi*$6PBbZeGW&;3W>Lnu(h0R8V*p}0Y0Ob?#` zVG=Is!zZ-Zhd(m`=CS{GAQMRY;eY>kAW$!a|Nj{X$S?kT;{Oi(pJ)Hi!2f;r{|x-! jXaD~>iQWd<`vA~emCJQb*cV|C@S`NBE?XgO`tkn&q`6pr literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DSButtonB_420x420.png b/desmume/src/cocoa/images/Icon_DSButtonB_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..c64ffda4c2ebc25288dd726da5433530dc52ff9e GIT binary patch literal 58274 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 G4E`SjoN5sO literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DSButtonL_420x420.png b/desmume/src/cocoa/images/Icon_DSButtonL_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..da80643b3d483f7eda69f17c41f46aeecd83ba9b GIT binary patch literal 20241 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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DSButtonSelect_420x420.png b/desmume/src/cocoa/images/Icon_DSButtonSelect_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc4c0203bfb7702cabbd37ce244eea452aa4ce4 GIT binary patch literal 106520 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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DSButtonX_420x420.png b/desmume/src/cocoa/images/Icon_DSButtonX_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd44260313a09f94712c035cb3c7da878f8a716 GIT binary patch literal 65120 zcmc$FWl&pD*KUyFP@s5$LUD%z#a)9t#R?R6C=2ve({gul20wS&7xsP{PNd!U2Im_+Vvu9S{hm;@=Ys19&G` zOU%Eu9-AAOLfc|`>BnB-h zDKvppn-eb%XAyIozAP!cJSOhP?eBncr}<9g?%2bZ1xfhFv%=34n7vqdS<3v{f}wb| zvb01S;ll$%zqh%i!*CegL4;VJt?51Q8Bjo1!Q$c^FMBb&K`6d6xLBZG_55C5>gdO( z2-#dyl+Xy2UawSPRjg1FkhFi2Y!yga5hb)Rhgla?f)276wR*P&(&7SHu!QW+fIdkC?%;Nx@R^q@*sOL(8mdbI0eufUJ!|`>VODnkqg8NHndd+HMN0y#|d$p zL0EVoUhSAjHV}FM$YO+n!50*f3nEcGH55PLXdr~M11pu=EZ)v2q7Y_+#pQu%Xvj^= zIu0i1AbD+xYMCd^{mn0z@>Q6?(~YyAAW%svDPZl{z3(_d!}$2?q*elRE<_K;fEJ4px<7>QxBXxpQ%E{FhX4(%9xJO?cd^-K#=ja%}=GjfJ*k34bR;Ft&Kuy zO8e5%&i3}A%7Cniw=&r zM@f``RIVB`E3`{h7Q#1Py_-l7=(NMFZmvDCd%2@@#P7M$h*0=<=I z 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

eZjHPUuf!MJGph-|+1wRJI*VU0(< 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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DSButtonY_420x420.png b/desmume/src/cocoa/images/Icon_DSButtonY_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..afee39f2246d6556583daef8c0e56113b951c518 GIT binary patch literal 48574 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 K*&1on(EkH%309f_ literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DeSmuME_32x32.png b/desmume/src/cocoa/images/Icon_DeSmuME_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..9da443e64439d6ca745436be6a8a5fb3572ec5db GIT binary patch literal 1499 zcmV<11tj{3P)Px#32;bRa{vGf6951U69E94oEQKA1%OFJK~z}7t(IG86jvC>e=|F?7uRIXR&rCT z7%w5oCbgET)xK!yyDtGj1uumv=!*r#dcpe8N~sS%1WSwfP>L@i2(1KLEnd^Lm8Eiy15a{Bb0GGDGe*Ng&0O{cAG36_;) zWMqip(NP{f0ug`y(9jU~@6BY_t~K1aagnLf7$c)k0T>w`=D`Cvf4-N^o0n5lQ_E=1 zH<9W2PFvd&F8B0s@j@Rz|8$?XI$FtOih-Wzw{O4c=FT09JAXf5+qN%#@VbHHz|y5l zxpm8BVBi5;w|-6~CUfT|GlJ_D16>aS23XbzU0uE0x+QGdbP#||n-0?7@6y!N zj^ktq1i+KYeYsIOP|Bw{Pq|Vh09=2ZPTPp+WV4XX`T>sP|EAM+VIA?P>SGa{W2ufi3-ziW$gnI(E_0vFrMP#oN@rkBy@G%rm8ARCR5J9Xc7(_I0yJ~ z6*CYFM#$LE+}z5UGZu~lD+Rh1z!MjxglrZfk!T@Rnr7rg%)m;){CVvNkV=78p55n~ zRwBi@VUass58!z&K zqW(d%N7=Kt0})~6%8%*nJjCwZZ6p#O(%E^4lPC9Z?%dG{0qD>9e=5L?8H-pjznQ_o zeg+5oX=`hxukS272+JFux;=>7o`+-8dRx>yet6E^G~~BPC*k87sBCcB=Q&qAR%(I|w&H6RcULoih3Pc(|!5DdjI4M-#wBLbli1cR~Cr9RE=6$8Ei1}6e` z6Og*P7MV3`iG;${5)4k2*|V1wii|mPmKXZraJ4ivv`bxGtJKxENkc=2gu~V27B0X$ zlhJ`2Ku12s`Rm%)_%=$Vb9r~s0|pv8o~H-|OddY$10Wu6!ZafU0zouQ$1o!F_g~Df z-46UQQ3@87=x#f3bJnb7e0H!0+XCB$=oCM|vLG@Almpwh>wvIv<1aKf&*bjiA(Tp^ zRF)%0T2RWKv=GVIekPM-WEieqy}>}E;?90&I8t0J3CzB~X* zO181(o9C5ZOE0Gzhre3D)2Fuy1VXrOrlPmt+5KNoGv-UQQU-h}A7SmPo$BJQg*;3_}2`6{`LfwC0n*fumazK^Dbc+tBw=`&!OQ!#^J zm~ld(IA#b;GoJIsG0mbf+V(J}3G3H)=L+0ctEdwGOkL{hSID$!%>qb${R*k6X%Rqb zYFebOuBei_X3F&GizOaUNIag9+S+$Zl`v7d`2PX!6;RR~#1jAj002ovPDHLkV1ma@ ByR!fQ literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_DoubleSpeed_420x420.png b/desmume/src/cocoa/images/Icon_DoubleSpeed_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..86a66bc477689fe57e9f4539b3898482fa33c250 GIT binary patch literal 40255 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 Rm1N*gRY^;+=&nV;{{WORMU(&l literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_Emulation_420x420.png b/desmume/src/cocoa/images/Icon_Emulation_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..3f926819747ec879f72f8166062e9607b4f61cbe GIT binary patch literal 128107 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

F9Xn;zkkSYE_tnwy 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

{yAz|klkfk|yKY9h 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�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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_Microphone_420x420.png b/desmume/src/cocoa/images/Icon_Microphone_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..0563e4095e2becdbf2fd700171b93a589875b041 GIT binary patch literal 56070 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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_OpenROM_420x420.png b/desmume/src/cocoa/images/Icon_OpenROM_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..907d5cb20f1c32862835f0e337a697dc66c1a37b GIT binary patch literal 42418 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 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_Reset_420x420.png b/desmume/src/cocoa/images/Icon_Reset_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..52dd3d601acbef10edfde29eb52642320d6512f4 GIT binary patch literal 84994 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

DZ56&{ci}qIpbwuR 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 LHTgO@v#|dI;DZE0 literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/Icon_RotateCCW_420x420.png b/desmume/src/cocoa/images/Icon_RotateCCW_420x420.png new file mode 100644 index 0000000000000000000000000000000000000000..60b313e5018497d5d885e3814019ed54548ae493 GIT binary patch literal 66121 zcmd3NWm_C!v*rvC+$DH$cXxM};O_3h3GNB*?ykYzf_rec5FmK)AOqWZ_w3no?Jw95 z!*KOKi9s1`?G92jyl^e*_i4fJ`RM&Gtd6Odu1Qz{3SlQ10JMKQKr?g$xH=kO(5h zvW$`h*$9AYX0^UZfpl0w*j5Tde4te(5UZTFl`QC68>oK<9jOrnj|^f}iwdU$!T5np z#waMfL1CF7Z0T!l!7GM3^doveQ<;r|9h7`h!TRt_u5jAg%pYiH8QH_~S`e5J4&CK>+4`!=fL_wfE_kg)q zMwTXmAOYAQ$JZjN3m6+CqymqJuU3s{qAj3;<8|#Dmw&pEDop5DTRZsmYgK+oT;Fs; z+yB-2yK%oZ#NjbO@a5rdxA!MyFuP%}49wr%?^Cymr9`ty2w`TMhw(BmZAfn~#0%s@ za%LSm^w|4qn67b>Sur>4rR34#Np!-|U3Jeu+#KhUU=s3N+|C z?)^U>K%na`=Yd69c<3OT(7jo&w@VR-OaT=r$Vx8B6$CPpq-55ZXc8HP2Z1CDg6Y4B z5#A2qG4{g}4ZPbNKzcFZ4il#w`Yw(xj%X1?_&$j1J-O}mD!xK z1Qf~R>lXHnaC|9@qzq%>zjA*K{^IyW_>1gXA2HWV)V1XA$Dg$76L#|W2j~Z!2e6hI z>|&b5S?XIAg&G)K@p|I5g{|uKYLOLKoE}+x)1mL>6iRE0QWpqpaBUuJ>wmj; zP)`4$JwJIY^E>@F^sN^%N(4^mXp}WAel{K)o;AJ~UVVmQ8UDgo{80^79=6krqfE3+ zXH6aYR{GC4i4%ya@~PCRg!C*Ll~rX`+f_)KH=2_g@s&m&{p+MPIX>=JA}pp=YgXl| zo_-|!Xk95#5m{wj;jAH25}*r-hSeQZ98{4gQ7dRL-tQhEMKZ^4@@6EnN2!kR2<951 zZkS&C>`C910U_@CDpXZj$S1)e&!OFsV?2;U{tYDc^U&68SD6&cezI&*FJ8Q zBbL8c65_wBW3I9I?CwE1QZ1nN2jNzi>8+|xw3`WR@jfSkFr;?ciK$!y!9AcD_Ywv ze%XUYHfyV-8Nh|c#+(b?BD4h3lV}tiCjaiCe|Yk_|)u%&9BA3oi&qlA>u!L zn|91%tuu>0yUMZOiZw|$WSjdjdqKt;*Sh0V=uOnuXoZkT=5%4^Y{HSPv7TS@?su++ zd%p8`x!FzG-_I*H>Myu2Y%d}=^QSoT>GE_rKK&RRlh{=|m=i(DPi3{=sR>Y#Pzknf zIig@OXGzqqUHR5l>Q(h%dWkE1FYK1TFT5|vv(3J(Ydpo%-!|4ZsWRxCXB@sG5lHc7 z@#gzB2PzMu0$W2z2a5&kLp}fX{Y=&uC&IsBdEdBpE*4YJA%-IsA5t4~Fi=ZoGj^6x zOZIS-F_SoBiyE#P@O$|Ooav$I*TDc}n()YQ?Ff-Lmna>AIkt2zuenW$Pdk!Nl4+9L z+16|-eDzH7T=c?K%yxq7Je{1KA|uRJx>HL!xjJ$V3PgO&^mW`$4!t`s=Qoi*bAKZ3 z`{8D=j2XK46wZ9V4KIIR$&AU!pC+mprOcc1M+}|5;(ZL&HI^4u9HP&6;_uevEOXp* zQL7RL^dFS3W$BfClg<*mxqK*xIZ7E1I>Klw6S@^q6t}YZ^WJB9k~*>r@%ONWCM71g zidT^-CAV6iSRYz>PS#k4H@*%#eQjg;kP0_$-;_}EPL~O>RlMxCh92z-JzS%;rM6Yy zbo2yYT6G@7^!ZfN#6|*7&Sn1FIp%lFy`Vx7aD8auv5L06v*#C@E13=vwe zHG=J5TIn5^RI1Ol)9V6ysC|{}gN+6zLIzsE_NPdihzH^Rr<*J1hAKKNx;rhVPZ7C< z!Z^`i>aaI(({Tb*`Z70Dnk%b^IxJ?b=Bp&@V-sI4m< zi%Z1wLK^Dv%M7P7sG}skueq0AOeowanz1<}KPg-!eSRH3AnZJRK;d8ajPa}4gIgf+ zB(^4Iu@ld_&XUglnDwl0rr)VDB|Nu$vhDjKvq6HE!zrliBY&eYZo7UQvXE?jJsXpo zn(H6H{J3edQPk>pWInTFhvt0QiSE8PFZK5INT6F_#^Ac${kn1E086`FJFA}G*zv^u zMDR6vL1nZnrz@+j!@$1d!ndcz&+6frFpp$b<|>iygDQXZesR?m&E^TY7N-Ol^1 z05=-Q%w*S^7tKX&w@SD1t?0Sfn#5M*l8FB6=IZ5Upk2RL!Oh&J%mZwA=z{bKE9tKZjj@ba*0`sS?WC8*P_?SI^6dx0e_cHS7zoi<_goV)06ug zKbJyI`cLueH%7jXeCQqb=3q0r)p|Z3@Y?huzAWBBQ~C9oG?4bq=CR@Kp56JN@2=rD8W0vX^aLlEVF zA#-fsa?Bg8gV(gDT*h2Gr9(8gK9mll?CKO0MW@WI;^_&qVWme@xxuEN$m^feixtSD z-xWCr0|Wa+y{?8-g!k3|E~Pc!Jx(eoIY&_s{Ah*HLwZ)uZ;g8_`hW|{a?ZV zEko5<{~`GQ!^J&iq&KDKA)D9mkx#Ez+i#D{O>ZpJ#G7NB*MFR~MYV0pYGL@J zdwWEf0O;$UfzHrqS4LI1S* zPo;X;QLD@Y(T6X{OOP$t6hO0U)vjw?)!<@mS)J)V-RTF`qoYHi!=joR;0ioo|LzcA zC|dPBo4dPn0xvq5!TrE?v2~e z5S%UMjk_ZdKK*#Y;(m}X^Qn=;#AS&{I{FHZK4dTb6?_Tk1k=30ezP(8;-NCMDd@P|L!F-cK?~lV0#Z8 z1sfU+Tc9RXNaeBg*j`A(i+ubTQGeQ&eO z#+^UeMtpNV<+D+jq&ST1*lIOh?96MRmqw7C`?n6+IZ=^^%@bi(VwKKDsdPU&DQW zPW$kLp1#i-J>tH_*Fx_LK!b!a*yyN=Xp8Wt01)Wxd(N%9ndJ;>=0QdM(wS(;K(0u_ zF+V;2g7B_bO1S;Vr)cN0i-CbbtZn1GO|Lez?lccmJSXr;LF75Py!RGK1o9Se%D>6; zb}K=C9Ua9`iayGQF(=6P4P0Th)dpcs4XAJ^T%$QH^jcff=3ny9#W#oM!rZ38i}8e^ zp1tv|U%^sPP%x@r(YI^ch%{IcVhZyX1-{=t+j1)&Bm#HeC-VazMgE=;?hw%4my;NTZnldt$TDN86{W}*(aOVy4mgQb zG=%V+e(>ssO}OWjnDB&Q&u1-(z1<$q^g%wQVj%7vTm3{=3i zR##K71KD0~bFkXuj%7GD5p$Yw4o>|z_slIVEsepieeMmM_t+Xm6>)oQVSy}*Jl!T3 zu%%%djubcY8g^W*g(UEYrEy;J-@L#iEFUY)L&d#e>Ii z5_k-|e1`Ol7qiOTA4SOO26)`d!NGx1+lC=p$Zpt?Py7d7*OS!zr{}j{HvvC9>mm?i z;0^0Aw%VhpD79ObH{>hT@FK1(*b6D;g4Uw<0QEyQF3%1p{B7)3wOcQ{14>Sx5-V&| zwsuUy-t|X8qvPY7gklqLO3JRHPpF7F=Ge`NLJ zee>9-*Sqrm+PtkHk5Wwg#2n?EfSMF_8G);GI#+o z;cU(6ITJ=;$BvrQmDUK8=$Q!og9azM!K+Vj+R(Co$wYIvO3+P~{OfIu56SS7?S!m$ zEqZ|Tn{lU-LOczgK_zs;$dG9u_f%a_{`QITC3`~}H) zTn8jkLem{kA`e=yXZ}DYwbM~+63((G`-*H^oZk7ut)Jh^?L5p93;H}A7{86at>N-BRKLcNJ5h!v|q;a$;_;#>V9 zVAVT$c>Z?>fOyUl`~7;E?7NSDU0{Lfp}K^a#?Z<+o28UtC+M6!cDNmrce`+^$~yuU z@MWKuAbwPxPSgJbU}(^w;#;d|*WOE`^)FNzw~trf4L{hqA$rfI~*Yy|%@*BUVaM z0KM^kDdLSYcl;N1eO(kVqLA^pxJr83U2)!MN~COlH>Z`bmm5M$=WDQDr=_Lo0g%hzI%PIel;N{De3`yVt&+A^`wQc=^2Mh8?dmeZC1v>h9VNqmkRM(>kDSyfE%Sd^Y zWJ>%f8Y}-2!ViYANN+fkW z-vuJC>Pxg+Z_f6>706vQff~jO1t4>s+RB0-tE8%0Klt3ot~DqU9Odw50GYKa3r}(+ z<_Xffa_%VrXpv#d=|Q!6iT~jFwRqP5RU!W|v+t@cUvp}2Wdu7O!D?M@Vo&pW-EhM)E*u*KlIIpTvjQH zE0`nA=#;2nk9wrdxxxeAkbs_x-SbjMUanoh%MeM9?YqL-9xlb?J1T49<8_Ob^ zwb^WawXBr}9TvXcs)nd-5fyKC@A~9zoZh`S0TKGn*FIPINERK&`twfUEzRr6&fjR< zz88*B>F5z@$=wL%A`6lV_qnv=ee3m$5zuqW++m=@B>lPpdvf$gnTnK=h`hN5~Pq_#p>+$(jwvvHHsas(*RLSlbJb4dyfC7m@@8uOey)kk!w7(2={jT_(mEtA<>}C#g>79n(XPhV-u^=GDxCrRmDA!->HI=oL z);ROGg*SzkL<8eZbF%cWc0L2{czVa*W8_@Aa7@Im+((BZBNFHKNgI`tPTQ9jBhW zDuj94HGVq$xw9?C=}jc4s!L!w$&t><`Fb9|ej{)ZKkNG3e~kC?0RqIlW6!SYbI)g4 zSZS8GTb9qSNPSn@B(YHq`dIJk7WQjBvK)2jNwQQZOV4P@zw6jT8xU;n{g7O3|NPGE zc_u39R~-HbEvw3n=VN3@RuTgw4dGoQKN6=AK?HsdURVw z9en^7=blJW-F*Lt=^N+w{JAp&fH5xu#(Zvc8Qu41o%(+@x3ILnN$=P>)djM-$(&|5ast;q)T%tX>CP=AGBYJXyq`upiK^!;2g>D5A7BO$W^X>|0=#0a z{w4J7&RQ$}gQIaats>>XbX?Ptxg=LN<)>w;krQJ1+fIlb{;6Qs2y z;c`hs>hiIiHPW`B;iu5)P2xKG-KpC=iH~czjkeum{3oL zu7*+_O!&Zw*MN^~>(o=RbNK+MTn~sdKmf4ac_8t*!wonDzvUO!(U~^F08DBvGnqL2S}&O;_T&thi2@ znR!`RZMI|bR~I;2EzX${q3?E_mm#o4x&2YI&?R;~07s|?khvJ3akgH5@oz)gfj6Vd z-M1r8WsB`t3f?Js?UlhvIHHm`s*N*nm0(-55KQ@OQ!WK)Ejg^_-5<#S!Fx(juKM$n z66Iqq!1Af&lFmZ#m)MJ>>+F~PJ1+VWxe5@pxAsj^;^S+<6zii~7JgrGG}nG?{@Zca zjq_F@I;?Lwc~t_=jU2KI{9;29P9roc;CI-8Yy2AB z2YE1Z6YziN5kpoAQVAMdxccd-wgOvB&p|H#99Ke3nX;T%R6{U?jOPjqHQ0hgLN5C~ zSbf5CMXuJPC7|ReNcE$L-Li}~T%3mSOi(4bq{lNzeV0tB6!nnPCUt^IP6_2Wps7gL zq&YznFu)KXNM3q&F^HiP-TA+jTt3Hl|NSWPu%;b&$C6KIJFv5*ybJoHn?*u-?V=GP zl~A_V&zqP+wIYXwi)}xVZN;U)0#%A>5b(g{o+S4kmorU00ye?ZF3M3_ne!ApPw9B_ z3q@l6s{mC36~`hgjTXH(&-0K!Oz~D+>@FySYR;o`%c&1A2*CcQZn_t?N)JZ+URK^_ zj^cX%u0P#L?jKT$_2UadOU6BNc-pn0h+Ax&fM`{tiAxJomJ=E&(FX9a!5I$bE_aQ3 zD&N0KDAXw=Nt#`CVl3@&aM2hwU2rH&hyq#=8cU#8s+WvlN?gicyd~RWK%a&t)7gbS zBb~!%)w6BUgF|89_xqc8GyAsb{2Hpg2_30N5`z=bApI5042FUkUG$N^zsPDJx1eH| z<@l_U$tRnn&Kfe^$lDJy8atW37a3Zp)$2$CT>8xN= zI%kH=3`T_xdu-~Az*oDQnS040&xjA9k|U=z4D)48Y=yHyG4Oqsv7y=rNDHf6QiE+& zZ8gbKLrIqPoU9j+zNO6v?H(R>n#%g!#06^}rduaJv4bXvy`~>uFuoPh!>3ww0PEIWWL{He~ZrkPu>XVf?*IGatM5gny@*>H)@!bevlelnt|W zKd_-Y8FdDc;-j=ILuYaiMW|s9BekCf{bvQOXp)WzU z0uSBWMV>&(3rKKJ0r>d~o-&eQd~oIoW}1?j0HPxzMTqHA#_o7Y40-hL_>7e3pW#YZH5uhy>@fwy!G z?xcVBNC(bki-+MqC^&ARf+9Jh7XND5YmNDuHiboC2hAs9;p5q2n^4yJCUMK{uI;-? zgIp`d(KmSNe{;CGx!U{;Nuoq3O_6&S)TcNUo`E3& zae}O7B+{(mFG2X8PCE}$Z5wy|xyoG|=gch|=g@#|07g=B+G#EFKp1%NNhR?3NZAR? zdS@r5utYkN!+U5Kk0uv7Xv2;{w@XmBDK?>@FoZa9IHoxoaiU-D^wzp1)nn9qBBLG7 z!LSdi)t_cj&P|4nOFqdW36_%*@y5`j>1+o`sAUl34#{os=C_4K@i``(3VkeRmsZoU z-d}=aJmvLQqj4HY;d4mg+4sd~zZH4xJg9i*d0qEkC9AyM?mRx%x5Vck_Xs4mb4Ks6 z6`=Ib(V=%t3F?$y8R+L@!zYBG=#r*@V<*H$W!+^*Gptt}VO5XKSzQJSf;e-@h#cuk zTVo4N%^HfOtVy`!P^Nvq>3@(|!0YltOEBaxGwCMifHJ8E>cnBti zNA0Ndo4@JiV1X>o_FYYA2kd`l{QP=;4zo|`=zhn!8M#CW;-8 zUf_5Pqyo#07*3hKl+3Pes3jqPsx&-}$OcOrKCM9VlXN&eHq(@7)D?TQA&0}s>^-5K zXoW5bWFkbfMY%EnsM5HNGGP*)u^rw+=$|bva38X9EJwlv`bchldz=7|Vs9xb2CAY) zLTxU(ba?mJ#yPUC!$>D%*7SPd=3CAz(H;?$EnUN^n zAzZ?!I?)$tMqa}mKLIvr4|ds)up9q9;faB(K|G>88t2KMi3c)^X()?Ztcka(-+#V7 zIM2s8w0fc0uQ8F~CuI3E-W6&1qxl;aN0p@%fHICcb9(47kwAJk|%rX)h;xE+3lk{SM64!)(2n<&|!Ft0B94U3$?`D%)wwCR37XFnlAX#b z(D|(F!!k)TyzGJtqzy%Z-hh28)>bSWyQhVc>OA5Cklt&-#Z|!ruRlf&+M}odvGO{jQChp z^6&6cGcIV*qC6>Pr#*gn@aN{4N<|_w@ZT(2_x?Sxew{b=6Mtv;AP@?((GY>r5Z_r=x@Y_H)e)I|A6{2hn}s?vX_F) zA|uB>@rytCB9@QT=pmT+!fO@v<+Dt`U4NDCae(!f;nm3EH#o1K6Eqq(mQRwwbIQf! zRfKf)(8V?N09$>|b+@efU2)o3zTWftNb*)~?7zQQoiF6gq~RS%0V`Xqgv?Ca;tK8a zf(8dNTZ4$t7&Kz|X_yKF0QG61Pyy2jzvisBB*YO1BDbbsEs1VII>6fDisi6xMVa)O z-@)QUrWu-|%8%u!p=@i+zYDe+wn8{~O15lk|M{x_GPES(c#^M68ozKAMCjv$;S;B8 ziv%zyM*yD=w5nU|h}=g3^Md>$1j1)i;8nd)@J!OfA%LDbgXTf@HJhl=FbdO19kv5@ zI1=ISaPrG{CYjbd&&XBF5Z-?qD1UkG*epi~=LojE#LXaenRa=ehx<*v*P4kc5Vy}O zpCp;}$y&?X;a;QN<8ZBCc=lG+F{WDJs~5BuimE?mI(ttVl}80Y^@bDNhIbUBYHuel z+SFtp5TfKweswZG2+jf>DZn#P0kT!UWXA;513hMM;((~@_PAR(+6xe_`%}1l-+(*c zia!HZ$n#;`ilNme=&YVj^5CF!t3x%X=@~C4dTKUnR6ZSlY5Wa31CP!{S_Rrk9}7kF z^#BRCa0-ZoJcEN#M-;OZPZA|QP|RTSbl$(;Rx4_<7O@Nz)3@HQvC^#~qUnVDw$7!> zMcP7wr*5}yM_~TIC?W5s-Dtmn`bN#5;UN+<&wL{J)uG}eN*y(Ni+RnaeeWfSr{P08 zu=_?&mHB~?gT6o2M@fK?w^4FFAeYN0B{GmOA7&t-=4%7D=Zrq&$!{t?l=CX-q19z#Nb#c+{-Nv@-PS z4kWQvm(Os9D?*1p+vB0-v%+@=Z)-cgmHsCNZ*Da%wj8hvVej!^po!#l6Ilg>C(kx% z(H5#zbPCjyLJZN!zk1r3o6vF;x!HN?aTMwG#Na=sH8$LbZn#7eV&zf-)i5Bnr7K<3 zv)6)_)}))Ul3w4YVfC{+BR8#ShW@LeJ13~M6toy%xc;Gdfwe@a(|myw&+@J~a<#6H z6n!gM5a|58D3>odwrxxT`UHx!QAa*BA<9Q*)&Y+!z4yOy1Apoa8N5OYhj`WgL=S*N z%^5crs&e->k8=C2I!9Q^1w$@v915nYU z@SKc$W6}`eWV5x2S3Dq|U0a7a4CL2Qv}8pYQ7Oy(WaO18@=;OtwW+%Ie#Y;pO|C5d zNUbiCW9~BY{mB!n0#^u?!Lw;$>kx{rhr-bgl5DIysxYshrJp}jK#^|<9eH*c_AMMY z#|pNc_-vC6eo+>DUAGp#8>xpJ&{Xuj?!o`Y2%w*Xk_(#rv|^LqZzQpf7|JH8Sfa?#O5I z+|!RT%tXGDIfxgU62u0wea*G0#j0)LBrOG5jFpt6=+Tw_b00)jE*Q|+ro3kF^lO*DTt1)HoqhnQ z-w@C_iHH0(e$KA15qzDR&?@>f;|XMd&UTV{ri5`A&Abf8BrPTun@&ElV_%--nvTCL zI_WUdzoRr1EYl>M=L4l$ifMr<1VY)9&kMNtt54-mc)u8WV(auk7=)p^$X#|K>G?~Arc?^Bu6jZ( z_f52r1?SHPJVt&elOld*Q$(+!=P;p?gK+47ZYeRWk{Eah1&$V=aCD>BrGD5Bgncn0 z7qw?F71KA)HjtWIyPEl-y!OV^U3PFD(4 z$!X-slPTw1iB9oNT4?d6pZN6?^v#x^_#~Ds8CCwuiXf}ER8TUCDc(kCd5^nvPJ2)yj69@c{XU_3h+z0D9nbt68RYU zNI8GlKMd`WJZC~X4)pU%OdkA!2_3{QniHL%)hHhD#Egq{Yi_`gh0~w2u{Y;!_b}(( zY;W>^{{Bn|TfrXm#qrO)-Y5vzXxM_EiccJ(spvoxH%aew6_gUappcmgrU&AQrbT~l zklozd3V4O_eM@pvy{QTsY~p-8P_ODKb(EXw)t9-yBRBAGkYm`itl zqw1w=pav`eA5!Ys)pO>vEjH>J*IDQHGK8ff0_iY*o1AS^$-Q)@i+yM{Pk@CgN!D)) z_9?oCt6I=^%v82EDRHcB#fLMMbIzLBVUc-vtll%`d3?Zb*pgSh&?XVuuh^4djazp$ z(QtOfWtu|U-KJzBxeFT=CTr}q`&XIAhVOhPYsb1jDUr@Fk${gVk6O5bQf;udmN#a^ z*X76)JC4TfW@JfBFf+`n&Y+#6-P7k&qmQ+yBpHTM6fHYRA-L>pCvlmd9h4fHrA}Y@ zc?e(B5<|w7=wlKkJ+j0!UNNN{XPMkSBdeYyVhR3{Ewn0$b!bq-;r-F{T^F`fG1zp)#N?@G=8zK&-r}bbP8R$_5g=4GVyB` ze^C7WbF$wEgOCB|QilBS9|1#3m(vLwSDVJh-xJ519Sw!Qx*7DljyjJEkOqCYqa|@; zl(B*t78=VCVmLEo3BBZOgYcrD6V(%ZJUc(>5qwGB@F!eQsY_DG_=Lc#2 z7(hlB8W7c++nt#nx42OjBtTB8Wgu~q3a#DyHFG{N?X}Zgmt=u#Qq(dd%D|Z~Bgx6u zk3(N-2CY}9POl|DtUj^&trCbdOr?t7S*L!9WGgX2sef&(;161#URoOSdno2^Sh@H{ zD4HcKO-I}qkCRH|`BDG%6!JsdthHW0vJ5{w8Qj?d`JC&uwAsA;#Qm2-$ zT46y$yN+&D`fxF*KdeqN2at z`H5$FkNA5pS)P0QtdNmp!qG?b-{w^UPfGJ4r7||QOMU3{2HBM8Dco)R-yAk!hkT}c z>RVfBV{3#Z4_whahg57mF?8!XfBN|((7UrOX=*cVzr&+DMPQq#In-#jLZ2$=<5bGw z`1MX2mElpWiD)cJXX0#XQ4gws>Ht-I1Yh>#C8B&)3+WFQGCGWROy;^SqEi;A5?)^- z#Nv3RbY2yfh;Ltc)YxnN2-Q>TgO4dBVR9D%Ha*DOMF6?&LUM4U?fbxV^~OfJNVmuH z7Ku?T&At+}ym{^27-)soTo<-Pyi`M0GBJfcQGKKgtTSA>-G(K*#gtq{IM4t;#<|-} zm}J|+4vg5~a&>i@XlnIx>hx9%yP!i^Sx@gd1<}Gojot{Fo=DaLO^_@9!0`u&=86Xz zf83`bkFEXq-lvh9ddR%9-~}=NdT+9g!Dd_`=KxjzyWMZ(e$3e_Lp9_WOLFcSoZqZS zE#NZg9Ti-LgM^f%I1?gJj5P3-oY=mZQA-{FXh80+G0(R=Y}iyAFF?U#lP@(e3*x>j zeYyPB493j~#(yuFbFh4!gRfh|G>gQ}Ei$6mo56RPlatEkO+e~Yb9Q)XKTyb7kP-nk zXeBGlDHbf2sqCcU9(n-H5FEIBrv5A!@H?g72Uk>ZHA~C28aSS&ZaR^Q%e)xza*<&>8+_n*HDyaZO-}bsLr=Z`fmF4+wk-m|Ec3$|>i%xYfGz=KFqR^g?Nn(#HFr2|+bT%SwuU!#H13G2P;ptJ z6b(VE&d~Ft*gKASO&@N*Q1{FMOMwqOxK6M-g3x0zbh^7KcTAS`iNXDxnU|J|RgBPD z(@I)KVUYahI@<%@c2E?~P3P{P+ew(HEdjG)8>OZkDtrCFH1h3 zER3Q_3ZQ(JzzJg~1qyD;U0XADl8zM9we59&{jNEKar;C(4xz`<%*A_ zxYKRSx9O0{NP0I}1nD&`wsh{$|F~B}#{c@p}K-I0M$3J*2L%H%Ze zPQ@*(ARo-c^FAuY42Quf2Rn0>>KDbkD3IH{Uivb!9y&Hg$|PB8gfeynW_$7cgE3qG z-sbUx3iF+oG7FPPJjGFe9=77?pZk{aKO?Dg%c)2k*|{+nyGj5}Sp})<0JS8ed7%@@@Qh*E*&)%ec-Z8!tybMDB`E8$9CSK@iXulrv zlSRb;?=h~HxYXHn;gD6$-lqb`6A4rXWF#p!v8$01y6-7XvGXy74mw7{sV%=bCXU`G z9@I72N$Kv|QZLa-6ju%2Iv}+}F4qk!>1TDbMcVH99r5+reVkZPdcV}9XqZO@anl`0 zJ7KN)4bYPG7zL82X1h=B%-^MK2l%gjHKQxGW@o@CIciBpsLTl!Rn?O~0+({7;E#WZ z!;Ha8Ku@rNI*MuAx|^A=49yLV@Am!^HaYv4L$=+`hi}lw-uvmXM}TMN<$m~llEgqw z-qE(UEma*FsUQNjU_`zWD6+FcS5N|fk@pFL^k8xh<@}oZZL6s7qAiuywg|12(zcA2 z&Q7Ei67oJ!`_;?*5uR}45TiY%m^j}m21Eq>`!L_@VC8Wzvk+z(%1T#;_%0M4f zt|&B~25uT>#FJXTl6d-FBg>*>wF$yPid>ZA!N$K7~po{nz*{Un%NXibvuuX=?9>a~GTWga|G< zrG$p>=kT)FWU#@!GP|Do3^Mr+O!=RE&wn2UTy;l{y1Ac!H@W#PK*$sLH}`8c?si8_ z%6c=%E&-eZF3%Agb|s21#arX5;EhXd$kWF90n}M?Gq4Ec>KQROrdgkvf$D`&e-gc$ zp{0a*j0?}viO{z~so*GR6HQWff5}`@__P>*ziHPTihqs@IYRg{Aci5UV zgWr8$FbRu_J`C0D8+_Qa+sddQ|I5`Ds1F)aY+~Ta_IfSg7s}*Suy(LKQq&7Ii=eYC z2RW;{xXWfZ>603--iMs~?F&vuI9D;pF10R!)20l`)17$!-HG<2EM zF+Vq31a(*yc})jN$?gb1=Vr5e%F*)c)snTQGv0ri6U zor&_!B0;$ESK*3v^lae(R8dCaPlb)N6y&rwz8%UBHQkZpi#Beo;&#p}WmXhtFz?f- zk~nNA77|T$LP}%g2wR7yZ}vUPCx}?*J@lEDR*EX*ORXH1C_RQnv!KfC>)@1Z{}v<> zWO2w27GUN!F3)L&pp@hb^twDvTBrNL%`l0)KB?s1%T--1p}_)Bx6ujN&Q5oR{1(7% zUM7qXbF>zvDkY*XjerCM;*GlENzG9L(`?9tw8#?p5rsL>$^s2E+|b`vY3i1TzOno15FJb<~#49Uhkz>DCzI6x-P3soH)Vj zpOdrQPhb09blz?sUv=!d`D9rW2tMGgTiuLv9MyDpFmeUyfW<42M<%m0JuGGOmNk-o zHn(K1J4CA@|6mve&$%x!OdP`b<%G>RZZCZoZ@{o#^HwZxB;W`XFc<7FCA*=;lP{gl zp|&dV$_+&j`iQY^gENtMi7y_MvAU^Rwruq zGYtiweasJKZ)h{YRI%i^Q=Icwff654S=Vk3rWT9GSWAd*Yx=S`Tp4J_ky*12=Bq<6 z*uT}88Z^l+YkV_5a4uc;hQ$q<)ZGiQfRRHcrb&IlREnY|NT)`;A`Wrs`2ANV?MWp^ zhyUg~u8MG7v34Zx_IBr8v9oc<<6(Xe2})}nLn(KPI-%Yv(3=Iu5PuxIM*w42mzX&f zuwfUS%eSo1SjXSn)>eBTt{c@0KibNxBfteri<-q1EY4Xrr!jSmnWuVfS1a`sLnx< zeh@6SeC2it66Z2L`7g$3WC8kF&7abT`z48M@1t~#7$%;I8@E(4Vf8HuocY|>yI}mp z9n<)o8p`x4EeT>Od`YW8k~gi}nHAcVj>kFtpR{BXn0e~evVhm36Kur4@wC1wR-LM|G?C##t(BYZ-qX%W;Qa?gvSpx-vwCtLC-PRB?|axV`}s=eTR=q% z6T)RIW*DZ6$%q(hko_;O-wtqmQH)wCM$b1+IQn=61jZXqwed9#vb|5b_i{WQ@zHu;zQQCSw&9tODgNpIo{8af$WJbNV zNhXSf^%X``{@t`~5rceVOFy>HVG zm)$o#56HZhpcbl9py9r;;Yx&7OiQ3bo$SJ%8Mc3=1C+q2lcTfLK4uMPt;Rep^n$6) z-f@^cI}^>n$~{v*b7$f8-uzq-g)PiMS!*-^dI^dY_CR3i-REV9+phu45lGMejCIJ& z_WVs2d0vdhH8N5NV`;^T^@_l3plnCBVG~v5M}->cHLP-6c3=)S4Z4mEm|(JANpMKB zP;%Auy!IR~Gpr;zaO%8v5$aM~&WnUOy}H@hk#7jM*=-i<=;Ar6}4sZB39xYw0=5WV*j2~mG6}V8d(H4oCF?Mmk9og#Kn!f$) zBlW*Hx~j0K+ATbE!%#9H-7VcEAV^Awba!{RgagPB(nxoAcbBwu2}nzqz}f$qo4H@l z+TV&dR$I0I9*ers)5=oUkSC?G7lvd#1bk#G1wdz6%EOIH=-CH1q{F(S=7LKeOMZ68 z#YXqhIf45#)BfA2$G7VVwECHhP=en42FC2q&AKZiG1pTB$yyUal(UShEpC6`FNYdr z{Y-B?JedJ6GosBd$W=u|=q<-KAYXG0YYRqDDcF^aR@4Vh@o|_V`71AC=FQ3pKgIQ? z^l|+yeQ9?GvxpBXB$JPw3)FqnnqoDGQd&K7cq4tg+4FCow}*sL_fglf(3X;4WkT4; z=1tQ)+=8-FC+6N^hsLM+SszuK^wxQsP4zrp(;={I_{dBu;};#u}DVo0`&%!3Og(C zY>*-QVdwiaS>WTt0w?~z&x$QgSrT?VRH2^+RRDf*Dm|*gcp5xSyU%HbxC+U|{L*jp)UCay;%yKl6JY>qsjsTE{G|`er

gyuxHYOlR#oapE`@`)*Oy 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 O2mr#!0$vGojr~7(vQb+A literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/images/VideoFilterPreview_64x64.png b/desmume/src/cocoa/images/VideoFilterPreview_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd40c6290a4ef6415642e74a909ac37af706ecb GIT binary patch literal 4382 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 Ye>9_p<|uohA^-pY07*qoM6N<$f)WE}{Qv*} literal 0 HcmV?d00001 diff --git a/desmume/src/cocoa/translations/English.lproj/HID_usage_strings.plist b/desmume/src/cocoa/translations/English.lproj/HID_usage_strings.plist new file mode 100644 index 000000000..1953bcf97 --- /dev/null +++ b/desmume/src/cocoa/translations/English.lproj/HID_usage_strings.plist @@ -0,0 +1,1704 @@ + + + + + 0x0001 + + 0x0000 + Undefined Usage + 0x0001 + Pointer + 0x0002 + Mouse + 0x0004 + Joystick + 0x0005 + GamePad + 0x0006 + Keyboard + 0x0007 + Keypad + 0x0008 + MultiAxisController + 0x0030 + X + 0x0031 + Y + 0x0032 + Z + 0x0033 + Rx + 0x0034 + Ry + 0x0035 + Rz + 0x0036 + Slider + 0x0037 + Dial + 0x0038 + Wheel + 0x0039 + Hatswitch + 0x003A + Counted Buffer + 0x003B + Byte Count + 0x003C + Motion Wakeup + 0x003D + Start + 0x003E + Select + 0x0040 + Vx + 0x0041 + Vy + 0x0042 + Vz + 0x0043 + Vbrx + 0x0044 + Vbry + 0x0045 + Vbrz + 0x0046 + Vno + 0x0080 + System Control + 0x0081 + System Power Down + 0x0082 + System Sleep + 0x0083 + System Wake Up + 0x0084 + SystemContext Menu + 0x0085 + System Main Menu + 0x0086 + System App Menu + 0x0087 + System Menu help + 0x0088 + System Menu Exit + 0x0089 + System Menu + 0x008A + System Menu Right + 0x008B + System Menu Left + 0x008C + System Menu Up + 0x008D + System Menu Down + 0x0090 + DPad Up + 0x0091 + DPad Down + 0x0092 + DPad Right + 0x0093 + DPad Left + Name + Generic Desktop + + 0x0002 + + 0x0000 + Undefined Usage + 0x0001 + Flight Simulation Device + 0x0002 + Automobile Simulation Device + 0x0003 + Tank Simulation Device + 0x0004 + Spaceship Simulation Device + 0x0005 + Submarine Simulation Device + 0x0006 + Sailing Simulation Device + 0x0007 + Motorcycle Simulation Device + 0x0008 + Sports Simulation Device + 0x0009 + Airplane Simulation Device + 0x000A + Helicopter Simulation Device + 0x000B + Magic Carpet Simulation Device + 0x000C + Bicycle Simulation Device + 0x0020 + Flight Control Stick + 0x0021 + Flight Stick + 0x0022 + Cyclic Control + 0x0023 + Cyclic Trim + 0x0024 + Flight Yoke + 0x0025 + Track Control + 0x00B0 + Aileron + 0x00B1 + Aileron Trim + 0x00B2 + Anti Torque Control + 0x00B5 + Collective Control + 0x00B6 + Dive Brake + 0x00B7 + Electronic Countermeasures + 0x00B8 + Elevator + 0x00B9 + Elevator Trim + 0x00BA + Rudder + 0x00BB + Throttle + 0x00BC + Flight Communications + 0x00BD + Flare Release + 0x00BE + Landing Gear + 0x00BF + Toe Brake + 0x00C0 + Trigger + 0x00C1 + Weapons Arm + 0x00C2 + Weapons + 0x00C3 + Wing Flaps + 0x00C4 + Accelerator + 0x00C5 + Brake + 0x00C6 + Clutch + 0x00C7 + Shifter + 0x00C8 + Steering + 0x00C9 + Turret Direction + 0x00CA + Barrel Elevation + 0x00CB + Dive Plane + 0x00CC + Ballast + 0x00CD + Bicycle Crank + 0x00CE + Handle Bars + 0x00CF + Front Brake + 0x00D0 + Rear Brake + Name + Simulation + + 0x0003 + + 0x0000 + Undefined Usage + 0x0001 + Belt + 0x0002 + Body Suit + 0x0003 + Flexor + 0x0004 + Glove + 0x0005 + Head Tracker + 0x0006 + Head Mounted Display + 0x0007 + Hand Tracker + 0x0008 + Oculometer + 0x0009 + Vest + 0x000A + Animatronic Device + 0x0020 + Stereo Enable + 0x0021 + Display Enable + Name + Virtual Reality + + 0x0004 + + 0x0000 + Undefined Usage + 0x0001 + Baseball Bat + 0x0002 + Golf Club + 0x0003 + Rowing Machine + 0x0004 + Treadmill + 0x0030 + Oar + 0x0031 + Slope + 0x0032 + Rate + 0x0033 + Stick Speed + 0x0034 + Stick Face Angle + 0x0035 + Stick Heel Or Toe + 0x0036 + Stick Follow Through + 0x0037 + Stick Tempo + 0x0038 + Stick Type + 0x0039 + Stick Height + 0x0050 + Putter + 0x0051 + 1 Iron + 0x0052 + 2 Iron + 0x0053 + 3 Iron + 0x0054 + 4 Iron + 0x0055 + 5 Iron + 0x0056 + 6 Iron + 0x0057 + 7 Iron + 0x0058 + 8 Iron + 0x0059 + 9 Iron + 0x005A + 10 Iron + 0x005B + 11 Iron + 0x005C + Sand Wedge + 0x005D + Loft Wedge + 0x005E + Power Wedge + 0x005F + 1 Wood + 0x0060 + 3 Wood + 0x0061 + 5 Wood + 0x0062 + 7 Wood + 0x0063 + 9 Wood + Name + Sport + + 0x0005 + + 0x0000 + Undefined Usage + 0x0001 + 3D Game Controller + 0x0002 + Pinball Device + 0x0003 + Gun + 0x0020 + Point of View + 0x0021 + Turn Right Or Left + 0x0022 + Pitch Up Or Down + 0x0023 + Roll Right Or Left + 0x0024 + Move Right Or Left + 0x0025 + Move Forward Or Backward + 0x0026 + Move Up Or Down + 0x0027 + Lean Right Or Left + 0x0029 + Height Of POV + 0x002A + Flipper + 0x002B + Secondary Flipper + 0x002C + Bump + 0x002D + New Game + 0x002E + Shoot Ball + 0x002F + Player + 0x0030 + Gun Bolt + 0x0031 + Gun Clip + 0x0032 + Gun + 0x0033 + Gun Single Shot + 0x0034 + Gun Burst + 0x0035 + Gun Automatic + 0x0036 + Gun Safety + 0x0037 + Gamepad Fire Or Jump + 0x0039 + Gamepad Trigger + Name + Game + + 0x0007 + + 0x0000 + Undefined Usage + 0x0001 + Error Roll Over + 0x0002 + POST Fail + 0x0003 + Error Undefined + 0x0004 + A + 0x0005 + B + 0x0006 + C + 0x0007 + D + 0x0008 + E + 0x0009 + F + 0x000A + G + 0x000B + H + 0x000C + I + 0x000D + J + 0x000E + K + 0x000F + L + 0x0010 + M + 0x0011 + N + 0x0012 + O + 0x0013 + P + 0x0014 + Q + 0x0015 + R + 0x0016 + S + 0x0017 + T + 0x0018 + U + 0x0019 + V + 0x001A + W + 0x001B + X + 0x001C + Y + 0x001D + Z + 0x001E + 1 + 0x001F + 2 + 0x0020 + 3 + 0x0021 + 4 + 0x0022 + 5 + 0x0023 + 6 + 0x0024 + 7 + 0x0025 + 8 + 0x0026 + 9 + 0x0027 + 0 + 0x0028 + Return + 0x0029 + Escape + 0x002A + Delete + 0x002B + Tab + 0x002C + Spacebar + 0x002D + Dash + 0x002E + Equal + 0x002F + Left Square Bracket + 0x0030 + Right Square Bracket + 0x0031 + Slash + 0x0032 + Non-US # + 0x0033 + Semi-Colan + 0x0034 + Single Quote + 0x0035 + Grave Accent + 0x0036 + Comma + 0x0037 + Period + 0x0038 + Slash + 0x0039 + Caps Lock + 0x003A + F1 + 0x003B + F2 + 0x003C + F3 + 0x003D + F4 + 0x003E + F5 + 0x003F + F6 + 0x0040 + F7 + 0x0041 + F8 + 0x0042 + F9 + 0x0043 + F10 + 0x0044 + F11 + 0x0045 + F12 + 0x0046 + Print Screen + 0x0047 + Scroll Lock + 0x0048 + Pause + 0x0049 + Insert + 0x004A + Home + 0x004B + Page Up + 0x004C + Delete Forward + 0x004D + End + 0x004E + Page Down + 0x004F + Right Arrow + 0x0050 + Left Arrow + 0x0051 + Down Arrow + 0x0052 + Up Arrow + 0x0053 + Keypad NumLock + 0x0054 + Keypad Slash + 0x0055 + Keypad Asterisk + 0x0056 + Keypad Dash + 0x0057 + Keypad Plus + 0x0058 + Keypad Enter + 0x0059 + Keypad 1 + 0x005A + Keypad 2 + 0x005B + Keypad 3 + 0x005C + Keypad 4 + 0x005D + Keypad 5 + 0x005E + Keypad 6 + 0x005F + Keypad 7 + 0x0060 + Keypad 8 + 0x0061 + Keypad 9 + 0x0062 + Keypad 0 + 0x0063 + Keypad Period + 0x0064 + Non-US Backslash + 0x0065 + Application + 0x0066 + Power + 0x0067 + Keypad Equal + 0x0068 + F13 + 0x0069 + F14 + 0x006A + F15 + 0x006B + F16 + 0x006C + F17 + 0x006D + F18 + 0x006E + F19 + 0x006F + F20 + 0x0070 + F21 + 0x0071 + F22 + 0x0072 + F23 + 0x0073 + F24 + 0x0074 + Execute + 0x0075 + Help + 0x0076 + Menu + 0x0077 + Select + 0x0078 + Stop + 0x0079 + Again + 0x007A + Undo + 0x007B + Cut + 0x007C + Copy + 0x007D + Paste + 0x007E + Find + 0x007F + Mute + 0x0080 + Volume Up + 0x0081 + Volume Down + 0x0082 + Locking Caps Lock + 0x0083 + Locking Num Lock + 0x0084 + Locking Scroll Lock + 0x0085 + Keypad Comma + 0x0086 + Keypad Equal Sign for AS-400 + 0x0087 + International1 + 0x0088 + International2 + 0x0089 + International3 + 0x008A + International4 + 0x008B + International5 + 0x008C + International6 + 0x008D + International7 + 0x008E + International8 + 0x008F + International9 + 0x0090 + LANG1 + 0x0091 + LANG2 + 0x0092 + LANG3 + 0x0093 + LANG4 + 0x0094 + LANG5 + 0x0095 + LANG6 + 0x0096 + LANG7 + 0x0097 + LANG8 + 0x0098 + LANG9 + 0x0099 + Alternate Erase + 0x009A + SysReq or Attention + 0x009B + Cancel + 0x009C + Clear + 0x009D + Prior + 0x009E + Return + 0x009F + Separator + 0x00A0 + Out + 0x00A1 + Oper + 0x00A2 + Clear or Again + 0x00A3 + CrSel or Props + 0x00A4 + ExSel + 0x00E0 + Left Control + 0x00E1 + Left Shift + 0x00E2 + Left Alt + 0x00E3 + Left GUI + 0x00E4 + Right Control + 0x00E5 + Right Shift + 0x00E6 + Right Alt + 0x00E7 + Right GUI + Name + Keyboard or Keypad + + 0x0008 + + 0x0000 + Undefined Usage + 0x0001 + Num Lock + 0x0002 + Caps Lock + 0x0003 + Scroll Lock + 0x0004 + Compose + 0x0005 + Kana + 0x0006 + Power + 0x0007 + Shift + 0x0008 + DoNotDisturb + 0x0009 + Mute + 0x000A + Tone Enable + 0x000B + High Cut Filter + 0x000C + Low Cut Filter + 0x000D + Equalizer Enable + 0x000E + Sound Field On + 0x000F + Surround On + 0x0010 + Repeat + 0x0011 + Stereo + 0x0012 + Sampling Rate Detect + 0x0013 + Spinning + 0x0014 + CAV + 0x0015 + CLV + 0x0016 + Recording Format Detect + 0x0017 + Off Hook + 0x0018 + Ring + 0x0019 + Message Waiting + 0x001A + Data Mode + 0x001B + Battery Operation + 0x001C + Battery OK + 0x001D + Battery Low + 0x001E + Speaker + 0x001F + Headset + 0x0020 + Hold + 0x0021 + Microphone + 0x0022 + Coverage + 0x0023 + Night Mode + 0x0024 + Send Calls + 0x0025 + Call Pickup + 0x0026 + Conference + 0x0027 + Stand By + 0x0028 + Camera On + 0x0029 + Camera Off + 0x002A + On Line + 0x002B + Off Line + 0x002C + Busy + 0x002D + Ready + 0x002E + Paper Out + 0x002F + Paper Jam + 0x0030 + Remote + 0x0031 + Forward + 0x0032 + Reverse + 0x0033 + Stop + 0x0034 + Rewind + 0x0035 + Fast Forward + 0x0036 + Play + 0x0037 + Pause + 0x0038 + Record + 0x0039 + Error + 0x003A + Usage + 0x003B + Usage In Use Indicator + 0x003C + Usage Multi Mode indicator + 0x003D + Indicator On + 0x003E + Indicator Flash + 0x003F + Indicator Slow Blink + 0x0040 + Indicator Fast Blink + 0x0041 + Indicator Off + 0x0042 + Flash On Time + 0x0043 + Slow Blink On Time + 0x0044 + Slow Blink Off Time + 0x0045 + Fast Blink On Time + 0x0046 + Fast Blink Off Time + 0x0047 + Usage Indicator Color + 0x0048 + Indicator Red + 0x0049 + Indicator Green + 0x004A + Indicator Amber + 0x004B + Generic Indicator + 0x004C + System Suspend + 0x004D + External Power Connected + Name + LED + + 0x0009 + + Name + Button + + 0x000C + + 0x0000 + Undefined Usage + 0x0001 + Consumer Control + 0x0002 + Numeric KeyPad + 0x0003 + Programmable Buttons + 0x0020 + Plus 10 + 0x0021 + Plus 100 + 0x0022 + AM Or PM + 0x0030 + Power + 0x0031 + Reset + 0x0032 + Sleep + 0x0033 + Sleep After + 0x0034 + Sleep Mode + 0x0035 + Illumination + 0x0036 + Function Buttons + 0x0040 + Menu + 0x0041 + Menu Pick + 0x0042 + Menu Up + 0x0043 + Menu Down + 0x0044 + Menu Left + 0x0045 + Menu Right + 0x0046 + Menu Escape + 0x0047 + Menu Value Increase + 0x0048 + Menu Value Decrease + 0x0060 + Data On Screen + 0x0061 + Closed Caption + 0x0062 + Closed Caption Select + 0x0063 + VCR Or TV + 0x0064 + Broadcast Mode + 0x0065 + Snapshot + 0x0066 + Still + 0x0080 + Selection + 0x0081 + Assign + 0x0082 + Mode Step + 0x0083 + Recall Last + 0x0084 + Enter Channel + 0x0085 + Order Movie + 0x0086 + Channel + 0x0087 + Media Selection + 0x0088 + Media Select Computer + 0x0089 + Media Select TV + 0x008A + Media Select WWW + 0x008B + Media Select DVD + 0x008E + Media Select Video Phone + 0x008F + Media Select Games + 0x0090 + Media Select Messages + 0x0091 + Media Select CD + 0x0092 + Media Select VCR + 0x0093 + Media Select Tuner + 0x0094 + Quit + 0x0095 + Help + 0x0096 + Media Select Tape + 0x0097 + Media Select Cable + 0x0098 + Media Select Satellite + 0x0099 + Media Select Security + 0x009A + Media Select Home + 0x009B + Media Select Call + 0x009C + Channel Increment + 0x009D + Channel Decrement + 0x009E + Media + 0x00A0 + VCR Plus + 0x00A1 + Once + 0x00A2 + Daily + 0x00A3 + Weekly + 0x00A4 + Monthly + 0x00B0 + Play + 0x00B1 + Pause + 0x00B2 + Record + 0x00B3 + Fast Forward + 0x00B4 + Rewind + 0x00B5 + Scan Next Track + 0x00B6 + Scan Previous Track + 0x00B7 + Stop + 0x00B8 + Eject + 0x00B9 + Random Play + 0x00BA + Select Disc + 0x00BB + Enter Disc + 0x00BC + Repeat + 0x00BD + Tracking + 0x00BE + Track Normal + 0x00BF + Slow Tracking + 0x00C0 + Frame Forward + 0x00C1 + Frame Back + 0x00C2 + Mark + 0x00C3 + Clear Mark + 0x00C4 + Repeat From Mark + 0x00C5 + Return To Mark + 0x00C6 + Search Mark Forward + 0x00C7 + Search Mark Backwards + 0x00C8 + Counter Reset + 0x00C9 + Show Counter + 0x00CA + Tracking Increment + 0x00CB + Tracking Decrement + 0x00CC + Stop Or Eject + 0x00CD + Play Or Pause + 0x00CE + Play Or Skip + 0x00E0 + Volume + 0x00E1 + Balance + 0x00E2 + Mute + 0x00E3 + Bass + 0x00E4 + Treble + 0x00E5 + Bass Boost + 0x00E6 + Surround Mode + 0x00E7 + Loudness + 0x00E8 + MPX + 0x00E9 + Volume Increment + 0x00EA + Volume Decrement + 0x00F0 + Speed + 0x00F1 + Playback Speed + 0x00F2 + Standard Play + 0x00F3 + Long Play + 0x00F4 + Extended Play + 0x00F5 + Slow + 0x0100 + Fan Enable + 0x0101 + Fan Speed + 0x0102 + Light Enable + 0x0103 + Light Illumination Level + 0x0104 + Climate Control Enable + 0x0105 + Room Temperature + 0x0106 + Security Enable + 0x0107 + Fire Alarm + 0x0108 + Police Alarm + 0x0150 + Balance Right + 0x0151 + Balance Left + 0x0152 + Bass Increment + 0x0153 + Bass Decrement + 0x0154 + Treble Increment + 0x0155 + Treble Decrement + 0x0160 + Speaker System + 0x0161 + Channel Left + 0x0162 + Channel Right + 0x0164 + Channel Front + 0x0165 + Channel Center Front + 0x0166 + Channel Side + 0x0167 + Channel Surround + 0x0168 + Channel Low Frequency Enhancement + 0x0169 + Channel Top + 0x016A + Channel Unknown + 0x0170 + Sub Channel + 0x0171 + Sub Channel Increment + 0x0172 + Sub Channel Decrement + 0x0173 + Alternate Audio Increment + 0x0174 + Alternate Audio Decrement + 0x0180 + Application Launch Buttons + 0x0181 + AL Launch Button Configuration Tool + 0x0182 + AL Programmable Button Configuration + 0x0183 + AL Consumer Control Configuration + 0x0184 + AL Word Processor + 0x0185 + AL Text Editor + 0x0186 + AL Spreadsheet + 0x0187 + AL Graphics Editor + 0x0188 + AL Presentation App + 0x0189 + AL Database App + 0x018A + AL Email Reader + 0x018B + AL Newsreader + 0x018C + AL Voicemail + 0x018D + AL Contacts Or AddressBook + 0x018E + AL Calendar Or Schedule + 0x018F + AL Task Or Project Manager + 0x0190 + AL Log Or Journal Or Timecard + 0x0191 + AL Checkbook Or Finance + 0x0192 + AL Calculator + 0x0193 + AL A Or V Capture Or Playback + 0x0194 + AL Local Machine Browser + 0x0195 + AL LAN Or WAN Browser + 0x0196 + AL Internet Browser + 0x0197 + AL Remote Networking Or ISP Connect + 0x0198 + AL Network Conference + 0x0199 + AL Network Chat + 0x019A + AL Telephony Or Dialer + 0x019B + AL Logon + 0x019C + AL Logoff + 0x019D + AL Logon Or Logoff + 0x019E + AL Terminal Lock Or Screensaver + 0x019F + AL Control Panel + 0x01A0 + AL Command Line Processor Or Run + 0x01A1 + AL Process Or Task Manager + 0x01A2 + AL + 0x01A3 + AL Next Task Or Application + 0x01A4 + AL Previous Task Or Application + 0x01A5 + AL Preemptive Halt Task Or Application + 0x0200 + Generic GUI Application Controls + 0x0201 + AC New + 0x0202 + AC Open + 0x0203 + AC Close + 0x0204 + AC Exit + 0x0205 + AC Maximize + 0x0206 + AC Minimize + 0x0207 + AC Save + 0x0208 + AC Print + 0x0209 + AC Properties + 0x021A + AC Undo + 0x021B + AC Copy + 0x021C + AC Cut + 0x021D + AC Paste + 0x021E + AC + 0x021F + AC Find + 0x0220 + AC Find and Replace + 0x0221 + AC Search + 0x0222 + AC Go To + 0x0223 + AC Home + 0x0224 + AC Back + 0x0225 + AC Forward + 0x0226 + AC Stop + 0x0227 + AC Refresh + 0x0228 + AC Previous Link + 0x0229 + AC Next Link + 0x022A + AC Bookmarks + 0x022B + AC History + 0x022C + AC Subscriptions + 0x022D + AC Zoom In + 0x022E + AC Zoom Out + 0x022F + AC Zoom + 0x0230 + AC Full Screen View + 0x0231 + AC Normal View + 0x0232 + AC View Toggle + 0x0233 + AC Scroll Up + 0x0234 + AC Scroll Down + 0x0235 + AC Scroll + 0x0236 + AC Pan Left + 0x0237 + AC Pan Right + 0x0238 + AC Pan + 0x0239 + AC New Window + 0x023A + AC Tile Horizontally + 0x023B + AC Tile Vertically + 0x023C + AC Format + Name + Consumer + + 0x0084 + + 0x0000 + Undefined Usage + 0x0001 + Name Index + 0x0002 + Present Status + 0x0003 + Changed Status + 0x0004 + Uninterruptible Power Supply + 0x0005 + Power Supply + 0x0010 + Battery System power module + 0x0011 + Battery System ID + 0x0012 + Battery + 0x0013 + Battery ID + 0x0014 + Charger + 0x0015 + Charger ID + 0x0016 + Power Converter power module + 0x0017 + Power Converter ID + 0x0018 + Outlet System power module + 0x0019 + Outlet System ID + 0x001A + Input + 0x001B + Input ID + 0x001C + Output + 0x001D + Output ID + 0x001E + Flow + 0x001F + Flow ID + 0x0020 + Outlet + 0x0021 + Outlet ID + 0x0022 + Gang + 0x0023 + Gang ID + 0x0024 + Power Summary + 0x0025 + Power Summary ID + 0x0030 + Voltage + 0x0031 + Current + 0x0032 + Frequency + 0x0033 + Apparent Power + 0x0034 + RMS Power + 0x0035 + Percent Load + 0x0036 + Temperature + 0x0037 + Humidity + 0x0038 + Bad Condition Count + 0x0040 + Nominal Voltage + 0x0041 + Nominal Current + 0x0042 + Nominal Frequency + 0x0043 + Nominal Apparent Power + 0x0044 + Nominal RMS Power + 0x0045 + Nominal Percent Load + 0x0046 + Nominal Temperature + 0x0047 + Nominal Humidity + 0x0050 + Switch On Control + 0x0051 + Switch Off Control + 0x0052 + Toogle Sequence Control + 0x0053 + Min Transfer Voltage + 0x0054 + Max Transfer Voltage + 0x0055 + Delay Before Reboot + 0x0056 + Delay Before Startup + 0x0057 + Delay Before Shutdown + 0x0058 + Test Request/Result + 0x0059 + Reset Request/Result + 0x005A + Audible Alarm Control + 0x0060 + Present + 0x0061 + Good + 0x0062 + Internal Failure + 0x0063 + Voltage Out Of Range + 0x0064 + Frequency Out Of Range + 0x0065 + Overload + 0x0066 + Over Charged + 0x0067 + Over Temperature + 0x0068 + Shutdown Requested + 0x0069 + Shutdown Imminent + 0x006B + On/Off Switch Status + 0x006C + Switchable + 0x006D + Used + 0x006E + Boosted + 0x006F + Bucked + 0x0070 + Initialized + 0x0071 + Tested + 0x0072 + Awaiting Power + 0x0073 + Communication Lost + 0x00FD + Manufacturer String Index + 0x00FE + Product String Index + 0x00FF + Serial Number String Index + Name + Power Device Page + + 0x0085 + + 0x0000 + Undefined Usage + 0x0001 + Mode + 0x0002 + Status + 0x0003 + Alarm Warning + 0x0004 + Charger Mode + 0x0005 + Charger Status + 0x0006 + Charger Extended Status + 0x0007 + Selector State + 0x0008 + Selector Presets + 0x0009 + Selector Info + 0x0010 + Mfg Function 1 + 0x0011 + Mfg Function 2 + 0x0012 + Mfg Function 3 + 0x0013 + Mfg Function 4 + 0x0014 + Mfg Function 5 + 0x0015 + Connection To System Management Bus + 0x0016 + Output Connection Status + 0x0017 + Charger Connection + 0x0018 + Battery Insertion + 0x0019 + Use Next + 0x001A + OK To Use + 0x001B + Battery Supported + 0x001C + Selector Revision + 0x001D + Charging Indicator + 0x0028 + Manufacturer Access + 0x0029 + Remaining Capacity Limit + 0x002A + Remaining Time Limit + 0x002B + At Rate... + 0x002C + Capacity Mode + 0x002D + Broadcast To Charger + 0x002E + Primary Battery + 0x002F + Charge Controller + 0x0040 + Terminate Charge + 0x0041 + Terminate Discharge + 0x0042 + Below Remaining Capacity Limit + 0x0043 + Remaining Time Limit Expired + 0x0044 + Charging + 0x0045 + Discharging + 0x0046 + Fully Charged + 0x0047 + Fully Discharged + 0x0048 + Conditioning Flag + 0x0049 + At Rate OK + 0x004A + SMB Error Code + 0x004B + Need Replacement + 0x0060 + At Rate Time To Full + 0x0061 + At Rate Time To Empty + 0x0062 + Average Current + 0x0063 + Max Error + 0x0065 + Absolute State Of Charge + 0x0066 + Remaining Capacity + 0x0067 + Full Charge Capacity + 0x0068 + Run Time To Empty + 0x0069 + Average Time To Empty + 0x006A + Average Time To Full + 0x006B + Cycle Count + 0x0080 + Batt Pack Model Level + 0x0081 + Internal Charge Controller + 0x0082 + Primary Battery Support + 0x0083 + Design Capacity + 0x0084 + Specification Info + 0x0085 + Manufacturer Date + 0x0086 + Serial Number + 0x0087 + Manufacturer Name Index + 0x0088 + Device Name Index + 0x0089 + Device Chemistry Index + 0x008A + Manufacturer Data + 0x008B + Rechargable + 0x008C + Warning Capacity Limit + 0x008D + Capacity Granularity 1 + 0x008E + Capacity Granularity 2 + 0x008F + OEM Information Index + 0x00C0 + Inhibit Charge + 0x00C1 + Enable Polling + 0x00C2 + Reset To Zero + 0x00D0 + AC Present + 0x00D1 + Battery Present + 0x00D2 + Power Fail + 0x00D3 + Alarm Inhibited + 0x00D4 + Thermistor Under Range + 0x00D5 + Thermistor Hot + 0x00D6 + Thermistor Cold + 0x00D7 + Thermistor Over Range + 0x00D8 + Voltage Out Of Range + 0x00D9 + Current Out Of Range + 0x00DA + Current Not Regulated + 0x00DB + Voltage Not Regulated + 0x00DC + Master Mode + 0x00F0 + Charger Support Selector + 0x00F1 + Charger Specification + 0x00F2 + Charger Level 2 + 0x00F3 + Charger Level 3 + Name + Battery System Page + + 0xFF00 + + Name + Vendor + + + diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings new file mode 100644 index 0000000000000000000000000000000000000000..5afe568755ffa18a1746af55a884d69474acb186 GIT binary patch literal 255216 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 + + + 1050 + 10K549 + 851 + 1038.36 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + MainMenu + + + + DeSmuME + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + DeSmuME + + + + About DeSmuME + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide DeSmuME + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit DeSmuME + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + + + Load ROM… + o + 1048576 + 2147483647 + + + + + + Load Recent ROM + + 1048576 + 2147483647 + + + submenuAction: + + Load Recent ROM + + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + Unload ROM + w + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + ROM Info + i + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Open State File... + O + 1048576 + 2147483647 + + + + + + Close State File + W + 1048576 + 2147483647 + + + + + + Save State File + s + 1048576 + 2147483647 + + + + + + Save State File As… + S + 1179648 + 2147483647 + + + + + + Revert State File to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Load State Slot + + 2147483647 + + + submenuAction: + + Load State Slot + + + + + + Save State Slot + + 2147483647 + + + submenuAction: + + Save State Slot + + + + + + YES + YES + + + 2147483647 + + + + + + Import ROM Save File... + + 2147483647 + + + + + + Export ROM Save File... + + 2147483647 + + + + + + + + + Edit + + 2147483647 + + + submenuAction: + + Edit + + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + + + + Emulation + + 2147483647 + + + submenuAction: + + Emulation + + + + Speed Limit + + 2147483647 + + + submenuAction: + + Speed Limit + + + + Half + + 2147483647 + + + 50 + + + + Normal + + 2147483647 + + + 100 + + + + Double + + 2147483647 + + + 200 + + + + YES + YES + + + 2147483647 + + + -1 + + + + Custom... + + 2147483647 + + + -1 + + + + + + + Disable Speed Limit + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Disable Auto Frame Skip + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Cheat Manager... + + 2147483647 + + + + + + Disable Cheats + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Execute + + 2147483647 + + + + + + Reset + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + ROM Save Type + + 2147483647 + + + submenuAction: + + ROM Save Type + + + + Automatic + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + -1 + + + + EEPROM 4Kb + + 2147483647 + + + 1 + + + + EEPROM 64Kb + + 2147483647 + + + 2 + + + + EEPROM 512Kb + + 2147483647 + + + 3 + + + + FRAM 256Kb + + 2147483647 + + + 4 + + + + FLASH 2Mb + + 2147483647 + + + 5 + + + + FLASH 4Mb + + 2147483647 + + + 6 + + + + FLASH 8Mb + + 2147483647 + + + 7 + + + + FLASH 16Mb + + 2147483647 + + + 8 + + + + FLASH 32Mb + + 2147483647 + + + 9 + + + + FLASH 64Mb + + 2147483647 + + + 10 + + + + FLASH 128Mb + + 2147483647 + + + 11 + + + + FLASH 256Mb + + 2147483647 + + + 12 + + + + FLASH 512Mb + + 2147483647 + + + 13 + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + + + Display Mode + + 2147483647 + + + submenuAction: + + Display Mode + + + + Main + + 2147483647 + + + + + + Touch + + 2147483647 + + + 1 + + + + Combo + + 2147483647 + + + 2 + + + + + + + Display Size + + 2147483647 + + + submenuAction: + + Display Size + + + + 1x + + 2147483647 + + + 100 + + + + 2x + + 2147483647 + + + 200 + + + + 3x + + 2147483647 + + + 300 + + + + 4x + + 2147483647 + + + 400 + + + + 5x + + 2147483647 + + + 500 + + + + + + + Display Rotation + + 2147483647 + + + submenuAction: + + Display Rotation + + + + Rotate Left + + 2147483647 + + + -90 + + + + Rotate Right + + 2147483647 + + + 90 + + + + YES + YES + + + 2147483647 + + + + + + 0º + + 2147483647 + + + + + + 90º + + 2147483647 + + + 90 + + + + 180º + + 2147483647 + + + 180 + + + + 270º + + 2147483647 + + + 270 + + + + YES + YES + + + 2147483647 + + + + + + Custom... + + 2147483647 + + + -1 + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Sound Settings... + + 2147483647 + + + + + + Show Video Output Settings... + + 2147483647 + + + + + + Show 3D Rendering Settings... + + 2147483647 + + + + + + Show Emulation Settings... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Keep Minimum Display Size at 1x + + 2147483647 + + + + + + Show Status Bar + / + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Tools + + 2147483647 + + + submenuAction: + + Tools + + + + Show Support Folder in Finder + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Save Screenshot As... + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + View Layers + + 2147483647 + + + submenuAction: + + View Layers + + + + Main GPU + + 2147483647 + + + + + + Main BG0 + + 2147483647 + + + 1 + + + + Main BG1 + + 2147483647 + + + 2 + + + + Main BG2 + + 2147483647 + + + 3 + + + + Main BG3 + + 2147483647 + + + 4 + + + + Main OBJ + + 2147483647 + + + 5 + + + + YES + YES + + + 2147483647 + + + + + + Sub GPU + + 2147483647 + + + 6 + + + + Sub BG0 + + 2147483647 + + + 7 + + + + Sub BG1 + + 2147483647 + + + 8 + + + + Sub BG2 + + 2147483647 + + + 9 + + + + Sub BG3 + + 2147483647 + + + 10 + + + + Sub OBJ + + 2147483647 + + + 11 + + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + + + DeSmuME Help + ? + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Go to Website... + + 2147483647 + + + + + + Go to Forums... + + 2147483647 + + + + + + Submit a Bug Report... + + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + Combo Display Layout + + 2147483647 + + + submenuAction: + + Combo Display Layout + + + + Vertical + + 2147483647 + + + + + + Horizontal + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Main Screen First + + 2147483647 + + + + + + Touch Screen First + + 2147483647 + + + + + + + + Combo Display Separation + + 2147483647 + + + submenuAction: + + Combo Display Separation + + + + 0.0% + + 2147483647 + + + + + + 2.6% + + 2147483647 + + + + + + 33.3% + + 2147483647 + + + + + + 46.9% + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Custom... + + 2147483647 + + + + + + + + Media + + 2147483647 + + + submenuAction: + + Media + + + + New Movie Recording + + 2147483647 + + + + + + Open Movie... + + 2147483647 + + + + + + Open Recent Movie + + 2147483647 + + + submenuAction: + + Open Recent Movie + + + + Clear Menu + + 2147483647 + + + + + + + + + Close Movie + + 2147483647 + + + + + + + + + 12 + + + + 274 + + + + 268 + {{30, 17}, {126, 17}} + + YES + + 68288064 + 272630784 + Display Separation: + + LucidaGrande + 13 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{158, 11}, {126, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + 0.0% + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + 2.6% + + 2147483647 + + + _popUpItemAction: + 260 + + + + + 33.3% + + 2147483647 + + + _popUpItemAction: + 3333 + + + + + 46.9% + + 2147483647 + + + _popUpItemAction: + 4688 + + + + + YES + YES + + + 2147483647 + + + _popUpItemAction: + + + + + Custom + + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{289, 14}, {96, 22}} + + YES + + -1804468671 + 272630784 + + + + + + + + + + + + + -∞ + + + +∞ + + #,##0% + #,##0% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + YES + NO + YES + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {100, 38}} + + YES + 2 + 1 + + + -2080244224 + 0 + Vertical + + + 1 + 1211912703 + 0 + + NSRadioButton + + + + 200 + 25 + + + 67239424 + 0 + Horizontal + + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 + + + + + + 3 + MCAwAA + + + + 400 + 75 + + + {100, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {194, 62}} + + + + {{15, 44}, {196, 78}} + + {0, 0} + + 67239424 + 0 + LCD Orientation + + LucidaGrande + 11 + 3100 + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {150, 38}} + + YES + 2 + 1 + + + -2080244224 + 0 + Main Screen First + + + 1 + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 0 + Touch Screen First + + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + {150, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {194, 62}} + + + + {{218, 44}, {196, 78}} + + {0, 0} + + 67239424 + 0 + LCD Order + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{1, 1}, {429, 132}} + + + + {431, 148} + {0, 0} + + 67239424 + 0 + Combo Display Layout + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + {614, 409} + + + 1 + + + 256 + + + + 268 + {{125, 340}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 315}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 290}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 265}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 240}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 215}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 190}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 165}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 140}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 115}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 90}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 65}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 340}, {100, 19}} + + 1000 + YES + + 67239424 + 134217728 + Up + + LucidaGrande + 12 + 16 + + + -1229176577 + 100 + + NSImage + Icon_ArrowUp_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 315}, {100, 19}} + + 1001 + YES + + 67239424 + 134217728 + Down + + + -1229176577 + 100 + + NSImage + Icon_ArrowDown_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 290}, {100, 19}} + + 1002 + YES + + 67239424 + 134217728 + Left + + + -1229176577 + 100 + + NSImage + Icon_ArrowLeft_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 265}, {100, 19}} + + 1003 + YES + + 67239424 + 134217728 + Right + + + -1229176577 + 100 + + NSImage + Icon_ArrowRight_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 240}, {100, 19}} + + 1004 + YES + + 67239424 + 134217728 + A + + + -1229176577 + 100 + + NSImage + Icon_DSButtonA_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 215}, {100, 19}} + + 1005 + YES + + 67239424 + 134217728 + B + + + -1229176577 + 100 + + NSImage + Icon_DSButtonB_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 190}, {100, 19}} + + 1006 + YES + + 67239424 + 134217728 + X + + + -1229176577 + 100 + + NSImage + Icon_DSButtonX_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 165}, {100, 19}} + + 1007 + YES + + 67239424 + 134217728 + Y + + + -1229176577 + 100 + + NSImage + Icon_DSButtonY_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 140}, {100, 19}} + + 1008 + YES + + 67239424 + 134217728 + L + + + -1229176577 + 100 + + NSImage + Icon_DSButtonL_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 115}, {100, 19}} + + 1009 + YES + + 67239424 + 134217728 + R + + + -1229176577 + 100 + + NSImage + Icon_DSButtonR_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 90}, {100, 19}} + + 1010 + YES + + 67239424 + 134217728 + Start + + + -1229176577 + 100 + + NSImage + Icon_DSButtonStart_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 65}, {100, 19}} + + 1011 + YES + + 67239424 + 134217728 + Select + + + -1229176577 + 100 + + NSImage + Icon_DSButtonSelect_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 40}, {100, 19}} + + 3000 + YES + + 67239424 + 134217728 + Lid + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{125, 40}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 15}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 15}, {100, 19}} + + 3001 + YES + + 67239424 + 134217728 + Debug + + + -1229176577 + 100 + + + + 400 + 75 + + + + {{10, 33}, {594, 363}} + + + Controller + + + + + 2 + + + 256 + + + + 268 + + + + 2304 + + + + 256 + {558, 308} + + YES + + + 256 + {558, 17} + + + + + + -2147483392 + {{480, 0}, {16, 17}} + + + + + 47 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + + + + 6 + System + headerColor + + + + 6 + System + headerTextColor + + + + + 67239424 + 134348800 + Set + + + 4000 + -1229176577 + 36 + + + 200 + 25 + + 3 + YES + + + + 136 + 40 + 1000 + + 75628096 + 2048 + Input Device + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67239488 + 272765952 + Text + + + + + + 3 + YES + + + + 132 + 40 + 1000 + + 75628096 + 2048 + Input Element + + + + + + 67239488 + 137216 + Text Cell + + + YES + 1 + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + 131 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Use Device Coordinates + + + + + + 67239424 + 0 + + + + 1215582719 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + 3 + YES + YES + + + + 46 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + X + + + + + + 337772096 + -2147350528 + Text Cell + + + + + + + + + + -∞ + + + +∞ + + + #0 + #0 + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + + + + 3 + YES + YES + + + + 48 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Y + + + + + + 337772096 + -2147350528 + Text Cell + + + + + + + + + + -∞ + + + +∞ + + + #0 + #0 + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 18 + 851443712 + + + 3 + 0 + 15 + 0 + NO + 0 + + + {{1, 17}, {558, 308}} + + + + + 4 + + + + -2147483392 + {{480, 17}, {15, 257}} + + + _doScroller: + 0.99633699633699635 + + + + -2147483392 + {{1, 274}, {558, 15}} + + 1 + + _doScroller: + 0.99821109123434704 + + + + 2304 + + + + {{1, 0}, {558, 17}} + + + + + 4 + + + + {{17, 34}, {560, 326}} + + + 562 + + + + + + QSAAAEEgAABBoAAAQaAAAA + + + + 268 + {{44, 4}, {28, 23}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 162 + + NSImage + NSRemoveTemplate + + + + 400 + 75 + + + + + 268 + {{17, 4}, {28, 23}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 162 + + NSImage + NSAddTemplate + + + + 400 + 75 + + + + {{10, 33}, {594, 363}} + + Touch Pad + + + + + 3 + + + 256 + + + + 268 + {{153, 341}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 341}, {128, 19}} + + 2000 + YES + + 67239424 + 134217728 + Activate Mic + + + -1229176577 + 100 + + NSImage + Icon_Microphone_420x420 + + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{18, 69}, {528, 18}} + + YES + + 537001472 + 0 + + 50 + 38 + 47 + 2 + + + + + 268 + {{16, 39}, {532, 25}} + + YES + + -1543373312 + 0 + + + 100 + 0.0 + 50 + 0.0 + 5 + 0 + NO + NO + + + + + 268 + {{247, 14}, {70, 17}} + + YES + + 605158976 + 272630784 + Input Gain + + + + + + + + + 268 + {{15, 109}, {54, 17}} + + YES + + 605158976 + 272630784 + Device: + + + + + + + + + 268 + {{71, 103}, {478, 26}} + + YES + + -1539178944 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + + 1 + YES + YES + 2 + + + + {{1, 1}, {564, 137}} + + + + {{14, 55}, {566, 153}} + + {0, 0} + + 67239424 + 0 + Sound Input Device Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {290, 78}} + + YES + 4 + 1 + + + 604110336 + 0 + Sound Input Device (NOT IMPLEMENTED) + + + 4 + 1211912703 + 0 + + + + 200 + 25 + + + -2080244224 + 0 + Internal Noise Samples + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + 67239424 + 0 + White Noise + + + 3 + 1211912703 + 0 + + 400 + 75 + + + 604110336 + 0 + Sound File: + + + 2 + 1211912703 + 0 + + 400 + 75 + + + {290, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{130, 12}, {324, 21}} + + YES + + 612499008 + 272635904 + + + NOT IMPLEMENTED + + YES + + + + + + + 268 + {{456, 5}, {96, 32}} + + YES + + 604110336 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + {{1, 1}, {564, 102}} + + + + {{14, 212}, {566, 118}} + + {0, 0} + + 67239424 + 0 + Sound Input Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {594, 363}} + + Microphone + + + + + 4 + + + 256 + + + + 268 + {{153, 312}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{153, 286}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{153, 339}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 339}, {128, 19}} + + 3002 + YES + + 67239424 + 134217728 + Speed 1/2x + + + -1229176577 + 100 + + NSImage + Icon_DoubleSpeed_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 312}, {128, 19}} + + 3003 + YES + + 67239424 + 134217728 + Speed 2x + + + -1229176577 + 100 + + NSImage + Icon_Speed2x_420x420 + + + + 400 + 75 + + + + + 268 + {{17, 286}, {128, 19}} + + 3004 + YES + + 67239424 + 134217728 + HUD + + + -1229176577 + 100 + + NSImage + Icon_ShowHUD_420x420 + + + + 400 + 75 + + + + + 268 + {{153, 259}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 259}, {128, 19}} + + 3005 + YES + + 67239424 + 134217728 + Execute + + + -1229176577 + 100 + + NSImage + Icon_Execute_420x420 + + + + 400 + 75 + + + + + 268 + {{153, 232}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 232}, {128, 19}} + + 3006 + YES + + 67239424 + 134217728 + Pause + + + -1229176577 + 100 + + NSImage + Icon_Pause_420x420 + + + + 400 + 75 + + + + + 268 + {{153, 205}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 205}, {128, 19}} + + 3007 + YES + + 67239424 + 134217728 + Reset + + + -1229176577 + 100 + + NSImage + Icon_Reset_420x420 + + + + 400 + 75 + + + + {{10, 33}, {594, 363}} + + Utility + + + + + + + 0 + YES + YES + + + + + + AppDelegate + + + 15 + 2 + {{19, 214}, {500, 500}} + 1148716032 + About DeSmuME + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{20, 352}, {128, 128}} + + YES + + 130560 + 33554432 + + NSImage + NSApplicationIcon + + 0 + 1 + 0 + NO + + YES + + + + 18 + {{13, 10}, {474, 340}} + + + + 1 + + + 256 + + + + 274 + + + + 2304 + + + + 2322 + {440, 14} + + + + + + + + + + + + + 6 + + + + 440 + 1 + + + 10341 + 0 + + + + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + 6 + {463, 1e+07} + {223, 0} + + + + {440, 294} + + + + + + {4, -5} + 1 + + 2 + + + + 256 + {{440, 0}, {15, 294}} + + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {455, 294}} + + + 16 + + + + + + {{10, 33}, {454, 294}} + + + Read Me + + + + + 2 + + + 256 + + + + 274 + + + + 2304 + + + + 2322 + {440, 14} + + + + + + + + + + + + + 6 + + + + 440 + 1 + + + 10341 + 0 + + + + + + + + + + + + + + + 6 + {463, 1e+07} + {223, 0} + + + + {440, 294} + + + + + + 2 + + + + 256 + {{440, 0}, {15, 294}} + + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {455, 294}} + + + 16 + + + + + + {{10, 33}, {454, 294}} + + License + + + + + Item 2 + + + 256 + + + + 274 + + + + 2304 + + + + 2322 + {440, 14} + + + + + + + + + + + + + 6 + + + + 440 + 1 + + + 10341 + 0 + + + + + + + + + + + + + + + 6 + {463, 1e+07} + {223, 0} + + + + {440, 294} + + + + + + 2 + + + + 256 + {{440, 0}, {15, 294}} + + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {455, 294}} + + + 16 + + + + + + {{10, 33}, {454, 294}} + + Authors + + + + + Item 3 + + + 256 + + + + 274 + + + + 2304 + + + + 2322 + {440, 14} + + + + + + + + + + + + + 6 + + + + 440 + 1 + + + 10341 + 0 + + + + + + + + + + + + + + + 6 + {463, 1e+07} + {223, 0} + + + + {440, 294} + + + + + + 2 + + + + 256 + {{440, 0}, {15, 294}} + + + _doScroller: + 0.96240601503759393 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{-3, -3}, {455, 294}} + + + 16 + + + + + + {{10, 33}, {454, 294}} + + Change Log + + + + + + + 0 + YES + YES + + + + + + + 268 + {{153, 463}, {320, 17}} + + YES + + 70385217 + 4199424 + DeSmuME + + + + + + + + + 268 + {{153, 438}, {320, 17}} + + YES + + 70385217 + 4199424 + Nintendo DS Emulator + + + + + + + + + 268 + {{153, 413}, {320, 17}} + + YES + + 70385217 + 4199424 + + + Version ? + + + + + + + + 268 + {{153, 388}, {320, 17}} + + YES + + 70385217 + 4199424 + + + Date + + + + + + + + 268 + {{153, 363}, {320, 17}} + + YES + + 70385217 + 4199424 + http://www.desmume.org + + + + + + + + {500, 500} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 271 + 2 + {{830, 370}, {256, 408}} + 1148715008 + DeSmuME + NSWindow + + + D5552DCE-722B-4ECB-8E0A-8B7CF76EAC70 + + + YES + YES + YES + YES + 1 + 2 + + + + 0135754F-463F-4625-9D27-DEF701AEF50E + + Open ROM + Open ROM + + + + NSImage + Icon_OpenROM_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 2E728430-6055-404B-944F-25594ACBEC39 + + Execute + Execute/Pause + + + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 321036F9-6034-47B1-9CC5-2461D98700F0 + + Reset + Reset + + + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 41A299FB-4A95-4FA3-9982-8523FF04ACDE + + Rotate Right + Rotate Right + + + + NSImage + Icon_RotateCW_420x420 + + + + {0, 0} + {0, 0} + YES + YES + 90 + YES + 0 + + + + C626F2C1-4353-4288-AD59-40FB7F4C1A58 + + Rotate Left + Rotate Left + + + + NSImage + Icon_RotateCCW_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -90 + YES + 0 + + + + EDBFD998-E031-4AC5-A86A-7114D66FF847 + + Speed 2x + Speed 1x/2x + + + + + + {0, 0} + {0, 0} + YES + YES + 200 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + + + + + + + + + + + + + + + + + + + + + {1.79769e+308, 1.79769e+308} + {256, 408} + + + 256 + + + + 5165 + + {{0, 24}, {256, 384}} + + YES + + + AAAABQAAAAgAAAAPAAAACwAAAAEAAAAMAAAAGAAAAAA + + + + + + 5156 + + {{2, 3}, {16, 16}} + + 28938 + 100 + + + + 289 + {{180, 3}, {56, 15}} + + YES + + -2079981824 + 131072 + + + 100 + 0.0 + 100 + 0.0 + 0 + 1 + NO + NO + + + + + 289 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{160, 1}, {20, 20}} + + YES + + 130560 + 33554432 + + NSImage + Icon_VolumeFull_16x16 + + 0 + 2 + 0 + YES + + YES + + + + 294 + {{17, 5}, {137, 14}} + + YES + + 68288064 + 272634880 + + + LucidaGrande + 11 + 16 + + Status Text + + + + + + + {256, 408} + + {{0, 0}, {1920, 1178}} + {256, 476} + {1.79769e+308, 1.79769e+308} + + + EmuWindowDelegate + + + 7 + 2 + {{75, 804}, {400, 100}} + 1685588992 + DeSmuME Preferences + NSWindow + + + 7F8262D5-9D3C-423C-B7C5-79385DDE5A70 + + + YES + YES + NO + NO + 1 + 1 + + + + 8DD2F943-8717-4EC3-A3C5-30068405F029 + + Input + Input + + + + NSImage + Icon_Input_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + A9C4AA28-77F8-4AD3-96D8-A67306997B4C + + General + General + + + + NSImage + NSPreferencesGeneral + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + AC584A31-E187-4BC3-9981-D18A2C8553F7 + + Emulation + Emulation + + + + NSImage + Icon_Emulation_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + C9B4F2D8-9F6E-4ED5-84C7-E13EB3484A3A + + Sound + Sound + + + + NSImage + Icon_Speaker_420x420 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + E30B98EC-D044-488C-A4E0-5BCE53366462 + + Display + Display + + + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + + + + + + + + + + + + + + + + + + + + {1.79769e+308, 1.79769e+308} + + + 256 + {400, 100} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + + 268 + + + + 12 + + + + 274 + + + + 268 + {{175, 50}, {199, 21}} + + 2 + YES + + 613547584 + 272634880 + + + File Name + + + + + + + + 268 + {{376, 43}, {96, 32}} + + YES + + 67239424 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{15, 53}, {155, 17}} + + YES + + 68288064 + 272630784 + ADVANsCEne Database: + + + + + + + + + 268 + {{15, 14}, {454, 28}} + + YES + + 69336577 + 138543104 + WW91IGNhbiBkb3dubG9hZCB0aGUgbGF0ZXN0IEFEVkFOc0NFbmUgRGF0YWJhc2UgZnJvbToKaHR0cDov +L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA + + + + + + + + {{1, 1}, {484, 81}} + + + + {{17, 16}, {486, 97}} + + {0, 0} + + 67239424 + 0 + ADVANsCEne Database + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{148, 50}, {226, 21}} + + 2 + YES + + 613547584 + 272634880 + + + File Name + + + + + + + + 268 + {{376, 43}, {96, 32}} + + YES + + 67239424 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{15, 53}, {128, 17}} + + YES + + 68288064 + 272630784 + R4 Cheat Database: + + + + + + + + + 268 + {{15, 14}, {454, 28}} + + YES + + 69336577 + 138543104 + WW91IGNhbiBkb3dubG9hZCB0aGUgbGF0ZXN0IFI0IENoZWF0IERhdGFiYXNlIGZyb206Cmh0dHA6Ly9j +aGVhdHMuZ2JhdGVtcC5uZXQvA + + + + + + + + {{1, 1}, {484, 81}} + + + + {{17, 117}, {486, 97}} + + {0, 0} + + 67239424 + 0 + Cheat Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{92, 12}, {314, 18}} + + YES + + 67239424 + 0 + Do not show File Migration window on startup + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{141, 33}, {217, 32}} + + YES + + 67239424 + 134217728 + Show File Migration Window + + + -2038284033 + 129 + + + 200 + 25 + + + + {{1, 1}, {484, 75}} + + + + {{17, 218}, {486, 91}} + + {0, 0} + + 67239424 + 0 + User File Migration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 111}, {366, 18}} + + 2 + YES + + -2080244224 + 0 + Automatically Execute Emulation When Loading a ROM + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 71}, {274, 18}} + + 2 + YES + + 67239424 + 0 + Automatically Load a ROM Upon Launch + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{34, 41}, {227, 26}} + + 2 + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + Load Last Loaded ROM + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Load Selected ROM + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{114, 14}, {260, 21}} + + 2 + YES + + 613547584 + 272634880 + + + ROM Name + + + + + + + + 268 + {{376, 7}, {96, 32}} + + YES + + 67239424 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{15, 17}, {94, 17}} + + YES + + 68288064 + 272630784 + Selected ROM: + + + + + + + + {{1, 1}, {484, 137}} + + 2 + + + {{17, 313}, {486, 153}} + + 2 + {0, 0} + + 67239424 + 0 + ROM Behavior + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {520, 486} + 2 + NSView + + + + 268 + + + + 12 + {{13, 10}, {614, 409}} + + + + 1 + + + 256 + + + + 268 + {{125, 340}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 315}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 290}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 265}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 240}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 215}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 190}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 165}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 140}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 115}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 90}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 65}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 340}, {100, 19}} + + 1000 + YES + + 67239424 + 134217728 + Up + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 315}, {100, 19}} + + 1001 + YES + + 67239424 + 134217728 + Down + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 290}, {100, 19}} + + 1002 + YES + + 67239424 + 134217728 + Left + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 265}, {100, 19}} + + 1003 + YES + + 67239424 + 134217728 + Right + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 240}, {100, 19}} + + 1004 + YES + + 67239424 + 134217728 + A + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 215}, {100, 19}} + + 1005 + YES + + 67239424 + 134217728 + B + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 190}, {100, 19}} + + 1006 + YES + + 67239424 + 134217728 + X + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 165}, {100, 19}} + + 1007 + YES + + 67239424 + 134217728 + Y + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 140}, {100, 19}} + + 1008 + YES + + 67239424 + 134217728 + L + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 115}, {100, 19}} + + 1009 + YES + + 67239424 + 134217728 + R + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 90}, {100, 19}} + + 1010 + YES + + 67239424 + 134217728 + Start + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 65}, {100, 19}} + + 1011 + YES + + 67239424 + 134217728 + Select + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{17, 40}, {100, 19}} + + 3000 + YES + + 67239424 + 134217728 + Lid + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 268 + {{125, 40}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{125, 15}, {452, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 15}, {100, 19}} + + 3001 + YES + + 67239424 + 134217728 + Debug + + + -1229176577 + 100 + + + + 400 + 75 + + + + {{10, 33}, {594, 363}} + + Controller + + + + + 3 + + + 256 + + + + 268 + {{153, 341}, {424, 21}} + + YES + + 75628096 + 272635904 + + + Set Input + + YES + + + + + + + 268 + {{17, 341}, {128, 19}} + + 2000 + YES + + 67239424 + 134217728 + Activate Mic + + + -1229176577 + 100 + + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{18, 69}, {528, 18}} + + YES + + 537001472 + 0 + + 50 + 38 + 47 + 2 + + + + + 268 + {{16, 39}, {532, 25}} + + YES + + -1543373312 + 0 + + + 100 + 0.0 + 50 + 0.0 + 5 + 0 + NO + NO + + + + + 268 + {{247, 14}, {70, 17}} + + YES + + 605158976 + 272630784 + Input Gain + + + + + + + + + 268 + {{15, 109}, {54, 17}} + + YES + + 605158976 + 272630784 + Device: + + + + + + + + + 268 + {{71, 103}, {478, 26}} + + YES + + -1539178944 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + + 1 + YES + YES + 2 + + + + {{1, 1}, {564, 137}} + + + + {{14, 55}, {566, 153}} + + {0, 0} + + 67239424 + 0 + Sound Input Device Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {290, 78}} + + YES + 4 + 1 + + + 604110336 + 0 + Sound Input Device (NOT IMPLEMENTED) + + + 4 + 1211912703 + 0 + + + + 200 + 25 + + + -2080244224 + 0 + Internal Noise Samples + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + 67239424 + 0 + White Noise + + + 3 + 1211912703 + 0 + + 400 + 75 + + + 604110336 + 0 + Sound File: + + + 2 + 1211912703 + 0 + + 400 + 75 + + + {290, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{130, 12}, {324, 21}} + + YES + + 612499008 + 272635904 + + + NOT IMPLEMENTED + + YES + + + + + + + 268 + {{456, 5}, {96, 32}} + + YES + + 604110336 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + {{1, 1}, {564, 102}} + + + + {{14, 212}, {566, 118}} + + {0, 0} + + 67239424 + 0 + Sound Input Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {594, 363}} + + + Microphone + + + + + + + 0 + YES + YES + + + + + + {640, 433} + InputPrefsView + + + + 268 + + + + 12 + {{13, 10}, {463, 381}} + + + + 1 + + + 256 + + + + 12 + + + + 274 + + + + 268 + {{72, 44}, {84, 17}} + + YES + + 68288064 + 272630784 + Display Size: + + + + + + + + + 268 + {{44, 16}, {112, 17}} + + YES + + 68288064 + 272630784 + Display Rotation: + + + + + + + + + 268 + {{158, 38}, {126, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + 1x + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 100 + + + YES + + OtherViews + + + + + 2x + + 1048576 + 2147483647 + + + _popUpItemAction: + 200 + + + + + 3x + + 1048576 + 2147483647 + + + _popUpItemAction: + 300 + + + + + 4x + + 2147483647 + + + _popUpItemAction: + 400 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{289, 14}, {96, 22}} + + YES + + -1804468671 + 272630784 + + + + + + + + + + + -∞ + + + #0.##º + +∞ + + + #0.##º + #0.##º + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + + YES + + + + + + + 268 + {{63, 72}, {93, 17}} + + YES + + 68288064 + 272630784 + Display Mode: + + + + + + + + + 268 + {{158, 66}, {126, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + Combo + + 2147483647 + 1 + + + _popUpItemAction: + 2 + + + YES + + OtherViews + + + + Main + + 2147483647 + + + _popUpItemAction: + + + + + Touch + + 2147483647 + + + _popUpItemAction: + 1 + + + + + YES + + + 2 + 1 + YES + YES + 2 + + + + + 268 + {{158, 11}, {126, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + 0º + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + 90º + + 1048576 + 2147483647 + + + _popUpItemAction: + 90 + + + + + 180º + + 1048576 + 2147483647 + + + _popUpItemAction: + 180 + + + + + 270º + + 2147483647 + + + _popUpItemAction: + 270 + + + + + YES + YES + + + 2147483647 + 1 + + + _popUpItemAction: + + + + + Custom + + 2147483647 + + + _popUpItemAction: + -1 + + + + + + 1 + YES + YES + 2 + + + + {{1, 1}, {429, 100}} + + + + {{6, 118}, {431, 116}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {443, 335}} + + + Display Views + + + + + 2 + + + 256 + + + + 268 + {{118, 274}, {151, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + None + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + LQ2x + + 2147483647 + + + _popUpItemAction: + 1 + + + + + LQ2xS + + 2147483647 + + + _popUpItemAction: + 2 + + + + + HQ2x + + 2147483647 + + + _popUpItemAction: + 3 + + + + + HQ2xS + + 2147483647 + + + _popUpItemAction: + 4 + + + + + HQ4x + + 2147483647 + + + _popUpItemAction: + 5 + + + + + 2xSaI + + 2147483647 + + + _popUpItemAction: + 6 + + + + + Super 2xSaI + + 2147483647 + + + _popUpItemAction: + 7 + + + + + Super Eagle + + 2147483647 + + + _popUpItemAction: + 8 + + + + + Scanline + + 2147483647 + + + _popUpItemAction: + 9 + + + + + Bilinear + + 2147483647 + + + _popUpItemAction: + 10 + + + + + Nearest 2x + + 2147483647 + + + _popUpItemAction: + 11 + + + + + Nearest 1.5x + + 2147483647 + + + _popUpItemAction: + 12 + + + + + Nearest+ 1.5x + + 2147483647 + + + _popUpItemAction: + 13 + + + + + EPX + + 2147483647 + + + _popUpItemAction: + 14 + + + + + EPX+ + + 2147483647 + + + _popUpItemAction: + 15 + + + + + EPX 1.5x + + 2147483647 + + + _popUpItemAction: + 16 + + + + + EPX+ 1.5x + + 2147483647 + + + _popUpItemAction: + 17 + + + + YES + + + 1 + YES + YES + 2 + + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{118, 5}, {262, 262}} + + YES + + 604110336 + 33554432 + + 0 + 3 + 2 + NO + + YES + + + + 268 + {{10, 247}, {106, 17}} + + YES + + 68288064 + 71304192 + Preview: + + + + + + + + + 268 + {{10, 280}, {106, 17}} + + YES + + 68288064 + 71304192 + Video Filter: + + + + + + + + + 268 + {{119, 308}, {196, 18}} + + YES + + -2080244224 + 0 + Use Bilinear Filtered Output + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{10, 33}, {443, 335}} + + Video Output + + + + + 4 + + + 256 + + + + 12 + + + + 274 + + + + 268 + {{16, 99}, {239, 18}} + + YES + + -2080244224 + 0 + High-Precision Color Interpolation + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 79}, {154, 18}} + + YES + + -2080244224 + 0 + Enable Edge Marking + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 59}, {91, 18}} + + YES + + -2080244224 + 0 + Enable Fog + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 39}, {124, 18}} + + YES + + -2080244224 + 0 + Enable Textures + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{215, 14}, {60, 22}} + + YES + + -1804468671 + 272630784 + + + + + + 0 + + + . + ¤ + . + E + + + , + ¤¤ + + + + + + - + # + -∞ + - + + + NaN + + * + ‰ + % + + + # + +∞ + + + + + + + # + # + + + + + + + + NaN + + + + 0 + 0 + YES + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + + + + 268 + {{15, 16}, {195, 17}} + + YES + + 68288064 + 272630784 + Depth Comparison Threshold: + + + + + + + + {{1, 1}, {293, 125}} + + + + {{74, 69}, {295, 141}} + + {0, 0} + + 67239424 + 0 + SoftRasterizer Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{217, 285}, {152, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + SoftRasterizer + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + + + None + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + + 1 + 1 + YES + YES + 2 + + + + + 268 + {{74, 291}, {141, 17}} + + YES + + 68288064 + 272630784 + 3D Rendering Engine: + + + + + + + + + 268 + {{250, 22}, {165, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + Automatic + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Single-Threaded + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + 2 Threads + + 1048576 + 2147483647 + + + _popUpItemAction: + 2 + + + + + 4 Threads + + 2147483647 + + + _popUpItemAction: + 4 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{28, 28}, {220, 17}} + + YES + + 68288064 + 272630784 + SoftRasterizer Rendering Threads: + + + + + + + + + 12 + + + + 274 + + + + 268 + {{16, 12}, {129, 18}} + + YES + + -2080244224 + 0 + Enable Line Hack + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {293, 38}} + + + + {{74, 214}, {295, 54}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {{10, 33}, {443, 335}} + + 3D Rendering + + + + + + + 0 + YES + YES + + + + + + {489, 405} + NSView + + + + 268 + + + + 268 + {{163, 329}, {220, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + OS X Core Audio + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 58325 + + + YES + + OtherViews + + + + None + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + + 1 + 1 + YES + YES + 2 + + + + + 268 + {{17, 335}, {144, 17}} + + YES + + 68288064 + 272630784 + Audio Output Engine: + + + + + + + + + 12 + + + + 274 + + + + 268 + {{16, 12}, {148, 18}} + + YES + + -2080244224 + 0 + Advanced SPU Logic + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {364, 38}} + + + + {{17, 209}, {366, 54}} + + {0, 0} + + 67239424 + 0 + SPU Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 15}, {180, 46}} + + YES + 2 + 1 + + + 67239424 + 0 + Dual SPU Synch/Asynch + + + 1211912703 + 0 + + + + 200 + 25 + + + -2080244224 + 0 + Synchronous + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + {180, 18} + {4, 10} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{145, 10}, {204, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + "P" Method + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 2 + + + YES + + OtherViews + + + + "N" Method + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + "Z" Method + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + + + 2 + 1 + YES + YES + 2 + + + + {{1, 1}, {364, 71}} + + + + {{17, 16}, {366, 87}} + + {0, 0} + + 67239424 + 0 + SPU Sound Synchronization Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {328, 58}} + + YES + 3 + 1 + + + 67239424 + 0 + None + + + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 0 + Linear + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + -2080244224 + 0 + Cosine + + + 2 + 1211912703 + 0 + + 400 + 75 + + + {328, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 2 + + + + + + + {{1, 1}, {364, 82}} + + + + {{17, 107}, {366, 98}} + + {0, 0} + + 67239424 + 0 + SPU Interpolation Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{44, 13}, {236, 21}} + + YES + + 67501824 + 0 + + + 100 + 0.0 + 100 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + {{283, 17}, {66, 17}} + + YES + + 68288064 + 272634880 + + + + + + + + + + + + -∞ + + + +∞ + + + #0.0% + #0.0% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + Volume + + + + + + + + 289 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{18, 14}, {20, 20}} + + YES + + 130560 + 33554432 + + 0 + 2 + 0 + YES + + YES + + + {{1, 1}, {364, 44}} + + + + {{17, 267}, {366, 60}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {400, 373} + NSView + + + + 268 + + + + 12 + + + + 274 + + + + 268 + {{16, 12}, {462, 18}} + + YES + + -2080244224 + 0 + Use ADVANsCEne Database when auto-detecting the ROM save type + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {494, 38}} + + + + {{17, 15}, {496, 54}} + + {0, 0} + + 67239424 + 0 + ROM Battery Save Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 32}, {145, 18}} + + YES + + 67239424 + 0 + Use Debug Console + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 12}, {118, 18}} + + YES + + 67239424 + 0 + Emulate Ensata + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {494, 58}} + + + + {{17, 73}, {496, 74}} + + {0, 0} + + 67239424 + 0 + Debugger Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 61}, {205, 18}} + + YES + + 604110336 + 0 + Use External Firmware Image + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{140, 33}, {240, 22}} + + YES + + -2070806976 + 272634880 + + + Set Firmware Image... + + YES + + + + + + + 268 + {{15, 37}, {120, 17}} + + YES + + 68288064 + 272630784 + Firmware Image: + + + + + + + + + 268 + {{382, 27}, {100, 32}} + + YES + + 67239424 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{16, 12}, {149, 18}} + + YES + + 604110336 + 0 + Boot From Firmware + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{12, 81}, {229, 32}} + + YES + + 67239424 + 134217728 + Configure Internal Firmware... + + + -2038284033 + 129 + + + 200 + 25 + + + + {{1, 1}, {494, 119}} + + + + {{17, 151}, {496, 135}} + + {0, 0} + + 67239424 + 0 + Firmware Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 117}, {182, 18}} + + YES + + 67239424 + 0 + Use External BIOS Images + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{140, 86}, {240, 22}} + + YES + + -2070806976 + 272634880 + + + Set BIOS Image... + + YES + + + + + + + 268 + {{15, 89}, {120, 17}} + + YES + + 68288064 + 272630784 + ARM9 BIOS Image: + + + + + + + + + 268 + {{382, 80}, {100, 32}} + + YES + + 67239424 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{140, 59}, {240, 22}} + + YES + + -2070806976 + 272634880 + + + Set BIOS Image... + + YES + + + + + + + 268 + {{15, 62}, {120, 17}} + + YES + + 68288064 + 272630784 + ARM7 BIOS Image: + + + + + + + + + 268 + {{382, 53}, {100, 32}} + + YES + + 67239424 + 134217728 + Choose... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{16, 32}, {230, 18}} + + YES + + -1543373312 + 0 + Emulate BIOS Software Interrupts + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 12}, {236, 18}} + + YES + + 604110336 + 0 + Patch DelayLoop SWI (speed hack) + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {494, 143}} + + + + {{17, 290}, {496, 159}} + + {0, 0} + + 67239424 + 0 + BIOS Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 12}, {197, 18}} + + YES + + -2080244224 + 0 + Advanced Bus-Level Timing + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {494, 38}} + + + + {{17, 453}, {496, 54}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {530, 527} + NSView + + + PreferencesWindowDelegate + + + 1 + 2 + {{235, 220}, {305, 339}} + 1685585920 + Internal Firmware Preferences + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{119, 300}, {166, 22}} + + YES + + -1804468671 + 272630784 + + + Enter a nickname... + + YES + + + + + + + 268 + {{119, 246}, {166, 44}} + + YES + + -1805517311 + 272629760 + + + Enter a message... + + YES + + + + + + + 268 + {{17, 302}, {71, 17}} + + YES + + 68288064 + 272630784 + Nickname: + + + + + + + + + 268 + {{17, 270}, {63, 17}} + + YES + + 68288064 + 272630784 + Message: + + + + + + + + + 268 + {{17, 220}, {97, 17}} + + YES + + 68288064 + 272630784 + Favorite Color: + + + + + + + + + 268 + {{17, 178}, {60, 17}} + + YES + + 68288064 + 272630784 + Birthday: + + + + + + + + + 268 + {{17, 150}, {69, 17}} + + YES + + 68288064 + 272630784 + Language: + + + + + + + + + 268 + {{119, 176}, {169, 27}} + + YES + + 71433728 + 0 + + 330548400 + + + + 0.0 + 224 + + + + + + + 268 + {{116, 144}, {172, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + English + + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + + + Japanese + + 2147483647 + + + _popUpItemAction: + + + + + + French + + 2147483647 + + + _popUpItemAction: + 2 + + + + + German + + 2147483647 + + + _popUpItemAction: + 3 + + + + + Italian + + 2147483647 + + + _popUpItemAction: + 4 + + + + + Spanish + + 2147483647 + + + _popUpItemAction: + 5 + + + + + + 1 + 1 + YES + YES + 2 + + + + + 268 + {{116, 214}, {172, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + Gray + + 2147483647 + 1 + + NSImage + ColorSwatch_Gray_16x16 + + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Brown + + 2147483647 + + NSImage + ColorSwatch_Brown_16x16 + + + + _popUpItemAction: + 1 + + + + + Red + + 2147483647 + + NSImage + ColorSwatch_Red_16x16 + + + + _popUpItemAction: + 2 + + + + + Pink + + 2147483647 + + NSImage + ColorSwatch_Pink_16x16 + + + + _popUpItemAction: + 3 + + + + + Orange + + 2147483647 + + NSImage + ColorSwatch_Orange_16x16 + + + + _popUpItemAction: + 4 + + + + + Yellow + + 2147483647 + + NSImage + ColorSwatch_Yellow_16x16 + + + + _popUpItemAction: + 5 + + + + + Lime Green + + 2147483647 + + NSImage + ColorSwatch_LimeGreen_16x16 + + + + _popUpItemAction: + 6 + + + + + Green + + 2147483647 + + NSImage + ColorSwatch_Green_16x16 + + + + _popUpItemAction: + 7 + + + + + Dark Green + + 2147483647 + + NSImage + ColorSwatch_DarkGreen_16x16 + + + + _popUpItemAction: + 8 + + + + + Sea Green + + 2147483647 + + NSImage + ColorSwatch_SeaGreen_16x16 + + + + _popUpItemAction: + 9 + + + + + Turquoise + + 2147483647 + + NSImage + ColorSwatch_Turquoise_16x16 + + + + _popUpItemAction: + 10 + + + + + Blue + + 2147483647 + + NSImage + ColorSwatch_Blue_16x16 + + + + _popUpItemAction: + 11 + + + + + Dark Blue + + 2147483647 + + NSImage + ColorSwatch_DarkBlue_16x16 + + + + _popUpItemAction: + 12 + + + + + Dark Purple + + 2147483647 + + NSImage + ColorSwatch_DarkPurple_16x16 + + + + _popUpItemAction: + 13 + + + + + Violet + + 2147483647 + + NSImage + ColorSwatch_Violet_16x16 + + + + _popUpItemAction: + 14 + + + + + Magenta + + 2147483647 + + NSImage + ColorSwatch_Magenta_16x16 + + + + _popUpItemAction: + 15 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{17, 55}, {271, 85}} + + YES + + 67239424 + 272629760 + Note: These settings will be overridden if you are using an external firmware image. If you want to use this configuration, ensure that the Use External Firmware Image setting is disabled. + + + + + + + + + 268 + {{104, 12}, {96, 32}} + + YES + + 67239424 + 134217728 + OK + + + -2038284033 + 129 + + DQ + 200 + 25 + + + + {305, 339} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 9 + 2 + {{702, 448}, {720, 364}} + 1685586944 + User File Migration + NSWindow + + {1.79769e+308, 1.79769e+308} + {600, 250} + + + 256 + + + + 268 + {{17, 310}, {686, 34}} + + YES + + 67239424 + 272629760 + You have files that were created from a previous version of DeSmuME. Would you like to migrate them to work with this version? + + LucidaGrande-Bold + 13 + 16 + + + + + + + + + 292 + {{382, 12}, {162, 32}} + + 2 + YES + + 67239424 + 134217728 + Migrate By Moving + + + -2038284033 + 129 + + + 200 + 25 + + + + + 292 + {{220, 12}, {162, 32}} + + YES + + 67239424 + 134217728 + Don't Migrate + + + -2038284033 + 129 + + Gw + 200 + 25 + + + + + 268 + {{17, 274}, {686, 28}} + + YES + + 67239424 + 272633856 + Files from previous versions may not be fully compatible with the current version, especially Save State files. File migration cannot guarantee that all your old files will continue to work. + + + + + + + + + 292 + {{18, 21}, {160, 18}} + + YES + + 67239424 + 0 + Do not ask on startup + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 292 + {{544, 12}, {162, 32}} + + 1 + YES + + 67239424 + 134217728 + Migrate By Copying + + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 274 + + + + 2304 + + + + 256 + {699, 195} + + YES + + + 256 + {699, 17} + + + + + + -2147483392 + {{544, 0}, {16, 17}} + + + + + 25 + 25 + 3.402823466385289e+38 + + 75628096 + 2048 + + + + + + + 67763712 + 134217728 + + + + 1215582719 + 2 + + + + + 200 + 25 + + YES + + + + 89 + 40 + 1000 + + 75628096 + 2048 + Version + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + + + + 141 + 40 + 1000 + + 75628096 + 2048 + Kind + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + + + + 259 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Name + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + + + + 170 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Date Modified + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + + + + 3 + 2 + + + 17 + 1388314624 + + + 1 + 4 + 15 + 0 + NO + 0 + + + {{1, 17}, {699, 195}} + + + + + 4 + + + + -2147483392 + {{544, 17}, {15, 180}} + + + _doScroller: + 0.92307692307692313 + + + + -2147483392 + {{1, 197}, {598, 15}} + + 1 + + _doScroller: + 0.98918083462132922 + + + + 2304 + + + + {{1, 0}, {699, 17}} + + + + + 4 + + + + {{-1, 53}, {701, 213}} + + + 562 + + + + + + QSAAAEEgAABBmAAAQZgAAA + + + {720, 364} + + {{0, 0}, {1920, 1178}} + {600, 272} + {1.79769e+308, 1.79769e+308} + + + 1 + 2 + {{157, 261}, {380, 200}} + 1685586944 + ROM Save File Migration + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{17, 112}, {346, 68}} + + YES + + 67239424 + 272629760 + The ROM save file was not created for this ROM yet, but a save file was found in the same directory as this ROM. Would you like to migrate it to work with DeSmuME? + + + + + + + + + 268 + {{270, 12}, {96, 32}} + + 1 + YES + + 67239424 + 134217728 + Migrate + + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 268 + {{144, 12}, {126, 32}} + + YES + + 67239424 + 134217728 + Don't Migrate + + + -2038284033 + 129 + + Gw + 200 + 25 + + + + + 268 + {{17, 48}, {346, 56}} + + YES + + 67239424 + 272633856 + Migrating the ROM save file will move it to DeSmuME's Applicaton Support folder. If you do not migrate the save file now, a new file will be created instead. This will be like starting the ROM for the first time. + + + + + + + + {380, 200} + + {{0, 0}, {1440, 878}} + {1.79769e+308, 1.79769e+308} + + + 1 + 2 + {{157, 298}, {335, 163}} + 1685586944 + Save State + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{17, 109}, {301, 34}} + + YES + + 67239424 + 272629760 + Would you like to save the emulation state before closing? + + + + + + + + + 268 + {{220, 12}, {96, 32}} + + 1 + YES + + 67239424 + 134217728 + Save + + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 268 + {{114, 12}, {106, 32}} + + 2 + YES + + 67239424 + 134217728 + Don't Save + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{17, 59}, {301, 42}} + + YES + + 67239424 + 272633856 + If you haven't already saved using the ROM's battery save, then not saving the emulation state now will cause any unsaved changes to be lost. + + + + + + + + + 268 + {{18, 12}, {96, 32}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + Gw + 200 + 25 + + + + {335, 163} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 7 + 2 + {{235, 88}, {640, 480}} + 1685586944 + Cheat Manager + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + + + + 2304 + + + + 256 + {270, 321} + + YES + + + 256 + {270, 17} + + + + + + -2147483392 + {{256, 0}, {16, 17}} + + + + + 20 + 20 + 20 + + 75628096 + 2048 + + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67239424 + 0 + + + + 1215582719 + 2 + + + + + 200 + 25 + + YES + + + + 36 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Type + + + + + + 67239424 + 33554432 + + 0 + 0 + 0 + NO + + + + cheatType + YES + compare: + + + + 205 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Description + + + + + + 337772032 + 4325632 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 42 + 1388314624 + + + 1 + 4 + 15 + 0 + NO + 0 + + + {{1, 17}, {270, 321}} + + + + + 4 + + + + -2147483392 + {{256, 17}, {15, 306}} + + + _doScroller: + 0.99689440993788825 + + + + -2147483392 + {{1, 323}, {270, 15}} + + 1 + + _doScroller: + 0.99630996309963105 + + + + 2304 + + + + {{1, 0}, {270, 17}} + + + + + 4 + + + + {{20, 49}, {272, 339}} + + + 562 + + + + + + QSAAAEEgAABCMAAAQjAAAA + + + + 268 + {{113, 12}, {185, 32}} + + YES + + 67239424 + 134217728 + View Cheat Database... + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{47, 19}, {28, 23}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 162 + + + + 400 + 75 + + + + + 268 + {{20, 19}, {28, 23}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 162 + + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{100, 372}, {209, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + Internal Cheat + + 1048576 + 2147483647 + 1 + + NSImage + Icon_DeSmuME_32x32 + + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Action Replay + + 1048576 + 2147483647 + + NSImage + Icon_ActionReplay_32x32 + + + + _popUpItemAction: + 1 + + + + + + 1 + YES + YES + 2 + + + + + 301 + {{2, 33}, {320, 290}} + + NSView + + + + 268 + {{16, 402}, {129, 18}} + + YES + + 67239424 + 0 + Enable this cheat + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{15, 378}, {83, 17}} + + YES + + 68288064 + 272630784 + Type: + + LucidaGrande + 13 + 16 + + + + + + + + + 12 + {{14, 320}, {292, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + 268 + {{103, 331}, {203, 39}} + + YES + + -1805517311 + 272629760 + + + + YES + + + + + + + 268 + {{15, 353}, {83, 17}} + + YES + + 68288064 + 272630784 + Description: + + + + + + + + + 268 + {{114, 6}, {96, 32}} + + YES + + 67239424 + 134217728 + Apply + + + -2038284033 + 129 + + + 200 + 25 + + + + {{1, 1}, {324, 428}} + + + + {{297, 16}, {326, 444}} + + {0, 0} + + 67239424 + 0 + Cheat Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{89, 446}, {70, 14}} + + YES + + 68288064 + 4326400 + ROM Name: + + LucidaGrande-Bold + 11 + 16 + + + + + + + + + 268 + {{89, 421}, {69, 14}} + + YES + + 68288064 + 4326400 + ROM Serial: + + + + + + + + + 268 + {{160, 421}, {135, 14}} + + YES + + 70385217 + 272761856 + + + ? + + + + + + + + 268 + {{161, 446}, {134, 14}} + + YES + + 70385217 + 272761856 + + + ? + + + + + + + + 268 + {{90, 394}, {190, 18}} + + YES + + -2080244224 + 0 + Enable Cheats + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{20, 396}, {64, 64}} + + YES + + 130560 + 33554432 + + 0 + 3 + 0 + NO + + YES + + + {640, 480} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + CheatWindowDelegate + + + + 256 + + + + 292 + {{17, 4}, {294, 14}} + + YES + + 68288064 + 138548224 + This list only shows the first 100 search results. + + + + + + + + + 1292 + + {{214, 220}, {16, 16}} + + 28938 + 100 + + + + 268 + {{133, 369}, {136, 22}} + + YES + + -1539178944 + 133120 + + + 109199615 + 129 + + + 400 + 75 + + + Unsigned + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + YES + Signed (NOT IMPLEMENTED) + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{59, 374}, {60, 14}} + + YES + + 68288064 + 272761856 + Sign Type: + + + + + + + + + 268 + {{59, 398}, {72, 14}} + + YES + + 68288064 + 272761856 + Search Style: + + + + + + + + + 268 + {{133, 393}, {136, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + 400 + 75 + + + Exact Value + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Comparative + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{0, 237}, {328, 134}} + + NSView + + + + 268 + {{233, 213}, {80, 28}} + + YES + + 67239424 + 134348800 + Reset + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{59, 222}, {150, 14}} + + YES + + 68288064 + 272761856 + + + Search not started. + + + + + + + + 268 + {{17, 222}, {45, 14}} + + YES + + 68288064 + 272761856 + Found: + + + + + + + + + 284 + + + + 2304 + + + + 256 + {286, 176} + + YES + + + 256 + {286, 17} + + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + + 102 + 40 + 1000 + + 75628096 + 2048 + Address + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 69336641 + 137216 + Text Cell + + Monaco + 11 + 16 + + + + + + 3 + YES + + + + 178 + 40 + 1000 + + 75628096 + 2048 + Value + + + + + + 69336641 + 137216 + Text Cell + + + + + + 3 + YES + + + + 3 + 2 + + + 14 + 1916796928 + + + 3 + 4 + 15 + 0 + NO + 0 + + + {{1, 17}, {286, 176}} + + + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + _doScroller: + 0.94863013698630139 + + + + -2147483392 + {{1, 294}, {338, 15}} + + 1 + + _doScroller: + 0.93888888888888888 + + + + 2304 + + + + {{1, 0}, {286, 17}} + + + + + 4 + + + + {{20, 20}, {288, 194}} + + + 562 + + + + + + QSAAAEEgAABBgAAAQYAAAA + + + {328, 434} + NSView + + + + {328, 397} + {0, 397} + {328, 397} + 2 + 0.0 + 0.0 + + + + + 15 + 2 + {{235, 143}, {500, 416}} + 1685585920 + Cheat Database + NSWindow + + {1.79769e+308, 1.79769e+308} + {500, 272} + + + 256 + + + + 274 + + + + 2304 + + + + 256 + {500, 287} + + YES + + + 256 + {500, 17} + + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + + 25 + 25 + 25 + + 75628096 + 2048 + + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67239424 + 134217728 + + + + 1215582719 + 2 + + + + + 200 + 25 + + YES + + + + 464 + 40 + 1000 + + 75628096 + 2048 + Description + + + + + + 69336577 + 135168 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 39 + 1388314624 + + + 1 + 4 + 15 + 0 + NO + 0 + + + {{1, 17}, {500, 287}} + + + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + _doScroller: + 0.94773519163763065 + + + + -2147483392 + {{1, 249}, {568, 15}} + + 1 + + _doScroller: + 0.99206349206349209 + + + + 2304 + + + + {{1, 0}, {500, 17}} + + + + + 4 + + + + {{-1, 57}, {502, 305}} + + + 562 + + + + + + QSAAAEEgAABCJAAAQiQAAA + + + + 268 + {{17, 370}, {120, 14}} + + YES + + 68288064 + 272761856 + R4 Cheats Database: + + + + + + + + + 268 + {{17, 392}, {63, 14}} + + YES + + 68288064 + 272761856 + ROM Title: + + + + + + + + + 292 + {{14, 12}, {114, 32}} + + YES + + 67239424 + 134217728 + Select All + + + -2038284033 + 129 + + + 200 + 25 + + + + + 292 + {{128, 12}, {114, 32}} + + YES + + 67239424 + 134217728 + Select None + + + -2038284033 + 129 + + + 200 + 25 + + + + + 289 + {{390, 12}, {96, 32}} + + 1 + YES + + 67239424 + 134217728 + Add + + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 289 + {{294, 12}, {96, 32}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + Gw + 200 + 25 + + + + + 265 + {{378, 370}, {42, 14}} + + YES + + 68288064 + 272761856 + Found: + + + + + + + + + 268 + {{139, 370}, {237, 14}} + + YES + + 68288064 + 272761856 + + + Database file + + + + + + + + 268 + {{422, 370}, {61, 14}} + + YES + + 68288064 + 272761856 + + + Count + + + + + + + + 268 + {{82, 392}, {401, 14}} + + YES + + 68288064 + 272761856 + + + ROM title + + + + + + + {500, 416} + + {{0, 0}, {1920, 1178}} + {500, 294} + {1.79769e+308, 1.79769e+308} + + + + 268 + + + + 268 + {{233, 54}, {80, 28}} + + YES + + 67239424 + 134348800 + Search + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{20, 59}, {210, 19}} + + YES + + 343014976 + 268567552 + + Search value + + YES + 1 + + + + 130560 + 0 + search + + _searchFieldSearch: + + 138690815 + 0 + + 400 + 75 + + + 130560 + 0 + clear + + + cancel + + + + + _searchFieldCancel: + + 138690815 + 0 + + 400 + 75 + + 255 + + + + + 268 + {{17, 86}, {294, 14}} + + YES + + 67239424 + 272760832 + Enter a search value, and then click Search. + + + + + + + + + 268 + {{17, 100}, {294, 14}} + + YES + + 67239424 + 272760832 + Search for an exact value. + + + + + + + + {328, 134} + NSView + + + + 268 + + + + 268 + {{17, 86}, {294, 14}} + + YES + + 67239424 + 272760832 + Click Start Search to begin the comparative search. + + + + + + + + + 268 + {{17, 100}, {294, 14}} + + YES + + 67239424 + 272760832 + Start a comparative search. + + + + + + + + + 268 + {{116, 47}, {96, 28}} + + YES + + 67239424 + 134348800 + Start Search + + + -2038284033 + 129 + + + 200 + 25 + + + + {328, 134} + NSView + + + + 268 + + + + 268 + {{17, 72}, {294, 28}} + + YES + + 67239424 + 272760832 + Click the appropriate button based on how the target value is changing. + + + + + + + + + 268 + {{17, 100}, {294, 14}} + + YES + + 67239424 + 272760832 + How is the value changing? + + + + + + + + + 268 + {{163, 13}, {150, 28}} + + 1 + YES + + 67239424 + 134348800 + Value is now lower + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{163, 40}, {150, 28}} + + YES + + 67239424 + 134348800 + Value is now higher + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{15, 13}, {150, 28}} + + 3 + YES + + 67239424 + 134348800 + Value did change + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{15, 40}, {150, 28}} + + 2 + YES + + 67239424 + 134348800 + Value is unchanged + + + -2038284033 + 129 + + + 200 + 25 + + + + {328, 134} + NSView + + + + 301 + + + + 268 + {{197, 191}, {109, 32}} + + YES + + 67239424 + 134217728 + Write Once + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{17, 20}, {286, 42}} + + YES + + 67239424 + 272760832 + Note: Enabling this cheat freezes the value in memory. If you only want to change a value without actually freezing it in memory, click Write Once. + + + + + + + + + 268 + {{17, 262}, {128, 17}} + + YES + + 68288064 + 272630784 + Search for Address: + + + + + + + + + 265 + {{149, 257}, {27, 27}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 160 + + NSImage + NSActionTemplate + + + + 400 + 75 + + + + + 268 + {{79, 230}, {38, 17}} + + YES + + 68288064 + 272630784 + 0x02 + + Monaco + 13 + 16 + + + + + + + + + 268 + {{67, 198}, {128, 22}} + + YES + + -1804468671 + -1874852864 + + + + + + + + + -∞ + + + +∞ + + + #0 + #0 + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + + + + 268 + {{17, 201}, {45, 17}} + + YES + + 68288064 + 272630784 + Value: + + + + + + + + + 268 + {{122, 228}, {73, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{17, 231}, {60, 17}} + + YES + + 68288064 + 272630784 + Address: + + + + + + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {190, 78}} + + YES + 4 + 1 + + + 67239424 + 0 + 1 Byte [0 - 255] + + + 1 + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 0 + 2 Bytes [0 - 65536] + + + 2 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + 67239424 + 0 + 3 Bytes [0 - 16777215] + + + 3 + 1211912703 + 0 + + 400 + 75 + + + -2080244224 + 0 + 4 Bytes [0 - 4294967295] + + + 4 + 1211912703 + 0 + + 400 + 75 + + + {190, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 3 + + + + + + + {{1, 1}, {226, 102}} + + + + {{46, 72}, {228, 118}} + + {0, 0} + + 67239424 + 0 + Select Memory Size + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {320, 290} + NSView + + + + 301 + + + + 256 + + + + 2304 + + + + 2322 + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + {{0, 125}, {278, 53}} + + + + + + + + + + + + + 134 + + + + 278 + 1 + + + 11523 + 0 + + + + + + + + + + + + + + 4 + + 1 + + + 6 + {463, 1e+07} + {218, 53} + + + NSAllRomanInputSourcesLocaleIdentifier + + + + {{1, 1}, {278, 223}} + + + + + + 4 + + + + -2147483392 + {{231, 1}, {15, 172}} + + + _doScroller: + 0.68253968253968256 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + 1 + + _doScroller: + 0.97142857142857142 + 0.94565218687057495 + + + {{20, 20}, {280, 225}} + + + 530 + + + + + + + 268 + {{17, 253}, {138, 17}} + + YES + + 68288064 + 272630784 + Action Replay Code: + + + + + + + + {320, 290} + NSView + + + + 301 + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{101, 133}, {128, 128}} + + YES + + 130560 + 33554432 + + NSImage + Icon_CodeBreaker_128x128 + + 0 + 3 + 0 + NO + + YES + + + + 268 + {{17, 35}, {286, 72}} + + YES + + 67239424 + 138412032 + Code Breaker cheats have not been implemented in this version of DeSmuME. + + LucidaGrande-Bold + 20 + 16 + + + + + + + + {320, 290} + NSView + + + 279 + 2 + {{230, 145}, {280, 396}} + -461896704 + Emulation Settings + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 12 + + + + 274 + + + + 268 + {{16, 12}, {171, 18}} + + 1 + YES + + -2080244224 + 131072 + Advanced Bus-Level Timing + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {244, 38}} + + + + {{17, 322}, {246, 54}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 52}, {158, 18}} + + 2 + YES + + 67239424 + 131072 + Use External BIOS Images + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{35, 32}, {120, 18}} + + 3 + YES + + -2080244224 + 131072 + Emulate BIOS SWIs + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{35, 12}, {132, 18}} + + 4 + YES + + 67239424 + 131072 + Patch DelayLoop SWI + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {244, 78}} + + + + {{17, 224}, {246, 94}} + + {0, 0} + + 67239424 + 0 + BIOS Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{15, 32}, {177, 18}} + + 5 + YES + + 67239424 + 131072 + Use External Firmware Image + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{15, 12}, {130, 18}} + + 6 + YES + + 67239424 + 131072 + Boot From Firmware + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 265 + {{176, 54}, {27, 27}} + + YES + + -2080244224 + 134217728 + + + + -2033434369 + 160 + + + + 400 + 75 + + + + + 268 + {{15, 61}, {157, 14}} + + YES + + 68288064 + 272761856 + Configure Internal Firmware: + + + + + + + + {{1, 1}, {244, 85}} + + + + {{17, 119}, {246, 101}} + + {0, 0} + + 67239424 + 0 + Firmware Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{63, 18}, {154, 19}} + + YES + + -2080244224 + 134217728 + Save Settings as Default + + + -2038152961 + 164 + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{15, 32}, {127, 18}} + + 9 + YES + + 67239424 + 131072 + Use Debug Console + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{15, 12}, {103, 18}} + + YES + + 67239424 + 131072 + Emulate Ensata + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {244, 58}} + + + + {{17, 41}, {246, 74}} + + {0, 0} + + 67239424 + 0 + Debugger Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {280, 396} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + + 256 + + + + 268 + {{53, 18}, {154, 19}} + + YES + + -2080244224 + 134217728 + Apply + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{107, 212}, {136, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + 400 + 75 + + + Gray + + 2147483647 + 1 + + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Brown + + 2147483647 + + + + _popUpItemAction: + 1 + + + + + Red + + 2147483647 + + + + _popUpItemAction: + 2 + + + + + Pink + + 2147483647 + + + + _popUpItemAction: + 3 + + + + + Orange + + 2147483647 + + + + _popUpItemAction: + 4 + + + + + Yellow + + 2147483647 + + + + _popUpItemAction: + 5 + + + + + Lime Green + + 2147483647 + + + + _popUpItemAction: + 6 + + + + + Green + + 2147483647 + + + + _popUpItemAction: + 7 + + + + + Dark Green + + 2147483647 + + + + _popUpItemAction: + 8 + + + + + Sea Green + + 2147483647 + + + + _popUpItemAction: + 9 + + + + + Turquoise + + 2147483647 + + + + _popUpItemAction: + 10 + + + + + Blue + + 2147483647 + + + + _popUpItemAction: + 11 + + + + + Dark Blue + + 2147483647 + + + + _popUpItemAction: + 12 + + + + + Dark Purple + + 2147483647 + + + + _popUpItemAction: + 13 + + + + + Violet + + 2147483647 + + + + _popUpItemAction: + 14 + + + + + Magenta + + 2147483647 + + + + _popUpItemAction: + 15 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{107, 157}, {136, 22}} + + YES + + -2076049856 + 133120 + + + 109199615 + 129 + + + 400 + 75 + + + English + + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + + + Japanese + + 2147483647 + + + _popUpItemAction: + + + + + + French + + 2147483647 + + + _popUpItemAction: + 2 + + + + + German + + 2147483647 + + + _popUpItemAction: + 3 + + + + + Italian + + 2147483647 + + + _popUpItemAction: + 4 + + + + + Spanish + + 2147483647 + + + _popUpItemAction: + 5 + + + + + + 1 + 1 + YES + YES + 2 + + + + + 268 + {{17, 45}, {226, 98}} + + YES + + 67239424 + 272760832 + Note: To use this configuration, click Apply, and then reset the emulator. Also, these settings will be overridden if you are using an external firmware image. If you want to use this configuration, ensure that the Use External Firmware Image setting is disabled. + + + + + + + + + 268 + {{110, 186}, {133, 27}} + + YES + + 71433728 + 131072 + + 330548400 + + + + 0.0 + 224 + + + + + + + 268 + {{17, 162}, {69, 14}} + + YES + + 68288064 + 272761856 + Language: + + + + + + + + + 268 + {{17, 190}, {60, 14}} + + YES + + 68288064 + 272761856 + Birthday: + + + + + + + + + 268 + {{17, 217}, {97, 14}} + + YES + + 68288064 + 272761856 + Favorite Color: + + + + + + + + + 268 + {{17, 264}, {63, 14}} + + YES + + 68288064 + 272761856 + Message: + + + + + + + + + 268 + {{17, 291}, {71, 14}} + + YES + + 68288064 + 272761856 + Nickname: + + + + + + + + + 268 + {{110, 241}, {130, 40}} + + YES + + -1805517311 + 272760832 + + + Enter a message... + + YES + + + + + + + 268 + {{110, 289}, {130, 19}} + + YES + + -1804468671 + 272761856 + + + Enter a nickname... + + YES + + + + + + {260, 328} + NSView + + + + {260, 328} + {0, 328} + {260, 328} + 2 + 0.0 + 0.0 + + + + + 279 + 2 + {{1572, 795}, {194, 241}} + -461896704 + HUD Settings + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{18, 174}, {158, 18}} + + YES + + -2080244224 + 131072 + Frame Counter + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{18, 154}, {158, 18}} + + YES + + -2080244224 + 131072 + Frames Per Second + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{18, 134}, {158, 18}} + + YES + + -2080244224 + 131072 + Input + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{18, 114}, {158, 18}} + + YES + + -2080244224 + 131072 + Graphical Input + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{18, 94}, {158, 18}} + + YES + + -2080244224 + 131072 + Lag Counter + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{18, 74}, {158, 18}} + + YES + + -2080244224 + 131072 + Microphone + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{18, 54}, {158, 18}} + + YES + + -2080244224 + 131072 + Real Time Clock + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{20, 18}, {154, 19}} + + YES + + -2080244224 + 134217728 + Save Settings as Default + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{18, 205}, {158, 18}} + + YES + + -2080244224 + 131072 + Enable HUD + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 12 + {{21, 196}, {153, 5}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + {194, 241} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 279 + 2 + {{1651, 316}, {204, 481}} + -461896704 + Video Output Settings + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{25, 18}, {154, 19}} + + YES + + -2080244224 + 134217728 + Save Settings as Default + + + -2038152961 + 164 + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {129, 358}} + + YES + 18 + 1 + + + -2080244224 + 139264 + None + + + 1211912703 + 2 + + NSImage + NSRadioButton + + + + + 200 + 25 + + + 67239424 + 139264 + LQ2x + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + 1140981248 + 139264 + LQ2xS + + + 2 + 1211912703 + 0 + + 12779520 + + + + + + regular + normal + + radiobutton + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + 1140981248 + 139264 + HQ2x + + + 3 + 1211912703 + 0 + + + 400 + 75 + + + 1140981248 + 139264 + HQ2xS + + + 4 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + HQ4x + + + 5 + 1211912703 + 0 + + + 400 + 75 + + + 1140981248 + 139264 + 2xSaI + + + 6 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + Super 2xSaI + + + 7 + 1211912703 + 0 + + + 400 + 75 + + + 1140981248 + 139264 + Super Eagle + + + 8 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + Scanline + + + 9 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + Bilinear + + + 10 + 1211912703 + 0 + + + 400 + 75 + + + 1140981248 + 139264 + Nearest 2x + + + 11 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + Nearest 1.5x + + + 12 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + Nearest+ 1.5x + + + 13 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + EPX + + + 14 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + EPX+ + + + 15 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 139264 + EPX 1.5x + + + 16 + 1211912703 + 0 + + + 400 + 75 + + + 67239424 + 131072 + EPX+ 1.5x + + + 17 + 1211912703 + 0 + + 12779520 + + + + + + regular + normal + + radiobutton + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + {129, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {168, 382}} + + + + {{17, 41}, {170, 398}} + + {0, 0} + + 67239424 + 0 + Video Filters + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{17, 445}, {169, 18}} + + YES + + -2080244224 + 131072 + Use Bilinear Filtered Output + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {204, 481} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 279 + 2 + {{230, 79}, {284, 462}} + -461896704 + 3D Rendering Settings + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 12 + + + + 274 + + + + 268 + {{15, 97}, {206, 18}} + + YES + + -2080244224 + 131072 + High-Precision Color Interpolation + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{15, 77}, {134, 18}} + + YES + + -2080244224 + 131072 + Enable Edge Marking + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{15, 57}, {80, 18}} + + YES + + -2080244224 + 131072 + Enable Fog + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{15, 37}, {108, 18}} + + YES + + -2080244224 + 131072 + Enable Textures + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{185, 12}, {45, 19}} + + YES + + -1804468671 + 272761856 + + + + + + + + + + + + # + -∞ + + + # + +∞ + + # + # + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + NO + + + YES + + + + + + + 268 + {{15, 14}, {165, 14}} + + YES + + 68288064 + 272761856 + Depth Comparison Threshold: + + + + + + + + {{1, 1}, {248, 123}} + + + + {{17, 163}, {250, 139}} + + {0, 0} + + 67239424 + 0 + SoftRasterizer Options + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{65, 18}, {154, 19}} + + YES + + -2080244224 + 134217728 + Save Settings as Default + + + -2038152961 + 164 + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {107, 38}} + + YES + 2 + 1 + + + 67239424 + 131072 + None + + + 1211912703 + 0 + + + + 200 + 25 + + + -2080244224 + 131072 + SoftRasterizer + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + {107, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 1 + + + + + + + {{1, 1}, {248, 62}} + + + + {{17, 364}, {250, 78}} + + {0, 0} + + 67239424 + 0 + 3D Rendering Engine + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {120, 78}} + + YES + 4 + 1 + + + -2080244224 + 131072 + Automatic + + + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 131072 + Single-Threaded + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + 67239424 + 131072 + 2 Threads + + + 2 + 1211912703 + 0 + + 12779520 + + + + + + regular + normal + + radiobutton + + {18, 18} + 0 + YES + NSCalibratedRGBColorSpace + + + + + + + 400 + 75 + + + 67239424 + 131072 + 4 Threads + + + 4 + 1211912703 + 0 + + + 400 + 75 + + + {120, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + + + + + + + {{1, 1}, {248, 102}} + + + + {{17, 41}, {250, 118}} + + {0, 0} + + 67239424 + 0 + SoftRasterizer Rendering Threads + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 12}, {113, 18}} + + YES + + -2080244224 + 131072 + Enable Line Hack + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {248, 38}} + + + + {{17, 306}, {250, 54}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {284, 462} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 279 + 2 + {{230, 30}, {288, 511}} + -461896704 + Sound Settings + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {61, 58}} + + YES + 3 + 1 + + + 67239424 + 131072 + None + + + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 131072 + Linear + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + -2080244224 + 131072 + Cosine + + + 2 + 1211912703 + 0 + + 400 + 75 + + + {61, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 2 + + + + + + + {{1, 1}, {253, 82}} + + + + {{16, 189}, {255, 98}} + + {0, 0} + + 67239424 + 0 + SPU Interpolation Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{18, 80}, {154, 38}} + + YES + 2 + 1 + + + 67239424 + 131072 + Dual SPU Synch/Asynch + + + 1211912703 + 0 + + + + 200 + 25 + + + -2080244224 + 131072 + Synchronous + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + {154, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{53, 14}, {100, 58}} + + YES + 3 + 1 + + + 67239424 + 131072 + "N" Method + + + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 131072 + "Z" Method + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + -2080244224 + 131072 + "P" Method + + + 2 + 1211912703 + 0 + + 400 + 75 + + + {100, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 2 + + + + + + + {{1, 1}, {253, 128}} + + + + {{16, 41}, {255, 144}} + + {0, 0} + + 67239424 + 0 + SPU Sound Synchronization Method + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{15, 12}, {129, 18}} + + YES + + -2080244224 + 131072 + Advanced SPU Logic + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {253, 38}} + + + + {{16, 291}, {255, 54}} + + {0, 0} + + 67239424 + 0 + SPU Configuration + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{47, 13}, {136, 21}} + + YES + + 67501824 + 0 + + + 100 + 0.0 + 100 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + {{186, 17}, {52, 17}} + + YES + + 68288064 + 272634880 + + + + + + + + + + + + -∞ + + + +∞ + + + #0.0% + #0.0% + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + Volume + + + + + + + + 289 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{18, 14}, {20, 20}} + + YES + + 130560 + 33554432 + + 0 + 2 + 0 + YES + + YES + + + {{1, 1}, {253, 44}} + + + + {{16, 349}, {255, 60}} + + {0, 0} + + 67239424 + 0 + General Settings + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{66, 18}, {154, 19}} + + YES + + -2080244224 + 134217728 + Save Settings as Default + + + -2038152961 + 164 + + + 400 + 75 + + + + + 12 + + + + 274 + + + + 268 + {{18, 14}, {116, 38}} + + YES + 2 + 1 + + + 67239424 + 131072 + None + + + 1211912703 + 0 + + + + 200 + 25 + + + -2080244224 + 131072 + OS X Core Audio + + + 58325 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +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 + + + {116, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 131072 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + 1 + + + + + + + {{1, 1}, {253, 62}} + + + + {{16, 413}, {255, 78}} + + {0, 0} + + 67239424 + 0 + Audio Output Engine + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {288, 511} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 8215 + 2 + {{107, 480}, {580, 588}} + -461897728 + ROM Info + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{20, 440}, {128, 128}} + + YES + + 130560 + 33554432 + + 0 + 3 + 0 + NO + + YES + + + + 12 + + + + 274 + + + + 268 + {{15, 89}, {131, 17}} + + YES + + 68288064 + 272634880 + ROM Name: + + + + + + + + + 268 + {{15, 64}, {131, 17}} + + YES + + 68288064 + 272630784 + ROM Serial: + + + + + + + + + 268 + {{15, 39}, {131, 17}} + + YES + + 68288064 + 272630784 + Maker Code: + + + + + + + + + 268 + {{15, 14}, {131, 17}} + + YES + + 68288064 + 272630784 + Chip Size: + + + + + + + + + 268 + {{148, 89}, {245, 17}} + + YES + + 68288064 + 4195328 + + + ? + + + + 1 + MSAxIDEAA + + + + + + 268 + {{148, 64}, {245, 17}} + + YES + + 68288064 + 4195328 + + + ? + + + + + + + + 268 + {{148, 39}, {245, 17}} + + YES + + 68288064 + 4195328 + + + ? + + + + + + + + 268 + {{148, 14}, {245, 17}} + + YES + + 68288064 + 4195328 + + + ? + + + + + + + {{1, 1}, {408, 116}} + + + + {{153, 436}, {410, 132}} + + {0, 0} + + 67239424 + 0 + General Info + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{15, 376}, {186, 14}} + + YES + + 68288064 + 272897024 + JAPANESE TITLE: + + + + + + + + + 268 + {{15, 312}, {186, 14}} + + YES + + 68288064 + 272897024 + ENGLISH TITLE: + + + + + + + + + 268 + {{15, 248}, {186, 14}} + + YES + + 68288064 + 272897024 + FRENCH TITLE: + + + + + + + + + 268 + {{15, 184}, {186, 14}} + + YES + + 68288064 + 272897024 + GERMAN TITLE: + + + + + + + + + 268 + {{15, 120}, {186, 14}} + + YES + + 68288064 + 272897024 + ITALIAN TITLE: + + + + + + + + + 268 + {{15, 56}, {186, 14}} + + YES + + 68288064 + 272897024 + SPANISH TITLE: + + + + + + + + + 268 + {{15, 334}, {186, 42}} + + YES + + 67239424 + 272896000 + + + ? + + + + + + + + 268 + {{15, 270}, {186, 42}} + + YES + + 67239424 + 272896000 + + + ? + + + + + + + + 268 + {{15, 206}, {186, 42}} + + YES + + 67239424 + 272896000 + + + ? + + + + + + + + 268 + {{15, 142}, {186, 42}} + + YES + + 67239424 + 272896000 + + + ? + + + + + + + + 268 + {{15, 78}, {186, 42}} + + YES + + 67239424 + 272896000 + + + ? + + + + + + + + 268 + {{15, 14}, {186, 42}} + + YES + + 67239424 + 272896000 + + + ? + + + + + + + {{1, 1}, {216, 400}} + + + + {{17, 16}, {218, 416}} + + {0, 0} + + 67239424 + 0 + Titles + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{15, 168}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM9 Binary ROM Offset: + + + + + + + + + 268 + {{15, 146}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM9 Binary Entry Address: + + + + + + + + + 268 + {{15, 124}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM9 Binary Start Address: + + + + + + + + + 268 + {{15, 102}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM9 Binary Size: + + + + + + + + + 268 + {{15, 80}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM7 Binary ROM Offset: + + + + + + + + + 268 + {{15, 58}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM7 Binary Entry Address: + + + + + + + + + 268 + {{15, 36}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM7 Binary Start Address: + + + + + + + + + 268 + {{15, 14}, {186, 14}} + + YES + + 68288064 + 272630784 + ARM7 Binary Size: + + + + + + + + + 268 + {{203, 168}, {106, 14}} + + YES + + 68288064 + 71304192 + + ? + + + + + + + + 268 + {{203, 146}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{203, 124}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{203, 102}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? bytes + + + + + + + + 268 + {{203, 80}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{203, 58}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{203, 36}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{203, 14}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? bytes + + + + + + + {{1, 1}, {324, 192}} + + + + {{237, 224}, {326, 208}} + + {0, 0} + + 67239424 + 0 + ARM9 & ARM7 Binaries + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{15, 80}, {186, 14}} + + YES + + 68288064 + 272630784 + FNT ROM Offset: + + + + + + + + + 268 + {{203, 80}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{15, 58}, {186, 14}} + + YES + + 68288064 + 272630784 + FNT Size: + + + + + + + + + 268 + {{203, 58}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? bytes + + + + + + + + 268 + {{15, 36}, {186, 14}} + + YES + + 68288064 + 272630784 + FAT ROM Offset: + + + + + + + + + 268 + {{203, 36}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{15, 14}, {186, 14}} + + YES + + 68288064 + 272630784 + FAT Size: + + + + + + + + + 268 + {{203, 14}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? bytes + + + + + + + {{1, 1}, {324, 104}} + + + + {{237, 98}, {326, 120}} + + {0, 0} + + 67239424 + 0 + File System + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{15, 36}, {186, 14}} + + YES + + 68288064 + 272630784 + Icon/Title Region ROM Offset: + + + + + + + + + 268 + {{203, 36}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + + 268 + {{15, 14}, {186, 14}} + + YES + + 68288064 + 272630784 + Used ROM Size: + + + + + + + + + 268 + {{203, 14}, {106, 14}} + + YES + + 68288064 + 71304192 + + + ? + + + + + + + {{1, 1}, {324, 60}} + + + + {{237, 16}, {326, 76}} + + {0, 0} + + 67239424 + 0 + Misc + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + {580, 588} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 279 + 2 + {{1360, 92}, {467, 135}} + -461897728 + Set Speed Limit + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{30, 43}, {411, 26}} + + YES + + -2079981824 + 0 + + + 10 + 0.0 + 1 + 0.0 + 6 + 1 + NO + NO + + + + + 268 + {{17, 77}, {38, 17}} + + YES + + 68288064 + 138413056 + 0x + + + + + + + + + 268 + {{412, 77}, {38, 17}} + + YES + + 68288064 + 138413056 + 10x + + + + + + + + + 268 + {{97, 77}, {38, 17}} + + YES + + 68288064 + 138413056 + 2x + + + + + + + + + 268 + {{176, 77}, {38, 17}} + + YES + + 68288064 + 138413056 + 4x + + + + + + + + + 268 + {{254, 77}, {38, 17}} + + YES + + 68288064 + 138413056 + 6x + + + + + + + + + 268 + {{335, 77}, {38, 17}} + + YES + + 68288064 + 138413056 + 8x + + + + + + + + + 268 + {{32, 18}, {133, 19}} + + 100 + YES + + 67239424 + 134217728 + Set to Normal Speed + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{260, 21}, {123, 17}} + + YES + + 68288064 + 272630784 + Speed limit set to: + + + + + + + + + 268 + {{385, 21}, {57, 17}} + + YES + + 68288064 + 272630784 + + + + + + + + + + + #0.00x + -∞ + + + #0.00x + +∞ + + + #0.00x + #0.00x + + + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + speedX + + + + + + + + 268 + {{158, 100}, {154, 18}} + + YES + + -2080244224 + 0 + Enable Speed Limiter + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {467, 135} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 279 + 2 + {{162, 281}, {213, 198}} + -461897728 + Set Rotation + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + + + 268 + {{88, 119}, {32, 34}} + + YES + + 67501824 + 0 + + + 360 + 0.0 + 0.0 + 0.0 + 4 + 1 + NO + NO + 1 + + + + + 268 + {{85, 161}, {38, 17}} + + YES + + 68288064 + 138413056 + 0º + + + + + + + + + 268 + {{85, 94}, {39, 17}} + + YES + + 68288064 + 138413056 + 180º + + + + + + + + + 268 + {{44, 127}, {39, 17}} + + YES + + 68288064 + 138413056 + 270º + + + + + + + + + 268 + {{125, 127}, {38, 17}} + + YES + + 68288064 + 138413056 + 90º + + + + + + + + + 268 + {{127, 69}, {57, 17}} + + YES + + 68288064 + 272630784 + + + + + + ¤ + + ¤¤ + + + + + + + #0.00º + º + + #0.00º + º + + #0.00º + #0.00º + + + + + + NaN + + + + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + + rotX + + + + + + + + 268 + {{24, 69}, {101, 17}} + + YES + + 68288064 + 272630784 + Rotation set to: + + + + + + + + + 268 + {{27, 42}, {154, 19}} + + YES + + -2080244224 + 134217728 + Set to 0º + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{27, 17}, {154, 19}} + + YES + + -2080244224 + 134217728 + Save Settings as Default + + + -2038152961 + 164 + + + 400 + 75 + + + + {213, 198} + + {{0, 0}, {1440, 878}} + {1.79769e+308, 1.79769e+308} + + + + 268 + + + + 268 + {{195, 5}, {226, 26}} + + + YES + + -2076049856 + 2048 + + + 109199615 + 1 + + + 400 + 75 + + + DeSmuME ROM Save (.dsv) + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + No$GBA ROM Save (.sav) + + 2147483647 + + + _popUpItemAction: + 1 + + + + + Raw Save File (.sav) + + 2147483647 + + + _popUpItemAction: + 2 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{33, 11}, {160, 17}} + + + YES + + 68288064 + 71304192 + Select ROM Save Format: + + + + + + + + {450, 35} + + + NSView + + + + 268 + + + + 268 + {{176, 5}, {126, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 1 + + + 400 + 75 + + + TIFF + + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + BMP + + 2147483647 + + + _popUpItemAction: + 1 + + + + + GIF + + 2147483647 + + + _popUpItemAction: + 2 + + + + + JPEG + + 2147483647 + + + _popUpItemAction: + 3 + + + + + PNG + + 2147483647 + + + _popUpItemAction: + 4 + + + + + JPEG 2000 + + 2147483647 + + + _popUpItemAction: + 5 + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{38, 11}, {136, 17}} + + YES + + 68288064 + 71304192 + Select Image Format: + + + + + + + + {350, 35} + NSView + + + + readMePath + licensePath + authorsPath + changeLogPath + versionString + dateString + + + + + + isSpeedLimitEnabled + isCheatingEnabled + speedScalar + isFrameSkipEnabled + emuFlagAdvancedBusLevelTiming + emuFlagUseExternalBios + emuFlagEmulateBiosInterrupts + emuFlagPatchDelayLoop + emuFlagUseExternalFirmware + emuFlagFirmwareBoot + emuFlagDebugConsole + emuFlagEmulateEnsata + + CocoaDSCore + + + + + gpuStateMainGPU + gpuStateMainBG0 + gpuStateMainBG1 + gpuStateMainBG2 + gpuStateMainBG3 + gpuStateMainOBJ + gpuStateSubGPU + gpuStateSubBG0 + gpuStateSubBG1 + gpuStateSubBG2 + gpuStateSubBG3 + gpuStateSubOBJ + displayMode + displayModeString + videoFilterType + videoFilterTypeString + render3DRenderingEngine + render3DDepthComparisonThreshold + render3DEdgeMarking + render3DFog + render3DHighPrecisionColorInterpolation + render3DTextures + render3DThreads + render3DLineHack + scale + rotation + useBilinearOutput + + YES + + + + + spuInterpolationMode + spuSyncMode + spuSyncMethod + spuAdvancedLogic + volume + audioOutputEngine + + YES + + + + + isWorking + status + volumeIconImage + volume + isRomLoaded + isShowingStatusBar + + YES + + + + + hasSelection + hasItems + cheatList + cheatSearchStyle + cheatSearchSignType + cheatSearchSearchValue + cheatSearchAddressCount + isRunningSearch + isSearchStarted + cheatDBTitle + cheatDBItemCount + cheatDBDate + + YES + + + + + Input_Up + Input_Down + Input_Left + Input_Right + Input_A + Input_B + Input_X + Input_Y + Input_L + Input_R + Input_Start + Input_Select + Input_Microphone + Input_Lid + Input_Debug + Input_SpeedHalf + Input_SpeedDouble + Input_HUD + Input_Execute + Input_Pause + Input_Reset + Arm7BiosImageName + Arm9BiosImageName + FirmwareImageName + AutoloadRomName + VideoFilterPreviewImage + volumeIconImage + R4CheatDatabaseName + AdvansceneDatabaseName + + YES + + + + + nickname + message + favoriteColor + birthday + language + consoleType + + CocoaDSFirmware + + + + + gameTitle + gameCode + makerCode + cardSize + bannerJapanese + bannerEnglish + bannerFrench + bannerGerman + bannerItalian + bannerSpanish + fntOffset + fntTableSize + fatOffset + fatSize + iconOffset + romSize + iconImage + arm9BinaryOffset + arm9BinaryEntryAddress + arm9BinaryStartAddress + arm9BinarySize + arm7BinaryOffset + arm7BinaryEntryAddress + arm7BinaryStartAddress + arm7BinarySize + romInternalName + romSerial + + + + + + enabled + cheatType + description + cheatTypeIcon + isSupportedCheatType + freezeType + codeCount + bytes + memAddress + value + code + memAddressString + memAddressSixDigitString + + CocoaDSCheatItem + YES + + + + + deviceName + elementName + useDeviceCoordinates + pointX + pointY + + YES + + YES + YES + YES + YES + YES + + + + version + kind + name + dateModified + willMigrate + + + YES + YES + YES + YES + YES + + + + enabled + cheatTypeIcon + description + cheatType + + CocoaDSCheatItem + YES + + YES + YES + YES + YES + YES + + + + value + addressString + + + YES + + + + willAdd + description + + YES + + YES + + + YES + + + + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + clearRecentDocuments: + + + + 127 + + + + performZoom: + + + + 240 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + terminate: + + + + 449 + + + + showHelp: + + + + 493 + + + + delegate + + + + 495 + + + + contentView + + + + 718 + + + + closeRom: + + + + 767 + + + + makeKeyAndOrderFront: + + + + 782 + + + + makeKeyAndOrderFront: + + + + 860 + + + + delegate + + + + 1070 + + + + launchWebsite: + + + + 1101 + + + + launchForums: + + + + 1102 + + + + bugReport: + + + + 1103 + + + + openRom: + + + + 1107 + + + + openRom: + + + + 1237 + + + + showGeneralView: + + + + 1683 + + + + showDisplayView: + + + + 1684 + + + + showInputView: + + + + 1685 + + + + window + + + + 1689 + + + + viewDisplay + + + + 1690 + + + + viewGeneral + + + + 1691 + + + + viewInput + + + + 1692 + + + + mLoadStateSlot + + + + 1775 + + + + mSaveStateSlot + + + + 1776 + + + + value: selection.speedScalar + + + + + + value: selection.speedScalar + value + selection.speedScalar + + + + + + 2 + + + 1869 + + + + value: selection.speedScalar + + + + + + value: selection.speedScalar + value + selection.speedScalar + + + + + + + 2 + + + 1872 + + + + delegate + + + + 2025 + + + + inputButtonSet: + + + + 2039 + + + + inputButtonSet: + + + + 2040 + + + + inputButtonSet: + + + + 2041 + + + + inputButtonSet: + + + + 2042 + + + + inputButtonSet: + + + + 2043 + + + + inputButtonSet: + + + + 2044 + + + + inputButtonSet: + + + + 2045 + + + + inputButtonSet: + + + + 2046 + + + + inputButtonSet: + + + + 2047 + + + + inputButtonSet: + + + + 2048 + + + + inputButtonSet: + + + + 2049 + + + + inputButtonSet: + + + + 2050 + + + + inputButtonSet: + + + + 2051 + + + + inputButtonSet: + + + + 2052 + + + + inputPrefsView + + + + 2087 + + + + prefGeneralView + + + + 2093 + + + + prefWindow + + + + 2094 + + + + prefWindow + + + + 2196 + + + + viewSound + + + + 2251 + + + + showSoundView: + + + + 2252 + + + + updateVolumeIcon: + + + + 2268 + + + + selectDisplaySize: + + + + 2306 + + + + selectDisplaySize: + + + + 2307 + + + + selectDisplaySize: + + + + 2308 + + + + selectDisplaySize: + + + + 2309 + + + + selectDisplayRotation: + + + + 2310 + + + + selectDisplayRotation: + + + + 2311 + + + + selectDisplayRotation: + + + + 2312 + + + + selectDisplayRotation: + + + + 2313 + + + + delegate + + + + 2314 + + + + displayRotationField + + + + 2315 + + + + displayRotationMenu + + + + 2316 + + + + displayRotationMenuCustomItem + + + + 2317 + + + + chooseRomForAutoload: + + + + 2322 + + + + selectAutoloadRomOption: + + + + 2323 + + + + selectAutoloadRomOption: + + + + 2324 + + + + viewEmulation + + + + 2380 + + + + showEmulationView: + + + + 2381 + + + + selectSoundInputMode: + + + + 2422 + + + + selectSoundInputMode: + + + + 2423 + + + + selectSoundInputMode: + + + + 2424 + + + + selectSoundInputMode: + + + + 2425 + + + + selectSPUSyncMode: + + + + 2451 + + + + selectSPUSyncMode: + + + + 2452 + + + + selectSPUSyncMethod: + + + + 2453 + + + + selectSPUSyncMethod: + + + + 2454 + + + + selectSPUSyncMethod: + + + + 2455 + + + + spuSyncMethodMenu + + + + 2456 + + + + speedLimitDisable: + + + + 2481 + + + + chooseFirmwareImage: + + + + 2575 + + + + chooseARM7BiosImage: + + + + 2587 + + + + chooseARM9BiosImage: + + + + 2588 + + + + makeKeyAndOrderFront: + + + + 2611 + + + + showSupportFolderInFinder: + + + + 2612 + + + + writeDefaultsDisplayRotation: + + + + 2624 + + + + saveFileMigrationSheet + + + + 2904 + + + + closeMigrationSheet: + + + + 2905 + + + + closeMigrationSheet: + + + + 2906 + + + + migrationWindow + + + + 2911 + + + + handleMigrationWindow: + + + + 2919 + + + + handleMigrationWindow: + + + + 2920 + + + + handleMigrationWindow: + + + + 2921 + + + + value: arrangedObjects.name + + + + + + value: arrangedObjects.name + value + arrangedObjects.name + + + + + + + 2 + + + 2928 + + + + value: arrangedObjects.version + + + + + + value: arrangedObjects.version + value + arrangedObjects.version + + + + + + + 2 + + + 2937 + + + + value: arrangedObjects.kind + + + + + + value: arrangedObjects.kind + value + arrangedObjects.kind + + + + + + + 2 + + + 2943 + + + + value: arrangedObjects.dateModified + + + + + + value: arrangedObjects.dateModified + value + arrangedObjects.dateModified + + + + + + + 2 + + + 2953 + + + + value: arrangedObjects.willMigrate + + + + + + value: arrangedObjects.willMigrate + value + arrangedObjects.willMigrate + + + + + + + + 2 + + + 3044 + + + + showMigrationWindow: + + + + 3066 + + + + fileMigrationList + + + + 3071 + + + + copy: + + + + 3251 + + + + cut: + + + + 3252 + + + + paste: + + + + 3257 + + + + redo: + + + + 3266 + + + + delete: + + + + 3267 + + + + selectAll: + + + + 3270 + + + + undo: + + + + 3272 + + + + enabled: migrationFilesPresent + + + + + + enabled: migrationFilesPresent + enabled + migrationFilesPresent + 2 + + + 3290 + + + + enabled: migrationFilesPresent + + + + + + enabled: migrationFilesPresent + enabled + migrationFilesPresent + 2 + + + 3292 + + + + selectVideoFilterType: + + + + 3346 + + + + selectVideoFilterType: + + + + 3347 + + + + selectVideoFilterType: + + + + 3348 + + + + selectVideoFilterType: + + + + 3349 + + + + selectVideoFilterType: + + + + 3350 + + + + selectVideoFilterType: + + + + 3351 + + + + selectVideoFilterType: + + + + 3352 + + + + selectVideoFilterType: + + + + 3353 + + + + selectVideoFilterType: + + + + 3354 + + + + selectVideoFilterType: + + + + 3355 + + + + selectVideoFilterType: + + + + 3356 + + + + selectVideoFilterType: + + + + 3357 + + + + selectVideoFilterType: + + + + 3358 + + + + selectVideoFilterType: + + + + 3359 + + + + selectVideoFilterType: + + + + 3360 + + + + selectVideoFilterType: + + + + 3361 + + + + selectVideoFilterType: + + + + 3362 + + + + mainWindow + + + + 3436 + + + + runToolbarCustomizationPalette: + + + + 3437 + + + + toggleToolbarShown: + + + + 3438 + + + + window + + + + 3439 + + + + toggleGPUState: + + + + 3441 + + + + toggleGPUState: + + + + 3442 + + + + toggleGPUState: + + + + 3443 + + + + toggleGPUState: + + + + 3446 + + + + toggleGPUState: + + + + 3447 + + + + toggleGPUState: + + + + 3449 + + + + toggleGPUState: + + + + 3450 + + + + toggleGPUState: + + + + 3451 + + + + toggleGPUState: + + + + 3452 + + + + toggleGPUState: + + + + 3453 + + + + toggleGPUState: + + + + 3454 + + + + toggleGPUState: + + + + 3455 + + + + closeMigrationSheet: + + + + 3466 + + + + closeMigrationSheet: + + + + 3467 + + + + saveStatePrecloseSheet + + + + 3470 + + + + closeMigrationSheet: + + + + 3473 + + + + resetCore: + + + + 3483 + + + + resetCore: + + + + 3484 + + + + executeCoreToggle: + + + + 3485 + + + + executeCoreToggle: + + + + 3486 + + + + prefWindowController + + + + 3532 + + + + value: selection.Input_Up + + + + + + value: selection.Input_Up + value + selection.Input_Up + 2 + + + 3536 + + + + value: selection.Input_Down + + + + + + value: selection.Input_Down + value + selection.Input_Down + 2 + + + 3537 + + + + value: selection.Input_Left + + + + + + value: selection.Input_Left + value + selection.Input_Left + 2 + + + 3538 + + + + value: selection.Input_Right + + + + + + value: selection.Input_Right + value + selection.Input_Right + 2 + + + 3539 + + + + value: selection.Input_A + + + + + + value: selection.Input_A + value + selection.Input_A + 2 + + + 3540 + + + + value: selection.Input_B + + + + + + value: selection.Input_B + value + selection.Input_B + 2 + + + 3541 + + + + value: selection.Input_X + + + + + + value: selection.Input_X + value + selection.Input_X + 2 + + + 3542 + + + + value: selection.Input_Y + + + + + + value: selection.Input_Y + value + selection.Input_Y + 2 + + + 3543 + + + + value: selection.Input_L + + + + + + value: selection.Input_L + value + selection.Input_L + 2 + + + 3545 + + + + value: selection.Input_R + + + + + + value: selection.Input_R + value + selection.Input_R + 2 + + + 3546 + + + + value: selection.Input_Start + + + + + + value: selection.Input_Start + value + selection.Input_Start + 2 + + + 3547 + + + + value: selection.Input_Select + + + + + + value: selection.Input_Select + value + selection.Input_Select + 2 + + + 3548 + + + + value: selection.Input_Lid + + + + + + value: selection.Input_Lid + value + selection.Input_Lid + 2 + + + 3549 + + + + value: selection.Input_Microphone + + + + + + value: selection.Input_Microphone + value + selection.Input_Microphone + 2 + + + 3550 + + + + value: selection.AutoloadRomName + + + + + + value: selection.AutoloadRomName + value + selection.AutoloadRomName + 2 + + + 3558 + + + + value: selection.FirmwareImageName + + + + + + value: selection.FirmwareImageName + value + selection.FirmwareImageName + 2 + + + 3561 + + + + value: selection.VideoFilterPreviewImage + + + + + + value: selection.VideoFilterPreviewImage + value + selection.VideoFilterPreviewImage + 2 + + + 3562 + + + + romInfoPanelController + + + + 3577 + + + + cdsDisplayController + + + + 3580 + + + + emuWindowController + + + + 3599 + + + + selectVideoFilterType: + + + + 3647 + + + + changeVideoFilter: + + + + 3669 + + + + changeVideoFilter: + + + + 3670 + + + + changeVideoFilter: + + + + 3671 + + + + changeVideoFilter: + + + + 3672 + + + + changeVideoFilter: + + + + 3673 + + + + changeVideoFilter: + + + + 3674 + + + + changeVideoFilter: + + + + 3675 + + + + changeVideoFilter: + + + + 3676 + + + + changeVideoFilter: + + + + 3677 + + + + changeVideoFilter: + + + + 3678 + + + + changeVideoFilter: + + + + 3679 + + + + changeVideoFilter: + + + + 3680 + + + + changeVideoFilter: + + + + 3681 + + + + changeVideoFilter: + + + + 3682 + + + + changeVideoFilter: + + + + 3683 + + + + changeVideoFilter: + + + + 3684 + + + + changeVideoFilter: + + + + 3685 + + + + changeVideoFilter: + + + + 3686 + + + + changeBilinearOutput: + + + + 3697 + + + + firmwarePanelController + + + + 3699 + + + + makeKeyAndOrderFront: + + + + 3792 + + + + writeDefaultsVideoOutputSettings: + + + + 3796 + + + + writeDefaults3DRenderingSettings: + + + + 3797 + + + + value: values.Render3D_HighPrecisionColorInterpolation + + + + + + value: values.Render3D_HighPrecisionColorInterpolation + value + values.Render3D_HighPrecisionColorInterpolation + 2 + + + 3830 + + + + value: values.Render3D_Fog + + + + + + value: values.Render3D_Fog + value + values.Render3D_Fog + 2 + + + 3832 + + + + value: values.Render3D_Textures + + + + + + value: values.Render3D_Textures + value + values.Render3D_Textures + 2 + + + 3833 + + + + value: values.Render3D_DepthComparisonThreshold + + + + + + value: values.Render3D_DepthComparisonThreshold + value + values.Render3D_DepthComparisonThreshold + 2 + + + 3834 + + + + value: values.Render3D_EdgeMarking + + + + + + value: values.Render3D_EdgeMarking + value + values.Render3D_EdgeMarking + 2 + + + 3836 + + + + change3DRenderEdgeMarking: + + + + 3871 + + + + change3DRenderFog: + + + + 3872 + + + + change3DRenderHighPrecisionColorInterpolation: + + + + 3873 + + + + change3DRenderMethod: + + + + 3874 + + + + change3DRenderMethod: + + + + 3875 + + + + change3DRenderTextures: + + + + 3876 + + + + delegate + + + + 3877 + + + + selectedTag: values.Render3D_Threads + + + + + + selectedTag: values.Render3D_Threads + selectedTag + values.Render3D_Threads + 2 + + + 3895 + + + + value: values.Render3D_LineHack + + + + + + value: values.Render3D_LineHack + value + values.Render3D_LineHack + 2 + + + 3902 + + + + change3DRenderLineHack: + + + + 3904 + + + + change3DRenderThreads: + + + + 3905 + + + + change3DRenderThreads: + + + + 3906 + + + + change3DRenderThreads: + + + + 3907 + + + + change3DRenderThreads: + + + + 3908 + + + + changeRotationRelative: + + + + 3910 + + + + changeRotationRelative: + + + + 3911 + + + + changeRotation: + + + + 3912 + + + + changeRotation: + + + + 3913 + + + + changeRotation: + + + + 3914 + + + + changeRotation: + + + + 3915 + + + + changeRotation: + + + + 3917 + + + + changeRotation: + + + + 3918 + + + + changeScale: + + + + 3919 + + + + changeScale: + + + + 3920 + + + + changeScale: + + + + 3921 + + + + changeScale: + + + + 3922 + + + + changeScale: + + + + 3923 + + + + changeCoreSpeed: + + + + 3924 + + + + changeCoreSpeed: + + + + 3925 + + + + changeCoreSpeed: + + + + 3926 + + + + changeCoreSpeed: + + + + 3928 + + + + changeCoreSpeed: + + + + 3929 + + + + changeDisplayMode: + + + + 3940 + + + + changeDisplayMode: + + + + 3941 + + + + changeDisplayMode: + + + + 3942 + + + + boxARMBinaries + + + + 3954 + + + + boxFileSystem + + + + 3955 + + + + boxGeneralInfo + + + + 3956 + + + + boxMisc + + + + 3957 + + + + boxTitles + + + + 3958 + + + + makeKeyAndOrderFront: + + + + 3964 + + + + cdsSoundController + + + + 3971 + + + + writeDefaultsSoundSettings: + + + + 3972 + + + + changeSpuAdvancedLogic: + + + + 3973 + + + + changeSpuInterpolationMode: + + + + 3974 + + + + changeSpuInterpolationMode: + + + + 3975 + + + + changeSpuInterpolationMode: + + + + 3976 + + + + changeSpuSyncMethod: + + + + 3977 + + + + changeSpuSyncMethod: + + + + 3978 + + + + changeSpuSyncMethod: + + + + 3979 + + + + changeSpuSyncMode: + + + + 3980 + + + + changeSpuSyncMode: + + + + 3981 + + + + changeVolume: + + + + 3985 + + + + changeVolume: + + + + 3987 + + + + value: selection.Arm9BiosImageName + + + + + + value: selection.Arm9BiosImageName + value + selection.Arm9BiosImageName + 2 + + + 4025 + + + + value: selection.Arm7BiosImageName + + + + + + value: selection.Arm7BiosImageName + value + selection.Arm7BiosImageName + 2 + + + 4026 + + + + contentView + + + + 4057 + + + + parentWindow + + + + 4058 + + + + makeKeyAndOrderFront: + + + + 4063 + + + + toggle: + + + + 4068 + + + + previewImageView + + + + 4127 + + + + setUseBilinear: + + + + 4128 + + + + value: values.SPU_AdvancedLogic + + + + + + value: values.SPU_AdvancedLogic + value + values.SPU_AdvancedLogic + 2 + + + 4137 + + + + selectedTag: values.SPU_InterpolationMode + + + + + + selectedTag: values.SPU_InterpolationMode + selectedTag + values.SPU_InterpolationMode + 2 + + + 4138 + + + + selectedTag: values.SPU_SyncMode + + + + + + selectedTag: values.SPU_SyncMode + selectedTag + values.SPU_SyncMode + 2 + + + 4139 + + + + selectedTag: values.SPU_SyncMethod + + + + + + selectedTag: values.SPU_SyncMethod + selectedTag + values.SPU_SyncMethod + 2 + + + 4140 + + + + value: selection.emuFlagAdvancedBusLevelTiming + + + + + + value: selection.emuFlagAdvancedBusLevelTiming + value + selection.emuFlagAdvancedBusLevelTiming + 2 + + + 4141 + + + + value: selection.emuFlagUseExternalBios + + + + + + value: selection.emuFlagUseExternalBios + value + selection.emuFlagUseExternalBios + 2 + + + 4142 + + + + value: selection.emuFlagEmulateBiosInterrupts + + + + + + value: selection.emuFlagEmulateBiosInterrupts + value + selection.emuFlagEmulateBiosInterrupts + 2 + + + 4143 + + + + value: selection.emuFlagPatchDelayLoop + + + + + + value: selection.emuFlagPatchDelayLoop + value + selection.emuFlagPatchDelayLoop + 2 + + + 4145 + + + + value: selection.emuFlagUseExternalFirmware + + + + + + value: selection.emuFlagUseExternalFirmware + value + selection.emuFlagUseExternalFirmware + 2 + + + 4146 + + + + value: selection.emuFlagFirmwareBoot + + + + + + value: selection.emuFlagFirmwareBoot + value + selection.emuFlagFirmwareBoot + 2 + + + 4147 + + + + value: selection.emuFlagDebugConsole + + + + + + value: selection.emuFlagDebugConsole + value + selection.emuFlagDebugConsole + 2 + + + 4148 + + + + value: selection.emuFlagEmulateEnsata + + + + + + value: selection.emuFlagEmulateEnsata + value + selection.emuFlagEmulateEnsata + 2 + + + 4149 + + + + enabled: selection.emuFlagUseExternalBios + + + + + + enabled: selection.emuFlagUseExternalBios + enabled + selection.emuFlagUseExternalBios + 2 + + + 4150 + + + + enabled: selection.emuFlagUseExternalBios + + + + + + enabled: selection.emuFlagUseExternalBios + enabled + selection.emuFlagUseExternalBios + 2 + + + 4151 + + + + changeCoreEmuFlags: + + + + 4154 + + + + changeCoreEmuFlags: + + + + 4155 + + + + changeCoreEmuFlags: + + + + 4156 + + + + changeCoreEmuFlags: + + + + 4157 + + + + changeCoreEmuFlags: + + + + 4158 + + + + changeCoreEmuFlags: + + + + 4159 + + + + changeCoreEmuFlags: + + + + 4160 + + + + changeCoreEmuFlags: + + + + 4161 + + + + writeDefaultsEmulationSettings: + + + + 4162 + + + + cdsCoreController + + + + 4163 + + + + makeKeyAndOrderFront: + + + + 4279 + + + + makeKeyAndOrderFront: + + + + 4280 + + + + changeFirmwareSettings: + + + + 4462 + + + + writeDefaultsHUDSettings: + + + + 4463 + + + + firmwareConfigSheet + + + + 4466 + + + + configureInternalFirmware: + + + + 4467 + + + + closeFirmwareConfigSheet: + + + + 4468 + + + + toggleAutoFrameSkip: + + + + 4475 + + + + makeKeyAndOrderFront: + + + + 4638 + + + + value: selection.isCheatingEnabled + + + + + + value: selection.isCheatingEnabled + value + selection.isCheatingEnabled + 2 + + + 4648 + + + + cheatsDisable: + + + + 4696 + + + + window + + + + 4699 + + + + delegate + + + + 4700 + + + + viewConfigureActionReplayCheat + + + + 4702 + + + + viewConfigureInternalCheat + + + + 4703 + + + + cheatConfigBox + + + + 4709 + + + + delegate + + + + 4716 + + + + cheatSelectedItemController + + + + 4717 + + + + selectCheatType: + + + + 4718 + + + + selectCheatType: + + + + 4719 + + + + addToList: + + + + 4721 + + + + applyConfiguration: + + + + 4722 + + + + cheatListTable + + + + 4728 + + + + removeFromList: + + + + 4730 + + + + cheatWindowController + + + + 4735 + + + + viewConfigureNoSelection + + + + 4747 + + + + viewConfigureCodeBreakerCheat + + + + 4748 + + + + cheatListController + + + + 4753 + + + + cheatWindowController + + + + 4754 + + + + cheatListController + + + + 4755 + + + + cheatWindowDelegate + + + + 4756 + + + + parentWindow + + + + 4791 + + + + toggle: + + + + 4819 + + + + cheatSearchListController + + + + 4922 + + + + runExactValueSearch: + + + + 4928 + + + + runComparativeSearch: + + + + 4929 + + + + runComparativeSearch: + + + + 4930 + + + + runComparativeSearch: + + + + 4931 + + + + runComparativeSearch: + + + + 4932 + + + + selectCheatSearchStyle: + + + + 4933 + + + + selectCheatSearchStyle: + + + + 4934 + + + + viewSearchComparativeContinue + + + + 4936 + + + + viewSearchComparativeStart + + + + 4937 + + + + viewSearchExactValue + + + + 4938 + + + + viewSearchNoSelection + + + + 4939 + + + + cheatSearchView + + + + 4940 + + + + resetSearch: + + + + 4941 + + + + runComparativeSearch: + + + + 4943 + + + + searchField + + + + 4944 + + + + cheatSearchListTable + + + + 4945 + + + + delegate + + + + 4946 + + + + cdsCoreController + + + + 4955 + + + + setInternalCheatValue: + + + + 5070 + + + + value: selection.R4CheatDatabaseName + + + + + + value: selection.R4CheatDatabaseName + value + selection.R4CheatDatabaseName + 2 + + + 5073 + + + + chooseCheatDatabase: + + + + 5078 + + + + viewDatabase: + + + + 5079 + + + + cheatDatabaseSheet + + + + 5108 + + + + closeCheatDatabaseSheet: + + + + 5109 + + + + closeCheatDatabaseSheet: + + + + 5110 + + + + cheatDatabaseController + + + + 5118 + + + + cheatDatabaseController + + + + 5119 + + + + selectAllCheatsInDatabase: + + + + 5122 + + + + selectNoneCheatsInDatabase: + + + + 5123 + + + + cheatWindowController + + + + 5143 + + + + emuWindowController + + + + 5144 + + + + cheatDatabaseController + + + + 5145 + + + + cheatListWindow + + + + 5146 + + + + cheatWindowController + + + + 5147 + + + + emuWindowController + + + + 5148 + + + + prefWindowController + + + + 5149 + + + + cdsCoreController + + + + 5150 + + + + value: selection.AdvansceneDatabaseName + + + + + + value: selection.AdvansceneDatabaseName + value + selection.AdvansceneDatabaseName + 2 + + + 5182 + + + + chooseAdvansceneDatabase: + + + + 5183 + + + + value: selection.Input_Debug + + + + + + value: selection.Input_Debug + value + selection.Input_Debug + 2 + + + 5317 + + + + inputButtonSet: + + + + 5318 + + + + changeRotationRelative: + + + + 5425 + + + + changeRotationRelative: + + + + 5426 + + + + delegate + + + + 5474 + + + + value: selection.nickname + + + + + + value: selection.nickname + value + selection.nickname + 2 + + + 5478 + + + + value: selection.message + + + + + + value: selection.message + value + selection.message + 2 + + + 5479 + + + + selectedTag: selection.favoriteColor + + + + + + selectedTag: selection.favoriteColor + selectedTag + selection.favoriteColor + 2 + + + 5480 + + + + value: selection.birthday + + + + + + value: selection.birthday + value + selection.birthday + 2 + + + 5481 + + + + selectedTag: selection.language + + + + + + selectedTag: selection.language + selectedTag + selection.language + 2 + + + 5482 + + + + value: selection.value + + + + + + value: selection.value + value + selection.value + 2 + + + 5484 + + + + selectedTag: selection.bytes + + + + + + selectedTag: selection.bytes + selectedTag + selection.bytes + 2 + + + 5485 + + + + value: selection.code + + + + + + value: selection.code + value + selection.code + 2 + + + 5486 + + + + selectedTag: selection.cheatType + + + + + + selectedTag: selection.cheatType + selectedTag + selection.cheatType + 2 + + + 5487 + + + + value: selection.description + + + + + + value: selection.description + value + selection.description + 2 + + + 5488 + + + + value: selection.enabled + + + + + + value: selection.enabled + value + selection.enabled + 2 + + + 5489 + + + + enabled: selection.value + + + + + + enabled: selection.value + enabled + selection.value + + NSValueTransformerName + NSIsNotNil + + 2 + + + 5490 + + + + value: arrangedObjects.enabled + + + + + + value: arrangedObjects.enabled + value + arrangedObjects.enabled + 2 + + + 5493 + + + + value: arrangedObjects.cheatTypeIcon + + + + + + value: arrangedObjects.cheatTypeIcon + value + arrangedObjects.cheatTypeIcon + 2 + + + 5494 + + + + value: arrangedObjects.description + + + + + + value: arrangedObjects.description + value + arrangedObjects.description + 2 + + + 5495 + + + + value: arrangedObjects.willAdd + + + + + + value: arrangedObjects.willAdd + value + arrangedObjects.willAdd + 2 + + + 5497 + + + + value: arrangedObjects.description + + + + + + value: arrangedObjects.description + value + arrangedObjects.description + + NSConditionallySetsEditable + + + 2 + + + 5498 + + + + value: selection.memAddressSixDigitString + + + + + + value: selection.memAddressSixDigitString + value + selection.memAddressSixDigitString + 2 + + + 5499 + + + + exportRomSave: + + + + 5500 + + + + importRomSave: + + + + 5501 + + + + openEmuSaveState: + + + + 5502 + + + + saveEmuSaveState: + + + + 5503 + + + + saveEmuSaveStateAs: + + + + 5504 + + + + revertEmuSaveState: + + + + 5505 + + + + changeRomSaveType: + + + + 5506 + + + + changeRomSaveType: + + + + 5507 + + + + changeRomSaveType: + + + + 5508 + + + + changeRomSaveType: + + + + 5509 + + + + changeRomSaveType: + + + + 5510 + + + + changeRomSaveType: + + + + 5511 + + + + changeRomSaveType: + + + + 5512 + + + + changeRomSaveType: + + + + 5513 + + + + changeRomSaveType: + + + + 5514 + + + + changeRomSaveType: + + + + 5515 + + + + changeRomSaveType: + + + + 5516 + + + + changeRomSaveType: + + + + 5517 + + + + changeRomSaveType: + + + + 5518 + + + + changeRomSaveType: + + + + 5519 + + + + changeAudioEngine: + + + + 5520 + + + + changeAudioEngine: + + + + 5521 + + + + value: selection.volume + + + + + + value: selection.volume + value + selection.volume + 2 + + + 5522 + + + + value: selection.volume + + + + + + value: selection.volume + value + selection.volume + 2 + + + 5524 + + + + value: selection.volumeIconImage + + + + + + value: selection.volumeIconImage + value + selection.volumeIconImage + 2 + + + 5525 + + + + value: selection.volumeIconImage + + + + + + value: selection.volumeIconImage + value + selection.volumeIconImage + 2 + + + 5526 + + + + value: selection.volumeIconImage + + + + + + value: selection.volumeIconImage + value + selection.volumeIconImage + 2 + + + 5527 + + + + value: selection.status + + + + + + value: selection.status + value + selection.status + + + + + + 2 + + + 5528 + + + + animate: selection.isWorking + + + + + + animate: selection.isWorking + animate + selection.isWorking + + NSRaisesForNotApplicableKeys + + + 2 + + + 5529 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5530 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5531 + + + + enabled2: selection.isSupportedCheatType + + + + + + enabled2: selection.isSupportedCheatType + enabled2 + selection.isSupportedCheatType + + + + + + + + 2 + + + 5532 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5533 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5534 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5535 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5538 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5539 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5541 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5543 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5545 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5546 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5549 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5550 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5552 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5555 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5558 + + + + enabled: selection.isRomLoaded + + + + + + enabled: selection.isRomLoaded + enabled + selection.isRomLoaded + 2 + + + 5561 + + + + displayView + + + + 5565 + + + + value: arrangedObjects.addressString + + + + + + value: arrangedObjects.addressString + value + arrangedObjects.addressString + 2 + + + 5566 + + + + value: arrangedObjects.value + + + + + + value: arrangedObjects.value + value + arrangedObjects.value + 2 + + + 5567 + + + + value: selection.rotation + + + + + + value: selection.rotation + value + selection.rotation + + + + + + + 2 + + + 5568 + + + + value: selection.rotation + + + + + + value: selection.rotation + value + selection.rotation + + + + + + 2 + + + 5569 + + + + value: selection.useBilinearOutput + + + + + + value: selection.useBilinearOutput + value + selection.useBilinearOutput + 2 + + + 5570 + + + + selectedTag: selection.videoFilterType + + + + + + selectedTag: selection.videoFilterType + selectedTag + selection.videoFilterType + 2 + + + 5579 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + + + + + + 2 + + + 5580 + + + + value: selection.makerCode + + + + + + value: selection.makerCode + value + selection.makerCode + + + + + 2 + + + 5583 + + + + value: selection.romSize + + + + + + value: selection.romSize + value + selection.romSize + + + + + 2 + + + 5584 + + + + value: selection.bannerJapanese + + + + + + value: selection.bannerJapanese + value + selection.bannerJapanese + + + + + 2 + + + 5585 + + + + value: selection.bannerEnglish + + + + + + value: selection.bannerEnglish + value + selection.bannerEnglish + + + + + 2 + + + 5586 + + + + value: selection.bannerFrench + + + + + + value: selection.bannerFrench + value + selection.bannerFrench + + + + + 2 + + + 5587 + + + + value: selection.bannerGerman + + + + + + value: selection.bannerGerman + value + selection.bannerGerman + + + + + 2 + + + 5588 + + + + value: selection.bannerItalian + + + + + + value: selection.bannerItalian + value + selection.bannerItalian + + + + + 2 + + + 5589 + + + + value: selection.bannerSpanish + + + + + + value: selection.bannerSpanish + value + selection.bannerSpanish + + + + + 2 + + + 5590 + + + + value: selection.arm9BinaryOffset + + + + + + value: selection.arm9BinaryOffset + value + selection.arm9BinaryOffset + + + + + 2 + + + 5591 + + + + value: selection.arm9BinaryEntryAddress + + + + + + value: selection.arm9BinaryEntryAddress + value + selection.arm9BinaryEntryAddress + + + + + 2 + + + 5592 + + + + value: selection.arm9BinaryStartAddress + + + + + + value: selection.arm9BinaryStartAddress + value + selection.arm9BinaryStartAddress + + + + + 2 + + + 5593 + + + + value: selection.arm9BinarySize + + + + + + value: selection.arm9BinarySize + value + selection.arm9BinarySize + + + + + 2 + + + 5594 + + + + value: selection.arm7BinaryOffset + + + + + + value: selection.arm7BinaryOffset + value + selection.arm7BinaryOffset + + + + + 2 + + + 5595 + + + + value: selection.arm7BinaryEntryAddress + + + + + + value: selection.arm7BinaryEntryAddress + value + selection.arm7BinaryEntryAddress + + + + + 2 + + + 5596 + + + + value: selection.arm7BinaryStartAddress + + + + + + value: selection.arm7BinaryStartAddress + value + selection.arm7BinaryStartAddress + + + + + 2 + + + 5597 + + + + value: selection.arm7BinarySize + + + + + + value: selection.arm7BinarySize + value + selection.arm7BinarySize + + + + + 2 + + + 5598 + + + + value: selection.fntOffset + + + + + + value: selection.fntOffset + value + selection.fntOffset + + + + + 2 + + + 5599 + + + + value: selection.fntTableSize + + + + + + value: selection.fntTableSize + value + selection.fntTableSize + + + + + 2 + + + 5600 + + + + value: selection.fatOffset + + + + + + value: selection.fatOffset + value + selection.fatOffset + + + + + 2 + + + 5601 + + + + value: selection.fatSize + + + + + + value: selection.fatSize + value + selection.fatSize + + + + + 2 + + + 5602 + + + + value: selection.iconOffset + + + + + + value: selection.iconOffset + value + selection.iconOffset + + + + + 2 + + + 5603 + + + + value: selection.romSize + + + + + + value: selection.romSize + value + selection.romSize + + + + + 2 + + + 5604 + + + + value: selection.iconImage + + + + + + value: selection.iconImage + value + selection.iconImage + 2 + + + 5605 + + + + value: selection.romInternalName + + + + + + value: selection.romInternalName + value + selection.romInternalName + 2 + + + 5606 + + + + value: selection.romSerial + + + + + + value: selection.romSerial + value + selection.romSerial + 2 + + + 5607 + + + + selectedTag: selection.audioOutputEngine + + + + + + selectedTag: selection.audioOutputEngine + selectedTag + selection.audioOutputEngine + 2 + + + 5608 + + + + value: selection.spuAdvancedLogic + + + + + + value: selection.spuAdvancedLogic + value + selection.spuAdvancedLogic + 2 + + + 5609 + + + + selectedTag: selection.spuInterpolationMode + + + + + + selectedTag: selection.spuInterpolationMode + selectedTag + selection.spuInterpolationMode + 2 + + + 5610 + + + + selectedTag: selection.spuSyncMode + + + + + + selectedTag: selection.spuSyncMode + selectedTag + selection.spuSyncMode + 2 + + + 5611 + + + + selectedTag: selection.spuSyncMethod + + + + + + selectedTag: selection.spuSyncMethod + selectedTag + selection.spuSyncMethod + 2 + + + 5612 + + + + enabled2: selection.hasSelection + + + + + + enabled2: selection.hasSelection + enabled2 + selection.hasSelection + + + + + + + + 2 + + + 5613 + + + + enabled2: selection.hasSelection + + + + + + enabled2: selection.hasSelection + enabled2 + selection.hasSelection + + + + + + + + 2 + + + 5616 + + + + enabled3: selection.isSupportedCheatType + + + + + + enabled3: selection.isSupportedCheatType + enabled3 + selection.isSupportedCheatType + + + + + + + + 2 + + + 5617 + + + + value: selection.cheatDBTitle + + + + + + value: selection.cheatDBTitle + value + selection.cheatDBTitle + 2 + + + 5618 + + + + value: selection.cheatDBDate + + + + + + value: selection.cheatDBDate + value + selection.cheatDBDate + 2 + + + 5619 + + + + value: selection.cheatDBItemCount + + + + + + value: selection.cheatDBItemCount + value + selection.cheatDBItemCount + 2 + + + 5620 + + + + selectedTag: selection.cheatSearchStyle + + + + + + selectedTag: selection.cheatSearchStyle + selectedTag + selection.cheatSearchStyle + 2 + + + 5621 + + + + value: selection.cheatSearchAddressCount + + + + + + value: selection.cheatSearchAddressCount + value + selection.cheatSearchAddressCount + 2 + + + 5622 + + + + value: selection.cheatSearchSearchValue + + + + + + value: selection.cheatSearchSearchValue + value + selection.cheatSearchSearchValue + 2 + + + 5623 + + + + enabled2: selection.cheatSearchSearchValue + + + + + + enabled2: selection.cheatSearchSearchValue + enabled2 + selection.cheatSearchSearchValue + + + + + + NSIsNotNil + + + 2 + + + 5624 + + + + animate: selection.isRunningSearch + + + + + + animate: selection.isRunningSearch + animate + selection.isRunningSearch + 2 + + + 5626 + + + + enabled: selection.isRunningSearch + + + + + + enabled: selection.isRunningSearch + enabled + selection.isRunningSearch + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 5627 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + + + + + NSNegateBoolean + + + 2 + + + 5630 + + + + enabled2: selection.isRunningSearch + + + + + + enabled2: selection.isRunningSearch + enabled2 + selection.isRunningSearch + + + + + + NSNegateBoolean + + + 2 + + + 5631 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + + + + + + + 2 + + + 5636 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + + + + + NSNegateBoolean + + + 2 + + + 5637 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + + + + + + + 2 + + + 5638 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + + + + + NSNegateBoolean + + + 2 + + + 5639 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + + + + + + + 2 + + + 5640 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + + + + + NSNegateBoolean + + + 2 + + + 5641 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + + + + + + + 2 + + + 5642 + + + + enabled3: selection.isRunningSearch + + + + + + enabled3: selection.isRunningSearch + enabled3 + selection.isRunningSearch + + + + + + NSNegateBoolean + + + 2 + + + 5643 + + + + enabled2: selection.isSearchStarted + + + + + + enabled2: selection.isSearchStarted + enabled2 + selection.isSearchStarted + + + + + + + + 2 + + + 5644 + + + + enabled3: selection.isRomLoaded + + + + + + enabled3: selection.isRomLoaded + enabled3 + selection.isRomLoaded + + + + + + + + 2 + + + 5645 + + + + value: values.Advanscene_AutoDetectRomSaveType + + + + + + value: values.Advanscene_AutoDetectRomSaveType + value + values.Advanscene_AutoDetectRomSaveType + 2 + + + 5647 + + + + toggleStatusBar: + + + + 5650 + + + + toggleKeepMinDisplaySizeAtNormal: + + + + 5704 + + + + saveScreenshotAs: + + + + 5705 + + + + saveScreenshotPanelAccessoryView + + + + 5706 + + + + valuePath: selection.readMePath + + + + + + valuePath: selection.readMePath + valuePath + selection.readMePath + 2 + + + 5714 + + + + valuePath: selection.licensePath + + + + + + valuePath: selection.licensePath + valuePath + selection.licensePath + 2 + + + 5715 + + + + valuePath: selection.authorsPath + + + + + + valuePath: selection.authorsPath + valuePath + selection.authorsPath + 2 + + + 5716 + + + + valuePath: selection.changeLogPath + + + + + + valuePath: selection.changeLogPath + valuePath + selection.changeLogPath + 2 + + + 5717 + + + + value: selection.versionString + + + + + + value: selection.versionString + value + selection.versionString + 2 + + + 5718 + + + + value: selection.dateString + + + + + + value: selection.dateString + value + selection.dateString + 2 + + + 5719 + + + + makeKeyAndOrderFront: + + + + 5720 + + + + aboutWindowController + + + + 5721 + + + + value: selection.romSerial + + + + + + value: selection.romSerial + value + selection.romSerial + + + + + 2 + + + 5722 + + + + value: selection.romInternalName + + + + + + value: selection.romInternalName + value + selection.romInternalName + + + + + 2 + + + 5723 + + + + value: values.FirmwareConfig_Nickname + + + + + + value: values.FirmwareConfig_Nickname + value + values.FirmwareConfig_Nickname + 2 + + + 5729 + + + + value: values.FirmwareConfig_Message + + + + + + value: values.FirmwareConfig_Message + value + values.FirmwareConfig_Message + 2 + + + 5730 + + + + selectedTag: values.FirmwareConfig_FavoriteColor + + + + + + selectedTag: values.FirmwareConfig_FavoriteColor + selectedTag + values.FirmwareConfig_FavoriteColor + 2 + + + 5731 + + + + value: values.FirmwareConfig_Birthday + + + + + + value: values.FirmwareConfig_Birthday + value + values.FirmwareConfig_Birthday + 2 + + + 5732 + + + + selectedTag: values.FirmwareConfig_Language + + + + + + selectedTag: values.FirmwareConfig_Language + selectedTag + values.FirmwareConfig_Language + 2 + + + 5733 + + + + selectDisplayMode: + + + + 5735 + + + + selectDisplayMode: + + + + 5736 + + + + selectDisplayMode: + + + + 5737 + + + + value: selection.Input_Start + + + + + + value: selection.Input_Start + value + selection.Input_Start + 2 + + + 5878 + + + + value: selection.Input_B + + + + + + value: selection.Input_B + value + selection.Input_B + 2 + + + 5880 + + + + value: selection.Input_Debug + + + + + + value: selection.Input_Debug + value + selection.Input_Debug + 2 + + + 5881 + + + + value: selection.Input_Pause + + + + + + value: selection.Input_Pause + value + selection.Input_Pause + 2 + + + 5882 + + + + value: selection.Input_Up + + + + + + value: selection.Input_Up + value + selection.Input_Up + 2 + + + 5883 + + + + value: selection.Input_HUD + + + + + + value: selection.Input_HUD + value + selection.Input_HUD + 2 + + + 5884 + + + + value: selection.Input_A + + + + + + value: selection.Input_A + value + selection.Input_A + 2 + + + 5885 + + + + value: selection.Input_SpeedDouble + + + + + + value: selection.Input_SpeedDouble + value + selection.Input_SpeedDouble + 2 + + + 5886 + + + + value: selection.Input_Select + + + + + + value: selection.Input_Select + value + selection.Input_Select + 2 + + + 5887 + + + + enabled: arrangedObjects.pointY + + + + + + enabled: arrangedObjects.pointY + enabled + arrangedObjects.pointY + 2 + + + 5888 + + + + value: selection.Input_Microphone + + + + + + value: selection.Input_Microphone + value + selection.Input_Microphone + 2 + + + 5889 + + + + value: selection.Input_Y + + + + + + value: selection.Input_Y + value + selection.Input_Y + 2 + + + 5890 + + + + enabled: arrangedObjects.elementName + + + + + + enabled: arrangedObjects.elementName + enabled + arrangedObjects.elementName + 2 + + + 5891 + + + + value: selection.Input_Execute + + + + + + value: selection.Input_Execute + value + selection.Input_Execute + 2 + + + 5892 + + + + value: selection.Input_Lid + + + + + + value: selection.Input_Lid + value + selection.Input_Lid + 2 + + + 5893 + + + + enabled: arrangedObjects.deviceName + + + + + + enabled: arrangedObjects.deviceName + enabled + arrangedObjects.deviceName + 2 + + + 5894 + + + + value: selection.Input_X + + + + + + value: selection.Input_X + value + selection.Input_X + 2 + + + 5895 + + + + value: selection.Input_Reset + + + + + + value: selection.Input_Reset + value + selection.Input_Reset + 2 + + + 5896 + + + + value: selection.Input_R + + + + + + value: selection.Input_R + value + selection.Input_R + 2 + + + 5897 + + + + enabled: arrangedObjects.useDeviceCoordinates + + + + + + enabled: arrangedObjects.useDeviceCoordinates + enabled + arrangedObjects.useDeviceCoordinates + 2 + + + 5898 + + + + value: selection.Input_SpeedHalf + + + + + + value: selection.Input_SpeedHalf + value + selection.Input_SpeedHalf + 2 + + + 5899 + + + + value: selection.Input_L + + + + + + value: selection.Input_L + value + selection.Input_L + 2 + + + 5900 + + + + value: selection.Input_Left + + + + + + value: selection.Input_Left + value + selection.Input_Left + 2 + + + 5901 + + + + enabled: arrangedObjects.pointX + + + + + + enabled: arrangedObjects.pointX + enabled + arrangedObjects.pointX + 2 + + + 5902 + + + + value: selection.Input_Down + + + + + + value: selection.Input_Down + value + selection.Input_Down + 2 + + + 5903 + + + + value: selection.Input_Right + + + + + + value: selection.Input_Right + value + selection.Input_Right + 2 + + + 5904 + + + + selectSoundInputMode: + + + + 5905 + + + + inputButtonSet: + + + + 5906 + + + + inputButtonSet: + + + + 5907 + + + + inputButtonSet: + + + + 5908 + + + + inputButtonSet: + + + + 5909 + + + + inputButtonSet: + + + + 5910 + + + + inputButtonSet: + + + + 5911 + + + + inputButtonSet: + + + + 5912 + + + + inputButtonSet: + + + + 5913 + + + + inputButtonSet: + + + + 5914 + + + + inputButtonSet: + + + + 5915 + + + + add: + + + + 5916 + + + + inputButtonSet: + + + + 5917 + + + + selectSoundInputMode: + + + + 5918 + + + + selectSoundInputMode: + + + + 5919 + + + + inputButtonSet: + + + + 5920 + + + + inputButtonSet: + + + + 5921 + + + + inputButtonSet: + + + + 5922 + + + + inputButtonSet: + + + + 5923 + + + + remove: + + + + 5924 + + + + inputButtonSet: + + + + 5925 + + + + inputButtonSet: + + + + 5926 + + + + inputButtonSet: + + + + 5927 + + + + inputButtonSet: + + + + 5928 + + + + inputButtonSet: + + + + 5929 + + + + inputButtonSet: + + + + 5930 + + + + inputButtonSet: + + + + 5931 + + + + selectSoundInputMode: + + + + 5932 + + + + selectScreenshotFileFormat: + + + + 5951 + + + + selectScreenshotFileFormat: + + + + 5952 + + + + selectScreenshotFileFormat: + + + + 5953 + + + + selectScreenshotFileFormat: + + + + 5954 + + + + selectScreenshotFileFormat: + + + + 5955 + + + + selectScreenshotFileFormat: + + + + 5956 + + + + selectExportRomSaveFormat: + + + + 5957 + + + + selectExportRomSaveFormat: + + + + 5958 + + + + exportRomSavePanelAccessoryView + + + + 5959 + + + + value: selection.volume + + + + + + value: selection.volume + value + selection.volume + + + + + + 2 + + + 5962 + + + + selectExportRomSaveFormat: + + + + 5964 + + + + value: selection.isSpeedLimitEnabled + + + + + + value: selection.isSpeedLimitEnabled + value + selection.isSpeedLimitEnabled + + + + + + + 2 + + + 5971 + + + + selectedTag: values.DisplayView_Mode + + + + + + selectedTag: values.DisplayView_Mode + selectedTag + values.DisplayView_Mode + 2 + + + 5972 + + + + selectedTag: values.DisplayView_Size + + + + + + selectedTag: values.DisplayView_Size + selectedTag + values.DisplayView_Size + 2 + + + 5973 + + + + value: values.DisplayView_Rotation + + + + + + value: values.DisplayView_Rotation + value + values.DisplayView_Rotation + 2 + + + 5974 + + + + value: values.DisplayView_UseBilinearOutput + + + + + + value: values.DisplayView_UseBilinearOutput + value + values.DisplayView_UseBilinearOutput + 2 + + + 5975 + + + + selectedTag: values.DisplayView_VideoFilter + + + + + + selectedTag: values.DisplayView_VideoFilter + selectedTag + values.DisplayView_VideoFilter + 2 + + + 5976 + + + + selectedTag: values.DisplayViewCombo_MainScreenFirst + + + + + + selectedTag: values.DisplayViewCombo_MainScreenFirst + selectedTag + values.DisplayViewCombo_MainScreenFirst + 2 + + + 5977 + + + + selectedTag: values.DisplayViewCombo_Orientation + + + + + + selectedTag: values.DisplayViewCombo_Orientation + selectedTag + values.DisplayViewCombo_Orientation + 2 + + + 5978 + + + + value: values.DisplayViewCombo_Gap + + + + + + value: values.DisplayViewCombo_Gap + value + values.DisplayViewCombo_Gap + 2 + + + 5979 + + + + hidden: selection.isShowingStatusBar + + + + + + hidden: selection.isShowingStatusBar + hidden + selection.isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 5981 + + + + hidden: selection.isShowingStatusBar + + + + + + hidden: selection.isShowingStatusBar + hidden + selection.isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 5983 + + + + hidden: selection.isShowingStatusBar + + + + + + hidden: selection.isShowingStatusBar + hidden + selection.isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 5985 + + + + hidden: selection.isShowingStatusBar + + + + + + hidden: selection.isShowingStatusBar + hidden + selection.isShowingStatusBar + + NSValueTransformerName + NSNegateBoolean + + 2 + + + 5987 + + + + selectedTag: values.Sound_AudioOutputEngine + + + + + + selectedTag: values.Sound_AudioOutputEngine + selectedTag + values.Sound_AudioOutputEngine + 2 + + + 5989 + + + + value: values.Sound_Volume + + + + + + value: values.Sound_Volume + value + values.Sound_Volume + 2 + + + 5990 + + + + value: values.Sound_Volume + + + + + + value: values.Sound_Volume + value + values.Sound_Volume + + + + + 2 + + + 5991 + + + + enabled: values.Advanscene_DatabasePath + + + + + + enabled: values.Advanscene_DatabasePath + enabled + values.Advanscene_DatabasePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 5992 + + + + value: values.Emulation_AdvancedBusLevelTiming + + + + + + value: values.Emulation_AdvancedBusLevelTiming + value + values.Emulation_AdvancedBusLevelTiming + 2 + + + 5993 + + + + value: values.Emulation_BIOSEmulateSWI + + + + + + value: values.Emulation_BIOSEmulateSWI + value + values.Emulation_BIOSEmulateSWI + 2 + + + 5994 + + + + value: values.Emulation_BIOSPatchDelayLoopSWI + + + + + + value: values.Emulation_BIOSPatchDelayLoopSWI + value + values.Emulation_BIOSPatchDelayLoopSWI + 2 + + + 5995 + + + + value: values.Emulation_EmulateEnsata + + + + + + value: values.Emulation_EmulateEnsata + value + values.Emulation_EmulateEnsata + 2 + + + 5996 + + + + value: values.Emulation_UseDebugConsole + + + + + + value: values.Emulation_UseDebugConsole + value + values.Emulation_UseDebugConsole + 2 + + + 5998 + + + + value: values.Emulation_FirmwareBoot + + + + + + value: values.Emulation_FirmwareBoot + value + values.Emulation_FirmwareBoot + 2 + + + 5999 + + + + value: values.Emulation_UseExternalBIOSImages + + + + + + value: values.Emulation_UseExternalBIOSImages + value + values.Emulation_UseExternalBIOSImages + 2 + + + 6000 + + + + enabled: values.Emulation_UseExternalBIOSImages + + + + + + enabled: values.Emulation_UseExternalBIOSImages + enabled + values.Emulation_UseExternalBIOSImages + + NSRaisesForNotApplicableKeys + + + 2 + + + 6001 + + + + enabled: values.Emulation_UseExternalBIOSImages + + + + + + enabled: values.Emulation_UseExternalBIOSImages + enabled + values.Emulation_UseExternalBIOSImages + + NSRaisesForNotApplicableKeys + + + 2 + + + 6004 + + + + value: values.Emulation_UseExternalFirmwareImage + + + + + + value: values.Emulation_UseExternalFirmwareImage + value + values.Emulation_UseExternalFirmwareImage + 2 + + + 6011 + + + + enabled: values.Emulation_UseExternalFirmwareImage + + + + + + enabled: values.Emulation_UseExternalFirmwareImage + enabled + values.Emulation_UseExternalFirmwareImage + + NSRaisesForNotApplicableKeys + + + 2 + + + 6012 + + + + enabled: values.Emulation_UseExternalFirmwareImage + + + + + + enabled: values.Emulation_UseExternalFirmwareImage + enabled + values.Emulation_UseExternalFirmwareImage + 2 + + + 6013 + + + + enabled2: values.Emulation_UseExternalBIOSImages + + + + + + enabled2: values.Emulation_UseExternalBIOSImages + enabled2 + values.Emulation_UseExternalBIOSImages + + + + + + + + 2 + + + 6014 + + + + enabled: values.BIOS_ARM9ImagePath + + + + + + enabled: values.BIOS_ARM9ImagePath + enabled + values.BIOS_ARM9ImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6018 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6020 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6022 + + + + enabled3: values.BIOS_ARM9ImagePath + + + + + + enabled3: values.BIOS_ARM9ImagePath + enabled3 + values.BIOS_ARM9ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6024 + + + + enabled2: values.BIOS_ARM7ImagePath + + + + + + enabled2: values.BIOS_ARM7ImagePath + enabled2 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6027 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6028 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6029 + + + + enabled4: values.BIOS_ARM7ImagePath + + + + + + enabled4: values.BIOS_ARM7ImagePath + enabled4 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6030 + + + + enabled: values.Emulation_FirmwareImagePath + + + + + + enabled: values.Emulation_FirmwareImagePath + enabled + values.Emulation_FirmwareImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6034 + + + + enabled5: values.Emulation_FirmwareImagePath + + + + + + enabled5: values.Emulation_FirmwareImagePath + enabled5 + values.Emulation_FirmwareImagePath + + + + + + NSIsNotNil + + + 2 + + + 6037 + + + + enabled: selection.emuFlagUseExternalFirmware + + + + + + enabled: selection.emuFlagUseExternalFirmware + enabled + selection.emuFlagUseExternalFirmware + 2 + + + 6041 + + + + enabled2: selection.emuFlagUseExternalBios + + + + + + enabled2: selection.emuFlagUseExternalBios + enabled2 + selection.emuFlagUseExternalBios + + + + + + + + 2 + + + 6042 + + + + enabled: values.Emulation_FirmwareImagePath + + + + + + enabled: values.Emulation_FirmwareImagePath + enabled + values.Emulation_FirmwareImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6048 + + + + enabled3: values.BIOS_ARM9ImagePath + + + + + + enabled3: values.BIOS_ARM9ImagePath + enabled3 + values.BIOS_ARM9ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6058 + + + + enabled4: values.BIOS_ARM7ImagePath + + + + + + enabled4: values.BIOS_ARM7ImagePath + enabled4 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6067 + + + + enabled5: values.Emulation_FirmwareImagePath + + + + + + enabled5: values.Emulation_FirmwareImagePath + enabled5 + values.Emulation_FirmwareImagePath + + + + + + NSIsNotNil + + + 2 + + + 6069 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6076 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6081 + + + + enabled2: values.BIOS_ARM9ImagePath + + + + + + enabled2: values.BIOS_ARM9ImagePath + enabled2 + values.BIOS_ARM9ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6088 + + + + enabled3: values.BIOS_ARM7ImagePath + + + + + + enabled3: values.BIOS_ARM7ImagePath + enabled3 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6093 + + + + enabled: values.BIOS_ARM9ImagePath + + + + + + enabled: values.BIOS_ARM9ImagePath + enabled + values.BIOS_ARM9ImagePath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6100 + + + + enabled2: values.BIOS_ARM7ImagePath + + + + + + enabled2: values.BIOS_ARM7ImagePath + enabled2 + values.BIOS_ARM7ImagePath + + + + + + NSIsNotNil + + + 2 + + + 6105 + + + + enabled2: values.R4Cheat_DatabasePath + + + + + + enabled2: values.R4Cheat_DatabasePath + enabled2 + values.R4Cheat_DatabasePath + + + + + + NSIsNotNil + + + 2 + + + 6106 + + + + selectedTag: values.Input_AudioInputMode + + + + + + selectedTag: values.Input_AudioInputMode + selectedTag + values.Input_AudioInputMode + 2 + + + 6107 + + + + selectedTag: values.Input_AudioInputMode + + + + + + selectedTag: values.Input_AudioInputMode + selectedTag + values.Input_AudioInputMode + 2 + + + 6108 + + + + selectedTag: values.Render3D_RenderingEngine + + + + + + selectedTag: values.Render3D_RenderingEngine + selectedTag + values.Render3D_RenderingEngine + 2 + + + 6109 + + + + selectedTag: selection.render3DRenderingEngine + + + + + + selectedTag: selection.render3DRenderingEngine + selectedTag + selection.render3DRenderingEngine + 2 + + + 6111 + + + + value: selection.render3DLineHack + + + + + + value: selection.render3DLineHack + value + selection.render3DLineHack + 2 + + + 6112 + + + + value: selection.render3DHighPrecisionColorInterpolation + + + + + + value: selection.render3DHighPrecisionColorInterpolation + value + selection.render3DHighPrecisionColorInterpolation + 2 + + + 6113 + + + + value: selection.render3DEdgeMarking + + + + + + value: selection.render3DEdgeMarking + value + selection.render3DEdgeMarking + 2 + + + 6114 + + + + value: selection.render3DFog + + + + + + value: selection.render3DFog + value + selection.render3DFog + 2 + + + 6115 + + + + value: selection.render3DTextures + + + + + + value: selection.render3DTextures + value + selection.render3DTextures + 2 + + + 6116 + + + + value: selection.render3DDepthComparisonThreshold + + + + + + value: selection.render3DDepthComparisonThreshold + value + selection.render3DDepthComparisonThreshold + 2 + + + 6117 + + + + selectedTag: selection.render3DThreads + + + + + + selectedTag: selection.render3DThreads + selectedTag + selection.render3DThreads + 2 + + + 6118 + + + + value: values.General_ExecuteROMOnLoad + + + + + + value: values.General_ExecuteROMOnLoad + value + values.General_ExecuteROMOnLoad + 2 + + + 6119 + + + + value: values.General_AutoloadROMOnLaunch + + + + + + value: values.General_AutoloadROMOnLaunch + value + values.General_AutoloadROMOnLaunch + 2 + + + 6120 + + + + selectedTag: values.General_AutoloadROMOption + + + + + + selectedTag: values.General_AutoloadROMOption + selectedTag + values.General_AutoloadROMOption + 2 + + + 6121 + + + + enabled: values.General_AutoloadROMOnLaunch + + + + + + enabled: values.General_AutoloadROMOnLaunch + enabled + values.General_AutoloadROMOnLaunch + 2 + + + 6122 + + + + value: values.General_DoNotAskMigrate + + + + + + value: values.General_DoNotAskMigrate + value + values.General_DoNotAskMigrate + 2 + + + 6123 + + + + value: values.General_DoNotAskMigrate + + + + + + value: values.General_DoNotAskMigrate + value + values.General_DoNotAskMigrate + 2 + + + 6124 + + + + enabled: values.General_AutoloadROMSelectedPath + + + + + + enabled: values.General_AutoloadROMSelectedPath + enabled + values.General_AutoloadROMSelectedPath + + NSValueTransformerName + NSIsNotNil + + 2 + + + 6125 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + + + + + + + + + + + + + 19 + + + + + + + + 56 + + + + + + + + 83 + + + + + + + + 81 + + + + + + + + + + + + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 72 + + + + + 124 + + + + + + + + 79 + + + + + 112 + + + + + 74 + + + + + 125 + + + + + + + + 126 + + + + + 57 + + + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 295 + + + + + + + + 296 + + + + + + + + + + + + + + + + + + + + + 297 + + + + + 298 + + + + + 371 + + + + + + + + + 372 + + + + + + + + + + + + 494 + + + App Delegate + + + 534 + + + + + 535 + + + + + 538 + + + + + + + + 539 + + + + + + 541 + + + + + + + + 542 + + + + + + 575 + + + + + + + + 576 + + + + + + + + + + + + + + + + + + + 578 + + + + + 594 + + + + + 596 + + + + + 607 + + + + + + + + 627 + + + + + + + + + 628 + + + + + + 629 + + + + + + + + + + + + + + 634 + + + + + 635 + + + + + 650 + + + + + 651 + + + + + + + + 652 + + + + + 661 + + + + + + + + 662 + + + + + 714 + + + + + + + + + + + + + + + + Cheat Search Drawer Content View + + + 715 + + + Cheat Search Drawer + + + 766 + + + Emulation Window Delegate + + + 783 + + + + + + + + 784 + + + + + + + + + + + + + + + + 785 + + + + + 787 + + + + + + + + 788 + + + + + + + + + + + + 789 + + + + + 794 + + + + + + + + 795 + + + + + + + + + + + + + + + + + 796 + + + + + + + + 797 + + + + + + + + + + 823 + + + + + + + + 824 + + + + + 825 + + + + + + + + 826 + + + + + 827 + + + + + + + + 828 + + + + + 829 + + + + + + + + 830 + + + + + 831 + + + + + + + + 832 + + + + + 833 + + + + + + + + 834 + + + + + 835 + + + + + + + + 836 + + + + + 843 + + + + + + + + 844 + + + + + 845 + + + + + + + + 846 + + + + + 850 + + + + + 854 + + + + + 855 + + + + + 861 + + + + + + + + 862 + + + + + + + + + + + + + 865 + + + + + + + + 866 + + + + + 872 + + + + + + + + + + + + + + + 875 + + + + + + + + + + + + + + + + + + + 876 + + + + + + + + + + + + + + + + + + + + + + + 877 + + + + + + + + + + + + + + + 878 + + + + + + + + + + + 879 + + + + + + + + 880 + + + + + 883 + + + + + + + + 884 + + + + + 885 + + + + + + + + 886 + + + + + 887 + + + + + + + + 888 + + + + + 889 + + + + + + + + 890 + + + + + 897 + + + + + + + + 898 + + + + + 899 + + + + + + + + 900 + + + + + 901 + + + + + + + + 902 + + + + + 903 + + + + + + + + 904 + + + + + 905 + + + + + + + + 906 + + + + + 907 + + + + + + + + 908 + + + + + 909 + + + + + + + + 910 + + + + + 911 + + + + + + + + 912 + + + + + 913 + + + + + + + + 914 + + + + + + 924 + + + + + + + + 925 + + + + + 926 + + + + + + + + 927 + + + + + 928 + + + + + + + + 929 + + + + + 930 + + + + + + + + 931 + + + + + 932 + + + + + + + + 933 + + + + + 934 + + + + + + + + 935 + + + + + 936 + + + + + + + + 937 + + + + + 938 + + + + + + + + 939 + + + + + 940 + + + + + + + + 941 + + + + + 942 + + + + + + + + 943 + + + + + 944 + + + + + + + + 945 + + + + + 946 + + + + + + + + 947 + + + + + 948 + + + + + + + + 951 + + + + + 949 + + + + + + + + 950 + + + + + 952 + + + + + + + + 953 + + + + + + + + 954 + + + + + 955 + + + + + 956 + + + + + + + + 957 + + + + + + + + 958 + + + + + 959 + + + + + 960 + + + + + + + + 961 + + + + + + + + 962 + + + + + 963 + + + + + 964 + + + + + + + + 967 + + + + + 965 + + + + + + + + 966 + + + + + 968 + + + + + + + + 969 + + + + + + + + 970 + + + + + 971 + + + + + 983 + + + + + + + + 984 + + + + + + + + + + + + 987 + + + + + 989 + + + + + 990 + + + + + 991 + + + + + 993 + + + + + 998 + + + + + + + + 999 + + + + + + + + + + + + + + + + + + 1000 + + + + + + + + 1001 + + + + + 1002 + + + + + + + + 1003 + + + + + 1004 + + + + + + + + 1005 + + + + + 1006 + + + + + + + + 1007 + + + + + 1008 + + + + + + + + 1009 + + + + + 1010 + + + + + + + + 1011 + + + + + 1012 + + + + + + + + 1013 + + + + + 1016 + + + + + + + + 1017 + + + + + 1020 + + + + + + + + 1021 + + + + + 1024 + + + + + + + + 1025 + + + + + + + + 1034 + + + + + + + + 1035 + + + + + 1036 + + + + + + + + 1037 + + + + + 1038 + + + + + + + + 1039 + + + + + 1040 + + + + + + + + 1041 + + + + + 1113 + + + + + 1114 + + + + + 1115 + + + + + 1118 + + + + + 1119 + + + + + 1120 + + + + + 1298 + + + + + + + + + General Preferences View + + + 1301 + + + + + + Input Preferences View + + + 1496 + + + + + + + + + 1497 + + + + + + + + 1500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1501 + + + + + + + + 1502 + + + + + + + + + + + 1365 + + + + + + + + 1366 + + + + + 1444 + + + + + + + + 1445 + + + + + 1446 + + + + + + + + 1447 + + + + + 1448 + + + + + + + + 1449 + + + + + 1450 + + + + + + + + 1451 + + + + + 1456 + + + + + + + + 1457 + + + + + 1460 + + + + + + + + 1461 + + + + + 1462 + + + + + + + + 1463 + + + + + 1464 + + + + + + + + 1465 + + + + + 1468 + + + + + + + + 1469 + + + + + 1470 + + + + + + + + 1471 + + + + + 1472 + + + + + + + + 1473 + + + + + 1474 + + + + + + + + 1475 + + + + + 1395 + + + + + + + + 1396 + + + + + 1478 + + + + + + + + 1479 + + + + + 1538 + + + + + + + + + + + + + 1299 + + + + + + + + 1300 + + + + + 1539 + + + + + + + + 1540 + + + + + 1541 + + + + + + + + 1542 + + + + + + + + 1543 + + + + + + + + + 1544 + + + + + 1545 + + + + + 1547 + + + + + + + + 1548 + + + + + 1555 + + + + + + + + 1556 + + + + + 1557 + + + + + + + + 1558 + + + + + 1559 + + + + + + + + 1560 + + + + + 1561 + + + + + + + + 1562 + + + + + 1563 + + + + + + + + 1564 + + + + + 1565 + + + + + + + + 1566 + + + + + + + + 1567 + + + + + + + + 1568 + + + + + + + + 1569 + + + + + + + + 1570 + + + + + + + + 1571 + + + + + 1572 + + + + + 1573 + + + + + 1574 + + + + + 1575 + + + + + 1576 + + + + + 1584 + + + + + + Display Preferences View + + + 1615 + + + + + + + + + + 1616 + + + + + + + + 1619 + + + + + + + + 1620 + + + + + + + + 1621 + + + + + + + + + + + + 1626 + + + + + + + + 1627 + + + + + + + + 1628 + + + + + + + + + + + + + + + + + + + + + + + + + 1629 + + + + + 1630 + + + + + 1631 + + + + + 1632 + + + + + + + + 1633 + + + + + 1634 + + + + + + + + 1635 + + + + + 1636 + + + + + 1637 + + + + + 1638 + + + + + 1639 + + + + + 1640 + + + + + 1641 + + + + + 1642 + + + + + 1643 + + + + + 1644 + + + + + 1645 + + + + + 1646 + + + + + 1647 + + + + + 1648 + + + + + 1649 + + + + + 1650 + + + + + + + + 1651 + + + + + 1679 + + + + + 1680 + + + + + 1681 + + + + + 1682 + + + + + 1709 + + + Main Display View + + + 1721 + + + CocoaDS Core Controller + + + 1736 + + + + + 1855 + + + + + 1856 + + + + + + + + 1857 + + + + + + + + + + + + + + + + 1858 + + + + + + + + 1859 + + + + + 1976 + + + + + + + + 1977 + + + + + 1978 + + + + + + + + 1979 + + + + + 1980 + + + + + + + + 1981 + + + + + 1982 + + + + + + + + 1983 + + + + + 1986 + + + + + 1987 + + + + + + + + 1988 + + + + + + + + 1998 + + + + + + + + 1999 + + + + + 2000 + + + + + 2095 + + + + + 2098 + + + + + 2154 + + + + + + + + 2155 + + + + + 2246 + + + + + 2248 + + + + + + + + + + + Sound Preferences View + + + 2250 + + + + + + + + + + 2253 + + + + + + + + 2254 + + + + + 2257 + + + + + + + + 2258 + + + + + + + + 2262 + + + + + 2265 + + + + + + + + 2266 + + + + + 2269 + + + + + + + + + + + + 1397 + + + + + + + + 1398 + + + + + 1399 + + + + + + + + 1400 + + + + + 1401 + + + + + + + + 1402 + + + + + 1409 + + + + + + + + 1410 + + + + + 1403 + + + + + + + + 1404 + + + + + + + + 1405 + + + + + + + + 1406 + + + + + 2286 + + + + + + + + + + 2276 + + + + + + + + + + + + 2283 + + + + + 2282 + + + + + 2278 + + + + + 2279 + + + + + 2277 + + + + + 2302 + + + + + + + + 2303 + + + + + 2318 + + + + + + + + 2319 + + + + + 2320 + + + + + + + + 2321 + + + + + 2327 + + + + + + + + 2328 + + + + + + + + + + + 2329 + + + + + 2330 + + + + + 2331 + + + + + 2332 + + + + + 2339 + + + + + + + + + + Emulation Preferences View + + + 2340 + + + + + 2341 + + + + + + + + 2342 + + + + + + + + + + + + + + + + 2343 + + + + + + + + + + + + + 2344 + + + + + + + + + 2345 + + + + + + + + 2346 + + + + + 2347 + + + + + + + + 2348 + + + + + 2349 + + + + + + + + 2350 + + + + + 2353 + + + + + + + + 2354 + + + + + 2355 + + + + + + + + 2356 + + + + + 2357 + + + + + + + + 2358 + + + + + + + + 2359 + + + + + + + + 2360 + + + + + 2361 + + + + + 2362 + + + + + 2363 + + + + + + + + 2364 + + + + + 2365 + + + + + + + + 2366 + + + + + 2367 + + + + + + + + 2368 + + + + + 2369 + + + + + + + + 2370 + + + + + 2371 + + + + + + + + 2378 + + + + + 2372 + + + + + + + + 2377 + + + + + 2373 + + + + + + + + 2376 + + + + + 2374 + + + + + + + + 2375 + + + + + 2382 + + + + + + + + 2383 + + + + + + + + + + + + + + + + + + + + + + 2384 + + + + + 2385 + + + + + 2386 + + + + + 2387 + + + + + 2388 + + + + + 2389 + + + + + 2390 + + + + + 2391 + + + + + 2392 + + + + + 2393 + + + + + 2394 + + + + + 2395 + + + + + 2396 + + + + + 2397 + + + + + 2398 + + + + + 2399 + + + + + 2427 + + + + + + + + + 2428 + + + + + + + + 2429 + + + + + + + + 2430 + + + + + 2431 + + + + + + + + 2432 + + + + + + + + 2433 + + + + + + + + + + 2434 + + + + + 2435 + + + + + 2436 + + + + + 2437 + + + + + + + + + + 2438 + + + + + 2439 + + + + + 2440 + + + + + 2473 + + + + + 2482 + + + + + 2483 + + + + + 2518 + + + + + + + + 2519 + + + + + 608 + + + + + + + + + + + + 1250 + + + + + + + + 1251 + + + + + + + + + + + + + + + + + + + + 1264 + + + + + 1263 + + + + + 1262 + + + + + 1261 + + + + + 1260 + + + + + 1259 + + + + + 1258 + + + + + 1257 + + + + + 1256 + + + + + 1255 + + + + + 1254 + + + + + 1253 + + + + + 1252 + + + + + 2556 + + + + + 2565 + + + + + + + + 2566 + + + + + 1480 + + + + + + + + 1481 + + + + + 1383 + + + + + + + + 1386 + + + + + 2604 + + + + + 2609 + + + + + 2610 + + + + + 2653 + + + ROM Info Panel Controller + + + 2772 + + + Emulation Window Controller + + + 2789 + + + + + + + + 2790 + + + + + + + + + + + + + + 2793 + + + + + + + + 2794 + + + + + 2799 + + + + + + + + 2800 + + + + + 2803 + + + + + + + + 2804 + + + + + 2807 + + + + + + + + 2808 + + + + + 2809 + + + + + + + + 2810 + + + + + 2811 + + + + + + + + 2812 + + + + + 2813 + + + + + + + + 2814 + + + + + 2815 + + + + + + + + 2816 + + + + + + + + 2817 + + + + + + + + 2818 + + + + + 2819 + + + + + 2820 + + + + + 2847 + + + + + + + + 2848 + + + + + + + + + + + 2863 + + + + + + + + 2864 + + + + + 2865 + + + + + + + + + + + 2866 + + + + + 2867 + + + + + 2868 + + + + + + + + + + + + 2869 + + + + + 2870 + + + + + + + + 2871 + + + + + + + + 2872 + + + + + 2873 + + + + + 2874 + + + + + + + + 2876 + + + + + + + + 2877 + + + + + 2878 + + + File Migration Array Controller + + + 2894 + + + + + + + + 2895 + + + + + + + + 2896 + + + + + + + + 2897 + + + + + + + + 2900 + + + + + 2901 + + + + + 2902 + + + + + 2903 + + + + + 2954 + + + + + + + + 2955 + + + + + 3015 + + + + + + + + 3042 + + + + + 3063 + + + + + + + + + 3059 + + + + + + + + 3060 + + + + + 3061 + + + + + + + + 3062 + + + + + 2875 + + + + + 3146 + + + + + 3148 + + + Firmware Panel Controller + + + 3204 + + + + + + + + 3205 + + + + + + + + + + + + + + + 3206 + + + + + 3207 + + + + + 3208 + + + + + 3209 + + + + + 3210 + + + + + 3211 + + + + + 3213 + + + + + 3214 + + + + + 3285 + + + + + + + + 3286 + + + + + 3382 + + + CocoaDS Display Controller + + + 641 + + + + + + + + + + + + + + + 1236 + + + + + 1234 + + + + + 1233 + + + + + 1232 + + + + + 647 + + + + + 646 + + + + + 3456 + + + + + + + + 3457 + + + + + + + + + + + + 3458 + + + + + + + + 3459 + + + + + + + + 3460 + + + + + + + + 3461 + + + + + + + + 3462 + + + + + 3463 + + + + + 3464 + + + + + 3465 + + + + + 3471 + + + + + + + + 3472 + + + + + 3480 + + + + + + + + 3481 + + + + + 3482 + + + + + 3488 + + + + + + + + 3489 + + + + + + + + + + + + + + + + + + 3496 + + + + + + + + + + + 3497 + + + + + 3498 + + + + + 3499 + + + + + + + + + + 3501 + + + + + + + + 3507 + + + + + + + + 3508 + + + + + 3509 + + + + + 3516 + + + + + + + + 3517 + + + + + 3520 + + + Preferences Window Controller + + + 3521 + + + + + 3522 + + + + + 3523 + + + + + 3526 + + + + + 3527 + + + + + 3644 + + + + + 3689 + + + + + + + + 3690 + + + + + 3709 + + + + + 3712 + + + + + + + + 3713 + + + + + + + + + + + + + 3716 + + + + + + + + 3717 + + + + + + + + + 3718 + + + + + + + + + + + 3719 + + + + + 3720 + + + + + 3721 + + + + + 3722 + + + + + + + + + + 3723 + + + + + 3724 + + + + + 3725 + + + + + 3732 + + + + + 3733 + + + + + + + + 3714 + + + + + + + + 3715 + + + + + 3747 + + + + + + + + + + 3736 + + + + + + + + 3742 + + + + + 3737 + + + + + + + + 3740 + + + + + + + + 3741 + + + + + 3738 + + + + + + + + 3739 + + + + + 3748 + + + + + + + + 3749 + + + + + 3751 + + + + + 3752 + + + + + 653 + + + + + + + + 654 + + + + + 3784 + + + + + + + + 3787 + + + + + + + + 3788 + + + + + + + + + + + + + 3692 + + + + + + + + 3693 + + + + + 3648 + + + + + + + + + + + + + + + + + + + + + + + + + + 3667 + + + + + 3666 + + + + + 3665 + + + + + 3664 + + + + + 3663 + + + + + 3662 + + + + + 3661 + + + + + 3660 + + + + + 3659 + + + + + 3658 + + + + + 3657 + + + + + 3656 + + + + + 3655 + + + + + 3654 + + + + + 3653 + + + + + 3652 + + + + + 3651 + + + + + 3650 + + + + + 3649 + + + + + 3789 + + + + + 3790 + + + + + + + + 3791 + + + + + + + + + + + + 3786 + + + + + + + + + + + + + 3777 + + + + + + + + 3775 + + + + + + + + 3773 + + + + + + + + 3771 + + + + + + + + 3779 + + + + + + Depth Comparison Threshold Text Field + + + 3782 + + + + + + + + 3783 + + + + + 3780 + + + + + + + + 3781 + + + + + 3772 + + + + + 3774 + + + + + 3776 + + + + + 3778 + + + + + 3793 + + + + + + + + 3794 + + + + + 3798 + + + + + + + + + + + + + 3804 + + + + + + + + 3803 + + + + + + + + 3802 + + + + + + + + 3801 + + + + + + + + 3800 + + + + + + + + 3799 + + + + + + + + 3811 + + + + + 3809 + + + + + + + + 3810 + + + + + 3808 + + + + + 3807 + + + + + 3806 + + + + + 3805 + + + + + 3837 + + + + + + + + 3838 + + + + + + + + + + 3839 + + + + + 3840 + + + + + 3841 + + + + + 3843 + + + + + + + + 3844 + + + + + + + + 3845 + + + + + + + + + 3846 + + + + + 3847 + + + + + 3849 + + + + + + + + 3850 + + + + + 3878 + + + + + + + + 3879 + + + + + + + + + + + + 3880 + + + + + 3881 + + + + + 3882 + + + + + 3883 + + + + + 3884 + + + + + 3885 + + + + + + + + 3886 + + + + + + + + 3887 + + + + + 3888 + + + + + + + + 3889 + + + + + + + + 3890 + + + + + + + + + + + 3894 + + + + + 3893 + + + + + 3892 + + + + + 3891 + + + + + 3896 + + + + + + + + 3897 + + + + + 3899 + + + + + + + + 3900 + + + + + + + + 3901 + + + + + 3935 + + + + + + + + 3936 + + + + + + + + + + 3937 + + + + + 3938 + + + + + 3939 + + + + + 3959 + + + CocoaDS Sound Controller + + + 3965 + + + + + + + + + + + 3966 + + + + + 3967 + + + + + 3968 + + + + + 3969 + + + + + 4024 + + + + + + + + 4001 + + + + + + + + + + 4004 + + + + + 4003 + + + + + 4002 + + + + + 4027 + + + + + + + + 4028 + + + + + + + + + + + + 4029 + + + + + + + + 4030 + + + + + + + + 4031 + + + + + 4032 + + + + + + + + + + 4033 + + + + + + + + 4034 + + + + + 4035 + + + + + + + + 4036 + + + + + 4037 + + + + + + + + 4038 + + + + + 4039 + + + + + + + + + + + 4040 + + + + + + + + 4041 + + + + + 4043 + + + + + + + + 4044 + + + + + 4045 + + + + + + + + 4046 + + + + + 4047 + + + + + + + + + 4048 + + + + + + + + 4049 + + + + + 4050 + + + + + + + + 4051 + + + + + 4053 + + + + + + + + + + + + + + + + + Internal Firmware Drawer Content View + + + 4054 + + + Internal Firmware Drawer + + + 4062 + + + + + 4059 + + + + + + + + 4060 + + + + + 4066 + + + + + + + + 4067 + + + + + 4069 + + + + + + + + 4070 + + + + + + + + 4071 + + + + + + + + 4072 + + + + + + + + 4073 + + + + + + + + 4074 + + + + + + + + 4075 + + + + + + + + 4076 + + + + + + + + 4078 + + + + + + + + 4079 + + + + + + + + 4080 + + + + + + + + 4081 + + + + + + + + 4082 + + + + + + + + + + + + + + + + + + + + + + + 4083 + + + + + 4084 + + + + + 4085 + + + + + 4086 + + + + + 4087 + + + + + 4088 + + + + + 4089 + + + + + 4090 + + + + + 4091 + + + + + 4092 + + + + + 4093 + + + + + 4094 + + + + + 4095 + + + + + 4096 + + + + + 4097 + + + + + 4098 + + + + + 4099 + + + + + + + + 4100 + + + + + + + + + + + + + 4101 + + + + + 4102 + + + + + 4103 + + + + + 4104 + + + + + 4105 + + + + + 4106 + + + + + 4107 + + + + + 4109 + + + + + 4110 + + + + + 4111 + + + + + 4112 + + + + + 4113 + + + + + 4114 + + + + + 4115 + + + + + 4116 + + + + + 4179 + + + + + + + + 4180 + + + + + 4181 + + + + + + + + 4182 + + + + + + + + + + + + + + + + + + + 4191 + + + + + + + + 4192 + + + + + + + + 4193 + + + + + + + + 4194 + + + + + + + + 4195 + + + + + + + + 4196 + + + + + + + + 4197 + + + + + + + + 4198 + + + + + + + + 4199 + + + + + + + + 4200 + + + + + + + + 4201 + + + + + + + + 4202 + + + + + + + + + + + + + + + + + + + + + + + 4203 + + + + + 4204 + + + + + 4205 + + + + + 4206 + + + + + 4207 + + + + + 4208 + + + + + 4209 + + + + + 4210 + + + + + 4211 + + + + + 4212 + + + + + 4213 + + + + + 4214 + + + + + 4215 + + + + + 4216 + + + + + 4217 + + + + + 4218 + + + + + 4219 + + + + + + + + 4220 + + + + + + + + + + + + + 4221 + + + + + 4222 + + + + + 4223 + + + + + 4224 + + + + + 4225 + + + + + 4226 + + + + + 4227 + + + + + 4228 + + + + + 4229 + + + + + 4230 + + + + + 4231 + + + + + 4232 + + + + + 4233 + + + + + 4234 + + + + + 4240 + + + + + + + + 4241 + + + + + 4275 + + + + + + + + 4276 + + + + + 4277 + + + + + + + + 4278 + + + + + 4559 + + + + + + + + 4560 + + + + + 4561 + + + + + + + + 4562 + + + + + 4565 + + + + + + + + + + + + + + + 4566 + + + + + + + + 4567 + + + + + 4568 + + + + + + + + 4569 + + + + + 4570 + + + + + + + + 4571 + + + + + 4572 + + + + + + + + 4573 + + + + + 4574 + + + + + + + + 4575 + + + + + + + + 4576 + + + + + + + + + 4577 + + + + + 4578 + + + + + 4580 + + + + + 4581 + + + + + + + + 4582 + + + + + 4583 + + + + + + + + 4584 + + + + + 4585 + + + + + + + + + + + + + + + Internal Cheat View + + + 4586 + + + + + + + + 4587 + + + + + + + + 4588 + + + + + + + + 4589 + + + + + + + + 4590 + + + + + + + + 4593 + + + + + + + + 4594 + + + + + 4597 + + + + + + + + 4598 + + + + + 4599 + + + + + 4600 + + + + + 4601 + + + + + + + + + + + + 4602 + + + + + 4603 + + + + + 4604 + + + + + 4605 + + + + + 4606 + + + + + 4610 + + + + + + + Action Replay Cheat View + + + 4632 + + + + + + + + 4633 + + + + + + + + + + 4634 + + + + + 4635 + + + + + 4636 + + + + + 4637 + + + + + 4639 + + + + + + + + 4640 + + + + + 4647 + + + + + 4651 + + + + + + + + 4652 + + + + + 4656 + + + Cheats List Array Controller + + + 4660 + + + + + + + + 4661 + + + + + + + + 4662 + + + + + 4663 + + + + + 4664 + + + + + + + + 4665 + + + + + 4673 + + + + + + + Code Breaker Cheat View + + + 4693 + + + + + + + + 4694 + + + + + 4697 + + + + + 4711 + + + Cheat Selected Item Controller + + + 4715 + + + + + 4731 + + + Cheat Window Controller + + + 4745 + + + + + + + + 4746 + + + + + 4607 + + + + + + + + 4778 + + + + + 4792 + + + + + + + + + + + 4795 + + + + + 4796 + + + + + 4797 + + + + + + + + + 4798 + + + + + 4799 + + + + + + + + 4800 + + + + + + + + 4801 + + + + + 4802 + + + + + 4809 + + + + + + + + 4810 + + + + + 4811 + + + + + + + + 4812 + + + + + 4814 + + + + + + + + 4815 + + + + + 4817 + + + + + + + + 4818 + + + + + 4822 + + + + + + + + 4823 + + + + + 4850 + + + + + + + + + Exact Value Search View + + + 4851 + + + + + + + + + + + Comparative Search Continue View + + + 4858 + + + + + + + + 4859 + + + + + + + + 4860 + + + + + + + + 4861 + + + + + + + + 4862 + + + + + + + + 4863 + + + + + + + + 4864 + + + + + 4865 + + + + + 4866 + + + + + 4867 + + + + + 4868 + + + + + 4869 + + + + + 4871 + + + + + + + + 4872 + + + + + + + + 4873 + + + + + 4874 + + + + + 4876 + + + + + + + + 4877 + + + + + + + + 4878 + + + + + 4879 + + + + + + 4880 + + + + + + + + Comparative Search Start View + + + 4887 + + + + + + + + 4888 + + + + + + + + 4889 + + + + + + + + 4890 + + + + + 4891 + + + + + 4892 + + + + + 4899 + + + + + 4900 + + + + + + + + 4901 + + + + + + + + 4902 + + + + + + + + + 4903 + + + + + 4904 + + + + + 4906 + + + + + + + + 4907 + + + + + 4908 + + + + + + + + 4909 + + + + + 4910 + + + + + + + + 4911 + + + + + + + + 4912 + + + + + + + + + 4913 + + + + + 4914 + + + + + 4916 + + + Cheat Search List Array Controller + + + 4947 + + + + + 5003 + + + + + + + + + + + 5004 + + + + + + + + 5005 + + + + + + + + 5006 + + + + + + + + 5007 + + + + + 5008 + + + + + 5009 + + + + + 5014 + + + + + + + + 5015 + + + + + 5066 + + + + + + + + 5067 + + + + + 5068 + + + + + + + + 5069 + + + + + 5080 + + + + + + + + 5081 + + + + + + + + + + + + + + + + + + 5082 + + + + + + + + + + + 5083 + + + + + 5084 + + + + + 5085 + + + + + + + + + 5086 + + + + + 5087 + + + + + + + + 5088 + + + + + + + + 5089 + + + + + 5097 + + + + + 5098 + + + + + + + + 5099 + + + + + 5100 + + + + + + + + 5101 + + + + + 5102 + + + + + + + + 5103 + + + + + 5104 + + + + + + + + 5105 + + + + + 5106 + + + + + + + + 5107 + + + + + 5111 + + + + + + + + 5112 + + + + + 5115 + + + Cheat Database Array Controller + + + 5127 + + + + + + + + 5128 + + + + + 5133 + + + + + + + + 5134 + + + + + 5135 + + + + + + + + 5136 + + + + + 5140 + + + + + + + + 5141 + + + + + 5168 + + + + + + + + 5169 + + + + + 5171 + + + + + + + + + + + 5172 + + + + + + + + 5173 + + + + + + + + 5174 + + + + + + + + 5175 + + + + + + + + 5176 + + + + + 5177 + + + + + 5178 + + + + + 5179 + + + + + 5186 + + + + + + + + 5188 + + + + + + + + 5189 + + + + + 5193 + + + + + 5281 + + + Input Prefs Touch Array Controller + + + 5313 + + + + + + + + 5314 + + + + + + + + 5315 + + + + + 5316 + + + + + 24 + + + + + + + + + + + 23 + + + + + 239 + + + + + 5 + + + + + 92 + + + + + 5329 + + + + + 490 + + + + + + + + 491 + + + + + + + + + + + + 980 + + + + + 979 + + + + + 978 + + + + + 977 + + + + + 492 + + + + + 5419 + + + + + 5420 + + + + + 5421 + + + + + 5450 + + + + + + + + + + + + + + 2287 + + + + + + + + 2288 + + + + + 2289 + + + + + + + + 2290 + + + + + 1507 + + + + + + + + 1508 + + + + + + + + 1509 + + + + + + + + + + + 1532 + + + + + 1512 + + + + + 1511 + + + + + 1510 + + + + + 1577 + + + + + + + + 1578 + + + + + + + + 1579 + + + + + 2291 + + + + + + + + 2299 + + + + + 2292 + + + + + + + + 2293 + + + + + + + + 2294 + + + + + + + + + + 5427 + + + + + 2298 + + + + + 2297 + + + + + 3994 + + + + + + + + 3995 + + + + + + + + 3996 + + + + + + + + + 3997 + + + + + 3998 + + + + + 3992 + + + + + + + + 3993 + + + + + 1525 + + + + + + + + 1526 + + + + + + + + 1527 + + + + + + + + + + + + + 1531 + + + + + 1530 + + + + + 1529 + + + + + 1528 + + + + + 1580 + + + + + 1581 + + + + + 1537 + + + + + + + + + + + + 5460 + + + + + + + + 5461 + + + + + 5462 + + + + + + + + 5463 + + + + + + + + 5464 + + + + + + + + + + + + + 5465 + + + + + 5466 + + + + + 5467 + + + + + 5468 + + + + + 5469 + + + + + 5470 + + + + + 5471 + + + + + + + + 5472 + + + + + + + + 5473 + + + + + 5476 + + + + + + + + 5451 + + + + + + + + + + 5454 + + + + + 5453 + + + + + 5452 + + + + + 5477 + + + + + + + + 1591 + + + + + + + + + + 1592 + + + + + 1593 + + + + + 1594 + + + + + 5428 + + + + + + + + 5429 + + + + + + + + + + + + 5430 + + + + + 5431 + + + + + 5432 + + + + + 5433 + + + + + 5434 + + + + + 5441 + + + + + + + + 5442 + + + + + + + + + + + + + 5449 + + + + + 5448 + + + + + 5447 + + + + + 5446 + + + + + 5445 + + + + + 5443 + + + + + 5648 + + + + + 5649 + + + + + 5651 + + + + + + + + 5652 + + + + + + + + + + + + + + 5653 + + + + + + + + 5654 + + + + + + + + + + + 5655 + + + + + + + + 5656 + + + + + + + + 5657 + + + + + + + + 5658 + + + + + + + + 5659 + + + + + + + + 5660 + + + + + 5661 + + + + + 5662 + + + + + 5663 + + + + + 5664 + + + + + 5665 + + + + + + + + 5666 + + + + + + + + 5667 + + + + + + + + 5668 + + + + + + + + 5669 + + + + + + + + 5670 + + + + + + + + + + 5671 + + + + + 5672 + + + + + 5673 + + + + + 5674 + + + + + + + + 5675 + + + + + + + + + + 5676 + + + + + 5677 + + + + + 5678 + + + + + 5679 + + + + + + + + 5680 + + + + + + + + + + 5681 + + + + + 5682 + + + + + 5683 + + + + + 5684 + + + + + + + + 5685 + + + + + + + + + + 5686 + + + + + 5687 + + + + + 5688 + + + + + 5689 + + + + + 5690 + + + + + + + Screenshot Save Panel Accessory + + + 5691 + + + + + + + + 5692 + + + + + + + + 5693 + + + + + + + + 5694 + + + + + + + + + + + + + 5695 + + + + + 5696 + + + + + 5697 + + + + + 5698 + + + + + 5699 + + + + + 5700 + + + + + 5701 + + + + + 5702 + + + + + 2529 + + + + + + + + 2530 + + + + + + + + + + + 2548 + + + + + 2549 + + + + + 2551 + + + + + 2558 + + + + + + + + 2559 + + + + + + + + 2560 + + + + + 2553 + + + + + 5703 + + + + + 5713 + + + About Window Controller + + + 5738 + + + + + + + + + + + 5739 + + + + + + + + 5740 + + + + + + + + 5741 + + + + + + + + 5742 + + + + + + + + 5743 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5744 + + + + + + + + 5745 + + + + + + + + 5746 + + + + + + + + 5747 + + + + + + + + 5748 + + + + + + + + 5749 + + + + + + + + 5750 + + + + + + + + 5751 + + + + + + + + 5752 + + + + + + + + 5753 + + + + + + + + 5754 + + + + + + + + 5755 + + + + + + + + 5756 + + + + + + + + 5757 + + + + + + + + 5758 + + + + + + + + 5759 + + + + + + + + 5760 + + + + + + + + 5761 + + + + + + + + 5762 + + + + + + + + 5763 + + + + + + + + 5764 + + + + + + + + 5765 + + + + + + + + 5766 + + + + + + + + 5767 + + + + + + + + 5768 + + + + + + + + 5769 + + + + + + + + 5770 + + + + + + + + 5771 + + + + + + + + 5772 + + + + + 5773 + + + + + 5774 + + + + + 5775 + + + + + 5776 + + + + + 5777 + + + + + 5778 + + + + + 5779 + + + + + 5780 + + + + + 5781 + + + + + 5782 + + + + + 5783 + + + + + 5784 + + + + + 5785 + + + + + 5786 + + + + + 5787 + + + + + 5788 + + + + + 5789 + + + + + 5790 + + + + + 5791 + + + + + 5792 + + + + + 5793 + + + + + 5794 + + + + + 5795 + + + + + 5796 + + + + + 5797 + + + + + 5798 + + + + + 5799 + + + + + 5800 + + + + + + + + + + 5801 + + + + + + + + + + + 5802 + + + + + + + + 5803 + + + + + + + + 5804 + + + + + 5805 + + + + + 5806 + + + + + 5807 + + + + + + + + + + + + + 5808 + + + + + 5809 + + + + + 5810 + + + + + + + + 5811 + + + + + + + + 5812 + + + + + + + + 5813 + + + + + + + + 5814 + + + + + + + + 5815 + + + + + + + + 5816 + + + + + 5817 + + + + + 5818 + + + + + 5819 + + + + + + + + 5820 + + + + + 5821 + + + + + + + + 5822 + + + + + 5823 + + + + + 5824 + + + + + + + + + + + 5825 + + + + + + + + + + 5826 + + + + + + + + + + + + 5827 + + + + + + + + 5828 + + + + + + + + 5829 + + + + + 5830 + + + + + 5831 + + + + + + + + 5832 + + + + + + + + 5833 + + + + + + + + 5834 + + + + + + + + 5835 + + + + + + + + 5836 + + + + + 5837 + + + + + + + + 5838 + + + + + + + + 5839 + + + + + 5840 + + + + + 5841 + + + + + 5842 + + + + + 5843 + + + + + + + + 5844 + + + + + + + + 5845 + + + + + + + + + + + + 5846 + + + + + 5847 + + + + + 5848 + + + + + 5849 + + + + + 5850 + + + + + 5851 + + + + + 5852 + + + + + 5853 + + + + + + + + + + + + + + + + + + + 5854 + + + + + + + + 5855 + + + + + + + + 5856 + + + + + + + + 5857 + + + + + + + + 5858 + + + + + + + + 5859 + + + + + + + + 5860 + + + + + + + + 5861 + + + + + + + + 5862 + + + + + + + + 5863 + + + + + + + + 5864 + + + + + + + + 5865 + + + + + + + + 5866 + + + + + 5867 + + + + + 5868 + + + + + 5869 + + + + + 5870 + + + + + 5871 + + + + + 5872 + + + + + 5873 + + + + + 5874 + + + + + 5875 + + + + + 5876 + + + + + 5877 + + + + + 5933 + + + + + + + Export ROM Save Panel Accessory + + + 5934 + + + + + + + + 5935 + + + + + + + + 5936 + + + + + 5937 + + + + + + + + 5938 + + + + + + + + + + 5939 + + + + + 5942 + + + + + 5963 + + + + + 5965 + + + + + + + + 5966 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB8AAAwu4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDzgAAwxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCwgAAwxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDfgAAwxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDp4AAwxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCAAAAwiwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDloAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDFAAAwtAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDFAAAwp4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDFAAAwlgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAwkQAAA + + 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 + + {{855, 1093}, {143, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{522, 812}, {146, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1537, 853}, {117, 253}} + 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 + + {{1028, 578}, {520, 486}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAweAAAA + + {{520, 1070}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + {{643, 640}, {640, 433}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw6eAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwjQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw6gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGQAABC2AAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwsoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDVwAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCjgAAwxgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{443, 824}, {414, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwxUAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Sets the DS controller's Up button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw6aAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's Down button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxEaAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's Left button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxEBAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Sets the DS controller's Right button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw2gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's A button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw46AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's B button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxC2AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's X button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw2sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's Y button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxCEAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's L button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxBrAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's R button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwqQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's Start button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxA5AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the DS controller's Select button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwiwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the microphone activation hotkey. Whenever this hotkey is pressed, the emulator will accept sound input. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw6cAAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Simulates the closing and opening of the DS lid. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwmQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + InitialTabViewItem + + InitialTabViewItem + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBUAAAw9CAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default size for new DS display views. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDHgAAwngAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{796, 517}, {126, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default rotation for new DS display views. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDDwAAwpQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{796, 460}, {126, 113}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1085, 684}, {431, 148}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABBgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwxgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCCAAAwoIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1069, 916}, {227, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC5AAAwgQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw44AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw4GAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw2oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw1EAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwzgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDAgAAw5gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwwYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwtoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwqgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwggAAA + + 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 + + ToolTip + + The default rotation for new DS display views. A custom rotation angle may be entered here. (The angle must be between 0º and 360º.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDkIAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{391, 644}, {489, 405}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDdgAAwzcAAA + + + ToolTip + + ToolTip + + If the display layout is vertical, the main screen will be arranged above the touch screen. If the display layout is horizontal, the main screen will be arranged left of the touch screen. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + If the display layout is vertical, the touch screen will be arranged above the main screen. If the display layout is horizontal, the touch screen will be arranged left of the main screen. [NOT YET IMPLEMENTED IN THIS VERSION] + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + InitialTabViewItem + + InitialTabViewItem + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBUAAAw8KAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default video filter for new DS display views, producing a variety of visual effects. The incurred CPU usage is dependent on which filter is used. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC7AAAw7gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{531, 545}, {151, 363}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AULsAABCigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBIAAAw6MAAA + + 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 + + P4AAAL+AAABBIAAAw7aAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + OpenGLDisplayView + com.apple.InterfaceBuilder.CocoaPlugin + + AQAAAABBwAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{935, 883}, {213, 198}} + com.apple.InterfaceBuilder.CocoaPlugin + {{935, 883}, {213, 198}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCdAAAwwgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCaAAAwyEAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCxAAAwv4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCaAAAwrwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwv4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC8AAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwqgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB2AAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{1123, 658}, {400, 373}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDhYAAA + + + ToolTip + + ToolTip + + Sets the default sound volume. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCMAAAwmQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDjYAAwmQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGQAABCHAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABAoAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDJwAAwrQAAA + + + ToolTip + + ToolTip + + Use a physical microphone or other other sound input device connected to your Mac. [NOT YET IMPLEMENTED IN THIS VERSION] + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Predefined noise samples that simulate sounds like blowing into the microphone. (Some games, such as "The Legend of Zelda: Spirit Tracks," work especially well with this.) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Randomly generated white noise that simulates sounds like blowing into the microphone. May also be useful if a game needs you to speak into the microphone. + + + + ToolTip + + ToolTip + + Use a sound file. (Whenever the microphone is activated, the sound will begin at the start of the file.) [NOT YET IMPLEMENTED IN THIS VERSION] + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABDPAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCngAAwwcAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCTAAAwtYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCjAAAwyMAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDJQAAwyYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{796, 565}, {126, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + New display views will show both DS screens by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + New display views will show only the DS touch screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABChgAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDxAAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDqAAAwhQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABC1gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwowAAA + + + ToolTip + + ToolTip + + Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. + + + {{1006, 629}, {530, 527}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDyAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDlIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDFwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABCjgAAA + + + ToolTip + + ToolTip + + Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may yield a very substantial performance gain, but may cause some ROMs to stop working and cause other ROMs to show erratic behavior. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Makes more features available to the emulated hardware, but may affect ROM compatibility. May incur CPU usage, depending on which BIOS options are used. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwwUAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDDAAAwtQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwtAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDtQAAwtwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDEQAAwmAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAwlgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDtQAAwqYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the BIOS to use the ARM processor SWI routines. This is required for some ROMs to work properly. May CPU usage, depending on if the ROM uses the ARM SWIs. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Prevents the Delay SWI from running. This may reduce the SWI-related CPU usage for some ROMs, but may also affect ROM compatibility. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Uses an external firmware image, overriding the internally emulated firmware. To change your firmware settings, you must do so through the emulated environment. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwoAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDDAAAwiAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwhwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDtQAAwmQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1362, 663}, {156, 293}} + 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 + {{855, 1063}, {194, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + + ToolTip + + ToolTip + + Performs no sound interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABBgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDUQAAA + + + ToolTip + + ToolTip + + Enables the advanced SPU emulation engine, which improves the accuracy of the emulated sound. This option provides a richer audio experience. Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDEQAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{508, 719}, {204, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Lowest latency and lowest CPU usage sound synchronization method that is compatible with the advanced SPU emulation engine. However, this method causes sound distortion as emulation speed decreases below normal, and causes sound detail loss as emulation speed increases above normal. Very low latency. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Pitch bends the sound depending on the emulation speed. Provides the smoothest sound, regardless of emulation speed. High latency. Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sounds like "Dual SPU Synch/Asynch," but is a little smoother and has some added latency. Medium latency. Low CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwxIAAA + + + ToolTip + + ToolTip + + Has the lowest latency of all the sound synchronization methods, but is not compatible with the advanced SPU emulation engine. Neglible latency. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the use of more complex sound synchronization methods. + + + 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+AAABCAAAAwngAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1089, 1023}, {198, 113}} + 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 + {{1478, 1073}, {129, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Upon emulator execution, starts the firmware instead of the ROM. This will allow you access to some of the emulated hardware features. To boot from firmware, an external firmware image and both BIOS images must be loaded. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwXAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{403, 460}, {720, 364}} + com.apple.InterfaceBuilder.CocoaPlugin + {{403, 460}, {720, 364}} + + + + {600, 9999} + {600, 250} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBUAAAw70AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBYAAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMQAAwogAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw7sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw5sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw3YAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwzYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwuwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwlgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{550, 435}, {380, 200}} + com.apple.InterfaceBuilder.CocoaPlugin + {{550, 435}, {380, 200}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDqQAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADBoAAAw5YAAA + + 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 + + P4AAAL+AAABBiAAAwzIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDhwAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDEAAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwswAAA + + {{475, 1136}, {512, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + 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+AAABBiAAAw6WAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{749, 883}, {315, 253}} + com.apple.InterfaceBuilder.CocoaPlugin + {{475, 832}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABChgAAweAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC6AAAwnwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABBsAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{619, 983}, {151, 153}} + 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 + + P4AAAL+AAABBcAAAwgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{344, 993}, {335, 163}} + com.apple.InterfaceBuilder.CocoaPlugin + {{344, 993}, {335, 163}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC5AAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDXAAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwswAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADBgAAAww8AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwigAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAw10AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGoAABDXwAAA + + {{851, 193}, {640, 480}} + com.apple.InterfaceBuilder.CocoaPlugin + {{851, 193}, {640, 480}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAw8EAAA + + 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+AAABC4gAAwiQAAA + + 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 + + P4AAAL+AAABCRAAAxHyAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enable to use bilinear interpolation on the final video output by default. This creates a smoothed, but slightly blurry, image effect. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC7gAAw72AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enable to use bilinear interpolation on the final video output. This creates a smoothed, but slightly blurry, image effect. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw+aAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1244, 702}, {256, 408}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1244, 702}, {256, 408}} + + {{33, 99}, {480, 360}} + + {3.40282e+38, 3.40282e+38} + {256, 408} + {{1295, 577}, {288, 511}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1295, 577}, {288, 511}} + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the advanced SPU emulation engine, which improves the accuracy of the emulated sound. This option provides a richer audio experience. Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw1oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDjQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDBgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwqwAAA + + + ToolTip + + ToolTip + + Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Has the lowest latency of all the sound synchronization methods, but is not compatible with the advanced SPU emulation engine. Neglible latency. Negligible CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the use of more complex sound synchronization methods. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDwAAAA + + + ToolTip + + ToolTip + + Sets the current sound volume. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCRAAAw9IAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDLAAAwgAAAA + + + AUGgAABDyQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABD/wAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABChgAAwwAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will produce smoother color transitions than a standard DS. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDegAAxDLAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will emulate the DS toon edge marking. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDegAAxC3AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will render fog effects. This may affect the atmospheric look of 3D scenes. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDegAAxCjAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will render textures onto 3D surfaces. When not set, all 3D surfaces will be solid colored (usually white). Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDegAAxCPAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDOQAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwxYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGwAABDNwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDTAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1312, 630}, {284, 462}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1312, 630}, {284, 462}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCggAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUKUAABCwAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCCAAAwfgAAA + + + ToolTip + + ToolTip + + When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDVwAAwqIAAA + + + ToolTip + + ToolTip + + When set, SoftRasterizer will produce smoother color transitions than a standard DS. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCCAAAwuwAAA + + + ToolTip + + ToolTip + + When set, SoftRasterizer will emulate the DS toon edge marking. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCCAAAwsQAAA + + + ToolTip + + ToolTip + + When set, SoftRasterizer will render fog effects. This may affect the atmospheric look of 3D scenes. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwpYAAA + + + ToolTip + + ToolTip + + When set, SoftRasterizer will render textures onto 3D surfaces. When not set, all 3D surfaces will be solid colored (usually white). Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCCAAAwmgAAA + + 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 + + P4AAAL+AAABBkAAAwkgAAA + + + ToolTip + + ToolTip + + Disables 3D rendering. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME's internal software 3D rendering engine. Very high CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default 3D rendering engine for new DS display views. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDXAAAw5qAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{626, 935}, {161, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Disables 3D rendering. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME's internal software 3D rendering engine. Very high CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCmgAAw5kAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABCJAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwrQAAA + + + ToolTip + + ToolTip + + DeSmuME automatically chooses the best number of rendering threads based on your hardware. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on the same thread as the core emulation thread. Best performance option for single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on two separate threads. May improve 3D performance on multiprocessor machines, but slightly reduces performance on single processor machines. + + + + ToolTip + + ToolTip + + Renders 3D on four separate threads. May improve 3D performance on multiprocessor machines, but significantly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default number of processing threads that SoftRasterizer will use for 3D rendering. This is an option for advanced users. For most cases, it's best to keep this set to Automatic. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDegAAwrgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{881, 382}, {180, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + DeSmuME automatically chooses the best number of rendering threads based on your hardware. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on the same thread as the core emulation thread by default. Best performance option for single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on two separate threads by default. May improve 3D performance on multiprocessor machines, but slightly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Renders 3D on four separate threads by default. May improve 3D performance on multiprocessor machines, but significantly reduces performance on single processor machines. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB4AAAwrIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUKUAABDcQAAA + + + ToolTip + + ToolTip + + Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAweAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1022, 773}, {101, 63}} + 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+AAABCaAAAwowAAA + + + ToolTip + + ToolTip + + Lowest latency and lowest CPU usage sound synchronization method that is compatible with the advanced SPU emulation engine. However, this method causes sound distortion as emulation speed decreases below normal, and causes sound detail loss as emulation speed increases above normal. Very low latency. Very low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Pitch bends the sound depending on the emulation speed. Provides the smoothest sound, regardless of emulation speed. High latency. Medium CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sounds like "Dual SPU Synch/Asynch," but is a little smoother and has some added latency. Medium latency. Low CPU usage. Recommended setting. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw68AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sets the default audio output engine. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDIwAAw7CAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1047, 994}, {220, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Disables audio output. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Native audio output engine for Mac OS X. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCRAAAwkgAAA + + + ToolTip + + ToolTip + + Disables audio output. No CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Native audio output engine for Mac OS X. Low CPU usage. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABEEwAAA + + {{1326, 766}, {280, 396}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1326, 766}, {280, 396}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABD2oAAA + + + ToolTip + + ToolTip + + Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may yield a very substantial performance gain, but may cause some ROMs to stop working and cause other ROMs to show erratic behavior. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDqYAAA + + + ToolTip + + ToolTip + + Makes more features available to the emulated hardware, but may affect ROM compatibility. May incur CPU usage, depending on which BIOS options are used. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Enables the BIOS to use the ARM processor SWI routines. This is required for some ROMs to work properly. May incur CPU usage, depending on if the ROM uses the ARM SWIs. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwkAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Prevents the Delay SWI from running. This may reduce the SWI-related CPU usage for some ROMs, but may also affect ROM compatibility. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAweAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABC7gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCNAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Uses an external firmware image, overriding the internally emulated firmware. To change your firmware settings, you must do so through the emulated environment. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwkAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Upon emulator execution, starts the firmware instead of the ROM. This will allow you access to some of the emulated hardware features. To boot from firmware, an external firmware image and both BIOS images must be loaded. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAweAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABCVAAAA + + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB8AAAwrAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + For developer usage only. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCHAAAwjQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1357, 426}, {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 + + P4AAAL+AAABBcAAAwpIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Nicknames should be a maximum of 10 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC3AAAw5kAAA + + + ToolTip + + ToolTip + + Messages should be a maximum of 26 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC3AAAw4uAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw5eAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw4oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw2UAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw0oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwy4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AULcAABDOgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAww0AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC1gAAwzEAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC1gAAw2gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1453, 369}, {136, 291}} + 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 + {{1336, 489}, {164, 105}} + 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 + + P4AAAL+AAABCVAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{999, 665}, {305, 339}} + com.apple.InterfaceBuilder.CocoaPlugin + {{999, 665}, {305, 339}} + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Nicknames should be a maximum of 10 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCugAAw3sAAA + + + ToolTip + + ToolTip + + Messages should be a maximum of 26 characters. Any additional characters will be truncated. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCugAAw1sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw3gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwtoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwwMAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwrIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwnQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AULuAABCkAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC6AAAwoAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC6AAAwwYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1388, 295}, {172, 323}} + 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 + {{1340, 591}, {172, 123}} + 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 + + P4AAAL+AAABDEgAAwtIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABAwAAAwuAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC0AAAwpIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCPAAAwiAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAwiAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUOxAABCKAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCwAAAw7iAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCwAAAw+UAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC3gAAw9EAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{728, 816}, {209, 71}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAw9EAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAw5KAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{652, 866}, {320, 290}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + AUI8AABCHAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw1UAAA + + + ToolTip + + ToolTip + + All addresses start with 0x02. Enter the last 6 digits of the address here in hexadecimal format. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDFwAAw28AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCAAAAwzcAAA + + + ToolTip + + ToolTip + + Enter the numeric value to write to the target address. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCpAAAwzkAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCngAAw1QAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Select the memory size of the target address in bytes. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwrQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{936, 459}, {320, 290}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw7YAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAw6mAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw8SAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AcFAAABDxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDHAAAw7gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw7gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{782, 197}, {320, 290}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBsAAAwvIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AULKAABDDgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAw0QAAA + + 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 + + P4AAAL+AAABBiAAAw1oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC9AAAw2oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Shows/hides the address search drawer. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDNgAAw4aAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Resets the memory address search. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDaQAAw18AAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{316, 1022}, {328, 134}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1183, 775}, {328, 134}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwoQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwhwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDIwAAwoQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDIwAAwhwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwuAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwsQAAA + + 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+AAABBiAAAwvAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwtQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAwhQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDaQAAwqAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{322, 680}, {328, 134}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC6AAAwqAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwsQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwuAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AQAAAABDXQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC7AAAxALAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{466, 1100}, {136, 37}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Searches the DS memory for all addresses that currently carry the search value. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Searches the DS memory for any addresses which match the comparative search criteria. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCMAAAxAIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCMAAAw/gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{926, 1043}, {224, 93}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDBQAAw8KAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1313, 1005}, {209, 37}} + 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+AAABDXAAAw2sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABDVwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwjAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDqAAAwpIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB0AAAwiwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwnAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwlQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Immediately writes the value once to the target address. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDRQAAw10AAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{330, 277}, {500, 416}} + com.apple.InterfaceBuilder.CocoaPlugin + {{330, 277}, {500, 416}} + + + {500, 272} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAAC/gAAAw+cAAA + + 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 + + P4AAAL+AAABDgYAAw+gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBYAAAwswAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDAAAAwswAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDwwAAwswAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDkwAAwswAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDvIAAw/SAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw+iAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDCwAAw86AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDywAAw8MAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCpAAAw9CAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwYgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AcK4AABC0gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwiAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB0AAAwiwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDqAAAwpIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwjAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGwAABChAAAA + + + ToolTip + + ToolTip + + Whenever DeSmuME needs to determine a ROM's save type, use the ADVANsCEne database to determine the save type before using the internal autodetect algorithm. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAweAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBAAAAwfgAAA + + + ToolTip + + ToolTip + + Activates the DS's debugger mode. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADDAAAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{855, 920}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{855, 900}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + New display views will show only the main DS screen by default. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{993, 983}, {178, 93}} + 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 + {{993, 963}, {118, 113}} + 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 + + AUDAAABDUwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCWAAAwy4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDDwAAwgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1135, 301}, {119, 113}} + 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 + + ToolTip + + The default display separation for new DS combo display views. A custom separation may be entered here. (The value must be between 0% and 100%.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDiQAAwfgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUFwAABCUAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUNQAABCxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{583, 356}, {500, 500}} + com.apple.InterfaceBuilder.CocoaPlugin + {{583, 356}, {500, 500}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw+QAAA + + + InitialTabViewItem + + InitialTabViewItem + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBUAAAw7wAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDCwAAw8sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDCwAAw9eAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDCwAAw/CAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDCwAAw/0AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGgAABDvgAAA + + 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 + + P4AAAL+AAADBiAAAw56AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADAQAAAw56AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADCHAAAw56AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADBYAAAw56AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1162, 787}, {350, 35}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCGAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwiQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + {{1327, 695}, {126, 123}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{487, 953}, {203, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + InitialTabViewItem + + InitialTabViewItem + + + + + {{330, 736}, {614, 409}} + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBUAAAw9CAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Activates the emulator's debug mode. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAADDAAAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBAAAAwfgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwjQAAA + + + ToolTip + + ToolTip + + Simulates the closing and opening of the DS lid. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw6wAAA + + + ToolTip + + ToolTip + + Sets the DS controller's Up button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw6aAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwmwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwqgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwtoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwwYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw1EAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDAgAAw5gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAwzgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw2oAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw4GAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw44AAA + + {{663, 933}, {218, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC+gAAw6eAAA + + + ToolTip + + ToolTip + + Sets the DS controller's A button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw46AAA + + + ToolTip + + ToolTip + + Sets the DS controller's Down button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxEaAAA + + + ToolTip + + ToolTip + + Sets the DS controller's Left button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxEBAAA + + + ToolTip + + ToolTip + + Sets the DS controller's Right button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw2gAAA + + + ToolTip + + ToolTip + + Sets the DS controller's B button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxC2AAA + + + ToolTip + + ToolTip + + Sets the DS controller's X button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw2sAAA + + + ToolTip + + ToolTip + + Sets the DS controller's Y button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxCEAAA + + + ToolTip + + ToolTip + + Sets the DS controller's L button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxBrAAA + + + ToolTip + + ToolTip + + Sets the DS controller's R button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwqQAAA + + + ToolTip + + ToolTip + + Sets the DS controller's Start button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCUAAAxA5AAA + + + ToolTip + + ToolTip + + Sets the DS controller's Select button. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwiwAAA + + 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 + 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 + + P4AAAL+AAABBiAAAw7MAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwhQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCMAAAwhQAAA + + 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 + + AUFgAABDPAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABAoAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw6gAAA + + + ToolTip + + ToolTip + + Sets the microphone activation hotkey. Whenever this hotkey is pressed, the emulator will accept sound input. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw6cAAA + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDVwAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBgAAAwsoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGQAABC2AAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCjgAAwxgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwxUAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{443, 824}, {414, 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 + + P4AAAL+AAABDxAAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABChgAAwggAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDJwAAwrQAAA + + + ToolTip + + ToolTip + + Use a physical microphone or other other sound input device connected to your Mac. [NOT YET IMPLEMENTED IN THIS VERSION] + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Predefined noise samples that simulate sounds like blowing into the microphone. (Some games, such as "The Legend of Zelda: Spirit Tracks," work especially well with this.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Randomly generated white noise that simulates sounds like blowing into the microphone. May also be useful if a game needs you to speak into the microphone. + + + + ToolTip + + ToolTip + + Use a sound file. (Whenever the microphone is activated, the sound will begin at the start of the file.) [NOT YET IMPLEMENTED IN THIS VERSION] + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Sends the Reset command to the emulator. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw0MAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw0UAAA + + + ToolTip + + ToolTip + + Sends the Pause command to the emulator. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw14AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw2AAAA + + + ToolTip + + ToolTip + + Sends the Execute command to the emulator. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw3kAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw3sAAA + + + ToolTip + + ToolTip + + Sets the hotkey to toggle the HUD. (Holding down the hotkey will toggle the HUD visible state. For example, if the HUD is normally hidden, and you press this hotkey, the HUD will show until the hotkey is released.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw4oAAA + + + ToolTip + + ToolTip + + Sets the hotkey to double the emulation speed. (The emulation speed is affected only while the hotkey is held down. When the hotkey is released, the emulation speed reverts back to its previous speed.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw5cAAA + + + ToolTip + + ToolTip + + Sets the hotkey to halve the emulation speed. (The emulation speed is affected only while the hotkey is held down. When the hotkey is released, the emulation speed reverts back to its previous speed.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAw6SAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw6WAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw4sAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDGQAAw5gAAA + + 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 + {{1040, 712}, {450, 35}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDMAAAwiQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCGAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1224, 680}, {232, 63}} + 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+AAABCxAAAwxMAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{799, 1053}, {257, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + {{609, 360}, {400, 100}} + com.apple.InterfaceBuilder.CocoaPlugin + {{609, 360}, {400, 100}} + + com.apple.InterfaceBuilder.CocoaPlugin + {{501, 460}, {616, 0}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{507, 779}, {616, 0}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABAQAAAwjAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABC/AAAwZgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBiAAAwYgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AULcAAA/gAAAA + + {{1191, 651}, {328, 434}} + 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 + {{993, 933}, {136, 163}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1332, 1013}, {70, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{1103, 481}, {194, 241}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1103, 481}, {194, 241}} + + + com.apple.InterfaceBuilder.CocoaPlugin + {{1069, 659}, {204, 481}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1069, 659}, {204, 481}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{577, 833}, {262, 303}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 474}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwz4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwyoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwxYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwwIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwtwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwrQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBkAAAwowAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBoAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBuAAAwgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1040, 472}, {580, 588}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1040, 472}, {580, 588}} + + com.apple.InterfaceBuilder.CocoaPlugin + + AUFgAABEAIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUMaAABDgwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABBgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUOSgABDYAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUOSgABCxAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + AUOSgABBgAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwuQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwrIAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwoAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw+gAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw0wAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwzYAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwyAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwwoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwugAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwrwAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwpAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwkgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwzQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw6IAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw4IAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwx4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwwgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwuQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwrgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwowAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwkAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDZwAAwdAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAw0QAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwwQAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwogAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwvAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDWwAAwrgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwp4AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDWwAAwowAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwlgAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDWwAAwkAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwegAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDWwAAwdAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwpoAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDWwAAwkAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBcAAAwdAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABDWwAAwdAAAA + + 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 + {{1362, 1043}, {118, 93}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1089, 663}, {467, 135}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1089, 663}, {467, 135}} + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 6125 + + + + + AppDelegate + NSObject + + id + id + id + id + id + id + + + + bugReport: + id + + + handleMigrationWindow: + id + + + launchForums: + id + + + launchWebsite: + id + + + showMigrationWindow: + id + + + showSupportFolderInFinder: + id + + + + NSObjectController + NSBox + NSBox + NSBox + NSBox + NSBox + NSObjectController + NSWindow + NSObjectController + NSObjectController + NSArrayController + InputPrefsView + NSMenu + NSMenu + NSWindow + NSWindow + NSView + NSWindow + NSObjectController + + + + aboutWindowController + NSObjectController + + + boxARMBinaries + NSBox + + + boxFileSystem + NSBox + + + boxGeneralInfo + NSBox + + + boxMisc + NSBox + + + boxTitles + NSBox + + + cdsCoreController + NSObjectController + + + cheatListWindow + NSWindow + + + cheatWindowController + NSObjectController + + + emuWindowController + NSObjectController + + + fileMigrationList + NSArrayController + + + inputPrefsView + InputPrefsView + + + mLoadStateSlot + NSMenu + + + mSaveStateSlot + NSMenu + + + mainWindow + NSWindow + + + migrationWindow + NSWindow + + + prefGeneralView + NSView + + + prefWindow + NSWindow + + + prefWindowController + NSObjectController + + + + IBProjectSource + userinterface/appDelegate.h + + + + CheatWindowDelegate + NSObject + + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + addToList: + id + + + applyConfiguration: + id + + + closeCheatDatabaseSheet: + id + + + removeFromList: + id + + + resetSearch: + id + + + runComparativeSearch: + id + + + runExactValueSearch: + id + + + selectAllCheatsInDatabase: + id + + + selectCheatSearchStyle: + id + + + selectCheatType: + id + + + selectNoneCheatsInDatabase: + id + + + setInternalCheatValue: + id + + + viewDatabase: + id + + + + NSBox + NSArrayController + NSWindow + NSArrayController + NSTableView + NSArrayController + NSTableView + NSView + NSObjectController + NSObjectController + NSSearchField + NSView + NSView + NSView + NSView + NSView + NSView + NSView + NSView + NSWindow + + + + cheatConfigBox + NSBox + + + cheatDatabaseController + NSArrayController + + + cheatDatabaseSheet + NSWindow + + + cheatListController + NSArrayController + + + cheatListTable + NSTableView + + + cheatSearchListController + NSArrayController + + + cheatSearchListTable + NSTableView + + + cheatSearchView + NSView + + + cheatSelectedItemController + NSObjectController + + + cheatWindowController + NSObjectController + + + searchField + NSSearchField + + + viewConfigureActionReplayCheat + NSView + + + viewConfigureCodeBreakerCheat + NSView + + + viewConfigureInternalCheat + NSView + + + viewConfigureNoSelection + NSView + + + viewSearchComparativeContinue + NSView + + + viewSearchComparativeStart + NSView + + + viewSearchExactValue + NSView + + + viewSearchNoSelection + NSView + + + window + NSWindow + + + + IBProjectSource + userinterface/cheatWindowDelegate.h + + + + EmuWindowDelegate + NSObject + + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + change3DRenderDepthComparisonThreshold: + id + + + change3DRenderEdgeMarking: + id + + + change3DRenderFog: + id + + + change3DRenderHighPrecisionColorInterpolation: + id + + + change3DRenderLineHack: + id + + + change3DRenderMethod: + id + + + change3DRenderTextures: + id + + + change3DRenderThreads: + id + + + changeAudioEngine: + id + + + changeBilinearOutput: + id + + + changeCoreEmuFlags: + id + + + changeCoreSpeed: + id + + + changeDisplayMode: + id + + + changeFirmwareSettings: + id + + + changeRomSaveType: + id + + + changeRotation: + id + + + changeRotationRelative: + id + + + changeScale: + id + + + changeSpuAdvancedLogic: + id + + + changeSpuInterpolationMode: + id + + + changeSpuSyncMethod: + id + + + changeSpuSyncMode: + id + + + changeVideoFilter: + id + + + changeVolume: + id + + + cheatsDisable: + id + + + closeMigrationSheet: + id + + + closeRom: + id + + + copy: + id + + + ejectCard: + id + + + executeCoreToggle: + id + + + exportRomSave: + id + + + hudDisable: + id + + + importRomSave: + id + + + loadEmuSaveStateSlot: + id + + + openEmuSaveState: + id + + + openRom: + id + + + resetCore: + id + + + revertEmuSaveState: + id + + + saveEmuSaveState: + id + + + saveEmuSaveStateAs: + id + + + saveEmuSaveStateSlot: + id + + + saveScreenshotAs: + id + + + selectExportRomSaveFormat: + id + + + selectScreenshotFileFormat: + id + + + speedLimitDisable: + id + + + toggleAutoFrameSkip: + id + + + toggleGPUState: + id + + + toggleKeepMinDisplaySizeAtNormal: + id + + + toggleStatusBar: + id + + + writeDefaults3DRenderingSettings: + id + + + writeDefaultsDisplayRotation: + id + + + writeDefaultsEmulationSettings: + id + + + writeDefaultsHUDSettings: + id + + + writeDefaultsSoundSettings: + id + + + writeDefaultsVideoOutputSettings: + id + + + + NSObjectController + NSObjectController + NSObjectController + NSArrayController + NSArrayController + NSObjectController + CheatWindowDelegate + NSView + NSObjectController + NSView + NSObjectController + NSObjectController + NSWindow + NSView + NSWindow + NSWindow + + + + cdsCoreController + NSObjectController + + + cdsDisplayController + NSObjectController + + + cdsSoundController + NSObjectController + + + cheatDatabaseController + NSArrayController + + + cheatListController + NSArrayController + + + cheatWindowController + NSObjectController + + + cheatWindowDelegate + CheatWindowDelegate + + + displayView + NSView + + + emuWindowController + NSObjectController + + + exportRomSavePanelAccessoryView + NSView + + + firmwarePanelController + NSObjectController + + + romInfoPanelController + NSObjectController + + + saveFileMigrationSheet + NSWindow + + + saveScreenshotPanelAccessoryView + NSView + + + saveStatePrecloseSheet + NSWindow + + + window + NSWindow + + + + IBProjectSource + userinterface/emuWindowDelegate.h + + + + InputPrefsView + NSView + + inputButtonSet: + id + + + inputButtonSet: + + inputButtonSet: + id + + + + prefWindow + NSWindow + + + prefWindow + + prefWindow + NSWindow + + + + IBProjectSource + userinterface/inputPrefsView.h + + + + OpenGLDisplayView + NSOpenGLView + + IBProjectSource + userinterface/displayView.h + + + + PreferencesWindowDelegate + NSObject + + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + chooseARM7BiosImage: + id + + + chooseARM9BiosImage: + id + + + chooseAdvansceneDatabase: + id + + + chooseCheatDatabase: + id + + + chooseFirmwareImage: + id + + + chooseRomForAutoload: + id + + + closeFirmwareConfigSheet: + id + + + configureInternalFirmware: + id + + + selectAutoloadRomOption: + id + + + selectDisplayMode: + id + + + selectDisplayRotation: + id + + + selectDisplaySize: + id + + + selectSPUSyncMethod: + id + + + selectSPUSyncMode: + id + + + selectSoundInputMode: + id + + + selectVideoFilterType: + id + + + setUseBilinear: + id + + + showDisplayView: + id + + + showEmulationView: + id + + + showGeneralView: + id + + + showInputView: + id + + + showSoundView: + id + + + updateVolumeIcon: + id + + + + NSObjectController + NSArrayController + NSObjectController + NSTextField + NSPopUpButton + NSMenuItem + NSObjectController + NSWindow + NSObjectController + NSImageView + NSPopUpButton + NSView + NSView + NSView + InputPrefsView + NSView + NSWindow + + + + cdsCoreController + NSObjectController + + + cheatDatabaseController + NSArrayController + + + cheatWindowController + NSObjectController + + + displayRotationField + NSTextField + + + displayRotationMenu + NSPopUpButton + + + displayRotationMenuCustomItem + NSMenuItem + + + emuWindowController + NSObjectController + + + firmwareConfigSheet + NSWindow + + + prefWindowController + NSObjectController + + + previewImageView + NSImageView + + + spuSyncMethodMenu + NSPopUpButton + + + viewDisplay + NSView + + + viewEmulation + NSView + + + viewGeneral + NSView + + + viewInput + InputPrefsView + + + viewSound + NSView + + + window + NSWindow + + + + IBProjectSource + userinterface/preferencesWindowDelegate.h + + + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSArrayController + NSObjectController + + IBFrameworkSource + AppKit.framework/Headers/NSArrayController.h + + + + NSBox + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSBox.h + + + + NSBrowser + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSBrowser.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSController + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSController.h + + + + NSDatePicker + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSDatePicker.h + + + + NSDatePickerCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSDatePickerCell.h + + + + NSDocumentController + NSObject + + id + id + id + id + + + + clearRecentDocuments: + id + + + newDocument: + id + + + openDocument: + id + + + saveAllDocuments: + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentController.h + + + + NSDrawer + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSImageCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSImageCell.h + + + + NSImageView + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSImageView.h + + + + NSLevelIndicator + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSLevelIndicator.h + + + + NSLevelIndicatorCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSLevelIndicatorCell.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSMovieView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMovieView.h + + + + NSNumberFormatter + NSFormatter + + IBFrameworkSource + Foundation.framework/Headers/NSNumberFormatter.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObjectController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSObjectController.h + + + + NSOpenGLView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSOpenGLView.h + + + + NSPanel + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSPanel.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSearchField + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSSearchField.h + + + + NSSearchFieldCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSSearchFieldCell.h + + + + NSSlider + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSlider.h + + + + NSSliderCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSliderCell.h + + + + NSTabView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTabView.h + + + + NSTabViewItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTabViewItem.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableHeaderView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTableHeaderView.h + + + + NSTableView + NSControl + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSToolbar + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbar.h + + + + NSToolbarItem + NSObject + + + + NSUserDefaultsController + NSController + + IBFrameworkSource + AppKit.framework/Headers/NSUserDefaultsController.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + ../../DeSmuME (XCode 3).xcodeproj + 3 + + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {16, 16} + {32, 32} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {128, 128} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {32, 32} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {420, 420} + {20, 20} + {15, 15} + {8, 8} + {128, 128} + {9, 8} + {7, 2} + {32, 32} + {16, 15} + {8, 8} + {15, 15} + + + diff --git a/desmume/src/cocoa/userinterface/appDelegate.h b/desmume/src/cocoa/userinterface/appDelegate.h new file mode 100644 index 000000000..5f33f713f --- /dev/null +++ b/desmume/src/cocoa/userinterface/appDelegate.h @@ -0,0 +1,104 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + +@class InputPrefsView; +@class CocoaHIDManager; + + +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 +@interface AppDelegate : NSObject +#else +@interface AppDelegate : NSObject +#endif +{ + NSObject *dummyObject; + NSArrayController *fileMigrationList; + NSObjectController *aboutWindowController; + NSObjectController *emuWindowController; + NSObjectController *prefWindowController; + NSObjectController *cheatWindowController; + NSObjectController *cdsCoreController; + + NSWindow *mainWindow; + NSWindow *prefWindow; + NSWindow *cheatListWindow; + NSWindow *migrationWindow; + NSView *prefGeneralView; + InputPrefsView *inputPrefsView; + + NSMenu *mLoadStateSlot; + NSMenu *mSaveStateSlot; + + NSBox *boxGeneralInfo; + NSBox *boxTitles; + NSBox *boxARMBinaries; + NSBox *boxFileSystem; + NSBox *boxMisc; + + CocoaHIDManager *hidManager; + BOOL migrationFilesPresent; +} + +@property (readonly) IBOutlet NSObject *dummyObject; +@property (readonly) IBOutlet NSArrayController *fileMigrationList; +@property (readonly) IBOutlet NSObjectController *aboutWindowController; +@property (readonly) IBOutlet NSObjectController *emuWindowController; +@property (readonly) IBOutlet NSObjectController *prefWindowController; +@property (readonly) IBOutlet NSObjectController *cheatWindowController; +@property (readonly) IBOutlet NSObjectController *cdsCoreController; +@property (readonly) IBOutlet NSWindow *mainWindow; +@property (readonly) IBOutlet NSWindow *prefWindow; +@property (readonly) IBOutlet NSWindow *cheatListWindow; +@property (readonly) IBOutlet NSWindow *migrationWindow; +@property (readonly) IBOutlet NSView *prefGeneralView; +@property (readonly) IBOutlet NSMenu *mLoadStateSlot; +@property (readonly) IBOutlet NSMenu *mSaveStateSlot; +@property (readonly) IBOutlet InputPrefsView *inputPrefsView; + +@property (readonly) IBOutlet NSBox *boxGeneralInfo; +@property (readonly) IBOutlet NSBox *boxTitles; +@property (readonly) IBOutlet NSBox *boxARMBinaries; +@property (readonly) IBOutlet NSBox *boxFileSystem; +@property (readonly) IBOutlet NSBox *boxMisc; + +@property (retain) CocoaHIDManager *hidManager; +@property (assign) BOOL migrationFilesPresent; + +// Emulation Menu + +// View Menu + +// Tools Menu +- (IBAction) showSupportFolderInFinder:(id)sender; + +// Help Menu +- (IBAction) launchWebsite:(id)sender; +- (IBAction) launchForums:(id)sender; +- (IBAction) bugReport:(id)sender; + +- (void) setupSlotMenuItems; +- (NSMenuItem *) addSlotMenuItem:(NSMenu *)menu slotNumber:(NSUInteger)slotNumber; +- (void) setupUserDefaults; +- (void) updateInputDisplayFields; +- (IBAction) showMigrationWindow:(id)sender; +- (IBAction) handleMigrationWindow:(id)sender; +- (void) setRomInfoPanelBoxTitleColors; + +@end diff --git a/desmume/src/cocoa/userinterface/appDelegate.mm b/desmume/src/cocoa/userinterface/appDelegate.mm new file mode 100644 index 000000000..3e010f6ba --- /dev/null +++ b/desmume/src/cocoa/userinterface/appDelegate.mm @@ -0,0 +1,589 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "appDelegate.h" +#import "emuWindowDelegate.h" +#import "preferencesWindowDelegate.h" +#import "cheatWindowDelegate.h" +#import "displayView.h" +#import "inputPrefsView.h" + +#import "cocoa_core.h" +#import "cocoa_file.h" +#import "cocoa_firmware.h" +#import "cocoa_globals.h" +#import "cocoa_hid.h" +#import "cocoa_input.h" +#import "cocoa_mic.h" + + +@implementation AppDelegate + +@dynamic dummyObject; +@synthesize mainWindow; +@synthesize prefWindow; +@synthesize cheatListWindow; +@synthesize migrationWindow; +@synthesize prefGeneralView; +@synthesize mLoadStateSlot; +@synthesize mSaveStateSlot; +@synthesize inputPrefsView; +@synthesize fileMigrationList; +@synthesize aboutWindowController; +@synthesize emuWindowController; +@synthesize prefWindowController; +@synthesize cdsCoreController; +@synthesize cheatWindowController; + +@synthesize boxGeneralInfo; +@synthesize boxTitles; +@synthesize boxARMBinaries; +@synthesize boxFileSystem; +@synthesize boxMisc; + +@synthesize hidManager; +@synthesize migrationFilesPresent; + +- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename +{ + BOOL result = NO; + NSURL *fileURL = [NSURL fileURLWithPath:filename]; + EmuWindowDelegate *mainWindowDelegate = [mainWindow delegate]; + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if (cdsCore == nil) + { + return result; + } + + NSString *fileKind = [CocoaDSFile fileKindByURL:fileURL]; + if ([fileKind isEqualToString:@"ROM"]) + { + result = [mainWindowDelegate handleLoadRom:fileURL]; + if ([mainWindowDelegate isShowingSaveStateSheet] || [mainWindowDelegate isShowingFileMigrationSheet]) + { + // Just reply YES if a sheet is showing, even if the ROM hasn't actually been loaded yet. + // This will prevent the error dialog from showing, which is the intended behavior in + // this case. + result = YES; + } + } + + return result; +} + +- (void)applicationWillFinishLaunching:(NSNotification *)notification +{ + EmuWindowDelegate *mainWindowDelegate = [mainWindow delegate]; + PreferencesWindowDelegate *prefWindowDelegate = [prefWindow delegate]; + CheatWindowDelegate *cheatWindowDelegate = [cheatListWindow delegate]; + + // Create the needed directories in Application Support if they haven't already + // been created. + if (![CocoaDSFile setupAllAppDirectories]) + { + // Need to show a modal dialog here. + return; + } + + [CocoaDSFile setupAllFilePaths]; + + // Setup the About window. + NSMutableDictionary *aboutWindowProperties = [NSMutableDictionary dictionaryWithObjectsAndKeys: + [[NSBundle mainBundle] pathForResource:@FILENAME_README ofType:@""], @"readMePath", + [[NSBundle mainBundle] pathForResource:@FILENAME_COPYING ofType:@""], @"licensePath", + [[NSBundle mainBundle] pathForResource:@FILENAME_AUTHORS ofType:@""], @"authorsPath", + [[NSBundle mainBundle] pathForResource:@FILENAME_CHANGELOG ofType:@""], @"changeLogPath", + [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], @"versionString", + @__DATE__, @"dateString", + nil]; + + [aboutWindowController setContent:aboutWindowProperties]; + + // Register the application's defaults. + NSDictionary *prefsDict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"DefaultUserPrefs" ofType:@"plist"]]; + if (prefsDict == nil) + { + [[NSAlert alertWithMessageText:NSSTRING_ALERT_CRITICAL_FILE_MISSING_PRI defaultButton:nil alternateButton:nil otherButton:nil informativeTextWithFormat:NSSTRING_ALERT_CRITICAL_FILE_MISSING_SEC] runModal]; + [NSApp terminate: nil]; + return; + } + + [[NSUserDefaults standardUserDefaults] registerDefaults:prefsDict]; + + // Change the title colors of the NSBox objects in the ROM Info panel. We change the + // colors manually here because you can't change them in Interface Builder. Boo!!! + [self setRomInfoPanelBoxTitleColors]; + + // Set up all the object controllers according to our default windows. + [emuWindowController setContent:[mainWindowDelegate bindings]]; + [prefWindowController setContent:[prefWindowDelegate bindings]]; + [cheatWindowController setContent:[cheatWindowDelegate bindings]]; + + // Set the preferences window to the general view by default. + [prefWindowDelegate switchContentView:prefGeneralView]; + + // Setup the slot menu items. We set this up manually instead of through Interface + // Builder because we're assuming an arbitrary number of slot items. + [self setupSlotMenuItems]; + + // Setup the HID Input manager. + [self setHidManager:[[[CocoaHIDManager alloc] init] autorelease]]; + + // Set the display view delegate. + DisplayViewDelegate *newDispViewDelegate = [[DisplayViewDelegate alloc] init]; + [newDispViewDelegate setView:[mainWindowDelegate displayView]]; + [mainWindowDelegate setDispViewDelegate:newDispViewDelegate]; + [[mainWindowDelegate displayView] setDispViewDelegate:newDispViewDelegate]; + + // Init the DS emulation core. + CocoaDSCore *newCore = [[[CocoaDSCore alloc] init] autorelease]; + [cdsCoreController setContent:newCore]; + + // Init the DS controller and microphone. + CocoaDSController *newController = [[[CocoaDSController alloc] init] autorelease]; + [newCore setCdsController:newController]; + [inputPrefsView setCdsController:newController]; + [newDispViewDelegate setCdsController:newController]; + + // Init the DS displays. + CocoaDSDisplay *newComboDisplay = [[[CocoaDSDisplay alloc] init] autorelease]; + [newComboDisplay setDelegate:newDispViewDelegate]; + [newCore addOutput:newComboDisplay]; + NSPort *guiPort = [NSPort port]; + [[NSRunLoop currentRunLoop] addPort:guiPort forMode:NSDefaultRunLoopMode]; + + // Init the DS speakers. + CocoaDSSpeaker *newSpeaker = [[[CocoaDSSpeaker alloc] init] autorelease]; + [newCore addOutput:newSpeaker]; + [mainWindowDelegate setCdsSpeaker:newSpeaker]; + + // Start the core thread. + [NSThread detachNewThreadSelector:@selector(runThread:) toTarget:newCore withObject:nil]; + + // Wait until the emulation core has finished starting up. + while (!([CocoaDSCore isCoreStarted] && [newCore thread] != nil)) + { + [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]; + } + + // Start up the threads for our outputs. + [NSThread detachNewThreadSelector:@selector(runThread:) toTarget:newComboDisplay withObject:nil]; + [NSThread detachNewThreadSelector:@selector(runThread:) toTarget:newSpeaker withObject:nil]; + + // Wait until the GPU and SPU are finished starting up. + while (!([CocoaDSSpeaker isSPUStarted] && + [newComboDisplay thread] != nil && [newSpeaker thread] != nil)) + { + [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]; + } + + // Setup the applications settings from the user defaults file. + [self setupUserDefaults]; + + // Setup the window display view. + [[mainWindowDelegate displayView] setNextResponder:mainWindow]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +{ + EmuWindowDelegate *mainWindowDelegate = [mainWindow delegate]; + + // Load a new ROM on launch per user preferences. + BOOL loadROMOnLaunch = [[NSUserDefaults standardUserDefaults] boolForKey:@"General_AutoloadROMOnLaunch"]; + if (loadROMOnLaunch && ![mainWindowDelegate isRomLoaded]) + { + NSInteger autoloadRomOption = [[NSUserDefaults standardUserDefaults] integerForKey:@"General_AutoloadROMOption"]; + NSURL *autoloadRomURL = nil; + + if (autoloadRomOption == ROMAUTOLOADOPTION_LOAD_LAST) + { + autoloadRomURL = [CocoaDSFile lastLoadedRomURL]; + } + else if(autoloadRomOption == ROMAUTOLOADOPTION_LOAD_SELECTED) + { + NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; + if (autoloadRomPath != nil && [autoloadRomPath length] > 0) + { + autoloadRomURL = [NSURL fileURLWithPath:autoloadRomPath]; + } + } + + if (autoloadRomURL != nil) + { + [mainWindowDelegate handleLoadRom:autoloadRomURL]; + } + } + + // Make the display view black. + [[mainWindowDelegate dispViewDelegate] setViewToBlack]; + + //Bring the application to the front + [NSApp activateIgnoringOtherApps:TRUE]; + [mainWindow makeKeyAndOrderFront:nil]; + [mainWindow makeMainWindow]; + + // Present the file migration window to the user (if they haven't disabled it). + [self setMigrationFilesPresent:NO]; + if (![[NSUserDefaults standardUserDefaults] boolForKey:@"General_DoNotAskMigrate"]) + { + [self showMigrationWindow:nil]; + } +} + +- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender +{ + EmuWindowDelegate *mainWindowDelegate = [mainWindow delegate]; + + // If a file needs to be saved, give the user a chance to save it + // before quitting. + BOOL didRomClose = [mainWindowDelegate handleUnloadRom:REASONFORCLOSE_TERMINATE romToLoad:nil]; + if (!didRomClose) + { + if ([mainWindowDelegate isShowingSaveStateSheet]) + { + return NSTerminateLater; + } + } + + // Either there wasn't a file that needed to be saved, or there + // wasn't anything loaded. Just continue program termination normally. + return NSTerminateNow; +} + +- (void)applicationWillTerminate:(NSNotification *)notification +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if (cdsCore != nil) + { + [cdsCore setCoreState:CORESTATE_PAUSE]; + [cdsCore removeAllOutputs]; + [cdsCoreController setContent:nil]; + } +} + +- (IBAction) showSupportFolderInFinder:(id)sender +{ + NSURL *folderURL = [CocoaDSFile userAppSupportBaseURL]; + + [[NSWorkspace sharedWorkspace] openFile:[folderURL path] withApplication:@"Finder"]; +} + +- (IBAction) launchWebsite:(id)sender +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_WEBSITE]]; +} + +- (IBAction) launchForums:(id)sender +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_FORUM_SITE]]; +} + +- (IBAction) bugReport:(id)sender +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@STRING_DESMUME_BUG_SITE]]; +} + +- (void) setupSlotMenuItems +{ + NSInteger i; + NSMenuItem *loadItem = nil; + NSMenuItem *saveItem = nil; + + for(i = 0; i < MAX_SAVESTATE_SLOTS; i++) + { + loadItem = [self addSlotMenuItem:mLoadStateSlot slotNumber:(NSUInteger)(i + 1)]; + [loadItem setKeyEquivalentModifierMask:0]; + [loadItem setTag:i]; + [loadItem setAction:@selector(loadEmuSaveStateSlot:)]; + + saveItem = [self addSlotMenuItem:mSaveStateSlot slotNumber:(NSUInteger)(i + 1)]; + [saveItem setKeyEquivalentModifierMask:NSShiftKeyMask]; + [saveItem setTag:i]; + [saveItem setAction:@selector(saveEmuSaveStateSlot:)]; + } +} + +- (NSMenuItem *) addSlotMenuItem:(NSMenu *)menu slotNumber:(NSUInteger)slotNumber +{ + NSUInteger slotNumberKey = slotNumber; + + if (slotNumber == 10) + { + slotNumberKey = 0; + } + + NSMenuItem *mItem = [menu addItemWithTitle:[NSString stringWithFormat:NSSTRING_TITLE_SLOT_NUMBER, slotNumber] + action:nil + keyEquivalent:[NSString stringWithFormat:@"%d", slotNumberKey]]; + + [mItem setTarget:[mainWindow delegate]]; + + return mItem; +} + +- (void) setupUserDefaults +{ + EmuWindowDelegate *mainWindowDelegate = [mainWindow delegate]; + PreferencesWindowDelegate *prefWindowDelegate = [prefWindow delegate]; + NSMutableDictionary *prefBindings = [prefWindowDelegate bindings]; + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + // Set the emulation flags. + NSUInteger emuFlags = 0; + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_AdvancedBusLevelTiming"]) + { + emuFlags |= EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_UseExternalBIOSImages"]) + { + emuFlags |= EMULATION_USE_EXTERNAL_BIOS_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_BIOSEmulateSWI"]) + { + emuFlags |= EMULATION_BIOS_SWI_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_BIOSPatchDelayLoopSWI"]) + { + emuFlags |= EMULATION_PATCH_DELAY_LOOP_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_UseExternalFirmwareImage"]) + { + emuFlags |= EMULATION_USE_EXTERNAL_FIRMWARE_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_FirmwareBoot"]) + { + emuFlags |= EMULATION_BOOT_FROM_FIRMWARE_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_EmulateEnsata"]) + { + emuFlags |= EMULATION_ENSATA_MASK; + } + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_UseDebugConsole"]) + { + emuFlags |= EMULATION_DEBUG_CONSOLE_MASK; + } + + [cdsCore setEmulationFlags:emuFlags]; + + // Set up the firmware per user preferences. + NSMutableDictionary *newFWDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: + [[NSUserDefaults standardUserDefaults] objectForKey:@"FirmwareConfig_Nickname"], @"Nickname", + [[NSUserDefaults standardUserDefaults] objectForKey:@"FirmwareConfig_Message"], @"Message", + [[NSUserDefaults standardUserDefaults] objectForKey:@"FirmwareConfig_FavoriteColor"], @"FavoriteColor", + [[NSUserDefaults standardUserDefaults] objectForKey:@"FirmwareConfig_Birthday"], @"Birthday", + [[NSUserDefaults standardUserDefaults] objectForKey:@"FirmwareConfig_Language"], @"Language", + nil]; + + CocoaDSFirmware *newFirmware = [[CocoaDSFirmware alloc] initWithDictionary:newFWDict]; + [cdsCore setCdsFirmware:newFirmware]; + [newFirmware update]; + + // Setup the ARM7 BIOS, ARM9 BIOS, and firmware image paths per user preferences. + NSString *arm7BiosImagePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"BIOS_ARM7ImagePath"]; + if (arm7BiosImagePath != nil) + { + [cdsCore setArm7ImageURL:[NSURL fileURLWithPath:arm7BiosImagePath]]; + [prefBindings setValue:[arm7BiosImagePath lastPathComponent] forKey:@"Arm7BiosImageName"]; + } + else + { + [cdsCore setArm7ImageURL:nil]; + [prefBindings setValue:nil forKey:@"Arm7BiosImageName"]; + } + + NSString *arm9BiosImagePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"BIOS_ARM9ImagePath"]; + if (arm9BiosImagePath != nil) + { + [cdsCore setArm9ImageURL:[NSURL fileURLWithPath:arm9BiosImagePath]]; + [prefBindings setValue:[arm9BiosImagePath lastPathComponent] forKey:@"Arm9BiosImageName"]; + } + else + { + [cdsCore setArm9ImageURL:nil]; + [prefBindings setValue:nil forKey:@"Arm9BiosImageName"]; + } + + NSString *firmwareImagePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"Emulation_FirmwareImagePath"]; + if (firmwareImagePath != nil) + { + [cdsCore setFirmwareImageURL:[NSURL fileURLWithPath:firmwareImagePath]]; + [prefBindings setValue:[firmwareImagePath lastPathComponent] forKey:@"FirmwareImageName"]; + } + else + { + [cdsCore setFirmwareImageURL:nil]; + [prefBindings setValue:nil forKey:@"FirmwareImageName"]; + } + + NSString *advansceneDatabasePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"Advanscene_DatabasePath"]; + if (advansceneDatabasePath != nil) + { + [prefBindings setValue:[advansceneDatabasePath lastPathComponent] forKey:@"AdvansceneDatabaseName"]; + } + + NSString *cheatDatabasePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"R4Cheat_DatabasePath"]; + if (cheatDatabasePath != nil) + { + [prefBindings setValue:[cheatDatabasePath lastPathComponent] forKey:@"R4CheatDatabaseName"]; + } + + // Set the sound input mode per user preferences. + [[cdsCore cdsController] setSoundInputMode:[[NSUserDefaults standardUserDefaults] integerForKey:@"Input_AudioInputMode"]]; + + // Update the SPU Sync controls in the Preferences window. + if ([[NSUserDefaults standardUserDefaults] integerForKey:@"SPU_SyncMode"] == SPU_SYNC_MODE_DUAL_SYNC_ASYNC) + { + [[prefWindowDelegate spuSyncMethodMenu] setEnabled:NO]; + } + else + { + [[prefWindowDelegate spuSyncMethodMenu] setEnabled:YES]; + } + + // Set the text field for the autoloaded ROM. + NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; + if (autoloadRomPath != nil) + { + [prefBindings setValue:[autoloadRomPath lastPathComponent] forKey:@"AutoloadRomName"]; + } + else + { + [prefBindings setValue:nil forKey:@"AutoloadRomName"]; + } + + // Update all of the input display fields. + [self updateInputDisplayFields]; + + // Set the menu for the display rotation. + double displayRotation = (double)[[NSUserDefaults standardUserDefaults] floatForKey:@"DisplayView_Rotation"]; + [prefWindowDelegate updateDisplayRotationMenu:displayRotation]; + + // Set the default sound volume per user preferences. + [prefWindowDelegate updateVolumeIcon:nil]; + + [mainWindowDelegate setupUserDefaults]; +} + +- (void) updateInputDisplayFields +{ + PreferencesWindowDelegate *prefWindowDelegate = [prefWindow delegate]; + NSMutableDictionary *prefBindings = [prefWindowDelegate bindings]; + + if ([[NSUserDefaults standardUserDefaults] dictionaryForKey:@"Input_ControllerMappings"] == nil) + { + return; + } + + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Up"] forKey:@"Input_Up"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Down"] forKey:@"Input_Down"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Left"] forKey:@"Input_Left"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Right"] forKey:@"Input_Right"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"A"] forKey:@"Input_A"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"B"] forKey:@"Input_B"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"X"] forKey:@"Input_X"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Y"] forKey:@"Input_Y"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"L"] forKey:@"Input_L"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"R"] forKey:@"Input_R"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Start"] forKey:@"Input_Start"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Select"] forKey:@"Input_Select"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Microphone"] forKey:@"Input_Microphone"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Lid"] forKey:@"Input_Lid"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Debug"] forKey:@"Input_Debug"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Speed Half"] forKey:@"Input_SpeedHalf"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Speed Double"] forKey:@"Input_SpeedDouble"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"HUD"] forKey:@"Input_HUD"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Execute"] forKey:@"Input_Execute"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Pause"] forKey:@"Input_Pause"]; + [prefBindings setValue:[inputPrefsView parseMappingDisplayString:@"Reset"] forKey:@"Input_Reset"]; +} + +- (IBAction) showMigrationWindow:(id)sender +{ + NSMutableArray *fileList = [CocoaDSFile completeFileList]; + if (fileList != nil) + { + if ([fileList count] == 0) + { + [self setMigrationFilesPresent:NO]; + } + else + { + [self setMigrationFilesPresent:YES]; + } + + if (sender == nil && ![self migrationFilesPresent]) + { + return; + } + } + + [fileMigrationList setContent:fileList]; + [migrationWindow center]; + [migrationWindow makeKeyAndOrderFront:nil]; +} + +- (IBAction) handleMigrationWindow:(id)sender +{ + NSInteger option = [(NSControl *)sender tag]; + NSMutableArray *fileList = [fileMigrationList content]; + + switch (option) + { + case COCOA_DIALOG_DEFAULT: + [CocoaDSFile copyFileListToCurrent:fileList]; + break; + + case COCOA_DIALOG_OPTION: + [CocoaDSFile moveFileListToCurrent:fileList]; + break; + + default: + break; + } + + [[(NSControl *)sender window] close]; +} + +- (void) setRomInfoPanelBoxTitleColors +{ + NSColor *boxTitleColor = [NSColor whiteColor]; + + [[boxGeneralInfo titleCell] setTextColor:boxTitleColor]; + [[boxTitles titleCell] setTextColor:boxTitleColor]; + [[boxARMBinaries titleCell] setTextColor:boxTitleColor]; + [[boxFileSystem titleCell] setTextColor:boxTitleColor]; + [[boxMisc titleCell] setTextColor:boxTitleColor]; + + [boxGeneralInfo setNeedsDisplay:YES]; + [boxTitles setNeedsDisplay:YES]; + [boxARMBinaries setNeedsDisplay:YES]; + [boxFileSystem setNeedsDisplay:YES]; + [boxMisc setNeedsDisplay:YES]; +} + +@end diff --git a/desmume/src/cocoa/userinterface/cheatWindowDelegate.h b/desmume/src/cocoa/userinterface/cheatWindowDelegate.h new file mode 100644 index 000000000..c40634c55 --- /dev/null +++ b/desmume/src/cocoa/userinterface/cheatWindowDelegate.h @@ -0,0 +1,122 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + +@class CocoaDSCheatItem; +@class CocoaDSCheatManager; +@class CocoaDSCheatSearch; +@class CocoaDSCheatSearchParams; + + +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 +@interface CheatWindowDelegate : NSObject +#else +@interface CheatWindowDelegate : NSObject +#endif +{ + NSObject *dummyObject; + NSWindow *window; + NSBox *cheatConfigBox; + NSView *cheatSearchView; + NSTableView *cheatListTable; + NSTableView *cheatSearchListTable; + NSArrayController *cheatListController; + NSArrayController *cheatSearchListController; + NSArrayController *cheatDatabaseController; + NSObjectController *cheatWindowController; + NSObjectController *cheatSelectedItemController; + + NSView *currentView; + NSView *viewConfigureNoSelection; + NSView *viewConfigureInternalCheat; + NSView *viewConfigureActionReplayCheat; + NSView *viewConfigureCodeBreakerCheat; + NSView *currentSearchStyleView; + NSView *viewSearchNoSelection; + NSView *viewSearchExactValue; + NSView *viewSearchComparativeStart; + NSView *viewSearchComparativeContinue; + + NSSearchField *searchField; + + NSWindow *cheatDatabaseSheet; + + NSUInteger untitledCount; + + NSMutableDictionary *bindings; + CocoaDSCheatItem *workingCheat; + CocoaDSCheatManager *cdsCheats; + CocoaDSCheatSearch *cdsCheatSearch; +} + +@property (assign) IBOutlet NSObject *dummyObject; +@property (readonly) IBOutlet NSWindow *window; +@property (readonly) IBOutlet NSBox *cheatConfigBox; +@property (readonly) IBOutlet NSView *cheatSearchView; +@property (readonly) IBOutlet NSTableView *cheatListTable; +@property (readonly) IBOutlet NSTableView *cheatSearchListTable; +@property (readonly) IBOutlet NSArrayController *cheatListController; +@property (readonly) IBOutlet NSArrayController *cheatSearchListController; +@property (readonly) IBOutlet NSArrayController *cheatDatabaseController; +@property (readonly) IBOutlet NSObjectController *cheatWindowController; +@property (readonly) IBOutlet NSObjectController *cheatSelectedItemController; + +@property (readonly) IBOutlet NSView *viewConfigureNoSelection; +@property (readonly) IBOutlet NSView *viewConfigureInternalCheat; +@property (readonly) IBOutlet NSView *viewConfigureActionReplayCheat; +@property (readonly) IBOutlet NSView *viewConfigureCodeBreakerCheat; + +@property (readonly) IBOutlet NSView *viewSearchNoSelection; +@property (readonly) IBOutlet NSView *viewSearchExactValue; +@property (readonly) IBOutlet NSView *viewSearchComparativeStart; +@property (readonly) IBOutlet NSView *viewSearchComparativeContinue; + +@property (readonly) IBOutlet NSSearchField *searchField; + +@property (readonly) IBOutlet NSWindow *cheatDatabaseSheet; + +@property (assign) NSUInteger untitledCount; +@property (assign) NSMutableDictionary *bindings; +@property (assign) CocoaDSCheatItem *workingCheat; +@property (assign) CocoaDSCheatManager *cdsCheats; +@property (assign) CocoaDSCheatSearch *cdsCheatSearch; + +- (IBAction) addToList:(id)sender; +- (IBAction) removeFromList:(id)sender; +- (IBAction) viewDatabase:(id)sender; +- (IBAction) setInternalCheatValue:(id)sender; +- (IBAction) applyConfiguration:(id)sender; +- (IBAction) selectCheatType:(id)sender; + +- (IBAction) selectCheatSearchStyle:(id)sender; +- (IBAction) runExactValueSearch:(id)sender; +- (IBAction) runComparativeSearch:(id)sender; +- (void) searchDidFinish:(NSNotification *)aNotification; +- (IBAction) resetSearch:(id)sender; + +- (void) setCheatConfigViewByType:(NSInteger)cheatTypeID; +- (void) setCheatSearchViewByStyle:(NSInteger)searchStyleID; + +- (IBAction) selectAllCheatsInDatabase:(id)sender; +- (IBAction) selectNoneCheatsInDatabase:(id)sender; +- (void) addSelectedFromCheatDatabase; +- (IBAction) closeCheatDatabaseSheet:(id)sender; +- (void) didEndCheatDatabaseSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; + +@end diff --git a/desmume/src/cocoa/userinterface/cheatWindowDelegate.mm b/desmume/src/cocoa/userinterface/cheatWindowDelegate.mm new file mode 100644 index 000000000..a1233c88e --- /dev/null +++ b/desmume/src/cocoa/userinterface/cheatWindowDelegate.mm @@ -0,0 +1,538 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "cheatWindowDelegate.h" + +#import "cocoa_globals.h" +#import "cocoa_cheat.h" +#import "cocoa_util.h" + + +@implementation CheatWindowDelegate + +@dynamic dummyObject; +@synthesize window; +@synthesize cheatConfigBox; +@synthesize cheatSearchView; +@synthesize cheatListTable; +@synthesize cheatSearchListTable; +@synthesize cheatListController; +@synthesize cheatSearchListController; +@synthesize cheatDatabaseController; +@synthesize cheatWindowController; +@synthesize cheatSelectedItemController; + +@synthesize viewConfigureNoSelection; +@synthesize viewConfigureInternalCheat; +@synthesize viewConfigureActionReplayCheat; +@synthesize viewConfigureCodeBreakerCheat; +@synthesize viewSearchNoSelection; +@synthesize viewSearchExactValue; +@synthesize viewSearchComparativeStart; +@synthesize viewSearchComparativeContinue; + +@synthesize searchField; + +@synthesize cheatDatabaseSheet; + +@synthesize untitledCount; +@synthesize bindings; +@synthesize cdsCheats; +@synthesize cdsCheatSearch; +@synthesize workingCheat; + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return nil; + } + + bindings = [[NSMutableDictionary alloc] init]; + if (bindings == nil) + { + [self release]; + self = nil; + return self; + } + + cdsCheatSearch = [[CocoaDSCheatSearch alloc] init]; + if (cdsCheatSearch == nil) + { + [bindings release]; + [self release]; + self = nil; + return self; + } + + workingCheat = nil; + currentView = nil; + currentSearchStyleView = nil; + untitledCount = 0; + + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"hasSelection"]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"hasItems"]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isSearchStarted"]; + [bindings setValue:[NSNumber numberWithInteger:CHEATSEARCH_SEARCHSTYLE_EXACT_VALUE] forKey:@"cheatSearchStyle"]; + [bindings setValue:[NSNumber numberWithInteger:CHEATSEARCH_UNSIGNED] forKey:@"cheatSearchSignType"]; + [bindings setValue:@"Search not started." forKey:@"cheatSearchAddressCount"]; + + return self; +} + +- (void)dealloc +{ + [cdsCheatSearch release]; + [bindings release]; + + [super dealloc]; +} + +- (IBAction) addToList:(id)sender +{ + if (self.cdsCheats == nil) + { + return; + } + + NSString *untitledString = nil; + + self.untitledCount++; + if (self.untitledCount > 1) + { + untitledString = [NSString stringWithFormat:@"Untitled %d", self.untitledCount]; + } + else + { + untitledString = @"Untitled"; + } + + CocoaDSCheatItem *newCheatItem = [[[CocoaDSCheatItem alloc] init] autorelease]; + newCheatItem.cheatType = CHEAT_TYPE_INTERNAL; + newCheatItem.description = untitledString; + + [cheatListController addObject:newCheatItem]; + [self.cdsCheats add:newCheatItem]; + [self.cdsCheats save]; + + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"hasItems"]; +} + +- (IBAction) removeFromList:(id)sender +{ + NSMutableArray *cheatList = (NSMutableArray *)[cheatListController content]; + if (cdsCheats == nil || cheatList == nil) + { + return; + } + + NSUInteger selectionIndex = [cheatListController selectionIndex]; + if (selectionIndex == NSNotFound) + { + return; + } + + NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:selectionIndex]; + + NSArray *selectedObjects = [cheatListController selectedObjects]; + CocoaDSCheatItem *selectedCheat = (CocoaDSCheatItem *)[selectedObjects objectAtIndex:0]; + [self.cdsCheats remove:selectedCheat]; + [cheatListController removeObject:selectedCheat]; + + [self.cdsCheats save]; + [cheatListTable deselectAll:sender]; + + NSUInteger cheatCount = [cheatList count]; + if (cheatCount > 0) + { + if (selectionIndex >= cheatCount) + { + selectionIndex--; + indexSet = [NSIndexSet indexSetWithIndex:selectionIndex]; + } + + [cheatListTable selectRowIndexes:indexSet byExtendingSelection:NO]; + } + else + { + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"hasItems"]; + } +} + +- (IBAction) viewDatabase:(id)sender +{ + [NSApp beginSheet:cheatDatabaseSheet + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(didEndCheatDatabaseSheet:returnCode:contextInfo:) + contextInfo:nil]; +} + +- (IBAction) setInternalCheatValue:(id)sender +{ + // Force end of editing of any text fields. + [window makeFirstResponder:nil]; + + [self.cdsCheats applyInternalCheat:self.workingCheat]; +} + +- (IBAction) applyConfiguration:(id)sender +{ + if (self.workingCheat == nil) + { + return; + } + + // Force end of editing of any text fields. + [window makeFirstResponder:nil]; + + [self.workingCheat mergeToParent]; + + BOOL result = [self.cdsCheats update:self.workingCheat.parent]; + if (result) + { + [self.cdsCheats save]; + } + else + { + // TODO: Display an error sheet saying that the cheat applying failed. + } +} + +- (IBAction) selectCheatType:(id)sender +{ + NSInteger cheatTypeID = [CocoaDSUtil getIBActionSenderTag:sender]; + CocoaDSCheatItem *cheatItem = [cheatSelectedItemController content]; + + cheatItem.cheatType = cheatTypeID; + + [self setCheatConfigViewByType:cheatTypeID]; +} + +- (IBAction) selectCheatSearchStyle:(id)sender +{ + NSInteger searchStyle = [CocoaDSUtil getIBActionSenderTag:sender]; + [self.bindings setValue:[NSNumber numberWithInteger:searchStyle] forKey:@"cheatSearchStyle"]; + [self setCheatSearchViewByStyle:searchStyle]; +} + +- (IBAction) runExactValueSearch:(id)sender +{ + if (self.workingCheat == nil) + { + return; + } + + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isSearchStarted"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isRunningSearch"]; + + NSInteger value = [searchField integerValue]; + UInt8 byteSize = self.workingCheat.bytes; + NSInteger signType = [(NSNumber *)[self.bindings valueForKey:@"cheatSearchSignType"] integerValue]; + NSUInteger addressCount = [cdsCheatSearch runExactValueSearch:value byteSize:byteSize signType:signType]; + [bindings setValue:[NSNumber numberWithUnsignedInteger:addressCount] forKey:@"cheatSearchAddressCount"]; + [cheatSearchListController setContent:cdsCheatSearch.addressList]; + + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"]; + +} + +- (IBAction) runComparativeSearch:(id)sender +{ + if (self.workingCheat == nil) + { + return; + } + + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isSearchStarted"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isRunningSearch"]; + + if (cdsCheatSearch.searchCount == 0) + { + [bindings setValue:@"Running initial search..." forKey:@"cheatSearchAddressCount"]; + [window displayIfNeeded]; + } + + NSInteger compSearchTypeID = [CocoaDSUtil getIBActionSenderTag:sender]; + UInt8 byteSize = self.workingCheat.bytes; + NSInteger signType = [(NSNumber *)[self.bindings valueForKey:@"cheatSearchSignType"] integerValue]; + NSUInteger addressCount = [cdsCheatSearch runComparativeSearch:compSearchTypeID byteSize:byteSize signType:signType]; + [bindings setValue:[NSNumber numberWithUnsignedInteger:addressCount] forKey:@"cheatSearchAddressCount"]; + [cheatSearchListController setContent:cdsCheatSearch.addressList]; + + NSInteger searchStyle = [(NSNumber *)[self.bindings valueForKey:@"cheatSearchStyle"] integerValue]; + if (searchStyle == CHEATSEARCH_SEARCHSTYLE_COMPARATIVE && cdsCheatSearch.searchCount == 1) + { + [self setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_COMPARATIVE]; + [bindings setValue:@"Search started!" forKey:@"cheatSearchAddressCount"]; + } + + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"]; + +} + +- (void) searchDidFinish:(NSNotification *)aNotification +{ + CocoaDSCheatSearch *searcher = [aNotification object]; + NSInteger addressCount = 0; + + if (searcher != nil) + { + addressCount = searcher.addressList.count; + [bindings setValue:[NSNumber numberWithUnsignedInteger:addressCount] forKey:@"cheatSearchAddressCount"]; + [cheatSearchListController setContent:searcher.addressList]; + + NSInteger searchStyle = [(NSNumber *)[self.bindings valueForKey:@"cheatSearchStyle"] integerValue]; + if (searchStyle == CHEATSEARCH_SEARCHSTYLE_COMPARATIVE && searcher.searchCount == 1) + { + [self setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_COMPARATIVE]; + [bindings setValue:@"Search started!" forKey:@"cheatSearchAddressCount"]; + } + } + + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRunningSearch"]; +} + +- (IBAction) resetSearch:(id)sender +{ + [cheatSearchListController setContent:nil]; + [cdsCheatSearch reset]; + [self.bindings setValue:nil forKey:@"cheatSearchSearchValue"]; + [self.bindings setValue:@"Search not started." forKey:@"cheatSearchAddressCount"]; + [self setCheatSearchViewByStyle:[(NSNumber *)[self.bindings valueForKey:@"cheatSearchStyle"] integerValue]]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isSearchStarted"]; +} + +- (void) setCheatConfigViewByType:(NSInteger)cheatTypeID +{ + NSView *newView = nil; + + if (currentView == nil) + { + currentView = viewConfigureNoSelection; + } + + switch (cheatTypeID) + { + case CHEAT_TYPE_INTERNAL: + newView = viewConfigureInternalCheat; + break; + + case CHEAT_TYPE_ACTION_REPLAY: + newView = viewConfigureActionReplayCheat; + break; + + case CHEAT_TYPE_CODE_BREAKER: + newView = viewConfigureCodeBreakerCheat; + break; + + default: + break; + } + + if (newView != nil) + { + NSRect frameRect = [currentView frame]; + [currentView retain]; + [cheatConfigBox replaceSubview:currentView with:newView]; + currentView = newView; + [currentView setFrame:frameRect]; + } +} + +- (void) setCheatSearchViewByStyle:(NSInteger)searchStyleID +{ + NSView *newView = nil; + + if (currentSearchStyleView == nil) + { + currentSearchStyleView = viewSearchNoSelection; + } + + switch (searchStyleID) + { + case CHEATSEARCH_SEARCHSTYLE_EXACT_VALUE: + newView = viewSearchExactValue; + break; + + case CHEATSEARCH_SEARCHSTYLE_COMPARATIVE: + if (cdsCheatSearch.searchCount == 0) + { + newView = viewSearchComparativeStart; + } + else + { + newView = viewSearchComparativeContinue; + } + break; + + default: + break; + } + + if (newView != nil) + { + NSRect frameRect = [currentSearchStyleView frame]; + [currentSearchStyleView retain]; + [cheatSearchView replaceSubview:currentSearchStyleView with:newView]; + currentSearchStyleView = newView; + [currentSearchStyleView setFrame:frameRect]; + } +} + +- (IBAction) selectAllCheatsInDatabase:(id)sender +{ + NSMutableArray *dbList = [cheatDatabaseController content]; + if (dbList == nil) + { + return; + } + + for (CocoaDSCheatItem *cheatItem in dbList) + { + cheatItem.willAdd = YES; + } +} + +- (IBAction) selectNoneCheatsInDatabase:(id)sender +{ + NSMutableArray *dbList = [cheatDatabaseController content]; + if (dbList == nil) + { + return; + } + + for (CocoaDSCheatItem *cheatItem in dbList) + { + cheatItem.willAdd = NO; + } +} + +- (void) addSelectedFromCheatDatabase +{ + NSMutableArray *dbList = [cheatDatabaseController content]; + if (dbList == nil) + { + return; + } + + for (CocoaDSCheatItem *cheatItem in dbList) + { + if (cheatItem.willAdd) + { + CocoaDSCheatItem *newCheatItem = [[[CocoaDSCheatItem alloc] initWithCheatData:cheatItem.data] autorelease]; + [newCheatItem retainData]; + [cheatListController addObject:newCheatItem]; + [self.cdsCheats add:newCheatItem]; + } + } + + if ([dbList count] > 0) + { + [self.cdsCheats save]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"hasItems"]; + } +} + +- (IBAction) closeCheatDatabaseSheet:(id)sender +{ + NSWindow *sheet = [(NSControl *)sender window]; + NSInteger code = [(NSControl *)sender tag]; + + [NSApp endSheet:sheet returnCode:code]; +} + +- (void) didEndCheatDatabaseSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + switch (returnCode) + { + case NSCancelButton: + return; + break; + + case NSOKButton: + [self addSelectedFromCheatDatabase]; + break; + + default: + break; + } +} + +- (void)windowDidBecomeKey:(NSNotification *)notification +{ + [cheatWindowController setContent:self.bindings]; +} + +- (void)tableViewSelectionDidChange:(NSNotification *)aNotification +{ + NSTableView *table = (NSTableView *)[aNotification object]; + NSInteger rowIndex = [table selectedRow]; + + if (table == self.cheatListTable) + { + if (rowIndex >= 0) + { + NSArray *selectedObjects = [cheatListController selectedObjects]; + CocoaDSCheatItem *selectedCheat = [selectedObjects objectAtIndex:0]; + self.workingCheat = [selectedCheat createWorkingCopy]; + [cheatSelectedItemController setContent:self.workingCheat]; + + [self setCheatConfigViewByType:selectedCheat.cheatType]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"hasSelection"]; + } + else + { + if (self.workingCheat != nil) + { + [self.workingCheat.parent destroyWorkingCopy]; + } + + [cheatSelectedItemController setContent:nil]; + self.workingCheat = nil; + + NSRect frameRect = [currentView frame]; + [currentView retain]; + [cheatConfigBox replaceSubview:currentView with:viewConfigureNoSelection]; + currentView = viewConfigureNoSelection; + [currentView setFrame:frameRect]; + + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"hasSelection"]; + } + } + else if (table == self.cheatSearchListTable) + { + if (rowIndex >= 0) + { + NSArray *selectedObjects = [cheatSearchListController selectedObjects]; + NSMutableDictionary *selectedAddress = [selectedObjects objectAtIndex:0]; + NSString *addressString = [(NSString *)[selectedAddress valueForKey:@"addressString"] substringFromIndex:4]; + + if (self.workingCheat != nil) + { + self.workingCheat.memAddressSixDigitString = addressString; + } + } + } +} + +@end diff --git a/desmume/src/cocoa/userinterface/displayView.h b/desmume/src/cocoa/userinterface/displayView.h new file mode 100644 index 000000000..264fc8e1d --- /dev/null +++ b/desmume/src/cocoa/userinterface/displayView.h @@ -0,0 +1,141 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import +#include +#include + +#import "cocoa_output.h" + +@class DisplayViewDelegate; +@class CocoaDSController; + + +@protocol DisplayViewDelegate + +@required +- (void) doInitVideoOutput:(NSDictionary *)properties; +- (void) doProcessVideoFrame:(const void *)videoFrameData frameSize:(NSSize)frameSize; + +@property (retain) DisplayViewDelegate *dispViewDelegate; + +@optional +- (void) doResizeView:(NSRect)rect; +- (void) doRedraw; +- (void) doDisplayTypeChanged:(NSInteger)displayTypeID; +- (void) doBilinearOutputChanged:(BOOL)useBilinear; +- (void) doVideoFilterChanged:(NSInteger)videoFilterTypeID; + +@end + +@interface DisplayViewDelegate : NSObject +{ + NSView *view; + NSPort *sendPortDisplay; + NSPort *sendPortInput; + + CocoaDSController *cdsController; + + BOOL isHudEnabled; + BOOL isHudEditingModeEnabled; + + NSSize normalSize; + NSMutableDictionary *bindings; + + OSSpinLock spinlockGpuStateFlags; + OSSpinLock spinlockDisplayType; + OSSpinLock spinlockNormalSize; + OSSpinLock spinlockScale; + OSSpinLock spinlockRotation; + OSSpinLock spinlockUseBilinearOutput; +} + +@property (assign) NSView *view; +@property (assign) NSPort *sendPortInput; +@property (retain) CocoaDSController *cdsController; +@property (readonly) NSSize normalSize; +@property (assign) NSMutableDictionary *bindings; + +- (void) setGpuStateFlags:(UInt32)flags; +- (UInt32) gpuStateFlags; +- (void) setScale:(double)s; +- (double) scale; +- (void) setRotation:(double)angleDegrees; +- (double) rotation; +- (void) setUseBilinearOutput:(BOOL)theState; +- (BOOL) useBilinearOutput; +- (void) setDisplayType:(NSInteger)theType; +- (NSInteger) displayType; +- (void) setVideoFilterType:(NSInteger)theType; +- (void) setRender3DRenderingEngine:(NSInteger)methodID; +- (void) setRender3DHighPrecisionColorInterpolation:(BOOL)state; +- (void) setRender3DEdgeMarking:(BOOL)state; +- (void) setRender3DFog:(BOOL)state; +- (void) setRender3DTextures:(BOOL)state; +- (void) setRender3DDepthComparisonThreshold:(NSUInteger)threshold; +- (void) setRender3DThreads:(NSUInteger)numberThreads; +- (void) setRender3DLineHack:(BOOL)state; +- (void) setViewToBlack; +- (void) setViewToWhite; +- (void) requestScreenshot:(NSURL *)fileURL fileType:(NSBitmapImageFileType)fileType; +- (void) copyToPasteboard; +- (BOOL) gpuStateByBit:(UInt32)stateBit; +- (NSPoint) dsPointFromEvent:(NSEvent *)theEvent; +- (NSPoint) convertPointToDS:(NSPoint)clickLoc; +- (BOOL) handleKeyPress:(NSEvent *)theEvent keyPressed:(BOOL)keyPressed; +- (BOOL) handleMouseButton:(NSEvent *)theEvent buttonPressed:(BOOL)buttonPressed; + +@end + +@interface ImageDisplayView : NSImageView +{ + DisplayViewDelegate *dispViewDelegate; + NSImage *imageData; + NSBitmapImageRep *currentImageRep; +} + +- (NSBitmapImageRep *) bitmapImageRep:(const void *)videoFrameData imageSize:(NSSize)imageSize; + +@end + +@interface OpenGLDisplayView : NSOpenGLView +{ + DisplayViewDelegate *dispViewDelegate; + NSSize lastFrameSize; + GLint glTexRenderStyle; + GLenum glTexPixelFormat; + GLvoid *glTexBack; + NSSize glTexBackSize; + GLuint drawTexture[1]; +} + +- (void) drawVideoFrame; +- (void) uploadFrameTexture:(const GLvoid *)frameBytes textureSize:(NSSize)textureSize; + +@end + +#ifdef __cplusplus +extern "C" +{ +#endif + +void SetupOpenGLView(GLsizei width, GLsizei height, GLfloat scalar, GLfloat angleDegrees); + +#ifdef __cplusplus +} +#endif diff --git a/desmume/src/cocoa/userinterface/displayView.mm b/desmume/src/cocoa/userinterface/displayView.mm new file mode 100644 index 000000000..4047abeef --- /dev/null +++ b/desmume/src/cocoa/userinterface/displayView.mm @@ -0,0 +1,1038 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "displayView.h" +#import "emuWindowDelegate.h" + +#import "cocoa_input.h" +#import "cocoa_globals.h" +#import "cocoa_videofilter.h" +#import "cocoa_util.h" + +#include + +#undef BOOL + +@implementation DisplayViewDelegate + +@synthesize view; +@synthesize sendPortDisplay; +@synthesize sendPortInput; +@synthesize cdsController; +@synthesize isHudEnabled; +@synthesize isHudEditingModeEnabled; +@synthesize normalSize; +@synthesize bindings; + +- (id)init +{ + self = [super init]; + if (self == nil) + { + return self; + } + + bindings = [[NSMutableDictionary alloc] init]; + if (bindings == nil) + { + [self release]; + self = nil; + return self; + } + + view = nil; + spinlockGpuStateFlags = OS_SPINLOCK_INIT; + spinlockDisplayType = OS_SPINLOCK_INIT; + spinlockNormalSize = OS_SPINLOCK_INIT; + spinlockScale = OS_SPINLOCK_INIT; + spinlockRotation = OS_SPINLOCK_INIT; + spinlockUseBilinearOutput = OS_SPINLOCK_INIT; + + normalSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT * 2.0); + sendPortDisplay = nil; + cdsController = nil; + isHudEnabled = NO; + isHudEditingModeEnabled = NO; + + UInt32 gpuStateFlags = GPUSTATE_MAIN_GPU_MASK | + GPUSTATE_MAIN_BG0_MASK | + GPUSTATE_MAIN_BG1_MASK | + GPUSTATE_MAIN_BG2_MASK | + GPUSTATE_MAIN_BG3_MASK | + GPUSTATE_MAIN_OBJ_MASK | + GPUSTATE_SUB_GPU_MASK | + GPUSTATE_SUB_BG0_MASK | + GPUSTATE_SUB_BG1_MASK | + GPUSTATE_SUB_BG2_MASK | + GPUSTATE_SUB_BG3_MASK | + GPUSTATE_SUB_OBJ_MASK; + + [bindings setValue:[NSNumber numberWithInt:gpuStateFlags] forKey:@"GpuStateFlags"]; + [bindings setValue:[NSNumber numberWithDouble:1.0] forKey:@"scale"]; + [bindings setValue:[NSNumber numberWithDouble:0.0] forKey:@"rotation"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"useBilinearOutput"]; + [bindings setValue:[NSNumber numberWithInteger:DS_DISPLAY_TYPE_COMBO] forKey:@"displayMode"]; + [bindings setValue:@"Combo" forKey:@"displayModeString"]; + [bindings setValue:[NSNumber numberWithInteger:VideoFilterTypeID_None] forKey:@"videoFilterType"]; + [bindings setValue:[CocoaVideoFilter typeStringByID:VideoFilterTypeID_None] forKey:@"videoFilterTypeString"]; + [bindings setValue:[NSNumber numberWithInteger:CORE3DLIST_NULL] forKey:@"render3DRenderingEngine"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"render3DHighPrecisionColorInterpolation"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"render3DEdgeMarking"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"render3DFog"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"render3DTextures"]; + [bindings setValue:[NSNumber numberWithInteger:0] forKey:@"render3DDepthComparisonThreshold"]; + [bindings setValue:[NSNumber numberWithInteger:0] forKey:@"render3DThreads"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"render3DLineHack"]; + + return self; +} + +- (void)dealloc +{ + [super dealloc]; +} + +- (NSSize) normalSize +{ + OSSpinLockLock(&spinlockNormalSize); + NSSize theSize = normalSize; + OSSpinLockUnlock(&spinlockNormalSize); + + return theSize; +} + +- (void) setGpuStateFlags:(UInt32)flags +{ + OSSpinLockLock(&spinlockGpuStateFlags); + [bindings setValue:[NSNumber numberWithInt:flags] forKey:@"GpuStateFlags"]; + OSSpinLockUnlock(&spinlockGpuStateFlags); + + [CocoaDSUtil messageSendOneWayWithInteger:self.sendPortDisplay msgID:MESSAGE_SET_GPU_STATE_FLAGS integerValue:flags]; +} + +- (UInt32) gpuStateFlags +{ + OSSpinLockLock(&spinlockGpuStateFlags); + UInt32 flags = [[bindings valueForKey:@"GpuStateFlags"] intValue]; + OSSpinLockUnlock(&spinlockGpuStateFlags); + + return flags; +} + +- (void) setScale:(double)s +{ + OSSpinLockLock(&spinlockScale); + [bindings setValue:[NSNumber numberWithDouble:s] forKey:@"scale"]; + OSSpinLockUnlock(&spinlockScale); +} + +- (double) scale +{ + OSSpinLockLock(&spinlockScale); + double s = [[bindings valueForKey:@"scale"] doubleValue]; + OSSpinLockUnlock(&spinlockScale); + + return s; +} + +- (void) setRotation:(double)angleDegrees +{ + OSSpinLockLock(&spinlockRotation); + [bindings setValue:[NSNumber numberWithDouble:angleDegrees] forKey:@"rotation"]; + OSSpinLockUnlock(&spinlockRotation); +} + +- (double) rotation +{ + OSSpinLockLock(&spinlockRotation); + double angleDegrees = [[bindings valueForKey:@"rotation"] doubleValue]; + OSSpinLockUnlock(&spinlockRotation); + + return angleDegrees; +} + +- (void) setUseBilinearOutput:(BOOL)theState +{ + OSSpinLockLock(&spinlockUseBilinearOutput); + [bindings setValue:[NSNumber numberWithBool:theState] forKey:@"useBilinearOutput"]; + OSSpinLockUnlock(&spinlockUseBilinearOutput); + + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_CHANGE_BILINEAR_OUTPUT boolValue:theState]; +} + +- (BOOL) useBilinearOutput +{ + OSSpinLockLock(&spinlockUseBilinearOutput); + BOOL theState = [[bindings valueForKey:@"useBilinearOutput"] boolValue]; + OSSpinLockUnlock(&spinlockUseBilinearOutput); + + return theState; +} + +- (void) setDisplayType:(NSInteger)theType +{ + NSSize theSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT); + NSString *modeString = @"Unknown"; + + switch (theType) + { + case DS_DISPLAY_TYPE_MAIN: + modeString = NSSTRING_DISPLAYMODE_MAIN; + break; + + case DS_DISPLAY_TYPE_TOUCH: + modeString = NSSTRING_DISPLAYMODE_TOUCH; + break; + + case DS_DISPLAY_TYPE_COMBO: + theSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT * 2); + modeString = NSSTRING_DISPLAYMODE_COMBO; + break; + + default: + break; + } + + OSSpinLockLock(&spinlockDisplayType); + [bindings setValue:[NSNumber numberWithInteger:theType] forKey:@"displayMode"]; + [bindings setValue:modeString forKey:@"displayModeString"]; + OSSpinLockUnlock(&spinlockDisplayType); + + OSSpinLockLock(&spinlockNormalSize); + normalSize = theSize; + OSSpinLockUnlock(&spinlockNormalSize); + + [CocoaDSUtil messageSendOneWayWithInteger:self.sendPortDisplay msgID:MESSAGE_CHANGE_DISPLAY_TYPE integerValue:theType]; +} + +- (NSInteger) displayType +{ + OSSpinLockLock(&spinlockDisplayType); + NSInteger theType = [[bindings valueForKey:@"displayMode"] integerValue]; + OSSpinLockUnlock(&spinlockDisplayType); + + return theType; +} + +- (void) setVideoFilterType:(NSInteger)theType +{ + [bindings setValue:[NSNumber numberWithInteger:theType] forKey:@"videoFilterType"]; + [bindings setValue:[CocoaVideoFilter typeStringByID:(VideoFilterTypeID)theType] forKey:@"videoFilterTypeString"]; + [CocoaDSUtil messageSendOneWayWithInteger:self.sendPortDisplay msgID:MESSAGE_CHANGE_VIDEO_FILTER integerValue:theType]; +} + +- (void) setRender3DRenderingEngine:(NSInteger)methodID +{ + [bindings setValue:[NSNumber numberWithInteger:methodID] forKey:@"render3DRenderingEngine"]; + [CocoaDSUtil messageSendOneWayWithInteger:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_METHOD integerValue:methodID]; +} + +- (void) setRender3DHighPrecisionColorInterpolation:(BOOL)state +{ + [bindings setValue:[NSNumber numberWithBool:state] forKey:@"render3DHighPrecisionColorInterpolation"]; + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_HIGH_PRECISION_COLOR_INTERPOLATION boolValue:state]; +} + +- (void) setRender3DEdgeMarking:(BOOL)state +{ + [bindings setValue:[NSNumber numberWithBool:state] forKey:@"render3DEdgeMarking"]; + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_EDGE_MARKING boolValue:state]; +} + +- (void) setRender3DFog:(BOOL)state +{ + [bindings setValue:[NSNumber numberWithBool:state] forKey:@"render3DFog"]; + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_FOG boolValue:state]; +} + +- (void) setRender3DTextures:(BOOL)state +{ + [bindings setValue:[NSNumber numberWithBool:state] forKey:@"render3DTextures"]; + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_TEXTURES boolValue:state]; +} + +- (void) setRender3DDepthComparisonThreshold:(NSUInteger)threshold +{ + [bindings setValue:[NSNumber numberWithInteger:threshold] forKey:@"render3DDepthComparisonThreshold"]; + [CocoaDSUtil messageSendOneWayWithInteger:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_DEPTH_COMPARISON_THRESHOLD integerValue:threshold]; +} + +- (void) setRender3DThreads:(NSUInteger)numberThreads +{ + [bindings setValue:[NSNumber numberWithInteger:numberThreads] forKey:@"render3DThreads"]; + [CocoaDSUtil messageSendOneWayWithInteger:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_THREADS integerValue:numberThreads]; +} + +- (void) setRender3DLineHack:(BOOL)state +{ + [bindings setValue:[NSNumber numberWithBool:state] forKey:@"render3DLineHack"]; + [CocoaDSUtil messageSendOneWayWithBool:self.sendPortDisplay msgID:MESSAGE_SET_RENDER3D_LINE_HACK boolValue:state]; +} + +- (void) setViewToBlack +{ + [CocoaDSUtil messageSendOneWay:self.sendPortDisplay msgID:MESSAGE_SET_VIEW_TO_BLACK]; +} + +- (void) setViewToWhite +{ + [CocoaDSUtil messageSendOneWay:self.sendPortDisplay msgID:MESSAGE_SET_VIEW_TO_WHITE]; +} + +- (NSPoint) dsPointFromEvent:(NSEvent *)theEvent +{ + // Convert the clicked location from window coordinates, to view coordinates, + // and finally to DS touchscreen coordinates. + NSPoint touchLoc = [theEvent locationInWindow]; + touchLoc = [view convertPoint:touchLoc fromView:nil]; + touchLoc = [self convertPointToDS:touchLoc]; + + return touchLoc; +} + +- (NSPoint) convertPointToDS:(NSPoint)clickLoc +{ + double viewAngle = [self rotation]; + if (viewAngle != 0.0) + { + viewAngle = CLOCKWISE_DEGREES(viewAngle); + } + + NSPoint touchLoc = GetNormalPointFromTransformedPoint(clickLoc, self.normalSize, [[self view] bounds].size, [self scale], viewAngle); + + // Normalize the y-coordinate to the DS. + touchLoc.y = GPU_DISPLAY_HEIGHT - touchLoc.y; + + // Constrain the touch point to the DS dimensions. + if (touchLoc.x < 0) + { + touchLoc.x = 0; + } + else if (touchLoc.x > (GPU_DISPLAY_WIDTH - 1)) + { + touchLoc.x = (GPU_DISPLAY_WIDTH - 1); + } + + if (touchLoc.y < 0) + { + touchLoc.y = 0; + } + else if (touchLoc.y > (GPU_DISPLAY_HEIGHT - 1)) + { + touchLoc.y = (GPU_DISPLAY_HEIGHT - 1); + } + + return touchLoc; +} + +- (void) requestScreenshot:(NSURL *)fileURL fileType:(NSBitmapImageFileType)fileType +{ + NSString *fileURLString = [fileURL absoluteString]; + NSData *fileURLStringData = [fileURLString dataUsingEncoding:NSUTF8StringEncoding]; + NSData *bitmapImageFileTypeData = [[NSData alloc] initWithBytes:&fileType length:sizeof(NSBitmapImageFileType)]; + NSArray *messageComponents = [[NSArray alloc] initWithObjects:fileURLStringData, bitmapImageFileTypeData, nil]; + + [CocoaDSUtil messageSendOneWayWithMessageComponents:self.sendPortDisplay msgID:MESSAGE_REQUEST_SCREENSHOT array:messageComponents]; + + [bitmapImageFileTypeData release]; + [messageComponents release]; +} + +- (void) copyToPasteboard +{ + [CocoaDSUtil messageSendOneWay:self.sendPortDisplay msgID:MESSAGE_COPY_TO_PASTEBOARD]; +} + +- (BOOL) gpuStateByBit:(UInt32)stateBit +{ + BOOL result = NO; + UInt32 flags = [self gpuStateFlags]; + + if (flags & (1 << stateBit)) + { + result = YES; + } + + return result; +} + +- (BOOL) handleKeyPress:(NSEvent *)theEvent keyPressed:(BOOL)keyPressed +{ + BOOL isHandled = NO; + + if (self.cdsController == nil) + { + return isHandled; + } + + NSString *elementName = [NSString stringWithFormat:@"%d", [theEvent keyCode]]; + NSString *elementCode = elementName; + NSDictionary *inputAttributes = [NSDictionary dictionaryWithObjectsAndKeys: + @"NSEventKeyboard", @"deviceCode", + @"Keyboard", @"deviceName", + elementCode, @"elementCode", + elementName, @"elementName", + [NSNumber numberWithBool:keyPressed], @"on", + nil]; + + if (keyPressed && [theEvent window] != nil && [[[theEvent window] delegate] respondsToSelector:@selector(setStatus:)]) + { + [[[theEvent window] delegate] setStatus:[NSString stringWithFormat:@"Keyboard:%i", [theEvent keyCode]]]; + } + + isHandled = [self.cdsController setStateWithInput:inputAttributes]; + + return isHandled; +} + +- (BOOL) handleMouseButton:(NSEvent *)theEvent buttonPressed:(BOOL)buttonPressed +{ + BOOL isHandled = NO; + NSInteger dispType = [self displayType]; + + if (self.cdsController == nil || (dispType != DS_DISPLAY_TYPE_TOUCH && dispType != DS_DISPLAY_TYPE_COMBO)) + { + return isHandled; + } + + // Convert the clicked location from window coordinates, to view coordinates, + // and finally to DS touchscreen coordinates. + NSPoint touchLoc = [self dsPointFromEvent:theEvent]; + + NSString *elementCode = [NSString stringWithFormat:@"%i", [theEvent buttonNumber]]; + NSString *elementName = [NSString stringWithFormat:@"Button %i", [theEvent buttonNumber]]; + + switch ([theEvent buttonNumber]) + { + case kCGMouseButtonLeft: + elementName = @"Primary Button"; + break; + + case kCGMouseButtonRight: + elementName = @"Secondary Button"; + break; + + case kCGMouseButtonCenter: + elementName = @"Center Button"; + break; + + default: + break; + } + + NSDictionary *inputAttributes = [NSDictionary dictionaryWithObjectsAndKeys: + @"NSEventMouse", @"deviceCode", + @"Mouse", @"deviceName", + elementCode, @"elementCode", + elementName, @"elementName", + [NSNumber numberWithBool:buttonPressed], @"on", + [NSNumber numberWithFloat:touchLoc.x], @"pointX", + [NSNumber numberWithFloat:touchLoc.y], @"pointY", + nil]; + + if (buttonPressed && [theEvent window] != nil && [[[theEvent window] delegate] respondsToSelector:@selector(setStatus:)]) + { + [[[theEvent window] delegate] setStatus:[NSString stringWithFormat:@"Mouse:%i X:%i Y:%i", [theEvent buttonNumber], (NSInteger)(touchLoc.x), (NSInteger)(touchLoc.y)]]; + } + + isHandled = [self.cdsController setStateWithInput:inputAttributes]; + + return isHandled; +} + +- (void) doInitVideoOutput:(NSDictionary *)properties +{ + [view doInitVideoOutput:properties]; +} + +- (void) doProcessVideoFrame:(const void *)videoFrameData frameSize:(NSSize)frameSize +{ + [view doProcessVideoFrame:videoFrameData frameSize:frameSize]; +} + +- (void) doResizeView:(NSRect)rect +{ + if (view == nil || ![view respondsToSelector:@selector(doResizeView:)]) + { + return; + } + + [view doResizeView:rect]; +} + +- (void) doRedraw +{ + if (view == nil || ![view respondsToSelector:@selector(doRedraw)]) + { + return; + } + + [view doRedraw]; +} + +- (void) doDisplayTypeChanged:(NSInteger)displayTypeID +{ + if (view == nil || ![view respondsToSelector:@selector(doDisplayTypeChanged:)]) + { + return; + } + + [view doDisplayTypeChanged:displayTypeID]; +} + +- (void) doBilinearOutputChanged:(BOOL)useBilinear +{ + if (view == nil || ![view respondsToSelector:@selector(doBilinearOutputChanged:)]) + { + return; + } + + [view doBilinearOutputChanged:useBilinear]; +} + +- (void) doVideoFilterChanged:(NSInteger)videoFilterTypeID +{ + if (view == nil || ![view respondsToSelector:@selector(doVideoFilterChanged:)]) + { + return; + } + + [view doVideoFilterChanged:videoFilterTypeID]; +} + +@end + + +@implementation ImageDisplayView + +@synthesize dispViewDelegate; + +- (id) init +{ + return [self initWithFrame:NSMakeRect(0.0f, 0.0f, GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT * 2.0f)]; +} + +- (id) initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self == nil) + { + return self; + } + + imageData = nil; + currentImageRep = nil; + + return self; +} + +- (void) dealloc +{ + [super dealloc]; +} + +- (void)drawRect:(NSRect)dirtyRect +{ + [CocoaDSUtil messageSendOneWay:dispViewDelegate.sendPortDisplay msgID:MESSAGE_REDRAW_VIEW]; +} + +- (void) drawVideoFrame +{ + [self setImage:imageData]; + [self setNeedsDisplay]; +} + +- (void)setFrame:(NSRect)rect +{ + [super setFrame:rect]; + [CocoaDSUtil messageSendOneWayWithRect:dispViewDelegate.sendPortDisplay msgID:MESSAGE_RESIZE_VIEW rect:rect]; +} + +- (NSBitmapImageRep *) bitmapImageRep:(const void *)videoFrameData imageSize:(NSSize)imageSize +{ + if (videoFrameData == nil) + { + return nil; + } + + NSUInteger w = (NSUInteger)imageSize.width; + NSUInteger h = (NSUInteger)imageSize.height; + NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:w + pixelsHigh:h + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSCalibratedRGBColorSpace + bytesPerRow:w * 4 + bitsPerPixel:32]; + + if(!imageRep) + { + return nil; + } + + uint32_t *bitmapData = (uint32_t *)[imageRep bitmapData]; + RGBA5551ToRGBA8888Buffer((const uint16_t *)videoFrameData, bitmapData, (w * h)); + +#ifdef __BIG_ENDIAN__ + uint32_t *bitmapDataEnd = bitmapData + (w * h); + while (bitmapData < bitmapDataEnd) + { + *bitmapData++ = CFSwapInt32LittleToHost(*bitmapData); + } +#endif + + return [imageRep autorelease]; +} + +- (void)keyDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleKeyPress:theEvent keyPressed:YES]; + if (!isHandled) + { + [super keyDown:theEvent]; + } +} + +- (void)keyUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleKeyPress:theEvent keyPressed:NO]; + if (!isHandled) + { + [super keyUp:theEvent]; + } +} + +- (void)mouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:YES]; + if (!isHandled) + { + [super mouseDown:theEvent]; + } +} + +- (void)mouseDragged:(NSEvent *)theEvent +{ + [self mouseDown:theEvent]; +} + +- (void)mouseUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:NO]; + if (!isHandled) + { + [super mouseUp:theEvent]; + } +} + +- (void)rightMouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:YES]; + if (!isHandled) + { + [super rightMouseDown:theEvent]; + } +} + +- (void)rightMouseDragged:(NSEvent *)theEvent +{ + [self rightMouseDown:theEvent]; +} + +- (void)rightMouseUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:NO]; + if (!isHandled) + { + [super rightMouseUp:theEvent]; + } +} + +- (void)otherMouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:YES]; + if (!isHandled) + { + [super otherMouseDown:theEvent]; + } +} + +- (void)otherMouseDragged:(NSEvent *)theEvent +{ + [self otherMouseDown:theEvent]; +} + +- (void)otherMouseUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:NO]; + if (!isHandled) + { + [super otherMouseUp:theEvent]; + } +} + +- (BOOL)acceptsFirstResponder +{ + return YES; +} + +- (BOOL)becomeFirstResponder +{ + return YES; +} + +- (BOOL)resignFirstResponder +{ + return YES; +} + +- (void)doInitVideoOutput:(NSDictionary *)properties +{ + imageData = [[NSImage alloc] initWithSize:[dispViewDelegate normalSize]]; + currentImageRep = nil; +} + +- (void)doProcessVideoFrame:(const void *)videoFrameData frameSize:(NSSize)frameSize +{ + // Render the frame in an NSBitmapImageRep + NSBitmapImageRep *newImageRep = [self bitmapImageRep:videoFrameData imageSize:frameSize]; + if (newImageRep == nil) + { + return; + } + + // Attach the rendered frame to the NSImageRep + [imageData removeRepresentation:currentImageRep]; + [imageData addRepresentation:newImageRep]; + currentImageRep = newImageRep; + + // Draw the video frame. + [self drawVideoFrame]; +} + +- (void)doRedraw +{ + [self drawVideoFrame]; +} + +@end + +@implementation OpenGLDisplayView + +@synthesize dispViewDelegate; + +- (id)initWithCoder:(NSCoder *)aDecoder +{ + self = [super init]; + if (self == nil) + { + return self; + } + + dispViewDelegate = nil; + lastFrameSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT * 2.0); + glTexPixelFormat = GL_UNSIGNED_SHORT_1_5_5_5_REV; + glTexRenderStyle = GL_LINEAR; + + UInt32 w = GetNearestPositivePOT((UInt32)lastFrameSize.width); + UInt32 h = GetNearestPositivePOT((UInt32)lastFrameSize.height); + glTexBack = (GLvoid *)calloc(w * h, sizeof(UInt16)); + glTexBackSize = NSMakeSize(w, h); + + return self; +} + +- (void)dealloc +{ + [NSOpenGLContext clearCurrentContext]; + + free(glTexBack); + glTexBack = NULL; + + self.dispViewDelegate = nil; + + [super dealloc]; +} + +- (void)drawRect:(NSRect)dirtyRect +{ + [CocoaDSUtil messageSendOneWay:dispViewDelegate.sendPortDisplay msgID:MESSAGE_REDRAW_VIEW]; +} + +- (void)setFrame:(NSRect)rect +{ + NSRect frame = [self frame]; + + [super setFrame:rect]; + [CocoaDSUtil messageSendOneWayWithRect:dispViewDelegate.sendPortDisplay msgID:MESSAGE_RESIZE_VIEW rect:rect]; + + if (rect.size.width == frame.size.width && rect.size.height == frame.size.height) + { + [CocoaDSUtil messageSendOneWay:dispViewDelegate.sendPortDisplay msgID:MESSAGE_REDRAW_VIEW]; + } +} + +- (void) prepareOpenGL +{ + glDisable(GL_DITHER); + glDisable(GL_ALPHA_TEST); + glDisable(GL_BLEND); + glDisable(GL_STENCIL_TEST); + glDisable(GL_FOG); + glDisable(GL_DEPTH_TEST); + glEnable(GL_TEXTURE_2D); + + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClearDepth(1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glGenTextures(1, &drawTexture[0]); + glBindTexture(GL_TEXTURE_2D, drawTexture[0]); +} + +- (void) drawVideoFrame +{ + GLfloat w = (GLfloat)dispViewDelegate.normalSize.width; + GLfloat h = (GLfloat)dispViewDelegate.normalSize.height; + GLfloat texRatioW = (GLfloat)lastFrameSize.width / (GLfloat)GetNearestPositivePOT((UInt32)lastFrameSize.width); + GLfloat texRatioH = (GLfloat)lastFrameSize.height / (GLfloat)GetNearestPositivePOT((UInt32)lastFrameSize.height); + + glClear(GL_COLOR_BUFFER_BIT); + + glBegin(GL_QUADS); + + glTexCoord2f(0.0f, 0.0f); + glVertex3f(-(w/2.0f), (h/2.0f), 0.0f); + + glTexCoord2f(texRatioW, 0.0f); + glVertex3f((w/2.0f), (h/2.0f), 0.0f); + + glTexCoord2f(texRatioW, texRatioH); + glVertex3f((w/2.0f), -(h/2.0f), 0.0f); + + glTexCoord2f(0.0f, texRatioH); + glVertex3f(-(w/2.0f), -(h/2.0f), 0.0f); + + glEnd(); + + glFlush(); +} + +- (void) uploadFrameTexture:(const GLvoid *)frameBytes textureSize:(NSSize)textureSize +{ + UInt32 w = GetNearestPositivePOT((UInt32)textureSize.width); + UInt32 h = GetNearestPositivePOT((UInt32)textureSize.height); + NSUInteger bitDepth; + + if (glTexPixelFormat == GL_UNSIGNED_SHORT_1_5_5_5_REV) + { + bitDepth = sizeof(UInt16); + } + else + { + bitDepth = sizeof(UInt32); + } + + if (glTexBackSize.width != w || glTexBackSize.height != h) + { + glTexBackSize.width = w; + glTexBackSize.height = h; + + free(glTexBack); + glTexBack = (GLvoid *)calloc(w * h, bitDepth); + if (glTexBack == NULL) + { + return; + } + } + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, (GLsizei)w, (GLsizei)h, 0, GL_RGBA, glTexPixelFormat, glTexBack); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, (GLsizei)textureSize.width, (GLsizei)textureSize.height, GL_RGBA, glTexPixelFormat, frameBytes); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, glTexRenderStyle); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, glTexRenderStyle); +} + +- (void)keyDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleKeyPress:theEvent keyPressed:YES]; + if (!isHandled) + { + [super keyDown:theEvent]; + } +} + +- (void)keyUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleKeyPress:theEvent keyPressed:NO]; + if (!isHandled) + { + [super keyUp:theEvent]; + } +} + +- (void)mouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:YES]; + if (!isHandled) + { + [super mouseDown:theEvent]; + } +} + +- (void)mouseDragged:(NSEvent *)theEvent +{ + [self mouseDown:theEvent]; +} + +- (void)mouseUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:NO]; + if (!isHandled) + { + [super mouseUp:theEvent]; + } +} + +- (void)rightMouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:YES]; + if (!isHandled) + { + [super rightMouseDown:theEvent]; + } +} + +- (void)rightMouseDragged:(NSEvent *)theEvent +{ + [self rightMouseDown:theEvent]; +} + +- (void)rightMouseUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:NO]; + if (!isHandled) + { + [super rightMouseUp:theEvent]; + } +} + +- (void)otherMouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:YES]; + if (!isHandled) + { + [super otherMouseDown:theEvent]; + } +} + +- (void)otherMouseDragged:(NSEvent *)theEvent +{ + [self otherMouseDown:theEvent]; +} + +- (void)otherMouseUp:(NSEvent *)theEvent +{ + BOOL isHandled = [dispViewDelegate handleMouseButton:theEvent buttonPressed:NO]; + if (!isHandled) + { + [super otherMouseUp:theEvent]; + } +} + +- (BOOL)acceptsFirstResponder +{ + return YES; +} + +- (BOOL)becomeFirstResponder +{ + return YES; +} + +- (BOOL)resignFirstResponder +{ + return YES; +} + +- (void)doInitVideoOutput:(NSDictionary *)properties +{ + GLfloat scale = (GLfloat)[dispViewDelegate scale]; + GLfloat rotation = (GLfloat)[dispViewDelegate rotation]; + NSRect rect = [self frame]; + + [[self openGLContext] makeCurrentContext]; + SetupOpenGLView((GLsizei)rect.size.width, (GLsizei)rect.size.height, scale, rotation); + + [dispViewDelegate setViewToBlack]; +} + +- (void)doProcessVideoFrame:(const void *)videoFrameData frameSize:(NSSize)frameSize +{ + [[self openGLContext] makeCurrentContext]; + [self uploadFrameTexture:(const GLvoid *)videoFrameData textureSize:frameSize]; + lastFrameSize = frameSize; + [self drawVideoFrame]; +} + +- (void)doResizeView:(NSRect)rect +{ + [[self openGLContext] makeCurrentContext]; + SetupOpenGLView((GLsizei)rect.size.width, (GLsizei)rect.size.height, (GLfloat)[dispViewDelegate scale], (GLfloat)[dispViewDelegate rotation]); + [[self openGLContext] update]; +} + +- (void)doRedraw +{ + [[self openGLContext] makeCurrentContext]; + [self drawVideoFrame]; +} + +- (void) doBilinearOutputChanged:(BOOL)useBilinear +{ + glTexRenderStyle = GL_NEAREST; + if (useBilinear) + { + glTexRenderStyle = GL_LINEAR; + } +} + +- (void)doVideoFilterChanged:(NSInteger)videoFilterTypeID +{ + glTexPixelFormat = GL_UNSIGNED_INT_8_8_8_8_REV; + if (videoFilterTypeID == VideoFilterTypeID_None) + { + glTexPixelFormat = GL_UNSIGNED_SHORT_1_5_5_5_REV; + } +} + +@end + +void SetupOpenGLView(GLsizei width, GLsizei height, GLfloat scalar, GLfloat angleDegrees) +{ + glViewport(0, 0, width, height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(0.0, width, 0.0, height, -1.0, 1.0); + + glTranslatef(width / 2.0f, height / 2.0f, 0.0f); + glRotatef((GLfloat)CLOCKWISE_DEGREES(angleDegrees), 0.0f, 0.0f, 1.0f); + glScalef(scalar, scalar, 0.0f); +} diff --git a/desmume/src/cocoa/userinterface/emuWindowDelegate.h b/desmume/src/cocoa/userinterface/emuWindowDelegate.h new file mode 100644 index 000000000..1ee043d76 --- /dev/null +++ b/desmume/src/cocoa/userinterface/emuWindowDelegate.h @@ -0,0 +1,215 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + +@protocol DisplayViewDelegate; +@class CocoaDSRom; +@class CocoaDSSpeaker; +@class CocoaDSCheatManager; +@class DisplayViewDelegate; +@class CheatWindowDelegate; + + +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 +@interface EmuWindowDelegate : NSObject +#else +@interface EmuWindowDelegate : NSObject +#endif +{ + NSObject *dummyObject; + NSWindow *window; + NSWindow *saveFileMigrationSheet; + NSWindow *saveStatePrecloseSheet; + NSView *displayView; + NSView *exportRomSavePanelAccessoryView; + NSView *saveScreenshotPanelAccessoryView; + CocoaDSRom *currentRom; + CocoaDSSpeaker *cdsSpeaker; + CocoaDSCheatManager *cdsCheats; + CocoaDSCheatManager *dummyCheatList; + + DisplayViewDelegate *dispViewDelegate; + CheatWindowDelegate *cheatWindowDelegate; + NSObjectController *romInfoPanelController; + NSObjectController *firmwarePanelController; + NSObjectController *cdsCoreController; + NSObjectController *cdsDisplayController; + NSObjectController *cdsSoundController; + NSObjectController *emuWindowController; + NSObjectController *cheatWindowController; + NSArrayController *cheatListController; + NSArrayController *cheatDatabaseController; + + NSImage *iconVolumeFull; + NSImage *iconVolumeTwoThird; + NSImage *iconVolumeOneThird; + NSImage *iconVolumeMute; + NSImage *iconExecute; + NSImage *iconPause; + NSImage *iconSpeedNormal; + NSImage *iconSpeedDouble; + + BOOL isRomLoading; + BOOL isSheetControllingExecution; + BOOL isShowingSaveStateSheet; + BOOL isShowingFileMigrationSheet; + BOOL isShowingStatusBar; + NSUInteger statusBarHeight; + NSSize minDisplayViewSize; + BOOL isMinSizeNormal; + NSBitmapImageFileType screenshotFileFormat; + + NSURL *currentEmuSaveStateURL; + NSInteger selectedExportRomSaveID; + NSInteger selectedRomSaveTypeID; + + NSMutableDictionary *bindings; +} + +@property (readonly) IBOutlet NSObject *dummyObject; +@property (readonly) IBOutlet NSWindow *window; +@property (readonly) IBOutlet NSWindow *saveFileMigrationSheet; +@property (readonly) IBOutlet NSWindow *saveStatePrecloseSheet; +@property (readonly) IBOutlet NSView *displayView; +@property (readonly) IBOutlet NSView *exportRomSavePanelAccessoryView; +@property (readonly) IBOutlet NSView *saveScreenshotPanelAccessoryView; +@property (assign) CocoaDSRom *currentRom; +@property (assign) CocoaDSSpeaker *cdsSpeaker; +@property (assign) CocoaDSCheatManager *cdsCheats; + +@property (retain) DisplayViewDelegate *dispViewDelegate; +@property (readonly) IBOutlet CheatWindowDelegate *cheatWindowDelegate; +@property (readonly) IBOutlet NSObjectController *romInfoPanelController; +@property (readonly) IBOutlet NSObjectController *firmwarePanelController; +@property (readonly) IBOutlet NSObjectController *cdsCoreController; +@property (readonly) IBOutlet NSObjectController *cdsDisplayController; +@property (readonly) IBOutlet NSObjectController *cdsSoundController; +@property (readonly) IBOutlet NSObjectController *emuWindowController; +@property (readonly) IBOutlet NSObjectController *cheatWindowController; +@property (readonly) IBOutlet NSArrayController *cheatListController; +@property (readonly) IBOutlet NSArrayController *cheatDatabaseController; + +@property (assign) BOOL isSheetControllingExecution; +@property (assign) BOOL isShowingSaveStateSheet; +@property (assign) BOOL isShowingFileMigrationSheet; +@property (assign) NSInteger selectedRomSaveTypeID; + +@property (assign) NSMutableDictionary *bindings; + +- (void) setContentScalar:(double)s; +- (void) setContentRotation:(double)angleDegrees; +- (double) resizeWithTransform:(NSSize)normalBounds scalar:(double)scalar rotation:(double)angleDegrees; +- (double) maxContentScalar:(NSSize)contentBounds; +- (void) setVolume:(float)vol; +- (float) volume; +- (void) setIsRomLoaded:(BOOL)theState; +- (BOOL) isRomLoaded; +- (void) setStatus:(NSString *)theString; +- (NSString *) status; + +// File Menu +- (IBAction) openRom:(id)sender; +- (IBAction) closeRom:(id)sender; +- (IBAction) openEmuSaveState:(id)sender; +- (IBAction) saveEmuSaveState:(id)sender; +- (IBAction) saveEmuSaveStateAs:(id)sender; +- (IBAction) revertEmuSaveState:(id)sender; +- (IBAction) loadEmuSaveStateSlot:(id)sender; +- (IBAction) saveEmuSaveStateSlot:(id)sender; +- (IBAction) importRomSave:(id)sender; +- (IBAction) exportRomSave:(id)sender; +- (IBAction) selectExportRomSaveFormat:(id)sender; + +// Edit Menu +- (IBAction) copy:(id)sender; + +// Emulation Menu +- (IBAction) speedLimitDisable:(id)sender; +- (IBAction) toggleAutoFrameSkip:(id)sender; +- (IBAction) cheatsDisable:(id)sender; +- (IBAction) ejectCard:(id)sender; +- (IBAction) executeCoreToggle:(id)sender; +- (IBAction) resetCore:(id)sender; +- (IBAction) changeRomSaveType:(id)sender; + +// View Menu +- (IBAction) hudDisable:(id)sender; +- (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender; +- (IBAction) toggleStatusBar:(id)sender; + +// Tools Menu +- (IBAction) selectScreenshotFileFormat:(id)sender; +- (IBAction) saveScreenshotAs:(id)sender; +- (void) saveScreenshotAsFinish:(NSNotification *)aNotification; +- (IBAction) toggleGPUState:(id)sender; + +// Help Menu + + +// Window Elements + +- (BOOL) handleLoadRom:(NSURL *)fileURL; +- (BOOL) handleUnloadRom:(NSInteger)reasonID romToLoad:(NSURL *)romURL; +- (BOOL) loadRom:(NSURL *)romURL; +- (void) loadRomDidFinish:(NSNotification *)aNotification; +- (BOOL) unloadRom; + +- (void) executeCore; +- (void) pauseCore; +- (void) restoreCoreState; + +- (IBAction) changeCoreSpeed:(id)sender; +- (IBAction) changeCoreEmuFlags:(id)sender; +- (IBAction) changeFirmwareSettings:(id)sender; +- (IBAction) changeVolume:(id)sender; +- (IBAction) changeAudioEngine:(id)sender; +- (IBAction) changeSpuAdvancedLogic:(id)sender; +- (IBAction) changeSpuInterpolationMode:(id)sender; +- (IBAction) changeSpuSyncMode:(id)sender; +- (IBAction) changeSpuSyncMethod:(id)sender; +- (IBAction) changeScale:(id)sender; +- (IBAction) changeRotation:(id)sender; +- (IBAction) changeRotationRelative:(id)sender; +- (IBAction) changeBilinearOutput:(id)sender; +- (IBAction) changeDisplayMode:(id)sender; +- (IBAction) changeVideoFilter:(id)sender; +- (IBAction) change3DRenderMethod:(id)sender; +- (IBAction) change3DRenderHighPrecisionColorInterpolation:(id)sender; +- (IBAction) change3DRenderEdgeMarking:(id)sender; +- (IBAction) change3DRenderFog:(id)sender; +- (IBAction) change3DRenderTextures:(id)sender; +- (IBAction) change3DRenderDepthComparisonThreshold:(id)sender; +- (IBAction) change3DRenderThreads:(id)sender; +- (IBAction) change3DRenderLineHack:(id)sender; + +- (IBAction) closeMigrationSheet:(id)sender; +- (void) didEndFileMigrationSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; +- (void) didEndSaveStateSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; +- (void) didEndSaveStateSheetOpen:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; +- (void) didEndSaveStateSheetTerminate:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; + +- (void) setupUserDefaults; +- (IBAction) writeDefaultsDisplayRotation:(id)sender; +- (IBAction) writeDefaultsHUDSettings:(id)sender; +- (IBAction) writeDefaultsVideoOutputSettings:(id)sender; +- (IBAction) writeDefaults3DRenderingSettings:(id)sender; +- (IBAction) writeDefaultsEmulationSettings:(id)sender; +- (IBAction) writeDefaultsSoundSettings:(id)sender; + +@end diff --git a/desmume/src/cocoa/userinterface/emuWindowDelegate.mm b/desmume/src/cocoa/userinterface/emuWindowDelegate.mm new file mode 100644 index 000000000..668138e95 --- /dev/null +++ b/desmume/src/cocoa/userinterface/emuWindowDelegate.mm @@ -0,0 +1,2033 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "emuWindowDelegate.h" +#import "cheatWindowDelegate.h" +#import "displayView.h" + +#import "cocoa_globals.h" +#import "cocoa_core.h" +#import "cocoa_cheat.h" +#import "cocoa_file.h" +#import "cocoa_firmware.h" +#import "cocoa_output.h" +#import "cocoa_rom.h" +#import "cocoa_util.h" + +#undef BOOL + + +@implementation EmuWindowDelegate + +@dynamic dummyObject; +@synthesize window; +@synthesize saveFileMigrationSheet; +@synthesize saveStatePrecloseSheet; +@synthesize displayView; +@synthesize exportRomSavePanelAccessoryView; +@synthesize saveScreenshotPanelAccessoryView; +@synthesize currentRom; +@synthesize cdsSpeaker; +@synthesize cdsCheats; + +@synthesize dispViewDelegate; +@synthesize cheatWindowDelegate; +@synthesize romInfoPanelController; +@synthesize firmwarePanelController; +@synthesize cdsCoreController; +@synthesize cdsDisplayController; +@synthesize cdsSoundController; +@synthesize emuWindowController; +@synthesize cheatWindowController; +@synthesize cheatListController; +@synthesize cheatDatabaseController; + +@synthesize isSheetControllingExecution; +@synthesize isShowingSaveStateSheet; +@synthesize isShowingFileMigrationSheet; +@synthesize selectedRomSaveTypeID; + +@synthesize bindings; + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return nil; + } + + bindings = [[NSMutableDictionary alloc] init]; + if (bindings == nil) + { + [self release]; + self = nil; + return self; + } + + iconExecute = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Execute_420x420" ofType:@"png"]]; + iconPause = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Pause_420x420" ofType:@"png"]]; + iconSpeedNormal = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Speed1x_420x420" ofType:@"png"]]; + iconSpeedDouble = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_Speed2x_420x420" ofType:@"png"]]; + iconVolumeFull = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeFull_16x16" ofType:@"png"]]; + iconVolumeTwoThird = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeTwoThird_16x16" ofType:@"png"]]; + iconVolumeOneThird = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeOneThird_16x16" ofType:@"png"]]; + iconVolumeMute = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeMute_16x16" ofType:@"png"]]; + + dispViewDelegate = nil; + currentRom = nil; + cdsSpeaker = nil; + dummyCheatList = nil; + isRomLoading = NO; + isSheetControllingExecution = NO; + isShowingSaveStateSheet = NO; + isShowingFileMigrationSheet = NO; + isShowingStatusBar = YES; + statusBarHeight = WINDOW_STATUS_BAR_HEIGHT; + minDisplayViewSize = NSMakeSize(GPU_DISPLAY_WIDTH, GPU_DISPLAY_HEIGHT * 2); + isMinSizeNormal = YES; + screenshotFileFormat = NSTIFFFileType; + currentEmuSaveStateURL = nil; + selectedExportRomSaveID = 0; + selectedRomSaveTypeID = ROMSAVETYPE_AUTOMATIC; + + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isWorking"]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isRomLoaded"]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isShowingStatusBar"]; + [bindings setValue:[NSNumber numberWithFloat:MAX_VOLUME] forKey:@"volume"]; + [bindings setObject:iconVolumeFull forKey:@"volumeIconImage"]; + [bindings setValue:NSSTRING_STATUS_READY forKey:@"status"]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(loadRomDidFinish:) + name:@"com.DeSmuME.DeSmuME.loadRomDidFinish" + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(saveScreenshotAsFinish:) + name:@"com.DeSmuME.DeSmuME.requestScreenshotDidFinish" + object:nil]; + + return self; +} + +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + [iconExecute release]; + [iconPause release]; + [iconSpeedNormal release]; + [iconSpeedDouble release]; + [iconVolumeFull release]; + [iconVolumeTwoThird release]; + [iconVolumeOneThird release]; + [iconVolumeMute release]; + [bindings release]; + [self setDispViewDelegate:nil]; + + [super dealloc]; +} + +- (void) setContentScalar:(double)s +{ + [dispViewDelegate setScale:s]; + + // Resize the window when contentScalar changes. + NSSize drawBounds = [dispViewDelegate normalSize]; + [self resizeWithTransform:drawBounds scalar:s rotation:[dispViewDelegate rotation]]; +} + +- (void) setContentRotation:(double)angleDegrees +{ + double newAngleDegrees = fmod(angleDegrees, 360.0); + if (newAngleDegrees < 0.0) + { + newAngleDegrees = 360.0 + newAngleDegrees; + } + + if (newAngleDegrees == 360.0) + { + newAngleDegrees = 0.0; + } + + [dispViewDelegate setRotation:newAngleDegrees]; + + // Set the minimum content size for the window, since this will change based on rotation. + NSSize drawBounds = minDisplayViewSize; + NSSize minContentSize = GetTransformedBounds(drawBounds, 1.0, CLOCKWISE_DEGREES(newAngleDegrees)); + minContentSize.height += statusBarHeight; + [window setContentMinSize:minContentSize]; + + // Resize the window. + NSSize oldBounds = [window frame].size; + [self resizeWithTransform:[dispViewDelegate normalSize] scalar:[dispViewDelegate scale] rotation:newAngleDegrees]; + NSSize newBounds = [window frame].size; + + // If the window size didn't change, it is possible that the old and new rotation angles + // are 180 degrees offset from each other. In this case, we'll need to force the + // display view to update itself. + if (oldBounds.width == newBounds.width && oldBounds.height == newBounds.height) + { + NSRect newContentFrame = [[window contentView] bounds]; + newContentFrame.origin.y = statusBarHeight; + newContentFrame.size.height -= statusBarHeight; + [displayView setFrame:newContentFrame]; + } +} + +- (double) resizeWithTransform:(NSSize)normalBounds scalar:(double)scalar rotation:(double)angleDegrees +{ + // Convert angle to clockwise-direction degrees. + angleDegrees = CLOCKWISE_DEGREES(angleDegrees); + + // Get the maximum scalar size within drawBounds. Constrain scalar to maxScalar if necessary. + NSSize checkSize = GetTransformedBounds(normalBounds, 1.0, angleDegrees); + double maxScalar = [self maxContentScalar:checkSize]; + if (scalar > maxScalar) + { + scalar = maxScalar; + } + + // Get the new bounds for the window's content view based on the transformed draw bounds. + NSSize transformedBounds = GetTransformedBounds(normalBounds, scalar, angleDegrees); + + // Get the center of the content view in screen coordinates. + NSRect windowContentRect = [[window contentView] bounds]; + double translationX = (windowContentRect.size.width - transformedBounds.width) / 2.0; + double translationY = ((windowContentRect.size.height - statusBarHeight) - transformedBounds.height) / 2.0; + + // Resize the window. + NSRect windowFrame = [window frame]; + NSRect newFrame = [window frameRectForContentRect:NSMakeRect(windowFrame.origin.x + translationX, windowFrame.origin.y + translationY, transformedBounds.width, transformedBounds.height + statusBarHeight)]; + [window setFrame:newFrame display:YES animate:NO]; + + return scalar; +} + +- (double) maxContentScalar:(NSSize)contentBounds +{ + // Determine the maximum scale based on the visible screen size (which + // doesn't include the menu bar or dock). + NSRect screenFrame = [[NSScreen mainScreen] visibleFrame]; + NSRect windowFrame = [window frameRectForContentRect:NSMakeRect(0.0, 0.0, contentBounds.width, contentBounds.height + statusBarHeight)]; + + NSSize visibleScreenBounds = { (screenFrame.size.width - (windowFrame.size.width - contentBounds.width)), (screenFrame.size.height - (windowFrame.size.height - contentBounds.height)) }; + double maxS = GetMaxScalarInBounds(contentBounds.width, contentBounds.height, visibleScreenBounds.width, visibleScreenBounds.height); + + return maxS; +} + +- (void) setVolume:(float)vol +{ + [bindings setValue:[NSNumber numberWithFloat:vol] forKey:@"volume"]; + + // Update the icon. + NSImage *currentImage = [bindings valueForKey:@"volumeIconImage"]; + NSImage *newImage = nil; + if (vol <= 0.0f) + { + newImage = iconVolumeMute; + } + else if (vol > 0.0f && vol <= VOLUME_THRESHOLD_LOW) + { + newImage = iconVolumeOneThird; + } + else if (vol > VOLUME_THRESHOLD_LOW && vol <= VOLUME_THRESHOLD_HIGH) + { + newImage = iconVolumeTwoThird; + } + else + { + newImage = iconVolumeFull; + } + + if (newImage != currentImage) + { + [bindings setObject:newImage forKey:@"volumeIconImage"]; + } +} + +- (float) volume +{ + return [(NSNumber *)[bindings valueForKey:@"volume"] floatValue]; +} + +- (void) setIsRomLoaded:(BOOL)theState +{ + [bindings setValue:[NSNumber numberWithBool:theState] forKey:@"isRomLoaded"]; +} + +- (BOOL) isRomLoaded +{ + return [(NSNumber *)[bindings valueForKey:@"isRomLoaded"] boolValue]; +} + +- (void) setStatus:(NSString *)theString +{ + [bindings setValue:theString forKey:@"status"]; +} + +- (NSString *) status +{ + return (NSString *)[bindings valueForKey:@"status"]; +} + +- (IBAction) openRom:(id)sender +{ + if (isRomLoading) + { + return; + } + + NSURL *selectedFile = nil; + NSInteger buttonClicked = NSFileHandlingPanelCancelButton; + NSOpenPanel *panel = [NSOpenPanel openPanel]; + + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_OPEN_ROM_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_ROM_DS, @FILE_EXT_ROM_GBA, nil]; + + // The NSOpenPanel method -(NSInt)runModalForDirectory:file:types: + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + buttonClicked = [panel runModal]; +#else + buttonClicked = [panel runModalForDirectory:nil file:nil types:fileTypes]; +#endif + + if (buttonClicked == NSFileHandlingPanelOKButton) + { + selectedFile = [[panel URLs] lastObject]; + if(selectedFile == nil) + { + return; + } + } + else + { + return; + } + + [self handleLoadRom:selectedFile]; +} + +- (IBAction) closeRom:(id)sender; +{ + [self handleUnloadRom:REASONFORCLOSE_NORMAL romToLoad:nil]; +} + +- (IBAction) openEmuSaveState:(id)sender +{ + BOOL result = NO; + NSURL *selectedFile = nil; + NSInteger buttonClicked = NSFileHandlingPanelCancelButton; + NSOpenPanel *panel = [NSOpenPanel openPanel]; + + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_OPEN_STATE_FILE_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_SAVE_STATE, nil]; + + // The NSOpenPanel method -(NSInt)runModalForDirectory:file:types: + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + buttonClicked = [panel runModal]; +#else + buttonClicked = [panel runModalForDirectory:nil file:nil types:fileTypes]; +#endif + + if (buttonClicked == NSFileHandlingPanelOKButton) + { + selectedFile = [[panel URLs] lastObject]; + if(selectedFile == nil) + { + return; + } + } + else + { + return; + } + + [self pauseCore]; + + result = [CocoaDSFile loadState:selectedFile]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_SAVESTATE_LOADING_FAILED]; + [self restoreCoreState]; + return; + } + + currentEmuSaveStateURL = selectedFile; + [currentEmuSaveStateURL retain]; + [window setDocumentEdited:YES]; + + [self restoreCoreState]; + [self setStatus:NSSTRING_STATUS_SAVESTATE_LOADED]; +} + +- (IBAction) saveEmuSaveState:(id)sender +{ + BOOL result = NO; + + if ([window isDocumentEdited] && currentEmuSaveStateURL != nil) + { + [self pauseCore]; + + result = [CocoaDSFile saveState:currentEmuSaveStateURL]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_SAVESTATE_SAVING_FAILED]; + return; + } + + [window setDocumentEdited:YES]; + + [self restoreCoreState]; + [self setStatus:NSSTRING_STATUS_SAVESTATE_SAVED]; + } + else + { + [self saveEmuSaveStateAs:sender]; + } +} + +- (IBAction) saveEmuSaveStateAs:(id)sender +{ + BOOL result = NO; + NSInteger buttonClicked = NSFileHandlingPanelCancelButton; + NSSavePanel *panel = [NSSavePanel savePanel]; + + [panel setCanCreateDirectories:YES]; + [panel setTitle:NSSTRING_TITLE_SAVE_STATE_FILE_PANEL]; + [panel setRequiredFileType:@FILE_EXT_SAVE_STATE]; + + buttonClicked = [panel runModal]; + if(buttonClicked == NSOKButton) + { + [self pauseCore]; + + NSURL *saveFileURL = [panel URL]; + + result = [CocoaDSFile saveState:saveFileURL]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_SAVESTATE_SAVING_FAILED]; + return; + } + + currentEmuSaveStateURL = saveFileURL; + [currentEmuSaveStateURL retain]; + [window setDocumentEdited:YES]; + + [self restoreCoreState]; + [self setStatus:NSSTRING_STATUS_SAVESTATE_SAVED]; + } +} + +- (IBAction) revertEmuSaveState:(id)sender +{ + BOOL result = NO; + + if ([window isDocumentEdited] && currentEmuSaveStateURL != nil) + { + [self pauseCore]; + + result = [CocoaDSFile loadState:currentEmuSaveStateURL]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_SAVESTATE_REVERTING_FAILED]; + return; + } + + [window setDocumentEdited:YES]; + + [self restoreCoreState]; + [self setStatus:NSSTRING_STATUS_SAVESTATE_REVERTED]; + } +} + +- (IBAction) loadEmuSaveStateSlot:(id)sender +{ + BOOL result = NO; + NSInteger i = [CocoaDSUtil getIBActionSenderTag:sender]; + + NSString *saveStatePath = [[CocoaDSFile saveStateURL] path]; + if (saveStatePath == nil) + { + // Should throw an error message here... + return; + } + + if (i < 0 || i > MAX_SAVESTATE_SLOTS) + { + return; + } + + NSURL *currentRomURL = [[self currentRom] fileURL]; + NSString *fileName = [CocoaDSFile saveSlotFileName:currentRomURL slotNumber:(NSUInteger)(i + 1)]; + if (fileName == nil) + { + return; + } + + [self pauseCore]; + + result = [CocoaDSFile loadState:[NSURL fileURLWithPath:[saveStatePath stringByAppendingPathComponent:fileName]]]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_SAVESTATE_LOADING_FAILED]; + } + + [self restoreCoreState]; + [self setStatus:NSSTRING_STATUS_SAVESTATE_LOADED]; +} + +- (IBAction) saveEmuSaveStateSlot:(id)sender +{ + BOOL result = NO; + NSInteger i = [CocoaDSUtil getIBActionSenderTag:sender]; + + NSString *saveStatePath = [[CocoaDSFile saveStateURL] path]; + if (saveStatePath == nil) + { + [self setStatus:NSSTRING_STATUS_CANNOT_GENERATE_SAVE_PATH]; + return; + } + + result = [CocoaDSFile createUserAppSupportDirectory:@"States"]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_CANNOT_CREATE_SAVE_DIRECTORY]; + return; + } + + if (i < 0 || i > MAX_SAVESTATE_SLOTS) + { + return; + } + + NSURL *currentRomURL = [[self currentRom] fileURL]; + NSString *fileName = [CocoaDSFile saveSlotFileName:currentRomURL slotNumber:(NSUInteger)(i + 1)]; + if (fileName == nil) + { + return; + } + + [self pauseCore]; + + result = [CocoaDSFile saveState:[NSURL fileURLWithPath:[saveStatePath stringByAppendingPathComponent:fileName]]]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_SAVESTATE_SAVING_FAILED]; + return; + } + + [self restoreCoreState]; + [self setStatus:NSSTRING_STATUS_SAVESTATE_SAVED]; +} + +- (IBAction) importRomSave:(id)sender +{ + NSURL *selectedFile = nil; + NSInteger buttonClicked = NSFileHandlingPanelCancelButton; + NSOpenPanel *panel = [NSOpenPanel openPanel]; + + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_IMPORT_ROM_SAVE_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_ROM_SAVE_NOGBA, @FILE_EXT_ACTION_REPLAY_SAVE, nil]; + + // The NSOpenPanel method -(NSInt)runModalForDirectory:file:types: + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + buttonClicked = [panel runModal]; +#else + buttonClicked = [panel runModalForDirectory:nil file:nil types:fileTypes]; +#endif + + if (buttonClicked == NSFileHandlingPanelOKButton) + { + selectedFile = [[panel URLs] lastObject]; + if(selectedFile == nil) + { + return; + } + } + else + { + return; + } + + BOOL result = [CocoaDSFile importRomSave:selectedFile]; + if (!result) + { + [self setStatus:NSSTRING_STATUS_ROM_SAVE_IMPORT_FAILED]; + return; + } + + [self setStatus:NSSTRING_STATUS_ROM_SAVE_IMPORTED]; +} + +- (IBAction) exportRomSave:(id)sender +{ + [self pauseCore]; + + BOOL result = NO; + NSInteger buttonClicked; + NSSavePanel *panel = [NSSavePanel savePanel]; + [panel setTitle:NSSTRING_TITLE_EXPORT_ROM_SAVE_PANEL]; + [panel setCanCreateDirectories:YES]; + [panel setAccessoryView:exportRomSavePanelAccessoryView]; + + //save it + buttonClicked = [panel runModal]; + if(buttonClicked == NSOKButton) + { + NSURL *romSaveURL = [CocoaDSFile fileURLFromRomURL:[[self currentRom] fileURL] toKind:@"ROM Save"]; + if (romSaveURL != nil) + { + result = [CocoaDSFile exportRomSaveToURL:[panel URL] romSaveURL:romSaveURL fileType:selectedExportRomSaveID]; + if (result == NO) + { + [self setStatus:NSSTRING_STATUS_ROM_SAVE_EXPORT_FAILED]; + return; + } + + [self setStatus:NSSTRING_STATUS_ROM_SAVE_EXPORTED]; + } + } + + [self restoreCoreState]; +} + +- (IBAction) selectExportRomSaveFormat:(id)sender +{ + selectedExportRomSaveID = [CocoaDSUtil getIBActionSenderTag:sender]; +} + +- (IBAction)copy:(id)sender +{ + [dispViewDelegate copyToPasteboard]; +} + +// Emulation Menu +- (IBAction) executeCoreToggle:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if ([cdsCore coreState] == CORESTATE_PAUSE) + { + if ([self isRomLoaded]) + { + [self executeCore]; + } + } + else + { + [self pauseCore]; + } +} + +- (IBAction) resetCore:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if ([self isRomLoaded]) + { + [self setStatus:NSSTRING_STATUS_EMULATOR_RESETTING]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isWorking"]; + [window displayIfNeeded]; + + [cdsCore reset]; + if ([cdsCore coreState] == CORESTATE_PAUSE) + { + [[self dispViewDelegate] setViewToWhite]; + } + + [self setStatus:NSSTRING_STATUS_EMULATOR_RESET]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isWorking"]; + [window displayIfNeeded]; + } +} + +- (IBAction) speedLimitDisable:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if ([cdsCore isSpeedLimitEnabled]) + { + [cdsCore setIsSpeedLimitEnabled:NO]; + [self setStatus:NSSTRING_STATUS_SPEED_LIMIT_DISABLED]; + } + else + { + [cdsCore setIsSpeedLimitEnabled:YES]; + [self setStatus:NSSTRING_STATUS_SPEED_LIMIT_ENABLED]; + } +} + +- (IBAction) toggleAutoFrameSkip:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if ([cdsCore isFrameSkipEnabled]) + { + [cdsCore setIsFrameSkipEnabled:NO]; + [self setStatus:NSSTRING_STATUS_AUTO_FRAME_SKIP_DISABLED]; + } + else + { + [cdsCore setIsFrameSkipEnabled:YES]; + [self setStatus:NSSTRING_STATUS_AUTO_FRAME_SKIP_ENABLED]; + } +} + +- (IBAction) changeRomSaveType:(id)sender +{ + NSInteger saveTypeID = [CocoaDSUtil getIBActionSenderTag:sender]; + [self setSelectedRomSaveTypeID:saveTypeID]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [cdsCore changeRomSaveType:saveTypeID]; +} + +- (IBAction) cheatsDisable:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if ([cdsCore isCheatingEnabled]) + { + [cdsCore setIsCheatingEnabled:NO]; + [self setStatus:NSSTRING_STATUS_CHEATS_DISABLED]; + } + else + { + [cdsCore setIsCheatingEnabled:YES]; + [self setStatus:NSSTRING_STATUS_CHEATS_ENABLED]; + } +} + +- (IBAction) ejectCard:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + [cdsCore toggleEjectCard]; +} + +// View Menu + +- (IBAction) changeCoreSpeed:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + [cdsCore setSpeedScalar:(CGFloat)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0f]; +} + +- (IBAction) changeCoreEmuFlags:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + NSUInteger flags = [cdsCore emulationFlags]; + + NSInteger flagBit = [CocoaDSUtil getIBActionSenderTag:sender]; + if (flagBit < 0) + { + return; + } + + BOOL flagState = [CocoaDSUtil getIBActionSenderButtonStateBool:sender]; + if (flagState) + { + flags |= (1 << flagBit); + } + else + { + flags &= ~(1 << flagBit); + } + + [cdsCore setEmulationFlags:flags]; +} + +- (IBAction) changeFirmwareSettings:(id)sender +{ + // Force end of editing of any text fields. + [[(NSControl *)sender window] makeFirstResponder:nil]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [[cdsCore cdsFirmware] update]; +} + +- (IBAction) changeVolume:(id)sender +{ + float vol = [self volume]; + [self setVolume:vol]; + [self setStatus:[NSString stringWithFormat:NSSTRING_STATUS_VOLUME, vol]]; + [CocoaDSUtil messageSendOneWayWithFloat:[cdsSpeaker receivePort] msgID:MESSAGE_SET_VOLUME floatValue:vol]; +} + +- (IBAction) changeAudioEngine:(id)sender +{ + [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_AUDIO_PROCESS_METHOD integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) changeSpuAdvancedLogic:(id)sender +{ + [CocoaDSUtil messageSendOneWayWithBool:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_ADVANCED_LOGIC boolValue:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) changeSpuInterpolationMode:(id)sender +{ + [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_INTERPOLATION_MODE integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) changeSpuSyncMode:(id)sender +{ + [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_SYNC_MODE integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) changeSpuSyncMethod:(id)sender +{ + [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_SYNC_METHOD integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) changeScale:(id)sender +{ + [self setContentScalar:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; +} + +- (IBAction) changeRotation:(id)sender +{ + // Get the rotation value from the sender. + if ([sender isMemberOfClass:[NSSlider class]]) + { + [self setContentRotation:[(NSSlider *)sender doubleValue]]; + } + else + { + [self setContentRotation:(double)[CocoaDSUtil getIBActionSenderTag:sender]]; + } +} + +- (IBAction) changeRotationRelative:(id)sender +{ + double angleDegrees = [dispViewDelegate rotation] + (double)[CocoaDSUtil getIBActionSenderTag:sender]; + [self setContentRotation:angleDegrees]; +} + +- (IBAction) changeBilinearOutput:(id)sender +{ + [dispViewDelegate setUseBilinearOutput:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) changeDisplayMode:(id)sender +{ + [dispViewDelegate setDisplayType:[CocoaDSUtil getIBActionSenderTag:sender]]; + [self resizeWithTransform:[dispViewDelegate normalSize] scalar:[dispViewDelegate scale] rotation:[dispViewDelegate rotation]]; +} + +- (IBAction) changeVideoFilter:(id)sender +{ + [dispViewDelegate setVideoFilterType:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) change3DRenderMethod:(id)sender +{ + [dispViewDelegate setRender3DRenderingEngine:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) change3DRenderHighPrecisionColorInterpolation:(id)sender +{ + [dispViewDelegate setRender3DHighPrecisionColorInterpolation:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) change3DRenderEdgeMarking:(id)sender +{ + [dispViewDelegate setRender3DEdgeMarking:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) change3DRenderFog:(id)sender +{ + [dispViewDelegate setRender3DFog:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) change3DRenderTextures:(id)sender +{ + [dispViewDelegate setRender3DTextures:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) change3DRenderDepthComparisonThreshold:(id)sender +{ + NSInteger threshold = 0; + + if ([sender respondsToSelector:@selector(integerValue)]) + { + threshold = [sender integerValue]; + if (threshold < 0) + { + return; + } + } + + [dispViewDelegate setRender3DDepthComparisonThreshold:(NSUInteger)threshold]; +} + +- (IBAction) change3DRenderThreads:(id)sender +{ + NSInteger numberThreads = [CocoaDSUtil getIBActionSenderTag:sender]; + if (numberThreads < 0) + { + return; + } + + [dispViewDelegate setRender3DThreads:(NSUInteger)numberThreads]; +} + +- (IBAction) change3DRenderLineHack:(id)sender +{ + [dispViewDelegate setRender3DLineHack:[CocoaDSUtil getIBActionSenderButtonStateBool:sender]]; +} + +- (IBAction) hudDisable:(id)sender +{ + if ([dispViewDelegate isHudEnabled]) + { + [dispViewDelegate setIsHudEnabled:NO]; + [self setStatus:NSSTRING_STATUS_HUD_DISABLED]; + } + else + { + [dispViewDelegate setIsHudEnabled:YES]; + [self setStatus:NSSTRING_STATUS_HUD_ENABLED]; + } +} + +- (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender +{ + if (isMinSizeNormal) + { + minDisplayViewSize.width /= 4; + minDisplayViewSize.height /= 4; + isMinSizeNormal = NO; + } + else + { + minDisplayViewSize.width = GPU_DISPLAY_WIDTH; + minDisplayViewSize.height = GPU_DISPLAY_HEIGHT * 2; + isMinSizeNormal = YES; + } + + // Set the minimum content size, keeping the display rotation in mind. + NSSize transformedMinSize = GetTransformedBounds(minDisplayViewSize, 1.0, CLOCKWISE_DEGREES([dispViewDelegate rotation])); + transformedMinSize.height += statusBarHeight; + [window setContentMinSize:transformedMinSize]; + + // Resize the window if it's smaller than the minimum content size. + NSRect windowContentRect = [window contentRectForFrameRect:[window frame]]; + if (windowContentRect.size.width < transformedMinSize.width || windowContentRect.size.height < transformedMinSize.height) + { + // Prepare to resize. + NSRect oldFrameRect = [window frame]; + windowContentRect.size = transformedMinSize; + NSRect newFrameRect = [window frameRectForContentRect:windowContentRect]; + + // Keep the window centered when expanding the size. + newFrameRect.origin.x = oldFrameRect.origin.x - ((newFrameRect.size.width - oldFrameRect.size.width) / 2); + newFrameRect.origin.y = oldFrameRect.origin.y - ((newFrameRect.size.height - oldFrameRect.size.height) / 2); + + // Set the window size. + [window setFrame:newFrameRect display:YES animate:NO]; + } +} + +- (IBAction) toggleStatusBar:(id)sender +{ + NSRect frameRect = [window frame]; + + if (isShowingStatusBar) + { + isShowingStatusBar = NO; + statusBarHeight = 0; + frameRect.origin.y += WINDOW_STATUS_BAR_HEIGHT; + frameRect.size.height -= WINDOW_STATUS_BAR_HEIGHT; + } + else + { + isShowingStatusBar = YES; + statusBarHeight = WINDOW_STATUS_BAR_HEIGHT; + frameRect.origin.y -= WINDOW_STATUS_BAR_HEIGHT; + frameRect.size.height += WINDOW_STATUS_BAR_HEIGHT; + } + + [[self bindings] setValue:[NSNumber numberWithBool:isShowingStatusBar] forKey:@"isShowingStatusBar"]; + [window setFrame:frameRect display:YES animate:NO]; +} + +- (IBAction) selectScreenshotFileFormat:(id)sender +{ + screenshotFileFormat = (NSBitmapImageFileType)[CocoaDSUtil getIBActionSenderTag:sender]; +} + +- (IBAction) saveScreenshotAs:(id)sender +{ + [self pauseCore]; + + NSInteger buttonClicked = NSFileHandlingPanelCancelButton; + NSSavePanel *panel = [NSSavePanel savePanel]; + + [panel setCanCreateDirectories:YES]; + [panel setTitle:NSSTRING_TITLE_SAVE_SCREENSHOT_PANEL]; + [panel setAccessoryView:saveScreenshotPanelAccessoryView]; + + buttonClicked = [panel runModal]; + if(buttonClicked == NSOKButton) + { + [dispViewDelegate requestScreenshot:[panel URL] fileType:screenshotFileFormat]; + } + else + { + [self restoreCoreState]; + } +} + +- (void) saveScreenshotAsFinish:(NSNotification *)aNotification +{ + NSURL *fileURL = (NSURL *)[[aNotification userInfo] valueForKey:@"fileURL"]; + NSBitmapImageFileType fileType = (NSBitmapImageFileType)[(NSNumber *)[[aNotification userInfo] valueForKey:@"fileType"] integerValue]; + NSImage *screenshotImage = (NSImage *)[[aNotification userInfo] valueForKey:@"screenshotImage"]; + + BOOL fileSaved = [CocoaDSFile saveScreenshot:fileURL bitmapData:[[screenshotImage representations] objectAtIndex:0] fileType:fileType]; + if (!fileSaved) + { + [CocoaDSUtil quickDialogUsingTitle:NSSTRING_ERROR_TITLE_LEGACY message:NSSTRING_ERROR_SCREENSHOT_FAILED_LEGACY]; + } + + [self restoreCoreState]; +} + +- (IBAction) toggleGPUState:(id)sender +{ + NSInteger i = [CocoaDSUtil getIBActionSenderTag:sender]; + UInt32 flags = [dispViewDelegate gpuStateFlags]; + + flags ^= (1 << i); + + [dispViewDelegate setGpuStateFlags:flags]; +} + +- (BOOL) handleLoadRom:(NSURL *)fileURL +{ + BOOL result = NO; + + if (isRomLoading) + { + return result; + } + + if ([self isRomLoaded]) + { + BOOL closeResult = [self handleUnloadRom:REASONFORCLOSE_OPEN romToLoad:fileURL]; + if ([self isShowingSaveStateSheet]) + { + return result; + } + + if (![self isShowingSaveStateSheet] && closeResult == NO) + { + return result; + } + } + + // Check for the v0.9.7 ROM Save File + if ([CocoaDSFile romSaveExistsWithRom:fileURL] && ![CocoaDSFile romSaveExists:fileURL]) + { + SEL endSheetSelector = @selector(didEndFileMigrationSheet:returnCode:contextInfo:); + + [fileURL retain]; + [self setIsSheetControllingExecution:YES]; + [self setIsShowingSaveStateSheet:YES]; + + [NSApp beginSheet:saveFileMigrationSheet + modalForWindow:window + modalDelegate:self + didEndSelector:endSheetSelector + contextInfo:fileURL]; + } + else + { + result = [self loadRom:fileURL]; + } + + return result; +} + +- (BOOL) handleUnloadRom:(NSInteger)reasonID romToLoad:(NSURL *)romURL +{ + BOOL result = NO; + + if (isRomLoading || ![self isRomLoaded]) + { + return result; + } + + [self pauseCore]; + + if ([window isDocumentEdited] && currentEmuSaveStateURL != nil) + { + SEL endSheetSelector = @selector(didEndSaveStateSheet:returnCode:contextInfo:); + + switch (reasonID) + { + case REASONFORCLOSE_OPEN: + [romURL retain]; + endSheetSelector = @selector(didEndSaveStateSheetOpen:returnCode:contextInfo:); + break; + + case REASONFORCLOSE_TERMINATE: + endSheetSelector = @selector(didEndSaveStateSheetTerminate:returnCode:contextInfo:); + break; + + default: + break; + } + + [currentEmuSaveStateURL retain]; + [self setIsSheetControllingExecution:YES]; + [self setIsShowingSaveStateSheet:YES]; + + [NSApp beginSheet:saveStatePrecloseSheet + modalForWindow:window + modalDelegate:self + didEndSelector:endSheetSelector + contextInfo:romURL]; + } + else + { + result = [self unloadRom]; + } + + return result; +} + +- (BOOL) loadRom:(NSURL *)romURL +{ + BOOL result = NO; + + if (romURL == nil) + { + return result; + } + + [self setStatus:NSSTRING_STATUS_ROM_LOADING]; + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isWorking"]; + [window displayIfNeeded]; + + // Need to pause the core before loading the ROM. + [self pauseCore]; + + CocoaDSRom *newRom = [[CocoaDSRom alloc] init]; + if (newRom != nil) + { + isRomLoading = YES; + [romURL retain]; + [newRom setSaveType:selectedRomSaveTypeID]; + [NSThread detachNewThreadSelector:@selector(loadDataOnThread:) toTarget:newRom withObject:romURL]; + [romURL release]; + } + + result = YES; + + return result; +} + +- (void) loadRomDidFinish:(NSNotification *)aNotification +{ + CocoaDSRom *theRom = [aNotification object]; + NSDictionary *userInfo = [aNotification userInfo]; + BOOL didLoad = [(NSNumber *)[userInfo valueForKey:@"DidLoad"] boolValue]; + + if (theRom == nil || ![theRom isDataLoaded] || !didLoad) + { + // If ROM loading fails, restore the core state, but only if a ROM is already loaded. + if([self isRomLoaded]) + { + [self restoreCoreState]; + } + + if (theRom != nil) + { + [theRom release]; + } + + [self setStatus:NSSTRING_STATUS_ROM_LOADING_FAILED]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isWorking"]; + + isRomLoading = NO; + return; + } + + // Set the core's ROM to our newly allocated ROM object. + [self setCurrentRom:theRom]; + [romInfoPanelController setContent:[theRom bindings]]; + + // If the ROM has an associated cheat file, load it now. + NSString *cheatsPath = [[CocoaDSFile fileURLFromRomURL:[theRom fileURL] toKind:@"Cheat"] path]; + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + CocoaDSCheatManager *newCheatList = [[CocoaDSCheatManager alloc] initWithURL:cdsCore fileURL:[NSURL fileURLWithPath:cheatsPath]]; + if (newCheatList != nil) + { + NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content]; + + [CocoaDSCheatManager setMasterCheatList:newCheatList]; + [cheatListController setContent:[newCheatList list]]; + [self setCdsCheats:newCheatList]; + [cheatWindowBindings setValue:newCheatList forKey:@"cheatList"]; + + NSString *filePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"R4Cheat_DatabasePath"]; + if (filePath != nil) + { + NSURL *fileURL = [NSURL fileURLWithPath:filePath]; + NSInteger error = 0; + NSMutableArray *dbList = [[self cdsCheats] cheatListFromDatabase:fileURL errorCode:&error]; + if (dbList != nil) + { + [cheatDatabaseController setContent:dbList]; + + NSString *titleString = [[self cdsCheats] dbTitle]; + NSString *dateString = [[self cdsCheats] dbDate]; + + [cheatWindowBindings setValue:titleString forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:dateString forKey:@"cheatDBDate"]; + [cheatWindowBindings setValue:[NSString stringWithFormat:@"%d", [dbList count]] forKey:@"cheatDBItemCount"]; + } + else + { + [cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"]; + + switch (error) + { + case CHEATEXPORT_ERROR_FILE_NOT_FOUND: + NSLog(@"R4 Cheat Database read failed! Could not load the database file!"); + [cheatWindowBindings setValue:@"Database not loaded." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"CANNOT LOAD FILE" forKey:@"cheatDBDate"]; + break; + + case CHEATEXPORT_ERROR_WRONG_FILE_FORMAT: + NSLog(@"R4 Cheat Database read failed! Wrong file format!"); + [cheatWindowBindings setValue:@"Database load error." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"FAILED TO LOAD FILE" forKey:@"cheatDBDate"]; + break; + + case CHEATEXPORT_ERROR_SERIAL_NOT_FOUND: + NSLog(@"R4 Cheat Database read failed! Could not find the serial number for this game in the database!"); + [cheatWindowBindings setValue:@"ROM not found in database." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"ROM not found." forKey:@"cheatDBDate"]; + break; + + case CHEATEXPORT_ERROR_EXPORT_FAILED: + NSLog(@"R4 Cheat Database read failed! Could not read the database file!"); + [cheatWindowBindings setValue:@"Database read error." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"CANNOT READ FILE" forKey:@"cheatDBDate"]; + break; + + default: + break; + } + } + } + + [cheatWindowDelegate setCdsCheats:newCheatList]; + [[cheatWindowDelegate cdsCheats] setCdsCore:cdsCore]; + [[cheatWindowDelegate cdsCheatSearch] setCdsCore:cdsCore]; + [cheatWindowDelegate setCheatSearchViewByStyle:CHEATSEARCH_SEARCHSTYLE_EXACT_VALUE]; + } + + // After the ROM loading is complete, send an execute message to the Cocoa DS per + // user preferences. + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"General_ExecuteROMOnLoad"]) + { + [self executeCore]; + } + + // Add the last loaded ROM to the Recent ROMs list. + [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[theRom fileURL]]; + + // Update the UI to indicate that a ROM has indeed been loaded. + [dispViewDelegate setViewToWhite]; + [self setStatus:NSSTRING_STATUS_ROM_LOADED]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isWorking"]; + [self setIsRomLoaded:YES]; + [window displayIfNeeded]; + isRomLoading = NO; +} + +- (BOOL) unloadRom +{ + BOOL result = NO; + + [currentEmuSaveStateURL release]; + currentEmuSaveStateURL = nil; + [window setDocumentEdited:NO]; + + // Update the UI to indicate that the ROM has started the process of unloading. + [self setStatus:NSSTRING_STATUS_ROM_UNLOADING]; + [romInfoPanelController setContent:[CocoaDSRom romNotLoadedBindings]]; + [cheatListController setContent:nil]; + [cheatWindowDelegate resetSearch:nil]; + [cheatWindowDelegate setCdsCheats:nil]; + [cheatDatabaseController setContent:nil]; + + NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content]; + [cheatWindowBindings setValue:@"No ROM loaded." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"No ROM loaded." forKey:@"cheatDBDate"]; + [cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"]; + [cheatWindowBindings setValue:nil forKey:@"cheatList"]; + + [bindings setValue:[NSNumber numberWithBool:YES] forKey:@"isWorking"]; + [window displayIfNeeded]; + + // Unload the ROM. + [[self currentRom] release]; + [self setCurrentRom:nil]; + + // Release the current cheat list and assign the empty list. + [[self cdsCheats] release]; + [self setCdsCheats:nil]; + if (dummyCheatList == nil) + { + dummyCheatList = [[CocoaDSCheatManager alloc] init]; + } + [CocoaDSCheatManager setMasterCheatList:dummyCheatList]; + + // Update the UI to indicate that the ROM has finished unloading. + [dispViewDelegate setViewToBlack]; + [self setStatus:NSSTRING_STATUS_ROM_UNLOADED]; + [bindings setValue:[NSNumber numberWithBool:NO] forKey:@"isWorking"]; + [self setIsRomLoaded:NO]; + [window displayIfNeeded]; + + result = YES; + + return result; +} + +- (void) executeCore +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [cdsCore setCoreState:CORESTATE_EXECUTE]; +} + +- (void) pauseCore +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [cdsCore setCoreState:CORESTATE_PAUSE]; +} + +- (void) restoreCoreState +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [cdsCore restoreCoreState]; +} + +- (BOOL)validateUserInterfaceItem:(id )theItem +{ + BOOL enable = YES; + SEL theAction = [theItem action]; + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if (theAction == @selector(importRomSave:) || + theAction == @selector(exportRomSave:)) + { + if (![self isRomLoaded]) + { + enable = NO; + } + } + else if (theAction == @selector(executeCoreToggle:)) + { + if (![self isRomLoaded] || + ![cdsCore masterExecute] || + [self isSheetControllingExecution]) + { + enable = NO; + } + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([cdsCore coreState] == CORESTATE_PAUSE) + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_EXECUTE_CONTROL]; + } + else + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_PAUSE_CONTROL]; + } + } + else if ([(id)theItem isMemberOfClass:[NSToolbarItem class]]) + { + if ([cdsCore coreState] == CORESTATE_PAUSE) + { + [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_EXECUTE_CONTROL]; + [(NSToolbarItem*)theItem setImage:iconExecute]; + } + else + { + [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_PAUSE_CONTROL]; + [(NSToolbarItem*)theItem setImage:iconPause]; + } + } + } + else if (theAction == @selector(executeCore) || + theAction == @selector(pauseCore)) + { + if (![self isRomLoaded] || + ![cdsCore masterExecute] || + [self isSheetControllingExecution]) + { + enable = NO; + } + } + else if (theAction == @selector(resetCore:)) + { + if (![self isRomLoaded] || [self isSheetControllingExecution]) + { + enable = NO; + } + } + else if (theAction == @selector(ejectCard:)) + { + if (![self isRomLoaded]) + { + enable = NO; + } + + if ([cdsCore ejectCardFlag]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + + } + else if (theAction == @selector(_openRecentDocument:)) + { + if ([self isShowingSaveStateSheet]) + { + enable = NO; + } + } + else if (theAction == @selector(openRom:)) + { + if (isRomLoading || [self isShowingSaveStateSheet]) + { + enable = NO; + } + } + else if (theAction == @selector(closeRom:)) + { + if (![self isRomLoaded] || isRomLoading || [self isShowingSaveStateSheet]) + { + enable = NO; + } + } + else if (theAction == @selector(loadEmuSaveStateSlot:)) + { + if (![self isRomLoaded] || [self isShowingSaveStateSheet]) + { + enable = NO; + } + else if (![CocoaDSFile saveStateExistsForSlot:[[self currentRom] fileURL] slotNumber:[theItem tag] + 1]) + { + enable = NO; + } + } + else if (theAction == @selector(saveEmuSaveStateSlot:)) + { + if (![self isRomLoaded] || [self isShowingSaveStateSheet]) + { + enable = NO; + } + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([CocoaDSFile saveStateExistsForSlot:[[self currentRom] fileURL] slotNumber:[theItem tag] + 1]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + else if (theAction == @selector(changeCoreSpeed:)) + { + NSInteger speedScalar = (NSInteger)([cdsCore speedScalar] * 100.0); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([theItem tag] == -1) + { + if (speedScalar == (NSInteger)(SPEED_SCALAR_HALF * 100.0) || + speedScalar == (NSInteger)(SPEED_SCALAR_NORMAL * 100.0) || + speedScalar == (NSInteger)(SPEED_SCALAR_DOUBLE * 100.0)) + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + } + else if (speedScalar == [theItem tag]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + else if ([(id)theItem isMemberOfClass:[NSToolbarItem class]]) + { + if (speedScalar == (NSInteger)(SPEED_SCALAR_DOUBLE * 100.0)) + { + [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_SPEED_1X]; + [(NSToolbarItem*)theItem setTag:100]; + [(NSToolbarItem*)theItem setImage:iconSpeedNormal]; + } + else + { + [(NSToolbarItem*)theItem setLabel:NSSTRING_TITLE_SPEED_2X]; + [(NSToolbarItem*)theItem setTag:200]; + [(NSToolbarItem*)theItem setImage:iconSpeedDouble]; + } + } + } + else if (theAction == @selector(speedLimitDisable:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([cdsCore isSpeedLimitEnabled]) + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_DISABLE_SPEED_LIMIT]; + } + else + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_ENABLE_SPEED_LIMIT]; + } + } + } + else if (theAction == @selector(toggleAutoFrameSkip:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([cdsCore isFrameSkipEnabled]) + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_DISABLE_AUTO_FRAME_SKIP]; + } + else + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_ENABLE_AUTO_FRAME_SKIP]; + } + } + } + else if (theAction == @selector(cheatsDisable:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([cdsCore isCheatingEnabled]) + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_DISABLE_CHEATS]; + } + else + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_ENABLE_CHEATS]; + } + } + } + else if (theAction == @selector(changeRomSaveType:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([self selectedRomSaveTypeID] == [theItem tag]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + else if (theAction == @selector(changeScale:)) + { + NSInteger viewScale = (NSInteger)([dispViewDelegate scale] * 100.0); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if (viewScale == [theItem tag]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + else if (theAction == @selector(changeRotation:)) + { + NSInteger viewRotation = (NSInteger)([dispViewDelegate rotation]); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([theItem tag] == -1) + { + if (viewRotation == 0 || + viewRotation == 90 || + viewRotation == 180 || + viewRotation == 270) + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + } + else if (viewRotation == [theItem tag]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + else if (theAction == @selector(changeDisplayMode:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([dispViewDelegate displayType] == [theItem tag]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + else if (theAction == @selector(openEmuSaveState:) || + theAction == @selector(saveEmuSaveState:) || + theAction == @selector(saveEmuSaveStateAs:)) + { + if (![self isRomLoaded] || [self isShowingSaveStateSheet]) + { + enable = NO; + } + } + else if (theAction == @selector(revertEmuSaveState:)) + { + if (![self isRomLoaded] || + [self isShowingSaveStateSheet] || + currentEmuSaveStateURL == nil) + { + enable = NO; + } + } + else if (theAction == @selector(toggleGPUState:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([dispViewDelegate gpuStateByBit:[theItem tag]]) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + else if (theAction == @selector(hudDisable:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([dispViewDelegate isHudEnabled]) + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_DISABLE_HUD]; + } + else + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_ENABLE_HUD]; + } + } + } + else if (theAction == @selector(toggleStatusBar:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if (isShowingStatusBar) + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_HIDE_STATUS_BAR]; + } + else + { + [(NSMenuItem*)theItem setTitle:NSSTRING_TITLE_SHOW_STATUS_BAR]; + } + } + } + else if (theAction == @selector(toggleKeepMinDisplaySizeAtNormal:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if (isMinSizeNormal) + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + } + } + + return enable; +} + +- (void)windowDidBecomeMain:(NSNotification *)notification +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + + if ([self isRomLoaded]) + { + [romInfoPanelController setContent:[[self currentRom] bindings]]; + } + else + { + [romInfoPanelController setContent:[CocoaDSRom romNotLoadedBindings]]; + } + + [firmwarePanelController setContent:[cdsCore cdsFirmware]]; + [emuWindowController setContent:[self bindings]]; + [cdsDisplayController setContent:[dispViewDelegate bindings]]; + [cdsSoundController setContent:[cdsSpeaker property]]; +} + +- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize +{ + NSSize finalSize = frameSize; + const NSSize normalBounds = [dispViewDelegate normalSize]; + + // Get a content Rect so that we can make our comparison. + // This will be based on the proposed frameSize. + const NSRect frameRect = NSMakeRect(0.0f, 0.0f, frameSize.width, frameSize.height); + const NSRect contentRect = [sender contentRectForFrameRect:frameRect]; + + // Find the maximum scalar we can use for the display view, bounded by the + // content Rect. + const NSSize checkSize = GetTransformedBounds(normalBounds, 1.0, [dispViewDelegate rotation]); + const NSSize contentBounds = NSMakeSize(contentRect.size.width, contentRect.size.height - statusBarHeight); + const double maxS = GetMaxScalarInBounds(checkSize.width, checkSize.height, contentBounds.width, contentBounds.height); + [dispViewDelegate setScale:maxS]; + + // Make a new content Rect with our max scalar, and convert it back to a frame Rect. + const NSRect finalContentRect = NSMakeRect(0.0f, 0.0f, checkSize.width * maxS, (checkSize.height * maxS) + statusBarHeight); + NSRect finalFrameRect = [sender frameRectForContentRect:finalContentRect]; + + // Set the final size based on our new frame Rect. + finalSize.width = finalFrameRect.size.width; + finalSize.height = finalFrameRect.size.height; + + return finalSize; +} + +- (void)windowDidResize:(NSNotification *)notification +{ + if (dispViewDelegate == nil) + { + return; + } + + const NSSize normalBounds = [dispViewDelegate normalSize]; + const double r = [dispViewDelegate rotation]; + + // Get the max scalar within the window's current content bounds. + const NSSize checkSize = GetTransformedBounds(normalBounds, 1.0, r); + NSSize contentBounds = [[window contentView] bounds].size; + contentBounds.height -= statusBarHeight; + const double maxS = GetMaxScalarInBounds(checkSize.width, checkSize.height, contentBounds.width, contentBounds.height); + + // Set the display view's properties. + [dispViewDelegate setScale:maxS]; + + // Resize the view. + NSRect newContentFrame = [[window contentView] bounds]; + newContentFrame.origin.y = statusBarHeight; + newContentFrame.size.height -= statusBarHeight; + [displayView setFrame:newContentFrame]; +} + +- (BOOL)windowShouldClose:(id)sender +{ + BOOL shouldClose = YES; + + // If no ROM is loaded, terminate the application. + if (![self isRomLoaded]) + { + [NSApp terminate:sender]; + } + // If a ROM is loaded, just close the ROM, but don't terminate. + else + { + shouldClose = NO; + [self closeRom:nil]; + } + + return shouldClose; +} + +- (IBAction) closeMigrationSheet:(id)sender +{ + NSWindow *sheet = [(NSControl *)sender window]; + NSInteger code = [(NSControl *)sender tag]; + + [NSApp endSheet:sheet returnCode:code]; +} + +- (void) didEndFileMigrationSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +{ + NSURL *romURL = (NSURL *)contextInfo; + NSURL *romSaveURL = [CocoaDSFile romSaveURLFromRomURL:romURL]; + + [sheet orderOut:self]; + + switch (returnCode) + { + case NSOKButton: + [CocoaDSFile moveFileToCurrentDirectory:romSaveURL]; + break; + + default: + break; + } + + [self setIsSheetControllingExecution:NO]; + [self setIsShowingFileMigrationSheet:NO]; + + [self loadRom:romURL]; + + // We retained this when we initially put up the sheet, so we need to release it now. + [romURL release]; +} + +- (void) didEndSaveStateSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +{ + BOOL result = NO; + + [sheet orderOut:self]; + + switch (returnCode) + { + case NSCancelButton: // Cancel + [self restoreCoreState]; + [self setIsSheetControllingExecution:NO]; + [self setIsShowingSaveStateSheet:NO]; + return; + break; + + case COCOA_DIALOG_DEFAULT: // Save + result = [CocoaDSFile saveState:currentEmuSaveStateURL]; + if (result == NO) + { + // Throw an error here... + return; + } + break; + + case COCOA_DIALOG_OPTION: // Don't Save + break; + + default: + break; + } + + [self unloadRom]; + + [self setIsSheetControllingExecution:NO]; + [self setIsShowingSaveStateSheet:NO]; + + // We retained this when we initially put up the sheet, so we need to release it now. + [currentEmuSaveStateURL release]; + currentEmuSaveStateURL = nil; +} + +- (void) didEndSaveStateSheetOpen:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +{ + [self didEndSaveStateSheet:sheet returnCode:returnCode contextInfo:contextInfo]; + + NSURL *romURL = (NSURL *)contextInfo; + [self handleLoadRom:romURL]; + [romURL release]; +} + +- (void) didEndSaveStateSheetTerminate:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +{ + [self didEndSaveStateSheet:sheet returnCode:returnCode contextInfo:contextInfo]; + + if (returnCode == NSCancelButton) + { + [NSApp replyToApplicationShouldTerminate:NO]; + } + else + { + if (currentEmuSaveStateURL == nil) + { + [NSApp replyToApplicationShouldTerminate:YES]; + } + } +} + +- (void) setupUserDefaults +{ + // Set the display mode, sizing, and rotation. + double displayScalar = (double)([[NSUserDefaults standardUserDefaults] floatForKey:@"DisplayView_Size"] / 100.0); + double displayRotation = (double)[[NSUserDefaults standardUserDefaults] floatForKey:@"DisplayView_Rotation"]; + [dispViewDelegate setDisplayType:[[NSUserDefaults standardUserDefaults] integerForKey:@"DisplayView_Mode"]]; + [self setContentScalar:displayScalar]; + [self setContentRotation:displayRotation]; + + // Set the SPU settings per user preferences. + [self setVolume:[[NSUserDefaults standardUserDefaults] floatForKey:@"Sound_Volume"]]; + [[self cdsSpeaker] setVolume:[[NSUserDefaults standardUserDefaults] floatForKey:@"Sound_Volume"]]; + [[self cdsSpeaker] setAudioOutputEngine:[[NSUserDefaults standardUserDefaults] integerForKey:@"Sound_AudioOutputEngine"]]; + [[self cdsSpeaker] setSpuAdvancedLogic:[[NSUserDefaults standardUserDefaults] boolForKey:@"SPU_AdvancedLogic"]]; + [[self cdsSpeaker] setSpuInterpolationMode:[[NSUserDefaults standardUserDefaults] integerForKey:@"SPU_InterpolationMode"]]; + [[self cdsSpeaker] setSpuSyncMode:[[NSUserDefaults standardUserDefaults] integerForKey:@"SPU_SyncMode"]]; + [[self cdsSpeaker] setSpuSyncMethod:[[NSUserDefaults standardUserDefaults] integerForKey:@"SPU_SyncMethod"]]; + + // Setup the window display view per user preferences. + [[self dispViewDelegate] setVideoFilterType:[[NSUserDefaults standardUserDefaults] integerForKey:@"DisplayView_VideoFilter"]]; + [[self dispViewDelegate] setUseBilinearOutput:[[NSUserDefaults standardUserDefaults] boolForKey:@"DisplayView_UseBilinearOutput"]]; + + // Set the 3D rendering options per user preferences. + [[self dispViewDelegate] setRender3DThreads:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_Threads"]]; + [[self dispViewDelegate] setRender3DRenderingEngine:[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_RenderingEngine"]]; + [[self dispViewDelegate] setRender3DHighPrecisionColorInterpolation:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_HighPrecisionColorInterpolation"]]; + [[self dispViewDelegate] setRender3DEdgeMarking:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_EdgeMarking"]]; + [[self dispViewDelegate] setRender3DFog:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_Fog"]]; + [[self dispViewDelegate] setRender3DTextures:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_Textures"]]; + [[self dispViewDelegate] setRender3DDepthComparisonThreshold:(NSUInteger)[[NSUserDefaults standardUserDefaults] integerForKey:@"Render3D_DepthComparisonThreshold"]]; + [[self dispViewDelegate] setRender3DLineHack:[[NSUserDefaults standardUserDefaults] boolForKey:@"Render3D_LineHack"]]; +} + +- (IBAction) writeDefaultsDisplayRotation:(id)sender +{ + NSMutableDictionary *dispViewBindings = (NSMutableDictionary *)[cdsDisplayController content]; + + [[NSUserDefaults standardUserDefaults] setDouble:[[dispViewBindings valueForKey:@"rotation"] doubleValue] forKey:@"DisplayView_Rotation"]; +} + +- (IBAction) writeDefaultsHUDSettings:(id)sender +{ + // TODO: Not implemented. +} + +- (IBAction) writeDefaultsVideoOutputSettings:(id)sender +{ + NSMutableDictionary *dispViewBindings = (NSMutableDictionary *)[cdsDisplayController content]; + + [[NSUserDefaults standardUserDefaults] setInteger:[[dispViewBindings valueForKey:@"videoFilterType"] integerValue] forKey:@"DisplayView_VideoFilter"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"useBilinearOutput"] boolValue] forKey:@"DisplayView_UseBilinearOutput"]; +} + +- (IBAction) writeDefaults3DRenderingSettings:(id)sender +{ + NSMutableDictionary *dispViewBindings = (NSMutableDictionary *)[cdsDisplayController content]; + + // Force end of editing of any text fields. + [[(NSControl *)sender window] makeFirstResponder:nil]; + + [[NSUserDefaults standardUserDefaults] setInteger:[[dispViewBindings valueForKey:@"render3DRenderingEngine"] integerValue] forKey:@"Render3D_RenderingEngine"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DHighPrecisionColorInterpolation"] boolValue] forKey:@"Render3D_HighPrecisionColorInterpolation"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DEdgeMarking"] boolValue] forKey:@"Render3D_EdgeMarking"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DFog"] boolValue] forKey:@"Render3D_Fog"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DTextures"] boolValue] forKey:@"Render3D_Textures"]; + [[NSUserDefaults standardUserDefaults] setInteger:[[dispViewBindings valueForKey:@"render3DDepthComparisonThreshold"] integerValue] forKey:@"Render3D_DepthComparisonThreshold"]; + [[NSUserDefaults standardUserDefaults] setInteger:[[dispViewBindings valueForKey:@"render3DThreads"] integerValue] forKey:@"Render3D_Threads"]; + [[NSUserDefaults standardUserDefaults] setBool:[[dispViewBindings valueForKey:@"render3DLineHack"] boolValue] forKey:@"Render3D_LineHack"]; +} + +- (IBAction) writeDefaultsEmulationSettings:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + NSDictionary *firmwareDict = [(CocoaDSFirmware *)[firmwarePanelController content] dataDictionary]; + + // Force end of editing of any text fields. + [[(NSControl *)sender window] makeFirstResponder:nil]; + + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagAdvancedBusLevelTiming] forKey:@"Emulation_AdvancedBusLevelTiming"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagUseExternalBios] forKey:@"Emulation_UseExternalBIOSImages"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagEmulateBiosInterrupts] forKey:@"Emulation_BIOSEmulateSWI"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagPatchDelayLoop] forKey:@"Emulation_BIOSPatchDelayLoopSWI"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagUseExternalFirmware] forKey:@"Emulation_UseExternalFirmwareImage"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagFirmwareBoot] forKey:@"Emulation_FirmwareBoot"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagEmulateEnsata] forKey:@"Emulation_EmulateEnsata"]; + [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagDebugConsole] forKey:@"Emulation_UseDebugConsole"]; + + [[NSUserDefaults standardUserDefaults] setObject:[firmwareDict valueForKey:@"Nickname"] forKey:@"FirmwareConfig_Nickname"]; + [[NSUserDefaults standardUserDefaults] setObject:[firmwareDict valueForKey:@"Message"] forKey:@"FirmwareConfig_Message"]; + [[NSUserDefaults standardUserDefaults] setObject:[firmwareDict valueForKey:@"FavoriteColor"] forKey:@"FirmwareConfig_FavoriteColor"]; + [[NSUserDefaults standardUserDefaults] setObject:[firmwareDict valueForKey:@"Birthday"] forKey:@"FirmwareConfig_Birthday"]; + [[NSUserDefaults standardUserDefaults] setObject:[firmwareDict valueForKey:@"Language"] forKey:@"FirmwareConfig_Language"]; +} + +- (IBAction) writeDefaultsSoundSettings:(id)sender +{ + NSMutableDictionary *speakerBindings = (NSMutableDictionary *)[cdsSoundController content]; + + [[NSUserDefaults standardUserDefaults] setFloat:[[speakerBindings valueForKey:@"volume"] floatValue] forKey:@"Sound_Volume"]; + [[NSUserDefaults standardUserDefaults] setInteger:[[speakerBindings valueForKey:@"audioOutputEngine"] integerValue] forKey:@"Sound_AudioOutputEngine"]; + [[NSUserDefaults standardUserDefaults] setBool:[[speakerBindings valueForKey:@"spuAdvancedLogic"] boolValue] forKey:@"SPU_AdvancedLogic"]; + [[NSUserDefaults standardUserDefaults] setInteger:[[speakerBindings valueForKey:@"spuInterpolationMode"] integerValue] forKey:@"SPU_InterpolationMode"]; + [[NSUserDefaults standardUserDefaults] setInteger:[[speakerBindings valueForKey:@"spuSyncMode"] integerValue] forKey:@"SPU_SyncMode"]; + [[NSUserDefaults standardUserDefaults] setInteger:[[speakerBindings valueForKey:@"spuSyncMethod"] integerValue] forKey:@"SPU_SyncMethod"]; +} + +- (void)controlTextDidEndEditing:(NSNotification *)aNotification +{ + [self change3DRenderDepthComparisonThreshold:[aNotification object]]; +} + +@end diff --git a/desmume/src/cocoa/userinterface/inputPrefsView.h b/desmume/src/cocoa/userinterface/inputPrefsView.h new file mode 100644 index 000000000..2e4fb3809 --- /dev/null +++ b/desmume/src/cocoa/userinterface/inputPrefsView.h @@ -0,0 +1,47 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + +@class CocoaDSController; + + +@interface InputPrefsView : NSView +{ + NSWindow *prefWindow; + NSButton *lastConfigButton; + NSInteger configInput; + NSDictionary *keyNameTable; + + CocoaDSController *cdsController; +} + +@property (readonly) IBOutlet NSWindow *prefWindow; +@property (assign) NSInteger configInput; +@property (retain) CocoaDSController *cdsController; + +- (BOOL) handleMouseDown:(NSEvent *)mouseEvent; +- (void) addMappingById:(NSInteger)dsControlID deviceCode:(NSString *)deviceCode deviceName:(NSString *)deviceName elementCode:(NSString *)elementCode elementName:(NSString *)elementName; +- (void) addMappingByKey:(NSString *)dsControlKey deviceCode:(NSString *)deviceCode deviceName:(NSString *)deviceName elementCode:(NSString *)elementCode elementName:(NSString *)elementName; +- (void) addMappingByKey:(NSString *)dsControlKey deviceInfo:(NSDictionary *)deviceInfo; +- (NSString *) parseMappingDisplayString:(NSString *)keyString; +- (IBAction) inputButtonSet:(id)sender; +- (void) inputButtonCancelConfig; +- (void) handleHIDInput:(NSNotification *)aNotification; + +@end diff --git a/desmume/src/cocoa/userinterface/inputPrefsView.mm b/desmume/src/cocoa/userinterface/inputPrefsView.mm new file mode 100644 index 000000000..8ea736fdb --- /dev/null +++ b/desmume/src/cocoa/userinterface/inputPrefsView.mm @@ -0,0 +1,417 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "inputPrefsView.h" +#import "preferencesWindowDelegate.h" + +#import "cocoa_globals.h" +#import "cocoa_input.h" + +@implementation InputPrefsView + +@synthesize prefWindow; +@synthesize configInput; +@synthesize cdsController; + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self == nil) + { + return self; + } + + lastConfigButton = nil; + configInput = 0; + keyNameTable = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"KeyNames" ofType:@"plist"]]; + cdsController = nil; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleHIDInput:) + name:@"com.DeSmuME.DeSmuME.hidInputDetected" + object:nil]; + + return self; +} + +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + [keyNameTable release]; + + [super dealloc]; +} + +- (void)keyDown:(NSEvent *)theEvent +{ + NSString *elementCode = [NSString stringWithFormat:@"%d", [theEvent keyCode]]; + NSString *elementName = (NSString *)[keyNameTable valueForKey:elementCode]; + + if (configInput != 0) + { + [self addMappingById:configInput deviceCode:@"NSEventKeyboard" deviceName:@"Keyboard" elementCode:elementCode elementName:elementName]; + [self inputButtonCancelConfig]; + } +} + +- (void)mouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [self handleMouseDown:theEvent]; + if (!isHandled) + { + [super mouseDown:theEvent]; + } +} + +- (void)mouseDragged:(NSEvent *)theEvent +{ + [self mouseDown:theEvent]; +} + +- (void)rightMouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [self handleMouseDown:theEvent]; + if (!isHandled) + { + [super rightMouseDown:theEvent]; + } +} + +- (void)rightMouseDragged:(NSEvent *)theEvent +{ + [self rightMouseDown:theEvent]; +} + +- (void)otherMouseDown:(NSEvent *)theEvent +{ + BOOL isHandled = [self handleMouseDown:theEvent]; + if (!isHandled) + { + [super otherMouseDown:theEvent]; + } +} + +- (void)otherMouseDragged:(NSEvent *)theEvent +{ + [self otherMouseDown:theEvent]; +} + +- (BOOL) handleMouseDown:(NSEvent *)mouseEvent +{ + BOOL isHandled = NO; + NSString *elementCode = [NSString stringWithFormat:@"%i", [mouseEvent buttonNumber]]; + NSString *elementName = [NSString stringWithFormat:@"Button %i", [mouseEvent buttonNumber]]; + + switch ([mouseEvent buttonNumber]) + { + case kCGMouseButtonLeft: + elementName = @"Primary Button"; + break; + + case kCGMouseButtonRight: + elementName = @"Secondary Button"; + break; + + case kCGMouseButtonCenter: + elementName = @"Center Button"; + break; + + default: + break; + } + + if (configInput != 0) + { + [self addMappingById:configInput deviceCode:@"NSEventMouse" deviceName:@"Mouse" elementCode:elementCode elementName:elementName]; + [self inputButtonCancelConfig]; + isHandled = YES; + } + + return isHandled; +} + +- (void) addMappingById:(NSInteger)dsControlID deviceCode:(NSString *)deviceCode deviceName:(NSString *)deviceName elementCode:(NSString *)elementCode elementName:(NSString *)elementName +{ + NSString *dsControlKey = nil; + NSString *displayBindingsKey = nil; + + switch (dsControlID) + { + case PREF_INPUT_BUTTON_UP: + dsControlKey = @"Up"; + displayBindingsKey = @"Input_Up"; + break; + + case PREF_INPUT_BUTTON_DOWN: + dsControlKey = @"Down"; + displayBindingsKey = @"Input_Down"; + break; + + case PREF_INPUT_BUTTON_LEFT: + dsControlKey = @"Left"; + displayBindingsKey = @"Input_Left"; + break; + + case PREF_INPUT_BUTTON_RIGHT: + dsControlKey = @"Right"; + displayBindingsKey = @"Input_Right"; + break; + + case PREF_INPUT_BUTTON_A: + dsControlKey = @"A"; + displayBindingsKey = @"Input_A"; + break; + + case PREF_INPUT_BUTTON_B: + dsControlKey = @"B"; + displayBindingsKey = @"Input_B"; + break; + + case PREF_INPUT_BUTTON_X: + dsControlKey = @"X"; + displayBindingsKey = @"Input_X"; + break; + + case PREF_INPUT_BUTTON_Y: + dsControlKey = @"Y"; + displayBindingsKey = @"Input_Y"; + break; + + case PREF_INPUT_BUTTON_L: + dsControlKey = @"L"; + displayBindingsKey = @"Input_L"; + break; + + case PREF_INPUT_BUTTON_R: + dsControlKey = @"R"; + displayBindingsKey = @"Input_R"; + break; + + case PREF_INPUT_BUTTON_START: + dsControlKey = @"Start"; + displayBindingsKey = @"Input_Start"; + break; + + case PREF_INPUT_BUTTON_SELECT: + dsControlKey = @"Select"; + displayBindingsKey = @"Input_Select"; + break; + + case PREF_INPUT_BUTTON_SIM_MIC: + dsControlKey = @"Microphone"; + displayBindingsKey = @"Input_Microphone"; + break; + + case PREF_INPUT_BUTTON_LID: + dsControlKey = @"Lid"; + displayBindingsKey = @"Input_Lid"; + break; + + case PREF_INPUT_BUTTON_DEBUG: + dsControlKey = @"Debug"; + displayBindingsKey = @"Input_Debug"; + break; + + case PREF_INPUT_BUTTON_SPEED_HALF: + dsControlKey = @"Speed Half"; + displayBindingsKey = @"Input_SpeedHalf"; + break; + + case PREF_INPUT_BUTTON_SPEED_DOUBLE: + dsControlKey = @"Speed Double"; + displayBindingsKey = @"Input_SpeedDouble"; + break; + + case PREF_INPUT_BUTTON_TOGGLE_HUD: + dsControlKey = @"HUD"; + displayBindingsKey = @"Input_HUD"; + break; + + case PREF_INPUT_BUTTON_EXECUTE: + dsControlKey = @"Execute"; + displayBindingsKey = @"Input_Execute"; + break; + + case PREF_INPUT_BUTTON_PAUSE: + dsControlKey = @"Pause"; + displayBindingsKey = @"Input_Pause"; + break; + + case PREF_INPUT_BUTTON_RESET: + dsControlKey = @"Reset"; + displayBindingsKey = @"Input_Reset"; + break; + + case PREF_INPUT_BUTTON_TOUCH: + dsControlKey = @"Touch"; + break; + + default: + return; + break; + } + + if (dsControlKey != nil) + { + [self addMappingByKey:dsControlKey deviceCode:deviceCode deviceName:deviceName elementCode:elementCode elementName:elementName]; + if (dsControlID != PREF_INPUT_BUTTON_TOUCH) + { + NSMutableDictionary *prefWindowBindings = [(PreferencesWindowDelegate *)[prefWindow delegate] bindings]; + [prefWindowBindings setValue:[self parseMappingDisplayString:dsControlKey] forKey:displayBindingsKey]; + } + } +} + +- (void) addMappingByKey:(NSString *)dsControlKey deviceCode:(NSString *)deviceCode deviceName:(NSString *)deviceName elementCode:(NSString *)elementCode elementName:(NSString *)elementName +{ + if (deviceCode == nil || elementCode == nil) + { + return; + } + + if (deviceName == nil) + { + deviceName = deviceCode; + } + + if (elementName == nil) + { + elementName = elementCode; + } + + BOOL useDeviceValues = NO; + if ([deviceCode isEqualToString:@"NSEventMouse"]) + { + useDeviceValues = YES; + } + + NSDictionary *deviceInfo = [NSDictionary dictionaryWithObjectsAndKeys: + deviceCode, @"deviceCode", + deviceName, @"deviceName", + elementCode, @"elementCode", + elementName, @"elementName", + [NSNumber numberWithBool:useDeviceValues], @"useDeviceValues", + nil]; + + [self addMappingByKey:dsControlKey deviceInfo:deviceInfo]; +} + +- (void) addMappingByKey:(NSString *)dsControlKey deviceInfo:(NSDictionary *)deviceInfo +{ + [cdsController addMapping:dsControlKey deviceInfo:deviceInfo]; + + NSMutableDictionary *tempUserMappings = [NSMutableDictionary dictionaryWithDictionary:[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"Input_ControllerMappings"]]; + [tempUserMappings setValue:[NSArray arrayWithObject:deviceInfo] forKey:dsControlKey]; + [[NSUserDefaults standardUserDefaults] setValue:tempUserMappings forKey:@"Input_ControllerMappings"]; +} + +- (NSString *) parseMappingDisplayString:(NSString *)keyString +{ + NSDictionary *userMappings = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"Input_ControllerMappings"]; + NSArray *mappingList = (NSArray *)[userMappings valueForKey:keyString]; + NSDictionary *mapping = (NSDictionary *)[mappingList objectAtIndex:0]; + NSString *deviceName = (NSString *)[mapping valueForKey:@"deviceName"]; + NSString *elementName = (NSString *)[mapping valueForKey:@"elementName"]; + + NSString *displayString = [NSString stringWithString:deviceName]; + displayString = [displayString stringByAppendingString:@": "]; + displayString = [displayString stringByAppendingString:elementName]; + + return displayString; +} + +- (IBAction) inputButtonSet:(id)sender +{ + NSButton *theButton = (NSButton *)sender; + + if (configInput && lastConfigButton != theButton) + { + [lastConfigButton setState:NSOffState]; + } + + if ([theButton state] == NSOnState) + { + lastConfigButton = theButton; + configInput = [theButton tag]; + } + else + { + [self inputButtonCancelConfig]; + } + +} + +- (void) inputButtonCancelConfig +{ + if (lastConfigButton != nil) + { + [lastConfigButton setState:NSOffState]; + lastConfigButton = nil; + } + + configInput = 0; +} + +- (BOOL)acceptsFirstResponder +{ + return YES; +} + +- (BOOL)becomeFirstResponder +{ + return YES; +} + +- (BOOL)resignFirstResponder +{ + return YES; +} + +- (void) handleHIDInput:(NSNotification *)aNotification +{ + if (configInput == 0) + { + return; + } + + NSArray *inputPropertiesList = (NSArray *)[aNotification object]; + BOOL inputOn = NO; + + for (NSDictionary *inputProperties in inputPropertiesList) + { + NSNumber *onState = (NSNumber *)[inputProperties valueForKey:@"on"]; + if (onState != nil) + { + inputOn = [onState boolValue]; + if (inputOn) + { + NSString *deviceCode = (NSString *)[inputProperties valueForKey:@"deviceCode"]; + NSString *deviceName = (NSString *)[inputProperties valueForKey:@"deviceName"]; + NSString *elementCode = (NSString *)[inputProperties valueForKey:@"elementCode"]; + NSString *elementName = (NSString *)[inputProperties valueForKey:@"elementName"]; + + [self addMappingById:configInput deviceCode:deviceCode deviceName:deviceName elementCode:elementCode elementName:elementName]; + [self inputButtonCancelConfig]; + break; + } + } + } +} + +@end diff --git a/desmume/src/cocoa/userinterface/preferencesWindowDelegate.h b/desmume/src/cocoa/userinterface/preferencesWindowDelegate.h new file mode 100644 index 000000000..7d1794b77 --- /dev/null +++ b/desmume/src/cocoa/userinterface/preferencesWindowDelegate.h @@ -0,0 +1,126 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import + +@class InputPrefsView; +@class CocoaVideoFilter; + + +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 +@interface PreferencesWindowDelegate : NSObject +#else +@interface PreferencesWindowDelegate : NSObject +#endif +{ + NSObject *dummyObject; + NSWindow *window; + NSWindow *firmwareConfigSheet; + NSObjectController *cdsCoreController; + NSObjectController *emuWindowController; + NSObjectController *prefWindowController; + NSObjectController *cheatWindowController; + NSArrayController *cheatDatabaseController; + + NSView *viewGeneral; + InputPrefsView *viewInput; + NSView *viewDisplay; + NSView *viewSound; + NSView *viewEmulation; + + NSPopUpButton *displayRotationMenu; + NSMenuItem *displayRotationMenuCustomItem; + NSTextField *displayRotationField; + + NSImage *iconVolumeFull; + NSImage *iconVolumeTwoThird; + NSImage *iconVolumeOneThird; + NSImage *iconVolumeMute; + NSPopUpButton *spuSyncMethodMenu; + + NSImageView *previewImageView; + CocoaVideoFilter *videoFilter; + CocoaVideoFilter *bilinearVideoFilter; + + NSMutableDictionary *bindings; +} + +@property (readonly) IBOutlet NSObject *dummyObject; +@property (readonly) IBOutlet NSWindow *window; +@property (readonly) IBOutlet NSWindow *firmwareConfigSheet; +@property (readonly) IBOutlet NSObjectController *cdsCoreController; +@property (readonly) IBOutlet NSObjectController *emuWindowController; +@property (readonly) IBOutlet NSObjectController *prefWindowController; +@property (readonly) IBOutlet NSObjectController *cheatWindowController; +@property (readonly) IBOutlet NSArrayController *cheatDatabaseController; +@property (readonly) IBOutlet NSView *viewGeneral; +@property (readonly) IBOutlet InputPrefsView *viewInput; +@property (readonly) IBOutlet NSView *viewDisplay; +@property (readonly) IBOutlet NSView *viewSound; +@property (readonly) IBOutlet NSView *viewEmulation; + +@property (readonly) IBOutlet NSPopUpButton *displayRotationMenu; +@property (readonly) IBOutlet NSMenuItem *displayRotationMenuCustomItem; +@property (readonly) IBOutlet NSTextField *displayRotationField; +@property (readonly) IBOutlet NSPopUpButton *spuSyncMethodMenu; + +@property (readonly) IBOutlet NSImageView *previewImageView; + +@property (assign) NSMutableDictionary *bindings; + +- (IBAction) showGeneralView:(id)sender; +- (IBAction) showInputView:(id)sender; +- (IBAction) showDisplayView:(id)sender; +- (IBAction) showSoundView:(id)sender; +- (IBAction) showEmulationView:(id)sender; + +- (IBAction) selectAutoloadRomOption:(id)sender; +- (IBAction) chooseAdvansceneDatabase:(id)sender; +- (void) chooseAdvansceneDatabaseDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; +- (IBAction) chooseRomForAutoload:(id)sender; +- (void) chooseRomForAutoloadDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; +- (IBAction) chooseCheatDatabase:(id)sender; +- (void) chooseCheatDatabaseDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; + +- (IBAction) selectSoundInputMode:(id)sender; + +- (IBAction) selectDisplayMode:(id)sender; +- (IBAction) selectDisplaySize:(id)sender; +- (IBAction) selectDisplayRotation:(id)sender; +- (void) updateDisplayRotationMenu:(double)displayRotation; + +- (IBAction) setUseBilinear:(id)sender; +- (IBAction) selectVideoFilterType:(id)sender; + +- (IBAction) updateVolumeIcon:(id)sender; +- (IBAction) selectSPUSyncMode:(id)sender; +- (IBAction) selectSPUSyncMethod:(id)sender; + +- (IBAction) chooseARM9BiosImage:(id)sender; +- (IBAction) chooseARM7BiosImage:(id)sender; +- (IBAction) chooseFirmwareImage:(id)sender; +- (void) chooseArm9BiosImageDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; +- (void) chooseArm7BiosImageDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; +- (void) chooseFirmwareImageDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; +- (IBAction) configureInternalFirmware:(id)sender; +- (IBAction) closeFirmwareConfigSheet:(id)sender; +- (void) didEndFirmwareConfigSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo; + +- (void) switchContentView:(NSView *)theView; + +@end diff --git a/desmume/src/cocoa/userinterface/preferencesWindowDelegate.mm b/desmume/src/cocoa/userinterface/preferencesWindowDelegate.mm new file mode 100644 index 000000000..edb3acf41 --- /dev/null +++ b/desmume/src/cocoa/userinterface/preferencesWindowDelegate.mm @@ -0,0 +1,824 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#import "preferencesWindowDelegate.h" +#import "displayView.h" + +#import "cocoa_core.h" +#import "cocoa_cheat.h" +#import "cocoa_globals.h" +#import "cocoa_input.h" +#import "cocoa_file.h" +#import "cocoa_mic.h" +#import "cocoa_videofilter.h" +#import "cocoa_util.h" + + +@implementation PreferencesWindowDelegate + +@synthesize dummyObject; +@synthesize window; +@synthesize firmwareConfigSheet; +@synthesize cdsCoreController; +@synthesize emuWindowController; +@synthesize prefWindowController; +@synthesize cheatWindowController; +@synthesize cheatDatabaseController; + +@synthesize viewGeneral; +@synthesize viewInput; +@synthesize viewDisplay; +@synthesize viewSound; +@synthesize viewEmulation; + +@synthesize displayRotationMenu; +@synthesize displayRotationMenuCustomItem; +@synthesize displayRotationField; +@synthesize spuSyncMethodMenu; + +@synthesize previewImageView; + +@synthesize bindings; + +- (id)init +{ + self = [super init]; + if(self == nil) + { + return nil; + } + + bindings = [[NSMutableDictionary alloc] init]; + if (bindings == nil) + { + [self release]; + self = nil; + return self; + } + + VideoFilterTypeID vfType = (VideoFilterTypeID)[[NSUserDefaults standardUserDefaults] integerForKey:@"DisplayView_VideoFilter"]; + NSImage *videoFilterImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"VideoFilterPreview_64x64" ofType:@"png"]]; + + videoFilter = [[CocoaVideoFilter alloc] initWithSize:[videoFilterImage size] typeID:vfType]; + NSSize vfDestSize = [videoFilter destSize]; + NSUInteger vfWidth = (NSUInteger)vfDestSize.width; + NSUInteger vfHeight = (NSUInteger)vfDestSize.height; + + NSArray *imageRepArray = [videoFilterImage representations]; + const NSBitmapImageRep *imageRep = [imageRepArray objectAtIndex:0]; + RGB888ToRGBA8888Buffer((const uint32_t *)[imageRep bitmapData], (uint32_t *)[videoFilter srcBufferPtr], (64 * 64)); + [videoFilterImage release]; + + BOOL useBilinear = [[NSUserDefaults standardUserDefaults] boolForKey:@"DisplayView_UseBilinearOutput"]; + + if (vfWidth <= 64 || vfHeight <= 64) + { + [videoFilter changeFilter:VideoFilterTypeID_Nearest2X]; + vfDestSize = [videoFilter destSize]; + vfWidth = (NSUInteger)vfDestSize.width; + vfHeight = (NSUInteger)vfDestSize.height; + + if (useBilinear) + { + bilinearVideoFilter = [[CocoaVideoFilter alloc] initWithSize:vfDestSize typeID:VideoFilterTypeID_Bilinear]; + } + else + { + bilinearVideoFilter = [[CocoaVideoFilter alloc] initWithSize:vfDestSize typeID:VideoFilterTypeID_Nearest2X]; + } + } + else if (vfWidth >= 256 || vfHeight >= 256) + { + bilinearVideoFilter = [[CocoaVideoFilter alloc] initWithSize:vfDestSize typeID:VideoFilterTypeID_None]; + } + else + { + if (useBilinear) + { + bilinearVideoFilter = [[CocoaVideoFilter alloc] initWithSize:vfDestSize typeID:VideoFilterTypeID_Bilinear]; + } + else + { + bilinearVideoFilter = [[CocoaVideoFilter alloc] initWithSize:vfDestSize typeID:VideoFilterTypeID_Nearest2X]; + } + } + + RGB888ToRGBA8888Buffer((const uint32_t *)[videoFilter runFilter], (uint32_t *)[bilinearVideoFilter srcBufferPtr], (vfWidth * vfHeight)); + [bindings setObject:[bilinearVideoFilter image] forKey:@"VideoFilterPreviewImage"]; + + iconVolumeFull = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeFull_16x16" ofType:@"png"]]; + iconVolumeTwoThird = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeTwoThird_16x16" ofType:@"png"]]; + iconVolumeOneThird = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeOneThird_16x16" ofType:@"png"]]; + iconVolumeMute = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon_VolumeMute_16x16" ofType:@"png"]]; + + [bindings setObject:iconVolumeFull forKey:@"volumeIconImage"]; + + return self; +} + +- (void)dealloc +{ + [iconVolumeFull release]; + [iconVolumeTwoThird release]; + [iconVolumeOneThird release]; + [iconVolumeMute release]; + [bindings release]; + [videoFilter release]; + + [super dealloc]; +} + +- (IBAction) showGeneralView:(id)sender +{ + [self switchContentView:viewGeneral]; +} + +- (IBAction) showInputView:(id)sender +{ + [self switchContentView:(NSView *)viewInput]; + [window makeFirstResponder:(NSView *)viewInput]; +} + +- (IBAction) showDisplayView:(id)sender +{ + [self switchContentView:viewDisplay]; +} + +- (IBAction) showSoundView:(id)sender +{ + [self switchContentView:viewSound]; +} + +- (IBAction) showEmulationView:(id)sender +{ + [self switchContentView:viewEmulation]; +} + +- (IBAction) selectAutoloadRomOption:(id)sender +{ + NSInteger option = [(NSMenuItem *)sender tag]; + + [[NSUserDefaults standardUserDefaults] setInteger:option forKey:@"General_AutoloadROMOption"]; + + if (option == 1) + { + NSString *autoloadRomPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"General_AutoloadROMSelectedPath"]; + if ([autoloadRomPath length] == 0) + { + [self chooseRomForAutoload:sender]; + } + } +} + +- (IBAction) chooseRomForAutoload:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_SELECT_ROM_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_ROM_DS, @FILE_EXT_ROM_GBA, nil]; + + // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + [panel beginSheetModalForWindow:window + completionHandler:^(NSInteger result) { + [self chooseRomForAutoloadDidEnd:panel returnCode:result contextInfo:nil]; + } ]; +#else + [panel beginSheetForDirectory:nil + file:nil + types:fileTypes + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(chooseRomForAutoloadDidEnd:returnCode:contextInfo:) + contextInfo:nil]; +#endif +} + +- (void) chooseRomForAutoloadDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + if (returnCode == NSCancelButton) + { + return; + } + + NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object + if(selectedFileURL == nil) + { + return; + } + + NSString *selectedFile = [selectedFileURL path]; + + [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"General_AutoloadROMSelectedPath"]; + [bindings setValue:[selectedFile lastPathComponent] forKey:@"AutoloadRomName"]; +} + +- (IBAction) chooseAdvansceneDatabase:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_SELECT_ADVANSCENE_DB_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_ADVANSCENE_DB, nil]; + + // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + [panel beginSheetModalForWindow:window + completionHandler:^(NSInteger result) { + [self chooseAdvansceneDatabaseDidEnd:panel returnCode:result contextInfo:nil]; + } ]; +#else + [panel beginSheetForDirectory:nil + file:nil + types:fileTypes + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(chooseAdvansceneDatabaseDidEnd:returnCode:contextInfo:) + contextInfo:nil]; +#endif +} + +- (void) chooseAdvansceneDatabaseDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + if (returnCode == NSCancelButton) + { + return; + } + + NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object + if(selectedFileURL == nil) + { + return; + } + + NSString *selectedFile = [selectedFileURL path]; + + [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"Advanscene_DatabasePath"]; + [bindings setValue:[selectedFile lastPathComponent] forKey:@"AdvansceneDatabaseName"]; +} + +- (IBAction) chooseCheatDatabase:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_SELECT_R4_CHEAT_DB_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_R4_CHEAT_DB, nil]; + + // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + [panel beginSheetModalForWindow:window + completionHandler:^(NSInteger result) { + [self chooseCheatDatabaseDidEnd:panel returnCode:result contextInfo:nil]; + } ]; +#else + [panel beginSheetForDirectory:nil + file:nil + types:fileTypes + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(chooseCheatDatabaseDidEnd:returnCode:contextInfo:) + contextInfo:nil]; +#endif +} + +- (void) chooseCheatDatabaseDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + if (returnCode == NSCancelButton) + { + return; + } + + NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object + if(selectedFileURL == nil) + { + return; + } + + NSString *selectedFile = [selectedFileURL path]; + + [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"R4Cheat_DatabasePath"]; + [bindings setValue:[selectedFile lastPathComponent] forKey:@"R4CheatDatabaseName"]; + + BOOL isRomLoaded = [(NSNumber *)[(NSMutableDictionary *)[emuWindowController content] valueForKey:@"isRomLoaded"] boolValue]; + NSMutableDictionary *cheatWindowBindings = (NSMutableDictionary *)[cheatWindowController content]; + CocoaDSCheatManager *cdsCheats = (CocoaDSCheatManager *)[cheatWindowBindings valueForKey:@"cheatList"]; + + if (isRomLoaded == YES && cdsCheats != nil) + { + NSInteger error = 0; + NSMutableArray *dbList = [cdsCheats cheatListFromDatabase:selectedFileURL errorCode:&error]; + if (dbList != nil) + { + [cheatDatabaseController setContent:dbList]; + + NSString *titleString = cdsCheats.dbTitle; + NSString *dateString = cdsCheats.dbDate; + + [cheatWindowBindings setValue:titleString forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:dateString forKey:@"cheatDBDate"]; + [cheatWindowBindings setValue:[NSString stringWithFormat:@"%d", [dbList count]] forKey:@"cheatDBItemCount"]; + } + else + { + // TODO: Display an error message here. + [cheatWindowBindings setValue:@"---" forKey:@"cheatDBItemCount"]; + + switch (error) + { + case CHEATEXPORT_ERROR_FILE_NOT_FOUND: + NSLog(@"R4 Cheat Database read failed! Could not load the database file!"); + [cheatWindowBindings setValue:@"Database not loaded." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"CANNOT LOAD FILE" forKey:@"cheatDBDate"]; + break; + + case CHEATEXPORT_ERROR_WRONG_FILE_FORMAT: + NSLog(@"R4 Cheat Database read failed! Wrong file format!"); + [cheatWindowBindings setValue:@"Database load error." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"FAILED TO LOAD FILE" forKey:@"cheatDBDate"]; + break; + + case CHEATEXPORT_ERROR_SERIAL_NOT_FOUND: + NSLog(@"R4 Cheat Database read failed! Could not find the serial number for this game in the database!"); + [cheatWindowBindings setValue:@"ROM not found in database." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"ROM not found." forKey:@"cheatDBDate"]; + break; + + case CHEATEXPORT_ERROR_EXPORT_FAILED: + NSLog(@"R4 Cheat Database read failed! Could not read the database file!"); + [cheatWindowBindings setValue:@"Database read error." forKey:@"cheatDBTitle"]; + [cheatWindowBindings setValue:@"CANNOT READ FILE" forKey:@"cheatDBDate"]; + break; + + default: + break; + } + } + } +} + +- (IBAction) selectSoundInputMode:(id)sender +{ + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + if (cdsCore != nil) + { + [cdsCore.cdsController setSoundInputMode:[[NSUserDefaults standardUserDefaults] integerForKey:@"Input_AudioInputMode"]]; + } +} + +- (IBAction) selectDisplayMode:(id)sender +{ + NSInteger displayMode = [(NSMenuItem *)sender tag]; + + [[NSUserDefaults standardUserDefaults] setInteger:displayMode forKey:@"DisplayView_Mode"]; +} + +- (IBAction) selectDisplaySize:(id)sender +{ + NSInteger displaySize = [(NSMenuItem *)sender tag]; + + [[NSUserDefaults standardUserDefaults] setInteger:displaySize forKey:@"DisplayView_Size"]; +} + +- (IBAction) selectDisplayRotation:(id)sender +{ + NSInteger displayRotation = [(NSMenuItem *)sender tag]; + + if (displayRotation != -1) + { + [[NSUserDefaults standardUserDefaults] setDouble:displayRotation forKey:@"DisplayView_Rotation"]; + } +} + +- (IBAction) setUseBilinear:(id)sender +{ + BOOL useBilinear = [CocoaDSUtil getIBActionSenderButtonStateBool:sender]; + NSUInteger previewSrcWidth = (NSUInteger)[bilinearVideoFilter srcSize].width; + NSUInteger previewSrcHeight = (NSUInteger)[bilinearVideoFilter srcSize].height; + + if (previewSrcWidth <= 128 || previewSrcHeight <= 128) + { + if (useBilinear) + { + [bilinearVideoFilter changeFilter:VideoFilterTypeID_Bilinear]; + } + else + { + [bilinearVideoFilter changeFilter:VideoFilterTypeID_Nearest2X]; + } + } + + NSBitmapImageRep *newPreviewImageRep = [bilinearVideoFilter bitmapImageRep]; + + NSImage *videoFilterPreviewImage = [bindings objectForKey:@"VideoFilterPreviewImage"]; + NSArray *imageRepArray = [videoFilterPreviewImage representations]; + NSImageRep *oldImageRep = [imageRepArray objectAtIndex:0]; + [videoFilterPreviewImage removeRepresentation:oldImageRep]; + [videoFilterPreviewImage addRepresentation:newPreviewImageRep]; + + [previewImageView setNeedsDisplay:YES]; +} + +- (IBAction) selectVideoFilterType:(id)sender +{ + VideoFilterTypeID vfType = (VideoFilterTypeID)[CocoaDSUtil getIBActionSenderTag:sender]; + BOOL useBilinear = [[NSUserDefaults standardUserDefaults] boolForKey:@"DisplayView_UseBilinearOutput"]; + + [[NSUserDefaults standardUserDefaults] setInteger:vfType forKey:@"DisplayView_VideoFilter"]; + + [videoFilter changeFilter:vfType]; + NSSize vfDestSize = [videoFilter destSize]; + NSUInteger vfWidth = (NSUInteger)[videoFilter destSize].width; + NSUInteger vfHeight = (NSUInteger)[videoFilter destSize].height; + + if (vfWidth <= 64 || vfHeight <= 64) + { + [videoFilter changeFilter:VideoFilterTypeID_Nearest2X]; + vfDestSize = [videoFilter destSize]; + vfWidth = (NSUInteger)vfDestSize.width; + vfHeight = (NSUInteger)vfDestSize.height; + [bilinearVideoFilter setSourceSize:vfDestSize]; + + if (useBilinear) + { + [bilinearVideoFilter changeFilter:VideoFilterTypeID_Bilinear]; + } + else + { + [bilinearVideoFilter changeFilter:VideoFilterTypeID_Nearest2X]; + } + } + else if (vfWidth >= 256 || vfHeight >= 256) + { + [bilinearVideoFilter setSourceSize:vfDestSize]; + [bilinearVideoFilter changeFilter:VideoFilterTypeID_None]; + } + else + { + [bilinearVideoFilter setSourceSize:vfDestSize]; + + if (useBilinear) + { + [bilinearVideoFilter changeFilter:VideoFilterTypeID_Bilinear]; + } + else + { + [bilinearVideoFilter changeFilter:VideoFilterTypeID_Nearest2X]; + } + } + + RGB888ToRGBA8888Buffer((const uint32_t *)[videoFilter runFilter], (uint32_t *)[bilinearVideoFilter srcBufferPtr], (vfWidth * vfHeight)); + NSBitmapImageRep *newPreviewImageRep = [bilinearVideoFilter bitmapImageRep]; + + NSImage *videoFilterPreviewImage = [bindings objectForKey:@"VideoFilterPreviewImage"]; + NSArray *imageRepArray = [videoFilterPreviewImage representations]; + NSImageRep *oldImageRep = [imageRepArray objectAtIndex:0]; + [videoFilterPreviewImage removeRepresentation:oldImageRep]; + [videoFilterPreviewImage addRepresentation:newPreviewImageRep]; + + [previewImageView setNeedsDisplay:YES]; +} + +- (IBAction) updateVolumeIcon:(id)sender +{ + NSImage *iconImage = (NSImage *)[bindings objectForKey:@"volumeIconImage"]; + float vol = [[NSUserDefaults standardUserDefaults] floatForKey:@"Sound_Volume"]; + + if (vol <= 0.0f) + { + if (iconImage == iconVolumeMute) + { + return; + } + + iconImage = iconVolumeMute; + } + else if (vol > 0.0f && vol <= VOLUME_THRESHOLD_LOW) + { + if (iconImage == iconVolumeOneThird) + { + return; + } + + iconImage = iconVolumeOneThird; + } + else if (vol > VOLUME_THRESHOLD_LOW && vol <= VOLUME_THRESHOLD_HIGH) + { + if (iconImage == iconVolumeTwoThird) + { + return; + } + + iconImage = iconVolumeTwoThird; + } + else + { + if (iconImage == iconVolumeFull) + { + return; + } + + iconImage = iconVolumeFull; + } + + [bindings setObject:iconImage forKey:@"volumeIconImage"]; +} + +- (IBAction) selectSPUSyncMode:(id)sender +{ + NSInteger spuSyncMode = [[NSUserDefaults standardUserDefaults] integerForKey:@"SPU_SyncMode"]; + if (spuSyncMode == SPU_SYNC_MODE_DUAL_SYNC_ASYNC) + { + [spuSyncMethodMenu setEnabled:NO]; + } + else + { + [spuSyncMethodMenu setEnabled:YES]; + } +} + +- (IBAction) selectSPUSyncMethod:(id)sender +{ + NSInteger spuSyncMethod = [(NSMenuItem *)sender tag]; + [[NSUserDefaults standardUserDefaults] setInteger:spuSyncMethod forKey:@"SPU_SyncMethod"]; +} + +- (void) updateDisplayRotationMenu:(double)displayRotation +{ + if (displayRotation == 0.0f || + displayRotation == 90.0f || + displayRotation == 180.0f || + displayRotation == 270.0f) + { + [displayRotationMenu selectItemWithTag:(NSInteger)displayRotation]; + } + else if (displayRotation < 0.0f || displayRotation >= 360.0f) + { + displayRotation = 0.0f; + [displayRotationField setFloatValue:displayRotation]; + [displayRotationMenu selectItemWithTag:(NSInteger)displayRotation]; + } + else + { + [displayRotationMenu selectItem:displayRotationMenuCustomItem]; + } +} + +- (IBAction) chooseARM9BiosImage:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_SELECT_ARM9_IMAGE_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_HW_IMAGE_FILE, nil]; + + // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + [panel beginSheetModalForWindow:window + completionHandler:^(NSInteger result) { + [self chooseArm9BiosImageDidEnd:panel returnCode:result contextInfo:nil]; + } ]; +#else + [panel beginSheetForDirectory:nil + file:nil + types:fileTypes + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(chooseArm9BiosImageDidEnd:returnCode:contextInfo:) + contextInfo:nil]; +#endif +} + +- (IBAction) chooseARM7BiosImage:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_SELECT_ARM7_IMAGE_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_HW_IMAGE_FILE, nil]; + + // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + [panel beginSheetModalForWindow:window + completionHandler:^(NSInteger result) { + [self chooseArm7BiosImageDidEnd:panel returnCode:result contextInfo:nil]; + } ]; +#else + [panel beginSheetForDirectory:nil + file:nil + types:fileTypes + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(chooseArm7BiosImageDidEnd:returnCode:contextInfo:) + contextInfo:nil]; +#endif +} + +- (IBAction) chooseFirmwareImage:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setResolvesAliases:YES]; + [panel setAllowsMultipleSelection:NO]; + [panel setTitle:NSSTRING_TITLE_SELECT_FIRMWARE_IMAGE_PANEL]; + NSArray *fileTypes = [NSArray arrayWithObjects:@FILE_EXT_HW_IMAGE_FILE, nil]; + + // The NSOpenPanel/NSSavePanel method -(void)beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo + // is deprecated in Mac OS X v10.6. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 + [panel setAllowedFileTypes:fileTypes]; + [panel beginSheetModalForWindow:window + completionHandler:^(NSInteger result) { + [self chooseFirmwareImageDidEnd:panel returnCode:result contextInfo:nil]; + } ]; +#else + [panel beginSheetForDirectory:nil + file:nil + types:fileTypes + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(chooseFirmwareImageDidEnd:returnCode:contextInfo:) + contextInfo:nil]; +#endif +} + +- (void) chooseArm9BiosImageDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + if (returnCode == NSCancelButton) + { + return; + } + + NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object + if(selectedFileURL == nil) + { + return; + } + + NSString *selectedFile = [selectedFileURL path]; + + [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"BIOS_ARM9ImagePath"]; + [bindings setValue:[selectedFile lastPathComponent] forKey:@"Arm9BiosImageName"]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + if (cdsCore != nil) + { + [cdsCore setArm9ImageURL:selectedFileURL]; + } +} + +- (void) chooseArm7BiosImageDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + if (returnCode == NSCancelButton) + { + return; + } + + NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object + if(selectedFileURL == nil) + { + return; + } + + NSString *selectedFile = [selectedFileURL path]; + + [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"BIOS_ARM7ImagePath"]; + [bindings setValue:[selectedFile lastPathComponent] forKey:@"Arm7BiosImageName"]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + if (cdsCore != nil) + { + [cdsCore setArm7ImageURL:selectedFileURL]; + } +} + +- (void) chooseFirmwareImageDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; + + if (returnCode == NSCancelButton) + { + return; + } + + NSURL *selectedFileURL = [[sheet URLs] lastObject]; //hopefully also the first object + if(selectedFileURL == nil) + { + return; + } + + NSString *selectedFile = [selectedFileURL path]; + + [[NSUserDefaults standardUserDefaults] setObject:selectedFile forKey:@"Emulation_FirmwareImagePath"]; + [bindings setValue:[selectedFile lastPathComponent] forKey:@"FirmwareImageName"]; + + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + if (cdsCore != nil) + { + [cdsCore setFirmwareImageURL:selectedFileURL]; + } +} + +- (IBAction) configureInternalFirmware:(id)sender +{ + [NSApp beginSheet:firmwareConfigSheet + modalForWindow:window + modalDelegate:self + didEndSelector:@selector(didEndFirmwareConfigSheet:returnCode:contextInfo:) + contextInfo:nil]; +} + +- (IBAction) closeFirmwareConfigSheet:(id)sender +{ + NSWindow *sheet = [(NSControl *)sender window]; + NSInteger code = [CocoaDSUtil getIBActionSenderTag:sender]; + + // Force end of editing of any text fields. + [sheet makeFirstResponder:nil]; + + [NSApp endSheet:sheet returnCode:code]; +} + +- (void) didEndFirmwareConfigSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +{ + [sheet orderOut:self]; +} + +- (void)controlTextDidEndEditing:(NSNotification *)aNotification +{ + [self updateDisplayRotationMenu:[displayRotationField floatValue]]; +} + +- (void) switchContentView:(NSView *)theView +{ + if ([window contentView] == theView) + { + return; + } + + NSRect newFrame = [window frameRectForContentRect:[theView frame]]; + newFrame.origin.x = [window frame].origin.x; + newFrame.origin.y = [window frame].origin.y + [[window contentView] frame].size.height - [theView frame].size.height; + + [[window contentView] retain]; + + NSView *tempView = [[NSView alloc] initWithFrame:[[window contentView] frame]]; + [window setContentView:tempView]; + + [window setFrame:newFrame display:YES animate:YES]; + [window setContentView:theView]; +} + +- (void)windowDidBecomeKey:(NSNotification *)notification +{ + [prefWindowController setContent:self.bindings]; +} + +@end diff --git a/desmume/src/cocoa/videofilter.cpp b/desmume/src/cocoa/videofilter.cpp new file mode 100644 index 000000000..cc7b10611 --- /dev/null +++ b/desmume/src/cocoa/videofilter.cpp @@ -0,0 +1,608 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#include "videofilter.h" + +// Parameters for Scanline filter +int scanline_filter_a = 2; +int scanline_filter_b = 4; + + +/******************************************************************************************** + CLASS CONSTRUCTORS + ********************************************************************************************/ +VideoFilter::VideoFilter() +{ + SSurface *newSrcSurface = (SSurface *)malloc(sizeof(SSurface)); + if (newSrcSurface == NULL) + { + throw; + } + + SSurface *newDestSurface = (SSurface *)malloc(sizeof(SSurface)); + if (newDestSurface == NULL) + { + free(newSrcSurface); + newSrcSurface = NULL; + throw; + } + + pthread_mutex_init(&_mutexSrc, NULL); + pthread_mutex_init(&_mutexDest, NULL); + pthread_mutex_init(&_mutexTypeID, NULL); + pthread_mutex_init(&_mutexTypeString, NULL); + pthread_cond_init(&_condRunning, NULL); + + _isFilterRunning = false; + _srcSurfaceBufferMaster = NULL; + newSrcSurface->Surface = NULL; + newDestSurface->Surface = NULL; + + _srcSurface = newSrcSurface; + _destSurface = newDestSurface; + _typeID = VideoFilterTypeID_None; + + SetSourceSize(1, 1); +} + +VideoFilter::VideoFilter(unsigned int srcWidth, unsigned int srcHeight) +{ + SSurface *newSrcSurface = (SSurface *)malloc(sizeof(SSurface)); + if (newSrcSurface == NULL) + { + throw; + } + + SSurface *newDestSurface = (SSurface *)malloc(sizeof(SSurface)); + if (newDestSurface == NULL) + { + free(newSrcSurface); + newSrcSurface = NULL; + throw; + } + + pthread_mutex_init(&_mutexSrc, NULL); + pthread_mutex_init(&_mutexDest, NULL); + pthread_mutex_init(&_mutexTypeID, NULL); + pthread_mutex_init(&_mutexTypeString, NULL); + pthread_cond_init(&_condRunning, NULL); + + _isFilterRunning = false; + _srcSurfaceBufferMaster = NULL; + newSrcSurface->Surface = NULL; + newDestSurface->Surface = NULL; + + _srcSurface = newSrcSurface; + _destSurface = newDestSurface; + _typeID = VideoFilterTypeID_None; + + SetSourceSize(srcWidth, srcHeight); +} + +VideoFilter::VideoFilter(unsigned int srcWidth, unsigned int srcHeight, VideoFilterTypeID typeID) +{ + SSurface *newSrcSurface = (SSurface *)malloc(sizeof(SSurface)); + if (newSrcSurface == NULL) + { + throw; + } + + SSurface *newDestSurface = (SSurface *)malloc(sizeof(SSurface)); + if (newDestSurface == NULL) + { + free(newSrcSurface); + newSrcSurface = NULL; + throw; + } + + pthread_mutex_init(&_mutexSrc, NULL); + pthread_mutex_init(&_mutexDest, NULL); + pthread_mutex_init(&_mutexTypeID, NULL); + pthread_mutex_init(&_mutexTypeString, NULL); + pthread_cond_init(&_condRunning, NULL); + + _isFilterRunning = false; + _srcSurfaceBufferMaster = NULL; + newSrcSurface->Surface = NULL; + newDestSurface->Surface = NULL; + + _srcSurface = newSrcSurface; + _destSurface = newDestSurface; + _typeID = typeID; + + SetSourceSize(srcWidth, srcHeight); +} + +/******************************************************************************************** + CLASS DESTRUCTOR + ********************************************************************************************/ +VideoFilter::~VideoFilter() +{ + pthread_mutex_lock(&this->_mutexDest); + + while (this->_isFilterRunning) + { + pthread_cond_wait(&this->_condRunning, &this->_mutexDest); + } + + free(_destSurface->Surface); + _destSurface->Surface = NULL; + free(_destSurface); + _destSurface = NULL; + + pthread_mutex_unlock(&_mutexDest); + + pthread_mutex_lock(&_mutexSrc); + + free(_srcSurfaceBufferMaster); + _srcSurfaceBufferMaster = NULL; + _srcSurface->Surface = NULL; + free(_srcSurface); + _srcSurface = NULL; + + pthread_mutex_unlock(&_mutexSrc); + + pthread_mutex_destroy(&_mutexSrc); + pthread_mutex_destroy(&_mutexDest); + pthread_mutex_destroy(&_mutexTypeID); + pthread_mutex_destroy(&_mutexTypeString); + pthread_cond_destroy(&_condRunning); +} + +/******************************************************************************************** + SetSourceSize() + + Sets the rectangular size of the source image. This method reallocates memory based + on the input size, and therefore returns a bool value upon success or failure of + resizing. + + Takes: + width - The width of the source image in pixels. + height - The height of the source image in pixels. + + Returns: + A bool that reports if the resizing was successful. A value of true means success, + while a value of false means failure. + ********************************************************************************************/ +bool VideoFilter::SetSourceSize(unsigned int width, unsigned int height) +{ + bool result = false; + + pthread_mutex_lock(&this->_mutexSrc); + + // Overallocate the source buffer by 8 rows of pixels to account for out-of-bounds + // memory reads done by some filters. + uint32_t *newSurfaceBuffer = (uint32_t *)calloc(width * (height + 8), sizeof(uint32_t)); + if (newSurfaceBuffer == NULL) + { + return result; + } + + this->_srcSurface->Width = width; + this->_srcSurface->Height = height; + this->_srcSurface->Pitch = width * 2; + // Set the working source buffer pointer so that the working memory block is padded + // with 4 pixel rows worth of memory on both sides. + this->_srcSurface->Surface = (unsigned char *)(newSurfaceBuffer + (width * 4)); + + free(this->_srcSurfaceBufferMaster); + this->_srcSurfaceBufferMaster = newSurfaceBuffer; + + pthread_mutex_unlock(&this->_mutexSrc); + + result = this->ChangeFilter(this->GetTypeID()); + + return result; +} + +/******************************************************************************************** + ChangeFilter() + + Changes the video filter type. + + Takes: + typeID - The type ID of the video filter. See the VideoFilterTypeID + enumeration for possible values. + + Returns: + A bool that reports if the filter change was successful. A value of true means + success, while a value of false means failure. + ********************************************************************************************/ +bool VideoFilter::ChangeFilter(VideoFilterTypeID typeID) +{ + bool result = false; + + pthread_mutex_lock(&this->_mutexSrc); + const unsigned int srcWidth = this->_srcSurface->Width; + const unsigned int srcHeight = this->_srcSurface->Height; + pthread_mutex_unlock(&this->_mutexSrc); + + unsigned int destWidth = srcWidth; + unsigned int destHeight = srcHeight; + const char *typeString = VideoFilter::GetTypeStringByID(typeID); + VideoFilterCallback filterCallback = NULL; + + switch (typeID) + { + case VideoFilterTypeID_None: + break; + + case VideoFilterTypeID_LQ2X: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderLQ2X; + break; + + case VideoFilterTypeID_LQ2XS: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderLQ2XS; + break; + + case VideoFilterTypeID_HQ2X: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderHQ2X; + break; + + case VideoFilterTypeID_HQ2XS: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderHQ2XS; + break; + + case VideoFilterTypeID_HQ4X: + destWidth = srcWidth * 4; + destHeight = srcHeight * 4; + filterCallback = &RenderHQ4X; + break; + + case VideoFilterTypeID_2xSaI: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &Render2xSaI; + break; + + case VideoFilterTypeID_Super2xSaI: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderSuper2xSaI; + break; + + case VideoFilterTypeID_SuperEagle: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderSuperEagle; + break; + + case VideoFilterTypeID_Scanline: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderScanline; + break; + + case VideoFilterTypeID_Bilinear: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderBilinear; + break; + + case VideoFilterTypeID_Nearest2X: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderNearest2X; + break; + + case VideoFilterTypeID_Nearest1_5X: + destWidth = srcWidth * 3 / 2; + destHeight = srcHeight * 3 / 2; + filterCallback = &RenderNearest_1Point5x; + break; + + case VideoFilterTypeID_NearestPlus1_5X: + destWidth = srcWidth * 3 / 2; + destHeight = srcHeight * 3 / 2; + filterCallback = &RenderNearestPlus_1Point5x; + break; + + case VideoFilterTypeID_EPX: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderEPX; + break; + + case VideoFilterTypeID_EPXPlus: + destWidth = srcWidth * 2; + destHeight = srcHeight * 2; + filterCallback = &RenderEPXPlus; + break; + + case VideoFilterTypeID_EPX1_5X: + destWidth = srcWidth * 3 / 2; + destHeight = srcHeight * 3 / 2; + filterCallback = &RenderEPX_1Point5x; + break; + + case VideoFilterTypeID_EPXPlus1_5X: + destWidth = srcWidth * 3 / 2; + destHeight = srcHeight * 3 / 2; + filterCallback = &RenderEPXPlus_1Point5x; + break; + + default: + break; + } + + pthread_mutex_lock(&this->_mutexDest); + + uint32_t *newSurfaceBuffer = (uint32_t *)calloc(destWidth * destHeight, sizeof(uint32_t)); + if (newSurfaceBuffer == NULL) + { + return result; + } + + this->_filterCallback = filterCallback; + this->_destSurface->Width = destWidth; + this->_destSurface->Height = destHeight; + this->_destSurface->Pitch = destWidth * 2; + + free(this->_destSurface->Surface); + this->_destSurface->Surface = (unsigned char*)newSurfaceBuffer; + + pthread_mutex_unlock(&this->_mutexDest); + + this->SetTypeID(typeID); + this->SetTypeString(typeString); + + result = true; + + return result; +} + +/******************************************************************************************** + RunFilter() + + Runs the pixels in the source buffer through the video filter, and then stores + the resulting pixels into the destination buffer. + + Takes: + Nothing. + + Returns: + A pointer to the destination buffer. + ********************************************************************************************/ +uint32_t* VideoFilter::RunFilter() +{ + pthread_mutex_lock(&this->_mutexDest); + + this->_isFilterRunning = true; + uint32_t *destBufPtr = (uint32_t *)this->_destSurface->Surface; + + pthread_mutex_lock(&this->_mutexSrc); + + if (this->_filterCallback == NULL) + { + memcpy(this->_destSurface->Surface, this->_srcSurface->Surface, this->_destSurface->Width * this->_destSurface->Height * sizeof(uint32_t)); + } + else + { + this->_filterCallback(*this->_srcSurface, *this->_destSurface); + } + + pthread_mutex_unlock(&this->_mutexSrc); + + this->_isFilterRunning = false; + pthread_cond_signal(&this->_condRunning); + pthread_mutex_unlock(&this->_mutexDest); + + return destBufPtr; +} + +/******************************************************************************************** + GetTypeStringByID() - STATIC + + Returns a C-string representation of the passed in video filter type. + + Takes: + typeID - The type ID of the video filter. See the VideoFilterTypeID + enumeration for possible values. + + Returns: + A C-string that represents the video filter type. If typeID is invalid, + this method returns the string "Unknown". + ********************************************************************************************/ +const char* VideoFilter::GetTypeStringByID(VideoFilterTypeID typeID) +{ + const char *typeString = "Unknown"; + + switch (typeID) + { + case VideoFilterTypeID_None: + typeString = VIDEOFILTERTYPE_NONE_STRING; + break; + + case VideoFilterTypeID_LQ2X: + typeString = VIDEOFILTERTYPE_LQ2X_STRING; + break; + + case VideoFilterTypeID_LQ2XS: + typeString = VIDEOFILTERTYPE_LQ2XS_STRING; + break; + + case VideoFilterTypeID_HQ2X: + typeString = VIDEOFILTERTYPE_HQ2X_STRING; + break; + + case VideoFilterTypeID_HQ2XS: + typeString = VIDEOFILTERTYPE_HQ2XS_STRING; + break; + + case VideoFilterTypeID_HQ4X: + typeString = VIDEOFILTERTYPE_HQ4X_STRING; + break; + + case VideoFilterTypeID_2xSaI: + typeString = VIDEOFILTERTYPE_2XSAI_STRING; + break; + + case VideoFilterTypeID_Super2xSaI: + typeString = VIDEOFILTERTYPE_SUPER_2XSAI_STRING; + break; + + case VideoFilterTypeID_SuperEagle: + typeString = VIDEOFILTERTYPE_SUPER_EAGLE_STRING; + break; + + case VideoFilterTypeID_Scanline: + typeString = VIDEOFILTERTYPE_SCANLINE_STRING; + break; + + case VideoFilterTypeID_Bilinear: + typeString = VIDEOFILTERTYPE_BILINEAR_STRING; + break; + + case VideoFilterTypeID_Nearest2X: + typeString = VIDEOFILTERTYPE_NEAREST_2X_STRING; + break; + + case VideoFilterTypeID_Nearest1_5X: + typeString = VIDEOFILTERTYPE_NEAREST_1_5X_STRING; + break; + + case VideoFilterTypeID_NearestPlus1_5X: + typeString = VIDEOFILTERTYPE_NEAREST_PLUS_1_5X_STRING; + break; + + case VideoFilterTypeID_EPX: + typeString = VIDEOFILTERTYPE_EPX_STRING; + break; + + case VideoFilterTypeID_EPXPlus: + typeString = VIDEOFILTERTYPE_EPX_PLUS_STRING; + break; + + case VideoFilterTypeID_EPX1_5X: + typeString = VIDEOFILTERTYPE_EPX_1_5X_STRING; + break; + + case VideoFilterTypeID_EPXPlus1_5X: + typeString = VIDEOFILTERTYPE_EPX_PLUS_1_5X_STRING; + break; + + default: + break; + } + + return typeString; +} + +/******************************************************************************************** + ACCESSORS + ********************************************************************************************/ +VideoFilterTypeID VideoFilter::GetTypeID() +{ + pthread_mutex_lock(&this->_mutexTypeID); + VideoFilterTypeID typeID = this->_typeID; + pthread_mutex_unlock(&this->_mutexTypeID); + + return typeID; +} + +void VideoFilter::SetTypeID(VideoFilterTypeID typeID) +{ + pthread_mutex_lock(&this->_mutexTypeID); + this->_typeID = typeID; + pthread_mutex_unlock(&this->_mutexTypeID); +} + +const char* VideoFilter::GetTypeString() +{ + pthread_mutex_lock(&this->_mutexTypeString); + const char *typeString = this->_typeString.c_str(); + pthread_mutex_unlock(&this->_mutexTypeString); + + return typeString; +} + +void VideoFilter::SetTypeString(const char *typeString) +{ + pthread_mutex_lock(&this->_mutexTypeString); + this->_typeString = typeString; + pthread_mutex_unlock(&this->_mutexTypeString); +} + +void VideoFilter::SetTypeString(std::string typeString) +{ + pthread_mutex_lock(&this->_mutexTypeString); + this->_typeString = typeString; + pthread_mutex_unlock(&this->_mutexTypeString); +} + +uint32_t* VideoFilter::GetSrcBufferPtr() +{ + pthread_mutex_lock(&this->_mutexSrc); + uint32_t *ptr = (uint32_t *)this->_srcSurface->Surface; + pthread_mutex_unlock(&this->_mutexSrc); + + return ptr; +} + +uint32_t* VideoFilter::GetDestBufferPtr() +{ + pthread_mutex_lock(&this->_mutexDest); + uint32_t *ptr = (uint32_t *)this->_destSurface->Surface; + pthread_mutex_unlock(&this->_mutexDest); + + return ptr; +} + +unsigned int VideoFilter::GetSrcWidth() +{ + pthread_mutex_lock(&this->_mutexSrc); + unsigned int width = this->_srcSurface->Width; + pthread_mutex_unlock(&this->_mutexSrc); + + return width; +} + +unsigned int VideoFilter::GetSrcHeight() +{ + pthread_mutex_lock(&this->_mutexSrc); + unsigned int height = this->_srcSurface->Height; + pthread_mutex_unlock(&this->_mutexSrc); + + return height; +} + +unsigned int VideoFilter::GetDestWidth() +{ + pthread_mutex_lock(&this->_mutexDest); + unsigned int width = this->_destSurface->Width; + pthread_mutex_unlock(&this->_mutexDest); + + return width; +} + +unsigned int VideoFilter::GetDestHeight() +{ + pthread_mutex_lock(&this->_mutexDest); + unsigned int height = this->_destSurface->Height; + pthread_mutex_unlock(&this->_mutexDest); + + return height; +} diff --git a/desmume/src/cocoa/videofilter.h b/desmume/src/cocoa/videofilter.h new file mode 100644 index 000000000..6ee5a576d --- /dev/null +++ b/desmume/src/cocoa/videofilter.h @@ -0,0 +1,139 @@ +/* + Copyright (C) 2011 Roger Manuel + Copyright (C) 2012 DeSmuME team + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the this software. If not, see . +*/ + +#ifndef _VIDEOFILTER_ +#define _VIDEOFILTER_ + +#include +#include +#include +#include "types.h" +#include "../windows/filter/filter.h" + + +// VIDEO FILTER TYPES +enum VideoFilterTypeID +{ + VideoFilterTypeID_None = 0, + VideoFilterTypeID_LQ2X, + VideoFilterTypeID_LQ2XS, + VideoFilterTypeID_HQ2X, + VideoFilterTypeID_HQ2XS, + VideoFilterTypeID_HQ4X, + VideoFilterTypeID_2xSaI, + VideoFilterTypeID_Super2xSaI, + VideoFilterTypeID_SuperEagle, + VideoFilterTypeID_Scanline, + VideoFilterTypeID_Bilinear, + VideoFilterTypeID_Nearest2X, + VideoFilterTypeID_Nearest1_5X, + VideoFilterTypeID_NearestPlus1_5X, + VideoFilterTypeID_EPX, + VideoFilterTypeID_EPXPlus, + VideoFilterTypeID_EPX1_5X, + VideoFilterTypeID_EPXPlus1_5X +}; + +// VIDEO FILTER TYPE STRINGS +#define VIDEOFILTERTYPE_NONE_STRING "None" +#define VIDEOFILTERTYPE_LQ2X_STRING "LQ2X" +#define VIDEOFILTERTYPE_LQ2XS_STRING "LQ2XS" +#define VIDEOFILTERTYPE_HQ2X_STRING "HQ2X" +#define VIDEOFILTERTYPE_HQ2XS_STRING "HQ2XS" +#define VIDEOFILTERTYPE_HQ4X_STRING "HQ4X" +#define VIDEOFILTERTYPE_2XSAI_STRING "2xSaI" +#define VIDEOFILTERTYPE_SUPER_2XSAI_STRING "Super 2xSaI" +#define VIDEOFILTERTYPE_SUPER_EAGLE_STRING "Super Eagle" +#define VIDEOFILTERTYPE_SCANLINE_STRING "Scanline" +#define VIDEOFILTERTYPE_BILINEAR_STRING "Bilinear" +#define VIDEOFILTERTYPE_NEAREST_2X_STRING "Nearest 2x" +#define VIDEOFILTERTYPE_NEAREST_1_5X_STRING "Nearest 1.5x" +#define VIDEOFILTERTYPE_NEAREST_PLUS_1_5X_STRING "Nearest+ 1.5x" +#define VIDEOFILTERTYPE_EPX_STRING "EPX" +#define VIDEOFILTERTYPE_EPX_PLUS_STRING "EPX+" +#define VIDEOFILTERTYPE_EPX_1_5X_STRING "EPX 1.5x" +#define VIDEOFILTERTYPE_EPX_PLUS_1_5X_STRING "EPX+ 1.5x" +#define VIDEOFILTERTYPE_UNKNOWN_STRING "Unknown" + +typedef void (*VideoFilterCallback)(SSurface Src, SSurface Dst); + +/******************************************************************************************** + VideoFilter - C++ CLASS + + This is a wrapper class for managing the video filter functions from filter.h. + + The steps to using a video filter are as follows: + 1. Instantiate this class. + 2. Set the rectangular size of the source image in pixels. (Can be done during + instantiation.) + 3. Set the video filter type. (Can be done during instantiation.) + 4. Fill in the source buffer with pixels in RGBA8888 format. This class provides + the GetSrcBufferPtr() accessor for the source buffer pointer. + 5. Call RunFilter(). This runs the source buffer pixels through the chosen filter, + and then stores the resulting pixels into the destination buffer in RGBA8888 + format. + 6. At this point, the destination buffer pixels can be used. RunFilter() returns + a pointer to the destination buffer. Alternatively, GetDestBufferPtr() can be + used to get the pointer. + + Thread Safety: + All methods are thread-safe. + ********************************************************************************************/ +class VideoFilter +{ +private: + VideoFilterTypeID _typeID; + std::string _typeString; + SSurface *_srcSurface; + SSurface *_destSurface; + uint32_t *_srcSurfaceBufferMaster; + VideoFilterCallback _filterCallback; + bool _isFilterRunning; + + pthread_mutex_t _mutexSrc; + pthread_mutex_t _mutexDest; + pthread_mutex_t _mutexTypeID; + pthread_mutex_t _mutexTypeString; + pthread_cond_t _condRunning; + + void SetTypeID(VideoFilterTypeID typeID); + void SetTypeString(const char *typeString); + void SetTypeString(std::string typeString); + +public: + VideoFilter(); + VideoFilter(unsigned int srcWidth, unsigned int srcHeight); + VideoFilter(unsigned int srcWidth, unsigned int srcHeight, VideoFilterTypeID typeID); + ~VideoFilter(); + + bool SetSourceSize(unsigned int width, unsigned int height); + bool ChangeFilter(VideoFilterTypeID typeID); + uint32_t* RunFilter(); + static const char* GetTypeStringByID(VideoFilterTypeID typeID); + + VideoFilterTypeID GetTypeID(); + const char* GetTypeString(); + uint32_t* GetSrcBufferPtr(); + uint32_t* GetDestBufferPtr(); + unsigned int GetSrcWidth(); + unsigned int GetSrcHeight(); + unsigned int GetDestWidth(); + unsigned int GetDestHeight(); +}; + +#endif