diff --git a/source/ngc/gcvideo.cpp b/source/ngc/gcvideo.cpp index 6830acd..ce45c84 100644 --- a/source/ngc/gcvideo.cpp +++ b/source/ngc/gcvideo.cpp @@ -283,14 +283,22 @@ copy_to_xfb (u32 arg) switch(FDSSwitchRequested) { case 1: - FCEUI_FDSInsert(); // eject disk FDSSwitchRequested++; + FCEUI_FDSInsert(); // eject disk + FDSTimer = 0; break; case 2: if(FDSTimer > 60) { + FDSSwitchRequested++; + FDSTimer = 0; FCEUI_FDSSelect(); // select other side FCEUI_FDSInsert(); // insert disk + } + break; + case 3: + if(FDSTimer > 200) + { FDSSwitchRequested = 0; FDSTimer = 0; } diff --git a/source/ngc/pad.cpp b/source/ngc/pad.cpp index ae4d355..ae457fd 100644 --- a/source/ngc/pad.cpp +++ b/source/ngc/pad.cpp @@ -538,7 +538,8 @@ static unsigned char DecodeJoy( unsigned short pad ) * we'll delay them so the virtual FDS has a chance * to process them */ - FDSSwitchRequested = 1; + if(FDSSwitchRequested == 0) + FDSSwitchRequested = 1; } else FCEUI_VSUniCoin(); // insert coin for VS Games