Opened 11 days ago

Last modified 11 days ago

#15449 new defect

ANDROID: NGI: The Russian version of Full Pipe doesn't launch on Android

Reported by: Teashrock Owned by:
Priority: normal Component: Engine: NGI
Version: Keywords: android ngi fullpipe
Cc: Game: Full Pipe

Description

ScummVM version: 2.9.0git10406-g83dae368205 (built Nov 2 2024 04:45:18)
Built with: GCC 11.5.0
OS: Android 14
CPU Arch: aarch64
Game name: Full Pipe
Game version: Windows, 1.1.15

The problem itself:
The game just hangs with black screen upon being started under Android. The app itself seems to be hanging too, not reacting either to menu or control switch buttons. In the end, all the player can do is to close the app manually from Android task screen.

Important notes:

  • The problem is present on Android, but is absent on Windows. The game launches and run normally (or at least it seems by the intro and the few screens I checked).
  • The problem persists in both stable and daily-built ScummVM versions.

How to reproduce:

  1. Unpack the game under Android.
  2. Add the game from ScummVM as usual.
  3. Run the game from ScummVM as usual.
  4. Get black screen and ScummVM hanging.

Change History (3)

comment:1 by antoniou79, 11 days ago

It's possible that this is an Android specific bug (...), but the description does match with the behavior of slow loading games with multiple files when they're accesses via SAF.

  • Did you put this game's data file in external storage folder (like on an external SD Card or custom folder on your device's storage space), set up and accessed via the SAF method?
  • How long did you wait on this black screen? Depending on the number of files / folders in the game's data loading a game via SAF can take a while, sometimes even more than 3 minutes.

If it's indeed a (very) slow loading issue, then you could try uploading the game files to ScummVM's external directory -- a shortcut for that directory is provided in ScummVM's file explorer at the topmost level, as "ScummVM data (External)". Folders added to that space will be accessed without the need for SAF.

But it can be tricky to put files in there. I think the most reliable way to do this would be to use ScummVM's LAN feature, Run the server, and set the root folder to be this directory "ScummVM data (External)" (and press Apply), and then connect from a remote PC (or other device) browser, click into "File system root" and upload the game's data folder in there. Then add this folder to ScummVM to launch the game.

However, note, that files put in an app's "external storage" will be deleted if/when the app gets uninstalled.

Edit: While testing for this, I've noticed that the LAN server feature may be bugged in current daily developer builds, since I was unable to create a folder or upload files to the ScummVM external app space. However this is working for ScummVM 2.8.1.1 (the official release). This bug is now filed in this tracker here: https://bugs.scummvm.org/ticket/15451

Last edited 11 days ago by antoniou79 (previous) (diff)

in reply to:  1 comment:2 by Teashrock, 11 days ago

Replying to antoniou79:
Yes, the game was on the external SD card. I used another way to transfer the game to ScummVM's inernal storage. When I removed the game settings and added it from internal storage, it ran smoothly. So yes, it seems SAF is the case. Is it possible to do something with that? I mean, I surely can play like this, but I'd still prefer to keep all my games on external SD card, to keep some free space on my tablet's internal memory.

comment:3 by antoniou79, 11 days ago

As of yet, I don't think we have much margin to optimize SAF access. That's mostly on Google's side and I am unsure if they're working on it or are interested at all for use cases like ScummVM's.

Google does (or did the last time I checked) offer a mode to circumvent using SAF for external file access, but it's reserved for specific categories of apps (like antivirus apps, and such), which ScummVM does not fall into. Therefore, if we used that we'd risk not being able to publish the app on the Play Store.

We're of course open to new ideas and help with the Android port development.

Note: See TracTickets for help on using tickets.