diff --git a/src/xenia/gpu/pm4_command_processor_implement.h b/src/xenia/gpu/pm4_command_processor_implement.h index 4684c22d6..0072ecc7e 100644 --- a/src/xenia/gpu/pm4_command_processor_implement.h +++ b/src/xenia/gpu/pm4_command_processor_implement.h @@ -29,7 +29,7 @@ void COMMAND_PROCESSOR::ExecuteIndirectBuffer(uint32_t ptr, // Return up a level if we encounter a bad packet. XELOGE("**** INDIRECT RINGBUFFER: Failed to execute packet."); assert_always(); - // break; + break; } } while (reader_.read_count()); diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index e3fff3fd3..a67dc56f3 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -527,9 +527,15 @@ uint32_t Memory::HostToGuestVirtualThunk(const void* context, uint32_t Memory::GetPhysicalAddress(uint32_t address) const { const BaseHeap* heap = LookupHeap(address); - if (!heap || heap->heap_type() != HeapType::kGuestPhysical) { + if (!heap) { return UINT32_MAX; } + + // Assumption that we already received physical address, so just return it. + if (heap->heap_type() != HeapType::kGuestPhysical && address < 0x1FFFFFFF) { + return address; + } + return static_cast(heap)->GetPhysicalAddress(address); }