Q-Master, да, пока не очень хорошо. Однако поддерживаю SAM style и надеюсь он доработает эмулятор ZX-Spectrum для LINUX, которые и так редкость.
Q-Master, да, пока не очень хорошо. Однако поддерживаю SAM style и надеюсь он доработает эмулятор ZX-Spectrum для LINUX, которые и так редкость.
zx-info.r RIP
SAM style, посмотрел на твои исходники... Вот просто интересно - а почему ты (как и другие) не попробуешь сделать тактовую синхронизацию через rdtsc? Это конечно привязывает к данному компу, но точнее растактовки быть не может...
Сомневаюсь, и вам советую!
Небольшие багоправки (упдатесом это не назовёшь).
rdtsc - это сильно... Токмо такая точность не особо нужна.
Временно работа над эмулем приостановлена в пользу проекта на ZX.
Все любят гипножабу
Извиняюсь что влезаю. Изучаю сейчас Qt в плане перевода своих эмуляторов на него.
Заметил что в Xpeccy для организации вызова фреймов эмулирующей части используется QTimer. Не изучалось ли -- насколько он вообще приемлемо работает?
Сам думаю встроится как-нибудь в основной цикл обработки сообытий -- например, написанием своего QEventLoop.
Good news, everyone.
Три дня переписывания и неделя отладки новой эмуляции Z80 принесла плоды - это чудище стало тормозить куда меньше и уже работает у меня на ноутбуке. Обновление в первом посте.
---------- Post added at 15:33 ---------- Previous post was at 15:31 ----------
ЗЫ: QTimer работает сносно, как мне кажется...
Все любят гипножабу
Не собирается:
qmaster@Deb-G5-QM:~/--/xpeccy$ qmake
qmaster@Deb-G5-QM:~/--/xpeccy$ make
/usr/bin/uic-qt4 ui/develwin.ui -o ui_develwin.h
/usr/bin/uic-qt4 ui/selname.ui -o ui_selname.h
/usr/bin/uic-qt4 ui/setupwin.ui -o ui_setupwin.h
/usr/bin/uic-qt4 ui/umadial.ui -o ui_umadial.h
g++ -c -pipe -O2 -fno-optimize-sibling-calls -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Isrc/z80 -I. -I. -o bdi.o src/bdi.cpp
g++ -c -pipe -O2 -fno-optimize-sibling-calls -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Isrc/z80 -I. -I. -o debuger.o src/debuger.cpp
In file included from src/debuger.cpp:1:
src/video.h:9:18: error: SDL.h: Нет такого файла или каталога
In file included from src/debuger.cpp:1:
src/video.h:39: error: ISO C++ forbids declaration of ‘SDL_Surface’ with no type
src/video.h:39: error: expected ‘;’ before ‘*’ token
src/video.h:40: error: ‘SDL_Color’ does not name a type
src/debuger.cpp: In member function ‘DasmRow DebugWin::getdisasm()’:
src/debuger.cpp:236: warning: comparison is always false due to limited range of data type
src/debuger.cpp:242: warning: comparison is always false due to limited range of data type
src/debuger.cpp: In member function ‘void DebugWin::switchbp(BPoint)’:
src/debuger.cpp:335: error: ‘printf’ was not declared in this scope
make: *** [debuger.o] Ошибка 1
---------- Post added at 16:12 ---------- Previous post was at 16:11 ----------
без qmake - собирается, но вот это:
src/debuger.cpp:236: warning: comparison is always false due to limited range of data type
src/debuger.cpp:242: warning: comparison is always false due to limited range of data type
остается
---------- Post added at 16:16 ---------- Previous post was at 16:12 ----------
Program received signal SIGSEGV, Segmentation fault.
0x10041764 in Tape::sync() ()
(gdb) bt
#0 0x10041764 in Tape::sync() ()
#1 0x1003e06c in Sound::sync() ()
#2 0x1004dfb8 in Z80::exec() ()
#3 0x10018544 in EmulWin::emulframe() ()
#4 0x1006572c in EmulWin::qt_metacall(QMetaObject::Call, int, void**) ()
#5 0x0f0a15d0 in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#6 0x0f0b423c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#7 0x0f1173d0 in QTimer::timeout() () from /usr/lib/libQtCore.so.4
#8 0x0f0bdfc4 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQtCore.so.4
#9 0x0f0af960 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#10 0x0f37c6a8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#11 0x0f384148 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#12 0x0f09ad80 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#13 0x0f0d59b8 in ?? () from /usr/lib/libQtCore.so.4
#14 0x0f0d1804 in ?? () from /usr/lib/libQtCore.so.4
#15 0x0e81d6c0 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#16 0x0e822368 in ?? () from /lib/libglib-2.0.so.0
#17 0x0e822508 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#18 0x0f0d1288 in QEventDispatcherGlib:rocessEvents(QFlags<QEventLoop::ProcessEventsFlag> ) () from /usr/lib/libQtCore.so.4
#19 0x0f451110 in ?? () from /usr/lib/libQtGui.so.4
#20 0x0f098a1c in QEventLoop:rocessEvents(QFlags<QEventLoop::ProcessEventsFlag> ) () from /usr/lib/libQtCore.so.4
#21 0x0f098fc8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsF lag>) () from /usr/lib/libQtCore.so.4
#22 0x0f09f6d4 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#23 0x0f37c780 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#24 0x10027ef0 in main ()
/usr/bin/qmake-qt4 -unix INCPATH+=/usr/include/SDL/ LIBS+=-lSDL\ -lasound OBJECTS_DIR=./obj -o Makefile xpeccy.pro
Qt 4.6.3 - недавно заметил, что собранное с 4.6 на более ранних версиях не работает.
С предупреждением в debugger.cpp снова забыл
строка 233: signed char bt;
Последний раз редактировалось SAM style; 21.06.2010 в 16:24.
Все любят гипножабу
Ну и мне так и не удалось попасть в Глюк.
Qt у меня 4.6.3-1
Глючит оно - ужас. Мне так и не удалось в нескольких случаях добиться от него банального ресета. Забивает весь экран 0 0 0 0 0 0 0 0 0 0 и continue?
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)