@@ -19,6 +19,8 @@ bool CemuHooks::IsScreenOpen(ScreenId screen) {
1919 return false ;
2020}
2121
22+ std::unordered_set<ScreenId> prevEnabledScreens = {};
23+
2224void CemuHooks::hook_UpdateSettings (PPCInterpreter_t* hCPU) {
2325 // Log::print("Updated settings!");
2426 hCPU->instructionPointer = hCPU->sprNew .LR ;
@@ -37,14 +39,29 @@ void CemuHooks::hook_UpdateSettings(PPCInterpreter_t* hCPU) {
3739 g_settings = settings;
3840 ++s_framesSinceLastCameraUpdate;
3941
40- // constexpr uint32_t maxScreenIdx = std::to_underlying(ScreenId::ScreenId_END);
41- // for (uint32_t i = 0; i < maxScreenIdx; i++) {
42- // ScreenId id = (ScreenId)i;
43- // bool hasScreen = IsScreenOpen(id);
44- // if (hasScreen) {
45- // Log::print<INFO>("Screen {} is ON", ScreenIdToString((ScreenId)i));
46- // }
47- // }
42+ #ifdef _DEBUG
43+ constexpr uint32_t maxScreenIdx = std::to_underlying (ScreenId::ScreenId_END);
44+ std::unordered_set<ScreenId> currentEnabledScreens;
45+ for (uint32_t i = 0 ; i < maxScreenIdx; i++) {
46+ ScreenId id = (ScreenId)i;
47+ bool hasScreen = IsScreenOpen (id);
48+
49+ if (hasScreen) {
50+
51+ if (!prevEnabledScreens.contains (id)) {
52+ if (currentEnabledScreens.empty ()) {
53+ Log::print<INFO>(" ---------" );
54+ }
55+ Log::print<INFO>(" Screen {} is ON" , ScreenIdToString ((ScreenId)i));
56+ }
57+ currentEnabledScreens.emplace (id);
58+ }
59+ else if (prevEnabledScreens.contains (id)) {
60+ Log::print<INFO>(" Screen {} is OFF" , ScreenIdToString ((ScreenId)i));
61+ }
62+ }
63+ prevEnabledScreens = currentEnabledScreens;
64+ #endif
4865
4966 static bool logSettings = true ;
5067 if (logSettings) {
0 commit comments