diff --git a/src/player.cpp b/src/player.cpp index 5f69eec6ab5..80e88c78cee 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -31,6 +31,8 @@ # include #elif defined(EMSCRIPTEN) # include +#elif defined(__WIIU__) +# include #endif #include "async_handler.h" @@ -255,7 +257,19 @@ void Player::MainLoop() { Scene::old_instances.clear(); if (!Transition::instance().IsActive() && Scene::instance->type == Scene::Null) { +#if defined(__WIIU__) + // Run the event loop once more because SDL cleans up the app + // after invocation of SYSLaunchMenu + if (!Player::exit_flag) { + SYSLaunchMenu(); + Player::exit_flag = true; + MainLoop(); + } else { + Exit(); + } +#else Exit(); +#endif return; }