Skip to content
This repository has been archived by the owner on Jun 16, 2023. It is now read-only.

Message 'Error launching the Mod!' when load a Mod #2

Closed
jmcerrejon opened this issue Apr 30, 2023 · 36 comments
Closed

Message 'Error launching the Mod!' when load a Mod #2

jmcerrejon opened this issue Apr 30, 2023 · 36 comments

Comments

@jmcerrejon
Copy link

OS: Raspberry OS 64 bits.
Pkgs installed: serioussamclassic-1.10.4-1_rpi4b_arm64.deb, serioussamclassic-xplus-1.10.4-1_rpi4b_armhf.deb, serioussamclassic-alpha-1.5.1-1_rpi4b_arm64.deb

I extract & copy the Mods. Tried Alpha and XPlus. Both are visible on the game in the Mods section.

I pick up the name of the mod and click on load. Then the app exit and show me the message: Error launching the Mod!

I attached the log file & my tree files here, maybe I don't have some files.

Thank you!

Files: serioussam_tree.txt | SeriousSam.log

@tx00100xt
Copy link
Owner

Instead of
serioussamclassic-xplus-1.10.4-1_rpi4b_armhf.deb,
I think I need
serioussamclassic-xplus-1.10.4-1_rpi4b_arm64.deb
unless it's a typo.

The log shows the launch of the standard game, when you start the mod, the log should be different.

Are the files in place?:

/usr/lib/aarch64-linux-gnu/serioussam/Mods/SSA/libEntities.so
/usr/lib/aarch64-linux-gnu/serioussam/Mods/SSA/libGame.so
/usr/lib/aarch64-linux-gnu/serioussam/Mods/XPLUS/libEntities.so
/usr/lib/aarch64-linux-gnu/serioussam/Mods/XPLUS/libGame.so
/usr/lib/aarch64-linux-gnu/serioussamse/Mods/XPLUS/libEntitiesMP..so
/usr/lib/aarch64-linux-gnu/serioussamse/Mods/XPLUS/libGameMP..so

File:

/home/ulysess/.local/share/Serious-Engine/serioussam/SE1_10.gro: 1802 files

contains broken textures due to which bugs occur in the game (for example, the fountain on the Sierra Chiapas) - it is better to remove it.

It is also better to assign the correct owner to all files.
chown -R ulysess:ulysess /home/ulysess/.local/share/Serious-Engine

It is worth trying to launch the game from the console:

serioussam +game SSA

serioussam +gemr XPLUS

And paste the log here

I have tried packages:

serioussamclassic-1.10.4-1_rpi4b_arm64.deb,
serioussamclassic-xplus-1.10.4-1_rpi4b_arm64.deb,
serioussamclassic-alpha-1.5.1-1_rpi4b_arm64.deb,

on qemu in native mode (-M raspi3b -cpu cortex-a53).

On qemu everything works, although the colors on the emulator are distorted.
Снимок экрана в 2023-04-30 22-52-49

So it seems like it should work. I'll take a closer look at the file tree. But at first glance, everything seems to be correct.
It will be more clear when getting logs from running mods from the command line.
The log should look like this:
(By the way, I saw in my log that the library for mp3 is not loaded. We'll have to redo the package for the alpha remake :) )

--- Serious Engine Startup ---
SeriousEngine Build: 10000.10

Running 64-bit version
Testing file: 1_00_music.gro
Testing system path: /usr/share/serioussam/1_00_music.gro
Testing local path: /home/pi/.local/share/Serious-Engine/serioussam/1_00_music.gro
Found local path:
Executable: /usr/bin/
Assumed engine data directory: /home/pi/.local/share/Serious-Engine/serioussam/
Assumed mods library directory: /usr/lib/aarch64-linux-gnu/serioussam/

Examining underlying OS...
Type: Unix

Detecting CPU...
(No CPU detection in this binary.)

Current mod: Mods/SSA/
Loading mod include/exclude lists...
Loading group files...
/home/pi/.local/share/Serious-Engine/serioussam/Mods/SSA/1_15c.gro: 338 files
/home/pi/.local/share/Serious-Engine/serioussam/SE1_10b.gro: 105 files
/home/pi/.local/share/Serious-Engine/serioussam/1_04_patch.gro: 1 files
/home/pi/.local/share/Serious-Engine/serioussam/1_00c_scripts.gro: 28 files
/home/pi/.local/share/Serious-Engine/serioussam/1_00c_Logo.gro: 1 files
/home/pi/.local/share/Serious-Engine/serioussam/1_00c.gro: 2267 files
/home/pi/.local/share/Serious-Engine/serioussam/1_00_music.gro: 55 files
/home/pi/.local/share/Serious-Engine/serioussam/1_00_ExtraTools.gro: 58 files

Detecting input devices...
joysticks found: 0
joysticks allowed: 0

GfxLibrary: InitAPI
GfxLibrary: OpenGL InitAPIs.
Initializing sound...
Trying load libvorbisfile.so.3 ...
vorbisfile shared library loaded, ogg playing enabled
CUnixDynamicLoader error: /usr/lib/aarch64-linux-gnu/serioussam/Mods/SSA/libamp11lib.so: cannot open shared object file: >No such file or directory
CUnixDynamicLoader error: /usr/lib/aarch64-linux-gnu/serioussam/Mods/SSA/libamp11lib.so: cannot open shared object file: >No such file or directory
MPX playing disabled: Cannot load amp11lib shared library: /usr/lib/aarch64-linux-gnu/serioussam/Mods/SSA/libamp11lib.so: >cannot open shared object file: No such file or directory
Detected devices: 1
device 0: Dummy Output

WARNING: Gamma, brightness and contrast are not adjustable!

Command line: ' "+game" "SSA"'

WARNING: SeriousSam didn't shut down properly last time!
îáíàðóæåíû äæîéñòèêè: 0
ðàçðåøåíû äæîéñòèêè: 0
Loading game library '/usr/lib/aarch64-linux-gnu/serioussam/Mods/SSA/libGame.so'...
SDL audio initialization ...
îòêðûòîå óñòðîéñòâî: SDL audio stream
11025 Ãö, 16 áèò, pulseaudio
ïàðàìåòðû: 11025 Ãö, 16 áèò, ñòåðåî, ìèêøèðîâàíèå: 0.2c
âûõîäíûå áóôåðû: 2 x 2048 áàéò
äåêîäåð mpx: 36864 áàéò
Serious Sam version: ^i^c0099cc1.5

Active mod: ^i^c0099ffAlpha Remake
Scripts\Mod_startup.ini(7): Identifier 'mdl_bRenderBump' is not declared
Scripts\Mod_startup.ini(7): Cannot assign: different types
Reading levels directory...

And so on ...

@tx00100xt
Copy link
Owner

I looked at the file tree more carefully. Everything is located correctly. And at least mod XPLUS contains all the necessary files.

I'm assuming that running mods from the command line:

serioussam +game SSA
serioussam +game XPLUS

should be successful.
Because mods differ only in two libraries(libEntities.so,libGame.so), which are slightly modified to support new entities.

Initially, the function of loading mods from the menu was absent,
https://github.com/icculus/Serious-Engine/blob/main/Sources/SeriousSam/SeriousSam.cpp#L1320
I wrote it myself.
https://github.com/tx00100xt/SeriousSamClassic/blob/main/SamTFE/Sources/SeriousSam/SeriousSam.cpp#L1541

The excl function is responsible for the launch of the mod, in case of an unsuccessful start of the mod of this function, the message box "Error launching the Mod!" will be issued
https://github.com/tx00100xt/SeriousSamClassic/blob/main/SamTFE/Sources/SeriousSam/SeriousSam.cpp#L1587

I looked at the android port code,
https://github.com/Skyrimus/Serious-Sam-Android/blob/master/Serious-Engine/Sources/SeriousSam/SeriousSam.cpp#L1396
it also supports mods and there is a timeout of (60 * 1000) milliseconds before starting the mod. 1 minute is over a lot. Perhaps adding a timeout of a few seconds can solve this problem.

I updated packages serioussamclassic-alpha-1.5.1-1_rpi4b_armhf.deb and serioussamclassic-alpha-1.5.1-1_rpi4b_am64.deb,
If running from the command line with the package serioussamclassic-alpha-1.5.1-1_rpi4b_am64.deb will succeed then iI will try to add a timeout to the mod call function.

@xboxones1
Copy link

xboxones1 commented May 6, 2023

Привет.
Я проверил пакеты для Ubuntu и они не работают, даже основная игра, пробовал только SE.
У меня Ubuntu Lunar , ставил для Jammy.
Во-первых, неправильные имена либ, libEntitiesMP.so требует libEntities.so и libGameMP.so требует libGame.so. Либы переименовал, запускается только главное меню, после старта черный экран, что на vulkan, что на opengl.
Лог
SeriousSam.log
Во-вторых, при установленом box64 игра ищет либы в /usr/lib/x86_64-linux-gnu. Такого быть не должно, box64 там размещает либы для трансляции.

@tx00100xt
Copy link
Owner

tx00100xt commented May 6, 2023

Привет. Спасибо за тест и ответ.

Cannot load variable from 'ModExt.txt

Вот в этом причина.
Для SE обязателен файл ModExt.txt в корневой директории, Там должны быть прописаны две латинские буквы MP.
Возможно после его создания и черный экран исчезнет.

Во-вторых, при установленом box64 игра ищет либы в /usr/lib/x86_64-linux-gnu. Такого >быть не должно, box64 там размещает либы для трансляции.

Вот об этом я не подумал. Но решается легко. Достаточно строчки определения директории переместить выше чем для x86_64-linux-gnu.
https://github.com/tx00100xt/SeriousSamClassic/blob/main/SamTFE/Sources/Engine/Engine.cpp#L750

@tx00100xt
Copy link
Owner

tx00100xt commented May 6, 2023

А библиотека libGame.so переименована в libGameMP.so?

Нужно конечно обновить репозитории с исходным кодом, чтобы был правильный поиск библиотек. Поставить определение arm выше чем x86_64 и заново cделать пакеты. Я на нескольких qemu машинах проверял работу. Везде работало, но у меня не был установлен на них box64. Когда всё сделаю напишу здесь. Еще раз Спасибо.

@xboxones1
Copy link

xboxones1 commented May 6, 2023

Да, переименовано. Попробовал собрать из из исходников, оно тоже не работает. Черный экран.
SeriousSam.log

@tx00100xt
Copy link
Owner

В логе vulkan пугается "Can't find memory type in device memory"
А оренгл версия тоже не работает?

@xboxones1
Copy link

Да, opengl тоже не работает.
SeriousSam-opengl.log

@tx00100xt
Copy link
Owner

На Raspberry OS 64 bits игра работает. Это видно из первого поста топика. Просто моды не запускаются. На Raspberry OS 32 bits тоже работала в том числе и вулкан, по крайней мере версия от 7 декабря tx00100xt/SeriousSamClassic-VK#13
Не буду отвлекать. Попробую завтра всё обдумать. Еще раз Спасибо!

@xboxones1
Copy link

Мне не сложно.
Выяснил что если загрузить первый уровень через Custom Level, то оно работает. Если включать через New Game виснет видимо на заставке.

@tx00100xt
Copy link
Owner

Мне не сложно. Выяснил что если загрузить первый уровень через Custom Level, то оно работает. Если включать через New Game виснет видимо на заставке.

Вот блин! А я голову ломал по поводу чёрного экрана. Я думал что сразу всё чёрное - ни меню, ничего. Оказывается меню есть. И на Вулкане тоже есть меню? А с заставкой второго пришествия - это известный баг на aarch64 системах.
Тут он описан: ptitSeb/Serious-Engine#64 ptitSeb/Serious-Engine#40

Завтра поправлю пути, чтоб установленный box64 не мешал.

@xboxones1
Copy link

xboxones1 commented May 7, 2023

И на Вулкане тоже есть меню? А с заставкой второго пришествия - это известный баг на aarch64 системах.

Да, на вулкане тоже работает. Насчет заставки, мне помнилось, что все работало. Проверил все моды, Xplus везде работает без проблем, а вот Alpha Remake виснет на начальной заставке при включении.
SeriousSam.log

@tx00100xt
Copy link
Owner

Да, на вулкане тоже работает. Насчет заставки, мне помнилось, что все работало.

Возможно проблема с флагами компиляции. Раньше было только -march-native. Я решил что можно оптимизировать под cpu. tx00100xt/SeriousSamClassic-VK@1864a6a#diff-2ade3404a39b4214fa3aad23a38358aa575d8f9d77f0957567d33db03148cec1

Если вернуть назад и оставить опять только -march-native возможно проблема исчезнет. Вот так было до оптимизации
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/5725e8157c653c6671c2f8c5542a746023b0c439/SamTFE/Sources/CMakeLists.txt
Можно попробовать использовать его вместо вместо нового
На виртуальной машине с qemu в нативном режиме все моды работали. Значит разница с реальным железом есть

Раньше если дать команду было так:

gcc -v -E -x c /dev/null -o /dev/null -march=native 2>&1 | grep /cc1

/usr/lib/gcc/aarch64-linux-gnu/11/cc1 -E -quiet -v -imultiarch aarch64-linux-gnu /dev/null -o /dev/null -mlittle-endian -mabi=lp64 -march=armv8-a+crc -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -dumpbase null

С новыми флагами получается так:

gcc -v -E -x c /dev/null -o /dev/null -march=armv8-a+crc+fp+simd -mcpu=cortex-a53 -ftree-vectorize -fomit-frame-pointer 2>&1 | grep /cc1

/usr/lib/gcc/aarch64-linux-gnu/11/cc1 -E -quiet -v -imultiarch aarch64-linux-gnu /dev/null -o /dev/null -march=armv8-a+crc+fp+simd -mcpu=cortex-a53 -mlittle-endian -mabi=lp64 -ftree-vectorize -fomit-frame-pointer -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -dumpbase null

@tx00100xt
Copy link
Owner

tx00100xt commented May 7, 2023

Alpha Remake виснет на начальной заставке при включении

То есть до меню игры не доходит?

Можно попробовать в файл Mods/SSA/Scripts/Mod_startup.ini прописать строчку:

sam_strIntroLevel = "";

Тогда интро будет пропускаться

@xboxones1
Copy link

xboxones1 commented May 7, 2023

Если вернуть назад и оставить опять только -march-native возможно проблема исчезнет.

Нет, не исчезнет. Я вчера собирал от 6 июня прошлого года и так же не работает, виснет на заставке. Может быть дело в Ubuntu 23.04, я же тогда на 22.04 собирал. А может оно и тогда не работало, не помню уже, накачу чуть позже на флешку 22.04 и проверю.

Можно попробовать в файл Mods/SSA/Scripts/Mod_startup.ini прописать строчку:

sam_strIntroLevel = "";

Тогда интро будет пропускаться

Без интро заработало, запускается без проблем, по крайней мере первый уровень играется)

@tx00100xt
Copy link
Owner

Без интро заработало

Спасибо. Ясно. Значит оптимизацию можно оставить.
Сейчас пакетами займусь. патч добавил
tx00100xt/SeriousSamClassic-VK@ca15d64
tx00100xt/SeriousSamClassic@eebddf5

@tx00100xt
Copy link
Owner

Для второго приществия также можно прописать в конфиге:

SamTSE/Scripts/Game_startup.ini

sam_strFirstLevel = "Levels\LevelsMP\1_1_Palenque.wld;

вместо sam_strFirstLevel = "Levels\LevelsMP\1_0_InTheLastEpisode.wld";
тогда заставка будет пропускаться

@xboxones1
Copy link

Проверил на 22.04, один в один все. Что Se, что Alpha remake, виснут на заставках. С пропусками все работает.

@tx00100xt
Copy link
Owner

tx00100xt commented May 7, 2023

Собрал пакеты serioussamclassic-1.10.4-1_jammy2_arm64+rpi4.deb serioussamclassic-vk-1.10.4-1_jammy2_arm64+rpi4.deb

https://disk.yandex.ru/d/INCnlsv36KCMhQ
https://disk.yandex.ru/d/RbIXaxz32MA-Gw

Если всё будет в порядке можно будет их в репо добавить.

Пакеты serioussamclassic-xplus-1.10.4-1_jammy2_arm64+rpi4.deb
serioussamclassic-alpha-1.5.1-1_jammy2_arm64+rpi4.deb
Должны старые работать. Пути только движок определяет.

Добавил https://github.com/tx00100xt/serioussam-packages#note-for-raspberry-pi-users

@tx00100xt
Copy link
Owner

Проверил на 22.04, один в один все. Что Se, что Alpha remake, виснут на заставках. С пропусками все работает.

Спасибо. Понятно. Значит скорее всего баг был с самого начала.

@xboxones1
Copy link

xboxones1 commented May 7, 2023

Если всё будет в порядке можно будет их в репо добавить.

Не помогло, так и пишет про /usr/lib/x86_64-linux-gnu. Наверное как-то нужно делать проверку архитектуры.
Для пропуска заставки в SE нужно прописывать так:
sam_strFirstLevel = "Levels\\LevelsMP\\1_1_Palenque.wld;

@tx00100xt
Copy link
Owner

tx00100xt commented May 7, 2023

Не помогло, так и пишет про /usr/lib/x86_64-linux-gnu. Наверное как-то нужно делать проверку архитектуры.

Можно проще. Просто не продумал когда делал. Добавить условие && !_pFileSystem->IsDirectory((const char *) "/usr/lib/aarch64-linux-gnu" в if
То есть при наличии директории aarch64-linux-gnu не выполнять условие для x86_64-linux-gnu

Сейчас буду переделывать

Для пропуска заставки в SE нужно прописывать так:

Поправлю

@tx00100xt
Copy link
Owner

Не помогло, так и пишет про /usr/lib/x86_64-linux-gnu

Поторопился сделал в патче так: )
tx00100xt/SeriousSamClassic@eebddf5

