diff --git a/output/dll/picodrive.wbx.gz b/output/dll/picodrive.wbx.gz index 223c8d42e9..d6e2dbd967 100644 Binary files a/output/dll/picodrive.wbx.gz and b/output/dll/picodrive.wbx.gz differ diff --git a/waterbox/picodrive/bizhawk.c b/waterbox/picodrive/bizhawk.c index 3c74e29978..187723f14f 100644 --- a/waterbox/picodrive/bizhawk.c +++ b/waterbox/picodrive/bizhawk.c @@ -201,16 +201,18 @@ static void Blit(void) } } +static uint32_t PrevButtons; ECL_EXPORT void FrameAdvance(MyFrameInfo *f) { current_frame = f; PicoInputWasRead = 0; PicoPad[0] = f->Buttons & 0xfff; PicoPad[1] = f->Buttons >> 12 & 0xfff; - if (f->Buttons & 0x1000000) + if ((f->Buttons & 0x1000000) > (PrevButtons & 0x1000000)) PicoPower(); - if (f->Buttons & 0x2000000) + if ((f->Buttons & 0x2000000) > (PrevButtons & 0x2000000)) PicoReset(); + PrevButtons = f->Buttons; PicoFrame(); Blit();