From cedc1c9f387449ed690bb01390684be273e44f9f Mon Sep 17 00:00:00 2001 From: rogerman Date: Tue, 20 Jun 2023 14:06:04 -0700 Subject: [PATCH] Cocoa Port: Add option for Catmull-Rom sound interpolation in the GUI. Also update tooltips for all interpolation methods to better reflect how they compare to one another. --- desmume/src/SPU.h | 2 +- desmume/src/frontend/cocoa/cocoa_output.mm | 4 + .../English.lproj/MainMenu.strings | Bin 494388 -> 497164 bytes .../translations/English.lproj/MainMenu.xib | 162 ++++++++++++++---- 4 files changed, 133 insertions(+), 35 deletions(-) diff --git a/desmume/src/SPU.h b/desmume/src/SPU.h index 5ba6d1c96..e88429415 100644 --- a/desmume/src/SPU.h +++ b/desmume/src/SPU.h @@ -49,7 +49,7 @@ enum SPUInterpolationMode SPUInterpolation_None = 0, SPUInterpolation_Linear = 1, SPUInterpolation_Cosine = 2, - SPUInterpolation_CatmullRom = 3, + SPUInterpolation_CatmullRom = 3 }; struct SoundInterface_struct diff --git a/desmume/src/frontend/cocoa/cocoa_output.mm b/desmume/src/frontend/cocoa/cocoa_output.mm index edff7cc58..f518ec7bf 100644 --- a/desmume/src/frontend/cocoa/cocoa_output.mm +++ b/desmume/src/frontend/cocoa/cocoa_output.mm @@ -469,6 +469,10 @@ theString = @"Cosine"; break; + case SPUInterpolation_CatmullRom: + theString = @"Catmull-Rom"; + break; + default: break; } diff --git a/desmume/src/frontend/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/frontend/cocoa/translations/English.lproj/MainMenu.strings index f801db50b7b635a1f811c4158065a5fdb6332782..90587aad6b747e888dd93a6205f57449cbbab370 100644 GIT binary patch delta 1760 zcmcIk-%FEW6h3GB+!w>bsr}eYae>k#Lw6yB5lkWR7tCVa1h%2!q-{<&C53PoMH$^4 z=vZ?btRE1J7<|I6Lgr0g$^L@Cn{EtRVE3JUdZ9^l^L@OWkN5rFm-9U5InVoUzHWO} zXe)kvqefv45|E^Fy4Mkc7)(REeCJ?R{w~wcbb#LHFSJHw{a7LfGqS%R`-?IQ%laWC z$hXnKJ%i|?N>I&?P7D17VVFEs#@8%* z=w7~oHZwiWQ$@(}>r%6y_ST(TCA4etyakO-N%8z={+7ZqPW?cI>jT&+4Ykp&cP{PR zhoy`WO|4m_BvuIXS0-W@`h`I!5; zJsqLhRtKWC0sa-ulqNI92V6)eASc{6syEUS7?i+gwz}VO(_#>es*aAVp+!!yO96I=K2$ zRq&7tH>Q=#99*#|XOnRJ+*Zs(!F8{>Bm<60h15xW|>?tw{Lpf zXEuq+2J^Vs6&Mm3@)%O4Kb*ua%$&+lJl(OM-I`N}L4hHOp_HLyy1WmoIBPMGn>hVr z2%{vw0z(c%K0`4ODgf!U>4Bb%($ha3W|5li;0-eWuFT|u`4-dp-qFJRV<7i$u2|^7 zINiaHg+()&ArnaLjMBGVg;nOG**EaRDeFM?5F@`EnD$y_S}Hn%L_G6xt1 z$EJBPvTXNpW%Pmvf6z1!#tF0v`sovPG0IFo;KRr=oyUh!YPy0Kkf44vYzIbj1t%H7 iza1F-B8;Smdpj`PftU%1nSq!Eh*^P{4HzHn7UlrlN!jNB diff --git a/desmume/src/frontend/cocoa/translations/English.lproj/MainMenu.xib b/desmume/src/frontend/cocoa/translations/English.lproj/MainMenu.xib index 83810f206..c94087d66 100644 --- a/desmume/src/frontend/cocoa/translations/English.lproj/MainMenu.xib +++ b/desmume/src/frontend/cocoa/translations/English.lproj/MainMenu.xib @@ -6190,14 +6190,15 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXANSView - + 268 268 - {{163, 329}, {220, 26}} + {{163, 347}, {220, 26}} + YES @@ -6254,8 +6255,9 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA 268 - {{17, 335}, {144, 17}} + {{17, 353}, {144, 17}} + YES @@ -6283,6 +6285,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA268 {{16, 12}, {153, 18}} + YES @@ -6305,11 +6308,13 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA {{1, 1}, {364, 38}} + - {{17, 209}, {366, 54}} + {{17, 227}, {366, 54}} + {0, 0} @@ -6339,6 +6344,7 @@ L3d3dy5hZHZhbnNjZW5lLmNvbS9vZmZsaW5lL2RhdGFzL0FEVkFOc0NFbmVfUlRvb2xEUy56aXA268 {{18, 15}, {180, 46}} + YES NO @@ -6584,6 +6590,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{145, 10}, {204, 26}} + YES -2076180416 @@ -6650,11 +6657,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {364, 71}} + {{17, 16}, {366, 87}} + {0, 0} @@ -6682,12 +6691,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{18, 14}, {328, 58}} + {{18, 13}, {130, 78}} + YES NO - 3 + 4 1 @@ -6821,8 +6831,21 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA 400 75 + + 67108864 + 0 + Catmull-Rom + + + 3 + 1211912448 + 0 + + 400 + 75 + - {328, 18} + {130, 18} {4, 2} 1151868928 NSActionCell @@ -6936,13 +6959,15 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - {{1, 1}, {364, 82}} + {{1, 1}, {364, 100}} + - {{17, 107}, {366, 98}} + {{17, 107}, {366, 116}} + {0, 0} @@ -6972,6 +6997,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{40, 13}, {246, 21}} + YES @@ -6995,6 +7021,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{287, 17}, {62, 17}} + YES @@ -7074,6 +7101,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{18, 16}, {16, 16}} + YES @@ -7094,11 +7122,13 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {364, 44}} + - {{17, 267}, {366, 60}} + {{17, 285}, {366, 60}} + {0, 0} @@ -7116,7 +7146,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO - {400, 373} + {400, 391} + + NSView @@ -33259,7 +33291,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 279 2 - {{230, 40}, {248, 501}} + {{230, 40}, {248, 519}} -461896704 Sound Settings NSPanel @@ -33267,7 +33299,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {1.7976931348623157e+308, 1.7976931348623157e+308} - + 256 @@ -33281,11 +33313,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 - {{18, 14}, {61, 58}} + {{18, 13}, {110, 78}} + YES NO - 3 + 4 1 @@ -33419,8 +33452,21 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA 400 75 + + 67108864 + 131072 + Catmull-Rom + + + 3 + 1211912448 + 0 + + 400 + 75 + - {61, 18} + {110, 18} {4, 2} 1151868928 NSActionCell @@ -33534,12 +33580,14 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - {{1, 1}, {213, 82}} + {{1, 1}, {213, 100}} + - {{16, 179}, {215, 98}} + {{16, 179}, {215, 116}} + {0, 0} 67108864 @@ -33568,6 +33616,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{18, 80}, {154, 38}} + YES NO 2 @@ -33810,6 +33859,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{53, 14}, {100, 58}} + YES NO 3 @@ -34062,10 +34112,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {213, 128}} + {{16, 31}, {215, 144}} + {0, 0} 67108864 @@ -34094,6 +34146,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{15, 12}, {135, 18}} + YES -2080374784 @@ -34115,10 +34168,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {213, 38}} + - {{16, 281}, {215, 54}} + {{16, 299}, {215, 54}} + {0, 0} 67108864 @@ -34147,6 +34202,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{40, 13}, {115, 21}} + YES 67371264 @@ -34169,6 +34225,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{147, 17}, {52, 14}} + YES 68157504 @@ -34240,6 +34297,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{18, 16}, {16, 16}} + YES 134217728 @@ -34256,10 +34314,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {213, 44}} + - {{16, 339}, {215, 60}} + {{16, 357}, {215, 60}} + {0, 0} 67108864 @@ -34280,6 +34340,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{43, 8}, {162, 19}} + YES -2080374784 @@ -34309,6 +34370,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 268 {{18, 14}, {128, 38}} + YES NO 2 @@ -34549,10 +34611,12 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {{1, 1}, {213, 62}} + - {{16, 403}, {215, 78}} + {{16, 421}, {215, 78}} + {0, 0} 67108864 @@ -34569,7 +34633,9 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 NO - {248, 501} + {248, 519} + + {{0, 0}, {1920, 1177}} {1.7976931348623157e+308, 1.7976931348623157e+308} @@ -60447,6 +60513,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + @@ -61190,6 +61257,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + @@ -80886,6 +80954,16 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 + + 12294 + + + + + 12295 + + + @@ -83672,6 +83750,22 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Aggressively smooths the sound, eliminating the harsh sounding harmonics and noise. However, some sound detail is lost. Negligible CPU usage. + + + + ToolTip + + ToolTip + + Aggressively smooths the sound, eliminating the harsh sounding harmonics and noise. However, some sound detail is lost. Negligible CPU usage. + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -83837,7 +83931,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{329, 472}, {400, 373}} + {{329, 454}, {400, 391}} {668, 408.5} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -83894,7 +83988,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but most sounds may sound harsh and noisy due to the presence of high-end harmonics and sound mixing roughness. No CPU usage. com.apple.InterfaceBuilder.CocoaPlugin @@ -83903,7 +83997,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. + Aggressively smooths the sound, eliminating the harsh sounding harmonics and noise. However, much sound detail is lost, especially in the high-end. Negligible CPU usage. com.apple.InterfaceBuilder.CocoaPlugin @@ -83913,7 +84007,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. + Moderately smooths the sound, significantly reducing the harsh sounding harmonics and noise. Produces the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. com.apple.InterfaceBuilder.CocoaPlugin @@ -84150,7 +84244,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{928, 836}, {512, 20}} + {{616, 836}, {512, 20}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -84243,10 +84337,10 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{880, 95}, {248, 501}} + {{874, 133}, {248, 519}} {50, 735.5} com.apple.InterfaceBuilder.CocoaPlugin - {{880, 95}, {248, 501}} + {{874, 133}, {248, 519}} com.apple.InterfaceBuilder.CocoaPlugin @@ -84273,7 +84367,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but some sounds may sound harsh due to the presence of high-end harmonics. No CPU usage. + Performs no interpolation. This method produces the most accurate sound compared to the real hardware. All sound detail is preserved, but most sounds may sound harsh and noisy due to the presence of high-end harmonics and sound mixing roughness. No CPU usage. com.apple.InterfaceBuilder.CocoaPlugin @@ -84282,7 +84376,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - Smooths the sound and eliminates the harsh sounding harmonics, but also causes a significant loss of sound detail, especially in the high-end. Negligible CPU usage. + Aggressively smooths the sound, eliminating the harsh sounding harmonics and noise. However, much sound detail is lost, especially in the high-end. Negligible CPU usage. com.apple.InterfaceBuilder.CocoaPlugin @@ -84312,7 +84406,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 ToolTip - Excellent sound quality, producing the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. + Moderately smooths the sound, significantly reducing the harsh sounding harmonics and noise. Produces the best balance between smoothness and sound detail. Neglible CPU usage. Recommended setting. com.apple.InterfaceBuilder.CocoaPlugin @@ -87010,7 +87104,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 - 12293 + 12295 @@ -89802,7 +89896,7 @@ y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 {515, 457} {14, 14} {8, 8} - {512, 512} + {128, 128} {11, 11} {10, 3} {32, 32}