ZEman (07.05.2024)
zebest, спасибо! Всех тоже с праздником!
И да, на скрине выше WebAssembly-версия Emu80
К публичному тестированию пока не готов, но думаю, что уже скоро...
Oleg N. Cher (07.05.2024), svofski (08.05.2024)
Приветствую! Хотелось бы поблагодарить за хороший эмулятор и попутно решить проблемы с запуском.
В общем, на старом одноядерном ноуте, установлен дебиан 11 (32 битный) и скачанные отсюда прекомпиленные сборки не запускались (ошибки сегментации выдвавало в терминале). Скачал сырцы и начал потихоньку их компилировать (в надежде, что может откомпиленный в родной системе эмулятор заработает): сначала lite версию, заметм sdl/wx и напоследок qt5 (попутно доустанавливая все необходимые компоненты в систему). Ну так вот по итогу получается лайт и сдл версии выдают ошибки сегментации (valgrind ругается на обращение к адесу 0х0). И я уже не надеялся на qt5 версию, но внезапно она собралась и запустилась. Все бы ничего, но, к сожалению, не работает звук. Это можно как-то починить? Если там нужны с моей стороны какие-то данные или терминальные команды, то я сделаю и выложу результаты.
А, и еще, при разворачивании на весь экран и дальнейшем восстановлении (возврату к рабочему столу), верхняя часть окна эмулятора (та за которую нужно хвататься для перемещения по экрану, сворачиванию и закрытию) она находится за пределами экрана. Пока удалось победить правкой файла _settings/emu80.ini значения
правкой на неотрицательные[window]
left=-1
top=-20
спасибо
brill, на Debian, чтобы появился звук, нужно доустановить пакет libqt5multimedia5-plugins. Какой оконный менеджер используется?
brill (13.07.2024)
Странно, нужны подробности - что и как делалось...
Да, есть проблема, смоделировал, спасибо за баг-репорт! Завтра изучу подробнее и постараюсь исправить, но похоже, что проблема с восстановлением позиции окна проявляется только под Linux, и только в LXDE появляются отрицательные значения. Также если выставить режим изменяемого размера окна (Alt-0), то все работает как задумано.
Кстати, не обязательно править конфиг для исправления позиции окна, пока вполне можно переместить окно с помощью клавиатуры, нажав Alt-Пробел и выбрав перемещение из меню.
brill (14.07.2024)
Делал сборки строго по инструкции
После компиляции и установки, в домашнем каталоге папку emu80 переименовываю в emu80lite, emu80sdlwx и emu80qt соотв. В итоге получив 3 разные портейбл версии.Код:#### Порядок компиляции и установки SDL/wx-версии: git clone https://github.com/vpyk/emu80v4.git cd emu80v4 make -f Makefile.sdlwx make install -f Makefile.sdlwx #### Порядок компиляции и установки lite-версии: git clone https://github.com/vpyk/emu80v4.git cd emu80v4 make -f Makefile.lite make install -f Makefile.lite
Далее, если запускать дабл-кликом через файловый менеджер, то ничего не происходит (кроме qt-версии)
При запуске через терминал sdl и lite версий получаю "Segmentation fault" (кстати, заметил, что и qt-версия выдает при запуске через терминал эту ошибку, но ее выдает на консоль уже после закрытия qt окна эмулятора)
при запуске скажем lite версии через valgrind получаю следующий выхлоп:
gdb выхлоп:Код:user@debian:~/Games/emu80lite$ valgrind ./Emu80lite ==18923== Memcheck, a memory error detector ==18923== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==18923== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info ==18923== Command: ./Emu80lite ==18923== ==18923== Jump to the invalid address stated on the next line ==18923== at 0x0: ??? ==18923== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==18923== ==18923== ==18923== Process terminating with default action of signal 11 (SIGSEGV) ==18923== Bad permissions for mapped region at address 0x0 ==18923== at 0x0: ??? ==18923== ==18923== HEAP SUMMARY: ==18923== in use at exit: 2,288,212 bytes in 8,298 blocks ==18923== total heap usage: 24,822 allocs, 16,524 frees, 5,614,649 bytes allocated ==18923== ==18923== LEAK SUMMARY: ==18923== definitely lost: 0 bytes in 0 blocks ==18923== indirectly lost: 0 bytes in 0 blocks ==18923== possibly lost: 572,848 bytes in 2,488 blocks ==18923== still reachable: 1,715,364 bytes in 5,810 blocks ==18923== suppressed: 0 bytes in 0 blocks ==18923== Rerun with --leak-check=full to see details of leaked memory ==18923== ==18923== For lists of detected and suppressed errors, rerun with: -s ==18923== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Segmentation fault user@debian:~/Games/emu80lite$
Да, так нормально будет.Код:user@debian:~/Games/emu80lite$ gdb -q ./Emu80lite Reading symbols from ./Emu80lite... (No debugging symbols found in ./Emu80lite) (gdb) run Starting program: /home/user/Games/emu80lite/Emu80lite [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [New Thread 0xb6b8bb40 (LWP 19054)] [New Thread 0xae0a5b40 (LWP 19056)] [New Thread 0xad8a4b40 (LWP 19057)] [New Thread 0xaceffb40 (LWP 19058)] [New Thread 0xac4ffb40 (LWP 19059)] Thread 1 "Emu80lite" received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? () (gdb) quit A debugging session is active. Inferior 1 [process 19050] will be killed. Quit anyway? (y or n) y user@debian:~/Games/emu80lite$
Ясно, так тоже работает. Я ведь только учусь и не шибко знаком с линуксом.
Если нужны какие-то дальнейшие телодвижения, то жду инструкций, а то я не совсем понимаю, что я должен делать при запросе подробностей.
Не получилось воспроизвести, какой точно дистрибутив (Debian 11 x86?), какие в нем версии SDL и wxWidgets?
Можно также добавить в Makefile -g к строке CFLAGS и запустить скомпилированный файл в gdb:
gdb ./Emu80
(gdb) run
GDB выдаст номер строки, в которой происходит ошибка.
Alt-Пробел работает также и в Windows
Увы, сегодня не успел, чуть позже...
Уж не знаю те ли я команды ввожу, но раз о них сказано не было, то какие нашел - такие и ввел.
Код:user@debian:~/emu80lite_debug$ hostnamectl Static hostname: debian Icon name: computer Machine ID: --- Boot ID: --- Operating System: Debian GNU/Linux 11 (bullseye) Kernel: Linux 5.10.0-30-686-pae Architecture: x86Добавил ключ -g в секцию CFLAGS файла Makefile.liteКод:user@debian:~/emu80lite_debug$ sdl-config --version 1.2.15 user@debian:~/emu80lite_debug$ sdl2-config --version 2.0.14 user@debian:~/emu80lite_debug$ wx-config --version 3.0.5
далееКод:CFLAGS = -g -c -Wall -std=c++11 `sdl2-config --cflags` -DPAL_SDL -DPAL_LITE
после этого версию с отладочной информацией запускаю в gdb и получаю результат как и ранееКод:make clean -f Makefile.lite make -f Makefile.lite
Это когда часто приходиться вызывать это меню, а если раз в сто лет, то комбинация совершенно забывается.Код:user@debian:~/emu80lite_debug$ gdb ./Emu80lite GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. --Type <RET> for more, q to quit, c to continue without paging-- Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./Emu80lite... (gdb) run Starting program: /home/user/emu80lite_debug/Emu80lite [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [New Thread 0xb6b8bb40 (LWP 4359)] [New Thread 0xae0a5b40 (LWP 4363)] [New Thread 0xad6ffb40 (LWP 4364)] [New Thread 0xacefeb40 (LWP 4365)] [New Thread 0xac4ffb40 (LWP 4366)] Thread 1 "Emu80lite" received signal SIGSEGV, Segmentation fault. --Type <RET> for more, q to quit, c to continue without paging-- 0x00000000 in ?? () (gdb) quit A debugging session is active. Inferior 1 [process 4354] will be killed. Quit anyway? (y or n) y user@debian:~/emu80lite_debug$
А я и не тороплю, эмуль работает, а мелкие неудобства можно и пережить.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)