Tatsunoko has DVD trouble. This prevents it from corrupting RAM. This doesn't make the game work, though.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1523 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
3c2a41c290
commit
f225f92f4d
|
@ -87,7 +87,11 @@ u32 CWII_IPC_HLE_Device_di::ExecuteCommand(u32 _BufferIn, u32 _BufferInSize, u32
|
||||||
|
|
||||||
/* Set out buffer to zeroes as a safety precaution to avoid answering
|
/* Set out buffer to zeroes as a safety precaution to avoid answering
|
||||||
nonsense values */
|
nonsense values */
|
||||||
Memory::Memset(_BufferOut, 0, _BufferOutSize);
|
|
||||||
|
// TATSUNOKO VS CAPCOM: Gets here with _BufferOut == 0x0!!!
|
||||||
|
if (_BufferOut != 0) {
|
||||||
|
Memory::Memset(_BufferOut, 0, _BufferOutSize);
|
||||||
|
}
|
||||||
|
|
||||||
switch (Command)
|
switch (Command)
|
||||||
{
|
{
|
||||||
|
@ -133,11 +137,16 @@ u32 CWII_IPC_HLE_Device_di::ExecuteCommand(u32 _BufferIn, u32 _BufferInSize, u32
|
||||||
|
|
||||||
// DVDLowRead
|
// DVDLowRead
|
||||||
case 0x71:
|
case 0x71:
|
||||||
{
|
{
|
||||||
|
if (_BufferOut == 0)
|
||||||
|
{
|
||||||
|
PanicAlert("DVDLowRead : _BufferOut == 0");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
u32 Size = Memory::Read_U32(_BufferIn + 0x04);
|
u32 Size = Memory::Read_U32(_BufferIn + 0x04);
|
||||||
u64 DVDAddress = (u64)Memory::Read_U32(_BufferIn + 0x08) << 2;
|
u64 DVDAddress = (u64)Memory::Read_U32(_BufferIn + 0x08) << 2;
|
||||||
|
|
||||||
const char* pFilename = m_pFileSystem->GetFileName(DVDAddress);
|
const char *pFilename = m_pFileSystem->GetFileName(DVDAddress);
|
||||||
if (pFilename != NULL)
|
if (pFilename != NULL)
|
||||||
{
|
{
|
||||||
LOG(WII_IPC_DVD, " DVDLowRead: %s (0x%x) - (DVDAddr: 0x%x, Size: 0x%x)", pFilename, m_pFileSystem->GetFileSize(pFilename), DVDAddress, Size);
|
LOG(WII_IPC_DVD, " DVDLowRead: %s (0x%x) - (DVDAddr: 0x%x, Size: 0x%x)", pFilename, m_pFileSystem->GetFileSize(pFilename), DVDAddress, Size);
|
||||||
|
@ -244,6 +253,10 @@ u32 CWII_IPC_HLE_Device_di::ExecuteCommand(u32 _BufferIn, u32 _BufferInSize, u32
|
||||||
// PanicAlert("DVDLowSeek");
|
// PanicAlert("DVDLowSeek");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xe0:
|
||||||
|
PanicAlert("DVD unknown command 0xe0, so far only seen in Tatsunoko. Don't know what to do, things will probably go wrong.");
|
||||||
|
break;
|
||||||
|
|
||||||
// DVDLowStopMotor
|
// DVDLowStopMotor
|
||||||
case 0xe3:
|
case 0xe3:
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue