diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ccde425c9..139b0654d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,9 +67,9 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v7 with: - name: dusk-${{env.DUSK_VERSION}}-linux-${{matrix.preset}}-${{matrix.artifact_arch}} + name: dusklight-${{env.DUSK_VERSION}}-linux-${{matrix.preset}}-${{matrix.artifact_arch}} path: | - build/install/Dusk-*.AppImage + build/install/Dusklight-*.AppImage build/install/debug.tar.* build-apple: @@ -135,9 +135,9 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v7 with: - name: dusk-${{env.DUSK_VERSION}}-${{matrix.artifact_name}} + name: dusklight-${{env.DUSK_VERSION}}-${{matrix.artifact_name}} path: | - build/install/Dusk.app + build/install/Dusklight.app build/install/debug.tar.* build-android: @@ -192,7 +192,7 @@ jobs: run: cmake --preset ${{matrix.preset}} - name: Build native library - run: cmake --build --preset ${{matrix.preset}} --target dusk + run: cmake --build --preset ${{matrix.preset}} --target dusklight - name: Stage stripped JNI library run: ANDROID_STAGE_ABIS="${{matrix.abi}}" platforms/android/scripts/stage-jni-libs.sh @@ -204,7 +204,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v7 with: - name: dusk-${{env.DUSK_VERSION}}-android-${{matrix.artifact_arch}} + name: dusklight-${{env.DUSK_VERSION}}-android-${{matrix.artifact_arch}} path: platforms/android/app/build/outputs/apk/release/app-${{matrix.abi}}-release-unsigned.apk build-windows: @@ -266,7 +266,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v7 with: - name: dusk-${{env.DUSK_VERSION}}-win32-msvc-${{matrix.artifact_arch}} + name: dusklight-${{env.DUSK_VERSION}}-win32-msvc-${{matrix.artifact_arch}} path: | build/install/*.exe build/install/*.dll diff --git a/.vscode/launch.json b/.vscode/launch.json index 7090699dd9..515473f4d0 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,7 +2,7 @@ "version": "0.2.0", "configurations": [ { - "name": "(gdb) Launch Dusk MSVC", + "name": "(gdb) Launch Dusklight MSVC", "type": "cppvsdbg", "request": "launch", "program": "${command:cmake.launchTargetPath}", diff --git a/.vscode/settings.json b/.vscode/settings.json index bacff1eb9b..a5beeac1b9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { - "cmake.buildDirectory": "${workspaceFolder}/build/dusk/${buildType}/${variant:tp_version}", + "cmake.buildDirectory": "${workspaceFolder}/build/dusklight/${buildType}/${variant:tp_version}", "cmake.generator": "Ninja", "cmake.configureSettings": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" diff --git a/CMakeLists.txt b/CMakeLists.txt index df0afc5b86..5ef323b142 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,9 +67,9 @@ endif () if(DEFINED ENV{GITHUB_ENV}) file(APPEND "$ENV{GITHUB_ENV}" "DUSK_VERSION=${DUSK_WC_DESCRIBE}\n") endif() -message(STATUS "Dusk version set to ${DUSK_WC_DESCRIBE}") +message(STATUS "Dusklight version set to ${DUSK_WC_DESCRIBE}") message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") -project(dusk LANGUAGES C CXX VERSION ${DUSK_VERSION_STRING}) +project(dusklight LANGUAGES C CXX VERSION ${DUSK_VERSION_STRING}) if (APPLE) enable_language(OBJC OBJCXX) endif () @@ -134,9 +134,9 @@ endif () if (DUSK_MOVIE_SUPPORT) find_package(libjpeg-turbo 3.0 CONFIG QUIET) if (libjpeg-turbo_FOUND) - message(STATUS "dusk: Using system libjpeg-turbo") + message(STATUS "dusklight: Using system libjpeg-turbo") else () - message(STATUS "dusk: Fetching libjpeg-turbo") + message(STATUS "dusklight: Fetching libjpeg-turbo") include(ExternalProject) set(_jpeg_install_dir ${CMAKE_BINARY_DIR}/libjpeg-turbo-install) if (WIN32) @@ -226,13 +226,13 @@ endif () include(FetchContent) # Declare all dependencies first so CMake can download them in parallel -message(STATUS "dusk: Fetching cxxopts") +message(STATUS "dusklight: Fetching cxxopts") FetchContent_Declare(cxxopts URL https://github.com/jarro2783/cxxopts/archive/refs/tags/v3.3.1.tar.gz URL_HASH SHA256=3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072 DOWNLOAD_EXTRACT_TIMESTAMP TRUE ) -message(STATUS "dusk: Fetching nlohmann/json") +message(STATUS "dusklight: Fetching nlohmann/json") FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.12.0/json.tar.xz URL_HASH SHA256=42f6e95cad6ec532fd372391373363b62a14af6d771056dbfc86160e6dfff7aa @@ -241,7 +241,7 @@ FetchContent_Declare(json FetchContent_MakeAvailable(cxxopts json) if (DUSK_ENABLE_SENTRY_NATIVE) - message(STATUS "dusk: Fetching sentry-native") + message(STATUS "dusklight: Fetching sentry-native") set(SENTRY_BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(SENTRY_BACKEND crashpad CACHE STRING "" FORCE) if (WIN32) @@ -286,15 +286,15 @@ include(files.cmake) # TODO: version handling for res includes -set(DUSK_BUNDLE_NAME Dusk) +set(DUSK_BUNDLE_NAME Dusklight) set(DUSK_BUNDLE_IDENTIFIER dev.twilitrealm.dusk) set(DUSK_COMPANY_NAME "Twilit Realm") -set(DUSK_FILE_DESCRIPTION "Dusk") -set(DUSK_PRODUCT_NAME "Dusk") +set(DUSK_FILE_DESCRIPTION "Dusklight") +set(DUSK_PRODUCT_NAME "Dusklight") set(DUSK_COPYRIGHT "Copyright (C) Twilit Realm contributors") source_group("dolzel" FILES ${DOLZEL_FILES} ${Z2AUDIOLIB_FILES} ${REL_FILES}) -source_group("dusk" FILES ${DUSK_FILES} ${DUSK_HTTP_BACKEND_FILES}) +source_group("dusklight" FILES ${DUSK_FILES} ${DUSK_HTTP_BACKEND_FILES}) set(GAME_COMPILE_DEFS TARGET_PC WIDESCREEN_SUPPORT=1 AVOID_UB=1 VERSION=0 MTX_USE_PS=1) @@ -331,30 +331,30 @@ if (DUSK_ENABLE_UPDATE_CHECKER) set(DUSK_HTTP_BACKEND_SOURCE src/dusk/http/winhttp.cpp) list(APPEND GAME_LIBS winhttp) list(APPEND GAME_COMPILE_DEFS DUSK_HTTP_BACKEND_WINHTTP=1) - message(STATUS "dusk: Enabled update checker (WinHTTP)") + message(STATUS "dusklight: Enabled update checker (WinHTTP)") elseif (ANDROID) set(DUSK_HTTP_BACKEND_SOURCE src/dusk/http/android.cpp) list(APPEND GAME_COMPILE_DEFS DUSK_HTTP_BACKEND_ANDROID=1) - message(STATUS "dusk: Enabled update checker (Android)") + message(STATUS "dusklight: Enabled update checker (Android)") elseif (APPLE) find_library(FOUNDATION_FRAMEWORK Foundation REQUIRED) set(DUSK_HTTP_BACKEND_SOURCE src/dusk/http/url_session.mm) set_source_files_properties(src/dusk/http/url_session.mm PROPERTIES COMPILE_FLAGS -fobjc-arc) list(APPEND GAME_LIBS ${FOUNDATION_FRAMEWORK}) list(APPEND GAME_COMPILE_DEFS DUSK_HTTP_BACKEND_URLSESSION=1) - message(STATUS "dusk: Enabled update checker (NSURLSession)") + message(STATUS "dusklight: Enabled update checker (NSURLSession)") elseif (CMAKE_SYSTEM_NAME STREQUAL Linux) find_package(CURL QUIET OPTIONAL_COMPONENTS HTTPS SSL) if (CURL_FOUND AND CURL_HTTPS_FOUND AND CURL_SSL_FOUND) set(DUSK_HTTP_BACKEND_SOURCE src/dusk/http/curl.cpp) list(APPEND GAME_LIBS CURL::libcurl) list(APPEND GAME_COMPILE_DEFS DUSK_HTTP_BACKEND_LIBCURL=1) - message(STATUS "dusk: Enabled update checker (libcurl)") + message(STATUS "dusklight: Enabled update checker (libcurl)") else () - message(STATUS "dusk: Disabled update checker (libcurl + HTTPS/SSL not found)") + message(STATUS "dusklight: Disabled update checker (libcurl + HTTPS/SSL not found)") endif () else () - message(STATUS "dusk: Disabled update checker (unsupported platform)") + message(STATUS "dusklight: Disabled update checker (unsupported platform)") endif () endif () list(APPEND DUSK_FILES ${DUSK_HTTP_BACKEND_SOURCE}) @@ -432,22 +432,22 @@ endif () set(DUSK_FILES src/dusk/main.cpp ${GAME_BASE_FILES} ${GAME_DEBUG_FILES}) if(ANDROID) - add_library(dusk SHARED ${DUSK_FILES}) - set_target_properties(dusk PROPERTIES OUTPUT_NAME main) + add_library(dusklight SHARED ${DUSK_FILES}) + set_target_properties(dusklight PROPERTIES OUTPUT_NAME main) else () - add_executable(dusk ${DUSK_FILES}) + add_executable(dusklight ${DUSK_FILES}) endif () -target_compile_definitions(dusk PRIVATE ${GAME_COMPILE_DEFS}) -target_include_directories(dusk PRIVATE ${GAME_INCLUDE_DIRS}) -target_link_libraries(dusk PRIVATE aurora::main ${GAME_LIBS} ${JSYSTEM_LINK_LIBRARIES}) -target_precompile_headers(dusk PRIVATE "$<$:${CMAKE_SOURCE_DIR}/include/dusk_pch.hpp>") +target_compile_definitions(dusklight PRIVATE ${GAME_COMPILE_DEFS}) +target_include_directories(dusklight PRIVATE ${GAME_INCLUDE_DIRS}) +target_link_libraries(dusklight PRIVATE aurora::main ${GAME_LIBS} ${JSYSTEM_LINK_LIBRARIES}) +target_precompile_headers(dusklight PRIVATE "$<$:${CMAKE_SOURCE_DIR}/include/dusk_pch.hpp>") if (TARGET crashpad_handler) - add_dependencies(dusk crashpad_handler) - add_custom_command(TARGET dusk POST_BUILD + add_dependencies(dusklight crashpad_handler) + add_custom_command(TARGET dusklight POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "$" - "$" + "$" COMMENT "Copying crashpad handler" ) endif () @@ -455,14 +455,14 @@ endif () if (ANDROID) # SDLActivity loads SDL_main via dlsym on Android. Since aurora::main is a static # archive, force an undefined reference so the linker keeps the SDL_main object. - target_link_options(dusk PRIVATE "-Wl,-u,SDL_main") + target_link_options(dusklight PRIVATE "-Wl,-u,SDL_main") endif () if (NOT APPLE) - add_custom_command(TARGET dusk POST_BUILD + add_custom_command(TARGET dusklight POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/res" - "$/res" + "$/res" COMMENT "Copying resources" ) endif () @@ -470,9 +470,9 @@ endif () if (WIN32) set(DUSK_WINDOWS_RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/platforms/windows) set(DUSK_WINDOWS_ICON_PNG ${CMAKE_CURRENT_SOURCE_DIR}/res/icon.png) - set(DUSK_WINDOWS_ICON_ICO ${CMAKE_CURRENT_BINARY_DIR}/dusk.ico) - set(DUSK_WINDOWS_RC ${CMAKE_CURRENT_BINARY_DIR}/dusk.rc) - set(DUSK_WINDOWS_MANIFEST ${CMAKE_CURRENT_BINARY_DIR}/dusk.manifest) + set(DUSK_WINDOWS_ICON_ICO ${CMAKE_CURRENT_BINARY_DIR}/dusklight.ico) + set(DUSK_WINDOWS_RC ${CMAKE_CURRENT_BINARY_DIR}/dusklight.rc) + set(DUSK_WINDOWS_MANIFEST ${CMAKE_CURRENT_BINARY_DIR}/dusklight.manifest) add_custom_command( OUTPUT ${DUSK_WINDOWS_ICON_ICO} @@ -485,14 +485,14 @@ if (WIN32) COMMENT "Generating Windows icon" ) - configure_file(${DUSK_WINDOWS_RESOURCE_DIR}/dusk.manifest.in ${DUSK_WINDOWS_MANIFEST} @ONLY) - configure_file(${DUSK_WINDOWS_RESOURCE_DIR}/dusk.rc.in ${DUSK_WINDOWS_RC} @ONLY) + configure_file(${DUSK_WINDOWS_RESOURCE_DIR}/dusklight.manifest.in ${DUSK_WINDOWS_MANIFEST} @ONLY) + configure_file(${DUSK_WINDOWS_RESOURCE_DIR}/dusklight.rc.in ${DUSK_WINDOWS_RC} @ONLY) - target_sources(dusk PRIVATE ${DUSK_WINDOWS_ICON_ICO} ${DUSK_WINDOWS_RC}) - set_target_properties(dusk PROPERTIES WIN32_EXECUTABLE TRUE) + target_sources(dusklight PRIVATE ${DUSK_WINDOWS_ICON_ICO} ${DUSK_WINDOWS_RC}) + set_target_properties(dusklight PROPERTIES WIN32_EXECUTABLE TRUE) if (MSVC) - target_link_options(dusk PRIVATE /MANIFEST:NO) + target_link_options(dusklight PRIVATE /MANIFEST:NO) endif () endif () @@ -508,10 +508,10 @@ if (APPLE) file(GLOB_RECURSE DUSK_RESOURCE_FILES "${DUSK_RESOURCE_DIR}/Assets.car" "${DUSK_RESOURCE_DIR}/Base.lproj/*" - "${DUSK_RESOURCE_DIR}/Dusk.icns") + "${DUSK_RESOURCE_DIR}/Dusklight.icns") file(GLOB_RECURSE DUSK_APP_RESOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/res/*") - target_sources(dusk PRIVATE ${DUSK_RESOURCE_FILES}) - target_sources(dusk PRIVATE ${DUSK_APP_RESOURCE_FILES}) + target_sources(dusklight PRIVATE ${DUSK_RESOURCE_FILES}) + target_sources(dusklight PRIVATE ${DUSK_APP_RESOURCE_FILES}) foreach (FILE ${DUSK_RESOURCE_FILES}) file(RELATIVE_PATH NEW_FILE "${DUSK_RESOURCE_DIR}" ${FILE}) get_filename_component(NEW_FILE_PATH ${NEW_FILE} DIRECTORY) @@ -523,14 +523,14 @@ if (APPLE) set_property(SOURCE ${FILE} PROPERTY MACOSX_PACKAGE_LOCATION "Resources/${NEW_FILE_PATH}") endforeach () set_target_properties( - dusk PROPERTIES + dusklight PROPERTIES MACOSX_BUNDLE TRUE MACOSX_BUNDLE_BUNDLE_NAME ${DUSK_BUNDLE_NAME} MACOSX_BUNDLE_GUI_IDENTIFIER ${DUSK_BUNDLE_IDENTIFIER} MACOSX_BUNDLE_BUNDLE_VERSION ${DUSK_VERSION_STRING} MACOSX_BUNDLE_SHORT_VERSION_STRING ${DUSK_SHORT_VERSION_STRING} MACOSX_BUNDLE_INFO_PLIST ${DUSK_INFO_PLIST} - OUTPUT_NAME Dusk + OUTPUT_NAME Dusklight XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "YES" XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "YES" ) @@ -539,13 +539,13 @@ endif () if (IOS) find_library(UIKIT_FRAMEWORK UIKit REQUIRED) find_library(UNIFORM_TYPE_IDENTIFIERS_FRAMEWORK UniformTypeIdentifiers REQUIRED) - target_sources(dusk PRIVATE src/dusk/ios/FileSelectDialog.m) + target_sources(dusklight PRIVATE src/dusk/ios/FileSelectDialog.m) set_source_files_properties(src/dusk/ios/FileSelectDialog.m PROPERTIES COMPILE_FLAGS -fobjc-arc) - target_link_libraries(dusk PRIVATE ${UIKIT_FRAMEWORK} ${UNIFORM_TYPE_IDENTIFIERS_FRAMEWORK}) + target_link_libraries(dusklight PRIVATE ${UIKIT_FRAMEWORK} ${UNIFORM_TYPE_IDENTIFIERS_FRAMEWORK}) endif () include(extern/aurora/cmake/AuroraCopyRuntimeDLLs.cmake) -aurora_copy_runtime_dlls(dusk) +aurora_copy_runtime_dlls(dusklight) if (DUSK_SELECTED_OPT) if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") @@ -583,13 +583,13 @@ function(get_target_prefix target result_var) endif () endif () endfunction() -list(APPEND BINARY_TARGETS dusk) +list(APPEND BINARY_TARGETS dusklight) set(EXTRA_TARGETS "") if (TARGET crashpad_handler) list(APPEND EXTRA_TARGETS crashpad_handler) endif () install(TARGETS ${BINARY_TARGETS} ${EXTRA_TARGETS} DESTINATION ${CMAKE_INSTALL_PREFIX}) -aurora_install_runtime_dlls(dusk ${CMAKE_INSTALL_PREFIX}) +aurora_install_runtime_dlls(dusklight ${CMAKE_INSTALL_PREFIX}) if (NOT APPLE) install(DIRECTORY ${CMAKE_SOURCE_DIR}/res DESTINATION ${CMAKE_INSTALL_PREFIX}) endif () diff --git a/CMakePresets.json b/CMakePresets.json index 629bbe9c18..64ef90d452 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -551,7 +551,7 @@ "description": "iOS release build with debug info", "displayName": "iOS RelWithDebInfo", "targets": [ - "dusk" + "dusklight" ] }, { @@ -560,7 +560,7 @@ "description": "tvOS release build with debug info", "displayName": "tvOS RelWithDebInfo", "targets": [ - "dusk" + "dusklight" ] }, { @@ -569,7 +569,7 @@ "description": "Android arm64-v8a release build with debug info", "displayName": "Android arm64-v8a RelWithDebInfo", "targets": [ - "dusk" + "dusklight" ] }, { @@ -578,7 +578,7 @@ "description": "Android x86_64 release build with debug info", "displayName": "Android x86_64 RelWithDebInfo", "targets": [ - "dusk" + "dusklight" ] }, { @@ -587,7 +587,7 @@ "description": "(Internal) Android CI arm64-v8a", "displayName": "(Internal) Android CI arm64-v8a", "targets": [ - "dusk" + "dusklight" ] }, { diff --git a/README.md b/README.md index 652eae2538..322137d86f 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,30 @@ # Overview -Dusk is a reverse-engineered reimplementation of Twilight Princess. +Dusklight is a reverse-engineered reimplementation of Twilight Princess. It aims to be as accurate as possible to the original while also providing new options, enhancements, and tools to customize your experience. # Setup > [!IMPORTANT] -> Dusk does *not* provide any copyrighted assets. You must provide your own copy of the original game. +> Dusklight does *not* provide any copyrighted assets. You must provide your own copy of the original game. > [!IMPORTANT] -> At a minimum, Dusk requires a GPU with support for either D3D12, Vulkan, or Metal. Your experience with specific hardware, operating systems, and drivers may vary. In particular, older Intel iGPUs have a high likelyhood of incompatibility. We are also aware of a number of issues on devices with Adreno GPUs and are working to resolve them. +> At a minimum, Dusklight requires a GPU with support for either D3D12, Vulkan, or Metal. Your experience with specific hardware, operating systems, and drivers may vary. In particular, older Intel iGPUs have a high likelyhood of incompatibility. We are also aware of a number of issues on devices with Adreno GPUs and are working to resolve them. ### 1. Verify your dump -First, make sure your dump of the game is clean and supported by Dusk. You can do this by checking the SHA-1 hash of your dump against this list of supported versions: +First, make sure your dump of the game is clean and supported by Dusklight. You can do this by checking the SHA-1 hash of your dump against this list of supported versions: | Version | SHA-1 hash | |--------------| ------------------------------------------ | @@ -33,12 +33,12 @@ First, make sure your dump of the game is clean and supported by Dusk. You can d *Support for other versions of the game is planned in the future. -### 2. Download [Dusk](https://github.com/TwilitRealm/dusk/releases) +### 2. Download [Dusklight](https://github.com/TwilitRealm/dusklight/releases) ### 3. Setup the game **Windows / macOS / Linux** - Extract the .zip file -- Launch Dusk +- Launch Dusklight - Press **Select Disc Image** and provide the path to your supported game dump - Press **Play**! @@ -46,20 +46,20 @@ First, make sure your dump of the game is clean and supported by Dusk. You can d - Follow the [iOS setup guide](docs/ios-install-altstore.md) **Android** -- Install the Dusk apk -- Launch Dusk +- Install the Dusklight APK +- Launch Dusklight - Press **Select Disc Image** and provide the path to your supported game dump - Press **Play**! # Building -If you'd like to build Dusk from source, please read the [build instructions](docs/building.md). +If you'd like to build Dusklight from source, please read the [build instructions](docs/building.md). Pull requests are welcomed! Note that we do not accept contributions that are primarily AI-generated and will close your PR if we suspect as much. Please also see the [code conventions](docs/code-conventions.md). # Credits -Special thanks to the [TP decompilation](https://github.com/zeldaret/tp) team, the GC/Wii decompilation community, the [Aurora](https://github.com/encounter/aurora) developers, the [TP speedrunning community](https://zsrtp.link), and all [contributors](https://github.com/TwilitRealm/dusk/graphs/contributors). +Special thanks to the [TP decompilation](https://github.com/zeldaret/tp) team, the GC/Wii decompilation community, the [Aurora](https://github.com/encounter/aurora) developers, the [TP speedrunning community](https://zsrtp.link), and all [contributors](https://github.com/TwilitRealm/dusklight/graphs/contributors).
diff --git a/ci/build-appimage.sh b/ci/build-appimage.sh index cef4ddfaf0..6653876f71 100755 --- a/ci/build-appimage.sh +++ b/ci/build-appimage.sh @@ -19,7 +19,7 @@ for install_path in build/install/*; do cp -r "$install_path" build/appdir/usr/bin done cp -r platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} build/appdir/usr/share/icons/hicolor -cp platforms/freedesktop/dusk.desktop build/appdir/usr/share/applications +cp platforms/freedesktop/dusklight.desktop build/appdir/usr/share/applications cd build/install VERSION="$DUSK_VERSION" NO_STRIP=1 "$linuxdeploy" \ diff --git a/docs/building.md b/docs/building.md index 0b1befa49f..1001c42788 100644 --- a/docs/building.md +++ b/docs/building.md @@ -36,10 +36,10 @@ sudo dnf groupinstall "Development Tools" "Development Libraries" ``` #### Setup -Clone and initialize the Dusk repository +Clone and initialize the Dusklight repository ```sh -git clone --recursive https://github.com/TwilitRealm/dusk.git -cd dusk +git clone --recursive https://github.com/TwilitRealm/dusklight.git +cd dusklight git pull git submodule update --init --recursive ``` @@ -93,6 +93,6 @@ Alternate presets available: #### Running Pass the disc image as a positional argument. Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, GCZ ```sh -build/{preset}/dusk /path/to/game.rvz +build/{preset}/dusklight/path/to/game.rvz ``` -If no path is specified, Dusk defaults to `game.iso` in the current working directory. +If no path is specified, Dusklight defaults to `game.iso` in the current working directory. diff --git a/docs/ios-install-altstore.md b/docs/ios-install-altstore.md index fdfc7689d6..1eece215c0 100644 --- a/docs/ios-install-altstore.md +++ b/docs/ios-install-altstore.md @@ -1,10 +1,10 @@ -# Installing Dusk on iOS via AltStore +# Installing Dusklight on iOS via AltStore ## Prerequisites - Mac with Homebrew installed - iPhone connected via USB -- Dusk IPA file (download the latest `Dusk-vX.X.X-ios-arm64.ipa` from the [releases page](https://github.com/TwilitRealm/dusk/releases)) +- Dusklight IPA file (download the latest `Dusklight-vX.X.X-ios-arm64.ipa` from the [releases page](https://github.com/TwilitRealm/dusk/releases)) - Game disc - `GZ2E01` (Gamecube USA) or `GZ2PE01` (Gamecube PAL) ## 1. Install AltServer diff --git a/flake.nix b/flake.nix index c8e38a849b..17467476fb 100644 --- a/flake.nix +++ b/flake.nix @@ -38,9 +38,9 @@ url = "https://github.com/mikke89/RmlUi/archive/f9b8c9e2935d5df2c7dff2c190d3968e99b0c3dc.tar.gz"; hash = "sha256-g4O/JZUrrcseOz8o2QJRt+2CeuiLnVeuDJc906xvuIg="; }; - # Dusk Actual - dusk = pkgs.stdenv.mkDerivation { - name = "dusk"; + # Dusklight Actual + dusklight = pkgs.stdenv.mkDerivation { + name = "dusklight"; src = ./.; postUnpack = '' mkdir -p $sourceRoot/extern/aurora @@ -69,7 +69,7 @@ ]; installPhase = '' mkdir -p $out/bin - cp dusk $out/bin/dusk + cp dusklight $out/bin/dusklight cp -r ./res $out/bin/res ''; nativeBuildInputs = [ @@ -99,6 +99,6 @@ ]; }; in { - packages.x86_64-linux.default = dusk; + packages.x86_64-linux.default = dusklight; }; } diff --git a/include/dusk/app_info.hpp b/include/dusk/app_info.hpp index d5d5f40083..3608532957 100644 --- a/include/dusk/app_info.hpp +++ b/include/dusk/app_info.hpp @@ -7,7 +7,7 @@ namespace dusk { * * This gets used for file paths and such, and cannot be changed! */ - constexpr auto AppName = "Dusk"; + constexpr auto AppName = "Dusklight"; /** * \brief The internal organization name for the game. diff --git a/platforms/android/README.md b/platforms/android/README.md index f51b37db73..f478871392 100644 --- a/platforms/android/README.md +++ b/platforms/android/README.md @@ -1,6 +1,6 @@ # Android Shell -This directory contains a minimal SDLActivity-based Android app wrapper for Dusk. +This directory contains a minimal SDLActivity-based Android app wrapper for Dusklight. ## Prerequisites diff --git a/platforms/android/app/build.gradle b/platforms/android/app/build.gradle index b7775df8e0..2dc8575f86 100644 --- a/platforms/android/app/build.gradle +++ b/platforms/android/app/build.gradle @@ -3,7 +3,7 @@ plugins { } def duskRepoDir = rootProject.projectDir.parentFile.parentFile -def duskGeneratedAssetsDir = layout.buildDirectory.dir('generated/assets/dusk').get().asFile +def duskGeneratedAssetsDir = layout.buildDirectory.dir('generated/assets/dusklight').get().asFile def syncDuskAssets = tasks.register('syncDuskAssets', Sync) { from(new File(duskRepoDir, 'res')) { into 'res' diff --git a/platforms/android/app/src/main/java/com/twilitrealm/dusk/DuskDocumentsProvider.java b/platforms/android/app/src/main/java/com/twilitrealm/dusk/DuskDocumentsProvider.java index 79fa8894d0..6c66b5eed3 100644 --- a/platforms/android/app/src/main/java/com/twilitrealm/dusk/DuskDocumentsProvider.java +++ b/platforms/android/app/src/main/java/com/twilitrealm/dusk/DuskDocumentsProvider.java @@ -224,7 +224,7 @@ public class DuskDocumentsProvider extends DocumentsProvider { private File getRootDirectory() throws FileNotFoundException { final File root = getContext().getFilesDir(); if (root == null) { - throw new FileNotFoundException("Dusk files directory is unavailable"); + throw new FileNotFoundException("Dusklight files directory is unavailable"); } return root; } @@ -241,7 +241,7 @@ public class DuskDocumentsProvider extends DocumentsProvider { final String relativePath = documentId.substring(ROOT_DOCUMENT_ID.length() + 1); final File file = new File(root, relativePath); if (!isInside(root, file)) { - throw new FileNotFoundException("Document escapes Dusk files directory: " + documentId); + throw new FileNotFoundException("Document escapes Dusklight files directory: " + documentId); } if (!file.exists()) { throw new FileNotFoundException("Document does not exist: " + documentId); @@ -255,7 +255,7 @@ public class DuskDocumentsProvider extends DocumentsProvider { return ROOT_DOCUMENT_ID; } if (!isInside(root, file)) { - throw new FileNotFoundException("File escapes Dusk files directory: " + file); + throw new FileNotFoundException("File escapes Dusklight files directory: " + file); } final String rootPath = canonicalPath(root); diff --git a/platforms/android/app/src/main/res/values/strings.xml b/platforms/android/app/src/main/res/values/strings.xml index 752dae76bf..da64547d55 100644 --- a/platforms/android/app/src/main/res/values/strings.xml +++ b/platforms/android/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ - Dusk - Dusk Data + Dusklight + Dusklight Data Saves, texture packs, settings, and logs diff --git a/platforms/android/settings.gradle b/platforms/android/settings.gradle index 55caea6acf..5879529dca 100644 --- a/platforms/android/settings.gradle +++ b/platforms/android/settings.gradle @@ -14,5 +14,5 @@ dependencyResolutionManagement { } } -rootProject.name = "dusk-android" +rootProject.name = "dusklight-android" include ':app' diff --git a/platforms/freedesktop/1024x1024/apps/dusk.png b/platforms/freedesktop/1024x1024/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/1024x1024/apps/dusk.png rename to platforms/freedesktop/1024x1024/apps/dusklight.png diff --git a/platforms/freedesktop/128x128/apps/dusk.png b/platforms/freedesktop/128x128/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/128x128/apps/dusk.png rename to platforms/freedesktop/128x128/apps/dusklight.png diff --git a/platforms/freedesktop/16x16/apps/dusk.png b/platforms/freedesktop/16x16/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/16x16/apps/dusk.png rename to platforms/freedesktop/16x16/apps/dusklight.png diff --git a/platforms/freedesktop/256x256/apps/dusk.png b/platforms/freedesktop/256x256/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/256x256/apps/dusk.png rename to platforms/freedesktop/256x256/apps/dusklight.png diff --git a/platforms/freedesktop/32x32/apps/dusk.png b/platforms/freedesktop/32x32/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/32x32/apps/dusk.png rename to platforms/freedesktop/32x32/apps/dusklight.png diff --git a/platforms/freedesktop/48x48/apps/dusk.png b/platforms/freedesktop/48x48/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/48x48/apps/dusk.png rename to platforms/freedesktop/48x48/apps/dusklight.png diff --git a/platforms/freedesktop/512x512/apps/dusk.png b/platforms/freedesktop/512x512/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/512x512/apps/dusk.png rename to platforms/freedesktop/512x512/apps/dusklight.png diff --git a/platforms/freedesktop/64x64/apps/dusk.png b/platforms/freedesktop/64x64/apps/dusklight.png similarity index 100% rename from platforms/freedesktop/64x64/apps/dusk.png rename to platforms/freedesktop/64x64/apps/dusklight.png diff --git a/platforms/freedesktop/dusk.desktop b/platforms/freedesktop/dusk.desktop deleted file mode 100644 index b052eac6ef..0000000000 --- a/platforms/freedesktop/dusk.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Dusk -GenericName=Dusk -Comment=The Legend of Zelda: Twilight Princess -Exec=dusk -Icon=dusk -Terminal=false -Type=Application -Categories=Game; diff --git a/platforms/freedesktop/dusklight.desktop b/platforms/freedesktop/dusklight.desktop new file mode 100644 index 0000000000..4f6ba034a9 --- /dev/null +++ b/platforms/freedesktop/dusklight.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Dusklight +GenericName=Dusklight +Comment=PC port of a classic adventure game +Exec=dusklight +Icon=dusklight +Terminal=false +Type=Application +Categories=Game; diff --git a/platforms/macos/Dusk.icns b/platforms/macos/Dusklight.icns similarity index 100% rename from platforms/macos/Dusk.icns rename to platforms/macos/Dusklight.icns diff --git a/platforms/macos/Info.plist.in b/platforms/macos/Info.plist.in index aee7393ee8..46c9641c17 100644 --- a/platforms/macos/Info.plist.in +++ b/platforms/macos/Info.plist.in @@ -13,7 +13,7 @@ CFBundleExecutable ${MACOSX_BUNDLE_EXECUTABLE_NAME} CFBundleIconFile - Dusk + Dusklight CFBundleIconName Dusk CFBundleIdentifier diff --git a/platforms/windows/dusk.manifest.in b/platforms/windows/dusklight.manifest.in similarity index 100% rename from platforms/windows/dusk.manifest.in rename to platforms/windows/dusklight.manifest.in diff --git a/platforms/windows/dusk.rc.in b/platforms/windows/dusklight.rc.in similarity index 91% rename from platforms/windows/dusk.rc.in rename to platforms/windows/dusklight.rc.in index 343d10046a..a1caac1c40 100644 --- a/platforms/windows/dusk.rc.in +++ b/platforms/windows/dusklight.rc.in @@ -24,9 +24,9 @@ BEGIN VALUE "CompanyName", "@DUSK_COMPANY_NAME@\0" VALUE "FileDescription", "@DUSK_FILE_DESCRIPTION@\0" VALUE "FileVersion", "@DUSK_VERSION_STRING@\0" - VALUE "InternalName", "dusk\0" + VALUE "InternalName", "dusklight\0" VALUE "LegalCopyright", "@DUSK_COPYRIGHT@\0" - VALUE "OriginalFilename", "dusk.exe\0" + VALUE "OriginalFilename", "dusklight.exe\0" VALUE "ProductName", "@DUSK_PRODUCT_NAME@\0" VALUE "ProductVersion", "@DUSK_VERSION_STRING@\0" END diff --git a/res/logo-mascot.png b/res/logo-mascot.png deleted file mode 100644 index 9f9a5d1ace..0000000000 Binary files a/res/logo-mascot.png and /dev/null differ diff --git a/res/logo.png b/res/logo.png index 34f1d59cd0..cce6ad4489 100644 Binary files a/res/logo.png and b/res/logo.png differ diff --git a/res/rml/prelaunch.rcss b/res/rml/prelaunch.rcss index 707d8b8234..f5d7240d56 100644 --- a/res/rml/prelaunch.rcss +++ b/res/rml/prelaunch.rcss @@ -65,10 +65,10 @@ menu { right: auto; top: 50%; transform: translateY(-50%); - /* Scale based on a reference screen width, 428/1216 */ - width: 35.230264vw; + /* Scale based on a reference screen width, 856/1216 */ + width: 70.394736vw; min-width: 428dp; - max-width: 856dp; + max-width: 50vw; height: auto; display: flex; flex-direction: column; @@ -83,9 +83,8 @@ body.mirrored menu { hero { display: flex; flex-direction: column; - justify-content: center; align-items: flex-start; - gap: 8dp; + gap: 4dp; } body.mirrored hero { @@ -96,19 +95,19 @@ hero img { width: 100%; } -.eyebrow { +eyebrow { font-family: "Alegreya SC"; font-size: 32dp; } @media (min-width: 1216dp) { - .eyebrow { + eyebrow { /* Same logic as .menu, 32/1216 */ font-size: 2.631579vw; } } -.eyebrow span { +eyebrow span { font-weight: bold; } @@ -437,7 +436,7 @@ body.animate-in .intro-item { decorator: horizontal-gradient(#FEE685FF #FEE68500); } - .eyebrow { + eyebrow { display: none; } diff --git a/src/dusk/discord_presence.cpp b/src/dusk/discord_presence.cpp index 6b2c7c912b..cad28148bc 100644 --- a/src/dusk/discord_presence.cpp +++ b/src/dusk/discord_presence.cpp @@ -81,7 +81,7 @@ void update_presence() { rpc::Presence presence{}; presence.startTimestamp = g_startTime; presence.largeImageKey = "icon"; - presence.largeImageText = "Dusk"; + presence.largeImageText = "Dusklight"; if (IsGameLaunched) { const char* stageName = dComIfGp_getLastPlayStageName(); diff --git a/src/dusk/imgui/ImGuiConsole.cpp b/src/dusk/imgui/ImGuiConsole.cpp index de62596308..a6ebb8d31e 100644 --- a/src/dusk/imgui/ImGuiConsole.cpp +++ b/src/dusk/imgui/ImGuiConsole.cpp @@ -309,13 +309,13 @@ namespace dusk { ImGui::Image(ImGuiEngine::duskLogo, ImVec2{width, iconSize}); } else { ImGui::PushFont(ImGuiEngine::fontExtraLarge); - ImGuiTextCenter("Dusk"); + ImGuiTextCenter("Dusklight"); ImGui::PopFont(); } ImGui::PushFont(ImGuiEngine::fontLarge); ImGuiTextCenter("Failed to initialize any graphics backend."); ImGuiTextCenter("\nYour system may be misconfigured, or your hardware may not support the required versions of any of the available backends."); - ImGuiTextCenter("\nA clean reinstall of Dusk may help. For further assistance, please visit #tech-support on the Twilit Realm Discord server."); + ImGuiTextCenter("\nA clean reinstall of Dusklight may help. For further assistance, please visit #tech-support on the Twilit Realm Discord server."); const auto& style = ImGui::GetStyle(); const auto retrySize = ImGui::CalcTextSize("Retry (Auto backend)"); const auto quitSize = ImGui::CalcTextSize("Quit"); diff --git a/src/dusk/imgui/ImGuiEngine.cpp b/src/dusk/imgui/ImGuiEngine.cpp index 3e742de853..4b6a7fb531 100644 --- a/src/dusk/imgui/ImGuiEngine.cpp +++ b/src/dusk/imgui/ImGuiEngine.cpp @@ -219,7 +219,7 @@ void ImGuiEngine_AddTextures() { ImGuiEngine::orgIcon = AddTexture("org-icon.png"); } if (ImGuiEngine::duskLogo == 0) { - ImGuiEngine::duskLogo = AddTexture("logo-mascot.png"); + ImGuiEngine::duskLogo = AddTexture("logo.png"); } } } // namespace dusk diff --git a/src/dusk/logging.cpp b/src/dusk/logging.cpp index 1c0a6ecbdb..1f20d1895e 100644 --- a/src/dusk/logging.cpp +++ b/src/dusk/logging.cpp @@ -95,7 +95,7 @@ std::string MakeTimestampedLogName() { #endif std::array buffer{}; - std::strftime(buffer.data(), buffer.size(), "dusk-%Y%m%d-%H%M%S.log", &localTime); + std::strftime(buffer.data(), buffer.size(), "dusklight-%Y%m%d-%H%M%S.log", &localTime); return buffer.data(); } diff --git a/src/dusk/main.cpp b/src/dusk/main.cpp index d88594248a..a35f695b50 100644 --- a/src/dusk/main.cpp +++ b/src/dusk/main.cpp @@ -44,7 +44,7 @@ bool RestartProcess(int argc, char* argv[]) { if (!CreateProcessW(nullptr, commandLine.data(), nullptr, nullptr, FALSE, 0, nullptr, nullptr, &startupInfo, &processInfo)) { - fprintf(stderr, "Failed to restart Dusk: CreateProcessW error %lu\n", GetLastError()); + fprintf(stderr, "Failed to restart Dusklight: CreateProcessW error %lu\n", GetLastError()); return false; } @@ -86,7 +86,7 @@ bool RestartProcess(int argc, char* argv[]) { } if (executablePath.empty()) { - fprintf(stderr, "Failed to restart Dusk: unable to resolve executable path\n"); + fprintf(stderr, "Failed to restart Dusklight: unable to resolve executable path\n"); return false; } @@ -105,7 +105,7 @@ bool RestartProcess(int argc, char* argv[]) { execArgv.push_back(nullptr); execv(executablePath.c_str(), execArgv.data()); - fprintf(stderr, "Failed to restart Dusk: execv failed: %s\n", std::strerror(errno)); + fprintf(stderr, "Failed to restart Dusklight: execv failed: %s\n", std::strerror(errno)); return false; #endif } diff --git a/src/dusk/ui/menu_bar.cpp b/src/dusk/ui/menu_bar.cpp index ea791d745b..787691e506 100644 --- a/src/dusk/ui/menu_bar.cpp +++ b/src/dusk/ui/menu_bar.cpp @@ -98,7 +98,7 @@ MenuBar::MenuBar() : Document(kDocumentSource), mRoot(mDocument->GetElementById( mTabBar->set_active_tab(-1); const auto dismiss = [](Modal& modal) { modal.pop(); }; push(std::make_unique(Modal::Props{ - .title = "Quit Dusk", + .title = "Quit Dusklight", .bodyRml = "Unsaved progress will be lost.", .actions = { diff --git a/src/dusk/ui/prelaunch.cpp b/src/dusk/ui/prelaunch.cpp index 03ad57a3bb..ffa8c8495f 100644 --- a/src/dusk/ui/prelaunch.cpp +++ b/src/dusk/ui/prelaunch.cpp @@ -43,8 +43,8 @@ const Rml::String kDocumentSource = R"RML( -
Twilit Realm presents
- + Twilit Realm presents +
@@ -127,7 +127,7 @@ struct UpdateCheckTask { UpdateCheckTask() { worker = std::thread([this] { try { - result = update_check::check_latest_github_release("TwilitRealm", "dusk"); + result = update_check::check_latest_github_release("TwilitRealm", "dusklight"); } catch (const std::exception& e) { result = { .status = update_check::Status::Failed, @@ -287,12 +287,12 @@ std::string get_error_msg(iso::ValidationError error) { case iso::ValidationError::InvalidImage: return "The selected file is not a valid disc image."; case iso::ValidationError::WrongGame: - return "The selected game is not supported by Dusk."; + return "The selected game is not supported by Dusklight."; case iso::ValidationError::WrongVersion: - return "Dusk currently supports GameCube USA and PAL disc images only."; + return "Dusklight currently supports GameCube USA and PAL disc images only."; case iso::ValidationError::Canceled: - return "Disc verification was canceled. Dusk cannot guarantee the selected disc image " - "is compatible."; + return "Disc verification was canceled. Dusklight cannot guarantee the selected disc " + "image is compatible."; case iso::ValidationError::HashMismatch: return "The selected disc image did not pass hash verification. It may be corrupt or " "modified."; @@ -798,7 +798,7 @@ void Prelaunch::show() { "A restart is required to apply selected options.

Restart now to " "apply them immediately?" : "A restart is required to apply selected options.

Close and reopen " - "Dusk to apply them.", + "Dusklight to apply them.", .actions = std::move(actions), .onDismiss = dismiss, })); diff --git a/src/dusk/ui/preset.cpp b/src/dusk/ui/preset.cpp index 9d8e4e957e..1f96cc0593 100644 --- a/src/dusk/ui/preset.cpp +++ b/src/dusk/ui/preset.cpp @@ -59,7 +59,7 @@ PresetWindow::PresetWindow() : WindowSmall("modal", "modal-dialog") { auto* title = append(header, "div"); title->SetClass("modal-title", true); - title->SetInnerRML("Welcome to Dusk"); + title->SetInnerRML("Welcome to Dusklight"); auto* headIcon = append(header, "icon"); headIcon->SetClass("celebration", true); diff --git a/src/dusk/ui/reporting.cpp b/src/dusk/ui/reporting.cpp index e32a9cbc20..98862d8ed5 100644 --- a/src/dusk/ui/reporting.cpp +++ b/src/dusk/ui/reporting.cpp @@ -26,7 +26,7 @@ CrashReportWindow::CrashReportWindow() : WindowSmall("modal", "modal-dialog") { auto* intro = append(mDialog, "div"); intro->SetClass("modal-body", true); intro->SetInnerRML( - "Dusk can automatically send crash reports to the developers. Crash reports contain the " + "Dusklight can automatically send crash reports to the developers. Crash reports contain the " "following:" "
• Operating system version
• CPU architecture
• GPU model & driver version" "
• File paths (may include account username)
• Stack trace

" @@ -43,7 +43,7 @@ CrashReportWindow::CrashReportWindow() : WindowSmall("modal", "modal-dialog") { static constexpr OptionInfo kOptions[] = { {"Enable", - "Send crash reports to Dusk developers. Reports will include the information described " + "Send crash reports to Dusklight developers. Reports will include the information described " "above.", [] { crash_reporting::set_consent(true); }}, {"Disable", diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index edafc826be..aab7b32b74 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -198,7 +198,7 @@ const Rml::String kShadowResolutionHelpText = "Configure the shadow-map resolution. Higher values improve shadow quality but increase GPU " "and memory usage."; const Rml::String kBloomHelpText = - "Configure the post-processing bloom effect. Classic uses the original bloom pass; Dusk uses " + "Configure the post-processing bloom effect. Classic uses the original bloom pass; Dusklight uses " "a higher-quality bloom pass."; const Rml::String kBloomBrightnessHelpText = "Configure bloom intensity. Higher values make bright areas glow more strongly."; @@ -347,7 +347,7 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { }) .on_pressed([] { open_iso_picker(); }), rightPane, [](Pane& pane) { - pane.add_rml("Set the disc image that Dusk uses to launch the game.

" + pane.add_rml("Set the disc image that Dusklight uses to launch the game.

" "Changes require a restart."); }); leftPane.register_control( @@ -770,8 +770,8 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { }); config_bool_select(leftPane, rightPane, getSettings().audio.menuSounds, { - .key = "Dusk Menu Sounds", - .helpText = "Play sound effects when navigating the Dusk menu.", + .key = "Dusklight Menu Sounds", + .helpText = "Play sound effects when navigating the Dusklight menu.", }); leftPane.add_section("Tweaks"); @@ -954,7 +954,7 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { auto& leftPane = add_child(content, Pane::Type::Controlled); auto& rightPane = add_child(content, Pane::Type::Uncontrolled); - leftPane.add_section("Dusk"); + leftPane.add_section("Dusklight"); #if DUSK_CAN_OPEN_DATA_FOLDER leftPane.register_control( leftPane.add_button("Open Data Folder").on_pressed([] { @@ -963,7 +963,7 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { }), rightPane, [](Pane& pane) { pane.add_text( - "Open the folder where Dusk stores settings, saves, logs, texture " + "Open the folder where Dusklight stores settings, saves, logs, texture " "replacements, and other app data."); }); #endif @@ -1045,7 +1045,7 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { }); leftPane.register_control(crashReporting, rightPane, [](Pane& pane) { pane.clear(); - pane.add_rml("Dusk can automatically send crash reports to the developers. Crash " + pane.add_rml("Dusklight can automatically send crash reports to the developers. Crash " "reports contain the following:
• Operating system version
• CPU " "architecture
• GPU model & driver version
• File paths (may " "include account username)
• Stack trace"); @@ -1053,8 +1053,8 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { #endif config_bool_select(leftPane, rightPane, getSettings().backend.skipPreLaunchUI, { - .key = "Skip Dusk Main Menu", - .helpText = "When starting Dusk, skip the main menu and boot straight into the " + .key = "Skip Dusklight Main Menu", + .helpText = "When starting Dusklight, skip the main menu and boot straight into the " "game if a disc image is available.", }); config_bool_select(leftPane, rightPane, getSettings().backend.showPipelineCompilation, @@ -1065,7 +1065,7 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { config_bool_select(leftPane, rightPane, getSettings().backend.checkForUpdates, { .key = "Check for Updates", - .helpText = "Checks GitHub releases for a new Dusk version on startup.

" + .helpText = "Checks GitHub releases for a new Dusklight version on startup.

" "No personal information is transmitted or collected.", }); config_bool_select(leftPane, rightPane, getSettings().game.pauseOnFocusLost, diff --git a/src/dusk/update_check.cpp b/src/dusk/update_check.cpp index c1e332c432..737facc027 100644 --- a/src/dusk/update_check.cpp +++ b/src/dusk/update_check.cpp @@ -335,7 +335,7 @@ Result check_latest_github_release(std::string_view owner, std::string_view repo if (!currentVersion) { return { .status = Status::Failed, - .message = fmt::format("Failed to parse Dusk version '{}'", DUSK_WC_DESCRIBE), + .message = fmt::format("Failed to parse Dusklight version '{}'", DUSK_WC_DESCRIBE), .latest = std::move(latest), }; } @@ -343,7 +343,7 @@ Result check_latest_github_release(std::string_view owner, std::string_view repo const bool updateAvailable = compare_version(*latestVersion, *currentVersion) > 0; return { .status = updateAvailable ? Status::UpdateAvailable : Status::UpToDate, - .message = updateAvailable ? "Update available" : "Dusk is up to date", + .message = updateAvailable ? "Update available" : "Dusklight is up to date", .latest = std::move(latest), }; } diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index c93d040081..f5d5c2c1bb 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -664,7 +664,7 @@ int game_main(int argc, char* argv[]) { cxxopts::ParseResult parsed_arg_options; try { - cxxopts::Options arg_options("Dusk", "PC Port of The Legend of Zelda: Twilight Princess"); + cxxopts::Options arg_options("Dusklight", "PC Port of a classic adventure game"); arg_options.add_options() ("l,log-level", "Log level from " + std::to_string(AuroraLogLevel::LOG_DEBUG) + " to " + std::to_string(AuroraLogLevel::LOG_FATAL), cxxopts::value()->default_value("0")) @@ -731,7 +731,7 @@ int game_main(int argc, char* argv[]) { #endif VISetWindowTitle( - fmt::format("Dusk {} [{}]", DUSK_WC_DESCRIBE, dusk::backend_name(auroraInfo.backend)) + fmt::format("Dusklight {} [{}]", DUSK_WC_DESCRIBE, dusk::backend_name(auroraInfo.backend)) .c_str()); if (dusk::getSettings().video.lockAspectRatio) { @@ -764,7 +764,7 @@ int game_main(int argc, char* argv[]) { dusk::ui::push_document(std::make_unique(), true, true); dusk::ui::push_document(std::make_unique(), false); - // Invalidate a bad saved isoPath so that Dusk can't get blocked from starting up. + // Invalidate a bad saved isoPath so that Dusklight can't get blocked from starting up. // This is only a metadata check; full hash verification is handled by the prelaunch UI. bool forcePreLaunchUI = false; bool saveConfigBeforePrelaunch = false; diff --git a/version.h.in b/version.h.in index 51297bcd46..6d94ce406a 100644 --- a/version.h.in +++ b/version.h.in @@ -18,7 +18,7 @@ #endif #define DUSK_PLATFORM_NAME "@PLATFORM_NAME@" -#define DUSK_DLPACKAGE "dusk-@DUSK_WC_DESCRIBE@-" DUSK_PLATFORM_NAME "-" DUSK_ARCH +#define DUSK_DLPACKAGE "dusklight-@DUSK_WC_DESCRIBE@-" DUSK_PLATFORM_NAME "-" DUSK_ARCH #define DUSK_SENTRY_DSN "@DUSK_SENTRY_DSN@" #define DUSK_SENTRY_ENVIRONMENT "@DUSK_SENTRY_ENVIRONMENT@"