diff --git a/desmume/src/cocoa/cocoa_globals.h b/desmume/src/cocoa/cocoa_globals.h
index 27475fe36..44f896cb4 100644
--- a/desmume/src/cocoa/cocoa_globals.h
+++ b/desmume/src/cocoa/cocoa_globals.h
@@ -101,6 +101,17 @@
#define NSSTRING_DISPLAYMODE_TOUCH NSLocalizedString(@"Touch", nil)
#define NSSTRING_DISPLAYMODE_COMBO NSLocalizedString(@"Combo", nil)
+#define NSSTRING_INPUTPREF_NUM_INPUTS_MAPPED NSLocalizedString(@"%ld Input Mapped", nil)
+#define NSSTRING_INPUTPREF_NUM_INPUTS_MAPPED_PLURAL NSLocalizedString(@"%ld Inputs Mapped", nil)
+
+#define NSSTRING_INPUTPREF_USE_DEVICE_COORDINATES NSLocalizedString(@"Use Device Coordinates", nil)
+#define NSSTRING_INPUTPREF_MIC_NONE NSLocalizedString(@"None", nil)
+#define NSSTRING_INPUTPREF_MIC_INTERNAL_NOISE NSLocalizedString(@"Internal Noise Samples", nil)
+#define NSSTRING_INPUTPREF_MIC_WHITE_NOISE NSLocalizedString(@"White Noise", nil)
+#define NSSTRING_INPUTPREF_SPEED_SCALAR NSLocalizedString(@"%1.2fx Speed", nil)
+#define NSSTRING_INPUTPREF_GPU_STATE_ALL_MAIN NSLocalizedString(@"Main GPU - All Layers", nil)
+#define NSSTRING_INPUTPREF_GPU_STATE_ALL_SUB NSLocalizedString(@"Sub GPU - All Layers", nil)
+
// LEGACY STRINGS
#define NSSTRING_TITLE_OPEN_ROM_PANEL_LEGACY NSLocalizedString(@"Open ROM...", nil)
#define NSSTRING_TITLE_OPEN_STATE_FILE_PANEL_LEGACY NSLocalizedString(@"Load State From...", nil)
@@ -452,35 +463,3 @@ enum
MICMODE_WHITE_NOISE,
MICMODE_PHYSICAL
};
-
-/*
- CONTROL TAGS FOR PREFERENCE WINDOW INPUT CONFIG BUTTONS
- */
-enum
-{
- PREF_INPUT_BUTTON_UP = 1000,
- PREF_INPUT_BUTTON_DOWN,
- PREF_INPUT_BUTTON_LEFT,
- PREF_INPUT_BUTTON_RIGHT,
- PREF_INPUT_BUTTON_A,
- PREF_INPUT_BUTTON_B,
- PREF_INPUT_BUTTON_X,
- PREF_INPUT_BUTTON_Y,
- PREF_INPUT_BUTTON_L,
- PREF_INPUT_BUTTON_R,
- PREF_INPUT_BUTTON_START,
- PREF_INPUT_BUTTON_SELECT,
-
- PREF_INPUT_BUTTON_SIM_MIC = 2000,
-
- PREF_INPUT_BUTTON_LID = 3000,
- PREF_INPUT_BUTTON_DEBUG,
- PREF_INPUT_BUTTON_SPEED_HALF,
- PREF_INPUT_BUTTON_SPEED_DOUBLE,
- PREF_INPUT_BUTTON_TOGGLE_HUD,
- PREF_INPUT_BUTTON_EXECUTE,
- PREF_INPUT_BUTTON_PAUSE,
- PREF_INPUT_BUTTON_RESET,
-
- PREF_INPUT_BUTTON_TOUCH = 4000
-};
\ No newline at end of file
diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib
index 7669bffed..bf5c8fc96 100644
--- a/desmume/src/cocoa/translations/English.lproj/MainMenu.xib
+++ b/desmume/src/cocoa/translations/English.lproj/MainMenu.xib
@@ -3198,6 +3198,7 @@ aGVhdHMuZ2JhdGVtcC5uZXQvA
{{1, 17}, {638, 437}}
+
4
@@ -3233,6 +3234,7 @@ aGVhdHMuZ2JhdGVtcC5uZXQvA
{{1, 0}, {638, 17}}
+
4
@@ -3242,6 +3244,7 @@ aGVhdHMuZ2JhdGVtcC5uZXQvA
{{0, 42}, {640, 455}}
+
562
@@ -6002,7 +6005,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
NSView
{{17, 454}, {496, 78}}
-
{0, 0}
67239424
@@ -6251,7 +6251,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 12}, {462, 18}}
-
YES
-2080244224
@@ -6272,12 +6271,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {494, 38}}
-
{{17, 16}, {496, 54}}
-
{0, 0}
67239424
@@ -6311,7 +6308,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 32}, {145, 18}}
-
YES
67239424
@@ -6334,7 +6330,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 12}, {118, 18}}
-
YES
67239424
@@ -6355,12 +6350,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {494, 58}}
-
{{17, 74}, {496, 74}}
-
{0, 0}
67239424
@@ -6394,7 +6387,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 61}, {205, 18}}
-
YES
604110336
@@ -6417,7 +6409,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{140, 33}, {240, 22}}
-
YES
-2070806976
@@ -6436,7 +6427,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{15, 37}, {120, 17}}
-
YES
68288064
@@ -6453,7 +6443,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{382, 27}, {100, 32}}
-
YES
67239424
@@ -6474,7 +6463,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 12}, {149, 18}}
-
YES
604110336
@@ -6497,7 +6485,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{12, 81}, {229, 32}}
-
YES
67239424
@@ -6516,12 +6503,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {494, 119}}
-
{{17, 152}, {496, 135}}
-
{0, 0}
67239424
@@ -6555,7 +6540,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 117}, {182, 18}}
-
YES
67239424
@@ -6578,7 +6562,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{140, 86}, {240, 22}}
-
YES
-2070806976
@@ -6597,7 +6580,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{15, 89}, {120, 17}}
-
YES
68288064
@@ -6614,7 +6596,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{382, 80}, {100, 32}}
-
YES
67239424
@@ -6635,7 +6616,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{140, 59}, {240, 22}}
-
YES
-2070806976
@@ -6654,7 +6634,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{15, 62}, {120, 17}}
-
YES
68288064
@@ -6671,7 +6650,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{382, 53}, {100, 32}}
-
YES
67239424
@@ -6692,7 +6670,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 32}, {230, 18}}
-
YES
-1543373312
@@ -6715,7 +6692,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 12}, {236, 18}}
-
YES
604110336
@@ -6736,12 +6712,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {494, 143}}
-
{{17, 291}, {496, 159}}
-
{0, 0}
67239424
@@ -6775,7 +6749,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 32}, {197, 18}}
-
YES
-2080244224
@@ -6798,7 +6771,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 12}, {217, 18}}
-
YES
67239424
@@ -6819,12 +6791,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {494, 58}}
-
{{17, 536}, {496, 74}}
-
{0, 0}
67239424
@@ -6845,8 +6815,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{530, 630}
-
-
NSView
@@ -6860,8 +6828,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
InputSettingsMicrophone
NSWindow
+ {1.79769e+308, 1.79769e+308}
-
+
256
YES
@@ -6880,7 +6849,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{18, 69}, {528, 18}}
-
YES
537001472
@@ -6897,7 +6865,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{16, 39}, {532, 25}}
-
YES
-1543373312
@@ -6919,7 +6886,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{247, 14}, {70, 17}}
-
YES
605158976
@@ -6936,7 +6902,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{15, 109}, {54, 17}}
-
YES
605158976
@@ -6953,7 +6918,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{71, 103}, {478, 26}}
-
YES
{{1, 1}, {564, 137}}
-
{{17, 56}, {566, 153}}
-
{0, 0}
67239424
@@ -7035,7 +6997,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{18, 14}, {290, 78}}
-
YES
4
1
@@ -7256,7 +7217,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{130, 12}, {324, 21}}
-
YES
612499008
@@ -7275,7 +7235,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{456, 5}, {96, 32}}
-
YES
604110336
@@ -7294,12 +7253,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {564, 102}}
-
{{17, 213}, {566, 118}}
-
{0, 0}
67239424
@@ -7323,7 +7280,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{490, 12}, {96, 32}}
-
1
YES
@@ -7345,7 +7301,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{394, 12}, {96, 32}}
-
YES
67239424
@@ -7366,7 +7321,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{17, 339}, {566, 17}}
-
YES
70385217
@@ -7381,8 +7335,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{600, 376}
-
-
{{0, 0}, {1920, 1178}}
{1.79769e+308, 1.79769e+308}
@@ -7395,8 +7347,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
InputSettingsTouch
NSWindow
+ {1.79769e+308, 1.79769e+308}
-
+
256
YES
@@ -7415,7 +7368,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{97, 44}, {17, 17}}
-
YES
68288064
@@ -7432,7 +7384,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{119, 42}, {96, 22}}
-
YES
-1804468671
@@ -7512,7 +7463,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{97, 16}, {17, 17}}
-
YES
68288064
@@ -7529,7 +7479,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{119, 14}, {96, 22}}
-
YES
-1804468671
@@ -7607,12 +7556,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{{1, 1}, {314, 74}}
-
{{17, 56}, {316, 90}}
-
{0, 0}
67239424
@@ -7636,7 +7583,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{240, 12}, {96, 32}}
-
1
YES
@@ -7658,7 +7604,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{18, 202}, {314, 18}}
-
YES
67239424
@@ -7681,7 +7626,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{17, 154}, {316, 42}}
-
YES
67239424
@@ -7698,7 +7642,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{144, 12}, {96, 32}}
-
YES
67239424
@@ -7719,7 +7662,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{17, 226}, {316, 17}}
-
YES
70385217
@@ -7734,8 +7676,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
{350, 263}
-
-
{{0, 0}, {1920, 1178}}
{1.79769e+308, 1.79769e+308}
@@ -7748,8 +7688,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
InputSettingsLoadStateSlot
NSWindow
+ {1.79769e+308, 1.79769e+308}
-
+
256
YES
@@ -7758,7 +7699,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA
268
{{121, 56}, {212, 26}}
-
YES