First off, I want to thank all the contributors that helped out with this release, they are the reason this update is as big as it is, it couldn't have been done without their help. This will be the most feature rich and impactful update so far!
The change log for this one is huge, here is a summary of the user impacting changes:
- Faster Initial loading of game files
- Launcher will show when updates are available
- Developer console (Press "~" then type "f2" to get started)
- Initial widescreen support
- Add a Quit item to the main menu
- Fixed the frame limiter so things are faster
- Improved Performance by 40% - 100%
- Add a host FPS limit to the launcher
- Show Keyboard and mouse inside Fable II prompts
- Automatically swap between icon types in real time
- Keep the GPU at most one frame behind to stop the flicker
- Photo mode
- A ton of unit tests to help support future updates
- 2 Controller Black Screen Fix
- Direct mouse camera control
Images of whats changed
What's Changed
- Native zlib-ng inflate and native memcpy/memmove/memset by @Locme in #103
- Run source-only tests in CI by @Jack-Pettersson in #105
- Stop STFS paths escaping the output folder by @Jack-Pettersson in #106
- Bring staged config back in line with the embedded template by @Jack-Pettersson in #107
- Verify the SDK download before extracting it by @Jack-Pettersson in #110
- Pin zlib-ng to a commit by @Jack-Pettersson in #111
- Fix the SDK setup success messages by @Jack-Pettersson in #113
- Add a build.cmd package step for release zips by @Jack-Pettersson in #114
- Add a security policy by @Jack-Pettersson in #112
- Stop ingoring scripts by @himdo in #116
- Stop ignoring new scripts outside the repo root by @Jack-Pettersson in #108
- Run codegen automatically on a first build by @Jack-Pettersson in #119
- Add short player instructions to the README by @Jack-Pettersson in #121
- Leave dir.manifest out of the release zip by @Jack-Pettersson in #124
- Correct out-of-date README details by @Jack-Pettersson in #109
- Stop overrides depending on generated file numbers by @Jack-Pettersson in #118
- Check for pefile before the build starts by @Jack-Pettersson in #120
- Turn PE cleaning back on for Release builds by @Jack-Pettersson in #125
- Show a button in the launcher when a newer release is out by @Jack-Pettersson in #123
- Add a launcher defaults test and reorganize the Python tests by @delta4o in #129
- Developer console and fit game to window (widescreen) by @Locme in #127
- Fix include paths for the native keyboard map test by @Jack-Pettersson in #137
- Add a Quit item to the main menu by @Jack-Pettersson in #136
- Drop the unused font capture from the glyph lookup hook by @Jack-Pettersson in #138
- Hash default.xex at most once per changed file by @Jack-Pettersson in #140
- Only run the F5 Lua script while the game is focused by @Jack-Pettersson in #141
- Ignore mapped keys and mouse buttons while the debug menu is open by @Jack-Pettersson in #142
- Accept whole numbers for decimal config keys by @Jack-Pettersson in #145
- Replace the frame limiter wait's broken pause with PAUSE spins by @Jack-Pettersson in #143
- Turn on narrower render target transfers by @Jack-Pettersson in #150
- Turn on CPU terrain tessellation and skinning by @Jack-Pettersson in #149
- Stop refreshing all GPU memory every frame by @Jack-Pettersson in #151
- Give the console pad its own input device id by @Jack-Pettersson in #152
- Add tests for how the state command for fable controls builds its request by @delta4o in #131
- Add tests for the hotfunc override generator by @delta4o in #132
- Add tests for the recomp patch step by @delta4o in #133
- Add tests for the manifest collision check and the PE normalizer by @delta4o in #134
- Build the ReXGlue SDK from the fork instead of downloading it by @Jack-Pettersson in #130
- Make the alloc-watch monitor opt-in by @Jack-Pettersson in #139
- Keep the manifest self-heal from throwing on a bad entry by @Jack-Pettersson in #146
- Pin the SDK to current main with the memexport fix and remove the SDK patch files by @Jack-Pettersson in #148
- Add a host FPS limit to the launcher by @Jack-Pettersson in #135
- Show keyboard and mouse bindings in Fable II prompts by @BorisThoris in #154
- Feature/state input fixes by @delta4o in #153
- Test the remaining fable2_control.py commands and its connection by @delta4o in #155
- Test the SDK prepare step's checkout checks by @delta4o in #156
- Test the SDK staging record, missing symbols and the codegen stamp by @delta4o in #157
- Test the SDK prepare step with libmspack as a submodule, and a second run by @delta4o in #159
- Test normalize_pe.py's main() and its skip for MZ files without a PE header by @delta4o in #161
- Test more manifest-collision edge cases and the default DLL search by @delta4o in #162
- Test the game-version catalogue's default profile, CMake profiles and --check by @delta4o in #163
- Keep the GPU at most one frame behind to stop the flicker by @Jack-Pettersson in #158
- Test the release packager's missing-input failures and old dist cleanup by @delta4o in #160
- Test that fable2_control.py reports timeouts and replies that aren't JSON by @delta4o in #165
- Test the libmspack symlink fallback for the renderer SDK by @delta4o in #170
- Test the launch plan's paths and refusals, and the game folder check by @delta4o in #171
- Test that add_version_resource.py grafts version info into a DLL by @delta4o in #172
- update SDK by @himdo in #179
- Added HotSwappable Buttons Between Controller and Keyboard by @himdo in #178
- Test that the game's config reader matches the staged config by @delta4o in #164
- DRAFT: Run the Python tests with pytest, and add tests for the release and launcher tools by @delta4o in #166
- Restyle part 2: Python tests as pytest-describe specs by @delta4o in #174
- Photo mode: native menu, game button icons, colour filters, Guide shortcut by @Locme in #169
- Fixed Unit tests from photomode by @himdo in #182
- Direct mouse camera: turn by a fixed angle per count, no stick top speed or coast by @delta4o in #177
- Photo mode: fix the Lua pump crash (RunScript on the world thread), F5 too by @Locme in #184
- git ignore the keyboard prompts bin as that contains assets by @himdo in #185
New Contributors
- @Jack-Pettersson made their first contribution in #105
- @delta4o made their first contribution in #129
- @BorisThoris made their first contribution in #154
Full Changelog: 1.5.1_tag...1.6.0