Compare commits
32 Commits
release-5
...
pre-images
| Author | SHA1 | Date | |
|---|---|---|---|
| 97c27328d0 | |||
| 0dfd7c0605 | |||
| afa29a9e91 | |||
| 65a1a9e6c6 | |||
| 7ef1edfe81 | |||
| 2ab55c0454 | |||
| 8362692523 | |||
| 416310fe69 | |||
| 9d8f645c69 | |||
| 9946d341a7 | |||
| b2bfb6ea11 | |||
| c6bd70f9ef | |||
| d8f0794679 | |||
| 09b9830840 | |||
| 6452cf5e0a | |||
| d7ffdd841a | |||
| 9905ddf96e | |||
| 95c7a77982 | |||
| 8b901fc415 | |||
| 2ba85fc3f8 | |||
| 49e2462b28 | |||
| a829b4feea | |||
| 0a78177485 | |||
| 5d54bbd636 | |||
| 531cee122b | |||
| e9fff9aa08 | |||
| ee02dee982 | |||
| 9a64879336 | |||
| f45db5383d | |||
| 4b34ff977d | |||
| 2fa6a90374 | |||
| 7b41e5bf46 |
@@ -12,7 +12,6 @@
|
||||
B608E17F2502FE0C00D53465 /* TransparentScroller.m in Sources */ = {isa = PBXBuildFile; fileRef = B608E17E2502FE0C00D53465 /* TransparentScroller.m */; };
|
||||
B608E1802502FE0C00D53465 /* TransparentScroller.m in Sources */ = {isa = PBXBuildFile; fileRef = B608E17E2502FE0C00D53465 /* TransparentScroller.m */; };
|
||||
B60A6E1424EE0AE2004B7EEF /* FlippedView.m in Sources */ = {isa = PBXBuildFile; fileRef = B60A6E1324EE0AE2004B7EEF /* FlippedView.m */; };
|
||||
B61099E724F5F231005CB652 /* SlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B61099E324F5F230005CB652 /* SlotView.xib */; };
|
||||
B61099E824F5F231005CB652 /* MediaView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B61099E524F5F230005CB652 /* MediaView.xib */; };
|
||||
B6109A1724F5F377005CB652 /* apple2e.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099EA24F5F36E005CB652 /* apple2e.plist */; };
|
||||
B6109A1824F5F377005CB652 /* hkc8800a.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099EB24F5F36E005CB652 /* hkc8800a.plist */; };
|
||||
@@ -81,11 +80,12 @@
|
||||
B63C1BA9250192E600511A71 /* zijini.plist in Resources */ = {isa = PBXBuildFile; fileRef = B63C1BA7250192E600511A71 /* zijini.plist */; };
|
||||
B64979C224EF6703008ABD20 /* MediaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B64979C124EF6703008ABD20 /* MediaViewController.m */; };
|
||||
B64E15A924EA1D5300E8AD3D /* MachineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B64E15A824EA1D5300E8AD3D /* MachineViewController.m */; };
|
||||
B65593B124ECB61800722E0C /* SlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B65593B024ECB61800722E0C /* SlotViewController.m */; };
|
||||
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */; };
|
||||
B66236B524FDA527006CABD7 /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B66236B224FDA522006CABD7 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
B66236BC24FDA72E006CABD7 /* mame64 in CopyFiles */ = {isa = PBXBuildFile; fileRef = B66236B724FDA686006CABD7 /* mame64 */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
B66236C124FDB7A6006CABD7 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = B66236BF24FDB7A6006CABD7 /* Credits.rtf */; };
|
||||
B6B9EA662506A5550080E70D /* EjectButton.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B9EA642506A5550080E70D /* EjectButton.m */; };
|
||||
B6B9EA672506A5550080E70D /* EjectButton.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B9EA642506A5550080E70D /* EjectButton.m */; };
|
||||
B6BA258024E99BE9005FB8FF /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B6BA257F24E99BE9005FB8FF /* AppDelegate.m */; };
|
||||
B6BA258224E99BEB005FB8FF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B6BA258124E99BEB005FB8FF /* Assets.xcassets */; };
|
||||
B6BA258524E99BEB005FB8FF /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6BA258324E99BEB005FB8FF /* MainMenu.xib */; };
|
||||
@@ -94,6 +94,24 @@
|
||||
B6D6DE3B24FACF4F00661A5F /* Defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6D6DE3A24FACF4F00661A5F /* Defaults.plist */; };
|
||||
B6D6DE3E24FADF8B00661A5F /* LaunchWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6D6DE3C24FADF8B00661A5F /* LaunchWindow.xib */; };
|
||||
B6D6DE4124FADFAC00661A5F /* LaunchWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D6DE4024FADFAC00661A5F /* LaunchWindowController.m */; };
|
||||
B6DDECC025057A550093587A /* drag-handle-4x10.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECBD25057A550093587A /* drag-handle-4x10.png */; };
|
||||
B6DDECC125057A550093587A /* drag-handle-4x10.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECBD25057A550093587A /* drag-handle-4x10.png */; };
|
||||
B6DDECC225057A550093587A /* drag-handle-4x10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECBE25057A550093587A /* drag-handle-4x10@2x.png */; };
|
||||
B6DDECC325057A550093587A /* drag-handle-4x10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECBE25057A550093587A /* drag-handle-4x10@2x.png */; };
|
||||
B6DDECC425057A550093587A /* drag-handle-4x10@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECBF25057A550093587A /* drag-handle-4x10@3x.png */; };
|
||||
B6DDECC525057A550093587A /* drag-handle-4x10@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECBF25057A550093587A /* drag-handle-4x10@3x.png */; };
|
||||
B6DDECCC2505A86E0093587A /* eject-16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC62505A86E0093587A /* eject-16x16@2x.png */; };
|
||||
B6DDECCD2505A86E0093587A /* eject-16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC62505A86E0093587A /* eject-16x16@2x.png */; };
|
||||
B6DDECCE2505A86E0093587A /* eject-16x16@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC72505A86E0093587A /* eject-16x16@3x.png */; };
|
||||
B6DDECCF2505A86E0093587A /* eject-16x16@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC72505A86E0093587A /* eject-16x16@3x.png */; };
|
||||
B6DDECD02505A86E0093587A /* eject-hover-16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC82505A86E0093587A /* eject-hover-16x16.png */; };
|
||||
B6DDECD12505A86E0093587A /* eject-hover-16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC82505A86E0093587A /* eject-hover-16x16.png */; };
|
||||
B6DDECD22505A86E0093587A /* eject-hover-16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC92505A86E0093587A /* eject-hover-16x16@2x.png */; };
|
||||
B6DDECD32505A86E0093587A /* eject-hover-16x16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECC92505A86E0093587A /* eject-hover-16x16@2x.png */; };
|
||||
B6DDECD42505A86E0093587A /* eject-hover-16x16@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */; };
|
||||
B6DDECD52505A86E0093587A /* eject-hover-16x16@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */; };
|
||||
B6DDECD62505A86E0093587A /* eject-16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCB2505A86E0093587A /* eject-16x16.png */; };
|
||||
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCB2505A86E0093587A /* eject-16x16.png */; };
|
||||
B6E4B5B024FDE2670094A35C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6BA258724E99BEB005FB8FF /* main.m */; };
|
||||
B6E4B5B124FDE2670094A35C /* LaunchWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D6DE4024FADFAC00661A5F /* LaunchWindowController.m */; };
|
||||
B6E4B5B224FDE2670094A35C /* MachineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B64E15A824EA1D5300E8AD3D /* MachineViewController.m */; };
|
||||
@@ -102,7 +120,6 @@
|
||||
B6E4B5B524FDE2670094A35C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B6BA257F24E99BE9005FB8FF /* AppDelegate.m */; };
|
||||
B6E4B5B624FDE2670094A35C /* LogWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6004DEE24FB05D600D38596 /* LogWindowController.m */; };
|
||||
B6E4B5B724FDE2670094A35C /* PreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */; };
|
||||
B6E4B5B824FDE2670094A35C /* SlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B65593B024ECB61800722E0C /* SlotViewController.m */; };
|
||||
B6E4B5BC24FDE2670094A35C /* apple2eeuk.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A0624F5F372005CB652 /* apple2eeuk.plist */; };
|
||||
B6E4B5BD24FDE2670094A35C /* las128ex.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099F724F5F36F005CB652 /* las128ex.plist */; };
|
||||
B6E4B5BE24FDE2670094A35C /* space84.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099F024F5F36E005CB652 /* space84.plist */; };
|
||||
@@ -152,11 +169,12 @@
|
||||
B6E4B5EB24FDE2670094A35C /* apple2ee.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099F424F5F36F005CB652 /* apple2ee.plist */; };
|
||||
B6E4B5EC24FDE2670094A35C /* dodo.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A0924F5F373005CB652 /* dodo.plist */; };
|
||||
B6E4B5ED24FDE2670094A35C /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6D6DE3724FAC8B500661A5F /* Preferences.xib */; };
|
||||
B6E4B5EE24FDE2670094A35C /* SlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B61099E324F5F230005CB652 /* SlotView.xib */; };
|
||||
B6E4B5EF24FDE2670094A35C /* apple2gs.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099FC24F5F370005CB652 /* apple2gs.plist */; };
|
||||
B6E4B5F024FDE2670094A35C /* apple2jp.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099F224F5F36F005CB652 /* apple2jp.plist */; };
|
||||
B6E4B5F124FDE2670094A35C /* apple2.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A0324F5F371005CB652 /* apple2.plist */; };
|
||||
B6E4B5F224FDE2670094A35C /* prav8m.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A0024F5F371005CB652 /* prav8m.plist */; };
|
||||
B6E9A18025088B1B005E7525 /* NewSlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E9A17F25088B1B005E7525 /* NewSlotViewController.m */; };
|
||||
B6E9A18325088B36005E7525 /* NewSlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E9A18125088B36005E7525 /* NewSlotView.xib */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
@@ -275,6 +293,8 @@
|
||||
B66236B824FDA698006CABD7 /* mame64 */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = mame64; path = embedded/mame64; sourceTree = "<group>"; };
|
||||
B66236C024FDB7A6006CABD7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Base; path = Base.lproj/Credits.rtf; sourceTree = "<group>"; };
|
||||
B67BD48424EE249D0073E334 /* apple1.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = apple1.plist; sourceTree = "<group>"; };
|
||||
B6B9EA642506A5550080E70D /* EjectButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EjectButton.m; sourceTree = "<group>"; };
|
||||
B6B9EA652506A5550080E70D /* EjectButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EjectButton.h; sourceTree = "<group>"; };
|
||||
B6BA257B24E99BE9005FB8FF /* Ample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B6BA257E24E99BE9005FB8FF /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
B6BA257F24E99BE9005FB8FF /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
@@ -288,7 +308,19 @@
|
||||
B6D6DE3D24FADF8B00661A5F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchWindow.xib; sourceTree = "<group>"; };
|
||||
B6D6DE3F24FADFAC00661A5F /* LaunchWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LaunchWindowController.h; sourceTree = "<group>"; };
|
||||
B6D6DE4024FADFAC00661A5F /* LaunchWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LaunchWindowController.m; sourceTree = "<group>"; };
|
||||
B6DDECBD25057A550093587A /* drag-handle-4x10.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "drag-handle-4x10.png"; sourceTree = "<group>"; };
|
||||
B6DDECBE25057A550093587A /* drag-handle-4x10@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "drag-handle-4x10@2x.png"; sourceTree = "<group>"; };
|
||||
B6DDECBF25057A550093587A /* drag-handle-4x10@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "drag-handle-4x10@3x.png"; sourceTree = "<group>"; };
|
||||
B6DDECC62505A86E0093587A /* eject-16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-16x16@2x.png"; sourceTree = "<group>"; };
|
||||
B6DDECC72505A86E0093587A /* eject-16x16@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-16x16@3x.png"; sourceTree = "<group>"; };
|
||||
B6DDECC82505A86E0093587A /* eject-hover-16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-hover-16x16.png"; sourceTree = "<group>"; };
|
||||
B6DDECC92505A86E0093587A /* eject-hover-16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-hover-16x16@2x.png"; sourceTree = "<group>"; };
|
||||
B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-hover-16x16@3x.png"; sourceTree = "<group>"; };
|
||||
B6DDECCB2505A86E0093587A /* eject-16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-16x16.png"; sourceTree = "<group>"; };
|
||||
B6E4B5FA24FDE2670094A35C /* Ample Lite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Ample Lite.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B6E9A17E25088B1B005E7525 /* NewSlotViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewSlotViewController.h; sourceTree = "<group>"; };
|
||||
B6E9A17F25088B1B005E7525 /* NewSlotViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewSlotViewController.m; sourceTree = "<group>"; };
|
||||
B6E9A18225088B36005E7525 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NewSlotView.xib; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -418,6 +450,8 @@
|
||||
B6BA257D24E99BE9005FB8FF /* Ample */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6E9A17E25088B1B005E7525 /* NewSlotViewController.h */,
|
||||
B6E9A17F25088B1B005E7525 /* NewSlotViewController.m */,
|
||||
B63C1B9125008A2700511A71 /* DownloadWindowController.h */,
|
||||
B63C1B9225008A2700511A71 /* DownloadWindowController.m */,
|
||||
B6BA257E24E99BE9005FB8FF /* AppDelegate.h */,
|
||||
@@ -440,12 +474,15 @@
|
||||
B6004DEE24FB05D600D38596 /* LogWindowController.m */,
|
||||
B66236A724FD9A34006CABD7 /* PreferencesWindowController.h */,
|
||||
B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */,
|
||||
B6B9EA652506A5550080E70D /* EjectButton.h */,
|
||||
B6B9EA642506A5550080E70D /* EjectButton.m */,
|
||||
B6BA258124E99BEB005FB8FF /* Assets.xcassets */,
|
||||
B64E15AF24EA365E00E8AD3D /* Resources */,
|
||||
B6BA258624E99BEB005FB8FF /* Info.plist */,
|
||||
B6D6DE3A24FACF4F00661A5F /* Defaults.plist */,
|
||||
B6BA258724E99BEB005FB8FF /* main.m */,
|
||||
B6BA258924E99BEB005FB8FF /* Ample.entitlements */,
|
||||
B6DDECBC25057A550093587A /* images */,
|
||||
B6D6DE4224FAEE8900661A5F /* Nibs */,
|
||||
);
|
||||
path = Ample;
|
||||
@@ -454,6 +491,7 @@
|
||||
B6D6DE4224FAEE8900661A5F /* Nibs */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6E9A18125088B36005E7525 /* NewSlotView.xib */,
|
||||
B63C1B9325008A2700511A71 /* DownloadWindow.xib */,
|
||||
B66236BF24FDB7A6006CABD7 /* Credits.rtf */,
|
||||
B6D6DE3C24FADF8B00661A5F /* LaunchWindow.xib */,
|
||||
@@ -466,6 +504,22 @@
|
||||
name = Nibs;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6DDECBC25057A550093587A /* images */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6DDECBD25057A550093587A /* drag-handle-4x10.png */,
|
||||
B6DDECBE25057A550093587A /* drag-handle-4x10@2x.png */,
|
||||
B6DDECBF25057A550093587A /* drag-handle-4x10@3x.png */,
|
||||
B6DDECCB2505A86E0093587A /* eject-16x16.png */,
|
||||
B6DDECC62505A86E0093587A /* eject-16x16@2x.png */,
|
||||
B6DDECC72505A86E0093587A /* eject-16x16@3x.png */,
|
||||
B6DDECC82505A86E0093587A /* eject-hover-16x16.png */,
|
||||
B6DDECC92505A86E0093587A /* eject-hover-16x16@2x.png */,
|
||||
B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */,
|
||||
);
|
||||
path = images;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@@ -554,13 +608,16 @@
|
||||
B6109A3124F5F377005CB652 /* apple1.plist in Resources */,
|
||||
B6109A3524F5F377005CB652 /* ace100.plist in Resources */,
|
||||
B6109A3424F5F377005CB652 /* am64.plist in Resources */,
|
||||
B6DDECCC2505A86E0093587A /* eject-16x16@2x.png in Resources */,
|
||||
B6004DF124FB05D600D38596 /* LogWindow.xib in Resources */,
|
||||
B6BA258224E99BEB005FB8FF /* Assets.xcassets in Resources */,
|
||||
B6109A1724F5F377005CB652 /* apple2e.plist in Resources */,
|
||||
B6109A3C24F5F377005CB652 /* am100.plist in Resources */,
|
||||
B6DDECD02505A86E0093587A /* eject-hover-16x16.png in Resources */,
|
||||
B6109A2524F5F377005CB652 /* laser2c.plist in Resources */,
|
||||
B6109A3D24F5F377005CB652 /* laser128.plist in Resources */,
|
||||
B6109A2824F5F377005CB652 /* apple2ep.plist in Resources */,
|
||||
B6DDECC225057A550093587A /* drag-handle-4x10@2x.png in Resources */,
|
||||
B6109A1924F5F377005CB652 /* apple2ees.plist in Resources */,
|
||||
B6109A3924F5F377005CB652 /* prav8c.plist in Resources */,
|
||||
B6109A1C24F5F377005CB652 /* ivelultr.plist in Resources */,
|
||||
@@ -572,6 +629,8 @@
|
||||
B6109A3A24F5F377005CB652 /* prav82.plist in Resources */,
|
||||
B6109A2024F5F377005CB652 /* apple2euk.plist in Resources */,
|
||||
B6109A2F24F5F377005CB652 /* uniap2ti.plist in Resources */,
|
||||
B6DDECD42505A86E0093587A /* eject-hover-16x16@3x.png in Resources */,
|
||||
B6DDECD62505A86E0093587A /* eject-16x16.png in Resources */,
|
||||
B6109A1E24F5F377005CB652 /* apple2c.plist in Resources */,
|
||||
B6109A1A24F5F377005CB652 /* microeng.plist in Resources */,
|
||||
B6109A3E24F5F377005CB652 /* albert.plist in Resources */,
|
||||
@@ -585,8 +644,10 @@
|
||||
B63C1B9F250192D800511A71 /* ceci.plist in Resources */,
|
||||
B6109A3224F5F377005CB652 /* basis108.plist in Resources */,
|
||||
B6109A4324F5F377005CB652 /* agat7.plist in Resources */,
|
||||
B6DDECC425057A550093587A /* drag-handle-4x10@3x.png in Resources */,
|
||||
B6109A2B24F5F377005CB652 /* elppa.plist in Resources */,
|
||||
B63C1B8E25004C6D00511A71 /* mame-data.tgz in Resources */,
|
||||
B6DDECCE2505A86E0093587A /* eject-16x16@3x.png in Resources */,
|
||||
B6109A3B24F5F377005CB652 /* apple2gsr1.plist in Resources */,
|
||||
B63C1B9625008A2700511A71 /* DownloadWindow.xib in Resources */,
|
||||
B6D6DE3B24FACF4F00661A5F /* Defaults.plist in Resources */,
|
||||
@@ -600,9 +661,11 @@
|
||||
B6109A2A24F5F377005CB652 /* apple3.plist in Resources */,
|
||||
B6109A2124F5F377005CB652 /* apple2ee.plist in Resources */,
|
||||
B63C1BA5250192D800511A71 /* cecm.plist in Resources */,
|
||||
B6E9A18325088B36005E7525 /* NewSlotView.xib in Resources */,
|
||||
B6DDECC025057A550093587A /* drag-handle-4x10.png in Resources */,
|
||||
B6DDECD22505A86E0093587A /* eject-hover-16x16@2x.png in Resources */,
|
||||
B6109A3624F5F377005CB652 /* dodo.plist in Resources */,
|
||||
B6D6DE3924FAC8B500661A5F /* Preferences.xib in Resources */,
|
||||
B61099E724F5F231005CB652 /* SlotView.xib in Resources */,
|
||||
B6109A2924F5F377005CB652 /* apple2gs.plist in Resources */,
|
||||
B6109A1F24F5F377005CB652 /* apple2jp.plist in Resources */,
|
||||
B6109A3024F5F377005CB652 /* apple2.plist in Resources */,
|
||||
@@ -614,6 +677,7 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B6DDECCF2505A86E0093587A /* eject-16x16@3x.png in Resources */,
|
||||
B6E4B5BC24FDE2670094A35C /* apple2eeuk.plist in Resources */,
|
||||
B63C1BA0250192D800511A71 /* ceci.plist in Resources */,
|
||||
B6E4B5BD24FDE2670094A35C /* las128ex.plist in Resources */,
|
||||
@@ -630,8 +694,10 @@
|
||||
B63C1BA2250192D800511A71 /* cecg.plist in Resources */,
|
||||
B6E4B5C724FDE2670094A35C /* am100.plist in Resources */,
|
||||
B6E4B5C824FDE2670094A35C /* laser2c.plist in Resources */,
|
||||
B6DDECC125057A550093587A /* drag-handle-4x10.png in Resources */,
|
||||
B6E4B5C924FDE2670094A35C /* laser128.plist in Resources */,
|
||||
B6E4B5CA24FDE2670094A35C /* apple2ep.plist in Resources */,
|
||||
B6DDECCD2505A86E0093587A /* eject-16x16@2x.png in Resources */,
|
||||
B6E4B5CB24FDE2670094A35C /* apple2ees.plist in Resources */,
|
||||
B6E4B5CC24FDE2670094A35C /* prav8c.plist in Resources */,
|
||||
B6E4B5CD24FDE2670094A35C /* ivelultr.plist in Resources */,
|
||||
@@ -649,11 +715,15 @@
|
||||
B6E4B5D924FDE2670094A35C /* albert.plist in Resources */,
|
||||
B6E4B5DA24FDE2670094A35C /* Credits.rtf in Resources */,
|
||||
B6E4B5DB24FDE2670094A35C /* apple2p.plist in Resources */,
|
||||
B6DDECD12505A86E0093587A /* eject-hover-16x16.png in Resources */,
|
||||
B63C1BA4250192D800511A71 /* cec2000.plist in Resources */,
|
||||
B6DDECD32505A86E0093587A /* eject-hover-16x16@2x.png in Resources */,
|
||||
B6E4B5DC24FDE2670094A35C /* hkc8800a.plist in Resources */,
|
||||
B6DDECC525057A550093587A /* drag-handle-4x10@3x.png in Resources */,
|
||||
B6E4B5DD24FDE2670094A35C /* apple2gsr0.plist in Resources */,
|
||||
B6E4B5DE24FDE2670094A35C /* mprof3.plist in Resources */,
|
||||
B6E4B5DF24FDE2670094A35C /* basis108.plist in Resources */,
|
||||
B6DDECD52505A86E0093587A /* eject-hover-16x16@3x.png in Resources */,
|
||||
B6E4B5E024FDE2670094A35C /* agat7.plist in Resources */,
|
||||
B6E4B5E124FDE2670094A35C /* elppa.plist in Resources */,
|
||||
B6E4B5E224FDE2670094A35C /* apple2gsr1.plist in Resources */,
|
||||
@@ -670,10 +740,11 @@
|
||||
B6E4B5EB24FDE2670094A35C /* apple2ee.plist in Resources */,
|
||||
B6E4B5EC24FDE2670094A35C /* dodo.plist in Resources */,
|
||||
B6E4B5ED24FDE2670094A35C /* Preferences.xib in Resources */,
|
||||
B6E4B5EE24FDE2670094A35C /* SlotView.xib in Resources */,
|
||||
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */,
|
||||
B6E4B5EF24FDE2670094A35C /* apple2gs.plist in Resources */,
|
||||
B6E4B5F024FDE2670094A35C /* apple2jp.plist in Resources */,
|
||||
B6E4B5F124FDE2670094A35C /* apple2.plist in Resources */,
|
||||
B6DDECC325057A550093587A /* drag-handle-4x10@2x.png in Resources */,
|
||||
B6E4B5F224FDE2670094A35C /* prav8m.plist in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -686,8 +757,10 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B608E17F2502FE0C00D53465 /* TransparentScroller.m in Sources */,
|
||||
B6E9A18025088B1B005E7525 /* NewSlotViewController.m in Sources */,
|
||||
B6BA258824E99BEB005FB8FF /* main.m in Sources */,
|
||||
B63C1B8B24FF4BF700511A71 /* Ample.m in Sources */,
|
||||
B6B9EA662506A5550080E70D /* EjectButton.m in Sources */,
|
||||
B6D6DE4124FADFAC00661A5F /* LaunchWindowController.m in Sources */,
|
||||
B64E15A924EA1D5300E8AD3D /* MachineViewController.m in Sources */,
|
||||
B64979C224EF6703008ABD20 /* MediaViewController.m in Sources */,
|
||||
@@ -695,7 +768,6 @@
|
||||
B6BA258024E99BE9005FB8FF /* AppDelegate.m in Sources */,
|
||||
B6004DF024FB05D600D38596 /* LogWindowController.m in Sources */,
|
||||
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */,
|
||||
B65593B124ECB61800722E0C /* SlotViewController.m in Sources */,
|
||||
B63C1B9425008A2700511A71 /* DownloadWindowController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -707,6 +779,7 @@
|
||||
B608E1802502FE0C00D53465 /* TransparentScroller.m in Sources */,
|
||||
B6E4B5B024FDE2670094A35C /* main.m in Sources */,
|
||||
B63C1B8C24FF4BF700511A71 /* Ample.m in Sources */,
|
||||
B6B9EA672506A5550080E70D /* EjectButton.m in Sources */,
|
||||
B6E4B5B124FDE2670094A35C /* LaunchWindowController.m in Sources */,
|
||||
B6E4B5B224FDE2670094A35C /* MachineViewController.m in Sources */,
|
||||
B6E4B5B324FDE2670094A35C /* MediaViewController.m in Sources */,
|
||||
@@ -714,7 +787,6 @@
|
||||
B6E4B5B524FDE2670094A35C /* AppDelegate.m in Sources */,
|
||||
B6E4B5B624FDE2670094A35C /* LogWindowController.m in Sources */,
|
||||
B6E4B5B724FDE2670094A35C /* PreferencesWindowController.m in Sources */,
|
||||
B6E4B5B824FDE2670094A35C /* SlotViewController.m in Sources */,
|
||||
B63C1B9525008A2700511A71 /* DownloadWindowController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -770,6 +842,14 @@
|
||||
name = LaunchWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6E9A18125088B36005E7525 /* NewSlotView.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
B6E9A18225088B36005E7525 /* Base */,
|
||||
);
|
||||
name = NewSlotView.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
|
||||
@@ -1,53 +1,63 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "16x16",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-16.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "16x16",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-32.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "32x32",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-32.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "32x32",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-64.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "128x128",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-128.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "128x128",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-256.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "256x256",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-256.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "256x256",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-512.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "512x512",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-512.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "mac",
|
||||
"size" : "512x512",
|
||||
"idiom" : "mac",
|
||||
"filename" : "icon-1024.png",
|
||||
"scale" : "2x"
|
||||
}
|
||||
],
|
||||
|
||||
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 447 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
@@ -1,14 +1,15 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf600
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red255\green255\blue255;}
|
||||
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\cssrgb\c100000\c100000\c100000;}
|
||||
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red255\green255\blue255;\red38\green38\blue38;
|
||||
}
|
||||
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\cssrgb\c100000\c100000\c100000;\cssrgb\c20000\c20000\c20000;
|
||||
}
|
||||
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
|
||||
|
||||
\f0\b\fs36 \cf2 Ample\cf0
|
||||
\f1\b0\fs28 would like to thank\'85\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
|
||||
\cf0 \
|
||||
\
|
||||
\pard\pardeftab720\qc\partightenfactor0
|
||||
{\field{\*\fldinst{HYPERLINK "https://www.mamedev.org"}}{\fldrslt
|
||||
\f0\b\fs36 \cf0 \cb3 \expnd0\expndtw0\kerning0
|
||||
@@ -30,4 +31,17 @@ Please note that MAME is a registered trademark of Gregory Ember, and permission
|
||||
\cf0 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qj\partightenfactor0
|
||||
\cf0 \cb1 \kerning1\expnd0\expndtw0 SDL 2.0 is distributed under the {\field{\*\fldinst{HYPERLINK "https://libsdl.org/license.php"}}{\fldrslt zlib license}}. This license allows you to use SDL freely in any software.\
|
||||
}
|
||||
\
|
||||
\pard\pardeftab720\qc\partightenfactor0
|
||||
{\field{\*\fldinst{HYPERLINK "https://usdawatercolors.nal.usda.gov/pom/catalog.xhtml?id=POM00001916"}}{\fldrslt
|
||||
\f0\b\fs36 \cf0 \cb3 \expnd0\expndtw0\kerning0
|
||||
Icon}}
|
||||
\f0\b\fs36 \cb3 \expnd0\expndtw0\kerning0
|
||||
\
|
||||
\pard\pardeftab720\qj\partightenfactor0
|
||||
|
||||
\f1\b0\fs28 \cf0 \
|
||||
\pard\pardeftab720\qj\partightenfactor0
|
||||
\cf4 \cb3 R.C. Steadman, 6-1-\'9221.\
|
||||
\
|
||||
U.S. Department of Agriculture Pomological Watercolor Collection. Rare and Special Collections, National Agricultural Library, Beltsville, MD 20705}
|
||||
@@ -75,29 +75,146 @@ DQ
|
||||
<rect key="frame" x="20" y="92" width="306" height="363"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
</customView>
|
||||
<tabView initialItem="nr5-4o-DyG" id="l8R-bg-6Zm">
|
||||
<tabView initialItem="zUN-Qs-haG" id="l8R-bg-6Zm">
|
||||
<rect key="frame" x="13" y="453" width="692" height="160"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="Options" identifier="" id="nr5-4o-DyG">
|
||||
<view key="view" id="ElY-YI-LLI">
|
||||
<tabViewItem label="Video" identifier="" id="zUN-Qs-haG">
|
||||
<view key="view" id="QQT-HS-xjI">
|
||||
<rect key="frame" x="10" y="33" width="672" height="114"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zVI-uU-muo">
|
||||
<rect key="frame" x="15" y="60" width="71" height="18"/>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="pD8-dV-ijg">
|
||||
<rect key="frame" x="143" y="87" width="172" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Window" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="vx1-I7-8kN">
|
||||
<popUpButtonCell key="cell" type="push" title="Default" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="g0W-Ka-7bb" id="ceP-aK-me8">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="ajo-1k-sbD">
|
||||
<items>
|
||||
<menuItem title="Default" state="on" id="g0W-Ka-7bb"/>
|
||||
<menuItem title="Metal" tag="1" id="93g-cb-opl"/>
|
||||
<menuItem title="OpenGL" tag="2" id="B1R-9E-dMw"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="enabled" keyPath="self.mameBGFX" id="ZuQ-OY-TrP"/>
|
||||
<binding destination="-2" name="selectedIndex" keyPath="self.mameBackend" id="oE1-Ho-H22"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qGO-Pm-SD1">
|
||||
<rect key="frame" x="79" y="92" width="60" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Backend:" id="WDr-Pl-lV1">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ctE-fX-twN">
|
||||
<rect key="frame" x="318" y="92" width="51" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Effects:" id="Sqk-7k-PxQ">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="826-p8-in8">
|
||||
<rect key="frame" x="15" y="91" width="57" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="BGFX" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Ubs-KZ-mpu">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.mameWindow" id="uS7-cg-wqb"/>
|
||||
<binding destination="-2" name="value" keyPath="self.mameBGFX" id="9Ua-MZ-qbe"/>
|
||||
</connections>
|
||||
</button>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hM8-FM-Agh">
|
||||
<rect key="frame" x="382" y="87" width="172" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Default" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Dsm-bi-Txy" id="mBS-h4-BWC">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="WdF-Hw-YI9">
|
||||
<items>
|
||||
<menuItem title="Default" state="on" id="Dsm-bi-Txy"/>
|
||||
<menuItem title="Unfiltered" tag="1" id="xgz-We-TFg"/>
|
||||
<menuItem title="HLSL" tag="2" id="1UE-ea-V9a"/>
|
||||
<menuItem title="CRT Geometry" tag="3" id="Dsx-wI-m3r"/>
|
||||
<menuItem title="CRT Geometry Deluxe" tag="4" id="Ylw-Of-TM5"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="enabled" keyPath="self.mameBGFX" id="DVB-Ex-VYF"/>
|
||||
<binding destination="-2" name="selectedIndex" keyPath="self.mameEffects" id="rCg-d6-OR6"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="D5h-dm-fuZ">
|
||||
<rect key="frame" x="318" y="60" width="104" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Square Pixels" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="yWK-BP-7Z9">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.mameSquarePixels" id="BiP-wC-Hpn"/>
|
||||
<binding destination="-2" name="enabled" keyPath="self.mameWindowMode" id="X80-2K-kTO"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6gd-45-eLr">
|
||||
<rect key="frame" x="15" y="60" width="94" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Window Mode:" id="l8n-CI-o4t">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sei-LG-VM6">
|
||||
<rect key="frame" x="143" y="55" width="172" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Full Screen" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="0zZ-Ib-Fne" id="lsw-Vk-WcZ">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="m4N-Qw-mem">
|
||||
<items>
|
||||
<menuItem title="Full Screen" state="on" id="0zZ-Ib-Fne"/>
|
||||
<menuItem title="Window 1x" id="3bZ-rq-fCt"/>
|
||||
<menuItem title="Window 2x" id="KA4-Rs-yyK"/>
|
||||
<menuItem title="Window 3x" id="Dbh-Js-pMx" userLabel="Window 3x"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="selectedIndex" keyPath="self.mameWindowMode" id="B9e-SK-3RY"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<button verticalHuggingPriority="750" id="9Db-wA-FP9">
|
||||
<rect key="frame" x="15" y="29" width="115" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Capture Mouse" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="3xh-Q7-WFl">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.mameMouse" id="vWu-od-2d6"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="CPU" identifier="" id="nr5-4o-DyG">
|
||||
<view key="view" id="ElY-YI-LLI">
|
||||
<rect key="frame" x="10" y="33" width="672" height="114"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZUp-ni-Rr6">
|
||||
<rect key="frame" x="15" y="29" width="62" height="18"/>
|
||||
<rect key="frame" x="15" y="60" width="62" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Debug" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="6is-QN-JEc">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
@@ -107,34 +224,21 @@ DQ
|
||||
<binding destination="-2" name="value" keyPath="self.mameDebug" id="vkc-sR-KnB"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="D5h-dm-fuZ">
|
||||
<rect key="frame" x="165" y="60" width="104" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Square Pixels" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="yWK-BP-7Z9">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PGK-yK-2ZK">
|
||||
<rect key="frame" x="15" y="91" width="43" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Speed" id="D9w-Mz-PXs">
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.mameSquarePixels" id="BiP-wC-Hpn"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zoQ-mU-ARl">
|
||||
<rect key="frame" x="315" y="60" width="67" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="No Blur" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="r3s-5h-Xv5">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="self.mameNoBlur" id="Pvn-zw-OsQ"/>
|
||||
</connections>
|
||||
</button>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="FE4-gG-fPb">
|
||||
<rect key="frame" x="62" y="87" width="107" height="25"/>
|
||||
<rect key="frame" x="62" y="86" width="107" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="100%" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="1" imageScaling="proportionallyDown" inset="2" selectedItem="yoI-Ra-evu" id="M40-f0-awc">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="8Tv-0j-JhQ">
|
||||
<items>
|
||||
<menuItem title="100%" state="on" tag="1" id="yoI-Ra-evu"/>
|
||||
@@ -150,15 +254,6 @@ DQ
|
||||
<binding destination="-2" name="selectedTag" keyPath="self.mameSpeed" id="nFG-yA-KC1"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PGK-yK-2ZK">
|
||||
<rect key="frame" x="15" y="93" width="43" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Speed" id="D9w-Mz-PXs">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
@@ -273,7 +368,7 @@ DQ
|
||||
<point key="canvasLocation" x="769" y="120.5"/>
|
||||
</window>
|
||||
<viewController title="Media View" nibName="MediaView" id="t7c-zy-czN" customClass="MediaViewController"/>
|
||||
<viewController title="Slot View" nibName="SlotView" id="lyS-mc-3Tf" customClass="SlotViewController"/>
|
||||
<viewController title="Slot View" nibName="NewSlotView" id="lyS-mc-3Tf" customClass="NewSlotViewController"/>
|
||||
<customObject id="RgH-d9-xl8" customClass="MachineViewController"/>
|
||||
</objects>
|
||||
<resources>
|
||||
|
||||
@@ -31,12 +31,6 @@
|
||||
<action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Manage ROMs…" id="St3-qR-2Y8">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="downloadROMS:" target="Voe-Tx-rLC" id="jFm-nv-kRC"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
||||
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW">
|
||||
<connections>
|
||||
@@ -357,268 +351,6 @@
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Format" id="jxT-CU-nIS">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Format" id="GEO-Iw-cKr">
|
||||
<items>
|
||||
<menuItem title="Font" id="Gi5-1S-RQB">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Font" systemMenu="font" id="aXa-aM-Jaq">
|
||||
<items>
|
||||
<menuItem title="Show Fonts" keyEquivalent="t" id="Q5e-8K-NDq">
|
||||
<connections>
|
||||
<action selector="orderFrontFontPanel:" target="YLy-65-1bz" id="WHr-nq-2xA"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Bold" tag="2" keyEquivalent="b" id="GB9-OM-e27">
|
||||
<connections>
|
||||
<action selector="addFontTrait:" target="YLy-65-1bz" id="hqk-hr-sYV"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Italic" tag="1" keyEquivalent="i" id="Vjx-xi-njq">
|
||||
<connections>
|
||||
<action selector="addFontTrait:" target="YLy-65-1bz" id="IHV-OB-c03"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Underline" keyEquivalent="u" id="WRG-CD-K1S">
|
||||
<connections>
|
||||
<action selector="underline:" target="-1" id="FYS-2b-JAY"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="5gT-KC-WSO"/>
|
||||
<menuItem title="Bigger" tag="3" keyEquivalent="+" id="Ptp-SP-VEL">
|
||||
<connections>
|
||||
<action selector="modifyFont:" target="YLy-65-1bz" id="Uc7-di-UnL"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Smaller" tag="4" keyEquivalent="-" id="i1d-Er-qST">
|
||||
<connections>
|
||||
<action selector="modifyFont:" target="YLy-65-1bz" id="HcX-Lf-eNd"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="kx3-Dk-x3B"/>
|
||||
<menuItem title="Kern" id="jBQ-r6-VK2">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Kern" id="tlD-Oa-oAM">
|
||||
<items>
|
||||
<menuItem title="Use Default" id="GUa-eO-cwY">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="useStandardKerning:" target="-1" id="6dk-9l-Ckg"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Use None" id="cDB-IK-hbR">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="turnOffKerning:" target="-1" id="U8a-gz-Maa"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Tighten" id="46P-cB-AYj">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="tightenKerning:" target="-1" id="hr7-Nz-8ro"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Loosen" id="ogc-rX-tC1">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="loosenKerning:" target="-1" id="8i4-f9-FKE"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Ligatures" id="o6e-r0-MWq">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Ligatures" id="w0m-vy-SC9">
|
||||
<items>
|
||||
<menuItem title="Use Default" id="agt-UL-0e3">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="useStandardLigatures:" target="-1" id="7uR-wd-Dx6"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Use None" id="J7y-lM-qPV">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="turnOffLigatures:" target="-1" id="iX2-gA-Ilz"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Use All" id="xQD-1f-W4t">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="useAllLigatures:" target="-1" id="KcB-kA-TuK"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Baseline" id="OaQ-X3-Vso">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Baseline" id="ijk-EB-dga">
|
||||
<items>
|
||||
<menuItem title="Use Default" id="3Om-Ey-2VK">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="unscript:" target="-1" id="0vZ-95-Ywn"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Superscript" id="Rqc-34-cIF">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="superscript:" target="-1" id="3qV-fo-wpU"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Subscript" id="I0S-gh-46l">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="subscript:" target="-1" id="Q6W-4W-IGz"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Raise" id="2h7-ER-AoG">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="raiseBaseline:" target="-1" id="4sk-31-7Q9"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Lower" id="1tx-W0-xDw">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="lowerBaseline:" target="-1" id="OF1-bc-KW4"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="Ndw-q3-faq"/>
|
||||
<menuItem title="Show Colors" keyEquivalent="C" id="bgn-CT-cEk">
|
||||
<connections>
|
||||
<action selector="orderFrontColorPanel:" target="-1" id="mSX-Xz-DV3"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="iMs-zA-UFJ"/>
|
||||
<menuItem title="Copy Style" keyEquivalent="c" id="5Vv-lz-BsD">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="copyFont:" target="-1" id="GJO-xA-L4q"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Paste Style" keyEquivalent="v" id="vKC-jM-MkH">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="pasteFont:" target="-1" id="JfD-CL-leO"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Text" id="Fal-I4-PZk">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Text" id="d9c-me-L2H">
|
||||
<items>
|
||||
<menuItem title="Align Left" keyEquivalent="{" id="ZM1-6Q-yy1">
|
||||
<connections>
|
||||
<action selector="alignLeft:" target="-1" id="zUv-R1-uAa"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Center" keyEquivalent="|" id="VIY-Ag-zcb">
|
||||
<connections>
|
||||
<action selector="alignCenter:" target="-1" id="spX-mk-kcS"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Justify" id="J5U-5w-g23">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="alignJustified:" target="-1" id="ljL-7U-jND"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Align Right" keyEquivalent="}" id="wb2-vD-lq4">
|
||||
<connections>
|
||||
<action selector="alignRight:" target="-1" id="r48-bG-YeY"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="4s2-GY-VfK"/>
|
||||
<menuItem title="Writing Direction" id="H1b-Si-o9J">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Writing Direction" id="8mr-sm-Yjd">
|
||||
<items>
|
||||
<menuItem title="Paragraph" enabled="NO" id="ZvO-Gk-QUH">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem id="YGs-j5-SAR">
|
||||
<string key="title"> Default</string>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="makeBaseWritingDirectionNatural:" target="-1" id="qtV-5e-UBP"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem id="Lbh-J2-qVU">
|
||||
<string key="title"> Left to Right</string>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="makeBaseWritingDirectionLeftToRight:" target="-1" id="S0X-9S-QSf"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem id="jFq-tB-4Kx">
|
||||
<string key="title"> Right to Left</string>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="makeBaseWritingDirectionRightToLeft:" target="-1" id="5fk-qB-AqJ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="swp-gr-a21"/>
|
||||
<menuItem title="Selection" enabled="NO" id="cqv-fj-IhA">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem id="Nop-cj-93Q">
|
||||
<string key="title"> Default</string>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="makeTextWritingDirectionNatural:" target="-1" id="lPI-Se-ZHp"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem id="BgM-ve-c93">
|
||||
<string key="title"> Left to Right</string>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="makeTextWritingDirectionLeftToRight:" target="-1" id="caW-Bv-w94"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem id="RB4-Sm-HuC">
|
||||
<string key="title"> Right to Left</string>
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="makeTextWritingDirectionRightToLeft:" target="-1" id="EXD-6r-ZUu"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="fKy-g9-1gm"/>
|
||||
<menuItem title="Show Ruler" id="vLm-3I-IUL">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="toggleRuler:" target="-1" id="FOx-HJ-KwY"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Copy Ruler" keyEquivalent="c" id="MkV-Pr-PK5">
|
||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="copyRuler:" target="-1" id="71i-fW-3W2"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Paste Ruler" keyEquivalent="v" id="LVM-kO-fVI">
|
||||
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="pasteRuler:" target="-1" id="cSh-wd-qM2"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="View" id="H8h-7b-M4v">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="View" id="HyV-fh-RgO">
|
||||
@@ -666,6 +398,13 @@
|
||||
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="kE9-em-OHN"/>
|
||||
<menuItem title="Manage ROMs…" id="St3-qR-2Y8">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="downloadROMS:" target="Voe-Tx-rLC" id="jFm-nv-kRC"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
|
||||
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
|
||||
@@ -14,14 +14,13 @@
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="20" horizontalPageScroll="10" verticalLineScroll="20" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="nVT-kT-bWl">
|
||||
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="30" horizontalPageScroll="10" verticalLineScroll="30" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="nVT-kT-bWl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="306" height="363"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<clipView key="contentView" autoresizesSubviews="NO" copiesOnScroll="NO" id="IBD-wb-pch">
|
||||
<clipView key="contentView" autoresizesSubviews="NO" focusRingType="none" ambiguous="YES" copiesOnScroll="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IBD-wb-pch">
|
||||
<rect key="frame" x="0.0" y="0.0" width="306" height="363"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" selectionHighlightStyle="none" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowSizeStyle="automatic" viewBased="YES" outlineTableColumn="pBj-py-R6a" id="sIz-DD-PZQ">
|
||||
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" selectionHighlightStyle="none" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="27" rowSizeStyle="automatic" viewBased="YES" outlineTableColumn="pBj-py-R6a" id="sIz-DD-PZQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="306" height="363"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="2" height="3"/>
|
||||
@@ -40,33 +39,15 @@
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="e4I-r0-vWM">
|
||||
<rect key="frame" x="1" y="1" width="280" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Mig-Wj-m5e">
|
||||
<rect key="frame" x="0.0" y="0.0" width="280" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="ZcN-bl-2D8">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="Mig-Wj-m5e" id="FYh-hX-PTU"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
<tableCellView identifier="CategoryView" focusRingType="none" id="33q-UT-ur5">
|
||||
<rect key="frame" x="1" y="21" width="280" height="17"/>
|
||||
<rect key="frame" x="1" y="1" width="280" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Pep-mX-LHY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="280" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Rrg-wr-8eL">
|
||||
<font key="font" metaFont="system"/>
|
||||
<font key="font" metaFont="systemBold"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
@@ -76,13 +57,13 @@
|
||||
<outlet property="textField" destination="Pep-mX-LHY" id="hUe-cf-6vq"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
<tableCellView identifier="ItemView" id="yGq-lc-RCM" customClass="TablePathView">
|
||||
<rect key="frame" x="1" y="41" width="280" height="27"/>
|
||||
<tableCellView identifier="ItemView" translatesAutoresizingMaskIntoConstraints="NO" id="yGq-lc-RCM" customClass="TablePathView">
|
||||
<rect key="frame" x="1" y="21" width="280" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<pathControl focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="f7R-TO-fmF">
|
||||
<rect key="frame" x="41" y="1" width="207" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<rect key="frame" x="20" y="0.0" width="228" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<pathCell key="cell" controlSize="small" selectable="YES" editable="YES" focusRingType="none" alignment="left" pathStyle="popUp" id="dcz-8y-tKb">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</pathCell>
|
||||
@@ -90,24 +71,25 @@
|
||||
<action selector="pathAction:" target="-2" id="4oX-bW-ANp"/>
|
||||
</connections>
|
||||
</pathControl>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zNo-ij-mUl">
|
||||
<rect key="frame" x="253" y="3" width="23" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="rounded" image="NSNavEjectButton.normalSelected" imagePosition="overlaps" alignment="center" controlSize="small" imageScaling="proportionallyDown" inset="2" id="IZA-Tu-olu">
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" id="6g1-NT-J1w">
|
||||
<rect key="frame" x="0.0" y="1" width="20" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageAlignment="left" image="drag-handle-4x10" id="x7F-qD-5y9"/>
|
||||
</imageView>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zNo-ij-mUl" customClass="EjectButton">
|
||||
<rect key="frame" x="261" y="3" width="16" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="eject-16x16" imagePosition="only" alignment="center" alternateImage="eject-hover-16x16" imageScaling="proportionallyDown" inset="2" id="IZA-Tu-olu">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="ejectAction:" target="-2" id="XAl-eQ-nUj"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" id="6g1-NT-J1w">
|
||||
<rect key="frame" x="3" y="3" width="33" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSListViewTemplate" id="x7F-qD-5y9"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="dragHandle" destination="6g1-NT-J1w" id="odc-Sw-3WS"/>
|
||||
<outlet property="ejectButton" destination="zNo-ij-mUl" id="uzY-tA-5Wf"/>
|
||||
<outlet property="pathControl" destination="f7R-TO-fmF" id="oH7-N3-JC7"/>
|
||||
</connections>
|
||||
@@ -140,7 +122,8 @@
|
||||
</scrollView>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSListViewTemplate" width="14" height="10"/>
|
||||
<image name="NSNavEjectButton.normalSelected" width="16" height="16"/>
|
||||
<image name="drag-handle-4x10" width="4" height="10"/>
|
||||
<image name="eject-16x16" width="8" height="9"/>
|
||||
<image name="eject-hover-16x16" width="16" height="16"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15705" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15705"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NewSlotViewController">
|
||||
<connections>
|
||||
<outlet property="outlineView" destination="Xj3-Qf-yek" id="AWE-Rg-XUM"/>
|
||||
<outlet property="view" destination="D45-lv-6Fv" id="av3-OE-ph2"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="27" horizontalPageScroll="10" verticalLineScroll="27" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="D45-lv-6Fv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="306" height="386"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<clipView key="contentView" focusRingType="none" copiesOnScroll="NO" id="8x1-xN-a7c">
|
||||
<rect key="frame" x="0.0" y="0.0" width="306" height="386"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" selectionHighlightStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="25" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="u7T-p8-F2Z" id="Xj3-Qf-yek">
|
||||
<rect key="frame" x="0.0" y="0.0" width="306" height="386"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="280" minWidth="40" maxWidth="1000" id="u7T-p8-F2Z">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="FM7-eO-FE4">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView identifier="MenuCell" id="1RI-9K-5qj" customClass="SlotTableCellView">
|
||||
<rect key="frame" x="1" y="1" width="280" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qIF-d4-kOf">
|
||||
<rect key="frame" x="0.0" y="5" width="90" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="RAM:" id="tIz-xZ-ZJH">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zQ8-o3-yBB">
|
||||
<rect key="frame" x="87" y="0.0" width="193" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="tGi-yg-GFr" id="gt4-HK-pd1">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" autoenablesItems="NO" id="KWV-nn-eiB">
|
||||
<items>
|
||||
<menuItem title="Item 1" state="on" id="tGi-yg-GFr"/>
|
||||
<menuItem title="Item 2" id="XJr-Gb-4D4"/>
|
||||
<menuItem title="Item 3" id="JeB-Fb-DeQ"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<action selector="menuChanged:" target="-2" id="9MH-mu-u5V"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="menuButton" destination="zQ8-o3-yBB" id="zZf-nm-tCI"/>
|
||||
<outlet property="textField" destination="qIF-d4-kOf" id="zIF-4n-v1e"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="-2" id="OV9-yE-OFp"/>
|
||||
<outlet property="delegate" destination="-2" id="kXs-TN-3VL"/>
|
||||
</connections>
|
||||
</outlineView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="rYF-ld-adB">
|
||||
<rect key="frame" x="-100" y="-100" width="223" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="4pL-Dn-e75" customClass="TransparentScroller">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<point key="canvasLocation" x="-100" y="154"/>
|
||||
</scrollView>
|
||||
</objects>
|
||||
</document>
|
||||
@@ -322,10 +322,18 @@ enum {
|
||||
DownloadItem *item = [_items objectAtIndex: row];
|
||||
DownloadTableCellView *v = [tableView makeViewWithIdentifier: @"DownloadCell" owner: self];
|
||||
|
||||
NSTextField *tf;
|
||||
|
||||
tf = [v textField];
|
||||
[[v textField] setObjectValue: [item name]];
|
||||
|
||||
NSTextField *tf = [v statusTextField];
|
||||
|
||||
if ([item localURL]) {
|
||||
[tf setTextColor: [NSColor blackColor]];
|
||||
} else {
|
||||
[tf setTextColor: [NSColor redColor]];
|
||||
}
|
||||
|
||||
tf = [v statusTextField];
|
||||
[tf setObjectValue: [item statusDescription]];
|
||||
if ([item error]) {
|
||||
[tf setTextColor: [NSColor redColor]];
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// EjectButton.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 9/7/2020.
|
||||
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface EjectButton : NSButton
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// EjectButton.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 9/7/2020.
|
||||
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import "EjectButton.h"
|
||||
|
||||
static NSImage *ejectImage = nil;
|
||||
static NSImage *ejectHoverImage = nil;
|
||||
|
||||
@implementation EjectButton {
|
||||
NSTrackingRectTag _tracking;
|
||||
BOOL _mouse;
|
||||
}
|
||||
|
||||
+(void)initialize {
|
||||
// content tint only works with template images.
|
||||
ejectImage = [NSImage imageNamed: @"eject-16x16"];
|
||||
ejectHoverImage = [NSImage imageNamed: @"eject-hover-16x16"];
|
||||
[ejectImage setTemplate: YES];
|
||||
[ejectHoverImage setTemplate: YES];
|
||||
}
|
||||
|
||||
-(void)awakeFromNib {
|
||||
[super awakeFromNib];
|
||||
[self setButtonType: NSButtonTypeMomentaryPushIn];
|
||||
[self setImage: ejectImage];
|
||||
[self setAlternateImage: ejectHoverImage];
|
||||
// _tracking = [self addTrackingRect: [self bounds] owner: self userData: nil assumeInside: NO];
|
||||
}
|
||||
|
||||
-(void)viewDidMoveToWindow {
|
||||
if (!_tracking)
|
||||
_tracking = [self addTrackingRect: [self bounds] owner: self userData: nil assumeInside: NO];
|
||||
|
||||
}
|
||||
|
||||
-(void)mouseEntered:(NSEvent *)event {
|
||||
_mouse = YES;
|
||||
if ([self isEnabled])
|
||||
[self setImage: ejectHoverImage];
|
||||
}
|
||||
-(void)mouseExited:(NSEvent *)event {
|
||||
_mouse = NO;
|
||||
if ([self isEnabled])
|
||||
[self setImage: ejectImage];
|
||||
}
|
||||
|
||||
-(void)setEnabled:(BOOL)enabled {
|
||||
[super setEnabled: enabled];
|
||||
if (_mouse) {
|
||||
[self setImage: enabled ? ejectHoverImage : ejectImage];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
@@ -17,9 +17,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>release 5</string>
|
||||
<string>release 6</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>5</string>
|
||||
<string>6</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#import "Ample.h"
|
||||
#import "LaunchWindowController.h"
|
||||
#import "MediaViewController.h"
|
||||
#import "SlotViewController.h"
|
||||
#import "NewSlotViewController.h"
|
||||
#import "MachineViewController.h"
|
||||
#import "LogWindowController.h"
|
||||
|
||||
@@ -19,7 +19,7 @@ static NSString *kContextMachine = @"kContextMachine";
|
||||
|
||||
@interface LaunchWindowController ()
|
||||
@property (strong) IBOutlet MediaViewController *mediaController;
|
||||
@property (strong) IBOutlet SlotViewController *slotController;
|
||||
@property (strong) IBOutlet NewSlotViewController *slotController;
|
||||
@property (strong) IBOutlet MachineViewController *machineViewController;
|
||||
|
||||
@property (weak) IBOutlet NSView *machineView;
|
||||
@@ -31,11 +31,9 @@ static NSString *kContextMachine = @"kContextMachine";
|
||||
@property NSArray *args;
|
||||
|
||||
@property NSString *mameMachine;
|
||||
@property BOOL mameWindow;
|
||||
@property BOOL mameNoThrottle;
|
||||
@property BOOL mameDebug;
|
||||
@property BOOL mameSquarePixels;
|
||||
@property BOOL mameNoBlur;
|
||||
@property BOOL mameMouse;
|
||||
|
||||
@property BOOL mameAVI;
|
||||
@property BOOL mameWAV;
|
||||
@@ -47,6 +45,13 @@ static NSString *kContextMachine = @"kContextMachine";
|
||||
|
||||
@property NSInteger mameSpeed;
|
||||
|
||||
@property BOOL mameBGFX;
|
||||
@property NSInteger mameBackend;
|
||||
@property NSInteger mameEffects;
|
||||
|
||||
|
||||
@property NSInteger mameWindowMode;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -58,6 +63,8 @@ static NSString *kContextMachine = @"kContextMachine";
|
||||
|
||||
-(void)windowWillLoad {
|
||||
[self setMameSpeed: 1];
|
||||
[self setMameBGFX: YES];
|
||||
[self setMameMouse: NO];
|
||||
}
|
||||
|
||||
- (void)windowDidLoad {
|
||||
@@ -72,12 +79,14 @@ static NSString *kContextMachine = @"kContextMachine";
|
||||
|
||||
|
||||
NSArray *keys = @[
|
||||
@"mameMachine", @"mameWindow", @"mameSquarePixels", @"mameNoBlur",
|
||||
@"mameMachine", @"mameSquarePixels", @"mameWindowMode",
|
||||
@"mameMouse",
|
||||
@"mameDebug",
|
||||
@"mameSpeed", // @"mameNoThrottle",
|
||||
@"mameSpeed",
|
||||
@"mameAVI", @"mameAVIPath",
|
||||
@"mameWAV", @"mameWAVPath",
|
||||
@"mameVGM", @"mameVGMPath",
|
||||
@"mameBGFX", @"mameBackend", @"mameEffects",
|
||||
];
|
||||
|
||||
for (NSString *key in keys) {
|
||||
@@ -103,7 +112,7 @@ static NSString *kContextMachine = @"kContextMachine";
|
||||
} else if (context == (__bridge void *)kContextMachine) {
|
||||
NSString *machine = [_machineViewController machine];
|
||||
[self setMameMachine: machine];
|
||||
[_slotController setModel: machine];
|
||||
[_slotController setMachine: machine];
|
||||
[self buildCommandLine];
|
||||
} else {
|
||||
[super observeValueForKeyPath: keyPath ofObject: object change: change context: context];
|
||||
@@ -227,34 +236,90 @@ static NSString * JoinArguments(NSArray *argv) {
|
||||
|
||||
//[argv addObject: @"mame"];
|
||||
[argv addObject: _mameMachine];
|
||||
|
||||
if (_mameDebug) [argv addObject: @"-debug"];
|
||||
if (_mameWindow) {
|
||||
[argv addObject: @"-window"];
|
||||
[argv addObject: @"-nomax"];
|
||||
}
|
||||
|
||||
// -confirm_quit?
|
||||
[argv addObject: @"-skip_gameinfo"];
|
||||
|
||||
if (_mameWindow && _mameSquarePixels) {
|
||||
NSSize screen = [_slotController resolution];
|
||||
|
||||
NSString *res = [NSString stringWithFormat: @"%ux%u", (unsigned)screen.width, (unsigned)screen.height];
|
||||
NSString *aspect = [NSString stringWithFormat: @"%u:%u", (unsigned)screen.width, (unsigned)screen.height];
|
||||
|
||||
[argv addObject: @"-nounevenstretch"];
|
||||
|
||||
if (_mameMouse)
|
||||
[argv addObject: @"-mouse"]; // capture the mouse cursor when over the window.
|
||||
|
||||
if (_mameDebug) [argv addObject: @"-debug"];
|
||||
|
||||
[argv addObject: @"-resolution"];
|
||||
[argv addObject: res];
|
||||
|
||||
[argv addObject: @"-aspect"];
|
||||
[argv addObject: aspect];
|
||||
|
||||
if (_mameNoBlur) {
|
||||
[argv addObject: @"-video"];
|
||||
[argv addObject: @"soft"];
|
||||
}
|
||||
|
||||
/*
|
||||
* -window -nomax uses a 4:3 aspect ratio - ie, height = width * 3 / 4 (since height is always the limiting factor)
|
||||
* for square pixels, should pass the true size and true aspect ratio.
|
||||
*/
|
||||
|
||||
NSSize screen = [_slotController resolution];
|
||||
switch(_mameWindowMode) {
|
||||
case 0: // full screen;
|
||||
// no uneven stretch doesn't do anything in full-screen mode.
|
||||
break;
|
||||
case 1: // 1x
|
||||
// make the command-line a bit shorter and more pleasant.
|
||||
if (!_mameSquarePixels) {
|
||||
[argv addObject: @"-window"];
|
||||
[argv addObject: @"-nomax"];
|
||||
break;
|
||||
}
|
||||
|
||||
// drop through.
|
||||
case 2: // 2x
|
||||
case 3: // 3x
|
||||
|
||||
if (_mameSquarePixels) {
|
||||
// NSString *aspect = [NSString stringWithFormat: @"%u:%u", (unsigned)screen.width, (unsigned)screen.height];
|
||||
// [argv addObject: @"-aspect"];
|
||||
// [argv addObject: aspect];
|
||||
[argv addObject: @"-nounevenstretch"];
|
||||
} else {
|
||||
screen.height = round(screen.width * 3 / 4);
|
||||
}
|
||||
|
||||
[argv addObject: @"-window"];
|
||||
NSString *res = [NSString stringWithFormat: @"%ux%u",
|
||||
(unsigned)(_mameWindowMode * screen.width),
|
||||
(unsigned)(_mameWindowMode * screen.height)
|
||||
];
|
||||
|
||||
[argv addObject: @"-resolution"];
|
||||
[argv addObject: res];
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (_mameBGFX) {
|
||||
if (_mameBackend) {
|
||||
static NSString *Names[] = {
|
||||
@"-",
|
||||
@"metal",
|
||||
@"opengl",
|
||||
};
|
||||
[argv addObject: @"-bgfx_backend"];
|
||||
[argv addObject: Names[_mameBackend]];
|
||||
}
|
||||
if (_mameEffects) {
|
||||
static NSString *Names[] = {
|
||||
@"-",
|
||||
@"unfiltered",
|
||||
@"hlsl",
|
||||
@"crt-geom",
|
||||
@"crt-geom-deluxe",
|
||||
};
|
||||
[argv addObject: @"-bgfx_screen_chains"];
|
||||
[argv addObject: Names[_mameEffects]];
|
||||
}
|
||||
|
||||
} else {
|
||||
[argv addObject: @"-video"];
|
||||
[argv addObject: @"soft"];
|
||||
}
|
||||
|
||||
|
||||
// -speed n
|
||||
// -scale n
|
||||
|
||||
@@ -269,7 +334,6 @@ static NSString * JoinArguments(NSArray *argv) {
|
||||
[argv addObjectsFromArray: tmp];
|
||||
}
|
||||
|
||||
//if (_mameNoThrottle) [argv addObject: @"-nothrottle"];
|
||||
if (_mameSpeed < 0) {
|
||||
[argv addObject: @"-nothrottle"];
|
||||
} else if (_mameSpeed > 1) {
|
||||
|
||||
@@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@interface TablePathView : NSTableCellView
|
||||
@property (weak) IBOutlet NSPathControl *pathControl;
|
||||
@property (weak) IBOutlet NSButton *ejectButton;
|
||||
|
||||
@property (weak) IBOutlet NSImageView *dragHandle;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -9,7 +9,38 @@
|
||||
#import "MediaViewController.h"
|
||||
|
||||
|
||||
@implementation TablePathView
|
||||
@implementation TablePathView {
|
||||
NSTrackingRectTag _trackingRect;
|
||||
}
|
||||
|
||||
#if 0
|
||||
-(void)awakeFromNib {
|
||||
|
||||
// this is apparently necessary for setTintColor to work.
|
||||
NSImage *img;
|
||||
img = [_ejectButton image];
|
||||
[img setTemplate: YES];
|
||||
img = [_ejectButton alternateImage];
|
||||
[img setTemplate: YES];
|
||||
}
|
||||
#endif
|
||||
|
||||
-(void)viewDidMoveToSuperview {
|
||||
return;
|
||||
if (_trackingRect) {
|
||||
[self removeTrackingRect: _trackingRect];
|
||||
}
|
||||
NSRect rect = [_dragHandle frame];
|
||||
_trackingRect = [self addTrackingRect: rect owner: self userData: NULL assumeInside:NO];
|
||||
}
|
||||
|
||||
-(void)mouseEntered:(NSEvent *)event {
|
||||
[_dragHandle setHidden: NO];
|
||||
}
|
||||
|
||||
-(void)mouseExited:(NSEvent *)event {
|
||||
[_dragHandle setHidden: YES];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -121,25 +152,32 @@
|
||||
return YES;
|
||||
}
|
||||
|
||||
-(BOOL)pruneChildren {
|
||||
-(BOOL)pruneChildrenWithOutlineView: (NSOutlineView *)view {
|
||||
NSUInteger count = [_children count];
|
||||
BOOL delta = NO;
|
||||
if (_validCount == count) return NO;
|
||||
NSMutableIndexSet *set = [NSMutableIndexSet new];
|
||||
|
||||
for (NSInteger i = _validCount; i < count; ++i) {
|
||||
MediaItem *item = [_children lastObject];
|
||||
if ([item url]) break;
|
||||
|
||||
[_children removeLastObject];
|
||||
[set addIndex: [_children count]];
|
||||
|
||||
delta = YES;
|
||||
}
|
||||
if (delta) {
|
||||
|
||||
if (view)
|
||||
[view removeItemsAtIndexes: set inParent: self withAnimation: NSTableViewAnimationEffectFade];
|
||||
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
-(BOOL)moveItemFrom: (NSInteger)oldIndex to: (NSInteger)newIndex {
|
||||
-(BOOL)moveItemFrom: (NSInteger)oldIndex to: (NSInteger)newIndex outlineView: (NSOutlineView *)view {
|
||||
if (newIndex == oldIndex) return NO;
|
||||
NSUInteger count = [_children count];
|
||||
if (oldIndex >= count) return NO;
|
||||
@@ -152,15 +190,20 @@
|
||||
} else {
|
||||
[_children insertObject: item atIndex: newIndex];
|
||||
}
|
||||
|
||||
if (view) [view moveItemAtIndex: oldIndex inParent: self toIndex: newIndex inParent: self];
|
||||
|
||||
// re-index and re-validate.
|
||||
unsigned ix = 0;
|
||||
for (MediaItem *item in _children) {
|
||||
[item setIndex: ix];
|
||||
[item setValid: ix < _validCount];
|
||||
|
||||
[view reloadItem: item];
|
||||
|
||||
++ix;
|
||||
}
|
||||
[self pruneChildren];
|
||||
[self pruneChildrenWithOutlineView: view];
|
||||
//[view reloadItem: self reloadChildren: YES];
|
||||
return YES;
|
||||
}
|
||||
@end
|
||||
@@ -204,6 +247,7 @@
|
||||
NSDictionary *options = @{ NSValueTransformerBindingOption: t};
|
||||
[button bind: @"enabled" toObject: self withKeyPath: @"url" options: options];
|
||||
|
||||
|
||||
NSColor *tintColor = nil;
|
||||
if (!_valid) tintColor = [NSColor redColor];
|
||||
[button setContentTintColor: tintColor];
|
||||
@@ -307,6 +351,9 @@ enum {
|
||||
}
|
||||
_root = tmp;
|
||||
|
||||
// todo - switch this to use removeItemsAtIndexes:inParent:withAnimation:
|
||||
// and insertItemsAtIndexes:inParent:withAnimation:
|
||||
|
||||
[_outlineView reloadData];
|
||||
[_outlineView expandItem: nil expandChildren: YES];
|
||||
}
|
||||
@@ -559,10 +606,12 @@ static NSString *kDragType = @"private.ample.media";
|
||||
|
||||
NSInteger oldIndex = indexes[1];
|
||||
|
||||
[cat moveItemFrom: oldIndex to: index];
|
||||
[_outlineView beginUpdates];
|
||||
[cat moveItemFrom: oldIndex to: index outlineView: _outlineView];
|
||||
[_outlineView endUpdates];
|
||||
[self rebuildArgs];
|
||||
|
||||
[_outlineView reloadItem: cat reloadChildren: YES];
|
||||
//[_outlineView reloadItem: cat reloadChildren: YES];
|
||||
return YES;
|
||||
|
||||
}
|
||||
@@ -584,8 +633,14 @@ static NSString *kDragType = @"private.ample.media";
|
||||
// if item is invalid, should attempt to remove...
|
||||
if (![item valid]) {
|
||||
MediaCategory *cat = [_outlineView parentForItem: item];
|
||||
if ([cat pruneChildren]) [self rebuildRoot];
|
||||
[_outlineView beginUpdates];
|
||||
[cat pruneChildrenWithOutlineView: _outlineView];
|
||||
[_outlineView endUpdates];
|
||||
}
|
||||
|
||||
// todo -- if this eliminates a category completely, it will still be included
|
||||
// since we're now using animaations instead of reloading.
|
||||
|
||||
[self rebuildArgs];
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// NewSlotViewController.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 9/9/2020.
|
||||
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface NewSlotViewController : NSViewController
|
||||
|
||||
@property NSArray *args;
|
||||
@property NSDictionary *media;
|
||||
@property NSSize resolution;
|
||||
@property (nonatomic) NSString *machine;
|
||||
@end
|
||||
|
||||
@interface NewSlotViewController (OutlineView) <NSOutlineViewDelegate, NSOutlineViewDataSource>
|
||||
|
||||
@end
|
||||
|
||||
@interface SlotTableCellView : NSTableCellView
|
||||
|
||||
@property (weak) IBOutlet NSPopUpButton *menuButton;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface SlotItem : NSObject
|
||||
@property unsigned index;
|
||||
@property NSArray *children;
|
||||
@property NSArray *menuItems;
|
||||
@property NSInteger defaultIndex;
|
||||
@property NSInteger selectedIndex;
|
||||
|
||||
-(NSDictionary *)selectedItem;
|
||||
-(NSDictionary *)selectedMedia;
|
||||
-(BOOL)hasDefault;
|
||||
|
||||
-(void)reset;
|
||||
@end
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,510 @@
|
||||
//
|
||||
// NewSlotViewController.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 9/9/2020.
|
||||
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NewSlotViewController.h"
|
||||
|
||||
static NSFont *ItalicMenuFont(void) {
|
||||
NSFont *font = [NSFont menuFontOfSize: 0];
|
||||
NSFontDescriptor *fd = [font fontDescriptor];
|
||||
NSFontDescriptor *fd2 = [fd fontDescriptorWithSymbolicTraits: NSFontDescriptorTraitItalic];
|
||||
return [NSFont fontWithDescriptor: fd2 size: [font pointSize]];
|
||||
}
|
||||
|
||||
static NSAttributedString *ItalicMenuString(NSString *s) {
|
||||
static NSDictionary *attr = nil;
|
||||
if (!attr) {
|
||||
attr = @{
|
||||
NSFontAttributeName: ItalicMenuFont()
|
||||
};
|
||||
}
|
||||
return [[NSAttributedString alloc] initWithString: s attributes: attr];
|
||||
}
|
||||
|
||||
@implementation SlotTableCellView
|
||||
|
||||
@end
|
||||
|
||||
@implementation SlotItem
|
||||
|
||||
-(id)init {
|
||||
_defaultIndex = -1;
|
||||
_selectedIndex = -1;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
-(NSString *)label {
|
||||
static NSString *Names[] = {
|
||||
@"RAM:",
|
||||
@"Slot 0:",
|
||||
@"Slot 1:",
|
||||
@"Slot 2:",
|
||||
@"Slot 3:",
|
||||
@"Slot 4:",
|
||||
@"Slot 5:",
|
||||
@"Slot 6:",
|
||||
@"Slot 7:",
|
||||
@"Expansion:",
|
||||
@"Auxiliary:",
|
||||
@"RS232:",
|
||||
@"Game I/O:",
|
||||
@"Modem:",
|
||||
@"Printer:"
|
||||
};
|
||||
return Names[_index];
|
||||
}
|
||||
|
||||
-(NSString *)flag {
|
||||
|
||||
static NSString *Names[] = {
|
||||
@"-ramsize",
|
||||
@"-sl0",
|
||||
@"-sl1",
|
||||
@"-sl2",
|
||||
@"-sl2",
|
||||
@"-sl4",
|
||||
@"-sl5",
|
||||
@"-sl6",
|
||||
@"-sl7",
|
||||
@"-exp",
|
||||
@"-aux",
|
||||
@"-rs232",
|
||||
@"-gameio",
|
||||
@"-modem",
|
||||
@"-printer"
|
||||
};
|
||||
return Names[_index];
|
||||
|
||||
}
|
||||
|
||||
-(void)buildMenuWithSelectedValue: (NSString *)value {
|
||||
|
||||
NSMutableArray *tmp = [NSMutableArray arrayWithCapacity: [_children count]];
|
||||
_defaultIndex = -1;
|
||||
_selectedIndex = -1;
|
||||
|
||||
int ix = 0;
|
||||
for (NSDictionary *d in _children) {
|
||||
NSString *title = [d objectForKey: @"description"];
|
||||
NSMenuItem *mi = [[NSMenuItem alloc] initWithTitle: title action: NULL keyEquivalent: @""];
|
||||
|
||||
// row 0 for slots is -- None -- which should be nil...
|
||||
[mi setRepresentedObject: d];
|
||||
|
||||
|
||||
BOOL disabled = [(NSNumber *)[d objectForKey: @"disabled"] boolValue];
|
||||
if (disabled) {
|
||||
[mi setEnabled: NO];
|
||||
}
|
||||
|
||||
BOOL def = [(NSNumber *)[d objectForKey: @"default"] boolValue];
|
||||
if (def) {
|
||||
[mi setAttributedTitle: ItalicMenuString(title)];
|
||||
_defaultIndex = ix;
|
||||
}
|
||||
|
||||
if (value) {
|
||||
NSString *v = [d objectForKey: @"value"];
|
||||
if ([value compare: v] == NSOrderedSame) {
|
||||
_selectedIndex = ix;
|
||||
}
|
||||
}
|
||||
|
||||
[tmp addObject: mi];
|
||||
++ix;
|
||||
}
|
||||
|
||||
|
||||
[self setMenuItems: tmp];
|
||||
if (_selectedIndex < 0) _selectedIndex = _defaultIndex;
|
||||
if (_selectedIndex < 0) _selectedIndex = 0;
|
||||
}
|
||||
|
||||
-(void)reset {
|
||||
[self setSelectedIndex: _defaultIndex >= 0 ? _defaultIndex : 0];
|
||||
}
|
||||
|
||||
-(NSDictionary *)selectedItem {
|
||||
if (_selectedIndex < 0) return nil;
|
||||
return [_children objectAtIndex: _selectedIndex];
|
||||
}
|
||||
|
||||
-(NSDictionary *)selectedMedia {
|
||||
if (_selectedIndex < 0) return nil;
|
||||
NSDictionary *d = [_children objectAtIndex: _selectedIndex];
|
||||
return [d objectForKey: @"media"];
|
||||
}
|
||||
|
||||
-(BOOL)hasDefault {
|
||||
return _defaultIndex >= 0;
|
||||
}
|
||||
|
||||
-(void)prepareView: (SlotTableCellView *)view {
|
||||
|
||||
NSPopUpButton *button = [view menuButton];
|
||||
NSTextField *text = [view textField];
|
||||
|
||||
[text setObjectValue: [self label]];
|
||||
|
||||
[button unbind: @"selectedIndex"];
|
||||
[[button menu] setItemArray: _menuItems];
|
||||
[button bind: @"selectedIndex" toObject: self withKeyPath: @"selectedIndex" options: nil];
|
||||
[button setTag: _index];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@interface NewSlotViewController ()
|
||||
@property (weak) IBOutlet NSOutlineView *outlineView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation NewSlotViewController {
|
||||
NSMutableArray *_root;
|
||||
|
||||
unsigned _slots_explicit;
|
||||
unsigned _slots_valid;
|
||||
unsigned _slots_default;
|
||||
|
||||
NSDictionary *_slot_object[16];
|
||||
NSDictionary *_slot_media[16];
|
||||
NSString *_slot_value[16]; // when explicitely set.
|
||||
NSDictionary *_machine_media;
|
||||
|
||||
NSDictionary *_machine_data;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do view setup here.
|
||||
|
||||
_root = [NSMutableArray new];
|
||||
}
|
||||
|
||||
-(void)resetMachine {
|
||||
|
||||
[_root removeAllObjects];
|
||||
[_outlineView reloadData];
|
||||
|
||||
_slots_valid = 0;
|
||||
_slots_explicit = 0;
|
||||
_slots_default = 0;
|
||||
_machine_media = nil;
|
||||
_machine_data = nil;
|
||||
|
||||
for (unsigned i = 0; i < 16; ++i) {
|
||||
_slot_media[i] = nil;
|
||||
_slot_object[i] = nil;
|
||||
_slot_value[i] = nil;
|
||||
}
|
||||
|
||||
[self setResolution: NSMakeSize(0, 0)];
|
||||
[self setArgs: @[]];
|
||||
[self setMedia: @{}];
|
||||
}
|
||||
|
||||
-(void)loadMachine {
|
||||
|
||||
static NSString *Keys[] = {
|
||||
@"ram",
|
||||
@"sl0", @"sl1", @"sl2", @"sl3",
|
||||
@"sl4", @"sl5", @"sl6", @"sl7",
|
||||
@"exp", @"aux", @"rs232",
|
||||
@"gameio", @"printer", @"modem",
|
||||
};
|
||||
static unsigned SizeofKeys = sizeof(Keys)/sizeof(Keys[0]);
|
||||
|
||||
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
NSURL *url= [bundle URLForResource: _machine withExtension: @"plist"];
|
||||
|
||||
NSDictionary *d = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
|
||||
if (!d) {
|
||||
[self resetMachine];
|
||||
return;
|
||||
}
|
||||
|
||||
NSArray *r = [d objectForKey: @"resolution"];
|
||||
NSSize res = NSMakeSize(0, 0);
|
||||
if (r) {
|
||||
res.width = [(NSNumber *)[r objectAtIndex: 0 /*@"width"*/] doubleValue];
|
||||
res.height = [(NSNumber *)[r objectAtIndex: 1 /*@"height"*/] doubleValue];
|
||||
}
|
||||
[self setResolution: res];
|
||||
|
||||
_slots_valid = 0;
|
||||
//_slots_explicit = 0;
|
||||
_slots_default = 0;
|
||||
|
||||
_machine_media = [d objectForKey: @"media"];
|
||||
|
||||
_machine_data = d;
|
||||
|
||||
[_root removeAllObjects];
|
||||
|
||||
unsigned mask = 1;
|
||||
for (unsigned i = 0; i < SizeofKeys; ++i, mask <<= 1) {
|
||||
|
||||
NSString *v = [_slot_object[i] objectForKey: @"value"];
|
||||
_slot_media[i] = nil;
|
||||
_slot_object[i] = nil;
|
||||
if (v) _slot_value[i] = v;
|
||||
|
||||
NSArray *options = [d objectForKey: Keys[i]];
|
||||
if (!options) continue;
|
||||
|
||||
_slots_valid |= mask;
|
||||
|
||||
SlotItem *item = [SlotItem new];
|
||||
[item setIndex: i];
|
||||
[item setChildren: options];
|
||||
[item buildMenuWithSelectedValue: _slot_value[i]];
|
||||
|
||||
if ([item defaultIndex] >= 0) {
|
||||
_slots_default |= mask;
|
||||
}
|
||||
// default media...
|
||||
_slot_media[i] = [item selectedMedia];
|
||||
[_root addObject: item];
|
||||
}
|
||||
|
||||
|
||||
|
||||
[_outlineView reloadData];
|
||||
[self rebuildMedia];
|
||||
[self rebuildArgs];
|
||||
}
|
||||
|
||||
-(void)setMachine: (NSString *)machine {
|
||||
if (_machine == machine) return;
|
||||
if (_machine && machine && [machine compare: _machine] == NSOrderedSame) return;
|
||||
_machine = machine;
|
||||
|
||||
if (!machine) {
|
||||
[self resetMachine];
|
||||
return;
|
||||
}
|
||||
[self loadMachine];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
-(void)rebuildMedia {
|
||||
|
||||
|
||||
#define _(var, o) var += [[o objectForKey: @ # var ] unsignedIntValue]
|
||||
|
||||
unsigned cass = 0;
|
||||
unsigned cdrm = 0;
|
||||
unsigned hard = 0;
|
||||
unsigned flop_5_25 = 0;
|
||||
unsigned flop_3_5 = 0;
|
||||
|
||||
#if 0
|
||||
for (SlotItem *item in _root) {
|
||||
NSDictionary *tmp = [item selectedMedia];
|
||||
if (tmp) {
|
||||
_(cass, tmp);
|
||||
_(cdrm, tmp);
|
||||
_(hard, tmp);
|
||||
_(flop_5_25, tmp);
|
||||
_(flop_3_5, tmp);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if 1
|
||||
unsigned mask = 1;
|
||||
for (unsigned i = 0; i < 16; ++i, mask <<= 1) {
|
||||
|
||||
if (_slots_valid & mask) {
|
||||
NSDictionary *tmp = _slot_media[i];
|
||||
if (tmp) {
|
||||
_(cass, tmp);
|
||||
_(cdrm, tmp);
|
||||
_(hard, tmp);
|
||||
_(flop_5_25, tmp);
|
||||
_(flop_3_5, tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
NSDictionary *tmp = _machine_media;
|
||||
if (tmp) {
|
||||
_(cass, tmp);
|
||||
_(cdrm, tmp);
|
||||
_(hard, tmp);
|
||||
_(flop_5_25, tmp);
|
||||
_(flop_3_5, tmp);
|
||||
}
|
||||
|
||||
[self setMedia: @{
|
||||
@"cass": @(cass),
|
||||
@"cdrm": @(cdrm),
|
||||
@"hard": @(hard),
|
||||
@"flop_5_25": @(flop_5_25),
|
||||
@"flop_3_5": @(flop_3_5),
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
|
||||
static NSString *SlotFlagForIndex(unsigned index){
|
||||
static NSString *Names[] = {
|
||||
@"-ramsize",
|
||||
@"-sl0",
|
||||
@"-sl1",
|
||||
@"-sl2",
|
||||
@"-sl2",
|
||||
@"-sl4",
|
||||
@"-sl5",
|
||||
@"-sl6",
|
||||
@"-sl7",
|
||||
@"-exp",
|
||||
@"-aux",
|
||||
@"-rs232",
|
||||
@"-gameio",
|
||||
@"-modem",
|
||||
@"-printer"
|
||||
};
|
||||
return Names[index];
|
||||
}
|
||||
|
||||
-(void)rebuildArgs {
|
||||
|
||||
NSMutableArray *args = [NSMutableArray new];
|
||||
|
||||
for (SlotItem *item in _root) {
|
||||
NSDictionary *d = [item selectedItem];
|
||||
if ([(NSNumber *)[d objectForKey: @"default"] boolValue]) {
|
||||
continue; // default, don't include it.
|
||||
}
|
||||
NSString *value = [d objectForKey: @"value"];
|
||||
|
||||
if (!value || ![value length]) {
|
||||
if (![item hasDefault]) continue;
|
||||
value = @"";
|
||||
}
|
||||
[args addObject: [item flag]];
|
||||
[args addObject: value];
|
||||
}
|
||||
|
||||
#if 0
|
||||
unsigned mask = 1;
|
||||
for (unsigned i = 0 ; i < 16; ++i, mask <<= 1) {
|
||||
|
||||
if (!(_slots_valid & mask)) continue;
|
||||
NSDictionary *d = _slot_object[i];
|
||||
|
||||
if ([(NSNumber *)[d objectForKey: @"default"] boolValue]) {
|
||||
continue; // default, don't include it.
|
||||
}
|
||||
NSString *value = [d objectForKey: @"value"];
|
||||
|
||||
if (!value) {
|
||||
// if slot has a default, need to overwrite it.
|
||||
if (!(_slots_default & mask)) continue;
|
||||
value = @"";
|
||||
}
|
||||
|
||||
[args addObject: SlotFlagForIndex(i)];
|
||||
[args addObject: value];
|
||||
}
|
||||
#endif
|
||||
[self setArgs: args];
|
||||
}
|
||||
|
||||
- (IBAction)menuChanged:(NSPopUpButton *)sender {
|
||||
|
||||
unsigned index = (unsigned)[sender tag];
|
||||
unsigned mask = 1 << index;
|
||||
|
||||
|
||||
// index 0 = ram = special case...
|
||||
|
||||
NSDictionary *d = [[sender selectedItem] representedObject];
|
||||
|
||||
_slots_explicit |= mask;
|
||||
_slot_value[index] = [d objectForKey: @"value"];
|
||||
//_slots_default &= ~mask;
|
||||
|
||||
//_slot_object[index] = d;
|
||||
|
||||
// media...
|
||||
NSDictionary *newMedia = [d objectForKey: @"media"];
|
||||
NSDictionary *oldMedia = _slot_media[index];
|
||||
|
||||
if (newMedia != oldMedia) {
|
||||
_slot_media[index] = newMedia;
|
||||
[self rebuildMedia];
|
||||
}
|
||||
|
||||
[self rebuildArgs];
|
||||
}
|
||||
-(IBAction)resetSlots:(id)sender {
|
||||
|
||||
_slots_explicit = 0;
|
||||
for (unsigned i = 0; i < 16; ++i) {
|
||||
_slot_media[i] = nil;
|
||||
_slot_object[i] = nil;
|
||||
_slot_value[i] = nil;
|
||||
}
|
||||
for (SlotItem *item in _root) {
|
||||
[item reset];
|
||||
// if children, reset them too...
|
||||
unsigned index = [item index];
|
||||
_slot_media[index] = [item selectedMedia];
|
||||
}
|
||||
//[_outlineView reloadData]; // will need to reload if changing the default makes children disappear.
|
||||
|
||||
[self rebuildMedia];
|
||||
[self rebuildArgs];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation NewSlotViewController (OutlineView)
|
||||
|
||||
|
||||
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
|
||||
|
||||
if (!item) return [_root count];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
|
||||
if (!item) return [_root objectAtIndex: index];
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(SlotItem *)item {
|
||||
|
||||
SlotTableCellView *v = [outlineView makeViewWithIdentifier: @"MenuCell" owner: self];
|
||||
|
||||
[item prepareView: v];
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
||||
@@ -9,74 +9,92 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4096</integer>
|
||||
<key>description</key>
|
||||
<string>4K</string>
|
||||
<key>value</key>
|
||||
<string>4K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8192</integer>
|
||||
<key>description</key>
|
||||
<string>8K</string>
|
||||
<key>value</key>
|
||||
<string>8K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>12288</integer>
|
||||
<key>description</key>
|
||||
<string>12K</string>
|
||||
<key>value</key>
|
||||
<string>12K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>20480</integer>
|
||||
<key>description</key>
|
||||
<string>20K</string>
|
||||
<key>value</key>
|
||||
<string>20K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>24576</integer>
|
||||
<key>description</key>
|
||||
<string>24K</string>
|
||||
<key>value</key>
|
||||
<string>24K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>36864</integer>
|
||||
<key>description</key>
|
||||
<string>36K</string>
|
||||
<key>value</key>
|
||||
<string>36K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,98 +9,122 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4096</integer>
|
||||
<key>description</key>
|
||||
<string>4K</string>
|
||||
<key>value</key>
|
||||
<string>4K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8192</integer>
|
||||
<key>description</key>
|
||||
<string>8K</string>
|
||||
<key>value</key>
|
||||
<string>8K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>12288</integer>
|
||||
<key>description</key>
|
||||
<string>12K</string>
|
||||
<key>value</key>
|
||||
<string>12K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>20480</integer>
|
||||
<key>description</key>
|
||||
<string>20K</string>
|
||||
<key>value</key>
|
||||
<string>20K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>24576</integer>
|
||||
<key>description</key>
|
||||
<string>24K</string>
|
||||
<key>value</key>
|
||||
<string>24K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>28672</integer>
|
||||
<key>description</key>
|
||||
<string>28K</string>
|
||||
<key>value</key>
|
||||
<string>28K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>36864</integer>
|
||||
<key>description</key>
|
||||
<string>36K</string>
|
||||
<key>value</key>
|
||||
<string>36K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>40960</integer>
|
||||
<key>description</key>
|
||||
<string>40K</string>
|
||||
<key>value</key>
|
||||
<string>40K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>45056</integer>
|
||||
<key>description</key>
|
||||
<string>44K</string>
|
||||
<key>value</key>
|
||||
<string>44K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,74 +9,92 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4096</integer>
|
||||
<key>description</key>
|
||||
<string>4K</string>
|
||||
<key>value</key>
|
||||
<string>4K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8192</integer>
|
||||
<key>description</key>
|
||||
<string>8K</string>
|
||||
<key>value</key>
|
||||
<string>8K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>12288</integer>
|
||||
<key>description</key>
|
||||
<string>12K</string>
|
||||
<key>value</key>
|
||||
<string>12K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>20480</integer>
|
||||
<key>description</key>
|
||||
<string>20K</string>
|
||||
<key>value</key>
|
||||
<string>20K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>24576</integer>
|
||||
<key>description</key>
|
||||
<string>24K</string>
|
||||
<key>value</key>
|
||||
<string>24K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>36864</integer>
|
||||
<key>description</key>
|
||||
<string>36K</string>
|
||||
<key>value</key>
|
||||
<string>36K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,42 +9,52 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>393216</integer>
|
||||
<key>description</key>
|
||||
<string>384K</string>
|
||||
<key>value</key>
|
||||
<string>384K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>655360</integer>
|
||||
<key>description</key>
|
||||
<string>640K</string>
|
||||
<key>value</key>
|
||||
<string>640K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>917504</integer>
|
||||
<key>description</key>
|
||||
<string>896K</string>
|
||||
<key>value</key>
|
||||
<string>896K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1179648</integer>
|
||||
<key>description</key>
|
||||
<string>1152K</string>
|
||||
<key>value</key>
|
||||
<string>1152K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,66 +9,82 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1048576</integer>
|
||||
<key>description</key>
|
||||
<string>1M</string>
|
||||
<key>value</key>
|
||||
<string>1M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>2097152</integer>
|
||||
<key>description</key>
|
||||
<string>2M</string>
|
||||
<key>value</key>
|
||||
<string>2M</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>3145728</integer>
|
||||
<key>description</key>
|
||||
<string>3M</string>
|
||||
<key>value</key>
|
||||
<string>3M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4194304</integer>
|
||||
<key>description</key>
|
||||
<string>4M</string>
|
||||
<key>value</key>
|
||||
<string>4M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>5242880</integer>
|
||||
<key>description</key>
|
||||
<string>5M</string>
|
||||
<key>value</key>
|
||||
<string>5M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>6291456</integer>
|
||||
<key>description</key>
|
||||
<string>6M</string>
|
||||
<key>value</key>
|
||||
<string>6M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>7340032</integer>
|
||||
<key>description</key>
|
||||
<string>7M</string>
|
||||
<key>value</key>
|
||||
<string>7M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8388608</integer>
|
||||
<key>description</key>
|
||||
<string>8M</string>
|
||||
<key>value</key>
|
||||
<string>8M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,98 +9,122 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>262144</integer>
|
||||
<key>description</key>
|
||||
<string>256K</string>
|
||||
<key>value</key>
|
||||
<string>256K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>524288</integer>
|
||||
<key>description</key>
|
||||
<string>512K</string>
|
||||
<key>value</key>
|
||||
<string>512K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>786432</integer>
|
||||
<key>description</key>
|
||||
<string>768K</string>
|
||||
<key>value</key>
|
||||
<string>768K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1048576</integer>
|
||||
<key>description</key>
|
||||
<string>1M</string>
|
||||
<key>value</key>
|
||||
<string>1M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1310720</integer>
|
||||
<key>description</key>
|
||||
<string>1280K</string>
|
||||
<key>value</key>
|
||||
<string>1280K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>2097152</integer>
|
||||
<key>description</key>
|
||||
<string>2M</string>
|
||||
<key>value</key>
|
||||
<string>2M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>3145728</integer>
|
||||
<key>description</key>
|
||||
<string>3M</string>
|
||||
<key>value</key>
|
||||
<string>3M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4194304</integer>
|
||||
<key>description</key>
|
||||
<string>4M</string>
|
||||
<key>value</key>
|
||||
<string>4M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>5242880</integer>
|
||||
<key>description</key>
|
||||
<string>5M</string>
|
||||
<key>value</key>
|
||||
<string>5M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>6291456</integer>
|
||||
<key>description</key>
|
||||
<string>6M</string>
|
||||
<key>value</key>
|
||||
<string>6M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>7340032</integer>
|
||||
<key>description</key>
|
||||
<string>7M</string>
|
||||
<key>value</key>
|
||||
<string>7M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8388608</integer>
|
||||
<key>description</key>
|
||||
<string>8M</string>
|
||||
<key>value</key>
|
||||
<string>8M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,98 +9,122 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>262144</integer>
|
||||
<key>description</key>
|
||||
<string>256K</string>
|
||||
<key>value</key>
|
||||
<string>256K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>524288</integer>
|
||||
<key>description</key>
|
||||
<string>512K</string>
|
||||
<key>value</key>
|
||||
<string>512K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>786432</integer>
|
||||
<key>description</key>
|
||||
<string>768K</string>
|
||||
<key>value</key>
|
||||
<string>768K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1048576</integer>
|
||||
<key>description</key>
|
||||
<string>1M</string>
|
||||
<key>value</key>
|
||||
<string>1M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1310720</integer>
|
||||
<key>description</key>
|
||||
<string>1280K</string>
|
||||
<key>value</key>
|
||||
<string>1280K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>2097152</integer>
|
||||
<key>description</key>
|
||||
<string>2M</string>
|
||||
<key>value</key>
|
||||
<string>2M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>3145728</integer>
|
||||
<key>description</key>
|
||||
<string>3M</string>
|
||||
<key>value</key>
|
||||
<string>3M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4194304</integer>
|
||||
<key>description</key>
|
||||
<string>4M</string>
|
||||
<key>value</key>
|
||||
<string>4M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>5242880</integer>
|
||||
<key>description</key>
|
||||
<string>5M</string>
|
||||
<key>value</key>
|
||||
<string>5M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>6291456</integer>
|
||||
<key>description</key>
|
||||
<string>6M</string>
|
||||
<key>value</key>
|
||||
<string>6M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>7340032</integer>
|
||||
<key>description</key>
|
||||
<string>7M</string>
|
||||
<key>value</key>
|
||||
<string>7M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8388608</integer>
|
||||
<key>description</key>
|
||||
<string>8M</string>
|
||||
<key>value</key>
|
||||
<string>8M</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>262144</integer>
|
||||
<key>description</key>
|
||||
<string>256K</string>
|
||||
<key>value</key>
|
||||
<string>256K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>524288</integer>
|
||||
<key>description</key>
|
||||
<string>512K</string>
|
||||
<key>value</key>
|
||||
<string>512K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,74 +9,92 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>4096</integer>
|
||||
<key>description</key>
|
||||
<string>4K</string>
|
||||
<key>value</key>
|
||||
<string>4K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>8192</integer>
|
||||
<key>description</key>
|
||||
<string>8K</string>
|
||||
<key>value</key>
|
||||
<string>8K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>12288</integer>
|
||||
<key>description</key>
|
||||
<string>12K</string>
|
||||
<key>value</key>
|
||||
<string>12K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>20480</integer>
|
||||
<key>description</key>
|
||||
<string>20K</string>
|
||||
<key>value</key>
|
||||
<string>20K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>24576</integer>
|
||||
<key>description</key>
|
||||
<string>24K</string>
|
||||
<key>value</key>
|
||||
<string>24K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>36864</integer>
|
||||
<key>description</key>
|
||||
<string>36K</string>
|
||||
<key>value</key>
|
||||
<string>36K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,42 +9,52 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>393216</integer>
|
||||
<key>description</key>
|
||||
<string>384K</string>
|
||||
<key>value</key>
|
||||
<string>384K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>655360</integer>
|
||||
<key>description</key>
|
||||
<string>640K</string>
|
||||
<key>value</key>
|
||||
<string>640K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>917504</integer>
|
||||
<key>description</key>
|
||||
<string>896K</string>
|
||||
<key>value</key>
|
||||
<string>896K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1179648</integer>
|
||||
<key>description</key>
|
||||
<string>1152K</string>
|
||||
<key>value</key>
|
||||
<string>1152K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,42 +9,52 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>393216</integer>
|
||||
<key>description</key>
|
||||
<string>384K</string>
|
||||
<key>value</key>
|
||||
<string>384K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>655360</integer>
|
||||
<key>description</key>
|
||||
<string>640K</string>
|
||||
<key>value</key>
|
||||
<string>640K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>917504</integer>
|
||||
<key>description</key>
|
||||
<string>896K</string>
|
||||
<key>value</key>
|
||||
<string>896K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1179648</integer>
|
||||
<key>description</key>
|
||||
<string>1152K</string>
|
||||
<key>value</key>
|
||||
<string>1152K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,42 +9,52 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>393216</integer>
|
||||
<key>description</key>
|
||||
<string>384K</string>
|
||||
<key>value</key>
|
||||
<string>384K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>655360</integer>
|
||||
<key>description</key>
|
||||
<string>640K</string>
|
||||
<key>value</key>
|
||||
<string>640K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>917504</integer>
|
||||
<key>description</key>
|
||||
<string>896K</string>
|
||||
<key>value</key>
|
||||
<string>896K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>1179648</integer>
|
||||
<key>description</key>
|
||||
<string>1152K</string>
|
||||
<key>value</key>
|
||||
<string>1152K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -140,76 +140,6 @@
|
||||
<key>value</key>
|
||||
<string>apple3</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser</string>
|
||||
<key>value</key>
|
||||
<string>laser128</string>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser 128 (version 4.2)</string>
|
||||
<key>value</key>
|
||||
<string>laser128</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser //c</string>
|
||||
<key>value</key>
|
||||
<string>laser2c</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser 128ex (version 4.5)</string>
|
||||
<key>value</key>
|
||||
<string>las128ex</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser 128ex2 (version 6.1)</string>
|
||||
<key>value</key>
|
||||
<string>las128e2</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer</string>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer 2000</string>
|
||||
<key>value</key>
|
||||
<string>cec2000</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer E</string>
|
||||
<key>value</key>
|
||||
<string>cece</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer G</string>
|
||||
<key>value</key>
|
||||
<string>cecg</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer I</string>
|
||||
<key>value</key>
|
||||
<string>ceci</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer M</string>
|
||||
<key>value</key>
|
||||
<string>cecm</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>II Clones</string>
|
||||
@@ -221,18 +151,6 @@
|
||||
<key>value</key>
|
||||
<string>ace100</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Agat-7</string>
|
||||
<key>value</key>
|
||||
<string>agat7</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Agat-9</string>
|
||||
<key>value</key>
|
||||
<string>agat9</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Albert</string>
|
||||
@@ -368,5 +286,96 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser</string>
|
||||
<key>value</key>
|
||||
<string>laser128</string>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser //c</string>
|
||||
<key>value</key>
|
||||
<string>laser2c</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser 128 (version 4.2)</string>
|
||||
<key>value</key>
|
||||
<string>laser128</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser 128ex (version 4.5)</string>
|
||||
<key>value</key>
|
||||
<string>las128ex</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Laser 128ex2 (version 6.1)</string>
|
||||
<key>value</key>
|
||||
<string>las128e2</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Agat</string>
|
||||
<key>value</key>
|
||||
<string>agat7</string>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Agat-7</string>
|
||||
<key>value</key>
|
||||
<string>agat7</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>Agat-9</string>
|
||||
<key>value</key>
|
||||
<string>agat9</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer</string>
|
||||
<key>children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer 2000</string>
|
||||
<key>value</key>
|
||||
<string>cec2000</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer E</string>
|
||||
<key>value</key>
|
||||
<string>cece</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer G</string>
|
||||
<key>value</key>
|
||||
<string>cecg</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer I</string>
|
||||
<key>value</key>
|
||||
<string>ceci</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>China Education Computer M</string>
|
||||
<key>value</key>
|
||||
<string>cecm</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</plist>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
<string>a2vuliie</string>
|
||||
<string>a2zipdrv</string>
|
||||
<string>a3fdc</string>
|
||||
<string>agat_fdc</string>
|
||||
<string>apple1</string>
|
||||
<string>apple2</string>
|
||||
<string>apple2c</string>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,26 +9,32 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>49152</integer>
|
||||
<key>description</key>
|
||||
<string>48K</string>
|
||||
<key>value</key>
|
||||
<string>48K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
<key>ram</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<key>intValue</key>
|
||||
<integer>65536</integer>
|
||||
<key>description</key>
|
||||
<string>64K</string>
|
||||
<key>value</key>
|
||||
<string>64K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
@@ -175,10 +175,10 @@ static void DeactivateMenus(NSArray *items, NSPopUpButton *button) {
|
||||
// if ram was explicitly set, try to keep it.
|
||||
|
||||
for (NSDictionary *d in items) {
|
||||
unsigned size = [(NSNumber *)[d objectForKey: @"value"] unsignedIntValue];
|
||||
unsigned size = [(NSNumber *)[d objectForKey: @"intValue"] unsignedIntValue];
|
||||
if (size == _memoryBytes) {
|
||||
[_ram_menu selectItemAtIndex: ix];
|
||||
[self setMemory: [d objectForKey: @"description"]];
|
||||
[self setMemory: [d objectForKey: @"value"]];
|
||||
return;
|
||||
}
|
||||
++ix;
|
||||
@@ -190,8 +190,8 @@ static void DeactivateMenus(NSArray *items, NSPopUpButton *button) {
|
||||
NSDictionary *d = [items objectAtIndex: default_index];
|
||||
|
||||
[_ram_menu selectItemAtIndex: default_index];
|
||||
[self setMemory: [d objectForKey: @"description"]];
|
||||
[self setMemoryBytes: [(NSNumber *)[d objectForKey: @"value"] unsignedIntValue]];
|
||||
[self setMemory: [d objectForKey: @"value"]];
|
||||
[self setMemoryBytes: [(NSNumber *)[d objectForKey: @"intValue"] unsignedIntValue]];
|
||||
} else {
|
||||
[self setMemoryBytes: 0];
|
||||
[self setMemory: @""];
|
||||
|
||||
|
After Width: | Height: | Size: 133 B |
|
After Width: | Height: | Size: 225 B |
|
After Width: | Height: | Size: 348 B |
|
After Width: | Height: | Size: 147 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 275 B |
|
After Width: | Height: | Size: 298 B |
|
After Width: | Height: | Size: 535 B |
|
After Width: | Height: | Size: 812 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
A slightly more user-friendly front-end for using MAME as an Apple II emulator.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
Currently requires a separate installation of MAME and ROMs.
|
||||
A custom version of MAME is included (only apple 1/2/3 emulators are supported in the custom version).
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
import argparse
|
||||
import subprocess
|
||||
|
||||
from plist import to_plist
|
||||
@@ -145,7 +145,14 @@ def find_media(parent, include_slots=False):
|
||||
|
||||
devices = {}
|
||||
|
||||
for m in MACHINES:
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument('machine', nargs="*")
|
||||
args = p.parse_args()
|
||||
|
||||
machines = args.machine
|
||||
if not machines: machines = MACHINES
|
||||
|
||||
for m in machines:
|
||||
|
||||
print(m)
|
||||
|
||||
@@ -167,14 +174,15 @@ for m in MACHINES:
|
||||
data["description"] = machine.find("description").text
|
||||
tmp = [
|
||||
{
|
||||
"value": int(x.text),
|
||||
"intValue": int(x.text),
|
||||
"description": x.get("name"),
|
||||
"value": x.get("name"),
|
||||
"default": x.get("default") == "yes"
|
||||
}
|
||||
for x in machine.findall('ramoption')
|
||||
]
|
||||
# sort and add empty starting entry.
|
||||
tmp.sort(key=lambda x: x["value"])
|
||||
tmp.sort(key=lambda x: x["intValue"])
|
||||
# tmp.insert(0, {"value": 0, "default": False, "description": "" })
|
||||
data["ram"] = tmp
|
||||
|
||||
|
||||
@@ -14,14 +14,15 @@ apple3_children = None
|
||||
apple2e_children = ["apple2e", "apple2ees", "apple2euk", "apple2ep", "apple2ee", "apple2eeuk", "apple2eefr"]
|
||||
apple2c_children = ["apple2c", "apple2cp"]
|
||||
apple2gs_children = ["apple2gsr0", "apple2gsr1", "apple2gs"]
|
||||
laser_children = ["laser128", "laser2c", "las128ex", "las128e2"]
|
||||
ii_clones_children = ["ace100", "agat7", "agat9", "albert",
|
||||
laser_children = ["laser2c", "laser128", "las128ex", "las128e2"]
|
||||
ii_clones_children = ["ace100", "albert",
|
||||
"am100", "am64", "basis108", "craft2p",
|
||||
"dodo", "elppa", "hkc8800a", "ivelultr",
|
||||
"maxxi", "microeng", "prav82", "prav8m",
|
||||
"space84", "uniap2en", "uniap2pt", "uniap2ti"]
|
||||
iie_clones_children = ["mprof3", "prav8c", "spectred", "zijini"]
|
||||
cec_children = ["cec2000", "cece", "cecg", "ceci", "cecm"]
|
||||
agat_children = ["agat7", "agat9"]
|
||||
|
||||
tree = [
|
||||
("Apple I", "apple1", apple1_children),
|
||||
@@ -30,10 +31,11 @@ tree = [
|
||||
("Apple //c", "apple2c", apple2c_children),
|
||||
("Apple IIgs", "apple2gs", apple2gs_children),
|
||||
("Apple ///", "apple3", apple3_children),
|
||||
("Laser", "laser128", laser_children),
|
||||
("China Education Computer", None, cec_children),
|
||||
("II Clones", None, ii_clones_children),
|
||||
("IIe Clones", None, iie_clones_children),
|
||||
("Laser", "laser128", laser_children),
|
||||
("Agat", "agat7", agat_children),
|
||||
("China Education Computer", None, cec_children),
|
||||
]
|
||||
|
||||
env = {'DYLD_FALLBACK_FRAMEWORK_PATH': '../embedded'}
|
||||
|
||||
@@ -53,6 +53,7 @@ keytronic_pc3270
|
||||
m68705p3
|
||||
votrax
|
||||
zijini
|
||||
agat_fdc
|
||||
""".splitlines()
|
||||
#
|
||||
# others
|
||||
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 225 KiB |