X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fcommon%2Femu.c;h=5b6935780b83618a1299c3578b72a4e535d70117;hb=39230401af19770c5470a7470f632fa66c8de3fd;hp=c482673144636797d40478dbb8fbcea0aeaf874a;hpb=2b1f0e25193de382c6578fcf8e5edeaa37a21555;p=picodrive.git diff --git a/platform/common/emu.c b/platform/common/emu.c index c482673..5b69357 100644 --- a/platform/common/emu.c +++ b/platform/common/emu.c @@ -1026,6 +1026,27 @@ void emu_RunEventsPico(unsigned int events) } } - - +void emu_DoTurbo(int *pad, int acts) +{ + static int turbo_pad = 0; + static unsigned char turbo_cnt[3] = { 0, 0, 0 }; + int inc = currentConfig.turbo_rate * 2; + + if (acts & 0x1000) { + turbo_cnt[0] += inc; + if (turbo_cnt[0] >= 60) + turbo_pad ^= 0x10, turbo_cnt[0] = 0; + } + if (acts & 0x2000) { + turbo_cnt[1] += inc; + if (turbo_cnt[1] >= 60) + turbo_pad ^= 0x20, turbo_cnt[1] = 0; + } + if (acts & 0x4000) { + turbo_cnt[2] += inc; + if (turbo_cnt[2] >= 60) + turbo_pad ^= 0x40, turbo_cnt[2] = 0; + } + *pad |= turbo_pad & (acts >> 8); +}