diff --git forkSrcPrefix/src/video/fbcon/SDL_fbkeys.h forkDstPrefix/src/video/fbcon/SDL_fbkeys.h
index 2b01b6b2e3588426e50dbf109e09e0fdb8755091..4acd13df4302185d27964859a58f8b09c25f13f3 100644
--- forkSrcPrefix/src/video/fbcon/SDL_fbkeys.h
+++ forkDstPrefix/src/video/fbcon/SDL_fbkeys.h
@@ -114,6 +114,15 @@
 #define SCANCODE_F11			87
 #define SCANCODE_F12			88
 
+/* RG35XX */
+#define SCANCODE_KATAKANA		90
+#define SCANCODE_HIRAGANA		91
+#define SCANCODE_HENKAN			92
+#define SCANCODE_KATAKANAHIRAGANA	93
+#define SCANCODE_MUHENKAN		94
+#define SCANCODE_KPJPCOMMA		95
+#define SCANCODE_POWER			116
+
 #define SCANCODE_KEYPADENTER		96
 #define SCANCODE_RIGHTCONTROL		97
 #define SCANCODE_CONTROL		97
diff --git forkSrcPrefix/include/SDL_keysym.h forkDstPrefix/include/SDL_keysym.h
index f2ad12b81ef5725e3d975c9ad3a775fa50aa6cb6..7c348322a4d0434f4cd7349fdbd62026d4e65911 100644
--- forkSrcPrefix/include/SDL_keysym.h
+++ forkDstPrefix/include/SDL_keysym.h
@@ -296,6 +296,19 @@ typedef enum {
 	SDLK_UNDO		= 322,		/**< Atari keyboard has Undo */
         /*@}*/
 
+	/** @name RG35XX keys */
+        /*@{*/
+	SDLK_KATAKANA			= 323,
+	SDLK_HIRAGANA			= 324,
+	SDLK_HENKAN				= 325,
+	SDLK_KATAKANAHIRAGANA	= 326,
+	SDLK_MUHENKAN			= 327,
+	SDLK_KP_JPCOMMA			= 328,
+	SDLK_KP_SLASH			= 329,
+	SDLK_CURSORBLOCKUP		= 330,
+	SDLK_CURSORBLOCKDOWN	= 331,
+        /*@}*/
+
 	/* Add any other keys here */
 
 	SDLK_LAST
diff --git forkSrcPrefix/src/video/fbcon/SDL_fbevents.c forkDstPrefix/src/video/fbcon/SDL_fbevents.c
index 5e369a4a89c3157206abed1f4c4b8e27aef17024..c15d1b85b7f06757b24fb7f17dc73e6bab1c2148 100644
--- forkSrcPrefix/src/video/fbcon/SDL_fbevents.c
+++ forkDstPrefix/src/video/fbcon/SDL_fbevents.c
@@ -1133,6 +1133,41 @@ void FB_InitOSKeymap(_THIS)
 	  case 127:
 	    keymap[i] = SDLK_MENU;
 	    break;
+		
+	  /* RG35XX */
+	  case SCANCODE_KATAKANA:
+	  	keymap[i] = SDLK_KATAKANA;
+		break;
+	  case SCANCODE_HIRAGANA:
+	  	keymap[i] = SDLK_HIRAGANA;
+		break;
+	  case SCANCODE_HENKAN:
+	  	keymap[i] = SDLK_HENKAN;
+		break;
+	  case SCANCODE_KATAKANAHIRAGANA:
+	  	keymap[i] = SDLK_KATAKANAHIRAGANA;
+		break;
+	  case SCANCODE_MUHENKAN:
+	  	keymap[i] = SDLK_MUHENKAN;
+		break;
+	  case SCANCODE_KPJPCOMMA:
+	  	keymap[i] = SDLK_KP_JPCOMMA;
+		break;
+	  case SCANCODE_KEYPADENTER:
+	  	keymap[i] = SDLK_KP_ENTER;
+		break;
+	  case SCANCODE_CURSORBLOCKUP:
+	  	keymap[i] = SDLK_CURSORBLOCKUP;
+		break;
+	  case SCANCODE_CURSORBLOCKDOWN:
+	  	keymap[i] = SDLK_CURSORBLOCKDOWN;
+		break;
+	  case SCANCODE_POWER: // this doesn't stick so we override below
+	  	keymap[i] = SDLK_POWER; // leaving this in just in case
+		break;
+			
+		
+		
 	  /* this should take care of all standard ascii keys */
 	  default:
 	    keymap[i] = KVAL(vga_keymap[0][i]);
@@ -1208,6 +1243,8 @@ void FB_InitOSKeymap(_THIS)
 	    default: break;
 	  }
 	}
+	
+	keymap[116] = SDLK_POWER; // requires hard override for some reason
 }
 
 static SDL_keysym *TranslateKey(int scancode, SDL_keysym *keysym)
