Optimize Switch port performance, logging, and build process#185
Open
wel97459 wants to merge 8 commits into
Open
Optimize Switch port performance, logging, and build process#185wel97459 wants to merge 8 commits into
wel97459 wants to merge 8 commits into
Conversation
… fixes libultraship: - Fix inverted frame limiter on Switch (SyncFramerateWithTime before swap) - Cap internal resolution multiplier to 1.5x for stable 60fps in docked - Add switch.cmake with GLES3/glad/Switch-specific dependencies Port layer: - Buffer SD-card logging in 64KB RAM ring to eliminate fflush stalls - Fix CPU boost for modern firmware (appletSetCpuBoostMode >= 8.0.0) - Disable hot-path display list/frame logs on Switch - Switch platform implementation (display sizing, CPU boost, system fonts) - Coroutine support for Switch (ARM64 context switching) Build system: - Add -O3 -mtune=cortex-a57 -ffast-math -flto for Switch game code - Guard TORCH_EXECUTABLE copy in POST_BUILD for Switch (cmake 4.3.0 compat) - Bundle shader_cache/ directory in Switch deployment target
- .gitignore: exclude *.elf, *.nro, switch_sd/ build artifacts - README: add Nintendo Switch build section with prerequisites and instructions - scripts/build-switch.sh: one-command Switch build pipeline - docs/switch_port.md: Switch-specific port architecture reference
- Organized namespace declarations for clarity. - Enhanced atomic flag management for update checks and downloads. - Added OS-specific handling for update checks and downloads. - Introduced new functions for opening the release page and retrieving update statuses. - Improved string handling with mutex locks for thread safety. Add static variable for download submission count in gameloop.cpp - Introduced sDLSubmitCount to track the number of download submissions. Update build-switch.sh to include devkitPro in PATH - Added export command to ensure devkitPro toolchain is accessible during the build process.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds support for building and deploying the project on the Nintendo Switch, including cross-compilation, packaging, and platform-specific controller fixes. It introduces new CMake logic for Switch builds, updates documentation with detailed Switch instructions, and resolves a Switch-specific multiplayer input bug. The submodule for
decompis also updated.Nintendo Switch platform support:
CMakeLists.txt, including ARM64 cross-compilation, aggressive optimization flags, and packaging steps to generate.nrofiles using devkitPro tools (nacptool,elf2nro). Switch-specific source files and defines are now included as needed. [1] [2] [3]BundleSwitchCMake target to bundle the.nro, asset files, and deployment helpers into an SD card–ready directory structure for Switch.Build system and deployment improvements:
Documentation:
README.mddetailing prerequisites, build steps, and deployment instructions for the Nintendo Switch port, including both scripted and manual workflows.Bug fixes and submodule updates:
decompsubmodule to the latest commit.