diff --git a/CMakeLists.txt b/CMakeLists.txt index ecc7e73e49..2af1f7de40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -572,6 +572,12 @@ if(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL2") add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/builds/android/app/src/gamebrowser) set(PLAYER_BUILD_EXECUTABLE OFF) endif() + + if(NINTENDO_WIIU) + target_compile_definitions(${PROJECT_NAME} PUBLIC PLAYER_NINTENDO) + target_sources(${PROJECT_NAME} PRIVATE + src/platform/wiiu/input_buttons.cpp) + endif() elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL1") target_sources(${PROJECT_NAME} PRIVATE src/platform/sdl/sdl_audio.cpp @@ -686,11 +692,12 @@ elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "amigaos4") src/platform/sdl/axis.h src/platform/sdl/sdl_ui.cpp src/platform/sdl/sdl_ui.h) +else() message(FATAL_ERROR "Invalid target platform") endif() # Shared by homebrew platforms -if(${PLAYER_TARGET_PLATFORM} MATCHES "^(3ds|psvita|switch|wii)$") +if(${PLAYER_TARGET_PLATFORM} MATCHES "^(3ds|psvita|switch|wii)$" OR NINTENDO_WIIU) target_compile_options(${PROJECT_NAME} PUBLIC -fno-exceptions -fno-rtti) set(CMAKE_DL_LIBS "") # hack4icu! set(PLAYER_ENABLE_TESTS OFF) @@ -834,7 +841,9 @@ find_package(Pixman REQUIRED) target_link_libraries(${PROJECT_NAME} PIXMAN::PIXMAN) # Always enable Wine registry support on non-Windows, but not for console ports -if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT ${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$") +if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" + AND NOT ${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$" + AND NOT NINTENDO_WIIU) target_compile_definitions(${PROJECT_NAME} PUBLIC HAVE_WINE=1) endif() @@ -1067,7 +1076,7 @@ if(${PLAYER_AUDIO_BACKEND} MATCHES "^(SDL2|SDL1|libretro|psvita|3ds|switch|wii|a endif() # Executable -if(${PLAYER_BUILD_EXECUTABLE} AND (${PLAYER_TARGET_PLATFORM} STREQUAL "SDL2" OR ${PLAYER_TARGET_PLATFORM} STREQUAL "SDL1")) +if(${PLAYER_BUILD_EXECUTABLE} AND ${PLAYER_TARGET_PLATFORM} MATCHES "^SDL(1|2)$" AND NOT NINTENDO_WIIU) if(APPLE) set(EXE_NAME "EasyRPG-Player.app") set_source_files_properties(${${PROJECT_NAME}_BUNDLE_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") @@ -1157,7 +1166,8 @@ if(${PLAYER_BUILD_EXECUTABLE} AND (${PLAYER_TARGET_PLATFORM} STREQUAL "SDL2" OR endif() install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLAYER_JS_OUTPUT_NAME}.wasm DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() -elseif(${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$") +elseif(${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$" OR NINTENDO_WIIU) + set(CPACK_PLATFORM "${PLAYER_TARGET_PLATFORM}") if(NINTENDO_3DS) add_executable(easyrpg-player src/platform/3ds/main.cpp) target_link_libraries(easyrpg-player @@ -1209,6 +1219,19 @@ elseif(${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$") install(FILES resources/wii/icon.png ${CMAKE_CURRENT_BINARY_DIR}/resources/wii/meta.xml DESTINATION easyrpg-player COMPONENT wii) + elseif(NINTENDO_WIIU) + add_executable(easyrpg-player src/platform/sdl/main.cpp) + target_link_libraries(easyrpg-player ${PROJECT_NAME}) + wut_create_rpx(easyrpg-player) + wut_create_wuhb(easyrpg-player + NAME "EasyRPG Player ${PLAYER_VERSION_FULL}" + SHORT_NAME "Player" + AUTHOR "EasyRPG Team" + ) # todo icon, splashs) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/easyrpg-player.rpx + ${CMAKE_CURRENT_BINARY_DIR}/easyrpg-player.wuhb + DESTINATION . COMPONENT wiiu) + set(CPACK_PLATFORM "wiiu") elseif(VITA) set(CMAKE_EXECUTABLE_SUFFIX .elf) add_executable(easyrpg-player src/platform/psvita/main.cpp) @@ -1243,7 +1266,7 @@ elseif(${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$") endif() install(TARGETS easyrpg-player RUNTIME DESTINATION . COMPONENT debug) # debug information - if(${PLAYER_TARGET_PLATFORM} MATCHES "^(3ds|switch|wii)$") + if(${PLAYER_TARGET_PLATFORM} MATCHES "^(3ds|switch|wii)$" OR NINTENDO_WIIU) dkp_target_generate_symbol_list(easyrpg-player) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/easyrpg-player.map ${CMAKE_CURRENT_BINARY_DIR}/easyrpg-player.lst @@ -1257,7 +1280,7 @@ elseif(${PLAYER_TARGET_PLATFORM} MATCHES "^(psvita|3ds|switch|wii)$") if(PLAYER_VERSIONED_PACKAGES) string(APPEND CPACK_PACKAGE_FILE_NAME "-${PLAYER_VERSION}") endif() - set(CPACK_ARCHIVE_DEBUG_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-${PLAYER_TARGET_PLATFORM}-debug") + set(CPACK_ARCHIVE_DEBUG_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-${CPACK_PLATFORM}-debug") set(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY OFF) # we do this manually include(CPack) elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "amigaos4") @@ -1266,7 +1289,7 @@ elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "amigaos4") ${PROJECT_NAME} ${SDL_LIBRARIES}) # FIXME: packaging? -else() +else() # library if(${PLAYER_TARGET_PLATFORM} STREQUAL "libretro") add_library(easyrpg_libretro src/platform/libretro/audio.cpp diff --git a/src/audio_midi.h b/src/audio_midi.h index 8f023bb88f..82a70635e5 100644 --- a/src/audio_midi.h +++ b/src/audio_midi.h @@ -22,7 +22,7 @@ class AudioDecoderMidi; #include "audio_decoder_base.h" -#if defined(GEKKO) || defined(__3DS__) +#if defined(__wii__) || defined(__3DS__) # define EP_MIDI_FREQ 22050 #else # define EP_MIDI_FREQ 44100 diff --git a/src/decoder_wildmidi.cpp b/src/decoder_wildmidi.cpp index 1278fdfd0f..d4738e9612 100644 --- a/src/decoder_wildmidi.cpp +++ b/src/decoder_wildmidi.cpp @@ -112,7 +112,7 @@ bool WildMidiDecoder::Initialize(std::string& error_message) { found = FileFinder::Root().Exists(config_file); } } -#elif defined(GEKKO) +#elif defined(__wii__) // preferred under /data config_file = "usb:/data/wildmidi/wildmidi.cfg"; found = FileFinder::Root().Exists(config_file); @@ -140,6 +140,16 @@ bool WildMidiDecoder::Initialize(std::string& error_message) { config_file = "timidity.cfg"; found = FileFinder::Root().Exists(config_file); } +#elif defined(__WIIU__) + // preferred SD card directory + config_file = "/vol/external01/data/easyrpg-player/wildmidi.cfg"; + found = FileFinder::Root().Exists(config_file); + + // Current directory + if (!found) { + config_file = "wildmidi.cfg"; + found = FileFinder::Root().Exists(config_file); + } #elif defined(__3DS__) // Only wildmidi paths, no timidity because there was never timidity used on 3DS diff --git a/src/decoder_xmp.cpp b/src/decoder_xmp.cpp index 739ed5a0fc..390a524d42 100644 --- a/src/decoder_xmp.cpp +++ b/src/decoder_xmp.cpp @@ -87,7 +87,7 @@ bool XMPDecoder::Open(Filesystem_Stream::InputStream stream) { int player_interpolation = 0; int player_effects = 0; -#if defined(PSP) || defined(__3DS__) || defined(GEKKO) +#if defined(PSP) || defined(__3DS__) || defined(__wii__) // disable filtering and use low quality interpolation player_interpolation = XMP_INTERP_NEAREST; #else diff --git a/src/filefinder_rtp.cpp b/src/filefinder_rtp.cpp index 662cb0bab2..cd9a601616 100644 --- a/src/filefinder_rtp.cpp +++ b/src/filefinder_rtp.cpp @@ -48,9 +48,12 @@ FileFinder_RTP::FileFinder_RTP(bool no_rtp, bool no_rtp_warnings, std::string rt std::string const version_str = Player::GetEngineVersion(); assert(!version_str.empty()); -#ifdef GEKKO +#ifdef __wii__ AddPath("sd:/data/rtp/" + version_str); AddPath("usb:/data/rtp/" + version_str); +#elif defined(__WIIU__) + AddPath("./rtp/" + version_str); + AddPath("/data/easyrpg-player/rtp/" + version_str); #elif defined(__SWITCH__) AddPath("./rtp/" + version_str); AddPath("/switch/easyrpg-player/rtp/" + version_str); diff --git a/src/game_config.cpp b/src/game_config.cpp index 49562716ce..c7b83450c5 100644 --- a/src/game_config.cpp +++ b/src/game_config.cpp @@ -114,8 +114,10 @@ FilesystemView Game_Config::GetGlobalConfigFilesystem() { std::string path; if (config_path.empty()) { -#ifdef GEKKO - path = "sd:/data/easyrpg-player"; +#ifdef __wii__ + path = "/data/easyrpg-player"; +#elif defined(__WIIU__) + path = "/vol/external01/data/easyrpg-player"; // temp #elif defined(__SWITCH__) path = "/switch/easyrpg-player"; #elif defined(__3DS__) diff --git a/src/input_buttons_desktop.cpp b/src/input_buttons_desktop.cpp index fbba83534a..9fb6bc7726 100644 --- a/src/input_buttons_desktop.cpp +++ b/src/input_buttons_desktop.cpp @@ -16,7 +16,7 @@ */ // FIXME: Move in platform/generic (?) and handle with CMake -#if !(defined(OPENDINGUX) || defined(GEKKO) || defined(USE_LIBRETRO) || defined(__vita__) || defined(__3DS__) || defined(__SWITCH__)) +#if !(defined(OPENDINGUX) || defined(PLAYER_NINTENDO) || defined(PLAYER_UI)) // Headers #include "input_buttons.h" diff --git a/src/platform/clock.h b/src/platform/clock.h index 2a43fa1b39..79297170a2 100644 --- a/src/platform/clock.h +++ b/src/platform/clock.h @@ -25,7 +25,7 @@ #if defined(__3DS__) #include "platform/3ds/clock.h" using Platform_Clock = CtrClock; -#elif defined(GEKKO) +#elif defined(__wii__) #include "platform/wii/clock.h" using Platform_Clock = WiiClock; #elif defined(__SWITCH__) diff --git a/src/platform/sdl/sdl2_ui.cpp b/src/platform/sdl/sdl2_ui.cpp index 7b7900cb8c..7e2c688ea8 100644 --- a/src/platform/sdl/sdl2_ui.cpp +++ b/src/platform/sdl/sdl2_ui.cpp @@ -30,6 +30,9 @@ # include #elif defined(EMSCRIPTEN) # include +#elif defined(__WIIU__) +# include +# include #endif #include "icon.h" @@ -137,6 +140,9 @@ Sdl2Ui::Sdl2Ui(long width, long height, const Game_Config& cfg) : BaseUi(cfg) #ifdef EMSCRIPTEN SDL_SetHint(SDL_HINT_EMSCRIPTEN_ASYNCIFY, "0"); #endif +#ifdef __WIIU__ + //WHBProcInit(); +#endif if (SDL_Init(SDL_INIT_VIDEO) < 0) { Output::Error("Couldn't initialize SDL.\n{}\n", SDL_GetError()); @@ -189,6 +195,10 @@ Sdl2Ui::~Sdl2Ui() { SDL_DestroyWindow(sdl_window); } SDL_Quit(); + +#ifdef __WIIU__ + //WHBProcShutdown(); +#endif } bool Sdl2Ui::vChangeDisplaySurfaceResolution(int new_width, int new_height) { @@ -492,6 +502,16 @@ void Sdl2Ui::ToggleZoom() { #endif } +bool Sdl2Ui::LogMessage(const std::string &message) { +#ifdef __WIIU__ + OSReport("%s\n", message.c_str()); + return true; +#else + // not logged + return false; +#endif +} + void Sdl2Ui::ProcessEvents() { SDL_Event evnt; @@ -1189,6 +1209,8 @@ int FilterUntilFocus(const SDL_Event* evnt) { void Sdl2Ui::vGetConfig(Game_ConfigVideo& cfg) const { #ifdef EMSCRIPTEN cfg.renderer.Lock("SDL2 (Software, Emscripten)"); +#elif defined(__WIIU__) + cfg.renderer.Lock("SDL2 (Software, Wii U)"); #else cfg.renderer.Lock("SDL2 (Software)"); #endif @@ -1219,6 +1241,11 @@ void Sdl2Ui::vGetConfig(Game_ConfigVideo& cfg) const { cfg.window_zoom.SetOptionVisible(false); // Toggling this freezes the web player cfg.vsync.SetOptionVisible(false); +#elif defined(__WIIU__) + // FIXME: Some options below may crash, better disable for now + cfg.fullscreen.SetOptionVisible(false); + cfg.window_zoom.SetOptionVisible(false); + cfg.vsync.SetOptionVisible(false); #endif } diff --git a/src/platform/sdl/sdl2_ui.h b/src/platform/sdl/sdl2_ui.h index c9543f2aa9..e9c385fce2 100644 --- a/src/platform/sdl/sdl2_ui.h +++ b/src/platform/sdl/sdl2_ui.h @@ -65,6 +65,7 @@ class Sdl2Ui final : public BaseUi { void UpdateDisplay() override; void SetTitle(const std::string &title) override; bool ShowCursor(bool flag) override; + bool LogMessage(const std::string &message) override; void ProcessEvents() override; void SetScalingMode(ScalingMode) override; void ToggleStretch() override; diff --git a/src/platform/sdl/sdl_audio.cpp b/src/platform/sdl/sdl_audio.cpp index c543027881..adf56dfb46 100644 --- a/src/platform/sdl/sdl_audio.cpp +++ b/src/platform/sdl/sdl_audio.cpp @@ -78,7 +78,7 @@ SdlAudio::SdlAudio(const Game_ConfigAudio& cfg) : return; } -#ifdef GEKKO +#ifdef __wii__ // Wii's DSP works at 32kHz natively const int frequency = 32000; #elif defined(EMSCRIPTEN) diff --git a/src/platform/sdl/sdl_ui.cpp b/src/platform/sdl/sdl_ui.cpp index 7d7f96ef65..8f3ec03d91 100644 --- a/src/platform/sdl/sdl_ui.cpp +++ b/src/platform/sdl/sdl_ui.cpp @@ -28,7 +28,7 @@ #include "player.h" #include "bitmap.h" -#ifdef GEKKO +#ifdef __wii__ # include "platform/wii/main.h" #endif @@ -61,7 +61,7 @@ SdlUi::SdlUi(long width, long height, const Game_Config& cfg) : BaseUi(cfg) // Set some SDL environment variables before starting. These are platform // dependent, so every port needs to set them manually -#ifndef GEKKO +#ifndef __wii__ // Set window position to the middle of the screen putenv(const_cast("SDL_VIDEO_WINDOW_POS=center")); #endif @@ -115,7 +115,7 @@ SdlUi::SdlUi(long width, long height, const Game_Config& cfg) : BaseUi(cfg) format.b.mask, format.a.mask); -#ifdef GEKKO +#ifdef __wii__ // Eliminate debug spew in on-screen console Wii::SetConsole(); #endif @@ -349,7 +349,7 @@ bool SdlUi::RefreshDisplayMode() { int bpp = current_display_mode.bpp; -#ifdef GEKKO +#ifdef __wii__ // force for SDL-wii, otherwise 16 bit is used bpp = 24; #endif @@ -443,7 +443,7 @@ bool SdlUi::ShowCursor(bool flag) { } bool SdlUi::LogMessage(const std::string &message) { -#ifdef GEKKO +#ifdef __wii__ return Wii::LogMessage(message); #else // not logged @@ -750,7 +750,7 @@ int FilterUntilFocus(const SDL_Event* evnt) { } void SdlUi::vGetConfig(Game_ConfigVideo& cfg) const { -#ifdef GEKKO +#ifdef __wii__ cfg.renderer.Lock("SDL1 (Software, Wii)"); #else cfg.renderer.Lock("SDL1 (Software)"); diff --git a/src/platform/wii/input_buttons.cpp b/src/platform/wii/input_buttons.cpp index be179df0a2..da44992212 100644 --- a/src/platform/wii/input_buttons.cpp +++ b/src/platform/wii/input_buttons.cpp @@ -24,8 +24,8 @@ Input::ButtonMappingArray Input::GetDefaultButtonMappings() { return { // Wiimote - {CANCEL, Keys::JOY_OTHER_0}, // A, shared with Classic Controller (CC) - {DECISION, Keys::JOY_OTHER_1}, // B, shared with CC + {DECISION, Keys::JOY_OTHER_0}, // A, shared with Classic Controller (CC) + {CANCEL, Keys::JOY_OTHER_1}, // B, shared with CC {CANCEL, Keys::JOY_OTHER_2}, // 1 {DECISION, Keys::JOY_OTHER_3}, // 2 {RESET, Keys::JOY_OTHER_4}, // -, shared with CC diff --git a/src/platform/wiiu/input_buttons.cpp b/src/platform/wiiu/input_buttons.cpp new file mode 100644 index 0000000000..b90ea8f3c0 --- /dev/null +++ b/src/platform/wiiu/input_buttons.cpp @@ -0,0 +1,107 @@ +/* + * This file is part of EasyRPG Player. + * + * EasyRPG Player is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EasyRPG Player is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EasyRPG Player. If not, see . + */ + +// Headers +#include "input_buttons.h" +#include "keys.h" +#include "game_config.h" + +Input::ButtonMappingArray Input::GetDefaultButtonMappings() { + return { +#if defined(USE_JOYSTICK) && defined(SUPPORT_JOYSTICK) + {UP, Keys::JOY_DPAD_UP}, + {DOWN, Keys::JOY_DPAD_DOWN}, + {LEFT, Keys::JOY_DPAD_LEFT}, + {RIGHT, Keys::JOY_DPAD_RIGHT}, + {DECISION, Keys::JOY_A}, + {CANCEL, Keys::JOY_B}, + {CANCEL, Keys::JOY_X}, + {SHIFT, Keys::JOY_Y}, + {N0, Keys::JOY_LSTICK}, + {N5, Keys::JOY_RSTICK}, + {DEBUG_ABORT_EVENT, Keys::JOY_SHOULDER_LEFT}, + {TOGGLE_FPS, Keys::JOY_SHOULDER_RIGHT}, + {SETTINGS_MENU, Keys::JOY_START}, + {RESET, Keys::JOY_BACK}, +#endif + +#if defined(USE_JOYSTICK_AXIS) && defined(SUPPORT_JOYSTICK_AXIS) + {UP, Keys::JOY_LSTICK_UP}, + {DOWN, Keys::JOY_LSTICK_DOWN}, + {LEFT, Keys::JOY_LSTICK_LEFT}, + {RIGHT, Keys::JOY_LSTICK_RIGHT}, + {N1, Keys::JOY_RSTICK_DOWN_LEFT}, + {N2, Keys::JOY_RSTICK_DOWN}, + {N3, Keys::JOY_RSTICK_DOWN_RIGHT}, + {N4, Keys::JOY_RSTICK_LEFT}, + {N6, Keys::JOY_RSTICK_RIGHT}, + {N7, Keys::JOY_RSTICK_UP_LEFT}, + {N8, Keys::JOY_RSTICK_UP}, + {N9, Keys::JOY_RSTICK_UP_RIGHT}, + {FAST_FORWARD_A, Keys::JOY_RTRIGGER_FULL}, + {DEBUG_MENU, Keys::JOY_LTRIGGER_FULL}, +#endif + +#if defined(USE_TOUCH) && defined(SUPPORT_TOUCH) + {MOUSE_LEFT, Keys::ONE_FINGER}, + {MOUSE_RIGHT, Keys::TWO_FINGERS}, + {MOUSE_MIDDLE, Keys::THREE_FINGERS}, +#endif + }; +} + +Input::KeyNamesArray Input::GetInputKeyNames() { + // FIXME: Wiimote mapping is broken, consider removing + return { + {Keys::JOY_A, "A"}, // 2 (Wiimote) + {Keys::JOY_B, "B"}, // 1 (Wiimote) + {Keys::JOY_X, "X"}, // (Pad/CC/Pro) / B (Wiimote) / Z (Wiimote+Nunchuck) + {Keys::JOY_Y, "Y"}, // (Pad/CC/Pro) / A (Wiimote) / C (Wiimote+Nunchuck) + {Keys::JOY_BACK, "-"}, + {Keys::JOY_START, "+"}, + {Keys::JOY_GUIDE, "Home"}, // FIXME: not mapped at all, maybe use custom trigger + {Keys::JOY_SHOULDER_LEFT, "L"}, + {Keys::JOY_SHOULDER_RIGHT, "R"}, + {Keys::JOY_LTRIGGER_FULL, "ZL"}, + {Keys::JOY_RTRIGGER_FULL, "ZR"}, + + {Keys::JOY_DPAD_UP, "D-Pad Up"}, + {Keys::JOY_DPAD_DOWN, "D-Pad Down"}, + {Keys::JOY_DPAD_LEFT, "D-Pad Left"}, + {Keys::JOY_DPAD_RIGHT, "D-Pad Up"}, + + {Keys::JOY_LSTICK, "Left Stick Press"}, + {Keys::JOY_LSTICK_UP, "Left Stick Up"}, + {Keys::JOY_LSTICK_DOWN, "Left Stick Down"}, + {Keys::JOY_LSTICK_LEFT, "Left Stick Left"}, + {Keys::JOY_LSTICK_RIGHT, "Left Stick Right"}, + + {Keys::JOY_RSTICK, "Right Stick Press"}, + {Keys::JOY_RSTICK_UP, "Right Stick Up"}, + {Keys::JOY_RSTICK_DOWN, "Right Stick Down"}, + {Keys::JOY_RSTICK_LEFT, "Right Stick Left"}, + {Keys::JOY_RSTICK_RIGHT, "Right Stick Right"}, + }; +} + +void Input::GetSupportedConfig(Game_ConfigInput& cfg) { +#if defined(USE_JOYSTICK) && defined(SUPPORT_JOYSTICK) + cfg.gamepad_swap_ab_and_xy.SetOptionVisible(true); + cfg.gamepad_swap_analog.SetOptionVisible(true); + cfg.gamepad_swap_dpad_with_buttons.SetOptionVisible(true); +#endif +} diff --git a/src/system.h b/src/system.h index 353d450f86..74b8d0b12c 100644 --- a/src/system.h +++ b/src/system.h @@ -63,10 +63,14 @@ #elif defined(__vita__) # define SUPPORT_JOYSTICK # define SUPPORT_JOYSTICK_AXIS -#elif defined(GEKKO) +#elif defined(__wii__) # include # define SUPPORT_JOYSTICK # define SUPPORT_JOYSTICK_AXIS +#elif defined(__WIIU__) +# define SUPPORT_JOYSTICK +# define SUPPORT_JOYSTICK_AXIS +# define SUPPORT_TOUCH #elif defined(_WIN32) # define SUPPORT_ZOOM # define SUPPORT_MOUSE