       @current = @parse_packet()
       delta = @current.timestamp - @previous.timestamp
       delta = 0 if delta < 0
+      setTimeout (=> @play(cb)), delta
+      @previous = @current
       cb(@current)
-      setTimeout (=> @play(cb)), delta
     else
       console.log("reached end")
 


  # Play the file NOW and use the given callback
  log_parser.play (p) ->
    switch p.type
      when 2
        updateVisionState p.packet

    .attr("cx", (b) -> b.x)
    .attr("cy", (b) -> -b.y)

  #ball.exit()
  #  .remove()

pad = (n, width, z) ->
  z = z || "0"
