After mounting or unmounting a filesystem, flush cache, so we don't keep
stale cache around.
RageFileDriverDirect::Remount could (and should) flush its own cache when
changing root (since the cache represents the old root). However, calling
Remount doesn't indicate that the filesystem has actually changed, so if
the root isn't actually changing (Remount("/mnt") on a filesystem already
pointing to /mnt), the driver can't be expected to flush. (Remount also
currently doesn't go through Timeout, and we need to flush on unmount,
too.) So, take the cheap way out and just flush through FILEMAN.
merge them. (They're both enabled and disabled in the same place.)
Pause the memory card thread during gameplay, so any changes will
wait until the current stage finishes (so we don't interrupt the player with
a noise and possibly skip). Work on making MemoryCardManager::LockCards()
block if the card is in CHECKING.
havn't finished checking it out yet (eg. write check). This improves responsiveness:
a slow card will indicate that we see the card immediately, and it helps
diagnostics since we can easily tell if the machine sees a card. Allow re-
establishing a memory card removed after finalization, as long as it has the
same serial number.
worker threads (though somewhat simpler). Changes: MemoryCardDriverThreaded
is going away; all memory card drivers are implicitly threaded at a higher
level (there's no reason to not do so). Memory card drivers can safely time
out; we'll recover sanely. This needs a bit more work, but should be more
tolerant of long memory card recovery periods.
memory card thread when mounting the first drive, and automatically
unpause it when we unmount the last drive. (We can do this simplification
because we always mount and unmount memory cards explicitly when
reading and writing to them.)
- Don't do the OS mount for cards during the attract screens. Only do OS mounts in the time between BeginGame and PlayersFinalized.
- Remove logic for fast load of a Profile from the MemoryCard. Instead, load the whole profile all at once on PlayersFinalized.