Repository navigation
ui: Add automatic update notification and allow playing with previous game code build (Fixes #606) - #653
Open
jfpaardoo wants to merge 1 commit into
Open
ui: Add automatic update notification and allow playing with previous game code build (Fixes #606)#653jfpaardoo wants to merge 1 commit into
jfpaardoo wants to merge 1 commit into
Conversation
… game code build (Fixes Revivedx#606)
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.
Description
This PR addresses automatic update notifications and avoids forced 15–20 minute game recompilations when updating Savage Wind (Fixes #606):
Automatic update check (
runtime/updater.c,runtime/updater.h):updater_init()) that queries GitHub Releases (https://api.github.com/repos/Revivedx/SavageWindRecomp/releases?per_page=1).wininet.dll(InternetOpenA,InternetOpenUrlA,InternetReadFile) on Windows, and invokescurlon Linux/macOS.tag_namewithSAVAGEWIND_VERSION(handling semantic versioningvprefixes and prerelease versions).Update available: <version>) right above the version watermark, which opens the release page directly viaSDL_OpenURL().Game code reuse without forced recompilation (
runtime/gamelib.c,runtime/gamelib.h,runtime/ui/launcher.mm):take_sites()inruntime/gamelib.cwas already designed to accept older game builds as long as all required symbols are present and clear optional ones. However, a strictt->id == gamelib_id()equality previously blocked loading and forced full re-extraction/recompilation even when the ABI was identical.gamelib_abi_compatible()andgamelib_exact_id(). When an existingswgamelibrary matchesGAMELIB_ABIand passestake_sites(), the game can be played immediately without forcing the player to recompile.SAVAGEWIND_REUSE_GAMELIB=0.Game files ready (previous game build).) with a hint that players can rebuild anytime under Game Files if they wish to apply the latest patches.runtime/ui/i18n/*.inc) updated and verified withtools/i18n_check.py.Validation
make runtime-objs -j8compiled cleanly.make test-pc-controlspassed.make test-actionspassed.python tools/i18n_check.pypassed with 0 missing, 0 unused across all 13 languages.git diff --checkpassed cleanly.