Opened 16 months ago
Closed 7 months ago
#13242 closed defect (fixed)
SKY: Beneath a Steel Sky crashing on MacOS M1
|Reported by:||DanielNovak||Owned by:||criezy|
|Cc:||Game:||Beneath a Steel Sky|
Description (last modified by )
Running Beneath a Steel Sky on a M1 MacBook (M1 Pro, 32GB, latest Monterey 12.2) quits (force closes) the whole ScummVM.
How to reproduce:
1) Download Beneath a Steel sky, for example the CD VGA version from https://cdromance.com/scummvm/beneath-a-steel-sky-dos-cd-vga-scummvm-game/ (I tried other sources too, same result)
2) Use default ScummVM installation (I made a fresh install)
3) Launch app and wait during intro, it will crash after the first image of the old man. Or play the game and go from one screen to another (leave room).
I have played the same game, same settings and same source on a x86 macbook and it worked fine.
I looked into /Log/scummvm.log but it contains no relevant entries.
Change History (10)
comment:1 by , 16 months ago
comment:2 by , 12 months ago
|Summary:||Beneath a Steel Sky crashing on MacOS M1 → SKY: Beneath a Steel Sky crashing on MacOS M1|
comment:3 by , 8 months ago
comment:4 by , 8 months ago
I just tried the stable daily build for M1 (on https://buildbot.scummvm.org/#/dailybuilds) and that one seems to work properly as well. And as far as I know it is compiled with optimisations. So that could point toward a difference in the way it is compiled compared with official releases, and possibly an issue with the compiler (the compiler is not the same).
comment:5 by , 8 months ago
I am currently testing on my M1, using clang 13.1.6 and the current code from the master branch. For the game itself, I am using version "0.0372 cd" from our website and "v0.0368" linked above.
However, even with optimizations enabled, I couldn't trigger a crash neither in the intro nor when leaving the first room by escaping to the roof.
Am I missing something here? Surely the compiler is a bit older than on a current system (since I was lazy with updates which might come in handy right now), but it surely is newer than the version that was the current one 9 months ago...
Please note that I don't use the Xcode GUI and just use the configure and make commands.
comment:6 by , 8 months ago
I also had no luck with replicating it on branch-2-6 and v2.6.0 itself. Any idea what I'm doing - well - wrong?
comment:7 by , 8 months ago
dwa mentioned on discord that he cannot reproduce the crash either and he is using clang 14.0.0.
I just checked the version I am using and for some reason this is clang 13.0.0. I though I was already using the latest Xcode and clang available from Apple, but apparently this is not the case, so I will check that first.
I don't use the Xcode GUI and just use the configure and make commands
That's also what I do. It should not change anything though.
comment:8 by , 8 months ago
Okay, so should I wait with updating my machine in case we need to re-test something on clang 13.x? I'm not sure if a downgrade will be possible (I'm not that familiar with macOS yet).
comment:9 by , 8 months ago
I have now updated my toolchain and I have clang 14.0.0. With this version I can no longer reproduce the crash. So it looks like the issue was restricted to using clang 13.0.0.
I will keep this open for a little longer as I still want to check if we get any report with ubsan and tsan. But the good news is that the 2.6.1 release should be working properly.
comment:10 by , 7 months ago
|Status:||new → closed|
I will close this now and chalk it off as a compiler bug.
I verified that with the updated toolchain the 2.6.1 version released today no longer crashes when starting the game.
I also tried to investigate further but neither ASAN or UBSAN reported anything relevant.
I can reproduce this issue but only with the native M1 version compiled with optimisation. Running a debug version, or a x86 version under Rosetta works properly.
This at least provides a workaround for the users as they can force running the ScummVM release versions under Rosetta:
Details tests on a M1 mac:
--enable-asan(Native): does not crash (no error reported by ASAN)
--enable-asan --enable-optimizations(Native): crashes (see report below)
I am worried this could be a compiler bug, in which case that could be complicated to fix.