From 5a2b1677284a93fd9a75da328eff9d165f3fff90 Mon Sep 17 00:00:00 2001 From: staphen Date: Sat, 20 Aug 2022 19:31:34 -0400 Subject: [PATCH] [3DS] Bundle assets directly in romfs --- CMake/platforms/n3ds.cmake | 4 ++++ CMakeLists.txt | 15 --------------- Source/init.cpp | 2 +- Source/utils/paths.cpp | 2 ++ 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/CMake/platforms/n3ds.cmake b/CMake/platforms/n3ds.cmake index bab7c0447..ab8c930e7 100644 --- a/CMake/platforms/n3ds.cmake +++ b/CMake/platforms/n3ds.cmake @@ -2,6 +2,7 @@ set(ASAN OFF) set(UBSAN OFF) set(BUILD_TESTING OFF) +set(BUILD_ASSETS_MPQ OFF) set(DEVILUTIONX_SYSTEM_LIBSODIUM OFF) set(DEVILUTIONX_SYSTEM_LIBFMT OFF) set(DEVILUTIONX_STATIC_LIBSODIUM ON) @@ -29,6 +30,9 @@ set(SDL1_VIDEO_MODE_BPP 8) set(DEFAULT_WIDTH 800) set(DEFAULT_HEIGHT 480) +#Deploy assets to romfs +set(DEVILUTIONX_ASSETS_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/romfs") + #SDL Joystick axis mapping (circle-pad/C-stick) set(JOY_AXIS_LEFTX 0) set(JOY_AXIS_LEFTY 1) diff --git a/CMakeLists.txt b/CMakeLists.txt index a4be84380..f9928bcd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -445,8 +445,6 @@ if(NINTENDO_3DS) set(APP_BANNER "${PROJECT_SOURCE_DIR}/Packaging/ctr/banner.png") set(APP_AUDIO "${CMAKE_BINARY_DIR}/banner_audio.wav") set(APP_RSF "${PROJECT_SOURCE_DIR}/Packaging/ctr/template.rsf") - set(APP_ROMFS "${CMAKE_BINARY_DIR}/romfs") - list(APPEND APP_ROMFS_FILES ${DEVILUTIONX_MPQ}) set(APP_VERSION ${PROJECT_VERSION}) find_program(FFMPEG ffmpeg) @@ -462,22 +460,9 @@ if(NINTENDO_3DS) VERBATIM) endif() - add_custom_target(romfs_directory - COMMAND ${CMAKE_COMMAND} -E make_directory ${APP_ROMFS}) - - add_custom_target(romfs_files - COMMAND ${CMAKE_COMMAND} -E copy ${APP_ROMFS_FILES} ${APP_ROMFS} - DEPENDS ${APP_ROMFS_FILES}) - - add_dependencies(romfs_files romfs_directory devilutionx_mpq) - include(Tools3DS) add_3dsx_target(${BIN_TARGET}) add_cia_target(${BIN_TARGET} ${APP_RSF} ${APP_BANNER} ${APP_AUDIO}) - - get_filename_component(APP_TARGET_PREFIX ${BIN_TARGET} NAME_WE) - add_dependencies(${APP_TARGET_PREFIX}_3dsx romfs_files) - add_dependencies(${APP_TARGET_PREFIX}_cia romfs_files) endif() if(UWP_LIB) diff --git a/Source/init.cpp b/Source/init.cpp index 8023ceeb7..d65d638c4 100644 --- a/Source/init.cpp +++ b/Source/init.cpp @@ -95,7 +95,7 @@ std::vector GetMPQSearchPaths() #if defined(__unix__) && !defined(__ANDROID__) paths.emplace_back("/usr/share/diasurgical/devilutionx/"); paths.emplace_back("/usr/local/share/diasurgical/devilutionx/"); -#elif defined(__3DS__) || defined(__SWITCH__) +#elif defined(__SWITCH__) paths.emplace_back("romfs:/"); #elif defined(NXDK) paths.emplace_back("D:\\"); diff --git a/Source/utils/paths.cpp b/Source/utils/paths.cpp index 7c3085b39..b96786712 100644 --- a/Source/utils/paths.cpp +++ b/Source/utils/paths.cpp @@ -122,6 +122,8 @@ const std::string &AssetsPath() assetsPath.emplace("assets/"); #elif defined(NXDK) assetsPath.emplace("D:\\assets\\"); +#elif defined(__3DS__) + assetsPath.emplace("romfs:/"); #else assetsPath.emplace(FromSDL(SDL_GetBasePath()) + ("assets" DIRECTORY_SEPARATOR_STR)); #endif