Index: src/Cube.mm ================================================================== --- src/Cube.mm +++ src/Cube.mm @@ -196,11 +196,14 @@ // if this map is changed, also change depthcorrect() changemap(@"metl3"); log(@"mainloop"); int ignore = 5; + OFDate *past = [OFDate date]; for (;;) { + [OFRunLoop.mainRunLoop runUntilDate:past]; + int millis = SDL_GetTicks() * gamespeed / 100; if (millis - lastmillis > 200) lastmillis = millis - 200; else if (millis - lastmillis < 1) lastmillis = millis - 1;