if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/aarch64-linux-gnu")) {
_fnmModLibPath = "/usr/lib/x86_64-linux-gnu/" + strGameID + "/";

Забыл вместо /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu прописать. Только сейчас заметил

@tx00100xt
Copy link
Owner

tx00100xt commented May 7, 2023

Исправил свою ошибку.
tx00100xt/SeriousSamClassic@3bdfddd
tx00100xt/SeriousSamClassic-VK@2bcd6a9
Сейчас по идее всё должно правильно определятся.
https://disk.yandex.ru/d/e_0SN2uB6YhI8w serioussamclassic-1.10.4-1_jammy2_arm64+rpi4.deb
https://disk.yandex.ru/d/R2hoAyawGcB1qA serioussamclassic-vk-1.10.4-1_jammy2_arm64+rpi4.deb

@xboxones1
Copy link

Да, теперь все правильно работает.

@tx00100xt
Copy link
Owner

Да, теперь все правильно работает.

А моды из меню игры запускаются альфа и икспюс?

@xboxones1
Copy link

Да, моды тоже работают. Надо было мне сразу написать)

@tx00100xt
Copy link
Owner

Большое Спасибо! за помощь и тестирование. Про box64 я бы не додумался. И при фризы на заставках, на реальном железе тоже. Теперь буду переделывать пакеты для других систем, можно и под убунту 23.04 сделать. У меня образ для Распберри Пай под неё развернут. С помошью binfmt и chroot достаточно быстро собирается. Еще раз Спасибо!

