diff --git a/src/spfx.c b/src/spfx.c
index 8b7ee5e..8815613 100644
--- a/src/spfx.c
+++ b/src/spfx.c
@@ -9,8 +9,9 @@
 #include "rng.h"
 #include "spfx.h"
 
-#define SPFX_GFX "../gfx/spfx/" /* Graphics location. */
-#define SPFX_CHUNK 32           /* Chunk to allocate when needed. */
+#define SPFX_GFX      "../gfx/spfx/"  /* Graphics location. */
+#define SPFX_CHUNK    32              /* Chunk to allocate when needed. */
+#define SHAKE_VEL_MOD 0.0015
 
 /* Special hardcoded effects.. */
 
@@ -223,7 +224,7 @@ void spfx_start(double dt) {
       if(VMOD(shake_pos) > shake_rad) {
         /* Change direction. */
         vect_pset(&shake_pos, shake_rad, VANGLE(shake_pos));
-        vect_pset(&shake_vel, shake_rad,
+        vect_pset(&shake_vel, SHAKE_VEL_MOD*shake_rad,
             -VANGLE(shake_pos) + (RNGF()-0.5) * M_PI);
       }
       /* The shake decays over time. */
@@ -250,7 +251,7 @@ void spfx_shake(double mod) {
   if(shake_rad > SHAKE_MAX) shake_rad = SHAKE_MAX;
   shake_off = 0;
 
-  vect_pset(&shake_vel, shake_rad, RNGF() * 2. * M_PI);
+  vect_pset(&shake_vel, SHAKE_VEL_MOD*shake_rad, RNGF() * 2. * M_PI);
 }
 
 void spfx_cinematic(void) {