mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 00:59:44 -06:00
Merge pull request #8733 from JosJuice/di-baten-kaitos
Adjust s_DIMAR/s_DILENGTH behavior (fixes Baten Kaitos music)
This commit is contained in:
@ -1233,8 +1233,17 @@ void SetHighError(u32 high_error)
|
|||||||
void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type, s64 cycles_late,
|
void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type, s64 cycles_late,
|
||||||
const std::vector<u8>& data)
|
const std::vector<u8>& data)
|
||||||
{
|
{
|
||||||
s_DIMAR += s_DILENGTH;
|
// The data parameter contains the requested data iff this was called from DVDThread, and is
|
||||||
s_DILENGTH = 0;
|
// empty otherwise. DVDThread is the only source of ReplyType::NoReply and ReplyType::DTK.
|
||||||
|
|
||||||
|
u32 transfer_size = 0;
|
||||||
|
if (reply_type == ReplyType::NoReply)
|
||||||
|
transfer_size = static_cast<u32>(data.size());
|
||||||
|
else if (reply_type == ReplyType::Interrupt || reply_type == ReplyType::IOS)
|
||||||
|
transfer_size = s_DILENGTH;
|
||||||
|
|
||||||
|
s_DIMAR += transfer_size;
|
||||||
|
s_DILENGTH -= transfer_size;
|
||||||
|
|
||||||
switch (reply_type)
|
switch (reply_type)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user