Index: apps/plugins/doom/d_event.h
===================================================================
--- apps/plugins/doom/d_event.h
+++ apps/plugins/doom/d_event.h
@@ -47,7 +47,8 @@
    ev_keydown,
    ev_keyup,
    ev_mouse,
-   ev_joystick
+   ev_joystick,
+   ev_scroll
 };
 typedef unsigned evtype_t;
 
Index: apps/plugins/doom/g_game.c
===================================================================
--- apps/plugins/doom/g_game.c
+++ apps/plugins/doom/g_game.c
@@ -229,6 +229,9 @@
 static unsigned int   dclickstate2;
 static unsigned int   dclicks2;
 
+// scrollwheel values
+static int scrollmag;
+
 // joystick values are repeated
 static int   joyxmove;
 static int   joyymove;
@@ -317,6 +320,13 @@
 
    // let movement keys cancel each other out
 
+   /* strafe with scrollwheel */
+   if (scrollmag > 0)
+         side += 5*sidemove[speed];
+   if (scrollmag < 0)
+         side -= 5*sidemove[speed];
+   scrollmag = 0;         
+
    if (strafe)
    {
       if (gamekeydown[key_right])
@@ -757,6 +767,9 @@
       joyymove = ev->data3;
       return true;    // eat events
 
+   case ev_scroll:
+      scrollmag = ev->data1;
+
    default:
       break;
    }
Index: apps/plugins/doom/i_video.c
===================================================================
--- apps/plugins/doom/i_video.c
+++ apps/plugins/doom/i_video.c
@@ -158,7 +158,9 @@
 
 #if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
     (CONFIG_KEYPAD == IPOD_1G2G_PAD)
-//#define DOOMBUTTON_SCROLLWHEEL
+#define DOOMBUTTON_SCROLLWHEEL
+#define DOOMBUTTON_SCROLLWHEEL_CC     BUTTON_SCROLL_BACK
+#define DOOMBUTTON_SCROLLWHEEL_CW    BUTTON_SCROLL_FWD
 #define DOOMBUTTON_UP         BUTTON_MENU
 #define DOOMBUTTON_WEAPON     BUTTON_SELECT
 #define DOOMBUTTON_LEFT       BUTTON_LEFT
@@ -461,6 +463,26 @@
    holdbutton=rb->button_hold();
 #endif
 
+#ifdef DOOMBUTTON_SCROLLWHEEL
+   /* use button_get(false) for clickwheel checks */
+   int button; /* move me */
+   button = rb->button_get(false);
+   switch(button){
+   case DOOMBUTTON_SCROLLWHEEL_CC | BUTTON_REPEAT:
+   case DOOMBUTTON_SCROLLWHEEL_CC:
+         event.type = ev_scroll;
+         event.data1=-1;
+         D_PostEvent(&event);
+         break;
+   case DOOMBUTTON_SCROLLWHEEL_CW | BUTTON_REPEAT:
+   case DOOMBUTTON_SCROLLWHEEL_CW:
+         event.type = ev_scroll;
+         //event.data1=KEY_LEFTARROW;
+         event.data1=1;
+         D_PostEvent(&event);
+         break;
+   }
+#endif   
    newbuttonstate = rb->button_status();
 #ifdef DOOMBUTTON_SCROLLWHEEL
    newbuttonstate |= read_scroll_wheel();
