Cocoa Port:

- Add Rigorous 3D Rendering Timing setting to Emulation Settings.
- Add option for 8 Threads to 3D Rendering Settings.
- Do some code cleanup to the display code.
This commit is contained in:
rogerman 2013-02-06 05:17:53 +00:00
parent 2e6ab871c1
commit aef86fe900
11 changed files with 346 additions and 193 deletions

View File

@ -56,6 +56,7 @@ typedef struct
NSUInteger emulationFlags; NSUInteger emulationFlags;
BOOL emuFlagAdvancedBusLevelTiming; BOOL emuFlagAdvancedBusLevelTiming;
BOOL emuFlagRigorousTiming;
BOOL emuFlagUseExternalBios; BOOL emuFlagUseExternalBios;
BOOL emuFlagEmulateBiosInterrupts; BOOL emuFlagEmulateBiosInterrupts;
BOOL emuFlagPatchDelayLoop; BOOL emuFlagPatchDelayLoop;
@ -88,6 +89,7 @@ typedef struct
@property (assign) NSUInteger emulationFlags; @property (assign) NSUInteger emulationFlags;
@property (assign) BOOL emuFlagAdvancedBusLevelTiming; @property (assign) BOOL emuFlagAdvancedBusLevelTiming;
@property (assign) BOOL emuFlagRigorousTiming;
@property (assign) BOOL emuFlagUseExternalBios; @property (assign) BOOL emuFlagUseExternalBios;
@property (assign) BOOL emuFlagEmulateBiosInterrupts; @property (assign) BOOL emuFlagEmulateBiosInterrupts;
@property (assign) BOOL emuFlagPatchDelayLoop; @property (assign) BOOL emuFlagPatchDelayLoop;

View File

@ -49,6 +49,7 @@ volatile bool execute = true;
@dynamic emulationFlags; @dynamic emulationFlags;
@synthesize emuFlagAdvancedBusLevelTiming; @synthesize emuFlagAdvancedBusLevelTiming;
@synthesize emuFlagRigorousTiming;
@synthesize emuFlagUseExternalBios; @synthesize emuFlagUseExternalBios;
@synthesize emuFlagEmulateBiosInterrupts; @synthesize emuFlagEmulateBiosInterrupts;
@synthesize emuFlagPatchDelayLoop; @synthesize emuFlagPatchDelayLoop;
@ -80,6 +81,7 @@ static BOOL isCoreStarted = NO;
emulationFlags = EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK; emulationFlags = EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK;
emuFlagAdvancedBusLevelTiming = YES; emuFlagAdvancedBusLevelTiming = YES;
emuFlagRigorousTiming = NO;
emuFlagUseExternalBios = NO; emuFlagUseExternalBios = NO;
emuFlagEmulateBiosInterrupts = NO; emuFlagEmulateBiosInterrupts = NO;
emuFlagPatchDelayLoop = NO; emuFlagPatchDelayLoop = NO;
@ -379,6 +381,17 @@ static BOOL isCoreStarted = NO;
CommonSettings.advanced_timing = false; CommonSettings.advanced_timing = false;
} }
if (theFlags & EMULATION_RIGOROUS_TIMING_MASK)
{
self.emuFlagRigorousTiming = YES;
CommonSettings.rigorous_timing = true;
}
else
{
self.emuFlagRigorousTiming = NO;
CommonSettings.rigorous_timing = false;
}
if (theFlags & EMULATION_ENSATA_MASK) if (theFlags & EMULATION_ENSATA_MASK)
{ {
self.emuFlagEmulateEnsata = YES; self.emuFlagEmulateEnsata = YES;

View File

@ -236,7 +236,8 @@ enum
EMULATION_BOOT_FROM_FIRMWARE_BIT = 6, EMULATION_BOOT_FROM_FIRMWARE_BIT = 6,
EMULATION_SLEEP_BIT = 7, EMULATION_SLEEP_BIT = 7,
EMULATION_CARD_EJECT_BIT = 8, EMULATION_CARD_EJECT_BIT = 8,
EMULATION_DEBUG_CONSOLE_BIT = 9 EMULATION_DEBUG_CONSOLE_BIT = 9,
EMULATION_RIGOROUS_TIMING_BIT = 10
}; };
enum enum
@ -250,7 +251,8 @@ enum
EMULATION_BOOT_FROM_FIRMWARE_MASK = 1 << EMULATION_BOOT_FROM_FIRMWARE_BIT, EMULATION_BOOT_FROM_FIRMWARE_MASK = 1 << EMULATION_BOOT_FROM_FIRMWARE_BIT,
EMULATION_SLEEP_MASK = 1 << EMULATION_SLEEP_BIT, EMULATION_SLEEP_MASK = 1 << EMULATION_SLEEP_BIT,
EMULATION_CARD_EJECT_MASK = 1 << EMULATION_CARD_EJECT_BIT, EMULATION_CARD_EJECT_MASK = 1 << EMULATION_CARD_EJECT_BIT,
EMULATION_DEBUG_CONSOLE_MASK = 1 << EMULATION_DEBUG_CONSOLE_BIT EMULATION_DEBUG_CONSOLE_MASK = 1 << EMULATION_DEBUG_CONSOLE_BIT,
EMULATION_RIGOROUS_TIMING_MASK = 1 << EMULATION_RIGOROUS_TIMING_BIT
}; };
enum enum

View File

@ -129,7 +129,7 @@ typedef struct
@optional @optional
- (void) doResizeView:(NSRect)rect; - (void) doResizeView:(NSRect)rect;
- (void) doTransformView:(DisplayOutputTransformData *)transformData; - (void) doTransformView:(const DisplayOutputTransformData *)transformData;
- (void) doRedraw; - (void) doRedraw;
- (void) doDisplayOrientationChanged:(NSInteger)displayOrientationID; - (void) doDisplayOrientationChanged:(NSInteger)displayOrientationID;
- (void) doDisplayOrderChanged:(NSInteger)displayOrderID; - (void) doDisplayOrderChanged:(NSInteger)displayOrderID;

View File

