         gameState.battleField.ballX += gameState.battleField.ballSpeed.x;
         gameState.battleField.ballY += gameState.battleField.ballSpeed.y;
         moveBall = false;
-        gameState.battleField.ball.setPoint(gameState.battleField.ballX>>1, gameState.battleField.ballY>>1);
+        gameState.battleField.ball.setPoint(gameState.battleField.ballX>>PIX_BITS,
+                                            gameState.battleField.ballY>>PIX_BITS);
         if (checkGameAreaHit())
         {
             moveBall = true;

    engine.refresh();
    gameState.battleField.platform.setRect( 20, 56, 31, 58 );
    gameState.battleField.ball.setPoint( 25, 55);
    gameState.battleField.ballX = gameState.battleField.ball.x << 1;
    gameState.battleField.ballY = gameState.battleField.ball.y << 1;
    gameState.battleField.ballSpeed.setPoint( 2, -2);
    engine.drawCallback( drawBattleField );
    engine.loopCallback( battleFieldLoop );
    loadLevel();

    {
        NanoRect  platform;  // platform position on the screen
        NanoPoint ball;      // ball position on the screen
        int16_t   ballX;     // ball position in ^PIX_BITS coordinates
        int16_t   ballY;     // ball position in ^PIX_BITS coordinates
        NanoPoint ballSpeed; // ball speed in *2 coordinates
        uint8_t   blocks[BLOCK_NUM_ROWS][MAX_BLOCKS_PER_ROW];
        uint8_t   blocksLeft;
