WAIT will always wait the amount of time specified, while VSYNC waits for the amount of frames specified. (I think) Basically, if your program takes most of a frame for each loop to be processed, VSYNC 1 will only wait the remaining amount of time for that frame before continuing. This ensures a completely stable game speed, unless your program takes *longer* than one frame to process per loop.