Opened 2 years ago
Closed 42 hours ago
#13952 closed defect (wontfix)
ANDROID: AGS: Can't load games with resources >2GB on ARM32
Reported by: | nahuel36 | Owned by: | lephilousophe |
---|---|---|---|
Priority: | normal | Component: | Port: Android |
Version: | Keywords: | ags, nightmare frames | |
Cc: | nahuel36 | Game: |
Description
I tried to play Nightmare Frames game, buyed from steam, in my cel phone (android 7.0 motorola g4 plus) with the version on Play Store (scummvm 2.5.0) and also the last daily build from ARM 32 bits version (scummvm 2.7.0 2/Dec/2022)
The game dont start, instead of this open the console and show the error message: "error determining stream end"
In Windows 10 the game starts fine, with the version 2.5.0 of scummvm, 64 bits zip portable version from download archive
Change History (9)
follow-up: 3 comment:1 by , 2 years ago
follow-up: 4 comment:2 by , 2 years ago
Summary: | Nightmare Frames, cant start game → AGS: Nightmare Frames, cant start game (Android) |
---|
Thank you for reporting ths.
Looking at https://steamdb.info/depot/1650591/, it looks like this game has a 2.51 GiB asset, but ARM 32-bit builds currently have a limitation with >2GB files. Looking at the error message, this is possibly related (but needs to be confirmed).
PR https://github.com/scummvm/scummvm/pull/4479 is (maybe) a way of improving compatibility with >2GB files, but AFAICS we'd need to build the 32-bit Android ports with NDK >= 24 but we use NDK 21.3 at the moment.
In the meantime, is your phone compatible with the ARM 64 bits daily builds? The game might load with that.
comment:3 by , 2 years ago
Replying to tag2015:
Not really related to the bug, but, that game is not in our detection tables. Could you please provide the checksum that scummvm tells you? Thanks
{"Nightmare Frames.exe", 0, "55a84a70f80cba8dd2373ea04c2b04ce", 2697804016},
comment:4 by , 2 years ago
Replying to dwatteau:
Thank you for reporting ths.
Looking at https://steamdb.info/depot/1650591/, it looks like this game has a 2.51 GiB asset, but ARM 32-bit builds currently have a limitation with >2GB files. Looking at the error message, this is possibly related (but needs to be confirmed).
PR https://github.com/scummvm/scummvm/pull/4479 is (maybe) a way of improving compatibility with >2GB files, but AFAICS we need to build the 32-bit Android ports with ANDROID_API >= 24.
In the meantime, is your phone compatible with the ARM 64 bits daily builds? The game might load with that.
EDIT: sorry, meant ANDROID_API version, not NDK version.
my phone is not compatible with 64 bits daily build
comment:5 by , 23 months ago
Component: | Engine: AGS → Port: Android |
---|---|
Summary: | AGS: Nightmare Frames, cant start game (Android) → ANDROID: Nightmare Frames (AGS), cant start game |
comment:6 by , 20 months ago
This still happens on the 32-bit 2.7.0.2 beta3 ARM build. It's not restricted to Nightmare Frames, Strangeland too has a >2GB data file and it doesn't load, with the exact same error.
On the other hand, the ARM64 build works perfectly with both games.
comment:7 by , 20 months ago
Summary: | ANDROID: Nightmare Frames (AGS), cant start game → ANDROID: AGS: Can't load games with resources >2GB on ARM32 |
---|
comment:8 by , 20 months ago
AFAICS this is because we still want to provide a unique build covering very old and new Android devices, so we build with an older Android API where this isn't possible.
In my opinion, we should maybe split the Android backends into an old backend and a new backend, as is done for iOS I believe, or drop support for ancient Android versions, or build two artefacts.
comment:9 by , 42 hours ago
Owner: | set to |
---|---|
Resolution: | → wontfix |
Status: | new → closed |
According to https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md there is no 64-bit file API except for lseek64 (which can't be used with stdio FILE objects) before API level 24.
We still support API level 16 so we can't do much about this without heavily reworking the code.
That's an Android ABI bug more than ours which can be solved by using a 64-bit Android.
Happily, these are way more common nowadays.
Closing this.
Not really related to the bug, but, that game is not in our detection tables. Could you please provide the checksum that scummvm tells you? Thanks