From d07c297d916961499efac2b97c4aed3897a1a4b8 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Mon, 16 Dec 2024 16:09:36 +1300 Subject: Power down the emulator when the main Bedrock instance halts This will need to be changed once multitasking is properly implemented. --- arm9/source/main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'arm9') diff --git a/arm9/source/main.c b/arm9/source/main.c index 9bf4091..24d3610 100644 --- a/arm9/source/main.c +++ b/arm9/source/main.c @@ -68,6 +68,7 @@ void receive_input(void) { int main(void) { #define ALIVE(br) (br && br->alive) + #define DEAD(br) (br && !br->alive) #define AWAKE(br) (br && br->alive && br->awake) #define ASLEEP(br) (br && br->alive && !br->awake) @@ -96,6 +97,8 @@ int main(void) { while (1) { if (AWAKE(br_main)) run_br(br_main); if (AWAKE(br_sub)) run_br(br_sub); + if (DEAD(br_main)) br_main = NULL; + if (DEAD(br_sub)) br_sub = NULL; bool main_flip = ASLEEP(br_main) && br_main->scr.dirty; bool sub_flip = ASLEEP(br_sub) && br_sub->scr.dirty; @@ -123,7 +126,10 @@ int main(void) { goto rouse; } - if (!br_main && !br_sub) return 0; + if (!br_main) { + systemShutDown(); + return 0; + } } } -- cgit v1.2.3-70-g09d2