From 8efbcf2058002ee2e6705db75514b0efc0b95cae Mon Sep 17 00:00:00 2001 From: Felipe Wannmacher Date: Mon, 17 Jan 2022 08:37:29 -0300 Subject: [PATCH] Xbox One/Series support (#3946) --- .gitignore | 7 + 3rdParty/SDL2/CMake/FindSDL2.cmake | 18 ++- 3rdParty/SDL2/CMakeLists.txt | 4 - 3rdParty/SDL_image/CMakeLists.txt | 5 +- 3rdParty/libsmackerdec/CMakeLists.txt | 4 +- 3rdParty/zlib/CMakeLists.txt | 49 ++++++ CMake/Dependencies.cmake | 39 +++-- CMake/Platforms.cmake | 4 + CMake/platforms/uwp_lib.cmake | 26 ++++ CMakeLists.txt | 13 +- Packaging/xbox-one/build.bat | 20 +++ Source/diablo.cpp | 13 ++ Source/diablo.h | 4 + Source/init.cpp | 4 +- Source/utils/display.cpp | 2 +- Source/utils/stdcompat/optional.hpp | 2 +- Source/utils/stdcompat/string_view.hpp | 2 +- appveyor-uwp.yml | 16 ++ docs/building.md | 34 ++++- docs/manual/platforms/xbox-one.md | 40 +++++ uwp-project/Assets/BadgeLogo.scale-200.png | Bin 0 -> 319 bytes uwp-project/Assets/LargeTile.scale-200.png | Bin 0 -> 26254 bytes uwp-project/Assets/Logo.scale-200.png | Bin 0 -> 9922 bytes ...go.altform-lightunplated_targetsize-48.png | Bin 0 -> 3207 bytes ...allLogo.altform-unplated_targetsize-48.png | Bin 0 -> 3207 bytes uwp-project/Assets/SmallLogo.scale-200.png | Bin 0 -> 4926 bytes .../Assets/SmallLogo.targetsize-48.png | Bin 0 -> 2304 bytes uwp-project/Assets/SmallTile.scale-200.png | Bin 0 -> 5731 bytes uwp-project/Assets/SplashScreen.scale-200.png | Bin 0 -> 29973 bytes uwp-project/Assets/StoreLogo.scale-200.png | Bin 0 -> 8051 bytes uwp-project/Assets/WideTile.scale-200.png | Bin 0 -> 11422 bytes uwp-project/Package.appxmanifest | 51 +++++++ uwp-project/Package.appxmanifest.template | 51 +++++++ uwp-project/devilutionx.sln | 27 ++++ uwp-project/devilutionx.vcxproj | 140 ++++++++++++++++++ uwp-project/src/SDL_winrt_main_NonXAML.cpp | 89 +++++++++++ 36 files changed, 634 insertions(+), 30 deletions(-) create mode 100644 3rdParty/zlib/CMakeLists.txt create mode 100644 CMake/platforms/uwp_lib.cmake create mode 100644 Packaging/xbox-one/build.bat create mode 100644 appveyor-uwp.yml create mode 100644 docs/manual/platforms/xbox-one.md create mode 100644 uwp-project/Assets/BadgeLogo.scale-200.png create mode 100644 uwp-project/Assets/LargeTile.scale-200.png create mode 100644 uwp-project/Assets/Logo.scale-200.png create mode 100644 uwp-project/Assets/SmallLogo.altform-lightunplated_targetsize-48.png create mode 100644 uwp-project/Assets/SmallLogo.altform-unplated_targetsize-48.png create mode 100644 uwp-project/Assets/SmallLogo.scale-200.png create mode 100644 uwp-project/Assets/SmallLogo.targetsize-48.png create mode 100644 uwp-project/Assets/SmallTile.scale-200.png create mode 100644 uwp-project/Assets/SplashScreen.scale-200.png create mode 100644 uwp-project/Assets/StoreLogo.scale-200.png create mode 100644 uwp-project/Assets/WideTile.scale-200.png create mode 100644 uwp-project/Package.appxmanifest create mode 100644 uwp-project/Package.appxmanifest.template create mode 100644 uwp-project/devilutionx.sln create mode 100644 uwp-project/devilutionx.vcxproj create mode 100644 uwp-project/src/SDL_winrt_main_NonXAML.cpp diff --git a/.gitignore b/.gitignore index 8a574ae36..118fbad3d 100644 --- a/.gitignore +++ b/.gitignore @@ -449,3 +449,10 @@ Brewfile.lock.json # GPerf heap profile dumps *.heap *.mo + +# UWP copied assets +uwp-project/Assets/data +uwp-project/Assets/fonts +uwp-project/Assets/gendata +uwp-project/Assets/ui_art + diff --git a/3rdParty/SDL2/CMake/FindSDL2.cmake b/3rdParty/SDL2/CMake/FindSDL2.cmake index 50f5cecfd..57118cad9 100644 --- a/3rdParty/SDL2/CMake/FindSDL2.cmake +++ b/3rdParty/SDL2/CMake/FindSDL2.cmake @@ -1 +1,17 @@ -# An empty find module to allow calls to `find_package(SDL2)` to succeed. +if(UWP_LIB AND NOT TARGET SDL2::SDL2-static) + set(SDL_BUILD_TYPE "Release") + + if(CMAKE_BUILD_TYPE MATCHES "Debug") + set(SDL_BUILD_TYPE "Debug") + endif() + + set(SDL2_LIBRARY "${UWP_SDL2_DIR}/VisualC-WinRT/x64/${SDL_BUILD_TYPE}/SDL-UWP") + set(SDL2_INCLUDE_DIR "${UWP_SDL2_DIR}/include") + add_library(SDL2_lib STATIC IMPORTED) + set_property(TARGET SDL2_lib PROPERTY IMPORTED_LOCATION "${SDL2_LIBRARY}/SDL2.lib") + set_property(TARGET SDL2_lib PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${SDL2_INCLUDE_DIR}) + add_library(SDL2::SDL2-static ALIAS SDL2_lib) + mark_as_advanced(SDL2_INCLUDE_DIR SDL2_LIBRARY) + set(SDL2_LIBRARIES ${SDL2_LIBRARY}) + set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) +endif() diff --git a/3rdParty/SDL2/CMakeLists.txt b/3rdParty/SDL2/CMakeLists.txt index d3ea5f821..3943888b3 100644 --- a/3rdParty/SDL2/CMakeLists.txt +++ b/3rdParty/SDL2/CMakeLists.txt @@ -18,7 +18,3 @@ FetchContent_Declare(SDL2 URL_HASH MD5=3fb6d72c33434082c32d2649c35c6502 ) FetchContent_MakeAvailableExcludeFromAll(SDL2) - -if(TARGET SDL2::SDL2-static) - add_library(SDL2::SDL2 ALIAS SDL2-static) -endif() diff --git a/3rdParty/SDL_image/CMakeLists.txt b/3rdParty/SDL_image/CMakeLists.txt index 0b707dd0a..2094b6cfc 100644 --- a/3rdParty/SDL_image/CMakeLists.txt +++ b/3rdParty/SDL_image/CMakeLists.txt @@ -43,7 +43,10 @@ target_link_libraries(SDL_image PNG::PNG) if(USE_SDL1) target_link_libraries(SDL_image ${SDL_LIBRARY}) -else() +elseif(TARGET SDL2::SDL2) target_link_libraries(SDL_image SDL2::SDL2) add_library(SDL2::SDL2_image ALIAS SDL_image) +elseif(TARGET SDL2::SDL2-static) + target_link_libraries(SDL_image SDL2::SDL2-static) + add_library(SDL2::SDL2_image ALIAS SDL_image) endif() diff --git a/3rdParty/libsmackerdec/CMakeLists.txt b/3rdParty/libsmackerdec/CMakeLists.txt index e91e19dbc..78417e4ab 100644 --- a/3rdParty/libsmackerdec/CMakeLists.txt +++ b/3rdParty/libsmackerdec/CMakeLists.txt @@ -17,6 +17,8 @@ target_include_directories(libsmackerdec PUBLIC ${libsmackerdec_SOURCE_DIR}/incl if(USE_SDL1) target_link_libraries(libsmackerdec PUBLIC ${SDL_LIBRARY}) -else() +elseif(TARGET SDL2::SDL2) target_link_libraries(libsmackerdec PUBLIC SDL2::SDL2) +elseif(TARGET SDL2::SDL2-static) + target_link_libraries(libsmackerdec PUBLIC SDL2::SDL2-static) endif() diff --git a/3rdParty/zlib/CMakeLists.txt b/3rdParty/zlib/CMakeLists.txt new file mode 100644 index 000000000..767103e49 --- /dev/null +++ b/3rdParty/zlib/CMakeLists.txt @@ -0,0 +1,49 @@ +include(functions/FetchContent_MakeAvailableExcludeFromAll) + +include(FetchContent) +FetchContent_Declare(zlib + URL https://www.zlib.net/zlib-1.2.11.tar.gz + URL_HASH MD5=1c9f62f0778697a09d36121ead88e08e +) +FetchContent_MakeAvailableExcludeFromAll(zlib) + +if(DEVILUTIONX_STATIC_ZLIB) + set(_lib_type STATIC) +else() + set(_lib_type SHARED) +endif() +add_library(ZLIB ${_lib_type} + ${zlib_SOURCE_DIR}/crc32.h + ${zlib_SOURCE_DIR}/gzguts.h + ${zlib_SOURCE_DIR}/inffixed.h + ${zlib_SOURCE_DIR}/inftrees.h + ${zlib_BINARY_DIR}/zconf.h + ${zlib_SOURCE_DIR}/zutil.h + ${zlib_SOURCE_DIR}/deflate.h + ${zlib_SOURCE_DIR}/inffast.h + ${zlib_SOURCE_DIR}/inflate.h + ${zlib_SOURCE_DIR}/trees.h + ${zlib_SOURCE_DIR}/zlib.h + ${zlib_SOURCE_DIR}/adler32.c + ${zlib_SOURCE_DIR}/deflate.c + ${zlib_SOURCE_DIR}/gzread.c + ${zlib_SOURCE_DIR}/inffast.c + ${zlib_SOURCE_DIR}/trees.c + ${zlib_SOURCE_DIR}/compress.c + ${zlib_SOURCE_DIR}/gzclose.c + ${zlib_SOURCE_DIR}/gzwrite.c + ${zlib_SOURCE_DIR}/inflate.c + ${zlib_SOURCE_DIR}/uncompr.c + ${zlib_SOURCE_DIR}/crc32.c + ${zlib_SOURCE_DIR}/gzlib.c + ${zlib_SOURCE_DIR}/infback.c + ${zlib_SOURCE_DIR}/inftrees.c + ${zlib_SOURCE_DIR}/zutil.c +) +target_include_directories(ZLIB PUBLIC ${zlib_SOURCE_DIR}) +target_include_directories(ZLIB PUBLIC ${zlib_BINARY_DIR}) + +add_library(ZLIB::ZLIB ALIAS ZLIB) + +set(ZLIB_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/3dsParty/zlib" PARENT_SCOPE) +set(ZLIB_INCLUDE_DIR HINTS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR} PARENT_SCOPE) diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index 47160fe50..0c58a3013 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -3,6 +3,19 @@ include(functions/dependency_options) include(functions/emscripten_system_library) +if(EMSCRIPTEN) + emscripten_system_library("zlib" ZLIB::ZLIB USE_ZLIB=1) +elseif(UWP_LIB) + add_subdirectory(3rdParty/zlib) +endif() + +dependency_options("bzip2" DEVILUTIONX_SYSTEM_BZIP2 ON DEVILUTIONX_STATIC_BZIP2) +if(DEVILUTIONX_SYSTEM_BZIP2) + find_package(BZip2 REQUIRED) +else() + add_subdirectory(3rdParty/bzip2) +endif() + if(EMSCRIPTEN) # We use `USE_PTHREADS=1` here to get a version of SDL2 that supports threads. emscripten_system_library("SDL2" SDL2::SDL2 USE_SDL=2 USE_PTHREADS=1) @@ -23,7 +36,6 @@ else() # Aliasing local targets is not supported on CMake < 3.18, so make it global. set_target_properties(SDL2::SDL2-static PROPERTIES IMPORTED_GLOBAL TRUE) endif() - add_library(SDL2::SDL2 ALIAS SDL2::SDL2-static) set(SDL2_MAIN SDL2::SDL2main) else() # Assume an older Debian derivate that comes with an sdl2-config.cmake @@ -34,6 +46,9 @@ else() # Can't define an INTERFACE target with ::, so alias instead add_library(SDL2::SDL2 ALIAS SDL2_lib) endif() + elseif(UWP_LIB) + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/SDL2/CMake") + find_package(SDL2 REQUIRED) else() add_subdirectory(3rdParty/SDL2) set(SDL2_MAIN SDL2::SDL2main) @@ -46,7 +61,14 @@ if(USE_SDL1) target_link_libraries(DevilutionX::SDL INTERFACE ${SDL_LIBRARY}) target_compile_definitions(DevilutionX::SDL INTERFACE USE_SDL1) else() - target_link_libraries(DevilutionX::SDL INTERFACE ${SDL2_MAIN} SDL2::SDL2) + if(TARGET SDL2::SDL2) + target_link_libraries(DevilutionX::SDL INTERFACE SDL2::SDL2) + elseif(TARGET SDL2::SDL2-static) + target_link_libraries(DevilutionX::SDL INTERFACE SDL2::SDL2-static) + endif() + if(NOT UWP_LIB) + target_link_libraries(DevilutionX::SDL INTERFACE ${SDL2_MAIN}) + endif() endif() macro(_find_SDL_image QUIET_OR_REQUIRED) @@ -127,20 +149,9 @@ else() add_subdirectory(3rdParty/libfmt) endif() -dependency_options("bzip2" DEVILUTIONX_SYSTEM_BZIP2 ON DEVILUTIONX_STATIC_BZIP2) -if(DEVILUTIONX_SYSTEM_BZIP2) - find_package(BZip2 REQUIRED) -else() - add_subdirectory(3rdParty/bzip2) -endif() - -if(EMSCRIPTEN) - emscripten_system_library("zlib" ZLIB::ZLIB USE_ZLIB=1) -endif() - add_subdirectory(3rdParty/libsmackerdec) -if(WIN32) +if(WIN32 AND NOT UWP_LIB) add_subdirectory(3rdParty/find_steam_game) endif() diff --git a/CMake/Platforms.cmake b/CMake/Platforms.cmake index 370a1c4ee..16422ae2f 100644 --- a/CMake/Platforms.cmake +++ b/CMake/Platforms.cmake @@ -59,3 +59,7 @@ endif() if(EMSCRIPTEN) include(platforms/emscripten) endif() + +if(UWP_LIB) + include(platforms/uwp_lib) +endif() diff --git a/CMake/platforms/uwp_lib.cmake b/CMake/platforms/uwp_lib.cmake new file mode 100644 index 000000000..a89fe27de --- /dev/null +++ b/CMake/platforms/uwp_lib.cmake @@ -0,0 +1,26 @@ +set(ASAN OFF) +set(UBSAN OFF) +set(BUILD_TESTING OFF) +set(DISCORD_INTEGRATION OFF) + +# setting all libs to be built statically and from source +set(DEVILUTIONX_SYSTEM_SDL2 OFF) +set(DEVILUTIONX_SYSTEM_SDL_IMAGE OFF) +set(DEVILUTIONX_SYSTEM_SDL_AUDIOLIB OFF) +set(DEVILUTIONX_SYSTEM_LIBSODIUM OFF) +set(DEVILUTIONX_SYSTEM_LIBPNG OFF) +set(DEVILUTIONX_SYSTEM_LIBFMT OFF) +set(DEVILUTIONX_SYSTEM_BZIP2 OFF) +set(DEVILUTIONX_SYSTEM_ZLIB OFF) + +set(DEVILUTIONX_STATIC_SDL2 ON) +set(DEVILUTIONX_STATIC_SDL_IMAGE ON) +set(DEVILUTIONX_STATIC_SDL_AUDIOLIB ON) +set(DEVILUTIONX_STATIC_LIBSODIUM ON) +set(DEVILUTIONX_STATIC_LIBPNG ON) +set(DEVILUTIONX_STATIC_LIBFMT ON) +set(DEVILUTIONX_STATIC_BZIP2 ON) +set(DEVILUTIONX_STATIC_ZLIB ON) + +# not really necessary but a good measure for SDL related stuff +set(WINDOWS_STORE ON) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc37ec725..55bf60c7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -209,6 +209,8 @@ endif() if(ANDROID) add_library(${BIN_TARGET} SHARED Source/main.cpp) +elseif(UWP_LIB) + add_custom_target(${BIN_TARGET}) # we only need libdevilutionx else() add_executable(${BIN_TARGET} WIN32 @@ -219,7 +221,10 @@ else() Packaging/apple/AppIcon.icns Packaging/apple/LaunchScreen.storyboard) endif() -target_link_libraries(${BIN_TARGET} PRIVATE libdevilutionx) + +if(NOT UWP_LIB) + target_link_libraries(${BIN_TARGET} PRIVATE libdevilutionx) +endif() # Must be included after `BIN_TARGET` and `libdevilutionx` are defined. include(Assets) @@ -228,7 +233,7 @@ if(EMSCRIPTEN) target_link_options(${BIN_TARGET} PRIVATE --preload-file assets) endif() -if(NOT USE_SDL1) +if(NOT USE_SDL1 AND NOT UWP_LIB) target_link_libraries(${BIN_TARGET} PUBLIC ${SDL2_MAIN}) endif() @@ -371,6 +376,10 @@ if(NINTENDO_3DS) add_dependencies(${APP_TARGET_PREFIX}_cia romfs_files) endif() +if(UWP_LIB) + target_compile_definitions(libdevilutionx PRIVATE __UWP__=1) +endif() + if(CPACK AND (APPLE OR BUILD_ASSETS_MPQ OR SRC_DIST)) if(WIN32) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") diff --git a/Packaging/xbox-one/build.bat b/Packaging/xbox-one/build.bat new file mode 100644 index 000000000..41ef72729 --- /dev/null +++ b/Packaging/xbox-one/build.bat @@ -0,0 +1,20 @@ +call VsDevCmd.bat + +mkdir ..\..\build +cd ..\..\build + +git clone https://github.com/libsdl-org/SDL.git +git -C SDL checkout b424665e0899769b200231ba943353a5fee1b6b6 +msbuild /p:PlatformToolset=v143;TargetPlatformVersion=10.0.22000.0;TargetPlatformMinVersion=10.0.14393.0;ConfigurationType=StaticLibrary;Configuration=Release;Platform=x64 SDL\VisualC-WinRT\SDL-UWP.vcxproj + +cmake -DUWP_LIB=1 -DUWP_SDL2_DIR="%CD%/SDL" -DCMAKE_BUILD_TYPE=x64-Release .. + +msbuild /p:Configuration=Release;Platform=x64 DevilutionX.sln + +powershell "Get-Content ..\uwp-project\Package.appxmanifest.template | %% {$_ -replace '__PROJECT_VERSION__',$(& {git describe --tags --abbrev=0})} | Out-File -FilePath ..\uwp-project\Package.appxmanifest -encoding ASCII" + +msbuild /p:Configuration=Release;Platform=x64;AppxBundle=Always;AppxBundlePlatforms=x64 ..\uwp-project\devilutionx.sln + +powershell "Get-Childitem -Path uwp-project\AppxPackages, uwp-project\Release -Include Microsoft.VCLibs.x64.*.appx, devilutionX_*_x64.appx -File -Recurse | Copy-Item -Destination ..\Packaging\xbox-one" + +cd ..\Packaging\xbox-one diff --git a/Source/diablo.cpp b/Source/diablo.cpp index cb353813e..16f5047db 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -1695,6 +1695,15 @@ void diablo_quit(int exitStatus) exit(exitStatus); } +#ifdef __UWP__ +void (*onInitialized)() = NULL; + +void setOnInitialized(void (*callback)()) +{ + onInitialized = callback; +} +#endif + int DiabloMain(int argc, char **argv) { #ifdef _DEBUG @@ -1718,6 +1727,10 @@ int DiabloMain(int argc, char **argv) DiabloInit(); +#ifdef __UWP__ + onInitialized(); +#endif + DiabloSplash(); mainmenu_loop(); DiabloDeinit(); diff --git a/Source/diablo.h b/Source/diablo.h index 0aeb9da00..6a2b39904 100644 --- a/Source/diablo.h +++ b/Source/diablo.h @@ -120,4 +120,8 @@ extern bool gbFriendlyMode; */ extern GameLogicStep gGameLogicStep; +#ifdef __UWP__ +void setOnInitialized(void (*)()); +#endif + } // namespace devilution diff --git a/Source/init.cpp b/Source/init.cpp index 48bd090a6..475fb7007 100644 --- a/Source/init.cpp +++ b/Source/init.cpp @@ -8,7 +8,7 @@ #include #include -#if defined(_WIN64) || defined(_WIN32) +#if (defined(_WIN64) || defined(_WIN32)) && !defined(__UWP__) #include #endif @@ -96,7 +96,7 @@ std::vector GetMPQSearchPaths() paths.emplace_back("/usr/local/share/diasurgical/devilutionx/"); #elif defined(__3DS__) paths.emplace_back("romfs:/"); -#elif defined(_WIN64) || defined(_WIN32) +#elif (defined(_WIN64) || defined(_WIN32)) && !defined(__UWP__) char gogpath[_FSG_PATH_MAX]; fsg_get_gog_game_path(gogpath, "1412601690"); if (strlen(gogpath) > 0) { diff --git a/Source/utils/display.cpp b/Source/utils/display.cpp index 5c266c7e3..a1b875da2 100644 --- a/Source/utils/display.cpp +++ b/Source/utils/display.cpp @@ -192,7 +192,7 @@ bool SpawnWindow(const char *lpWindowName) SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0"); #endif -#if defined(_WIN32) && !defined(USE_SDL1) +#if defined(_WIN32) && !defined(USE_SDL1) && !defined(__UWP__) // The default WASAPI backend causes distortions // https://github.com/diasurgical/devilutionX/issues/1434 SDL_setenv("SDL_AUDIODRIVER", "winmm", /*overwrite=*/false); diff --git a/Source/utils/stdcompat/optional.hpp b/Source/utils/stdcompat/optional.hpp index 2c51da0db..ad6c5404a 100644 --- a/Source/utils/stdcompat/optional.hpp +++ b/Source/utils/stdcompat/optional.hpp @@ -1,7 +1,7 @@ #pragma once #ifdef __has_include -#if defined(__cplusplus) && __cplusplus >= 201606L && __has_include() +#if defined(__cplusplus) && (__cplusplus >= 201606L || _MSC_VER >= 1930) && __has_include() #include // IWYU pragma: export #elif __has_include() #include // IWYU pragma: export diff --git a/Source/utils/stdcompat/string_view.hpp b/Source/utils/stdcompat/string_view.hpp index 443c4d806..90fc183a2 100644 --- a/Source/utils/stdcompat/string_view.hpp +++ b/Source/utils/stdcompat/string_view.hpp @@ -1,7 +1,7 @@ #pragma once #ifdef __has_include -#if defined(__cplusplus) && __cplusplus >= 201703L && __has_include() // should be 201606L, but STL headers disagree +#if defined(__cplusplus) && (__cplusplus >= 201703L || _MSC_VER >= 1930) && __has_include() // should be 201606L, but STL headers disagree #include // IWYU pragma: export namespace devilution { diff --git a/appveyor-uwp.yml b/appveyor-uwp.yml new file mode 100644 index 000000000..eb9fcdd0f --- /dev/null +++ b/appveyor-uwp.yml @@ -0,0 +1,16 @@ +version: 1.0.{build} + +pull_requests: + do_not_increment_build_number: true +image: Visual Studio 2022 + +before_build: + - cd %APPVEYOR_BUILD_FOLDER%\Packaging\xbox-one + +build_script: + - build.bat +artifacts: + - path: . + name: devilutionX_*_x64.appx + - path: . + name: Microsoft.VCLibs.x64.*.appx diff --git a/docs/building.md b/docs/building.md index 001b96d5f..b3161dc69 100644 --- a/docs/building.md +++ b/docs/building.md @@ -360,8 +360,8 @@ Emscripten port is a work in progress. It builds but does not do more than that To build, install the [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html), then run: ~~~ bash -emcmake cmake -S. -Bbuild-em -DCMAKE_BUILD_TYPE=Release -cmake --build build-em -j $(getconf _NPROCESSORS_ONLN) +emcmake cmake -S. -Bbuild-em -DCMAKE\_BUILD\_TYPE=Release +cmake --build build-em -j $(getconf \_NPROCESSORS\_ONLN) ~~~ To then run it: @@ -372,6 +372,36 @@ emrun index.html ~~~ +
Xbox One/Series + +### Dependencies + +* Windows 10 +* CMake +* Git +* Visual Studio 2022 with the foloowing packages installed: + * C++ (v143) Universal Windows Platform tools + * Windows 11 SDK (10.0.22000.0) + * Windows 10 SDK (10.0.18362.0) + * MSVC v143 - VS 2022 C++ x64/x86 build tools + +_Note: Visual Studio Community Edition can be used._ + +### Building + +Add the following to the PATH: +* CMake +* GIT +* VsDevCmd.bat + +Run: +``` +Packaging/xbox-one/build.bat +``` + +[Xbox One/Series manual](manual/platforms/xbox-one.md) +
+
CMake build options ### General diff --git a/docs/manual/platforms/xbox-one.md b/docs/manual/platforms/xbox-one.md new file mode 100644 index 000000000..88ee53aa5 --- /dev/null +++ b/docs/manual/platforms/xbox-one.md @@ -0,0 +1,40 @@ +# DevilutionX (Diablo 1) for Microsoft Xbox One/Series + +## Installation + +1. Download and unzip [devilutionx-xbox-one.zip](https://github.com/diasurgical/devilutionX/releases/latest/download/devilutionx-xbox-one.zip). +2. In Xbox Device Portal click on `Add` button located at `Home/My games & apps` +3. In the first popup - called `Deploy or Install Application` choose `devilutionX..appx` and then click `Next` +4. In the second popup - called `Choose any necessary dependencies` choose `Microsoft.VCLibs..appx` and then click `Start` +5. In your PC go to the shared folder `WindowsApps` and find the devilutionX folder which should be something like `\_\_random string<>` +6. Copy `diabdat.mpq` from your CD (or GoG install folder) to it. +7. In the Xbox press `View` on DevilutionX and select `Details` and there change the type from `App` to `Game`. + +## Usage + +Launch `DevilutionX` from the Dev Mode home. + +## Controls + +- Left analog or D-Pad: move hero +- A: attack nearby enemies, talk to townspeople and merchants, pickup/place items in the inventory, OK while in main menu +- B: select spell, back while in menus +- X: pickup items, open nearby chests and doors, use item in the inventory +- Y: cast spell, delete character while in main menu +- LB: use health item from belt +- RB: use mana potion from belt +- LT: character sheet (alt: Menu + LB or ←) +- RT: inventory (alt: Menu + RB or →) +- Left analog click: toggle automap (alt: Menu + ↓) +- Menu + View: game menu (alt: Menu + ↑) +- View + A/B/X/Y: Spell hotkeys +- Right analog: move automap or simulate mouse +- Right analog click: left mouse click (alt: View + LB) +- View + Right analog click: right mouse click (alt: View + RB) +- View + LT: quest log (alt: Menu + Y) +- View + RT: spell book (alt: Menu + B) + +## Resources + +* Discord: https://discord.gg/YQKCAYQ +* GitHub: https://github.com/diasurgical/devilutionX diff --git a/uwp-project/Assets/BadgeLogo.scale-200.png b/uwp-project/Assets/BadgeLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..eccea15bf3105b62f712da8c12febe6ef3995a38 GIT binary patch literal 319 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 *tmi+|09 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 QAEgoLYa2s9XgWpxKWW{FhyVZp literal 0 HcmV?d00001 diff --git a/uwp-project/Assets/SmallLogo.altform-lightunplated_targetsize-48.png b/uwp-project/Assets/SmallLogo.altform-lightunplated_targetsize-48.png new file mode 100644 index 0000000000000000000000000000000000000000..d89282f8bc43d8f11b750f133d7727c28fb401fc GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/uwp-project/Assets/SmallLogo.altform-unplated_targetsize-48.png b/uwp-project/Assets/SmallLogo.altform-unplated_targetsize-48.png new file mode 100644 index 0000000000000000000000000000000000000000..d89282f8bc43d8f11b750f133d7727c28fb401fc GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/uwp-project/Assets/SmallLogo.scale-200.png b/uwp-project/Assets/SmallLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2a2cf0e4da8cbce4d8104cf3c7d41f1efa4124 GIT binary patch literal 4926 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 literal 0 HcmV?d00001 diff --git a/uwp-project/Assets/SplashScreen.scale-200.png b/uwp-project/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..52de47a0b190371c680088922e0cd4a2429f8b71 GIT binary patch literal 29973 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 literal 0 HcmV?d00001 diff --git a/uwp-project/Assets/StoreLogo.scale-200.png b/uwp-project/Assets/StoreLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..98bf2063276aa816e696129de132d4c234daa188 GIT binary patch literal 8051 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 BVG#fT literal 0 HcmV?d00001 diff --git a/uwp-project/Assets/WideTile.scale-200.png b/uwp-project/Assets/WideTile.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..12c39a5675b5c27135cd3d299c0bd68d35af3f36 GIT binary patch literal 11422 zcmeHN_czsl{I@c)B72vF>~(Ri5Yo-6jEigCWbbQbWoKNJTxBM!a&gJd-jPlAykw6{ z8Cl==_4)n{-=Dtca5&C!-|zSH{d_$i>lvf3t3`dC?K%Mg0k!tS2TuqHh@1%s2!+W> zfxiUv?T!LJDBK@Hy$A?s+VJ0mU2dPB6A%dNYd=tZ<~OxH>-+BA%4COZ@b{nn{rx+OiSxBPo-+14+Hddt|JVOT1x(+b@fUsYE{>vR?>Bd; z9D7maF!JJeSbYNHX48f5yF1z|fo}{y>v*pX-s13E2wjX~cO}2cuS+$cc<^}bSFzdW z?M-2au^JC7ri&{e;{0%0%(-s8;1=cATa@UOGgixg^9FD4q)2%M6L)m7yKzKOvC

+mNzzEdP#nxs71n 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 + + + + + + + + + devilutionX + devilution Team + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uwp-project/Package.appxmanifest.template b/uwp-project/Package.appxmanifest.template new file mode 100644 index 000000000..bed983668 --- /dev/null +++ b/uwp-project/Package.appxmanifest.template @@ -0,0 +1,51 @@ + + + + + + + + + + devilutionX + devilution Team + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uwp-project/devilutionx.sln b/uwp-project/devilutionx.sln new file mode 100644 index 000000000..0e7992770 --- /dev/null +++ b/uwp-project/devilutionx.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32014.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "devilutionX", "devilutionx.vcxproj", "{3183A558-46F4-4FEF-8684-0A79B793599F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3183A558-46F4-4FEF-8684-0A79B793599F}.Debug|x64.ActiveCfg = Debug|x64 + {3183A558-46F4-4FEF-8684-0A79B793599F}.Debug|x64.Build.0 = Debug|x64 + {3183A558-46F4-4FEF-8684-0A79B793599F}.Debug|x64.Deploy.0 = Debug|x64 + {3183A558-46F4-4FEF-8684-0A79B793599F}.Release|x64.ActiveCfg = Release|x64 + {3183A558-46F4-4FEF-8684-0A79B793599F}.Release|x64.Build.0 = Release|x64 + {3183A558-46F4-4FEF-8684-0A79B793599F}.Release|x64.Deploy.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D91CBA35-4ECA-4F87-81C4-EBD110EDEE56} + EndGlobalSection +EndGlobal diff --git a/uwp-project/devilutionx.vcxproj b/uwp-project/devilutionx.vcxproj new file mode 100644 index 000000000..01e96f771 --- /dev/null +++ b/uwp-project/devilutionx.vcxproj @@ -0,0 +1,140 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {3183a558-46f4-4fef-8684-0a79b793599f} + DirectXApp + devilutionX + en-US + 14.0 + true + Windows Store + 8.2 + 10.0.10069.0 + 10.0.10069.0 + 10.0.22000.0 + 10.0.14393.0 + devilutionX + + + + Application + true + v143 + + + Application + false + true + v143 + + + + + + + + + + + + + + + + devilutionX_TemporaryKey.pfx + True + False + SHA256 + True + True + Always + x64 + 0 + ..\build\uwp-project\AppxPackages + + + ..\build\uwp-project\$(Configuration)\ + ..\build\uwp-project\obj\ + + + ..\build\uwp-project\$(Configuration)\ + ..\build\uwp-project\obj\ + + + + sdl_image.lib;libpng16_staticd.lib;pkware.lib;fmtd.lib;zlib.lib;bzip2.lib;libsmackerdec.lib;libmpq.lib;libdevilutionx.lib;sdl2.lib;sdl_audiolib.lib;sodium.lib;zt.lib;lwip_pic.lib;miniupnpc_pic.lib;natpmp_pic.lib;zt_pic.lib;zto_pic.lib;shlwapi.lib;shell32.lib;%(AdditionalDependencies) + ..\build\SDL\VisualC-WinRT\x64\Debug\SDL-UWP;..\build\3rdParty\SDL_image\Debug;..\build\3rdParty\zlib\Debug;..\build\3rdParty\PKWare\Debug;..\build\3rdParty\bzip2\Debug;..\build\3rdParty\libsmackerdec\Debug;..\build\3rdParty\libmpq\Debug;..\build\_deps\sdl_audiolib-build\Debug;..\build\_deps\libsodium-build\Debug;..\build\_deps\libzt-build\lib\Debug;..\build\_deps\libfmt-build\Debug;..\build\_deps\libpng-build\Debug;..\build\Source\libdevilutionx.dir\Debug;%(AdditionalLibraryDirectories) + + + pch.h + $(IntDir)pch.pch + ..\Source;..\build\SDL\include;..\build\_deps\sdl_audiolib-src\include;..\build\_deps\sdl_audiolib-build;%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;__UWP__=1;%(PreprocessorDefinitions) + NotUsing + stdcpp17 + true + true + false + + + + + sdl_image.lib;libpng16_static.lib;pkware.lib;fmt.lib;zlib.lib;bzip2.lib;libsmackerdec.lib;libmpq.lib;libdevilutionx.lib;sdl2.lib;sdl_audiolib.lib;sodium.lib;zt.lib;lwip_pic.lib;miniupnpc_pic.lib;natpmp_pic.lib;zt_pic.lib;zto_pic.lib;shlwapi.lib;shell32.lib;%(AdditionalDependencies) + ..\build\SDL\VisualC-WinRT\x64\Release\SDL-UWP;..\build\3rdParty\SDL_image\Release;..\build\3rdParty\zlib\Release;..\build\3rdParty\PKWare\Release;..\build\3rdParty\bzip2\Release;..\build\3rdParty\libsmackerdec\Release;..\build\3rdParty\libmpq\Release;..\build\_deps\sdl_audiolib-build\Release;..\build\_deps\libsodium-build\Release;..\build\_deps\libzt-build\lib\Release;..\build\_deps\libfmt-build\Release;..\build\_deps\libpng-build\Release;..\build\Source\libdevilutionx.dir\Release;%(AdditionalLibraryDirectories) + + + pch.h + $(IntDir)pch.pch + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;__UWP__=1;%(PreprocessorDefinitions) + NotUsing + ..\Source;..\build\SDL\include;..\build\_deps\sdl_audiolib-src\include;..\build\_deps\sdl_audiolib-build;%(AdditionalIncludeDirectories) + stdcpp17 + + + + + + + + + + + + + + + + + + Designer + + + true + Assets\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + + + + + \ No newline at end of file diff --git a/uwp-project/src/SDL_winrt_main_NonXAML.cpp b/uwp-project/src/SDL_winrt_main_NonXAML.cpp new file mode 100644 index 000000000..145ef964a --- /dev/null +++ b/uwp-project/src/SDL_winrt_main_NonXAML.cpp @@ -0,0 +1,89 @@ +/* + SDL_winrt_main_NonXAML.cpp, placed in the public domain by David Ludwig 3/13/14 +*/ + +#include +#include +#include +#include +#include + +/* At least one file in any SDL/WinRT app appears to require compilation + with C++/CX, otherwise a Windows Metadata file won't get created, and + an APPX0702 build error can appear shortly after linking. + + The following set of preprocessor code forces this file to be compiled + as C++/CX, which appears to cause Visual C++ 2012's build tools to + create this .winmd file, and will help allow builds of SDL/WinRT apps + to proceed without error. + + If other files in an app's project enable C++/CX compilation, then it might + be possible for SDL_winrt_main_NonXAML.cpp to be compiled without /ZW, + for Visual C++'s build tools to create a winmd file, and for the app to + build without APPX0702 errors. In this case, if + SDL_WINRT_METADATA_FILE_AVAILABLE is defined as a C/C++ macro, then + the #error (to force C++/CX compilation) will be disabled. + + Please note that /ZW can be specified on a file-by-file basis. To do this, + right click on the file in Visual C++, click Properties, then change the + setting through the dialog that comes up. +*/ +#ifndef SDL_WINRT_METADATA_FILE_AVAILABLE +#ifndef __cplusplus_winrt +#error SDL_winrt_main_NonXAML.cpp must be compiled with /ZW, otherwise build errors due to missing .winmd files can occur. +#endif +#endif + +/* Prevent MSVC++ from warning about threading models when defining our + custom WinMain. The threading model will instead be set via a direct + call to Windows::Foundation::Initialize (rather than via an attributed + function). + + To note, this warning (C4447) does not seem to come up unless this file + is compiled with C++/CX enabled (via the /ZW compiler flag). +*/ +#ifdef _MSC_VER +#pragma warning(disable:4447) +#endif + +/* Make sure the function to initialize the Windows Runtime gets linked in. */ +#ifdef _MSC_VER +#pragma comment(lib, "runtimeobject.lib") +#endif + +// This handler is needed otherwise B button will exit the game as it is the behavior default for UWP apps +void OnBackRequested(Platform::Object^, Windows::UI::Core::BackRequestedEventArgs^ args) +{ + args->Handled = true; +} + +void onInitialized() +{ + Windows::UI::Core::SystemNavigationManager::GetForCurrentView()->BackRequested += ref new Windows::Foundation::EventHandler(OnBackRequested); + + // workaround untill new config is released + std::string controllerMapping = ",*,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftstick:b8,rightstick:b9,leftshoulder:b4,rightshoulder:b5,dpup:b10,dpdown:b12,dpleft:b13,dpright:b11,leftx:a1,lefty:a0~,rightx:a3,righty:a2~,lefttrigger:a4,righttrigger:a5,platform:WinRT"; + + for(int i = 0; i < SDL_NumJoysticks(); ++i) + { + SDL_JoystickType type = SDL_JoystickGetDeviceType(i); + + if(type == SDL_JOYSTICK_POWER_UNKNOWN) + continue; + + SDL_JoystickGUID guid = SDL_JoystickGetDeviceGUID(i); + + if(!guid.data) + continue; + + char guidString[33]; + SDL_JoystickGetGUIDString(guid, guidString, 33); + SDL_GameControllerAddMapping((guidString + controllerMapping).c_str()); + } +} + +int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int) +{ + devilution::setOnInitialized(&onInitialized); + return SDL_WinRTRunApp(devilution::DiabloMain, NULL); +}