Homeworld: Unbound 0.13 — the engine could never start twice
The bug underneath the last bug
0.12 described a crash on the demo-to-full path and traced it to Android warm-starting the process with the wrong engine already loaded. That was real. It was also a symptom.
Quit the game and launch it again — no campaign change, nothing to do with your data — and it sat in the headset’s loading environment and never started. A third press worked. That had been true of every release so far.
The engine cannot start twice in one process. The second run begins over the globals the first one left behind, and there is no teardown that makes it safe; the tell in the log is a path prefix applied twice and a doubled slash in a filename it then cannot find. The campaign-change crash simply died sooner, on an engine that could not be swapped, which is why it looked like a bug of its own rather than one case of this.
It also hid itself. The failure destroyed the very process that was wrong, so the next launch found nothing to reuse and worked — and a fault that cleans up after itself reads as a first-launch quirk rather than a fault.
Quitting now ends the process, so there is nothing to reuse and every launch is cold, which is the only state the engine starts correctly from.
A fresh install hung on its first launch
Installing from SideQuest for the first time, the app asked for file access before it had started, and then sat on the loading screen indefinitely. Granting the permission did not help. Uninstalling and reinstalling made it more likely rather than less, because that clears the permission whose absence was the trigger.
The request opened a system settings panel, the panel took focus, and the game will not start drawing without focus. So it never drew — and focus never came back to something that had never appeared.
Where the permission went
Nothing is asked for while you play, and the demo never needs it. The headset asks whether to grant All files access when you quit instead, which is the one moment there is no running game for a settings panel to take the focus from.
Granting it is what lets the game find a copy of Homeworld you own: without it
the app cannot see your Downloads folder, so it has no way to tell whether your
files are there. It can also be granted at any time from the app’s permissions
in the headset’s settings, and install.py grants it over adb — so a headset
set up from a PC never sees the prompt at all.