shorten some of the FDS mechanical timings based on nesdev feedback. bizhawk now seems to be about 6 seconds slower than fceux in initial loading of FDS titles. This makes sense, as fceux isn't timing at all the BIOS's first pass over the disk, worth about 6 seconds.

This commit is contained in:
goyuken 2012-10-29 19:26:52 +00:00
parent 8a67af227e
commit aa292b678e
1 changed files with 15 additions and 5 deletions

View File

@ -318,22 +318,32 @@ namespace BizHawk.Emulation.Consoles.Nintendo
{
case RamAdapterState.RUNNING: // matches of-quoted 96khz data transfer rate
// time to read/write one bit
/* "transfer rate of 96.4kHz"*/
cycleswaiting = 56;
break;
case RamAdapterState.INSERTING: // 298ms
case RamAdapterState.INSERTING: // 100ms
// time for the disk drive to engage on disk after inserting
cycleswaiting = 1600000;
// i know there are no servos or anything that have to engage, just a few
// springs; so this time is likely rather short
cycleswaiting = 535000;
break;
case RamAdapterState.SPINUP: // 199ms
// time for motor to spinup and start
// it's difficult to say how long this time is exactly, as the time the
// motor spends spinning up is merged with the disk pre-gap, so we don't
// know how long each is individually
cycleswaiting = 1070000;
break;
case RamAdapterState.IDLE: // irrelevant
cycleswaiting = 50000;
cycleswaiting = 100000;
break;
case RamAdapterState.RESET: // 1200ms
case RamAdapterState.RESET: // 100ms
// time for motor to re-park after reaching end of drive
cycleswaiting = 6443100;
/* "It's a spring which will pull the reading head next to the outer edge of
* the disk (you can clearly hear a click when this happens), so it's hard to
* know exactly, but it's almost instantaneous (compared to the 6-7 seconds
* required for moving in the other direction)."*/
cycleswaiting = 535000;
break;
}
}