Merge branch 'less-ambitious-timing-rework' into chemical-x
This commit is contained in:
commit
3fcdc45029
10
src/CP15.cpp
10
src/CP15.cpp
|
@ -1028,7 +1028,7 @@ void ARMv5::WriteBufferWrite(u32 val, u8 flag, u8 cycles, u32 addr)
|
||||||
else if (WBWritePointer == 16) // indicates empty write buffer
|
else if (WBWritePointer == 16) // indicates empty write buffer
|
||||||
{
|
{
|
||||||
WBWritePointer = 0;
|
WBWritePointer = 0;
|
||||||
WBTimestamp = (((NDS.ARM9Timestamp + DataCycles) + ((1<<NDS.ARM9ClockShift)-1)) & ~((1<<NDS.ARM9ClockShift)-1)) >> NDS.ARM9ClockShift;
|
WBTimestamp = (((NDS.ARM9Timestamp + DataCycles + 1) + ((1<<NDS.ARM9ClockShift)-1)) & ~((1<<NDS.ARM9ClockShift)-1)) >> NDS.ARM9ClockShift;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteBufferFifo[WBFillPointer] = val | (u64)flag << 62;
|
WriteBufferFifo[WBFillPointer] = val | (u64)flag << 62;
|
||||||
|
@ -2131,7 +2131,7 @@ bool ARMv5::DataWrite8(u32 addr, u8 val)
|
||||||
u8 cycles = NDS.ARM9MemTimings[addr>>14][0];
|
u8 cycles = NDS.ARM9MemTimings[addr>>14][0];
|
||||||
if ((addr >> 24) == 0x02)
|
if ((addr >> 24) == 0x02)
|
||||||
{
|
{
|
||||||
cycles = (cycles - 2) & 0x80;
|
cycles = (cycles - 2) | 0x80;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteBufferWrite(addr, 3, 0);
|
WriteBufferWrite(addr, 3, 0);
|
||||||
|
@ -2211,7 +2211,7 @@ bool ARMv5::DataWrite16(u32 addr, u16 val)
|
||||||
u8 cycles = NDS.ARM9MemTimings[addr>>14][0];
|
u8 cycles = NDS.ARM9MemTimings[addr>>14][0];
|
||||||
if ((addr >> 24) == 0x02)
|
if ((addr >> 24) == 0x02)
|
||||||
{
|
{
|
||||||
cycles = (cycles - 2) & 0x80;
|
cycles = (cycles - 2) | 0x80;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteBufferWrite(addr, 3, 0);
|
WriteBufferWrite(addr, 3, 0);
|
||||||
|
@ -2292,7 +2292,7 @@ bool ARMv5::DataWrite32(u32 addr, u32 val)
|
||||||
u8 cycles = NDS.ARM9MemTimings[addr>>14][2];
|
u8 cycles = NDS.ARM9MemTimings[addr>>14][2];
|
||||||
if ((addr >> 24) == 0x02)
|
if ((addr >> 24) == 0x02)
|
||||||
{
|
{
|
||||||
cycles = (cycles - 2) & 0x80;
|
cycles = (cycles - 2) | 0x80;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteBufferWrite(addr, 3, 0);
|
WriteBufferWrite(addr, 3, 0);
|
||||||
|
@ -2369,7 +2369,7 @@ bool ARMv5::DataWrite32S(u32 addr, u32 val)
|
||||||
u8 cycles = NDS.ARM9MemTimings[addr>>14][3];
|
u8 cycles = NDS.ARM9MemTimings[addr>>14][3];
|
||||||
if ((addr >> 24) == 0x02)
|
if ((addr >> 24) == 0x02)
|
||||||
{
|
{
|
||||||
cycles = (cycles - 2) & 0x80;
|
cycles = (cycles - 2) | 0x80;
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteBufferWrite(val, 2, cycles, addr);
|
WriteBufferWrite(val, 2, cycles, addr);
|
||||||
|
|
Loading…
Reference in New Issue