-#ifdef SPEED_CONTROL
- nTime = SDL_GetTicks() - nNormalLast; // calcule le temps écoulé depuis le dernier affichage
- // nTime est en mili-secondes.
- // détermine le nombre de trames à passer + 1
- nCount = (nTime * 600 - nNormalFrac) / 10000;
-
- // si le nombre de trames à passer + 1 est nul ou négatif,
- // ne rien faire pendant 2 ms
- if (nCount <= 0)
- {
- //Sleep(2);
- //SDL_Delay(1);
- } // No need to do anything for a bit
- else
- {
- nNormalFrac += nCount * 10000; //
- nNormalLast += nNormalFrac / 600; // add the duration of nNormalFrac frames
- nNormalFrac %= 600; //
-
- // Pas plus de 9 (10-1) trames non affichées
- if (nCount > 10)
- nCount = 10;
- for(int i=0; i<nCount-1; i++)
- jaguar_exec(backbuffer, false);
-#endif
- // Setting up new backbuffer with new pixels and data
- jaguar_exec(backbuffer, true);
- totalFrames++;
-
- // Simple frameskip
- if (nFrame == nFrameskip)
- {
- int32 * vs = (int32 *)surface->lock();
- memcpy(vs, backbuffer, tom_width * tom_height * 2);
- surface->unlock();
- surface->copy(console);
- console.update();
- nFrame = 0;
- }
- else
- nFrame++;
-
- joystick_exec();
-
-#ifdef SPEED_CONTROL
- }
-#endif