diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S
index 8bb2059..426940c 100644
--- a/rbutil/mkamsboot/dualboot/dualboot.S
+++ b/rbutil/mkamsboot/dualboot/dualboot.S
@@ -101,7 +101,7 @@ uclcopy:
/* TODO : M200V4 ? */
#if defined(SANSA_CLIP) || defined(SANSA_CLIPV2)
#define USB_PIN 6
-#elif defined(SANSA_FUZE) || defined(SANSA_E200V2) || defined(SANSA_FUZEV2)
+#elif defined(SANSA_FUZE) || defined(SANSA_E200V2)
#define USB_PIN 3
#endif
@@ -213,19 +213,59 @@ uclcopy:
cmp r1, #0
beq boot_of
-#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_FUZEV2)
+#elif defined(SANSA_E200V2) || defined(SANSA_FUZE)
ldr r0, =GPIOC
mov r1, #0
str r1, [r0, #0x400]
ldr r1, [r0, #0x20] /* read pin C3 */
cmp r1, #0 /* C3 = #0 means button pressed */
-#ifdef SANSA_FUZEV2
- /* the logic is reversed on the fuzev2 */
- bne boot_of
-#else
beq boot_of
-#endif /* SANSA_FUZEV2 */
+
+#elif defined(SANSA_FUZEV2)
+ ldr r0, =GPIOC
+ mov r1, #0
+ str r1, [r0, #0x400]
+ ldr r1, [r0, #0x40] /* read pin C4 */
+
+ cmp r1, #0 /* C4 != #0 means select pressed */
+ bne boot_of
+
+#if 0
+ ldr r2, =0xC810000C @ CCU_IO
+ ldr r3, [r2]
+ bic r3, r3, #(1<<12) @ clear bit 12
+ str r3, [r2]
+
+ ldr r2, =GPIOB
+ mov r3, #(1<<0)
+ ldr r4, [r2, #0x400]
+ orr r4, r4, r3 @ GPIOB_DIR: pin0 out
+ str r4, [r2, #0x400]
+
+ str r3, [r2, #0x4] @ GPIOB_PIN(0) = 1
+ mov r4, #500
+1: nop
+ subs r4, r4, #1
+ bne 1b
+
+ ldr r4, =GPIOD
+ ldr r3, [r4, #0x400]
+ bic r3, r3, #(1<<6)
+ ldr r3, [r4, #0x100] @ read d6 and discard it
+
+ mov r3, #0
+ str r3, [r2, #0x4] @ GPIOB_PIN(0) = 0
+ mov r4, #240
+1: nop
+ subs r4, r4, #1
+ bne 1b
+#endif
+
+ ldr r1, [r0, #0x08] /* read pin C1 */
+ ldr r1, [r0, #0x10] /* read pin C2 */
+ ldr r1, [r0, #0x20] /* read pin C3 */
+ bne boot_of /* C3 != #0 means left pressed */
#elif defined(SANSA_CLIPPLUS)
@ read pins