HLE: Properly initialize and shutdown remaining modules.

master
bunnei 2015-04-27 22:45:43 +07:00
parent bab5abaf46
commit d3c2f9a4a4
5 changed files with 20 additions and 3 deletions

@ -61,6 +61,8 @@ template void Read<u16>(u16 &var, const u32 addr);
template void Read<u8>(u8 &var, const u32 addr); template void Read<u8>(u8 &var, const u32 addr);
void Init() { void Init() {
memset(&config_mem, 0, sizeof(config_mem));
config_mem.update_flag = 0; // No update config_mem.update_flag = 0; // No update
config_mem.sys_core_ver = 0x2; config_mem.sys_core_ver = 0x2;
config_mem.unit_info = 0x1; // Bit 0 set for Retail config_mem.unit_info = 0x1; // Bit 0 set for Retail
@ -76,4 +78,7 @@ void Init() {
config_mem.firm_sys_core_ver = 0x2; config_mem.firm_sys_core_ver = 0x2;
} }
void Shutdown() {
}
} // namespace } // namespace

@ -20,4 +20,6 @@ void Read(T &var, const u32 addr);
void Init(); void Init();
void Shutdown();
} // namespace } // namespace

@ -23,7 +23,7 @@ Common::Profiling::TimingCategory profiler_svc("SVC Calls");
static std::vector<ModuleDef> g_module_db; static std::vector<ModuleDef> g_module_db;
bool g_reschedule = false; ///< If true, immediately reschedules the CPU to a new thread bool g_reschedule; ///< If true, immediately reschedules the CPU to a new thread
static const FunctionDef* GetSVCInfo(u32 opcode) { static const FunctionDef* GetSVCInfo(u32 opcode) {
u32 func_num = opcode & 0xFFFFFF; // 8 bits u32 func_num = opcode & 0xFFFFFF; // 8 bits
@ -73,17 +73,20 @@ static void RegisterAllModules() {
} }
void Init() { void Init() {
Service::Init();
RegisterAllModules(); RegisterAllModules();
Service::Init();
ConfigMem::Init(); ConfigMem::Init();
SharedPage::Init(); SharedPage::Init();
g_reschedule = false;
LOG_DEBUG(Kernel, "initialized OK"); LOG_DEBUG(Kernel, "initialized OK");
} }
void Shutdown() { void Shutdown() {
ConfigMem::Shutdown();
SharedPage::Shutdown();
Service::Shutdown(); Service::Shutdown();
g_module_db.clear(); g_module_db.clear();

@ -62,6 +62,8 @@ template void Read<u16>(u16 &var, const u32 addr);
template void Read<u8>(u8 &var, const u32 addr); template void Read<u8>(u8 &var, const u32 addr);
void Set3DSlider(float amount) { void Set3DSlider(float amount) {
memset(&shared_page, 0, sizeof(shared_page));
shared_page.sliderstate_3d = amount; shared_page.sliderstate_3d = amount;
shared_page.ledstate_3d = (amount == 0.0f); // off when non-zero shared_page.ledstate_3d = (amount == 0.0f); // off when non-zero
} }
@ -71,4 +73,7 @@ void Init() {
Set3DSlider(0.0f); Set3DSlider(0.0f);
} }
void Shutdown() {
}
} // namespace } // namespace

@ -23,4 +23,6 @@ void Set3DSlider(float amount);
void Init(); void Init();
void Shutdown();
} // namespace } // namespace