From 77409a68f17a2cd6cd297b613a56e9202724cb48 Mon Sep 17 00:00:00 2001 From: Garrett Smith Date: Tue, 26 May 2026 10:25:12 -0700 Subject: [PATCH] expose is_entrypoint API (also rename main => entrypoint) --- ultramodern/include/ultramodern/ultramodern.hpp | 3 ++- ultramodern/src/threads.cpp | 12 ++++++++---- ultramodern/src/ultrainit.cpp | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ultramodern/include/ultramodern/ultramodern.hpp b/ultramodern/include/ultramodern/ultramodern.hpp index 57db6f63..46aea61b 100644 --- a/ultramodern/include/ultramodern/ultramodern.hpp +++ b/ultramodern/include/ultramodern/ultramodern.hpp @@ -96,7 +96,8 @@ enum class ThreadPriority { void set_native_thread_name(const std::string& name); void set_native_thread_priority(ThreadPriority pri); PTR(OSThread) this_thread(); -void set_main_thread(); +void set_entrypoint_thread(); +bool is_entrypoint_thread(); bool is_game_thread(); void submit_rsp_task(RDRAM_ARG PTR(OSTask) task); void send_si_message(); diff --git a/ultramodern/src/threads.cpp b/ultramodern/src/threads.cpp index 812c5561..6e3ed18c 100644 --- a/ultramodern/src/threads.cpp +++ b/ultramodern/src/threads.cpp @@ -29,14 +29,18 @@ std::string ultramodern::threads::get_game_thread_name(const OSThread* t) { extern "C" void bootproc(); -thread_local bool is_main_thread = false; +thread_local bool is_entrypoint_thread = false; // Whether this thread is part of the game (i.e. the start thread or one spawned by osCreateThread) thread_local bool is_game_thread = false; thread_local PTR(OSThread) thread_self = NULLPTR; -void ultramodern::set_main_thread() { +void ultramodern::set_entrypoint_thread() { ::is_game_thread = true; - is_main_thread = true; + ::is_entrypoint_thread = true; +} + +bool ultramodern::is_entrypoint_thread() { + return ::is_entrypoint_thread; } bool ultramodern::is_game_thread() { @@ -45,7 +49,7 @@ bool ultramodern::is_game_thread() { #if 0 int main(int argc, char** argv) { - ultramodern::set_main_thread(); + ultramodern::set_entrypoint_thread(); bootproc(); } diff --git a/ultramodern/src/ultrainit.cpp b/ultramodern/src/ultrainit.cpp index ca1556c4..af5132cd 100644 --- a/ultramodern/src/ultrainit.cpp +++ b/ultramodern/src/ultrainit.cpp @@ -22,7 +22,7 @@ void ultramodern::set_callbacks( } void ultramodern::preinit(RDRAM_ARG ultramodern::renderer::WindowHandle window_handle) { - ultramodern::set_main_thread(); + ultramodern::set_entrypoint_thread(); ultramodern::init_events(PASS_RDRAM window_handle); ultramodern::init_timers(PASS_RDRAM1); ultramodern::init_audio();