move emu loop to common; redo timing; add pollux timer

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@721 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2009-07-31 22:01:03 +00:00
parent bbc8ceb9c0
commit b24e0f6ce6
13 changed files with 385 additions and 319 deletions

View file

@ -17,6 +17,12 @@ int plat_is_dir(const char *path)
return 0;
}
#ifdef __GP2X__
/* Wiz has a borked gettimeofday().. */
#define plat_get_ticks_ms plat_get_ticks_ms_gtod
#define plat_get_ticks_us plat_get_ticks_us_gtod
#endif
unsigned int plat_get_ticks_ms(void)
{
struct timeval tv;
@ -25,12 +31,25 @@ unsigned int plat_get_ticks_ms(void)
gettimeofday(&tv, NULL);
ret = (unsigned)tv.tv_sec * 1000;
/* approximate division */
/* approximate /= 1000 */
ret += ((unsigned)tv.tv_usec * 4195) >> 22;
return ret;
}
unsigned int plat_get_ticks_us(void)
{
struct timeval tv;
unsigned int ret;
gettimeofday(&tv, NULL);
ret = (unsigned)tv.tv_sec * 1000000;
ret += (unsigned)tv.tv_usec;
return ret;
}
void plat_sleep_ms(int ms)
{
usleep(ms * 1000);