hw/gpu: pass in memory reference
This commit is contained in:
parent
ec01975549
commit
cfee59c6db
|
@ -189,7 +189,7 @@ System::ResultStatus System::Init(EmuWindow& emu_window, u32 system_mode) {
|
||||||
cpu_core = std::make_unique<ARM_DynCom>(USER32MODE);
|
cpu_core = std::make_unique<ARM_DynCom>(USER32MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
dsp_core = std::make_unique<AudioCore::DspHle>();
|
dsp_core = std::make_unique<AudioCore::DspHle>(*memory);
|
||||||
dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id);
|
dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id);
|
||||||
dsp_core->EnableStretching(Settings::values.enable_audio_stretching);
|
dsp_core->EnableStretching(Settings::values.enable_audio_stretching);
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ System::ResultStatus System::Init(EmuWindow& emu_window, u32 system_mode) {
|
||||||
service_manager = std::make_shared<Service::SM::ServiceManager>(*this);
|
service_manager = std::make_shared<Service::SM::ServiceManager>(*this);
|
||||||
archive_manager = std::make_unique<Service::FS::ArchiveManager>(*this);
|
archive_manager = std::make_unique<Service::FS::ArchiveManager>(*this);
|
||||||
|
|
||||||
HW::Init();
|
HW::Init(*memory);
|
||||||
Service::Init(*this);
|
Service::Init(*this);
|
||||||
GDBStub::Init();
|
GDBStub::Init();
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
namespace GPU {
|
namespace GPU {
|
||||||
|
|
||||||
Regs g_regs;
|
Regs g_regs;
|
||||||
|
Memory::MemorySystem* g_memory;
|
||||||
|
|
||||||
/// 268MHz CPU clocks / 60Hz frames per second
|
/// 268MHz CPU clocks / 60Hz frames per second
|
||||||
const u64 frame_ticks = static_cast<u64>(BASE_CLOCK_RATE_ARM11 / SCREEN_REFRESH_RATE);
|
const u64 frame_ticks = static_cast<u64>(BASE_CLOCK_RATE_ARM11 / SCREEN_REFRESH_RATE);
|
||||||
|
@ -526,7 +527,8 @@ static void VBlankCallback(u64 userdata, s64 cycles_late) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Initialize hardware
|
/// Initialize hardware
|
||||||
void Init() {
|
void Init(Memory::MemorySystem& memory) {
|
||||||
|
g_memory = &memory;
|
||||||
memset(&g_regs, 0, sizeof(g_regs));
|
memset(&g_regs, 0, sizeof(g_regs));
|
||||||
|
|
||||||
auto& framebuffer_top = g_regs.framebuffer_config[0];
|
auto& framebuffer_top = g_regs.framebuffer_config[0];
|
||||||
|
|
|
@ -11,6 +11,10 @@
|
||||||
#include "common/common_funcs.h"
|
#include "common/common_funcs.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
|
|
||||||
|
namespace Memory {
|
||||||
|
class MemorySystem;
|
||||||
|
}
|
||||||
|
|
||||||
namespace GPU {
|
namespace GPU {
|
||||||
|
|
||||||
constexpr float SCREEN_REFRESH_RATE = 60;
|
constexpr float SCREEN_REFRESH_RATE = 60;
|
||||||
|
@ -326,7 +330,7 @@ template <typename T>
|
||||||
void Write(u32 addr, const T data);
|
void Write(u32 addr, const T data);
|
||||||
|
|
||||||
/// Initialize hardware
|
/// Initialize hardware
|
||||||
void Init();
|
void Init(Memory::MemorySystem& memory);
|
||||||
|
|
||||||
/// Shutdown hardware
|
/// Shutdown hardware
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
|
|
|
@ -86,9 +86,9 @@ template void Write<u8>(u32 addr, const u8 data);
|
||||||
void Update() {}
|
void Update() {}
|
||||||
|
|
||||||
/// Initialize hardware
|
/// Initialize hardware
|
||||||
void Init() {
|
void Init(Memory::MemorySystem& memory) {
|
||||||
AES::InitKeys();
|
AES::InitKeys();
|
||||||
GPU::Init();
|
GPU::Init(memory);
|
||||||
LCD::Init();
|
LCD::Init();
|
||||||
LOG_DEBUG(HW, "initialized OK");
|
LOG_DEBUG(HW, "initialized OK");
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,10 @@
|
||||||
|
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
|
|
||||||
|
namespace Memory {
|
||||||
|
class MemorySystem;
|
||||||
|
}
|
||||||
|
|
||||||
namespace HW {
|
namespace HW {
|
||||||
|
|
||||||
/// Beginnings of IO register regions, in the user VA space.
|
/// Beginnings of IO register regions, in the user VA space.
|
||||||
|
@ -42,7 +46,7 @@ void Write(u32 addr, const T data);
|
||||||
void Update();
|
void Update();
|
||||||
|
|
||||||
/// Initialize hardware
|
/// Initialize hardware
|
||||||
void Init();
|
void Init(Memory::MemorySystem& memory);
|
||||||
|
|
||||||
/// Shutdown hardware
|
/// Shutdown hardware
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
|
|
Reference in New Issue