summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2018-11-02 13:24:28 +0100
committerGitHub <noreply@github.com>2018-11-02 13:24:28 +0100
commit650961687ac08613fbac29ba9e41c2e09afca1ee (patch)
tree840a45dc095da22359d7dc1d0eaf49c0899d7959 /Source
parent22ddd11573fd8d3e43a879804e7a64e50928435d (diff)
parent20b8c2484766ff6988cdc1711af4ac44a81db168 (diff)
Merge pull request #7538 from JosJuice/ipl-dtk
Fix first DTK track not playing after booting with IPL
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/DVD/DVDInterface.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp
index 0acbbc24e2..1ed6cf0f5b 100644
--- a/Source/Core/Core/HW/DVD/DVDInterface.cpp
+++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp
@@ -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...?
case DVDLowAudioBufferConfig:
- // For more information: http://www.crazynation.org/GC/GC_DD_TECH/GCTech.htm (dead link?)
- //
- // Upon Power up or reset , 2 commands must be issued for proper use of audio streaming:
- // DVDReadDiskID A8000040,00000000,00000020
- // DVDLowAudioBufferConfig E4xx00yy,00000000,00000020
- //
- // xx=byte 8 [0 or 1] from the disk header retrieved from DVDReadDiskID
- // yy=0 (if xx=0) or 0xA (if xx=1)
+ // 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.
+ // The link is dead, but you can access the page using the Wayback Machine at archive.org.
+
+ // 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?
+ // (Not that this should matter normally, since games that use DTK set the header byte to 1)
if ((command_0 >> 16) & 0xFF)
- {
- // TODO: What is this actually supposed to do?
- s_stream = true;
- INFO_LOG(DVDINTERFACE, "(Audio): Audio enabled");
- }
+ INFO_LOG(DVDINTERFACE, "DTK enabled");
else
- {
- // TODO: What is this actually supposed to do?
- s_stream = false;
- INFO_LOG(DVDINTERFACE, "(Audio): Audio disabled");
- }
+ INFO_LOG(DVDINTERFACE, "DTK disabled");
break;
// yet another (GC?) command we prolly don't care about