github chrissotraidis/bluewake v0.11.0
BlueWake 0.11.0

41 minutes ago

BlueWake 0.11.0 is the biggest speed-up since the port began: 15 to 20% faster on my Windows PC, about 20% on my Mac and about 10% on my iPad, with the game playing exactly the same. It also fixes save states, shows the first run's steps on every platform, and adds a performance panel on F9. Every version needs your own USA (GZLE01) disc image. The ready-made Windows and Linux builds include the game code translated from my disc; nothing else from the game is included.

Install

Windows: download BlueWake-v0.11.0-windows-x64.zip, unpack the whole folder and run BlueWake.exe. Your saves and settings in %APPDATA%\BlueWake carry over. You need Windows 10 or 11 and a CPU with AVX2. SHA-256 of the zip: 000e165cd780fdf3f17c8cc1359c0e2952f4ebcc18148d1d3134f1f73c5a7c24. BlueWake.exe isn't code-signed, so a new build can be flagged by mistake; check the SHA-256 and see If Windows says it's a virus.

Linux and Steam Deck: download BlueWake-v0.11.0-linux-x86_64.AppImage, make it executable (chmod +x, or Properties › Permissions on the Deck's desktop) and run it. On its first start a setup window asks for your disc image and where to install, and shows each step as it prepares the game. Your saves in ~/.local/share/BlueWake are kept. You need a CPU with AVX2. SHA-256: b72fbb993b84b01c9369d50450bae952c06bece1c2660aa8c31789546f1e4462. To build it yourself instead, see docs/LINUX.md.

iPhone and iPad: build your app with PadMint on an Apple Silicon Mac. It downloads BlueWake-v0.11.0-ios-unsigned.ipa (the app without game code) and adds the game made from your disc. Install it over your current BlueWake to keep your saves. New and experimental: PadMint 0.5.27 or newer can also build it on a Windows PC (x64 or ARM64) with Visual Studio Build Tools; see docs/BUILD_YOUR_OWN.md. A Windows-built copy skips the Mac's training step, so it may run a little slower.

Mac: build it from this release's source: scripts/builder/build.sh "/path/to/GZLE01.iso" --platform macos --out build/macos. Your saves in ~/Library/Application Support/BlueWake are kept.

Android (experimental): build it yourself from your own disc, as docs/ANDROID.md describes. It can now pick your disc image on the phone the first time it starts.

What's new

Much faster (thanks to irregularthanis, with pdale-boop and jkoehler11 measuring)

  • Faster calls inside the game's code, now on by default on Windows, Linux and the Mac: the translated game checks whether it can call its next function directly without a call of its own. +12.9% on my Mac, +12% on Windows and +12 to 16% on Linux desktops (pdale-boop's PCs), +5.5% on a Steam Deck. It's in Settings › Config if you ever want it off.
  • Cheaper floating-point code, the game's graphics commands handed over in runs instead of one at a time, cheaper checks around direct calls, and Clang 22 for Linux builds. Together with the switch above, 0.11.0 is 15 to 20% faster than 0.10.0 at every stop of the benchmark tour on my Windows PC (Ryzen 7 5700U), and about 20% on my Mac (about 10% with the switch off). On my iPad Pro it's 9 to 12% faster.
  • Every one of these keeps the game exactly as it was: the game reached the same state at every checkpoint in every comparison.
  • Game code on large memory pages (Linux, Settings › Config › Performance, off by default): another 3 to 4% on weaker PCs, for about 300 MB more memory.
  • Efficient soft effects (Settings › Config › Performance, off by default): smoke, haze and fog drawn at half size, for less GPU work at high render scales. Good for the Steam Deck.
  • The stage select costs much less while it's on (10% → 3.6% on the Deck).

Fixes

  • Save states keep things working (thanks to pdale-boop): after loading a state, F7's stage select, the saving lock, HD sky and light, and your mod settings all work as they should. A state saved at 21:9 and loaded at 16:9 or 4:3 gets the right widescreen values; some of the HUD comes back at the next scene change.
  • Mac: the app builds again with the new performance panel.

First run and menus (thanks to jkoehler11)

  • The first run shows its steps on every platform: checking the disc, reading it, unpacking the game's 415 modules, saving the settings, each marked as it finishes, with the free space. On Linux it's a proper setup window with an install folder, and Linux builds no longer carry the game files.
  • F9 performance panel: F9 now goes off → frame rate → a full panel (frame times with a graph, CPU, memory, graphics card, temperatures and clocks) → off.
  • Android: pick your disc image on the phone on first run, with the copy checked and verified and a crash's log kept for the next start (Share Its Log), and smoother frame pacing when a frame runs long.

How it was checked

I built 0.11.0 for the Mac (M3 Max) from my own disc and ran the benchmark tour against 0.10.0 from one saved moment, alternating builds: 0.11.0 was faster at every stop in every run (about 10% with faster calls off), and faster calls added 12.9% more, with every run that had it on ahead of every run that had it off. The game reached exactly the same state at every checkpoint with it on and off, and the same game memory as 0.10.0. All 468 places in the stage select ended exactly as in 0.10.0, with my save untouched. On my iPad Pro (M2) the same tour ran 9 to 12% faster than 0.10.0 did. PadMint made a complete iPhone and iPad build of this release on a Mac the way a player's PadMint does, from a fresh copy of the source with Apple's Python.

I built the Windows version on my PC (Ryzen 7 5700U) from my own disc and the same commit. On the same benchmark tour it was 15 to 20% faster than 0.10.0 at every stop, with the same game memory at every checkpoint, and the same state with faster calls on and off. On that PC the new first-run window showed its four steps and reached the title, F9 showed the frame rate and then the panel, save states and an in-game save loaded back, and Dragon Roost looked the same with efficient soft effects on. Those checks were scripted with screen captures; I didn't play it by hand this time. The Linux AppImage was built on the same PC from the same commit with Clang 22; it needs nothing newer than glibc 2.38, and it prepared the game from my disc and started to the title screen with faster calls on. I haven't played it on Linux or a Steam Deck myself.

Known problems

  • Faster calls stay off on iPhone and iPad in this release. They measured 9 to 13% faster on my iPad, so they're likely on for the next one.
  • On slower CPUs the game can still dip below full speed where its own thread is the limit, at Outset most of all (#215, #427). On Android phones, heavy scenes can run at about two thirds speed once the phone caps its fastest core (#560).
  • Turning on the stage select turns faster calls off while it's on. A save state made while the stage select was off and loaded before starting a file still says "Start a file first" on F7; start a file, or make the state with the stage select on.
  • The F9 panel can't read GPU load or video memory on some Radeon graphics and shows a dash there.
  • Some module art draws wrong: Earth Temple's tapestries, some flags and banners (#545, #505, #69). A fix is being worked out.
  • Dragon Roost Cavern can flicker on Windows at 60 FPS and above (#483).
  • The Wind Temple's rooms R04 and R08 need an opt-in switch to load from the stage select (#318).

Thanks to irregularthanis, pdale-boop, jkoehler11, and everyone who reported a bug.

Found a problem? Open an issue or ask on Discord, and attach your session log (%APPDATA%\BlueWake\logs on Windows; ~/.local/share/BlueWake/logs on Linux; ⋯ › Help & Feedback › Share Session Log on iPhone and iPad).

Don't miss a new bluewake release

NewReleases is sending notifications on new releases.