Skip to content

Instantly share code, notes, and snippets.

@mmastrac
Created February 5, 2017 19:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mmastrac/4a6f45e3ced8c4b5df094d959072b315 to your computer and use it in GitHub Desktop.
Save mmastrac/4a6f45e3ced8c4b5df094d959072b315 to your computer and use it in GitHub Desktop.
Wii Drive Investigation

The Wii drive itself operates at the smallest possible DVD read size: a 32kB ECC block. This is the minimum that the drive can read from the disc, even if the game is asking for less data.

As game assets tend to be larger in size, the drive has a special 1MB (32 ECC block) streaming buffer that it maintains in the background. The drive will try to keep 1MB of data in memory from the last location the game requested. This streaming buffer is actually circular and will re-use old data still within the streaming buffer window. Seeking forward by more than 1MB or backward at all will destroy the buffer.

The drive has two seek speeds: short/slow and long/fast. Short seeks are slower and occur when seeking less than 1mm physically on the disc. Long seeks are much faster and occur when the drive needs to seek more than 1mm.

After completely filling the streaming buffer, the drive leaves the head parked on the track where the streaming buffer ended. If the game requests a read starting at this position it doesn't need to incur a seek penalty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment