alemart/opensurge

Missing files in source tarball and another error when building from source.

Closed this issue · 3 comments

These files were missing if building and installing from Github source tarball (had to copy files from previous version):

  • surge_goal.png
  • surge_life_icon.png
opensurge 
Failed to load image "images/players/surge_life_icon.png"

sudo cp -a ~/Escritorio/surge_life_icon.png /usr/share/games/opensurge/images/players/

opensurge 
Failed to load image "images/players/surge_goal.png"

sudo cp -a ~/Escritorio/surge_goal.png /usr/share/games/opensurge/images/players/

surge_life_icon.png ans surge_goal.png are referenced in opensurge-0.6.1/src/core/import.c.

But after copying the missing files, then I get this new error:

opensurge 
In ./src/core/asset.c:1084 (foreach_file): assertion `list != ((void *)0)` failed.

And obviously, Opensurge fails to start.

Build environment:

OS: ALDOS 1.4.18 (Fedora derivative)
GCC 8.5.0
Glibc 2.27
Allegro 5.2.7.0
Physfs 3.0.2
CMake 3.26.6

Hi @darkshram,

Files surge_goal.png and surge_life_icon.png were removed in 0.6.1 and are not meant to be restored manually like that.

Remove the previous opensurge installation from your system, get a 0.6.1 source tarball and try again. When compiling, use preferably physfs 3.2.0 and Allegro 5.2.9.1.

Fedora only has physfs 3.0.2 and allegro 5.2.7.0. No further updates available for those two libraries in Fedora because several issues with further versions.

My Issue persisted until I did complete removal (dnf -y remove opensurge surgescript*) and then realized my son added/modified some files inside /usr/share/games/opensurge (my rpm packages installed data there) to have Sonic as MC for 0.6.0 version, so I completely removed /usr/share/games/opensurge before installing rpm packages (spec file synced with the one from Fedora) again (which now install data under /usr/share/opensurge).

The modification of game assets can also be done in the home folder. See README.md#paths.

Easier still, recompile the game with the GAME_RUNINPLACE flag to have all assets in the folder of the executable.

Glad to be of help!