Fix first DTK track not playing after booting with IPL
DVDLowAudioBufferConfig doesn't start a DTK stream, it just tells the drive that the game is allowed to use DTK. At least if I'm not mistaken.
This commit is contained in:
parent
0140009114
commit
20b8c24847
|
@ -991,27 +991,18 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||||
|
|
||||||
// DVD Audio Enable/Disable (Immediate). GC uses this, and apparently Wii also does...?
|
// DVD Audio Enable/Disable (Immediate). GC uses this, and apparently Wii also does...?
|
||||||
case DVDLowAudioBufferConfig:
|
case DVDLowAudioBufferConfig:
|
||||||
// For more information: http://www.crazynation.org/GC/GC_DD_TECH/GCTech.htm (dead link?)
|
// The IPL uses this command to enable or disable DTK audio depending on the value of byte 0x8
|
||||||
//
|
// in the disc header. See http://www.crazynation.org/GC/GC_DD_TECH/GCTech.htm for more info.
|
||||||
// Upon Power up or reset , 2 commands must be issued for proper use of audio streaming:
|
// The link is dead, but you can access the page using the Wayback Machine at archive.org.
|
||||||
// DVDReadDiskID A8000040,00000000,00000020
|
|
||||||
// DVDLowAudioBufferConfig E4xx00yy,00000000,00000020
|
// TODO: Dolphin doesn't prevent the game from using DTK when the IPL doesn't enable it.
|
||||||
//
|
// Should we be failing with an error code when the game tries to use the 0xE1 command?
|
||||||
// xx=byte 8 [0 or 1] from the disk header retrieved from DVDReadDiskID
|
// (Not that this should matter normally, since games that use DTK set the header byte to 1)
|
||||||
// yy=0 (if xx=0) or 0xA (if xx=1)
|
|
||||||
|
|
||||||
if ((command_0 >> 16) & 0xFF)
|
if ((command_0 >> 16) & 0xFF)
|
||||||
{
|
INFO_LOG(DVDINTERFACE, "DTK enabled");
|
||||||
// TODO: What is this actually supposed to do?
|
|
||||||
s_stream = true;
|
|
||||||
INFO_LOG(DVDINTERFACE, "(Audio): Audio enabled");
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
INFO_LOG(DVDINTERFACE, "DTK disabled");
|
||||||
// TODO: What is this actually supposed to do?
|
|
||||||
s_stream = false;
|
|
||||||
INFO_LOG(DVDINTERFACE, "(Audio): Audio disabled");
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// yet another (GC?) command we prolly don't care about
|
// yet another (GC?) command we prolly don't care about
|
||||||
|
|
Loading…
Reference in New Issue