diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index ff9e7ff4e140ec0528a1371323de0c6b71200930..ab0204c1eb202ebcb89777879295e5a2fd5363d8 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -739,7 +739,7 @@ function _M:display(nb_keyframes)
 		if self.fbo and self.mapfbo then
 			self.mapfbo:use(true)
 				if self.level.data.background then self.level.data.background(self.level, 0, 0, nb_keyframes) end
-				map:display(0, 0, nb_keyframes, true) -- Display at the base of the FBO and make sure to display everything as the shader will do smooth FOV over it
+				map:display(Map.tile_w, Map.tile_h, nb_keyframes, true) -- Display at the base of the FBO and make sure to display everything as the shader will do smooth FOV over it
 				map._map:updateSeensTexture()
 				if self.level.data.foreground then self.level.data.foreground(self.level, 0, 0, nb_keyframes) end
 				if self.level.data.weather_particle then self.state:displayWeather(self.level, self.level.data.weather_particle, nb_keyframes) end
diff --git a/game/modules/tome/data/gfx/shaders/map_fbo.frag b/game/modules/tome/data/gfx/shaders/map_fbo.frag
index 1496858d78bbaa9869c4699e596ffccfb15d01bb..33d6232864693e5354ca80914bb73fa53b7d4a81 100644
--- a/game/modules/tome/data/gfx/shaders/map_fbo.frag
+++ b/game/modules/tome/data/gfx/shaders/map_fbo.frag
@@ -12,7 +12,10 @@ void main(void)
 	 * seenscoords is arranged as this: (tile_w, tile_h, view_scene_w, view_scene_h)
 	 * We offset by 1x1.25 tiles .. dont ask why, it just works :/
 	 */
-	vec2 seenscoord = vec2((((gl_TexCoord[0].x + seensinfo.r / texSize.x) / seensinfo.r)) * texSize.x / seensinfo.b, (((gl_TexCoord[0].y + (seensinfo.g * -1.5) / texSize.y) / seensinfo.g)) * texSize.y / seensinfo.a);
+	float v = -0.75;
+	if (seensinfo.g == 32.0) v = -0.50;
+	if (seensinfo.g == 16.0) v = -0.15;
+	vec2 seenscoord = vec2((((gl_TexCoord[0].x) / seensinfo.r)) * texSize.x / seensinfo.b, (((gl_TexCoord[0].y + (seensinfo.g * v) / texSize.y) / seensinfo.g)) * texSize.y / seensinfo.a);
 	vec4 seen = texture2D(seens, seenscoord);
 	gl_FragColor = texture2D(tex, gl_TexCoord[0].xy);
 	gl_FragColor.r *= seen.r;
diff --git a/src/map.c b/src/map.c
index 4d3d0f57f7172156d81dc55295e89c5d6d8c1cbd..26e59c2f9169c60bb602fb3266c6be0a6e529f0f 100644
--- a/src/map.c
+++ b/src/map.c
@@ -1057,7 +1057,7 @@ static int map_to_screen(lua_State *L)
 	// If we use shaders for FOV display it means we must uses fbos for smooth scroll too
 	if (!always_show)
 	{
-		SMOOTH_SCROLL();
+	SMOOTH_SCROLL();
 		x -= animdx;
 		y -= animdy;
 	}
diff --git a/src/map.h b/src/map.h
index a885e8fb1274ee2be7b0717b6c93f2efac000e23..181934eefacb4b116621da717129f4a7f9a56bba 100644
--- a/src/map.h
+++ b/src/map.h
@@ -82,6 +82,7 @@ typedef struct {
 	float oldmx, oldmy;
 	int move_step, move_max;
 	float used_mx, used_my;
+	float used_animdx, used_animdy;
 	int seensinfo_w;
 	int seensinfo_h;
 } map_type;