@ -7046,7 +7046,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="NSClassName">InputPrefsView</string> <string key="NSClassName">InputPrefsView</string>
</object> </object>
<object class="NSCustomView" id="373257179"> <object class="NSCustomView" id="373257179">
<reference key="NSNextResponder"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
@ -7055,13 +7055,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">12</int> <int key="NSvFlags">12</int>
<string key="NSFrame">{{13, 10}, {463, 401}}</string> <string key="NSFrame">{{13, 10}, {463, 401}}</string>
<reference key="NSSuperview" ref="373257179"/> <reference key="NSSuperview" ref="373257179"/>
<reference key="NSWindow"/>
<object class="NSMutableArray" key="NSTabViewItems"> <object class="NSMutableArray" key="NSTabViewItems">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTabViewItem" id="750316744"> <object class="NSTabViewItem" id="750316744">
<string key="NSIdentifier">1</string> <string key="NSIdentifier">1</string>
<object class="NSView" key="NSView" id="698863500"> <object class="NSView" key="NSView" id="698863500">
<reference key="NSNextResponder" ref="286093627"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
@ -7080,7 +7079,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{72, 44}, {84, 17}}</string> <string key="NSFrame">{{72, 44}, {84, 17}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1051872315"> <object class="NSTextFieldCell" key="NSCell" id="1051872315">
<int key="NSCellFlags">68288064</int> <int key="NSCellFlags">68288064</int>
@ -7097,7 +7095,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{44, 16}, {112, 17}}</string> <string key="NSFrame">{{44, 16}, {112, 17}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="279286359"> <object class="NSTextFieldCell" key="NSCell" id="279286359">
<int key="NSCellFlags">68288064</int> <int key="NSCellFlags">68288064</int>
@ -7114,7 +7111,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{158, 38}, {126, 26}}</string> <string key="NSFrame">{{158, 38}, {126, 26}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="644484329"> <object class="NSPopUpButtonCell" key="NSCell" id="644484329">
<int key="NSCellFlags">-2076049856</int> <int key="NSCellFlags">-2076049856</int>
@ -7195,7 +7191,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{289, 14}, {96, 22}}</string> <string key="NSFrame">{{289, 14}, {96, 22}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="689714106"> <object class="NSTextFieldCell" key="NSCell" id="689714106">
<int key="NSCellFlags">-1804468671</int> <int key="NSCellFlags">-1804468671</int>
@ -7273,7 +7268,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{63, 72}, {93, 17}}</string> <string key="NSFrame">{{63, 72}, {93, 17}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="86457779"> <object class="NSTextFieldCell" key="NSCell" id="86457779">
<int key="NSCellFlags">68288064</int> <int key="NSCellFlags">68288064</int>
@ -7290,7 +7284,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{158, 66}, {126, 26}}</string> <string key="NSFrame">{{158, 66}, {126, 26}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="977881385"> <object class="NSPopUpButtonCell" key="NSCell" id="977881385">
<int key="NSCellFlags">-2076049856</int> <int key="NSCellFlags">-2076049856</int>
@ -7358,7 +7351,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{158, 11}, {126, 26}}</string> <string key="NSFrame">{{158, 11}, {126, 26}}</string>
<reference key="NSSuperview" ref="610612997"/> <reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="729105354"> <object class="NSPopUpButtonCell" key="NSCell" id="729105354">
<int key="NSCellFlags">-2076049856</int> <int key="NSCellFlags">-2076049856</int>
@ -7460,12 +7452,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {429, 100}}</string> <string key="NSFrame">{{1, 1}, {429, 100}}</string>
<reference key="NSSuperview" ref="654619277"/> <reference key="NSSuperview" ref="654619277"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{6, 187}, {431, 116}}</string> <string key="NSFrame">{{6, 187}, {431, 116}}</string>
<reference key="NSSuperview" ref="698863500"/> <reference key="NSSuperview" ref="698863500"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -7509,7 +7499,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {100, 38}}</string> <string key="NSFrame">{{18, 14}, {100, 38}}</string>
<reference key="NSSuperview" ref="713770080"/> <reference key="NSSuperview" ref="713770080"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<int key="NSNumRows">2</int> <int key="NSNumRows">2</int>
<int key="NSNumCols">1</int> <int key="NSNumCols">1</int>
@ -7700,12 +7689,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {194, 62}}</string> <string key="NSFrame">{{1, 1}, {194, 62}}</string>
<reference key="NSSuperview" ref="405894970"/> <reference key="NSSuperview" ref="405894970"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{15, 10}, {196, 78}}</string> <string key="NSFrame">{{15, 10}, {196, 78}}</string>
<reference key="NSSuperview" ref="320484480"/> <reference key="NSSuperview" ref="320484480"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -7739,7 +7726,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {150, 38}}</string> <string key="NSFrame">{{18, 14}, {150, 38}}</string>
<reference key="NSSuperview" ref="533349872"/> <reference key="NSSuperview" ref="533349872"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<int key="NSNumRows">2</int> <int key="NSNumRows">2</int>
<int key="NSNumCols">1</int> <int key="NSNumCols">1</int>
@ -7930,12 +7916,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {194, 62}}</string> <string key="NSFrame">{{1, 1}, {194, 62}}</string>
<reference key="NSSuperview" ref="1057767226"/> <reference key="NSSuperview" ref="1057767226"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{218, 10}, {196, 78}}</string> <string key="NSFrame">{{218, 10}, {196, 78}}</string>
<reference key="NSSuperview" ref="320484480"/> <reference key="NSSuperview" ref="320484480"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -7957,12 +7941,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {429, 98}}</string> <string key="NSFrame">{{1, 1}, {429, 98}}</string>
<reference key="NSSuperview" ref="367271593"/> <reference key="NSSuperview" ref="367271593"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{6, 69}, {431, 114}}</string> <string key="NSFrame">{{6, 69}, {431, 114}}</string>
<reference key="NSSuperview" ref="698863500"/> <reference key="NSSuperview" ref="698863500"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -7983,8 +7965,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
</object> </object>
<string key="NSFrame">{{10, 33}, {443, 355}}</string> <string key="NSFrame">{{10, 33}, {443, 355}}</string>
<reference key="NSSuperview" ref="286093627"/>
<reference key="NSWindow"/>
</object> </object>
<string key="NSLabel">Display Views</string> <string key="NSLabel">Display Views</string>
<reference key="NSColor" ref="266180242"/> <reference key="NSColor" ref="266180242"/>
@ -8354,7 +8334,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTabViewItem" id="521164677"> <object class="NSTabViewItem" id="521164677">
<string key="NSIdentifier">4</string> <string key="NSIdentifier">4</string>
<object class="NSView" key="NSView" id="926005793"> <object class="NSView" key="NSView" id="926005793">
<nil key="NSNextResponder"/> <reference key="NSNextResponder" ref="286093627"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
@ -8708,7 +8688,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSMenu" ref="429092686"/> <reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">Automatic</string> <string key="NSTitle">Automatic</string>
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int> <int key="NSState">1</int>
<reference key="NSOnImage" ref="396634170"/> <reference key="NSOnImage" ref="396634170"/>
@ -8726,7 +8705,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSMenu" ref="429092686"/> <reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">Single-Threaded</string> <string key="NSTitle">Single-Threaded</string>
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="396634170"/> <reference key="NSOnImage" ref="396634170"/>
<reference key="NSMixedImage" ref="678976864"/> <reference key="NSMixedImage" ref="678976864"/>
@ -8738,7 +8716,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSMenu" ref="429092686"/> <reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">2 Threads</string> <string key="NSTitle">2 Threads</string>
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="396634170"/> <reference key="NSOnImage" ref="396634170"/>
<reference key="NSMixedImage" ref="678976864"/> <reference key="NSMixedImage" ref="678976864"/>
@ -8757,6 +8734,17 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSTag">4</int> <int key="NSTag">4</int>
<reference key="NSTarget" ref="770553605"/> <reference key="NSTarget" ref="770553605"/>
</object> </object>
<object class="NSMenuItem" id="341466928">
<reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">8 Threads</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="396634170"/>
<reference key="NSMixedImage" ref="678976864"/>
<string key="NSAction">_popUpItemAction:</string>
<int key="NSTag">8</int>
<reference key="NSTarget" ref="770553605"/>
</object>
</object> </object>
<reference key="NSMenuFont" ref="462791774"/> <reference key="NSMenuFont" ref="462791774"/>
</object> </object>
@ -8920,26 +8908,25 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
</object> </object>
<string key="NSFrame">{{10, 33}, {443, 355}}</string> <string key="NSFrame">{{10, 33}, {443, 355}}</string>
<reference key="NSSuperview" ref="286093627"/>
</object> </object>
<string key="NSLabel">3D Rendering</string> <string key="NSLabel">3D Rendering</string>
<reference key="NSColor" ref="266180242"/> <reference key="NSColor" ref="266180242"/>
<reference key="NSTabView" ref="286093627"/> <reference key="NSTabView" ref="286093627"/>
</object> </object>
</object> </object>
<reference key="NSSelectedTabViewItem" ref="750316744"/> <reference key="NSSelectedTabViewItem" ref="521164677"/>
<reference key="NSFont" ref="462791774"/> <reference key="NSFont" ref="462791774"/>
<int key="NSTvFlags">0</int> <int key="NSTvFlags">0</int>
<bool key="NSAllowTruncatedLabels">YES</bool> <bool key="NSAllowTruncatedLabels">YES</bool>
<bool key="NSDrawsBackground">YES</bool> <bool key="NSDrawsBackground">YES</bool>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="698863500"/> <reference ref="926005793"/>
</object> </object>
</object> </object>
</object> </object>
<string key="NSFrameSize">{489, 425}</string> <string key="NSFrameSize">{489, 425}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<string key="NSClassName">NSView</string> <string key="NSClassName">NSView</string>
</object> </object>
<object class="NSCustomView" id="704316683"> <object class="NSCustomView" id="704316683">
@ -10525,7 +10512,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="621197304"> <object class="NSButton" id="621197304">
<reference key="NSNextResponder" ref="330186328"/> <reference key="NSNextResponder" ref="330186328"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {197, 18}}</string> <string key="NSFrame">{{16, 32}, {197, 18}}</string>
<reference key="NSSuperview" ref="330186328"/> <reference key="NSSuperview" ref="330186328"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="152711854"> <object class="NSButtonCell" key="NSCell" id="152711854">
@ -10544,12 +10531,34 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSPeriodicInterval">25</int> <int key="NSPeriodicInterval">25</int>
</object> </object>
</object> </object>
<object class="NSButton" id="689857730">
<reference key="NSNextResponder" ref="330186328"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {217, 18}}</string>
<reference key="NSSuperview" ref="330186328"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="683227590">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Rigorous 3D Rendering Timing</string>
<reference key="NSSupport" ref="462791774"/>
<reference key="NSControlView" ref="689857730"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="1033104355"/>
<reference key="NSAlternateImage" ref="1000893652"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</object> </object>
<string key="NSFrame">{{1, 1}, {494, 38}}</string> <string key="NSFrame">{{1, 1}, {494, 58}}</string>
<reference key="NSSuperview" ref="699930286"/> <reference key="NSSuperview" ref="699930286"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 536}, {496, 54}}</string> <string key="NSFrame">{{17, 536}, {496, 74}}</string>
<reference key="NSSuperview" ref="748902585"/> <reference key="NSSuperview" ref="748902585"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
@ -10570,7 +10579,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSTransparent">NO</bool> <bool key="NSTransparent">NO</bool>
</object> </object>
</object> </object>
<string key="NSFrameSize">{530, 610}</string> <string key="NSFrameSize">{530, 630}</string>
<string key="NSClassName">NSView</string> <string key="NSClassName">NSView</string>
</object> </object>
<object class="NSCustomObject" id="660705428"> <object class="NSCustomObject" id="660705428">
@ -14128,7 +14137,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSWindowTemplate" id="193751677"> <object class="NSWindowTemplate" id="193751677">
<int key="NSWindowStyleMask">279</int> <int key="NSWindowStyleMask">279</int>
<int key="NSWindowBacking">2</int> <int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{230, 63}, {280, 478}}</string> <string key="NSWindowRect">{{230, 43}, {280, 498}}</string>
<int key="NSWTFlags">-461896704</int> <int key="NSWTFlags">-461896704</int>
<string key="NSWindowTitle">Emulation Settings</string> <string key="NSWindowTitle">Emulation Settings</string>
<string key="NSWindowClass">NSPanel</string> <string key="NSWindowClass">NSPanel</string>
@ -14152,7 +14161,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="858194736"> <object class="NSButton" id="858194736">
<reference key="NSNextResponder" ref="522589149"/> <reference key="NSNextResponder" ref="522589149"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {171, 18}}</string> <string key="NSFrame">{{16, 32}, {171, 18}}</string>
<reference key="NSSuperview" ref="522589149"/> <reference key="NSSuperview" ref="522589149"/>
<int key="NSTag">1</int> <int key="NSTag">1</int>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@ -14172,12 +14181,35 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSPeriodicInterval">25</int> <int key="NSPeriodicInterval">25</int>
</object> </object>
</object> </object>
<object class="NSButton" id="771239136">
<reference key="NSNextResponder" ref="522589149"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {187, 18}}</string>
<reference key="NSSuperview" ref="522589149"/>
<int key="NSTag">10</int>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="432570502">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string key="NSContents">Rigorous 3D Rendering Timing</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="771239136"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="1033104355"/>
<reference key="NSAlternateImage" ref="1000893652"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</object> </object>
<string key="NSFrame">{{1, 1}, {244, 38}}</string> <string key="NSFrame">{{1, 1}, {244, 58}}</string>
<reference key="NSSuperview" ref="125800740"/> <reference key="NSSuperview" ref="125800740"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 404}, {246, 54}}</string> <string key="NSFrame">{{17, 404}, {246, 74}}</string>
<reference key="NSSuperview" ref="279931197"/> <reference key="NSSuperview" ref="279931197"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
@ -14747,7 +14779,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSTransparent">NO</bool> <bool key="NSTransparent">NO</bool>
</object> </object>
</object> </object>
<string key="NSFrameSize">{280, 478}</string> <string key="NSFrameSize">{280, 498}</string>
</object> </object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
@ -16126,14 +16158,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSWindowTemplate" id="443896366"> <object class="NSWindowTemplate" id="443896366">
<int key="NSWindowStyleMask">279</int> <int key="NSWindowStyleMask">279</int>
<int key="NSWindowBacking">2</int> <int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{230, 1}, {284, 540}}</string> <string key="NSWindowRect">{{230, -19}, {284, 560}}</string>
<int key="NSWTFlags">-461896704</int> <int key="NSWTFlags">-461896704</int>
<string key="NSWindowTitle">3D Rendering Settings</string> <string key="NSWindowTitle">3D Rendering Settings</string>
<string key="NSWindowClass">NSPanel</string> <string key="NSWindowClass">NSPanel</string>
<nil key="NSViewClass"/> <nil key="NSViewClass"/>
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
<object class="NSView" key="NSWindowView" id="729561310"> <object class="NSView" key="NSWindowView" id="729561310">
<reference key="NSNextResponder"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
@ -16152,7 +16184,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 77}, {206, 18}}</string> <string key="NSFrame">{{15, 77}, {206, 18}}</string>
<reference key="NSSuperview" ref="372893695"/> <reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="715693022"> <object class="NSButtonCell" key="NSCell" id="715693022">
<int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags">-2080244224</int>
@ -16175,7 +16206,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 57}, {134, 18}}</string> <string key="NSFrame">{{15, 57}, {134, 18}}</string>
<reference key="NSSuperview" ref="372893695"/> <reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="874032897"> <object class="NSButtonCell" key="NSCell" id="874032897">
<int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags">-2080244224</int>
@ -16198,7 +16228,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 37}, {80, 18}}</string> <string key="NSFrame">{{15, 37}, {80, 18}}</string>
<reference key="NSSuperview" ref="372893695"/> <reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="67001337"> <object class="NSButtonCell" key="NSCell" id="67001337">
<int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags">-2080244224</int>
@ -16221,7 +16250,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{185, 12}, {45, 19}}</string> <string key="NSFrame">{{185, 12}, {45, 19}}</string>
<reference key="NSSuperview" ref="372893695"/> <reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="424545719"> <object class="NSTextFieldCell" key="NSCell" id="424545719">
<int key="NSCellFlags">-1804468671</int> <int key="NSCellFlags">-1804468671</int>
@ -16302,7 +16330,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 14}, {165, 14}}</string> <string key="NSFrame">{{15, 14}, {165, 14}}</string>
<reference key="NSSuperview" ref="372893695"/> <reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="714807735"> <object class="NSTextFieldCell" key="NSCell" id="714807735">
<int key="NSCellFlags">68288064</int> <int key="NSCellFlags">68288064</int>
@ -16317,12 +16344,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {248, 103}}</string> <string key="NSFrame">{{1, 1}, {248, 103}}</string>
<reference key="NSSuperview" ref="219189503"/> <reference key="NSSuperview" ref="219189503"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 221}, {250, 119}}</string> <string key="NSFrame">{{17, 241}, {250, 119}}</string>
<reference key="NSSuperview" ref="729561310"/> <reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -16346,7 +16371,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{65, 18}, {154, 19}}</string> <string key="NSFrame">{{65, 18}, {154, 19}}</string>
<reference key="NSSuperview" ref="729561310"/> <reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="837427736"> <object class="NSButtonCell" key="NSCell" id="837427736">
<int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags">-2080244224</int>
@ -16377,7 +16401,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {107, 58}}</string> <string key="NSFrame">{{18, 14}, {107, 58}}</string>
<reference key="NSSuperview" ref="909175549"/> <reference key="NSSuperview" ref="909175549"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<int key="NSNumRows">3</int> <int key="NSNumRows">3</int>
<int key="NSNumCols">1</int> <int key="NSNumCols">1</int>
@ -16582,12 +16605,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {248, 82}}</string> <string key="NSFrame">{{1, 1}, {248, 82}}</string>
<reference key="NSSuperview" ref="299127137"/> <reference key="NSSuperview" ref="299127137"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 422}, {250, 98}}</string> <string key="NSFrame">{{17, 442}, {250, 98}}</string>
<reference key="NSSuperview" ref="729561310"/> <reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -16619,11 +16640,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMatrix" id="504079454"> <object class="NSMatrix" id="504079454">
<reference key="NSNextResponder" ref="1000433834"/> <reference key="NSNextResponder" ref="1000433834"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {120, 78}}</string> <string key="NSFrame">{{18, 14}, {120, 98}}</string>
<reference key="NSSuperview" ref="1000433834"/> <reference key="NSSuperview" ref="1000433834"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<int key="NSNumRows">4</int> <int key="NSNumRows">5</int>
<int key="NSNumCols">1</int> <int key="NSNumCols">1</int>
<object class="NSMutableArray" key="NSCells"> <object class="NSMutableArray" key="NSCells">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
@ -16808,6 +16828,19 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
<int key="NSPeriodicDelay">400</int> <int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int> <int key="NSPeriodicInterval">75</int>
</object> </object>
<object class="NSButtonCell" id="999158072">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string key="NSContents">8 Threads</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="504079454"/>
<int key="NSTag">8</int>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">0</int>
<reference key="NSAlternateImage" ref="491083016"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
</object> </object>
<string key="NSCellSize">{120, 18}</string> <string key="NSCellSize">{120, 18}</string>
<string key="NSIntercellSpacing">{4, 2}</string> <string key="NSIntercellSpacing">{4, 2}</string>
@ -16871,14 +16904,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSFont" ref="462791774"/> <reference key="NSFont" ref="462791774"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{1, 1}, {248, 102}}</string> <string key="NSFrame">{{1, 1}, {248, 122}}</string>
<reference key="NSSuperview" ref="264524412"/> <reference key="NSSuperview" ref="264524412"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 41}, {250, 118}}</string> <string key="NSFrame">{{17, 41}, {250, 138}}</string>
<reference key="NSSuperview" ref="729561310"/> <reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -16912,7 +16943,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 32}, {113, 18}}</string> <string key="NSFrame">{{15, 32}, {113, 18}}</string>
<reference key="NSSuperview" ref="887816052"/> <reference key="NSSuperview" ref="887816052"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="394241287"> <object class="NSButtonCell" key="NSCell" id="394241287">
<int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags">-2080244224</int>
@ -16935,7 +16965,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 12}, {108, 18}}</string> <string key="NSFrame">{{15, 12}, {108, 18}}</string>
<reference key="NSSuperview" ref="887816052"/> <reference key="NSSuperview" ref="887816052"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="109440671"> <object class="NSButtonCell" key="NSCell" id="109440671">
<int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags">-2080244224</int>
@ -16956,12 +16985,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {248, 58}}</string> <string key="NSFrame">{{1, 1}, {248, 58}}</string>
<reference key="NSSuperview" ref="353783913"/> <reference key="NSSuperview" ref="353783913"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 344}, {250, 74}}</string> <string key="NSFrame">{{17, 364}, {250, 74}}</string>
<reference key="NSSuperview" ref="729561310"/> <reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -16995,7 +17022,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {192, 18}}</string> <string key="NSFrame">{{16, 12}, {192, 18}}</string>
<reference key="NSSuperview" ref="633221410"/> <reference key="NSSuperview" ref="633221410"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="477056413"> <object class="NSButtonCell" key="NSCell" id="477056413">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -17016,12 +17042,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string key="NSFrame">{{1, 1}, {248, 38}}</string> <string key="NSFrame">{{1, 1}, {248, 38}}</string>
<reference key="NSSuperview" ref="226041199"/> <reference key="NSSuperview" ref="226041199"/>
<reference key="NSWindow"/>
</object> </object>
</object> </object>
<string key="NSFrame">{{17, 163}, {250, 54}}</string> <string key="NSFrame">{{17, 183}, {250, 54}}</string>
<reference key="NSSuperview" ref="729561310"/> <reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string> <string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell"> <object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">67239424</int>
@ -17041,9 +17065,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSTransparent">NO</bool> <bool key="NSTransparent">NO</bool>
</object> </object>
</object> </object>
<string key="NSFrameSize">{284, 540}</string> <string key="NSFrameSize">{284, 560}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object> </object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
@ -21328,6 +21350,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>emuFlagDebugConsole</string> <string>emuFlagDebugConsole</string>
<string>emuFlagEmulateEnsata</string> <string>emuFlagEmulateEnsata</string>
<string>cpuEmulationEngine</string> <string>cpuEmulationEngine</string>
<string>emuFlagRigorousTiming</string>
</object> </object>
<string key="NSObjectClassName">CocoaDSCore</string> <string key="NSObjectClassName">CocoaDSCore</string>
<object class="_NSManagedProxy" key="_NSManagedProxy"/> <object class="_NSManagedProxy" key="_NSManagedProxy"/>
@ -30990,6 +31013,54 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<int key="connectionID">6626</int> <int key="connectionID">6626</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: values.Emulation_RigorousTiming</string>
<reference key="source" ref="689857730"/>
<reference key="destination" ref="178548672"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="689857730"/>
<reference key="NSDestination" ref="178548672"/>
<string key="NSLabel">value: values.Emulation_RigorousTiming</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">values.Emulation_RigorousTiming</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">6629</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: selection.emuFlagRigorousTiming</string>
<reference key="source" ref="771239136"/>
<reference key="destination" ref="582168938"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="771239136"/>
<reference key="NSDestination" ref="582168938"/>
<string key="NSLabel">value: selection.emuFlagRigorousTiming</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">selection.emuFlagRigorousTiming</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">6632</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">changeCoreEmuFlags:</string>
<reference key="source" ref="580129455"/>
<reference key="destination" ref="771239136"/>
</object>
<int key="connectionID">6633</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">change3DRenderThreads:</string>
<reference key="source" ref="580129455"/>
<reference key="destination" ref="999158072"/>
</object>
<int key="connectionID">6636</int>
</object>
</object> </object>
<object class="IBMutableOrderedSet" key="objectRecords"> <object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects"> <object class="NSArray" key="orderedObjects">
@ -34048,6 +34119,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="621197304"/> <reference ref="621197304"/>
<reference ref="689857730"/>
</object> </object>
<reference key="parent" ref="748902585"/> <reference key="parent" ref="748902585"/>
</object> </object>
@ -35988,12 +36060,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="729561310"/> <reference key="object" ref="729561310"/>
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="299127137"/>
<reference ref="219189503"/> <reference ref="219189503"/>
<reference ref="353783913"/> <reference ref="353783913"/>
<reference ref="226041199"/> <reference ref="226041199"/>
<reference ref="264524412"/> <reference ref="264524412"/>
<reference ref="412885015"/> <reference ref="412885015"/>
<reference ref="299127137"/>
</object> </object>
<reference key="parent" ref="443896366"/> <reference key="parent" ref="443896366"/>
</object> </object>
@ -36304,6 +36376,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="1010242094"/> <reference ref="1010242094"/>
<reference ref="810290799"/> <reference ref="810290799"/>
<reference ref="397573010"/> <reference ref="397573010"/>
<reference ref="999158072"/>
</object> </object>
<reference key="parent" ref="264524412"/> <reference key="parent" ref="264524412"/>
</object> </object>
@ -36383,6 +36456,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="394325233"/> <reference ref="394325233"/>
<reference ref="756001238"/> <reference ref="756001238"/>
<reference ref="763291224"/> <reference ref="763291224"/>
<reference ref="341466928"/>
</object> </object>
<reference key="parent" ref="770553605"/> <reference key="parent" ref="770553605"/>
</object> </object>
@ -36567,11 +36641,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="125800740"/> <reference ref="125800740"/>
<reference ref="625333914"/>
<reference ref="675619133"/> <reference ref="675619133"/>
<reference ref="64774571"/> <reference ref="64774571"/>
<reference ref="1070563138"/> <reference ref="1070563138"/>
<reference ref="872295948"/> <reference ref="872295948"/>
<reference ref="625333914"/>
</object> </object>
<reference key="parent" ref="193751677"/> <reference key="parent" ref="193751677"/>
</object> </object>
@ -36581,6 +36655,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="858194736"/> <reference ref="858194736"/>
<reference ref="771239136"/>
</object> </object>
<reference key="parent" ref="279931197"/> <reference key="parent" ref="279931197"/>
</object> </object>
@ -42290,6 +42365,44 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="995020498"/> <reference key="object" ref="995020498"/>
<reference key="parent" ref="408650936"/> <reference key="parent" ref="408650936"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">6627</int>
<reference key="object" ref="689857730"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="683227590"/>
</object>
<reference key="parent" ref="699930286"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6628</int>
<reference key="object" ref="683227590"/>
<reference key="parent" ref="689857730"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6630</int>
<reference key="object" ref="771239136"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="432570502"/>
</object>
<reference key="parent" ref="125800740"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6631</int>
<reference key="object" ref="432570502"/>
<reference key="parent" ref="771239136"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6634</int>
<reference key="object" ref="341466928"/>
<reference key="parent" ref="429092686"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6635</int>
<reference key="object" ref="999158072"/>
<reference key="parent" ref="504079454"/>
</object>
</object> </object>
</object> </object>
<object class="NSMutableDictionary" key="flattenedProperties"> <object class="NSMutableDictionary" key="flattenedProperties">
@ -44404,6 +44517,17 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>6623.IBAttributePlaceholdersKey</string> <string>6623.IBAttributePlaceholdersKey</string>
<string>6623.IBPluginDependency</string> <string>6623.IBPluginDependency</string>
<string>6624.IBPluginDependency</string> <string>6624.IBPluginDependency</string>
<string>6627.IBAttributePlaceholdersKey</string>
<string>6627.IBPluginDependency</string>
<string>6627.IBViewBoundsToFrameTransform</string>
<string>6628.IBPluginDependency</string>
<string>6630.IBAttributePlaceholdersKey</string>
<string>6630.IBPluginDependency</string>
<string>6630.IBViewBoundsToFrameTransform</string>
<string>6631.IBPluginDependency</string>
<string>6634.IBAttributePlaceholdersKey</string>
<string>6634.IBPluginDependency</string>
<string>6635.IBAttributePlaceholdersKey</string>
<string>714.IBEditorWindowLastContentRect</string> <string>714.IBEditorWindowLastContentRect</string>
<string>714.IBPluginDependency</string> <string>714.IBPluginDependency</string>
<string>714.IBViewBoundsToFrameTransform</string> <string>714.IBViewBoundsToFrameTransform</string>
@ -45481,13 +45605,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="toolTip">Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting.</string> <string key="toolTip">Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting.</string>
</object> </object>
</object> </object>
<string>{{786, 252}, {530, 610}}</string> <string>{{963, 313}, {530, 630}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/> <boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABDyAAAA</bytes> <bytes key="NSTransformStruct">AUGIAABEEQAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
@ -45506,7 +45630,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="IBToolTipAttribute" key="NS.object.0"> <object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string> <string key="name">ToolTip</string>
<reference key="object" ref="621197304"/> <reference key="object" ref="621197304"/>
<string key="toolTip">Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may yield a very substantial performance gain, but may cause some ROMs to stop working and cause other ROMs to show erratic behavior.</string> <string key="toolTip">Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may dramatically improve performance, but may also cause some ROMs to stop working and cause other ROMs to show erratic behavior.</string>
</object> </object>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -45625,7 +45749,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1362, 663}, {156, 293}}</string> <string>{{1247, 663}, {156, 293}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -45645,7 +45769,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1136, 1063}, {194, 73}}</string> <string>{{1278, 1063}, {194, 73}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/> <integer value="1"/>
<string>{{525, 802}, {197, 73}}</string> <string>{{525, 802}, {197, 73}}</string>
@ -45868,7 +45992,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwswAAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwswAAA</bytes>
</object> </object>
<string>{{756, 1136}, {512, 20}}</string> <string>{{841, 1136}, {512, 20}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/> <integer value="1"/>
<string>{74, 862}</string> <string>{74, 862}</string>
@ -45883,7 +46007,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABBiAAAw6WAAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABBiAAAw6WAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1030, 843}, {315, 293}}</string> <string>{{1115, 843}, {315, 293}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{475, 832}, {234, 43}}</string> <string>{{475, 832}, {234, 43}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -45906,7 +46030,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{900, 983}, {151, 153}}</string> <string>{{985, 983}, {151, 153}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -46228,14 +46352,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">AUGIAABDIwAAA</bytes> <bytes key="NSTransformStruct">AUGIAABDIwAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1300, 177}, {284, 540}}</string> <string>{{1296, 339}, {284, 560}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1300, 177}, {284, 540}}</string> <string>{{1296, 339}, {284, 560}}</string>
<boolean value="NO"/> <boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABCggAAwgwAAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABCggAAwr4AAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -46317,7 +46441,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABDxoAAA</bytes> <bytes key="NSTransformStruct">AUGIAABD3QAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
@ -46386,7 +46510,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBkAAAwrQAAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABBkAAAwxgAAA</bytes>
</object> </object>
<object class="NSMutableDictionary"> <object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string> <string key="NS.key.0">ToolTip</string>
@ -46453,7 +46577,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABDegAAwmgAAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABDegAAwmgAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{881, 382}, {180, 83}}</string> <string>{{1217, 593}, {166, 103}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary"> <object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string> <string key="NS.key.0">ToolTip</string>
@ -46514,7 +46638,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1064, 1073}, {101, 63}}</string> <string>{{1487, 1073}, {101, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -46616,21 +46740,21 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABEEwAAA</bytes> <bytes key="NSTransformStruct">AUGIAABEEwAAA</bytes>
</object> </object>
<string>{{1322, 684}, {280, 478}}</string> <string>{{1322, 664}, {280, 498}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1322, 684}, {280, 478}}</string> <string>{{1322, 664}, {280, 498}}</string>
<boolean value="NO"/> <boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABD2oAAA</bytes> <bytes key="NSTransformStruct">AUGIAABD8AAAA</bytes>
</object> </object>
<object class="NSMutableDictionary"> <object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string> <string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0"> <object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string> <string key="name">ToolTip</string>
<reference key="object" ref="858194736"/> <reference key="object" ref="858194736"/>
<string key="toolTip">Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may yield a very substantial performance gain, but may cause some ROMs to stop working and cause other ROMs to show erratic behavior.</string> <string key="toolTip">Greatly increases emulation accuracy, which improves the compatibility for most ROMs. This setting has a very high impact on overall emulation performance. Disabling this setting may dramatically improve performance, but may also cause some ROMs to stop working and cause other ROMs to show erratic behavior.</string>
</object> </object>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -47299,7 +47423,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABCMAAAw/gAAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABCMAAAw/gAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1207, 1023}, {261, 113}}</string> <string>{{1349, 1023}, {261, 113}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
@ -47676,7 +47800,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{487, 953}, {203, 183}}</string> <string>{{853, 953}, {203, 183}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/> <integer value="1"/>
<string>{{23, 794}, {245, 183}}</string> <string>{{23, 794}, {245, 183}}</string>
@ -47790,7 +47914,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABC+gAAw44AAA</bytes> <bytes key="NSTransformStruct">P4AAAL+AAABC+gAAw44AAA</bytes>
</object> </object>
<string>{{944, 933}, {218, 203}}</string> <string>{{1029, 933}, {218, 203}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
@ -48233,7 +48357,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1080, 1053}, {278, 83}}</string> <string>{{1222, 1053}, {278, 83}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
@ -48264,7 +48388,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUKKAABDxwAAA</bytes> <bytes key="NSTransformStruct">AUGIAABDoQAAA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"> <object class="NSAffineTransform">
@ -48313,11 +48437,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1322, 1033}, {123, 43}}</string> <string>{{1487, 1033}, {123, 43}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1346, 1013}, {178, 43}}</string> <string>{{1430, 1013}, {178, 43}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -48703,6 +48827,49 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="689857730"/>
<string key="toolTip">Makes emulation timing more accurate, but may reduce ROM compatibility. Enabling this setting may improve 3D rendering performance.</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBgAAAweAAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="771239136"/>
<string key="toolTip">Makes emulation timing more accurate, but may reduce ROM compatibility. Enabling this setting may improve 3D rendering performance.</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBgAAAweAAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="341466928"/>
<string key="toolTip">Renders 3D on eight separate threads by default. May improve 3D performance on multiprocessor machines, but greatly reduces performance on single processor machines.</string>
</object>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<reference key="object" ref="999158072"/>
<string key="toolTip">Renders 3D on eight separate threads by default. May improve 3D performance on multiprocessor machines, but greatly reduces performance on single processor machines.</string>
</object>
</object>
<string>{{1191, 651}, {328, 434}}</string> <string>{{1191, 651}, {328, 434}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"/> <object class="NSAffineTransform"/>
@ -48715,11 +48882,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<integer value="1"/> <integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1064, 933}, {136, 163}}</string> <string>{{1487, 933}, {136, 163}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1064, 1013}, {70, 103}}</string> <string>{{1487, 1013}, {70, 103}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -48743,7 +48910,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/> <integer value="1"/>
<string>{{858, 833}, {262, 303}}</string> <string>{{943, 833}, {262, 303}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/> <integer value="1"/>
<string>{{145, 474}, {199, 203}}</string> <string>{{145, 474}, {199, 203}}</string>
@ -49022,7 +49189,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1362, 1043}, {118, 93}}</string> <string>{{1247, 1043}, {118, 93}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -49052,7 +49219,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object> </object>
</object> </object>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">6626</int> <int key="maxID">6650</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions"> <object class="NSMutableArray" key="referencedPartialClassDescriptions">

View File

@ -384,6 +384,11 @@
emuFlags |= EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK; emuFlags |= EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK;
} }
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_RigorousTiming"])
{
emuFlags |= EMULATION_RIGOROUS_TIMING_MASK;
}
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_UseExternalBIOSImages"]) if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Emulation_UseExternalBIOSImages"])
{ {
emuFlags |= EMULATION_USE_EXTERNAL_BIOS_MASK; emuFlags |= EMULATION_USE_EXTERNAL_BIOS_MASK;

View File

@ -36,7 +36,7 @@
@optional @optional
- (void) doResizeView:(NSRect)rect; - (void) doResizeView:(NSRect)rect;
- (void) doTransformView:(DisplayOutputTransformData *)transformData; - (void) doTransformView:(const DisplayOutputTransformData *)transformData;
- (void) doRedraw; - (void) doRedraw;
- (void) doDisplayModeChanged:(NSInteger)displayModeID; - (void) doDisplayModeChanged:(NSInteger)displayModeID;
- (void) doDisplayOrientationChanged:(NSInteger)displayOrientationID; - (void) doDisplayOrientationChanged:(NSInteger)displayOrientationID;
@ -130,7 +130,6 @@
DisplayViewDelegate *dispViewDelegate; DisplayViewDelegate *dispViewDelegate;
NSInteger lastDisplayMode; NSInteger lastDisplayMode;
NSInteger currentDisplayOrientation; NSInteger currentDisplayOrientation;
GLint glTexRenderStyle;
GLenum glTexPixelFormat; GLenum glTexPixelFormat;
GLvoid *glTexBack; GLvoid *glTexBack;
NSSize glTexBackSize; NSSize glTexBackSize;
@ -150,9 +149,9 @@
GLint uniformScalar; GLint uniformScalar;
GLint uniformViewSize; GLint uniformViewSize;
GLint *vtxBuffer; GLint vtxBuffer[4 * 8];
GLfloat *texCoordBuffer; GLfloat texCoordBuffer[2 * 8];
GLubyte *vtxIndexBuffer; GLubyte vtxIndexBuffer[12];
unsigned int vtxBufferOffset; unsigned int vtxBufferOffset;
} }
@ -162,6 +161,7 @@
- (void) uploadDisplayTextures:(const GLvoid *)textureData displayMode:(const NSInteger)displayModeID width:(const GLsizei)texWidth height:(const GLsizei)texHeight; - (void) uploadDisplayTextures:(const GLvoid *)textureData displayMode:(const NSInteger)displayModeID width:(const GLsizei)texWidth height:(const GLsizei)texHeight;
- (void) renderDisplayUsingDisplayMode:(const NSInteger)displayModeID; - (void) renderDisplayUsingDisplayMode:(const NSInteger)displayModeID;
- (void) updateDisplayVerticesUsingDisplayMode:(const NSInteger)displayModeID orientation:(const NSInteger)displayOrientationID; - (void) updateDisplayVerticesUsingDisplayMode:(const NSInteger)displayModeID orientation:(const NSInteger)displayOrientationID;
- (void) updateTexCoordS:(GLfloat)s T:(GLfloat)t;
@end @end
@ -170,7 +170,7 @@ extern "C"
{ {
#endif #endif
GLint SetupShaders(GLuint *programID, GLuint *vertShaderID, const char *vertShaderProgram, GLuint *fragShaderID, const char *fragShaderProgram); GLint SetupShaders(GLuint *programID, GLuint *vertShaderID, GLuint *fragShaderID, const char *vertShaderProgram, const char *fragShaderProgram);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -680,7 +680,7 @@ enum OGLVertexAttributeID
[view doResizeView:rect]; [view doResizeView:rect];
} }
- (void) doTransformView:(DisplayOutputTransformData *)transformData - (void) doTransformView:(const DisplayOutputTransformData *)transformData
{ {
if (view == nil || ![view respondsToSelector:@selector(doTransformView:)]) if (view == nil || ![view respondsToSelector:@selector(doTransformView:)])
{ {
@ -994,7 +994,6 @@ enum OGLVertexAttributeID
lastDisplayMode = DS_DISPLAY_TYPE_COMBO; lastDisplayMode = DS_DISPLAY_TYPE_COMBO;
currentDisplayOrientation = DS_DISPLAY_ORIENTATION_VERTICAL; currentDisplayOrientation = DS_DISPLAY_ORIENTATION_VERTICAL;
glTexPixelFormat = GL_UNSIGNED_SHORT_1_5_5_5_REV; glTexPixelFormat = GL_UNSIGNED_SHORT_1_5_5_5_REV;
glTexRenderStyle = GL_LINEAR;
UInt32 w = GetNearestPositivePOT((UInt32)GPU_DISPLAY_WIDTH); UInt32 w = GetNearestPositivePOT((UInt32)GPU_DISPLAY_WIDTH);
UInt32 h = GetNearestPositivePOT((UInt32)(GPU_DISPLAY_HEIGHT * 2.0)); UInt32 h = GetNearestPositivePOT((UInt32)(GPU_DISPLAY_HEIGHT * 2.0));
@ -1002,9 +1001,6 @@ enum OGLVertexAttributeID
glTexBackSize = NSMakeSize(w, h); glTexBackSize = NSMakeSize(w, h);
cglDisplayContext = (CGLContextObj)[[self openGLContext] CGLContextObj]; cglDisplayContext = (CGLContextObj)[[self openGLContext] CGLContextObj];
vtxBuffer = new GLint[4 * 8];
texCoordBuffer = new GLfloat[2 * 8];
vtxIndexBuffer = new GLubyte[12];
vtxBufferOffset = 0; vtxBufferOffset = 0;
return self; return self;
@ -1038,15 +1034,6 @@ enum OGLVertexAttributeID
CGLSetCurrentContext(prevContext); CGLSetCurrentContext(prevContext);
delete [] vtxBuffer;
vtxBuffer = NULL;
delete [] texCoordBuffer;
texCoordBuffer = NULL;
delete [] vtxIndexBuffer;
vtxIndexBuffer = NULL;
free(glTexBack); free(glTexBack);
glTexBack = NULL; glTexBack = NULL;
@ -1074,26 +1061,8 @@ enum OGLVertexAttributeID
- (void)prepareOpenGL - (void)prepareOpenGL
{ {
// Set up initial display vertices [self updateDisplayVerticesUsingDisplayMode:lastDisplayMode orientation:currentDisplayOrientation];
vtxBuffer[0] = -GPU_DISPLAY_WIDTH/2; vtxBuffer[1] = GPU_DISPLAY_HEIGHT; // Top display, top left [self updateTexCoordS:1.0f T:2.0f];
vtxBuffer[2] = GPU_DISPLAY_WIDTH/2; vtxBuffer[3] = GPU_DISPLAY_HEIGHT; // Top display, top right
vtxBuffer[4] = GPU_DISPLAY_WIDTH/2; vtxBuffer[5] = 0; // Top display, bottom right
vtxBuffer[6] = -GPU_DISPLAY_WIDTH/2; vtxBuffer[7] = 0; // Top display, bottom left
vtxBuffer[8] = -GPU_DISPLAY_WIDTH/2; vtxBuffer[9] = 0; // Bottom display, top left
vtxBuffer[10] = GPU_DISPLAY_WIDTH/2; vtxBuffer[11] = 0; // Bottom display, top right
vtxBuffer[12] = GPU_DISPLAY_WIDTH/2; vtxBuffer[13] = -GPU_DISPLAY_HEIGHT; // Bottom display, bottom right
vtxBuffer[14] = -GPU_DISPLAY_WIDTH/2; vtxBuffer[15] = -GPU_DISPLAY_HEIGHT; // Bottom display, bottom left
memcpy(vtxBuffer + (2 * 8), vtxBuffer + (0 * 8), sizeof(GLint) * (2 * 8));
// Set up initial texture coordinates
texCoordBuffer[0] = 0.0f; texCoordBuffer[1] = 0.0f;
texCoordBuffer[2] = 1.0f; texCoordBuffer[3] = 0.0f;
texCoordBuffer[4] = 1.0f; texCoordBuffer[5] = 1.0f;
texCoordBuffer[6] = 0.0f; texCoordBuffer[7] = 1.0f;
memcpy(texCoordBuffer + (1 * 8), texCoordBuffer + (0 * 8), sizeof(GLfloat) * (1 * 8));
// Set up initial vertex elements // Set up initial vertex elements
vtxIndexBuffer[0] = 0; vtxIndexBuffer[1] = 1; vtxIndexBuffer[2] = 2; vtxIndexBuffer[0] = 0; vtxIndexBuffer[1] = 1; vtxIndexBuffer[2] = 2;
@ -1145,7 +1114,7 @@ enum OGLVertexAttributeID
gluCheckExtension((const GLubyte *)"GL_ARB_vertex_program", glExtString) ); gluCheckExtension((const GLubyte *)"GL_ARB_vertex_program", glExtString) );
if (isShadersSupported) if (isShadersSupported)
{ {
GLint shaderStatus = SetupShaders(&shaderProgram, &vertexShaderID, vShader_100, &fragmentShaderID, fShader_100); GLint shaderStatus = SetupShaders(&shaderProgram, &vertexShaderID, &fragmentShaderID, vShader_100, fShader_100);
if (shaderStatus == GL_TRUE) if (shaderStatus == GL_TRUE)
{ {
glUseProgram(shaderProgram); glUseProgram(shaderProgram);
@ -1289,7 +1258,7 @@ enum OGLVertexAttributeID
} }
const GLsizei vtxElementCount = (displayModeID == DS_DISPLAY_TYPE_COMBO) ? 12 : 6; const GLsizei vtxElementCount = (displayModeID == DS_DISPLAY_TYPE_COMBO) ? 12 : 6;
GLubyte *elementPointer = isVBOSupported ? NULL : vtxIndexBuffer; GLubyte *elementPointer = isVBOSupported ? 0 : vtxIndexBuffer;
if (displayModeID == DS_DISPLAY_TYPE_TOUCH) if (displayModeID == DS_DISPLAY_TYPE_TOUCH)
{ {
@ -1335,8 +1304,8 @@ enum OGLVertexAttributeID
- (void) updateDisplayVerticesUsingDisplayMode:(const NSInteger)displayModeID orientation:(const NSInteger)displayOrientationID - (void) updateDisplayVerticesUsingDisplayMode:(const NSInteger)displayModeID orientation:(const NSInteger)displayOrientationID
{ {
GLint w = (GLint)GPU_DISPLAY_WIDTH; const GLint w = (GLint)GPU_DISPLAY_WIDTH;
GLint h = (GLint)GPU_DISPLAY_HEIGHT; const GLint h = (GLint)GPU_DISPLAY_HEIGHT;
if (displayModeID == DS_DISPLAY_TYPE_COMBO) if (displayModeID == DS_DISPLAY_TYPE_COMBO)
{ {
@ -1382,6 +1351,19 @@ enum OGLVertexAttributeID
} }
} }
- (void) updateTexCoordS:(GLfloat)s T:(GLfloat)t
{
texCoordBuffer[0] = 0.0f; texCoordBuffer[1] = 0.0f;
texCoordBuffer[2] = s; texCoordBuffer[3] = 0.0f;
texCoordBuffer[4] = s; texCoordBuffer[5] = t/2.0f;
texCoordBuffer[6] = 0.0f; texCoordBuffer[7] = t/2.0f;
texCoordBuffer[8] = 0.0f; texCoordBuffer[9] = t/2.0f;
texCoordBuffer[10] = s; texCoordBuffer[11] = t/2.0f;
texCoordBuffer[12] = s; texCoordBuffer[13] = t;
texCoordBuffer[14] = 0.0f; texCoordBuffer[15] = t;
}
- (void)keyDown:(NSEvent *)theEvent - (void)keyDown:(NSEvent *)theEvent
{ {
BOOL isHandled = [dispViewDelegate handleKeyPress:theEvent keyPressed:YES]; BOOL isHandled = [dispViewDelegate handleKeyPress:theEvent keyPressed:YES];
@ -1522,10 +1504,10 @@ enum OGLVertexAttributeID
CGLUnlockContext(cglDisplayContext); CGLUnlockContext(cglDisplayContext);
} }
- (void) doTransformView:(DisplayOutputTransformData *)transformData - (void) doTransformView:(const DisplayOutputTransformData *)transformData
{ {
GLfloat angleDegrees = (GLfloat)transformData->rotation; const GLfloat angleDegrees = (GLfloat)transformData->rotation;
GLfloat s = (GLfloat)transformData->scale; const GLfloat s = (GLfloat)transformData->scale;
CGLLockContext(cglDisplayContext); CGLLockContext(cglDisplayContext);
CGLSetCurrentContext(cglDisplayContext); CGLSetCurrentContext(cglDisplayContext);
@ -1562,32 +1544,28 @@ enum OGLVertexAttributeID
lastDisplayMode = displayModeID; lastDisplayMode = displayModeID;
[self updateDisplayVerticesUsingDisplayMode:displayModeID orientation:currentDisplayOrientation]; [self updateDisplayVerticesUsingDisplayMode:displayModeID orientation:currentDisplayOrientation];
CGLLockContext(cglDisplayContext);
CGLSetCurrentContext(cglDisplayContext);
if (isVBOSupported) if (isVBOSupported)
{ {
CGLLockContext(cglDisplayContext);
CGLSetCurrentContext(cglDisplayContext);
glBindBuffer(GL_ARRAY_BUFFER, vboVertexID); glBindBuffer(GL_ARRAY_BUFFER, vboVertexID);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(GLint) * (2 * 8), vtxBuffer + vtxBufferOffset); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(GLint) * (2 * 8), vtxBuffer + vtxBufferOffset);
glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0);
CGLUnlockContext(cglDisplayContext);
} }
CGLUnlockContext(cglDisplayContext);
} }
- (void)doBilinearOutputChanged:(BOOL)useBilinear - (void)doBilinearOutputChanged:(BOOL)useBilinear
{ {
glTexRenderStyle = GL_NEAREST; const GLint textureFilter = useBilinear ? GL_LINEAR : GL_NEAREST;
if (useBilinear)
{
glTexRenderStyle = GL_LINEAR;
}
CGLLockContext(cglDisplayContext); CGLLockContext(cglDisplayContext);
glBindTexture(GL_TEXTURE_2D, displayTexID); glBindTexture(GL_TEXTURE_2D, displayTexID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, glTexRenderStyle); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, textureFilter);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, glTexRenderStyle); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, textureFilter);
glBindTexture(GL_TEXTURE_2D, 0); glBindTexture(GL_TEXTURE_2D, 0);
CGLUnlockContext(cglDisplayContext); CGLUnlockContext(cglDisplayContext);
@ -1598,17 +1576,17 @@ enum OGLVertexAttributeID
currentDisplayOrientation = displayOrientationID; currentDisplayOrientation = displayOrientationID;
[self updateDisplayVerticesUsingDisplayMode:lastDisplayMode orientation:displayOrientationID]; [self updateDisplayVerticesUsingDisplayMode:lastDisplayMode orientation:displayOrientationID];
CGLLockContext(cglDisplayContext);
CGLSetCurrentContext(cglDisplayContext);
if (isVBOSupported) if (isVBOSupported)
{ {
CGLLockContext(cglDisplayContext);
CGLSetCurrentContext(cglDisplayContext);
glBindBuffer(GL_ARRAY_BUFFER, vboVertexID); glBindBuffer(GL_ARRAY_BUFFER, vboVertexID);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(GLint) * (2 * 8), vtxBuffer + vtxBufferOffset); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(GLint) * (2 * 8), vtxBuffer + vtxBufferOffset);
glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, 0);
CGLUnlockContext(cglDisplayContext);
} }
CGLUnlockContext(cglDisplayContext);
} }
- (void) doDisplayOrderChanged:(NSInteger)displayOrderID - (void) doDisplayOrderChanged:(NSInteger)displayOrderID
@ -1643,12 +1621,7 @@ enum OGLVertexAttributeID
- (void)doVerticalSyncChanged:(BOOL)useVerticalSync - (void)doVerticalSyncChanged:(BOOL)useVerticalSync
{ {
GLint swapInt = 0; const GLint swapInt = useVerticalSync ? 1 : 0;
if (useVerticalSync)
{
swapInt = 1;
}
CGLSetParameter(cglDisplayContext, kCGLCPSwapInterval, &swapInt); CGLSetParameter(cglDisplayContext, kCGLCPSwapInterval, &swapInt);
} }
@ -1671,8 +1644,8 @@ enum OGLVertexAttributeID
// Convert textures to Power-of-Two to support older GPUs // Convert textures to Power-of-Two to support older GPUs
// Example: Radeon X1600M on the 2006 MacBook Pro // Example: Radeon X1600M on the 2006 MacBook Pro
uint32_t potW = GetNearestPositivePOT((uint32_t)videoFilterDestSize.width); const uint32_t potW = GetNearestPositivePOT((uint32_t)videoFilterDestSize.width);
uint32_t potH = GetNearestPositivePOT((uint32_t)videoFilterDestSize.height); const uint32_t potH = GetNearestPositivePOT((uint32_t)videoFilterDestSize.height);
if (glTexBackSize.width != potW || glTexBackSize.height != potH) if (glTexBackSize.width != potW || glTexBackSize.height != potH)
{ {
@ -1689,17 +1662,7 @@ enum OGLVertexAttributeID
const GLfloat s = (GLfloat)videoFilterDestSize.width / (GLfloat)potW; const GLfloat s = (GLfloat)videoFilterDestSize.width / (GLfloat)potW;
const GLfloat t = (GLfloat)videoFilterDestSize.height / (GLfloat)potH; const GLfloat t = (GLfloat)videoFilterDestSize.height / (GLfloat)potH;
[self updateTexCoordS:s T:t];
// Set up texture coordinates
texCoordBuffer[0] = 0.0f; texCoordBuffer[1] = 0.0f;
texCoordBuffer[2] = s; texCoordBuffer[3] = 0.0f;
texCoordBuffer[4] = s; texCoordBuffer[5] = t/2.0f;
texCoordBuffer[6] = 0.0f; texCoordBuffer[7] = t/2.0f;
texCoordBuffer[8] = 0.0f; texCoordBuffer[9] = t/2.0f;
texCoordBuffer[10] = s; texCoordBuffer[11] = t/2.0f;
texCoordBuffer[12] = s; texCoordBuffer[13] = t;
texCoordBuffer[14] = 0.0f; texCoordBuffer[15] = t;
CGLLockContext(cglDisplayContext); CGLLockContext(cglDisplayContext);
@ -1719,7 +1682,7 @@ enum OGLVertexAttributeID
@end @end
GLint SetupShaders(GLuint *programID, GLuint *vertShaderID, const char *vertShaderProgram, GLuint *fragShaderID, const char *fragShaderProgram) GLint SetupShaders(GLuint *programID, GLuint *vertShaderID, GLuint *fragShaderID, const char *vertShaderProgram, const char *fragShaderProgram)
{ {
GLint shaderStatus = GL_TRUE; GLint shaderStatus = GL_TRUE;

View File

@ -2131,6 +2131,7 @@
[[(NSControl *)sender window] makeFirstResponder:nil]; [[(NSControl *)sender window] makeFirstResponder:nil];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagAdvancedBusLevelTiming] forKey:@"Emulation_AdvancedBusLevelTiming"]; [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagAdvancedBusLevelTiming] forKey:@"Emulation_AdvancedBusLevelTiming"];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagRigorousTiming] forKey:@"Emulation_RigorousTiming"];
[[NSUserDefaults standardUserDefaults] setInteger:[cdsCore cpuEmulationEngine] forKey:@"Emulation_CPUEmulationEngine"]; [[NSUserDefaults standardUserDefaults] setInteger:[cdsCore cpuEmulationEngine] forKey:@"Emulation_CPUEmulationEngine"];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagUseExternalBios] forKey:@"Emulation_UseExternalBIOSImages"]; [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagUseExternalBios] forKey:@"Emulation_UseExternalBIOSImages"];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagEmulateBiosInterrupts] forKey:@"Emulation_BIOSEmulateSWI"]; [[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagEmulateBiosInterrupts] forKey:@"Emulation_BIOSEmulateSWI"];