Browse Source

[3DS] Bundle assets directly in romfs

pull/5260/head
staphen 4 years ago committed by Anders Jenbo
parent
commit
5a2b167728
  1. 4
      CMake/platforms/n3ds.cmake
  2. 15
      CMakeLists.txt
  3. 2
      Source/init.cpp
  4. 2
      Source/utils/paths.cpp

4
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)

15
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)

2
Source/init.cpp

@ -95,7 +95,7 @@ std::vector<std::string> 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:\\");

2
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

Loading…
Cancel
Save