     /* Set frame rate. 30 fps is too slow */
     engine.setFrameRate(45);
 
+    engine.moveTo({ -gameArea.p1.x, -gameArea.p1.y });
+
     startIntro();
 }
 

bool drawBattleField(void)
{
    /* If engine requests to redraw main game field */
    if (gameArea.collision(engine.canvas.offset))
    {
        /* Set non-transparent mode */
        engine.canvas.setMode(0);
        engine.canvas.setColor(RGB_COLOR8(0,0,64));
        engine.canvas.drawBitmap1(engine.canvas.offset.x, engine.canvas.offset.y, 8, 8, bgTile);
        engine.canvas.setColor(RGB_COLOR8(255,255,255));
        engine.canvas.drawHLine(gameArea.p1.x,gameArea.p1.y,gameArea.p2.x);
        engine.canvas.setColor(RGB_COLOR8(0,128,255));
        engine.canvas.drawRect(gameState.battleField.platform);
        engine.canvas.setColor(RGB_COLOR8(0,0,0));
        engine.canvas.putPixel(gameState.battleField.platform.p1);
        engine.canvas.putPixel(gameState.battleField.platform.p2.x,
                               gameState.battleField.platform.p1.y);
        if (gameArea.collision(engine.canvas.offset))
        {
            for (uint8_t r = 0; r<BLOCK_NUM_ROWS; r++)
            {
                for (uint8_t bl = 0; bl<BLOCKS_PER_ROW; bl++)
                {
                    uint8_t block = gameState.battleField.blocks[r][bl];
                    if (block)
                    {
                         NanoRect rect = {{bl*8, r*4}, {bl*8 + 8, r*4+4}};
                         rect += blockArea.p1;
                         engine.canvas.setColor(blockColors[block]);
                         engine.canvas.fillRect(rect);
                         engine.canvas.setColor(0);
                         engine.canvas.drawRect(rect);
                    }
                }
            }
         }

    gameState.battleField.blocks[row][column] = 0;
    gameState.battleField.blocksLeft--;
    g_score++;
    engine.refreshWorld( gameArea.p2.x + 1, 0, 95, 63 );
    if (((p.y & 3) == 2) || (p.y & 3) == 1)
    {
        gameState.battleField.ballSpeed.x = -gameState.battleField.ballSpeed.x;
