samstyle / Xpeccy

Multiplatform emulator of retro computers
MIT License
73 stars 13 forks source link

(OS X, Ubuntu) Баги с отображением элементов интерфейса в отладчике #7

Closed alexanderk23 closed 7 years ago

alexanderk23 commented 7 years ago

На OS X окно дебаггера выглядит вот как-то так (сборка из master):

2017-03-08 17 35 22

Весна, даже виджеты лезут друг на друга ;) На дефолтных Ubuntu 14.04 и 16.04 примерно та же история с наползанием виджетов, но дамп там отображается.

samstyle commented 7 years ago

Ужасненько. :) Растяну окно в следующем срезе. Кстати, в OSX сейчас работает клавиатура в плане передачи кнопок в спектрум?

alexanderk23 commented 7 years ago

Тут после сборки внезапно оказалось, что вместо ROM-ов почему-то мусор, поэтому кроме снапшотов ничего не запустить. Причём именно в ОС Х, под убунтой сейчас собралось и работает нормально. 2017-03-08 23 51 09

alexanderk23 commented 7 years ago

Клавиатура, кажется, не заработала.

samstyle commented 7 years ago

Для OSX пока что не инициализируются пути, где лежат файлы конфигов (src/xcore/config.cpp, функция initPaths), потому как я понятия не имею, где они по канону должны лежать. Если бы был какой-нибудь хакинтош, который мне в виртуалбокс установился, я бы быстрее это уладил.

alexanderk23 commented 7 years ago

В теории, это ~/Library/Preferences/%APPNAME%. В Qt5 вроде как есть инструменты для получения стандартных путей в зависимости от системы, в Qt4 сходу не нашёл. Хакинтош никогда не пробовал ставить, так что даже не знаю. Но, если вдруг чего, я всегда готов собрать и потестить )

alexanderk23 commented 7 years ago

Почитал ещё и сам запутался. Класс QSettings в Qt при использовании формата .ini (а не нативного для оси) и на Linux и на OS X кладёт конфиги просто в ~/.config/%ORGNAME%/%APPNAME%, как сейчас. Так что может быть даже правильнее оставить всё как есть.

samstyle commented 7 years ago

Над клавиатурой я работаю. Сейчас бы проверить, с каких мест пытаются читаться rom-ы и почему не читаются.

alexanderk23 commented 7 years ago

Окей. Вечером попробую посмотреть, что происходит, по результатам отпишусь.

alexanderk23 commented 7 years ago

В общем, с путями всё нормально, а вот при чтении ромов в profile.cpp std::ifstream.readsome() возвращает 0 и ничего не читает. С заменой на read() работает.

samstyle commented 7 years ago

Попробуй build 20170309. Клавиатуру, ромы и отладчик. Отладчик можно растянуть в ширину, чтобы всё влезало

alexanderk23 commented 7 years ago

Собрал, только в src/libxpeccy/filetypes/raw.c надо поменять __APPLE на __APPLE__. Ромы читаются, окно отладчика: 2017-03-09 23 32 24 Клавиатура заработала! Ура! )

В убунте пока всё так же^W а, нет, всё хорошо - это я криво пересобрал ) 2017-03-10 00-18-04

Там ещё заметил опечатку prf->zx->romsize = file.read(pageBuf,0x4000) - file.read() возвертает bool, а нам надо file.read(pageBuf,0x4000); prf->zx->romsize = file.gcount().

alexanderk23 commented 7 years ago

Ещё про одну штуку я забыл: окно приложения после запуска надо вручную поднимать на передний план (я влепил после show() у себя raise() и activateWindow()), само не вылезает, стесняется.

samstyle commented 7 years ago

romsize используется только для gameboy. хотя, и его, наверное, можно отрезать. остальное учту. попробую перекомпоновать окно отладчика. надо как-то проверять его под разным окружением и темами оформления.

alexanderk23 commented 7 years ago

Спасибо! Кажется, можно практически начинать забывать про анрил из-под вайна )