Emulator Issues #12895
openRiivolution-replaced disk files always load instantly
0%
Description
Game Name?
Probably any game / tested with Mario Kart Wii
Game ID? (right click the game in the game list, Properties, Info tab)
Probably any game / tested with RMCP01
What's the problem? Describe what went wrong.
Usually, Dolphin emulates the read speed of a real Wii's disk drive, so every read request is delayed until it takes the amount of time it would take on a real Wii. I believe this was added because some games break when files loaded from a Disk load too fast.
However, the new Riivolution patch support seems to not implement that. The loading times in Mario Kart Wii, especially for the tracks themselves, are way faster when the tracks are loaded from a Riivolution XML instead of directly from the emulated Disk.
That doesn't cause any issues in Mario Kart Wii, which to my knowledge doesn't care how fast or slow a disk read is, but it might cause other games to break randomly if Riivolution reads are faster than Disk reads.
I am not sure how that is on actual hardware (maybe SD card reads of a file through Riivolution are faster too and games might break as a result, or maybe Riivolution actually adds a delay in that case) as I currently don't have a real Wii with working disk drive available.
I'm also not sure if this even effects any actual game, as I was unable to find like a list of games that are broken with fast read speeds.
I just stumbled upon this while testing Dolphin's Riivolution implementation and was surprised how fast the games loaded stuff.
What steps will reproduce the problem?
Prepare a Riivolution XML / bundle that replaces a large file on-disk with an identical copy of that file. Observe that with "Speed up Disc Transfer Rate" disabled, the Riivolution version loads way faster. With "Speed up Disc Transfer Rate" enabled, they load in about the same time.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes, in 5.0-16143
Is the issue present in the latest stable version?
Latest stable didn't have Riivolution support.
Updated by JMC4789 over 2 years ago
This is actually by design - Dolphin can't tell which files are replaced on a disc right now. Before, it'd make things load really, really slow, as the SD card should be way faster than the disc and some mods rely on this.
This is on the docket to be fixed someday but I don't know if there are any immeidate plans.
Updated by AdmiralCurtiss over 2 years ago
IIRC the problem was less that the SD card reads were slow but that they were emulated as part of the same disc the rest of the data is on, which means any read from SD card incurred a seek, taking away bandwidth from files that are actually on the disc. This was problematic for patches that read streamed audio off the SD card, and the Riivolution PR was already getting bloated, so we did this as a workaround.
The proper fix for this would be adding an extra layer of indirection from the virtual disk offset to the physical location of the data and emulate that accordingly.