Hardware/Drive Interface

From Wii-Linux Wiki
Jump to navigation Jump to search

The GameCube and Wii contain a DVD optical disc drive. Their intended purpose is to read the proprietary NROM format, but this is not all they can be used for. This drive is interfaced with via the DI (Drive Interface) in the Flipper and Hollywood SoCs.

Non-NROM media support

[edit | edit source]

In early model Wiis (pre-2008), this drive is capable of reading burned DVD-R or pressed DVD-ROM discs, through special "DVD video" commands, blocked from being sent to the drive via an HW_COMPAT bit normally, but they can be enabled by setting it. Later drive models removed this functionality, regardless of whether commands are permitted to be sent according to the SoC. All GameCube drives can have their firmware patched via software to support reading DVD-R/DVD-ROM.

Software compatibility

[edit | edit source]

There is a driver in Wii-Linux known as rvl-di (file path: drivers/block/rvl-di.c) for interfacing with the DVD drive. Older versions of Wii-Linux supported the DVD drive, however support has heavily deteriorated over the years:

  • 3.15.10 (stable-v3.x): Full support
  • 4.3.6 (experimental-v4.x): Hang trying to read data from the disc.
  • 4.4.302-cip80: Can't read any drive response data (even metadata).
  • 4.19 (possibly older?): can't even send basic commands to the drive, like a drive reset.
  • Mainline: Full support (via new driver, ported from NPLL)

NetBSD has a functional driver for the Wii's DVD drive.