diff --git a/Makefile.ngc b/Makefile.ngc
index efd87bfa54..78c85b5008 100644
--- a/Makefile.ngc
+++ b/Makefile.ngc
@@ -1,7 +1,7 @@
 RARCH_VERSION		= "0.9.9.3"
 
 DEBUG			= 0
-HAVE_LOGGER		= 1
+HAVE_LOGGER		= 0
 HAVE_FILE_LOGGER	= 0
 PERF_TEST		= 0
 WHOLE_ARCHIVE_LINK	= 0
@@ -62,7 +62,7 @@ CFLAGS		+= -DHAVE_FILE_LOGGER
 CFLAGS          += -Iconsole/logger
 endif
 
-CFLAGS += -std=gnu99 -DHAVE_RGUI -DHAVE_MENU -DRARCH_CONSOLE -DGEKKO -DHAVE_ZLIB -DWANT_MINIZ -DHAVE_RARCH_MAIN_WRAP -DHAVE_RARCH_MAIN_IMPLEMENTATION -DHAVE_GRIFFIN=1 -DHAVE_SCREENSHOTS -DHAVE_RSOUND -Wno-char-subscripts -DRARCH_INTERNAL
+CFLAGS += -std=gnu99 -DSINC_LOWER_QUALITY -DHAVE_RGUI -DHAVE_MENU -DRARCH_CONSOLE -DGEKKO -DHAVE_ZLIB -DWANT_MINIZ -DHAVE_RARCH_MAIN_WRAP -DHAVE_RARCH_MAIN_IMPLEMENTATION -DHAVE_GRIFFIN=1 -DHAVE_SCREENSHOTS -DHAVE_THREADS -Wno-char-subscripts -DRARCH_INTERNAL
 
 ifeq ($(DEBUG), 1)
    CFLAGS += -O0 -g
diff --git a/gx/gx_input.c b/gx/gx_input.c
index c490bba7dc..c507aafc96 100644
--- a/gx/gx_input.c
+++ b/gx/gx_input.c
@@ -110,35 +110,89 @@ static bool gx_menu_input_state(uint64_t joykey, uint64_t state)
    switch (joykey)
    {
       case CONSOLE_MENU_A:
-         return state & ((1ULL << GX_GC_A) | (1ULL << GX_WIIMOTE_A) | (1ULL << GX_CLASSIC_A) | (1ULL << GX_WIIMOTE_2));
+         return state & ((1ULL << GX_GC_A)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_A) | (1ULL << GX_CLASSIC_A) | (1ULL << GX_WIIMOTE_2)
+#endif
+               );
       case CONSOLE_MENU_B:
-         return state & ((1ULL << GX_GC_B) | (1ULL << GX_WIIMOTE_B) | (1ULL << GX_CLASSIC_B) | (1ULL << GX_WIIMOTE_1));
+         return state & ((1ULL << GX_GC_B)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_B) | (1ULL << GX_CLASSIC_B) | (1ULL << GX_WIIMOTE_1)
+#endif
+               );
       case CONSOLE_MENU_X:
-         return state & ((1ULL << GX_GC_X) | (1ULL << GX_CLASSIC_X));
+         return state & ((1ULL << GX_GC_X)
+#ifdef HW_RVL
+               | (1ULL << GX_CLASSIC_X)
+#endif
+               );
       case CONSOLE_MENU_Y:
-         return state & ((1ULL << GX_GC_Y) | (1ULL << GX_CLASSIC_Y));
+         return state & ((1ULL << GX_GC_Y)
+#ifdef HW_RVL
+               | (1ULL << GX_CLASSIC_Y)
+#endif
+               );
       case CONSOLE_MENU_START:
-         return state & ((1ULL << GX_GC_START) | (1ULL << GX_WIIMOTE_PLUS) | (1ULL << GX_CLASSIC_PLUS));
+         return state & ((1ULL << GX_GC_START)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_PLUS) | (1ULL << GX_CLASSIC_PLUS)
+#endif
+               );
       case CONSOLE_MENU_SELECT:
-         return state & ((1ULL << GX_GC_Z_TRIGGER) | (1ULL << GX_WIIMOTE_MINUS) | (1ULL << GX_CLASSIC_MINUS));
+         return state & ((1ULL << GX_GC_Z_TRIGGER)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_MINUS) | (1ULL << GX_CLASSIC_MINUS)
+#endif
+               );
       case CONSOLE_MENU_UP:
-         return state & ((1ULL << GX_GC_UP) | (1ULL << GX_WIIMOTE_UP) | (1ULL << GX_CLASSIC_UP) | (1ULL << GX_NUNCHUK_UP));
+         return state & ((1ULL << GX_GC_UP)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_UP) | (1ULL << GX_CLASSIC_UP) |  (1ULL << GX_NUNCHUK_UP)
+#endif
+               );
       case CONSOLE_MENU_DOWN:
