mirror of
https://github.com/jpd002/Play-.git
synced 2025-04-28 13:47:57 +03:00
Tweak delays to make both Tekken 5.1 and Tekken DR happy.
This commit is contained in:
parent
2138b076e2
commit
616c4e32a9
3 changed files with 26 additions and 3 deletions
|
@ -502,6 +502,7 @@ set(COMMON_SRC_FILES
|
||||||
states/XmlStateFile.cpp
|
states/XmlStateFile.cpp
|
||||||
states/XmlStateFile.h
|
states/XmlStateFile.h
|
||||||
static_loop.h
|
static_loop.h
|
||||||
|
TimeUtils.h
|
||||||
uint128.h
|
uint128.h
|
||||||
VirtualPad.cpp
|
VirtualPad.cpp
|
||||||
VirtualPad.h
|
VirtualPad.h
|
||||||
|
|
19
Source/TimeUtils.h
Normal file
19
Source/TimeUtils.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace TimeUtils
|
||||||
|
{
|
||||||
|
constexpr static uint64 SecsToCycles(uint64 freq, uint64 secs)
|
||||||
|
{
|
||||||
|
return secs * freq;
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr uint64 MsecsToCycles(uint64 freq, uint64 msecs)
|
||||||
|
{
|
||||||
|
return msecs * freq / 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr uint64 UsecsToCycles(uint64 freq, uint64 usecs)
|
||||||
|
{
|
||||||
|
return usecs * freq / 1'000'000;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
#include "../Log.h"
|
#include "../Log.h"
|
||||||
#include "../states/RegisterStateFile.h"
|
#include "../states/RegisterStateFile.h"
|
||||||
#include "../Ps2Const.h"
|
#include "../Ps2Const.h"
|
||||||
|
#include "../TimeUtils.h"
|
||||||
#include "IopBios.h"
|
#include "IopBios.h"
|
||||||
#include "Iop_Cdvdman.h"
|
#include "Iop_Cdvdman.h"
|
||||||
|
|
||||||
|
@ -41,7 +42,9 @@
|
||||||
#define FUNCTION_CDREADDVDDUALINFO "CdReadDvdDualInfo"
|
#define FUNCTION_CDREADDVDDUALINFO "CdReadDvdDualInfo"
|
||||||
#define FUNCTION_CDLAYERSEARCHFILE "CdLayerSearchFile"
|
#define FUNCTION_CDLAYERSEARCHFILE "CdLayerSearchFile"
|
||||||
|
|
||||||
#define COMMAND_BASE_DELAY 0x100000
|
constexpr uint64 COMMAND_READ_BASE_DELAY = TimeUtils::UsecsToCycles(PS2::IOP_CLOCK_OVER_FREQ, 100);
|
||||||
|
constexpr uint64 COMMAND_READ_SECTOR_DELAY = TimeUtils::UsecsToCycles(PS2::IOP_CLOCK_OVER_FREQ, 500);
|
||||||
|
constexpr uint64 COMMAND_SEEK_DELAY = TimeUtils::UsecsToCycles(PS2::IOP_CLOCK_OVER_FREQ, 100);
|
||||||
|
|
||||||
using namespace Iop;
|
using namespace Iop;
|
||||||
|
|
||||||
|
@ -479,7 +482,7 @@ uint32 CCdvdman::CdRead(uint32 startSector, uint32 sectorCount, uint32 bufferPtr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_pendingCommand = COMMAND_READ;
|
m_pendingCommand = COMMAND_READ;
|
||||||
m_pendingCommandDelay = COMMAND_BASE_DELAY + (sectorCount * 0x100);
|
m_pendingCommandDelay = COMMAND_READ_BASE_DELAY + (sectorCount * COMMAND_READ_SECTOR_DELAY);
|
||||||
m_status = CDVD_STATUS_READING;
|
m_status = CDVD_STATUS_READING;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -490,7 +493,7 @@ uint32 CCdvdman::CdSeek(uint32 sector)
|
||||||
sector);
|
sector);
|
||||||
assert(m_pendingCommand == COMMAND_NONE);
|
assert(m_pendingCommand == COMMAND_NONE);
|
||||||
m_pendingCommand = COMMAND_SEEK;
|
m_pendingCommand = COMMAND_SEEK;
|
||||||
m_pendingCommandDelay = COMMAND_BASE_DELAY;
|
m_pendingCommandDelay = COMMAND_SEEK_DELAY;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue