idle skipping works!
This commit is contained in:
@@ -140,6 +140,7 @@ void Interpreter::branch(const bool cond, const s64 address) {
|
||||
regs.delaySlot = true;
|
||||
if (cond) {
|
||||
regs.nextPC = address;
|
||||
Core::MaybeIdleSkip();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,6 +148,7 @@ void Interpreter::branch_likely(const bool cond, const s64 address) {
|
||||
if (cond) {
|
||||
regs.delaySlot = true;
|
||||
regs.nextPC = address;
|
||||
Core::MaybeIdleSkip();
|
||||
} else {
|
||||
regs.SetPC64(regs.nextPC);
|
||||
}
|
||||
|
||||
@@ -425,7 +425,6 @@ auto PI::Read(u32 addr) const -> u32 {
|
||||
return wrLen;
|
||||
case 0x04600010:
|
||||
{
|
||||
Core::SetIdleSkippingStatus(true);
|
||||
u32 value = 0;
|
||||
value |= (dmaBusy << 0); // Is PI DMA active?
|
||||
value |= (ioBusy << 1); // Is PI IO busy?
|
||||
@@ -433,6 +432,7 @@ auto PI::Read(u32 addr) const -> u32 {
|
||||
value |= (mem.mmio.mi.intr.pi << 3); // PI interrupt?
|
||||
return value;
|
||||
}
|
||||
case 0x04600034:
|
||||
case 0x04600014:
|
||||
return piBsdDom1Lat;
|
||||
case 0x04600018:
|
||||
|
||||
@@ -24,7 +24,6 @@ auto SI::Read(u32 addr) const -> u32 {
|
||||
return 0;
|
||||
case 0x04800018:
|
||||
{
|
||||
Core::SetIdleSkippingStatus(true);
|
||||
u32 val = 0;
|
||||
val |= status.dmaBusy;
|
||||
val |= (0 << 1);
|
||||
|
||||
Reference in New Issue
Block a user