From 4abd0fe7200ab5751b2c1a4dfadcbd3665e32d6f Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Fri, 21 Jun 2024 09:40:06 -0400 Subject: [PATCH] Update N64ModernRuntime and add debug game thread naming (#408) --- .gitignore | 1 + lib/N64ModernRuntime | 2 +- src/main/main.cpp | 99 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 100 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 6ff3307..bb23653 100644 --- a/.gitignore +++ b/.gitignore @@ -57,6 +57,7 @@ node_modules/ # Recompiler Linux binary N64Recomp +RSPRecomp .DS_Store # Controller mappings file diff --git a/lib/N64ModernRuntime b/lib/N64ModernRuntime index 0c1811c..ce68e96 160000 --- a/lib/N64ModernRuntime +++ b/lib/N64ModernRuntime @@ -1 +1 @@ -Subproject commit 0c1811ca6f8291c6608f1d6626a73e863902ece9 +Subproject commit ce68e96c171f7f036e29f539e22a604da04af824 diff --git a/src/main/main.cpp b/src/main/main.cpp index d3961a2..50edd04 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -341,6 +341,89 @@ std::vector supported_games = { }, }; +// TODO: move somewhere else +namespace zelda64 { + std::string get_game_thread_name(const OSThread* t) { + std::string name = "[Game] "; + + switch (t->id) { + case 0: + switch (t->priority) { + case 150: + name += "PIMGR"; + break; + + case 254: + name += "VIMGR"; + break; + + default: + name += std::to_string(t->id); + break; + } + break; + + case 1: + name += "IDLE"; + break; + + case 2: + switch (t->priority) { + case 5: + name += "SLOWLY"; + break; + + case 127: + name += "FAULT"; + break; + + default: + name += std::to_string(t->id); + break; + } + break; + + case 3: + name += "MAIN"; + break; + + case 4: + name += "GRAPH"; + break; + + case 5: + name += "SCHED"; + break; + + case 7: + name += "PADMGR"; + break; + + case 10: + name += "AUDIOMGR"; + break; + + case 13: + name += "FLASHROM"; + break; + + case 18: + name += "DMAMGR"; + break; + + case 19: + name += "IRQMGR"; + break; + + default: + name += std::to_string(t->id); + break; + } + + return name; + } +} + int main(int argc, char** argv) { @@ -425,7 +508,21 @@ int main(int argc, char** argv) { .message_box = recompui::message_box, }; - recomp::start({}, rsp_callbacks, renderer_callbacks, audio_callbacks, input_callbacks, gfx_callbacks, thread_callbacks, error_handling_callbacks); + ultramodern::threads::callbacks_t threads_callbacks{ + .get_game_thread_name = zelda64::get_game_thread_name, + }; + + recomp::start( + {}, + rsp_callbacks, + renderer_callbacks, + audio_callbacks, + input_callbacks, + gfx_callbacks, + thread_callbacks, + error_handling_callbacks, + threads_callbacks + ); NFD_Quit();