DeaDDooMER» Похоже перестаёт тикать время (wtf?). Звучит как классическая проблема с non-monotonic timer. Причём возможно, что аппаратная - если речь о твоём iBook G4, то год выхода вполне позволяет.
В Rust это даже отдельного упоминания в документации удостоилось:
https://doc.rust-lang.org/1.87.0/std/time/struct.Instant.html#monotonicity.
Если не затруднит, попробуй воткнуть в
sys_GetTicks() примитивный if со статической переменной, чтобы возвращаемое значение не могло быть меньше предыдущего.
Идея в чём: если
time хоть раз получит значение, меньше предыдущего, то
past_time - time даст отрицательный результат. Если это ещё и беззнаковой переменной присвоится, то совсем привет.
Ещё вот тут пишут, что SDL2 раньше вообще использовал системные часы (!) в качестве источника отсчёта. O_o
https://discourse.libsdl.org/t/timer-misbehaving-with-system-time-change/26705На SDL 1.x тестировал, есть ли проблема?