-         return state & ((1ULL << GX_GC_DOWN) | (1ULL << GX_WIIMOTE_DOWN) | (1ULL << GX_CLASSIC_DOWN) | (1ULL << GX_NUNCHUK_DOWN));
+         return state & ((1ULL << GX_GC_DOWN)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_DOWN) | (1ULL << GX_CLASSIC_DOWN) | (1ULL << GX_NUNCHUK_DOWN)
+#endif
+               );
       case CONSOLE_MENU_LEFT:
-         return state & ((1ULL << GX_GC_LEFT) | (1ULL << GX_WIIMOTE_LEFT) | (1ULL << GX_CLASSIC_LEFT) | (1ULL << GX_NUNCHUK_LEFT));
+         return state & ((1ULL << GX_GC_LEFT)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_LEFT) | (1ULL << GX_CLASSIC_LEFT) | (1ULL << GX_NUNCHUK_LEFT)
+#endif
+               );
       case CONSOLE_MENU_RIGHT:
-         return state & ((1ULL << GX_GC_RIGHT) | (1ULL << GX_WIIMOTE_RIGHT) | (1ULL << GX_CLASSIC_RIGHT) | (1ULL << GX_NUNCHUK_RIGHT));
+         return state & ((1ULL << GX_GC_RIGHT)
+#ifdef HW_RVL
+               | (1ULL << GX_WIIMOTE_RIGHT) | (1ULL << GX_CLASSIC_RIGHT) | (1ULL << GX_NUNCHUK_RIGHT)
+#endif
+               );
       case CONSOLE_MENU_L:
-         return state & ((1ULL << GX_GC_L_TRIGGER) | (1ULL << GX_CLASSIC_L_TRIGGER));
+         return state & ((1ULL << GX_GC_L_TRIGGER)
+#ifdef HW_RVL
+               | (1ULL << GX_CLASSIC_L_TRIGGER)
+#endif
+               );
       case CONSOLE_MENU_R:
-         return state & ((1ULL << GX_GC_R_TRIGGER) | (1ULL << GX_CLASSIC_R_TRIGGER));
+         return state & ((1ULL << GX_GC_R_TRIGGER)
+#ifdef HW_RVL
+               | (1ULL << GX_CLASSIC_R_TRIGGER)
+#endif
+               );
       case CONSOLE_MENU_HOME:
-         return state & ((1ULL << GX_WIIMOTE_HOME) | (1ULL << GX_CLASSIC_HOME));
+         return state & ((1ULL << GX_WIIMOTE_HOME)
+#ifdef HW_RVL
+               | (1ULL << GX_CLASSIC_HOME)
+#endif
+               );
+#ifdef HW_RVL
       case CONSOLE_MENU_L2:
          return state & (1ULL << GX_CLASSIC_ZL_TRIGGER);
       case CONSOLE_MENU_R2:
          return state & (1ULL << GX_CLASSIC_ZR_TRIGGER);
+#endif
       default:
          return false;
    }
diff --git a/gx/gx_video.c b/gx/gx_video.c
index f0e6c3edbf..ca35dca66e 100644
--- a/gx/gx_video.c
+++ b/gx/gx_video.c
@@ -32,7 +32,9 @@
 #include <stdlib.h>
 #include <string.h>
 
+#ifdef HW_RVL
 #define GX_OPTS
+#endif
 
 #ifdef GX_OPTS
 #include "gx_video_inl.h"
@@ -98,10 +100,11 @@ void gx_set_video_mode(void *data, unsigned fbWidth, unsigned lines)
             max_width, max_height, i;
    bool progressive;
    gx_video_t *gx = (gx_video_t*)data;
+   (void)level;
 #ifdef GX_OPTS
    struct __gx_regdef *__gx = (struct __gx_regdef*)__gxregs;
-#endif
    _CPU_ISR_Disable(level);
+#endif
    VIDEO_SetBlack(true);
    VIDEO_Flush();
    viHeightMultiplier = 1;
@@ -246,7 +249,9 @@ void gx_set_video_mode(void *data, unsigned fbWidth, unsigned lines)
    GX_SetPixelFmt(GX_PF_RGB8_Z24, GX_ZC_LINEAR);
    GX_InvalidateTexAll();
    GX_Flush();
+#ifdef GX_OPTS
    _CPU_ISR_Restore(level);
+#endif
 
    RARCH_LOG("GX Resolution: %dx%d (%s)\n", gx_mode.fbWidth, gx_mode.efbHeight, (gx_mode.viTVMode & 3) == VI_INTERLACE ? "interlaced" : "progressive");