diff --git a/res/raw/rollo.c b/res/raw/rollo.c
index 01781e2..2b15d7f 100644
--- a/res/raw/rollo.c
+++ b/res/raw/rollo.c
@@ -25,21 +25,21 @@
 #define VIEW_ANGLE 1.28700222f
 
 void init() {
-    g_AttractionTable[0] = 4.5f;
-    g_AttractionTable[1] = 4.5f;
-    g_AttractionTable[2] = 5.0f;
-    g_AttractionTable[3] = 4.0f;
-    g_AttractionTable[4] = -4.0f;
-    g_AttractionTable[5] = -5.0f;
-    g_AttractionTable[6] = -4.5f;
-    g_AttractionTable[7] = -4.5f;
-    g_AttractionTable[8] = -4.5f;  // dup 7 to avoid a clamp later
+    g_AttractionTable[0] = 6.5f;
+    g_AttractionTable[1] = 6.5f;
+    g_AttractionTable[2] = 7.0f;
+    g_AttractionTable[3] = 6.0f;
+    g_AttractionTable[4] = -6.0f;
+    g_AttractionTable[5] = -7.0f;
+    g_AttractionTable[6] = -6.5f;
+    g_AttractionTable[7] = -6.5f;
+    g_AttractionTable[8] = -6.5f;  // dup 7 to avoid a clamp later
     g_FrictionTable[0] = 3.5f;
     g_FrictionTable[1] = 3.6f;
-    g_FrictionTable[2] = 3.7f;
-    g_FrictionTable[3] = 3.8f;
-    g_FrictionTable[4] = 3.8f;
-    g_FrictionTable[5] = 3.7f;
+    g_FrictionTable[2] = 4.0f;
+    g_FrictionTable[3] = 5.0f;
+    g_FrictionTable[4] = 5.0f;
+    g_FrictionTable[5] = 4.0f;
     g_FrictionTable[6] = 3.6f;
     g_FrictionTable[7] = 3.5f;
     g_FrictionTable[8] = 3.5f;  // dup 7 to avoid a clamp later
@@ -72,7 +72,7 @@
     g_LastTouchDown = 0;
     g_PosVelocity = -state->flingVelocityX;
     float av = fabsf(g_PosVelocity);
-    float minVel = 3f;
+    float minVel = 3.5f;
 
     minVel *= 1.f - (fabsf(fracf(g_PosPage + 0.5f) - 0.5f) * 0.45f);
 
@@ -143,7 +143,7 @@
     //debugF("  friction", friction);
 
     // If our velocity is low OR acceleration is opposing it, apply it.
-    if (fabsf(g_PosVelocity) < 0.5f || (g_PosVelocity * accel) < 0) {
+    if (fabsf(g_PosVelocity) < 1.0f || (g_PosVelocity * accel) < 0) {
         g_PosVelocity += accel;
     }
 
@@ -175,12 +175,12 @@
 
     // Check for out of boundry conditions.
     if (g_PosPage < 0 && g_PosVelocity < 0) {
-        float damp = 1.0 + (g_PosPage * 3);
+        float damp = 1.0 + (g_PosPage * 4);
         damp = clampf(damp, 0.f, 0.9f);
         g_PosVelocity *= damp;
     }
     if (g_PosPage > (g_PageCount-1) && g_PosVelocity > 0) {
-        float damp = 1.0 - ((g_PosPage - g_PageCount + 1) * 3);
+        float damp = 1.0 - ((g_PosPage - g_PageCount + 1) * 4);
         damp = clampf(damp, 0.f, 0.9f);
         g_PosVelocity *= damp;
     }
