hopefully reduce desync potential a little?
This commit is contained in:
parent
610ac2491a
commit
5e945669f5
10
src/NDS.cpp
10
src/NDS.cpp
|
@ -1524,12 +1524,15 @@ u32 NDS::RunFrame()
|
|||
|
||||
ARM9Target = target << ARM9ClockShift;
|
||||
ARM7Target = target;
|
||||
CurCPU = 0;
|
||||
|
||||
while ((std::max(ARM9Timestamp, DMA9Timestamp) < ARM9Target) && (ARM7Timestamp < ARM7Target))
|
||||
{
|
||||
CurCPU = 0;
|
||||
while (std::max(ARM9Timestamp, DMA9Timestamp) < ARM9Target)
|
||||
{
|
||||
RunTimers(0);
|
||||
GPU.GPU3D.Run();
|
||||
|
||||
if (ARM9.MRTrack.Type == MainRAMType::Null)
|
||||
{
|
||||
if (CPUStop & CPUStop_GXStall)
|
||||
|
@ -1563,7 +1566,6 @@ u32 NDS::RunFrame()
|
|||
GPU.GPU3D.Run();
|
||||
|
||||
if (MainRAMHandle()) break;
|
||||
|
||||
}
|
||||
|
||||
CurCPU = 1;
|
||||
|
@ -1572,6 +1574,8 @@ u32 NDS::RunFrame()
|
|||
{
|
||||
//printf("A7 LOOP: %lli %lli\n", ARM9Timestamp>>ARM9ClockShift, ARM7Timestamp);
|
||||
|
||||
RunTimers(1);
|
||||
|
||||
if (ARM7.MRTrack.Type == MainRAMType::Null)
|
||||
{
|
||||
if (CPUStop & CPUStop_DMA7)
|
||||
|
@ -1614,7 +1618,7 @@ u32 NDS::RunFrame()
|
|||
#ifdef DEBUG_CHECK_DESYNC
|
||||
Log(LogLevel::Debug, "[%08X%08X] ARM9=%ld, ARM7=%ld, GPU=%ld\n",
|
||||
(u32)(SysTimestamp>>32), (u32)SysTimestamp,
|
||||
(std::max(ARM9Timestamp,DMA9Timestamp)>>ARM9ClockShift)-SysTimestamp,
|
||||
std::max(std::max(ARM9Timestamp,DMA9Timestamp)>>ARM9ClockShift, A9ContentionTS)-SysTimestamp,
|
||||
ARM7Timestamp-SysTimestamp,
|
||||
GPU.GPU3D.Timestamp-SysTimestamp);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue