diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp index b90f5e5f9..8a46d71a5 100644 --- a/src/core/hw/gpu.cpp +++ b/src/core/hw/gpu.cpp @@ -416,10 +416,14 @@ inline void Write(u32 addr, const T data) { LOG_TRACE(HW_GPU, "MemoryFill from 0x%08x to 0x%08x", config.GetStartAddress(), config.GetEndAddress()); - if (!is_second_filler) { - GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC0); - } else { - GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC1); + // It seems that it won't signal interrupt if "address_start" is zero. + // TODO: hwtest this + if (config.GetStartAddress() != 0) { + if (!is_second_filler) { + GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC0); + } else { + GSP_GPU::SignalInterrupt(GSP_GPU::InterruptId::PSC1); + } } // Reset "trigger" flag and set the "finish" flag