Index: source/drivers/gamecube/main.c
===================================================================
--- source/drivers/gamecube/main.c	(revision 28)
+++ source/drivers/gamecube/main.c	(working copy)
@@ -96,7 +96,7 @@
     GCMemROM();
     // Load settings
     ManageSettings(1, ChosenSlot, ChosenDevice, 1);
-    MainMenu(); 
+//    MainMenu(); 
 
     while (1) {
         uint8 *gfx;
Index: source/drivers/gamecube/pad.c
===================================================================
--- source/drivers/gamecube/pad.c	(revision 28)
+++ source/drivers/gamecube/pad.c	(working copy)
@@ -10,11 +10,13 @@
 
 /* PADStatus joypads[4]; */
 static uint32 JSReturn = 0;
-unsigned short skipa[4] = {0, 0, 0, 0};
-unsigned short skipb[4] = {0, 0, 0, 0};
 
-unsigned short op[4] = {0, 0, 0, 0};
+// turbo
+///unsigned short skipa[4] = {0, 0, 0, 0};
+//unsigned short skipb[4] = {0, 0, 0, 0};
 
+//unsigned short op[4] = {0, 0, 0, 0};
+
 extern int MainMenu();
 
 /****************************************************************************
@@ -35,7 +37,7 @@
 unsigned short gcpadmap[] = { PAD_BUTTON_A, PAD_BUTTON_B, PAD_BUTTON_START, PAD_TRIGGER_Z, PAD_BUTTON_X, PAD_BUTTON_Y,
     PAD_BUTTON_UP, PAD_BUTTON_DOWN, PAD_BUTTON_LEFT, PAD_BUTTON_RIGHT };
 
-unsigned int nespadmap[] = { JOY_A, JOY_B, JOY_START, JOY_SELECT, JOY_A, JOY_B,
+unsigned int nespadmap[] = { JOY_A, JOY_B, JOY_DOWN, JOY_START, JOY_UP | JOY_A, JOY_UP | JOY_B,
     JOY_UP, JOY_DOWN, JOY_LEFT, JOY_RIGHT };
 
 /****************************************************************************
@@ -50,34 +52,19 @@
     unsigned char J = 0;
 
     int i;
-
-    if ((skipa[pp] == 0) || ((op[pp] & gcpadmap[4]) == 0)) {
-        nespadmap[4] = JOY_A;
-        skipa[pp] = PADTUR;
-    }
-
-    if ((skipb[pp] == 0) || ((op[pp] & gcpadmap[5]) == 0))  {
-        nespadmap[5] = JOY_B;
-        skipb[pp] = PADTUR;
-    }
-
-    for (i = 0; i < 10; i++) {
-        if (p & gcpadmap[i])
-            J |= nespadmap[i];
-    }
-
-    if (skipa[pp] > 0){
-        nespadmap[4] = 0;
-        skipa[pp]--;
-    }
-
-    if (skipb[pp] > 0){
-        nespadmap[5] = 0;
-        skipb[pp]--;
-    }
-
-    op[pp] = p;
-
+	if ((p & PAD_BUTTON_X) && (p & PAD_BUTTON_Y))
+		J |= JOY_START;
+	else
+	{
+		for (i = 0; i < 10; i++) {
+			if (p & gcpadmap[i])
+				J |= nespadmap[i];
+		}
+		
+		// dodge
+		if (PAD_TriggerR(pp) > 10)
+			J |= JOY_LEFT;
+	}
     return J;
 }
 
