Osmos: 32bit "Instawin" (Motes not spawning)
What Game Osmos
Steam: https://store.steampowered.com/app/29180/Osmos/ (only contains 32bit version) Demo: http://www.hemispheregames.com/latest_osmos_demo_linux_deb (contains both 32bit and 64bit versions, but has broken font)
Describe the bug The 64bit version of the game works fine, might actually be flawless.
But the 32bit version has some really weird issues. When a level initialises, none of the motes appear, giving you just a blank background.
Advancing though any tutorial with space and then clicking will cause the game to check win conditions, and depending on the level, you might win or lose.
Resizing the window (or switching between fullscreen/windowed mode) causes all the motes to spawn, and it becomes possible to complete the level, at which point you need to resize again to spawn the motes.
To Reproduce Steps to reproduce the behavior:
- Launch the game.
- Open the first level
- Press Space when prompted to dismiss quote
- See error
Expected behavior A clear and concise description of what you expected to happen.
Screenshots and Video
Expected result:

Result with 32bit binary:

Dismissing the rest of the tutroal text and clicking presents this win screen:

System information:
- OS: Arch Linux Arm
- CPU/SoC: Apple M1X
- Video driver version: both llvmpipe and virgil
- RootFS used: Ubuntu 21.10 Official Rootfs
- FEX version: FEX-2201-80-g334a8ef8
- Thunks Enabled: [Yes/No]
Additional context
- Is this an x86 or x86-64 game: Both, but only x86 is broken.
- Does this reproduce on x86-64 host with FEX: Yes
- Does this reproduce on AArch64 with Radeon/Intel/Nvidia: Untested
- Is this a Vulkan game: No
- If Yes, What is your Vulkan driver:
Note: The demo version of Osmos from their website ships with a broken font that might cause issues depending on the rootfs version. Symptoms include "log message about font issue, some menu text not rendering, clicking not working". Replacing it with a good version of the font (I copied it from the steam version) fixes the issues.
My initial thought was that this was some form of x87 bug, but running on an x86 host and using #define DEBUG_X86_FLOAT to passthough instructions to the host x87 didn't fix the issue, so it maybe it is something else.
I've also tried single instruction blocks and interpreter, nothing seems to effect the bug.
I'm going to leave this as is for now.
Tested again with FEX-2203 and still not working.
Confirmed here that FEX-2206 still has the problem. Also confirmed that Interpreter the motes are spawning, so this is a JIT specific problem.
Oop, I was wrong. It's not that interpreter works to spawn the motes. Resizing the window causes them to spawn with both Interpreter and JIT.