diff --git a/desmume/src/cocoa/DefaultUserPrefs.plist b/desmume/src/cocoa/DefaultUserPrefs.plist
index f4cfbfa1e..7cb823a8c 100644
--- a/desmume/src/cocoa/DefaultUserPrefs.plist
+++ b/desmume/src/cocoa/DefaultUserPrefs.plist
@@ -720,10 +720,12 @@
1
Render3D_Textures
- Render3D_TextureDeposterize
-
Render3D_TextureScalingFactor
1
+ Render3D_TextureDeposterize
+
+ Render3D_TextureSmoothing
+
Render3D_Threads
0
RomInfoPanel_SectionViewState
diff --git a/desmume/src/cocoa/cocoa_GPU.h b/desmume/src/cocoa/cocoa_GPU.h
index c28d740a5..d8b7cf16e 100644
--- a/desmume/src/cocoa/cocoa_GPU.h
+++ b/desmume/src/cocoa/cocoa_GPU.h
@@ -63,6 +63,7 @@ class GPUEventHandlerOSX;
@property (assign) BOOL render3DLineHack;
@property (assign) BOOL render3DMultisample;
@property (assign) BOOL render3DTextureDeposterize;
+@property (assign) BOOL render3DTextureSmoothing;
@property (assign) NSUInteger render3DTextureScalingFactor;
@property (assign) BOOL render3DFragmentSamplingHack;
diff --git a/desmume/src/cocoa/cocoa_GPU.mm b/desmume/src/cocoa/cocoa_GPU.mm
index fc6ea4b7b..3c3382ce2 100644
--- a/desmume/src/cocoa/cocoa_GPU.mm
+++ b/desmume/src/cocoa/cocoa_GPU.mm
@@ -105,6 +105,7 @@ public:
@dynamic render3DLineHack;
@dynamic render3DMultisample;
@dynamic render3DTextureDeposterize;
+@dynamic render3DTextureSmoothing;
@dynamic render3DTextureScalingFactor;
@dynamic render3DFragmentSamplingHack;
@@ -454,6 +455,22 @@ public:
return state;
}
+- (void) setRender3DTextureSmoothing:(BOOL)state
+{
+ gpuEvent->Render3DLock();
+ CommonSettings.GFX3D_Renderer_TextureSmoothing = state ? true : false;
+ gpuEvent->Render3DUnlock();
+}
+
+- (BOOL) render3DTextureSmoothing
+{
+ gpuEvent->Render3DLock();
+ const BOOL state = CommonSettings.GFX3D_Renderer_TextureSmoothing ? YES : NO;
+ gpuEvent->Render3DUnlock();
+
+ return state;
+}
+
- (void) setRender3DTextureScalingFactor:(NSUInteger)scalingFactor
{
int newScalingFactor = (int)scalingFactor;
diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings
index 903e2ec27..61fc35837 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 5ac410a1e..d118678e9 100644
--- a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib
+++ b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib
@@ -2,7 +2,7 @@
1050
- 13F1066
+ 13F1808
851
1265.21
698.00
@@ -13,7 +13,6 @@
{{6, 113}, {496, 54}}
+
{0, 0}
@@ -7879,6 +7901,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
{{16, 32}, {146, 18}}
+
YES
@@ -7903,6 +7926,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
{{16, 12}, {118, 18}}
+
YES
67108864
@@ -7924,11 +7948,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
{{1, 1}, {494, 58}}
+
{{6, 35}, {496, 74}}
+
{0, 0}
@@ -7948,6 +7974,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
{{10, 33}, {508, 427}}
+
General Settings
@@ -8385,7 +8412,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
- {{16, 111}, {239, 18}}
+ {{123, 111}, {239, 18}}
YES
@@ -8409,7 +8436,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
- {{215, 42}, {60, 22}}
+ {{322, 42}, {60, 22}}
YES
@@ -8535,7 +8562,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
- {{15, 44}, {195, 17}}
+ {{122, 44}, {195, 17}}
YES
@@ -8554,7 +8581,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
- {{276, 39}, {19, 27}}
+ {{383, 39}, {19, 27}}
YES
@@ -8572,7 +8599,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
- {{16, 91}, {130, 18}}
+ {{123, 91}, {130, 18}}
YES
@@ -8596,7 +8623,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
268
- {{16, 71}, {225, 18}}
+ {{123, 71}, {225, 18}}
YES
@@ -8620,7 +8647,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
- {{1, 1}, {310, 137}}
+ {{1, 1}, {494, 137}}
- {{101, 110}, {312, 153}}
+ {{6, 129}, {496, 153}}
{0, 0}
@@ -8774,7 +8801,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
- {{17, 33}, {267, 96}}
+ {{17, 31}, {267, 115}}
{0, 0}
@@ -23504,8 +23579,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
NO
- {301, 526}
-
+ {301, 543}
{{0, 0}, {1920, 1177}}
@@ -30058,6 +30132,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
isInDebugTrap
cdsGPU.render3DTextureDeposterize
cdsGPU.render3DTextureScalingFactor
+ cdsGPU.render3DTextureSmoothing
CocoaDSCore
@@ -43131,6 +43206,38 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
10242
+
+
+ value: selection.cdsGPU.render3DTextureSmoothing
+
+
+
+
+
+ value: selection.cdsGPU.render3DTextureSmoothing
+ value
+ selection.cdsGPU.render3DTextureSmoothing
+ 2
+
+
+ 10246
+
+
+
+ value: values.Render3D_TextureSmoothing
+
+
+
+
+
+ value: values.Render3D_TextureSmoothing
+ value
+ values.Render3D_TextureSmoothing
+ 2
+
+
+ 10250
+
@@ -49547,6 +49654,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
+
@@ -57081,8 +57189,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
YES
-
+
+
@@ -57107,12 +57216,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
YES
-
-
-
+
+
+
@@ -58408,6 +58517,34 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
+
+ 10243
+
+
+ YES
+
+
+
+
+
+ 10244
+
+
+
+
+ 10247
+
+
+ YES
+
+
+
+
+
+ 10248
+
+
+
@@ -58588,6 +58725,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
10241.IBNumberFormatterBehaviorMetadataKey
10241.IBNumberFormatterLocalizesFormatMetadataKey
10241.IBPluginDependency
+ 10243.IBAttributePlaceholdersKey
+ 10243.IBPluginDependency
+ 10243.IBViewBoundsToFrameTransform
+ 10244.IBPluginDependency
+ 10247.IBAttributePlaceholdersKey
+ 10247.IBPluginDependency
+ 10247.IBViewBoundsToFrameTransform
+ 10248.IBPluginDependency
1034.IBPluginDependency
1035.IBPluginDependency
1036.IBPluginDependency
@@ -59054,6 +59199,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
3794.IBPluginDependency
3798.IBNSViewMetadataGestureRecognizers
3798.IBPluginDependency
+ 3798.IBViewBoundsToFrameTransform
3799.IBPluginDependency
3800.IBAttributePlaceholdersKey
3800.IBPluginDependency
@@ -59061,10 +59207,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
3801.IBPluginDependency
3802.IBAttributePlaceholdersKey
3802.IBPluginDependency
+ 3802.IBViewBoundsToFrameTransform
3803.IBAttributePlaceholdersKey
3803.IBPluginDependency
+ 3803.IBViewBoundsToFrameTransform
3804.IBAttributePlaceholdersKey
3804.IBPluginDependency
+ 3804.IBViewBoundsToFrameTransform
3805.IBPluginDependency
3806.IBPluginDependency
3807.IBPluginDependency
@@ -61126,7 +61275,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
- P4AAAL+AAABBgAAAwlAAAA
+ P4AAAL+AAABBgAAAwvoAAA
com.apple.InterfaceBuilder.CocoaPlugin
@@ -61134,12 +61283,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
ToolTip
- When set, helps to preserve the color gradations of the texture. This can compensate for poor color blending from the original 16-bit NDS color palette, or for posterization caused by texture upscaling filters. Moderate CPU usage.
+ When set, helps to preserve the color gradations of the texture by default. This can compensate for poor color blending from the original 16-bit NDS color palette, or for posterization caused by texture upscaling filters. Moderate CPU usage.
com.apple.InterfaceBuilder.CocoaPlugin
- P4AAAL+AAABBgAAAwlgAAA
+ P4AAAL+AAABBgAAAwqIAAA
com.apple.InterfaceBuilder.CocoaPlugin
@@ -61152,7 +61301,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
- P4AAAL+AAABDJgAAwggAAA
+ P4AAAL+AAABDJgAAwnAAAA
YES
@@ -61163,11 +61312,11 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
- P4AAAL+AAABBcAAAwegAAA
+ P4AAAL+AAABBcAAAwmQAAA
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- {{296, 493}, {129, 63}}
+ {{201, 387}, {129, 63}}
com.apple.InterfaceBuilder.CocoaPlugin
YES
@@ -61214,6 +61363,32 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
+
+ ToolTip
+
+ ToolTip
+
+ When set, applies bilinear filtering and anisotropic filtering during texture sampling. No CPU usage, but increases GPU usage.
+
+
+ com.apple.InterfaceBuilder.CocoaPlugin
+
+ P4AAAL+AAABBgAAAwlAAAA
+
+ com.apple.InterfaceBuilder.CocoaPlugin
+
+ ToolTip
+
+ ToolTip
+
+ When set, applies bilinear filtering and anisotropic filtering during texture sampling by default. No CPU usage, but increases GPU usage.
+
+
+ com.apple.InterfaceBuilder.CocoaPlugin
+
+ P4AAAL+AAABBgAAAwlwAAA
+
+ com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -61475,7 +61650,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
- {{16, 492}, {554, 497}}
+ {{16, 359}, {554, 497}}
{686, 460.5}
com.apple.InterfaceBuilder.CocoaPlugin
@@ -61708,7 +61883,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- {{14, 1025}, {512, 20}}
+ {{616, 836}, {512, 20}}
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -61956,16 +62131,19 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- {{609, 429}, {301, 526}}
+ {{609, 319}, {301, 543}}
{193.5, 488.5}
com.apple.InterfaceBuilder.CocoaPlugin
- {{609, 429}, {301, 526}}
+ {{609, 319}, {301, 543}}
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
+
+ AULKAABC3AAAA
+
com.apple.InterfaceBuilder.CocoaPlugin
ToolTip
@@ -61994,6 +62172,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
+
+ P4AAAL+AAABBgAAAwkAAAA
+
ToolTip
@@ -62003,6 +62184,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
+
+ P4AAAL+AAABBgAAAweAAAA
+
ToolTip
@@ -62012,6 +62196,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
+
+ P4AAAL+AAABBgAAAwogAAA
+
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -63105,7 +63292,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- AULKAABAwAAAA
+ AULKAABAoAAAA
ToolTip
@@ -63117,7 +63304,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
com.apple.InterfaceBuilder.CocoaPlugin
- P4AAAL+AAABBgAAAwmgAAA
+ P4AAAL+AAABBgAAAwpYAAA
com.apple.InterfaceBuilder.CocoaPlugin
@@ -64365,7 +64552,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
P4AAAL+AAABC/AAAwfAAAA
com.apple.InterfaceBuilder.CocoaPlugin
- {{495, 434}, {138, 122}}
+ {{742, 380}, {138, 122}}
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -64654,7 +64841,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2
- 10242
+ 10250