Core/IOS/IOS: Remove global system accessor from RAMOverrideForIOSMemoryValues()
We can allow passing in the memory instance instead of directly going for the global system instance.
This commit is contained in:
parent
a13bcd87d4
commit
b8c657b06f
|
@ -592,7 +592,7 @@ bool CBoot::EmulatedBS2_Wii(Core::System& system, const Core::CPUThreadGuard& gu
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// The Apploader probably just overwrote values needed for RAM Override. Run this again!
|
// The Apploader probably just overwrote values needed for RAM Override. Run this again!
|
||||||
IOS::HLE::RAMOverrideForIOSMemoryValues(IOS::HLE::MemorySetupType::IOSReload);
|
IOS::HLE::RAMOverrideForIOSMemoryValues(memory, IOS::HLE::MemorySetupType::IOSReload);
|
||||||
|
|
||||||
// Warning: This call will set incorrect running game metadata if our volume parameter
|
// Warning: This call will set incorrect running game metadata if our volume parameter
|
||||||
// doesn't point to the same disc as the one that's inserted in the emulated disc drive!
|
// doesn't point to the same disc as the one that's inserted in the emulated disc drive!
|
||||||
|
|
|
@ -140,8 +140,7 @@ static bool SetupMemory(Memory::MemoryManager& memory, u64 ios_title_id, MemoryS
|
||||||
memory.Write_U32(target_imv->ios_reserved_begin, ADDR_IOS_RESERVED_BEGIN);
|
memory.Write_U32(target_imv->ios_reserved_begin, ADDR_IOS_RESERVED_BEGIN);
|
||||||
memory.Write_U32(target_imv->ios_reserved_end, ADDR_IOS_RESERVED_END);
|
memory.Write_U32(target_imv->ios_reserved_end, ADDR_IOS_RESERVED_END);
|
||||||
|
|
||||||
RAMOverrideForIOSMemoryValues(setup_type);
|
RAMOverrideForIOSMemoryValues(memory, setup_type);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,8 +183,7 @@ static bool SetupMemory(Memory::MemoryManager& memory, u64 ios_title_id, MemoryS
|
||||||
memory.Write_U32(target_imv->mem1_arena_end, ADDR_LEGACY_ARENA_HIGH);
|
memory.Write_U32(target_imv->mem1_arena_end, ADDR_LEGACY_ARENA_HIGH);
|
||||||
memory.Write_U32(target_imv->mem1_simulated_size, ADDR_LEGACY_MEM_SIM_SIZE);
|
memory.Write_U32(target_imv->mem1_simulated_size, ADDR_LEGACY_MEM_SIM_SIZE);
|
||||||
|
|
||||||
RAMOverrideForIOSMemoryValues(setup_type);
|
RAMOverrideForIOSMemoryValues(memory, setup_type);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,15 +223,12 @@ static void ReleasePPCAncast(Core::System& system)
|
||||||
system.GetPPCState().pc = ESPRESSO_ANCAST_LOCATION_VIRT + sizeof(EspressoAncastHeader);
|
system.GetPPCState().pc = ESPRESSO_ANCAST_LOCATION_VIRT + sizeof(EspressoAncastHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RAMOverrideForIOSMemoryValues(MemorySetupType setup_type)
|
void RAMOverrideForIOSMemoryValues(Memory::MemoryManager& memory, MemorySetupType setup_type)
|
||||||
{
|
{
|
||||||
// Don't touch anything if the feature isn't enabled.
|
// Don't touch anything if the feature isn't enabled.
|
||||||
if (!Config::Get(Config::MAIN_RAM_OVERRIDE_ENABLE))
|
if (!Config::Get(Config::MAIN_RAM_OVERRIDE_ENABLE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto& system = Core::System::GetInstance();
|
|
||||||
auto& memory = system.GetMemory();
|
|
||||||
|
|
||||||
// Some unstated constants that can be inferred.
|
// Some unstated constants that can be inferred.
|
||||||
const u32 ipc_buffer_size =
|
const u32 ipc_buffer_size =
|
||||||
memory.Read_U32(ADDR_IPC_BUFFER_END) - memory.Read_U32(ADDR_IPC_BUFFER_BEGIN);
|
memory.Read_U32(ADDR_IPC_BUFFER_END) - memory.Read_U32(ADDR_IPC_BUFFER_BEGIN);
|
||||||
|
|
|
@ -23,6 +23,10 @@ namespace Core
|
||||||
{
|
{
|
||||||
class System;
|
class System;
|
||||||
}
|
}
|
||||||
|
namespace Memory
|
||||||
|
{
|
||||||
|
class MemoryManager;
|
||||||
|
}
|
||||||
|
|
||||||
namespace IOS::HLE
|
namespace IOS::HLE
|
||||||
{
|
{
|
||||||
|
@ -109,7 +113,7 @@ enum class HangPPC : bool
|
||||||
Yes = true,
|
Yes = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
void RAMOverrideForIOSMemoryValues(MemorySetupType setup_type);
|
void RAMOverrideForIOSMemoryValues(Memory::MemoryManager& memory, MemorySetupType setup_type);
|
||||||
|
|
||||||
void WriteReturnValue(s32 value, u32 address);
|
void WriteReturnValue(s32 value, u32 address);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue