diff --git a/desmume/src/cocoa/OGLDisplayOutput.cpp b/desmume/src/cocoa/OGLDisplayOutput.cpp index 33375fc70..b5038fe6c 100644 --- a/desmume/src/cocoa/OGLDisplayOutput.cpp +++ b/desmume/src/cocoa/OGLDisplayOutput.cpp @@ -4994,6 +4994,7 @@ void OGLImage::UploadHQnxLUTs() glGenTextures(1, &_texLQ2xLUT); glGenTextures(1, &_texHQ2xLUT); + glGenTextures(1, &_texHQ3xLUT); glGenTextures(1, &_texHQ4xLUT); glActiveTexture(GL_TEXTURE0 + 1); @@ -5824,6 +5825,7 @@ void OGLDisplayLayer::UploadHQnxLUTs() glGenTextures(1, &_texLQ2xLUT); glGenTextures(1, &_texHQ2xLUT); + glGenTextures(1, &_texHQ3xLUT); glGenTextures(1, &_texHQ4xLUT); glActiveTexture(GL_TEXTURE0 + 1); diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings index d277a3d51..3b88fb428 100644 Binary files a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings and b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings differ diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib index 57dc4ae1e..f648350fe 100644 --- a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib +++ b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib @@ -2,9 +2,9 @@ 1050 - 14D136 + 14E46 7706 - 1347.57 + 1348.17 758.70 com.apple.InterfaceBuilder.CocoaPlugin @@ -1296,6 +1296,22 @@ + + + Use Vertical Sync + + 2147483647 + + + + + + Run Filters on GPU + + 2147483647 + + + Video Source Filters @@ -3735,8 +3751,12 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA 268 + + public.item + {{13, 10}, {463, 412}} + 1 @@ -5118,6 +5138,28 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 4 + + + HQ3x + + 2147483647 + + + _popUpItemAction: + 23 + + + + + HQ3xS + + 2147483647 + + + _popUpItemAction: + 24 + + HQ4x @@ -5356,14 +5398,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{168, 347}, {129, 18}} + {{168, 347}, {130, 18}} YES 67108864 0 - Use vertical sync + Use Vertical Sync 1211912448 @@ -5440,7 +5482,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{168, 327}, {206, 18}} + {{168, 327}, {141, 18}} _NS:682 @@ -5448,7 +5490,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 -2080374784 0 - Run filters on GPU if possible + Run Filters on GPU _NS:682 @@ -6411,8 +6453,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 + + public.item + {{13, 10}, {528, 388}} + 1 @@ -7470,7 +7516,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - -1804599231 + -1267728319 71304192 @@ -7491,7 +7537,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - + - # @@ -7555,9 +7601,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - 68157504 + 605028416 4195328 - Depth Comparison Threshold: + Depth-Equals Test Tolerance: @@ -7574,11 +7620,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 YES - 67895328 + 604766240 0 - 100 + 512 1 YES @@ -20303,14 +20349,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{17, 726}, {113, 18}} + {{17, 726}, {115, 18}} YES 67108864 131072 - Use vertical sync + Use Vertical Sync 1211912448 @@ -20327,7 +20373,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{17, 706}, {178, 18}} + {{17, 706}, {124, 18}} _NS:682 @@ -20335,7 +20381,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 -2080374784 131072 - Run filters on GPU if possible + Run Filters on GPU _NS:682 @@ -20775,6 +20821,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 109}, {206, 18}} + YES -2080374784 @@ -20798,9 +20845,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{185, 39}, {45, 19}} + YES - -1804599231 + -1267728319 71435264 @@ -20810,7 +20858,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - + @@ -20834,7 +20882,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - + 3 YES @@ -20860,11 +20908,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 41}, {165, 14}} + YES - 68157504 + 605028416 4326400 - Depth Comparison Threshold: + Depth-Equals Test Tolerance: @@ -20878,6 +20927,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 15}, {109, 14}} + YES 68157504 @@ -20896,13 +20946,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{231, 34}, {19, 27}} + YES - 67895328 + 604766240 0 - 100 + 512 1 YES @@ -20913,6 +20964,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 89}, {115, 18}} + YES -2080374784 @@ -20936,6 +20988,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 69}, {195, 18}} + YES -2080374784 @@ -20959,6 +21012,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{126, 10}, {124, 22}} + _NS:791 YES @@ -21068,10 +21122,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {265, 134}} + {{17, 99}, {267, 150}} + {0, 0} 67108864 @@ -21121,6 +21177,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{18, 14}, {107, 58}} + YES NO 3 @@ -21374,10 +21431,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {265, 82}} + {{17, 349}, {267, 98}} + {0, 0} 67108864 @@ -21406,6 +21465,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 51}, {108, 18}} + YES -2080374784 @@ -21429,6 +21489,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 31}, {135, 18}} + YES -2080374784 @@ -21452,6 +21513,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 11}, {82, 18}} + YES -2080374784 @@ -21473,10 +21535,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {265, 76}} + {{17, 253}, {267, 92}} + {0, 0} 67108864 @@ -21505,6 +21569,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{16, 12}, {192, 18}} + YES 67108864 @@ -21526,10 +21591,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {265, 38}} + {{17, 41}, {267, 54}} + {0, 0} 67108864 @@ -21547,6 +21614,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {301, 467} + {{0, 0}, {1920, 1177}} {10000000000000, 10000000000000} @@ -28526,6 +28594,22 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 10025 + + + toggleVerticalSync: + + + + 10030 + + + + toggleVideoFiltersPreferGPU: + + + + 10031 + launchWebsite: @@ -29867,6 +29951,22 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 9704 + + + selectPixelScaler: + + + + 10033 + + + + selectPixelScaler: + + + + 10035 + makeKeyAndOrderFront: @@ -36850,38 +36950,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 8180 - - - value: selection.cdsGPU.render3DDepthComparisonThreshold - - - - - - value: selection.cdsGPU.render3DDepthComparisonThreshold - value - selection.cdsGPU.render3DDepthComparisonThreshold - 2 - - - 9176 - - - - value: values.Render3D_DepthComparisonThreshold - - - - - - value: values.Render3D_DepthComparisonThreshold - value - values.Render3D_DepthComparisonThreshold - 2 - - - 8198 - value: values.General_WillRestoreDisplayWindows @@ -39396,6 +39464,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + @@ -40018,6 +40088,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + @@ -52731,6 +52803,26 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + 10028 + + + + + 10029 + + + + + 10032 + + + + + 10034 + + + @@ -52752,6 +52844,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -52837,6 +52933,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {1026.5, 1076.5} com.apple.InterfaceBuilder.CocoaPlugin InitialTabViewItem @@ -52999,7 +53096,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin - {225, 828} + {225, 911} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin Emulation @@ -53443,7 +53540,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. + This value affects SoftRasterizer's fragment processing. Larger values will allow more fragments to pass the Depth-Equals test, making it more likely for certain fragments to draw. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. com.apple.InterfaceBuilder.CocoaPlugin @@ -53461,6 +53558,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {990.5, 1116.5} com.apple.InterfaceBuilder.CocoaPlugin {{84, 481}, {301, 467}} @@ -53475,7 +53573,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - When set, SoftRasterizer will adjust the order of its polygon rendering. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. + [DISABLED FOR TESTING. THIS SETTING CURRENTLY DOES NOTHING.] This value affects SoftRasterizer's fragment processing. Larger values will allow more fragments to pass the Depth-Equals test, making it more likely for certain fragments to draw. This may improve the look of some games, such as the appearance of shadows in "The Legend of Zelda: Spirit Tracks." No CPU usage. com.apple.InterfaceBuilder.CocoaPlugin @@ -55101,7 +55199,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin - {730, 913} + {638, 1267} com.apple.InterfaceBuilder.CocoaPlugin {{126, 189}, {204, 713}} @@ -55980,7 +56078,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - 10027 + 10035 @@ -56443,6 +56541,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 id id id + id + id id id id @@ -56530,6 +56630,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 toggleStatusBar: id + + toggleVerticalSync: + id + + + toggleVideoFiltersPreferGPU: + id + toggleVideoSourceDeposterize: id @@ -56621,6 +56729,8 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 id id id + id + id id id id @@ -56712,6 +56822,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 toggleStatusBar: id + + toggleVerticalSync: + id + + + toggleVideoFiltersPreferGPU: + id + toggleVideoSourceDeposterize: id @@ -56747,7 +56865,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 id id id - id id id id @@ -56814,10 +56931,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 changeFirmwareSettings: id - - changeGpuDimensions: - id - changeHardwareMicGain: id @@ -57103,7 +57216,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 id id id - id id id id @@ -57174,10 +57286,6 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 changeFirmwareSettings: id - - changeGpuDimensions: - id - changeHardwareMicGain: id diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.h b/desmume/src/cocoa/userinterface/DisplayWindowController.h index 57cf43d48..aea0f9d11 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.h +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.h @@ -172,6 +172,8 @@ class OGLVideoOutput; - (IBAction) changeDisplayOrientation:(id)sender; - (IBAction) changeDisplayOrder:(id)sender; - (IBAction) changeDisplayGap:(id)sender; +- (IBAction) toggleVerticalSync:(id)sender; +- (IBAction) toggleVideoFiltersPreferGPU:(id)sender; - (IBAction) toggleVideoSourceDeposterize:(id)sender; - (IBAction) changeVideoOutputFilter:(id)sender; - (IBAction) changeVideoPixelScaler:(id)sender; diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.mm b/desmume/src/cocoa/userinterface/DisplayWindowController.mm index 0d1836c78..7a46f3a5c 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.mm +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.mm @@ -837,6 +837,16 @@ static std::unordered_map _screenMap; // [self setDisplayGap:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; } +- (IBAction) toggleVerticalSync:(id)sender +{ + [[self view] setUseVerticalSync:![[self view] useVerticalSync]]; +} + +- (IBAction) toggleVideoFiltersPreferGPU:(id)sender +{ + [self setVideoFiltersPreferGPU:![self videoFiltersPreferGPU]]; +} + - (IBAction) toggleVideoSourceDeposterize:(id)sender { [self setVideoSourceDeposterize:![self videoSourceDeposterize]]; @@ -994,6 +1004,13 @@ static std::unordered_map _screenMap; // [(NSMenuItem *)theItem setState:([[self view] useVerticalSync]) ? NSOnState : NSOffState]; } } + else if (theAction == @selector(toggleVideoFiltersPreferGPU:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem *)theItem setState:([[self view] videoFiltersPreferGPU]) ? NSOnState : NSOffState]; + } + } else if (theAction == @selector(changeVideoPixelScaler:)) { if ([(id)theItem isMemberOfClass:[NSMenuItem class]])