From f500ac3a4a6ffcefe881536e06f4bf809de59c12 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Wed, 5 Mar 2025 18:31:53 -0600 Subject: [PATCH] Fixed some compilation errors --- CMakeLists.txt | 27 +++++++++++++++++++++++++++ nx-logo.jpg | Bin 0 -> 27576 bytes src/port/Engine.cpp | 14 ++++++++++++++ src/port/extractor/GameExtractor.cpp | 6 ++++-- src/port/ui/ImguiUI.cpp | 27 ++++++++++++++++----------- 5 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 nx-logo.jpg diff --git a/CMakeLists.txt b/CMakeLists.txt index f949fa0b..fb66a28c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,10 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment ve # Set the C++ standard and enable the MSVC parallel build option set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use") set(CMAKE_C_STANDARD 11 CACHE STRING "The C standard to use") +set(PROJECT_TEAM "Lywx & YoshiCrystal") +set(PROJECT_VERSION_MAJOR 2) +set(PROJECT_VERSION_MINOR 0) +set(PROJECT_VERSION_PATCH 0) #add_compile_options(-fsanitize=address) #add_link_options(-fsanitize=address) @@ -69,6 +73,20 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") endif() endif() +################################################################################ +# Global configuration types +################################################################################ +if (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") +set(CMAKE_C_FLAGS_DEBUG "-g -ffast-math -DDEBUG") +set(CMAKE_CXX_FLAGS_DEBUG "-g -ffast-math -DDEBUG") +set(CMAKE_C_FLAGS_RELEASE "-O3 -ffast-math -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math -DNDEBUG") +else() +set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") +set(CMAKE_OBJCXX_FLAGS_RELEASE "-O2 -DNDEBUG") +endif() + # Set game compilation version set(VERSION us) set(USE_NETWORKING OFF) @@ -309,8 +327,16 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") "Vorbis::vorbisfile" ) elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") + find_package(SDL2) + find_package(Vorbis REQUIRED) + link_libraries(Vorbis::vorbisfile) + find_package(Ogg REQUIRED) + link_libraries(Ogg::ogg) set(ADDITIONAL_LIBRARY_DEPENDENCIES -lglad + SDL2::SDL2 + "Ogg::ogg" + "Vorbis::vorbisfile" ) elseif(CMAKE_SYSTEM_NAME STREQUAL "CafeOS") set(ADDITIONAL_LIBRARY_DEPENDENCIES @@ -360,6 +386,7 @@ nx_generate_nacp(${PROJECT_NAME}.nacp nx_create_nro(${PROJECT_NAME} NACP ${PROJECT_NAME}.nacp + ICON ${CMAKE_CURRENT_SOURCE_DIR}/nx-logo.jpg ) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.nro DESTINATION . COMPONENT ${PROJECT_NAME}) diff --git a/nx-logo.jpg b/nx-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d6fea2c71ff10a9adaad0bb9f4995203c67d12b GIT binary patch literal 27576 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 EFI{v`kpKVy literal 0 HcmV?d00001 diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp index dcedb08d..e4d5b4bf 100644 --- a/src/port/Engine.cpp +++ b/src/port/Engine.cpp @@ -44,6 +44,10 @@ #include #include +#ifdef __SWITCH__ +#include +#endif + namespace fs = std::filesystem; extern "C" { @@ -59,6 +63,11 @@ std::vector MemoryPool; GameEngine* GameEngine::Instance; GameEngine::GameEngine() { +#ifdef __SWITCH__ + Ship::Switch::Init(Ship::PreInitPhase); + Ship::Switch::Init(Ship::PostInitPhase); +#endif + std::vector archiveFiles; const std::string main_path = Ship::Context::GetPathRelativeToAppDirectory("sf64.o2r"); const std::string assets_path = Ship::Context::GetPathRelativeToAppDirectory("starship.o2r"); @@ -159,9 +168,11 @@ GameEngine::GameEngine() { this->context->Init(archiveFiles, {}, 3, { 32000, 1024, 1680 }, window, controlDeck); +#ifndef __SWITCH__ Ship::Context::GetInstance()->GetLogger()->set_level( (spdlog::level::level_enum) CVarGetInteger("gDeveloperTools.LogLevel", 1)); Ship::Context::GetInstance()->GetLogger()->set_pattern("[%H:%M:%S.%e] [%s:%#] [%l] %v"); +#endif auto loader = context->GetResourceManager()->GetResourceLoader(); loader->RegisterResourceFactory(std::make_shared(), RESOURCE_FORMAT_BINARY, @@ -289,6 +300,9 @@ void GameEngine::Destroy() { free(ptr); } MemoryPool.clear(); +#ifdef __SWITCH__ + Ship::Switch::Exit(); +#endif } void GameEngine::StartFrame() const { diff --git a/src/port/extractor/GameExtractor.cpp b/src/port/extractor/GameExtractor.cpp index 4b325a33..f8392bc8 100644 --- a/src/port/extractor/GameExtractor.cpp +++ b/src/port/extractor/GameExtractor.cpp @@ -4,8 +4,10 @@ #include "Context.h" #include "spdlog/spdlog.h" -#include "portable-file-dialogs.h" #include +#if !defined(__IOS__) && !defined(__ANDROID__) && !defined(__SWITCH__) +#include "portable-file-dialogs.h" +#endif std::unordered_map mGameList = { { "d8b1088520f7c5f81433292a9258c1184afa1457", "Star Fox 64 (U) (V1.0)" }, @@ -21,7 +23,7 @@ std::unordered_map mGameList = { }; bool GameExtractor::SelectGameFromUI() { -#if !defined(__IOS__) || !defined(__ANDROID__) || !defined(__SWITCH__) +#if !defined(__IOS__) && !defined(__ANDROID__) && !defined(__SWITCH__) auto selection = pfd::open_file("Select a file", ".", { "N64 Roms", "*.z64" }).result(); if (selection.empty()) { diff --git a/src/port/ui/ImguiUI.cpp b/src/port/ui/ImguiUI.cpp index b870dded..22b5b167 100644 --- a/src/port/ui/ImguiUI.cpp +++ b/src/port/ui/ImguiUI.cpp @@ -14,6 +14,11 @@ #include "port/notification/notification.h" #include "utils/StringHelper.h" +#ifdef __SWITCH__ +#include +#include +#endif + extern "C" { #include "sys.h" #include @@ -192,20 +197,10 @@ void DrawSettingsMenu(){ UIWidgets::Spacer(0); -#ifndef __SWITCH__ UIWidgets::CVarCheckbox("Menubar Controller Navigation", "gControlNav", { .tooltip = "Allows controller navigation of the SOH menu bar (Settings, Enhancements,...)\nCAUTION: This will disable game inputs while the menubar is visible.\n\nD-pad to move between items, A to select, and X to grab focus on the menu bar" }); -#endif - // UIWidgets::CVarCheckbox("Show Inputs", "gInputEnabled", { - // .tooltip = "Shows currently pressed inputs on the bottom right of the screen" - // }); - if (CVarGetInteger("gInputEnabled", 0)) { - UIWidgets::CVarSliderFloat("Input Scale", "gInputScale", 1.0f, 3.0f, 1.0f, { - .tooltip = "Sets the on screen size of the displayed inputs from the Show Inputs setting", - .format = "%.1fx", - }); - } + UIWidgets::CVarCheckbox("Invert Y Axis", "gInvertYAxis",{ .tooltip = "Inverts the Y axis for controlling vehicles" }); @@ -648,6 +643,16 @@ void DrawDebugMenu() { Ship::Context::GetInstance()->GetLogger()->set_level((spdlog::level::level_enum)CVarGetInteger("gDeveloperTools.LogLevel", 1)); } +#ifdef __SWITCH__ + if (UIWidgets::CVarCombobox("Switch CPU Profile", "gSwitchPerfMode", SWITCH_CPU_PROFILES, { + .tooltip = "Switches the CPU profile to a different one", + .defaultIndex = (int)Ship::SwitchProfiles::STOCK + })) { + SPDLOG_INFO("Profile:: %s", SWITCH_CPU_PROFILES[CVarGetInteger("gSwitchPerfMode", (int)Ship::SwitchProfiles::STOCK)]); + Ship::Switch::ApplyOverclock(); + } +#endif + UIWidgets::WindowButton("Gfx Debugger", "gGfxDebuggerEnabled", GameUI::mGfxDebuggerWindow, { .tooltip = "Enables the Gfx Debugger window, allowing you to input commands, type help for some examples" });