- int new_tick = tick | (prev_tick & ~0xffff);
- if (new_tick < prev_tick) {
- if (prev_tick - new_tick > 0x8000)
- new_tick += 0x10000;
+ if (prev_tick_valid) {
+ tick |= (prev_tick & ~0xffff);
+ if (tick < prev_tick) {
+ if (prev_tick - tick > 0x8000)
+ tick += 0x10000;
+ } else {
+ if (tick - prev_tick > 0x8000)
+ tick -= 0x10000;
+ }