From: notaz Date: Fri, 15 Jan 2016 00:50:55 +0000 (+0200) Subject: some real basic pollux timer X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=ginge.git;a=commitdiff_plain;h=26d2801c71c0d346c11af160fa9def27c3359d27;hp=890c1dc54f2d12febbf4238c73ccd145a6724771 some real basic pollux timer --- diff --git a/loader/emu.c b/loader/emu.c index 3a2bd65..91989c4 100644 --- a/loader/emu.c +++ b/loader/emu.c @@ -430,11 +430,17 @@ static void fb_thread_resume(void) static u32 xread32_io_cmn(u32 a, u32 *handled) { + struct timespec ts; u32 d = 0; *handled = 1; switch (a) { // Wiz stuff + case 0x1980: // TIMER3 TMRCOUNT + // assume the timer is set up for microsec time + g_clock_gettime_raw(CLOCK_REALTIME, &ts); + d = ts.tv_sec * 1000000 + ((u64)(u32)ts.tv_nsec * 4294968 >> 32); + break; case 0x402c: // MLCVSTRIDE0 case 0x4060: // MLCVSTRIDE1 d = pollux.v.stride;