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;
BOOL emuFlagAdvancedBusLevelTiming;
BOOL emuFlagRigorousTiming;
BOOL emuFlagUseExternalBios;
BOOL emuFlagEmulateBiosInterrupts;
BOOL emuFlagPatchDelayLoop;
@ -88,6 +89,7 @@ typedef struct
@property (assign) NSUInteger emulationFlags;
@property (assign) BOOL emuFlagAdvancedBusLevelTiming;
@property (assign) BOOL emuFlagRigorousTiming;
@property (assign) BOOL emuFlagUseExternalBios;
@property (assign) BOOL emuFlagEmulateBiosInterrupts;
@property (assign) BOOL emuFlagPatchDelayLoop;

View File

@ -49,6 +49,7 @@ volatile bool execute = true;
@dynamic emulationFlags;
@synthesize emuFlagAdvancedBusLevelTiming;
@synthesize emuFlagRigorousTiming;
@synthesize emuFlagUseExternalBios;
@synthesize emuFlagEmulateBiosInterrupts;
@synthesize emuFlagPatchDelayLoop;
@ -80,6 +81,7 @@ static BOOL isCoreStarted = NO;
emulationFlags = EMULATION_ADVANCED_BUS_LEVEL_TIMING_MASK;
emuFlagAdvancedBusLevelTiming = YES;
emuFlagRigorousTiming = NO;
emuFlagUseExternalBios = NO;
emuFlagEmulateBiosInterrupts = NO;
emuFlagPatchDelayLoop = NO;
@ -379,6 +381,17 @@ static BOOL isCoreStarted = NO;
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)
{
self.emuFlagEmulateEnsata = YES;

View File

@ -236,7 +236,8 @@ enum
EMULATION_BOOT_FROM_FIRMWARE_BIT = 6,
EMULATION_SLEEP_BIT = 7,
EMULATION_CARD_EJECT_BIT = 8,
EMULATION_DEBUG_CONSOLE_BIT = 9
EMULATION_DEBUG_CONSOLE_BIT = 9,
EMULATION_RIGOROUS_TIMING_BIT = 10
};
enum
@ -250,7 +251,8 @@ enum
EMULATION_BOOT_FROM_FIRMWARE_MASK = 1 << EMULATION_BOOT_FROM_FIRMWARE_BIT,
EMULATION_SLEEP_MASK = 1 << EMULATION_SLEEP_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

View File

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

View File

