WAIT waits extacly the given amount of frames, while VSYNC has more to it. It waits for blank frames. Let's say that this code takes a half a frame (1/120th of a second) WHILE 1 DO_SOMETHING '<-- in this example, that takes a half a frame. WAIT 1 WEND The code would run at 45FPS. However, replace WAIT with VSYNC, and since a vertical frame swap is near, we just wait 'till that happens.