+#endif
+
+#if NEW_TILESIZE
+ px = px * TILESIZE_VAR / TILESIZE;
+ py = py * TILESIZE_VAR / TILESIZE;
+#endif
+
+#if 0
+ printf("::: (%d, %d) (%d, %d) (%d, %d) [%d / %d]\n",
+ px, py, sxsize, sysize, sx, sy,
+ FieldHeight, menBorder);
+#endif
+
+#if 0
+ printf("::: (%d, %d)\n",
+ bitmap_db_field_sp->width, bitmap_db_field_sp->height);
+#endif
+
+ BlitBitmap(bitmap_db_field_sp, target_bitmap, px, py, sxsize, sysize, sx, sy);
+}
+
+void BackToFront_SP(void)
+{
+ static int scroll_x_last = -1, scroll_y_last = -1;
+ static boolean scrolling_last = FALSE;
+ static boolean ExplosionShakeMurphy_last = -1;
+#if 1
+ boolean scrolling = (mScrollX != scroll_x_last || mScrollY != scroll_y_last);
+ // boolean scrolling = (mScrollX != mScrollX_last || mScrollY != mScrollY_last);
+#else
+ boolean scrolling = (mScrollX % TILEX != 0 || mScrollY % TILEY != 0);
+#endif
+ int x, y;
+
+#if 0
+ printf("::: %d, %d / %d, %d [%d, %d]\n",
+ mScrollX, mScrollY,
+ mScrollX_last, mScrollY_last,
+ game_sp.scroll_xoffset, game_sp.scroll_yoffset);
+#endif
+
+ SyncDisplay();
+
+ if (0 ||
+ redraw_tiles > REDRAWTILES_THRESHOLD || scrolling || scrolling_last ||
+ ExplosionShakeMurphy != 0 || ExplosionShakeMurphy_last != 0)