@tx00100xt
Copy link
Owner

tx00100xt commented May 7, 2023

@jmcerrejon Hello.
All serioussamclassic and serioussamclassic-vk packages for Raspberry Pi OS 32/64 have been updated. Thanks to @xboxones1 for testing Ubuntu packages on a physical Pi4. Some bugs were found and fixed. At the moment, the packages for Ubuntu are fully functional and launching mods from the menu works (tested on a physical Pi4). I think packages for Raspberry Pi OS should also work correctly.

You also need to take into account the possible bugs of aarch64, the method for solving which is described here:
https://github.com/tx00100xt/serioussam-packages#note-for-raspberry-pi-users

@xboxones1
Copy link

xboxones1 commented May 8, 2023

Накатил raspberry os, установил пакеты
Вулкан версия не работает.
OpenGl версия работает, моды работают, зависоны такие как на ubuntu.

И еще вот при запуске из терминала заметил, что оно ломится по пути

serioussam
STUBBED: load window icon in /home/pi/SeriousSamClassic-VK/SamTFE/Sources/SeriousSam/MainWindow.cpp, line 176.
STUBBED: Need SDL invisible window or something in /home/pi/SeriousSamClassic-VK/SamTFE/Sources/SeriousSam/MainWindow.cpp, line 357.
Ошибка сегментирования

У меня даже такого пользователя pi нет. Лог выше это вулкан версия, но и OpenGL так же туда ломится.

Вот лог самого движка вулкан версии, но там никаких ошибок.
SeriousSam.log

@tx00100xt
Copy link
Owner

tx00100xt commented May 8, 2023

Спасибо за тест на Распберри Пай ОС.

У меня даже такого пользователя pi нет. Лог выше это вулкан версия, но и OpenGL так же туда ломится.

Это связано с тем, что эти сообщения формируются на этапе компиляции. STUBBED: это Райен Гордон везде расставил как информационные сообщения. Я компилировал под пользователем pi. Это просто сообщения, обращения по этим путям нет.

Вулкан версия не работает.

Большая вероятность - что проблема на Распберри Пай ОС с неустановленными драйверами
Потому что открывали issueL
tx00100xt/SeriousSamClassic-VK#13
tx00100xt/SeriousSamClassic-VK#13 (comment)
и выяснилось что нужно что-то установить.
vulkaninfo можно сделать и посмотреть.

Еще есть вероятность, что нужно было более новые образы использовать. Я использовал 2021-10-30-raspios-bullseye-arm64.img и 2021-10-30-raspios-bullseye-armhf.img. Оказывается при использовании образов 2021 года нужно mesa вручную собирать https://www.ravbug.com/tutorials/rpi-vulkan/
Сейчас скачаю последние образы и попробую под ними собрать.

@xboxones1
Copy link

xboxones1 commented May 8, 2023

Да, нужно установить пакет mesa-vulkan-drivers. Тогда его стоит добавить в зависимости для deb пакета.
Проверил на вулкане, игры работают, моды работают.

@tx00100xt
Copy link
Owner

Ясно. Пересоберу пакеты. Это быстрее, чем всё заново делать под новым образом.

@tx00100xt
Copy link
Owner

Обновил все serioussamclassic-vk для Raspberry Pi OS 32/64. При установке пакет, как и нужно, запросил mesa-vulkan-drivers.
И чего я не ожидал - всё заработало на qemu с vulkan.

vk1

Спасибо за помощь, к вечеру сделаю пакеты для Ubuntu 23.04. Там недолго.

@tx00100xt
Copy link
Owner

Добавил пакеты для Ubuntu 23.04
https://github.com/tx00100xt/serioussam-packages#lunar

@tx00100xt
Copy link
Owner

tx00100xt commented May 8, 2023

@jmcerrejon Hello again.
Packages for Raspberry Pi OS 64-bit have been tested on a physical Raspberry Pi4 (with Raspberry Pi OS 64-bit installed). The game itself and mods work.
Thanks @xboxones1 for testing.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants