Summary: | powermanga после проигрывания заставки (INTRO), вылетает по Segfault | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | dfpl <lubyagin> | ||||
Component: | powermanga | Assignee: | Fr. Br. George <george> | ||||
Status: | NEW --- | QA Contact: | qa-sisyphus | ||||
Severity: | major | ||||||
Priority: | P5 | CC: | amakeenk | ||||
Version: | unstable | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Attachments: |
|
Посмотрел исходный код игры, он весьма нетривиальный (со вставками на ассемблере и анимацией движения объектов по кривым Безье). Понять, где там segfault происходит, у меня не получилось. Чтобы сохранить работоспособность игры, можно оставить её в режиме SDL (full-screen). То есть, применить следующий патч: --- powermanga.orig/powermanga.spec 2024-06-14 21:48:45.207286576 +0300 +++ powermanga/powermanga.spec 2024-06-15 01:18:59.946644152 +0300 @@ -1,6 +1,6 @@ Name: powermanga Version: 0.93.1 -Release: alt2 +Release: alt3 Summary: Shoot them up with 3d graphics License: %gpl3plus @@ -51,8 +51,7 @@ %configure \ --mandir=%_man6dir \ - --enable-x11 \ - --with-x + --without-x %make scoredir=%_localstatedir/games Хотя, чисто субъективно, кривые движения кораблей противника при ресайзе 320:200 -> 16:9 будут выглядеть неестественными, чаще промазываешь при стрельбе по ним. Это беда многих SDL-игр, которые не сохраняют ratio при ресайзе до full-screen (можно бы было добавлять чёрный border с правой и левой части экрана). |
Created attachment 16267 [details] скриншот главного экрана-меню (powermanga) Есть пара замечаний по пакету powermanga. Первое. Музыка в INTRO тут отличная, но в конце её проигрывания вылетает по Segfault: $ powermanga (II) opendir(/home/lk/.config/tlk-games) successful [config_file.c:178, configfile_check_dir] (II) configuration filename: /home/lk/.config/tlk-games/powermanga.conf [config_file.c:238, configfile_load] (EE) can't open file /home/lk/.config/tlk-games/powermanga.conf (No such file or directory) [tools.c:884, load_absolute_file] (EE) lisp_read_file(/home/lk/.config/tlk-games/powermanga.conf) failed! [config_file.c:242, configfile_load] Ошибка сегментирования $ strace powermanga ... poll(0x7ffc1d8e68d8, 1, -1) = 1 ([0x7ffc1d8e68d8]) writev(8, 0x7ffc1d8e6a30, 3) = 240664 select(0, NULL, NULL, NULL, 0x7ffc1d8e6ce0) = 0 (Timeout) --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7fc916c92208} --- +++ killed by SIGSEGV +++ Ошибка сегментирования И второй момент, бинарнику тут присвоен SGID-флаг: $ file /usr/bin/powermanga /usr/bin/powermanga: setgid executable, regular file, no read permission $ ls -l /usr/bin/powermanga -rwx--s--x 1 root games 277272 апр 22 2021 /usr/bin/powermanga Убираем SGID-флаг, это позволяет запуститься под valgrind, $ valgrind -v powermanga но видны ошибки отрисовки графики. Очевидно, что где-то игра вылазит за пределы экранного буфера SDL или ошибочно работает с другой памятью. См. приложенный скриншот.