@ -7046,7 +7046,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="NSClassName">InputPrefsView</string>
</object>
<object class="NSCustomView" id="373257179">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -7055,13 +7055,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">12</int>
<string key="NSFrame">{{13, 10}, {463, 401}}</string>
<reference key="NSSuperview" ref="373257179"/>
<reference key="NSWindow"/>
<object class="NSMutableArray" key="NSTabViewItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTabViewItem" id="750316744">
<string key="NSIdentifier">1</string>
<object class="NSView" key="NSView" id="698863500">
<reference key="NSNextResponder" ref="286093627"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -7080,7 +7079,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{72, 44}, {84, 17}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1051872315">
<int key="NSCellFlags">68288064</int>
@ -7097,7 +7095,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{44, 16}, {112, 17}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="279286359">
<int key="NSCellFlags">68288064</int>
@ -7114,7 +7111,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{158, 38}, {126, 26}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="644484329">
<int key="NSCellFlags">-2076049856</int>
@ -7195,7 +7191,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{289, 14}, {96, 22}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="689714106">
<int key="NSCellFlags">-1804468671</int>
@ -7273,7 +7268,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{63, 72}, {93, 17}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="86457779">
<int key="NSCellFlags">68288064</int>
@ -7290,7 +7284,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{158, 66}, {126, 26}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="977881385">
<int key="NSCellFlags">-2076049856</int>
@ -7358,7 +7351,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{158, 11}, {126, 26}}</string>
<reference key="NSSuperview" ref="610612997"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="729105354">
<int key="NSCellFlags">-2076049856</int>
@ -7460,12 +7452,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {429, 100}}</string>
<reference key="NSSuperview" ref="654619277"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{6, 187}, {431, 116}}</string>
<reference key="NSSuperview" ref="698863500"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -7509,7 +7499,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {100, 38}}</string>
<reference key="NSSuperview" ref="713770080"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<int key="NSNumRows">2</int>
<int key="NSNumCols">1</int>
@ -7700,12 +7689,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {194, 62}}</string>
<reference key="NSSuperview" ref="405894970"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{15, 10}, {196, 78}}</string>
<reference key="NSSuperview" ref="320484480"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -7739,7 +7726,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {150, 38}}</string>
<reference key="NSSuperview" ref="533349872"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<int key="NSNumRows">2</int>
<int key="NSNumCols">1</int>
@ -7930,12 +7916,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {194, 62}}</string>
<reference key="NSSuperview" ref="1057767226"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{218, 10}, {196, 78}}</string>
<reference key="NSSuperview" ref="320484480"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -7957,12 +7941,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {429, 98}}</string>
<reference key="NSSuperview" ref="367271593"/>
<reference key="NSWindow"/>
</object>
</object>
<string key="NSFrame">{{6, 69}, {431, 114}}</string>
<reference key="NSSuperview" ref="698863500"/>
<reference key="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -7983,8 +7965,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string key="NSFrame">{{10, 33}, {443, 355}}</string>
<reference key="NSSuperview" ref="286093627"/>
<reference key="NSWindow"/>
</object>
<string key="NSLabel">Display Views</string>
<reference key="NSColor" ref="266180242"/>
@ -8354,7 +8334,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTabViewItem" id="521164677">
<string key="NSIdentifier">4</string>
<object class="NSView" key="NSView" id="926005793">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder" ref="286093627"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -8708,7 +8688,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">Automatic</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<reference key="NSOnImage" ref="396634170"/>
@ -8726,7 +8705,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">Single-Threaded</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="396634170"/>
<reference key="NSMixedImage" ref="678976864"/>
@ -8738,7 +8716,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSMenu" ref="429092686"/>
<string key="NSTitle">2 Threads</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="396634170"/>
<reference key="NSMixedImage" ref="678976864"/>
@ -8757,6 +8734,17 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSTag">4</int>
<reference key="NSTarget" ref="770553605"/>
</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>
<reference key="NSMenuFont" ref="462791774"/>
</object>
@ -8920,26 +8908,25 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<string key="NSFrame">{{10, 33}, {443, 355}}</string>
<reference key="NSSuperview" ref="286093627"/>
</object>
<string key="NSLabel">3D Rendering</string>
<reference key="NSColor" ref="266180242"/>
<reference key="NSTabView" ref="286093627"/>
</object>
</object>
<reference key="NSSelectedTabViewItem" ref="750316744"/>
<reference key="NSSelectedTabViewItem" ref="521164677"/>
<reference key="NSFont" ref="462791774"/>
<int key="NSTvFlags">0</int>
<bool key="NSAllowTruncatedLabels">YES</bool>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="698863500"/>
<reference ref="926005793"/>
</object>
</object>
</object>
<string key="NSFrameSize">{489, 425}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomView" id="704316683">
@ -10525,7 +10512,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="621197304">
<reference key="NSNextResponder" ref="330186328"/>
<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"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="152711854">
@ -10544,12 +10531,34 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSPeriodicInterval">25</int>
</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>
<string key="NSFrame">{{1, 1}, {494, 38}}</string>
<string key="NSFrame">{{1, 1}, {494, 58}}</string>
<reference key="NSSuperview" ref="699930286"/>
</object>
</object>
<string key="NSFrame">{{17, 536}, {496, 54}}</string>
<string key="NSFrame">{{17, 536}, {496, 74}}</string>
<reference key="NSSuperview" ref="748902585"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -10570,7 +10579,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSTransparent">NO</bool>
</object>
</object>
<string key="NSFrameSize">{530, 610}</string>
<string key="NSFrameSize">{530, 630}</string>
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomObject" id="660705428">
@ -14128,7 +14137,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSWindowTemplate" id="193751677">
<int key="NSWindowStyleMask">279</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>
<string key="NSWindowTitle">Emulation Settings</string>
<string key="NSWindowClass">NSPanel</string>
@ -14152,7 +14161,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="858194736">
<reference key="NSNextResponder" ref="522589149"/>
<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"/>
<int key="NSTag">1</int>
<bool key="NSEnabled">YES</bool>
@ -14172,12 +14181,35 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSPeriodicInterval">25</int>
</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>
<string key="NSFrame">{{1, 1}, {244, 38}}</string>
<string key="NSFrame">{{1, 1}, {244, 58}}</string>
<reference key="NSSuperview" ref="125800740"/>
</object>
</object>
<string key="NSFrame">{{17, 404}, {246, 54}}</string>
<string key="NSFrame">{{17, 404}, {246, 74}}</string>
<reference key="NSSuperview" ref="279931197"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
@ -14747,7 +14779,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSTransparent">NO</bool>
</object>
</object>
<string key="NSFrameSize">{280, 478}</string>
<string key="NSFrameSize">{280, 498}</string>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
@ -16126,14 +16158,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSWindowTemplate" id="443896366">
<int key="NSWindowStyleMask">279</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>
<string key="NSWindowTitle">3D Rendering Settings</string>
<string key="NSWindowClass">NSPanel</string>
<nil key="NSViewClass"/>
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
<object class="NSView" key="NSWindowView" id="729561310">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -16152,7 +16184,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 77}, {206, 18}}</string>
<reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="715693022">
<int key="NSCellFlags">-2080244224</int>
@ -16175,7 +16206,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 57}, {134, 18}}</string>
<reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="874032897">
<int key="NSCellFlags">-2080244224</int>
@ -16198,7 +16228,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 37}, {80, 18}}</string>
<reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="67001337">
<int key="NSCellFlags">-2080244224</int>
@ -16221,7 +16250,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{185, 12}, {45, 19}}</string>
<reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="424545719">
<int key="NSCellFlags">-1804468671</int>
@ -16302,7 +16330,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 14}, {165, 14}}</string>
<reference key="NSSuperview" ref="372893695"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="714807735">
<int key="NSCellFlags">68288064</int>
@ -16317,12 +16344,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {248, 103}}</string>
<reference key="NSSuperview" ref="219189503"/>
<reference key="NSWindow"/>
</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="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -16346,7 +16371,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{65, 18}, {154, 19}}</string>
<reference key="NSSuperview" ref="729561310"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="837427736">
<int key="NSCellFlags">-2080244224</int>
@ -16377,7 +16401,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 14}, {107, 58}}</string>
<reference key="NSSuperview" ref="909175549"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<int key="NSNumRows">3</int>
<int key="NSNumCols">1</int>
@ -16582,12 +16605,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {248, 82}}</string>
<reference key="NSSuperview" ref="299127137"/>
<reference key="NSWindow"/>
</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="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -16619,11 +16640,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMatrix" id="504079454">
<reference key="NSNextResponder" ref="1000433834"/>
<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="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<int key="NSNumRows">4</int>
<int key="NSNumRows">5</int>
<int key="NSNumCols">1</int>
<object class="NSMutableArray" key="NSCells">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -16808,6 +16828,19 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</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>
<string key="NSCellSize">{120, 18}</string>
<string key="NSIntercellSpacing">{4, 2}</string>
@ -16871,14 +16904,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="NSFont" ref="462791774"/>
</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="NSWindow"/>
</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="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -16912,7 +16943,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 32}, {113, 18}}</string>
<reference key="NSSuperview" ref="887816052"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="394241287">
<int key="NSCellFlags">-2080244224</int>
@ -16935,7 +16965,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 12}, {108, 18}}</string>
<reference key="NSSuperview" ref="887816052"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="109440671">
<int key="NSCellFlags">-2080244224</int>
@ -16956,12 +16985,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {248, 58}}</string>
<reference key="NSSuperview" ref="353783913"/>
<reference key="NSWindow"/>
</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="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -16995,7 +17022,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {192, 18}}</string>
<reference key="NSSuperview" ref="633221410"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="477056413">
<int key="NSCellFlags">67239424</int>
@ -17016,12 +17042,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string key="NSFrame">{{1, 1}, {248, 38}}</string>
<reference key="NSSuperview" ref="226041199"/>
<reference key="NSWindow"/>
</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="NSWindow"/>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67239424</int>
@ -17041,9 +17065,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bool key="NSTransparent">NO</bool>
</object>
</object>
<string key="NSFrameSize">{284, 540}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<string key="NSFrameSize">{284, 560}</string>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
@ -21328,6 +21350,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>emuFlagDebugConsole</string>
<string>emuFlagEmulateEnsata</string>
<string>cpuEmulationEngine</string>
<string>emuFlagRigorousTiming</string>
</object>
<string key="NSObjectClassName">CocoaDSCore</string>
<object class="_NSManagedProxy" key="_NSManagedProxy"/>
@ -30990,6 +31013,54 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<int key="connectionID">6626</int>
</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 class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -34048,6 +34119,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="621197304"/>
<reference ref="689857730"/>
</object>
<reference key="parent" ref="748902585"/>
</object>
@ -35988,12 +36060,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="729561310"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="299127137"/>
<reference ref="219189503"/>
<reference ref="353783913"/>
<reference ref="226041199"/>
<reference ref="264524412"/>
<reference ref="412885015"/>
<reference ref="299127137"/>
</object>
<reference key="parent" ref="443896366"/>
</object>
@ -36304,6 +36376,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="1010242094"/>
<reference ref="810290799"/>
<reference ref="397573010"/>
<reference ref="999158072"/>
</object>
<reference key="parent" ref="264524412"/>
</object>
@ -36383,6 +36456,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="394325233"/>
<reference ref="756001238"/>
<reference ref="763291224"/>
<reference ref="341466928"/>
</object>
<reference key="parent" ref="770553605"/>
</object>
@ -36567,11 +36641,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="125800740"/>
<reference ref="625333914"/>
<reference ref="675619133"/>
<reference ref="64774571"/>
<reference ref="1070563138"/>
<reference ref="872295948"/>
<reference ref="625333914"/>
</object>
<reference key="parent" ref="193751677"/>
</object>
@ -36581,6 +36655,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="858194736"/>
<reference ref="771239136"/>
</object>
<reference key="parent" ref="279931197"/>
</object>
@ -42290,6 +42365,44 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="995020498"/>
<reference key="parent" ref="408650936"/>
</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 class="NSMutableDictionary" key="flattenedProperties">
@ -44404,6 +44517,17 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>6623.IBAttributePlaceholdersKey</string>
<string>6623.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.IBPluginDependency</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>
</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>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABDyAAAA</bytes>
<bytes key="NSTransformStruct">AUGIAABEEQAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
@ -45506,7 +45630,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
<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>
<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>{{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>
@ -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>{{1136, 1063}, {194, 73}}</string>
<string>{{1278, 1063}, {194, 73}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>{{525, 802}, {197, 73}}</string>
@ -45868,7 +45992,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBiAAAwswAAA</bytes>
</object>
<string>{{756, 1136}, {512, 20}}</string>
<string>{{841, 1136}, {512, 20}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>{74, 862}</string>
@ -45883,7 +46007,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABBiAAAw6WAAA</bytes>
</object>
<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>{{475, 832}, {234, 43}}</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>{{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>
@ -46228,14 +46352,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">AUGIAABDIwAAA</bytes>
</object>
<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>{{1300, 177}, {284, 540}}</string>
<string>{{1296, 339}, {284, 560}}</string>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABCggAAwgwAAA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABCggAAwr4AAA</bytes>
</object>
<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>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABDxoAAA</bytes>
<bytes key="NSTransformStruct">AUGIAABD3QAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
@ -46386,7 +46510,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABBkAAAwrQAAA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABBkAAAwxgAAA</bytes>
</object>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
@ -46453,7 +46577,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABDegAAwmgAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{881, 382}, {180, 83}}</string>
<string>{{1217, 593}, {166, 103}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableDictionary">
<string key="NS.key.0">ToolTip</string>
@ -46514,7 +46638,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<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>
@ -46616,21 +46740,21 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABEEwAAA</bytes>
</object>
<string>{{1322, 684}, {280, 478}}</string>
<string>{{1322, 664}, {280, 498}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{1322, 684}, {280, 478}}</string>
<string>{{1322, 664}, {280, 498}}</string>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUGIAABD2oAAA</bytes>
<bytes key="NSTransformStruct">AUGIAABD8AAAA</bytes>
</object>
<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="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>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -47299,7 +47423,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABCMAAAw/gAAA</bytes>
</object>
<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>
<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>{{487, 953}, {203, 183}}</string>
<string>{{853, 953}, {203, 183}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>{{23, 794}, {245, 183}}</string>
@ -47790,7 +47914,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABC+gAAw44AAA</bytes>
</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>
<object class="NSAffineTransform">
@ -48233,7 +48357,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<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>
<object class="NSAffineTransform">
@ -48264,7 +48388,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUKKAABDxwAAA</bytes>
<bytes key="NSTransformStruct">AUGIAABDoQAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<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>{{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>{{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>
@ -48703,6 +48827,49 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<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>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform"/>
@ -48715,11 +48882,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<integer value="1"/>
<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>{{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>
@ -48743,7 +48910,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>{{858, 833}, {262, 303}}</string>
<string>{{943, 833}, {262, 303}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<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>{{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>
@ -49052,7 +49219,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">6626</int>
<int key="maxID">6650</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">

View File

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

View File

@ -36,7 +36,7 @@
@optional
- (void) doResizeView:(NSRect)rect;
- (void) doTransformView:(DisplayOutputTransformData *)transformData;
- (void) doTransformView:(const DisplayOutputTransformData *)transformData;
- (void) doRedraw;
- (void) doDisplayModeChanged:(NSInteger)displayModeID;
- (void) doDisplayOrientationChanged:(NSInteger)displayOrientationID;
@ -130,7 +130,6 @@
DisplayViewDelegate *dispViewDelegate;
NSInteger lastDisplayMode;
NSInteger currentDisplayOrientation;
GLint glTexRenderStyle;
GLenum glTexPixelFormat;
GLvoid *glTexBack;
NSSize glTexBackSize;
@ -150,9 +149,9 @@
GLint uniformScalar;
GLint uniformViewSize;
GLint *vtxBuffer;
GLfloat *texCoordBuffer;
GLubyte *vtxIndexBuffer;
GLint vtxBuffer[4 * 8];
GLfloat texCoordBuffer[2 * 8];
GLubyte vtxIndexBuffer[12];
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) renderDisplayUsingDisplayMode:(const NSInteger)displayModeID;
- (void) updateDisplayVerticesUsingDisplayMode:(const NSInteger)displayModeID orientation:(const NSInteger)displayOrientationID;
- (void) updateTexCoordS:(GLfloat)s T:(GLfloat)t;
@end
@ -170,7 +170,7 @@ extern "C"
{
#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
}

View File

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

View File

@ -2131,6 +2131,7 @@
[[(NSControl *)sender window] makeFirstResponder:nil];
[[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] setBool:[cdsCore emuFlagUseExternalBios] forKey:@"Emulation_UseExternalBIOSImages"];
[[NSUserDefaults standardUserDefaults] setBool:[cdsCore emuFlagEmulateBiosInterrupts] forKey:@"Emulation_BIOSEmulateSWI"];