Просмотр полной версии : ZEmu
Alexandr Medvedev
30.06.2009, 20:56
а что мне надо сделать чтоб так получилось?Options -> AnalisTRK.
у меня так:
http://images.detstwo.com/thumbs/JaOBXe.png (http://images.detstwo.com/view/JaOBXe.png)
а как должно быть?
Alexandr Medvedev
30.06.2009, 22:45
А у меня пишет Track not formatted, хотя это может быть и из-за <NoDelay>yes</NoDelay> .
да, так и есть, я только что проверил.
вообще nodelay скорее нужно для дебага, ибо с trdos traps это не имеет ничего общего, и скорость работы эмуля при nodelay=yes не увеличивается.
CityAceE
02.07.2009, 14:53
Последнюю версию не удаётся скомпилировать. Что я делаю не так?
stanislav@ZX-Spectrum:~/1/zemu/zemu-compiletree$ make
make -C lib_z80ex static
make[1]: Вход в каталог `/home/stanislav/1/zemu/zemu-compiletree/lib_z80ex'
ar rs ./lib/libz80ex.a z80ex.o
ar rs ./lib/libz80ex_dasm.a z80ex_dasm.o
make[1]: Выход из каталога `/home/stanislav/1/zemu/zemu-compiletree/lib_z80ex'
cp -f lib_z80ex/lib/libz80ex.a zemu/lib_z80ex/libz80ex.a
cp -f lib_z80ex/lib/libz80ex_dasm.a zemu/lib_z80ex/libz80ex_dasm.a
make -C zemu
make[1]: Вход в каталог `/home/stanislav/1/zemu/zemu-compiletree/zemu'
g++ -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -O2 -fomit-frame-pointer -Wall -g -pipe -DCONFIG_PATH=\".\" -c lib_wd1793/wd1793_trkcache.cpp -o lib_wd1793/wd1793_trkcache.o
lib_wd1793/wd1793_trkcache.cpp: In member function ‘void C_TrkCache::seek(C_Fdd*, unsigned int, unsigned int, SEEK_MODE)’:
lib_wd1793/wd1793_trkcache.cpp:42: ошибка: cast from ‘C_Fdd*’ to ‘int’ loses precision
lib_wd1793/wd1793_trkcache.cpp:42: ошибка: cast from ‘C_Fdd*’ to ‘int’ loses precision
make[1]: *** [lib_wd1793/wd1793_trkcache.o] Ошибка 1
make[1]: Выход из каталога `/home/stanislav/1/zemu/zemu-compiletree/zemu'
make: *** [zemu] Ошибка 2
stanislav@ZX-Spectrum:~/1/zemu/zemu-compiletree$
а как убрать пердёж из динамиков ?
а то аж уши вянут, включаешь и мало того что у эмуля нет гуя нормального, так ещё и звук этот дурацкий приходится терпеть. :(
p.s.
операционка у меня Windows serwer 2008 32 bit.
Последнюю версию не удаётся скомпилировать. Что я делаю не так?
у вас 64-х битная система?
замените строку 42 в файле lib_wd1793/wd1793_trkcache.cpp с
if (!( ((int)d - (int)drive) | (sf - fs) | (cyl - this->cyl) | (side - this->side) )) return;
на
if ( (d == drive) && (sf == fs) && (cyl == this->cyl) && (side == this->side) ) return;
кстати, что там с проблемами с клавиатурой? решились?
---------- Post added at 15:52 ---------- Previous post was at 15:48 ----------
а как убрать пердёж из динамиков ?
всё время трещит?
операционка у меня Windows serwer 2008 32 bit.
ну даже и не знаю, может 2008 сервер даёт эмулю низкий приоритет?
попробуёте в конфиге увеличить параметр WqSize с 5 до, скажем, 10 (и убедитесь что UseSdlSound выставлен в "no")
CityAceE
02.07.2009, 17:11
у вас 64-х битная система?
Да.
замените строку 42 в файле lib_wd1793/wd1793_trkcache.cpp с
Спасибо! Помогло. Эмулятор скомпилировался и запустился!
Можно ли сделать так, что бы при компиляции автоматически определялась система и подставлялась нужная строка?
кстати, что там с проблемами с клавиатурой? решились?
Проблема с клавиатурой возникла на нетбуке. Я пока к нетбуку не прикасался. А вот на настольном компьютере клавиатура работает как положено.
---------- Post added at 00:11 ---------- Previous post was at 00:06 ----------
1. По F3 эмулятор выходит. Возможности загрузить файл нет.
2. После запуска эмулятора частота процессора поднимается до 100% и кулер на нём начинает шуметь (процессор греется) - эмулятор забирает на себя все ресурсы.
Можно ли сделать так, что бы при компиляции автоматически определялась система и подставлялась нужная строка?
новая строка подходит для любой системы, в новой версии всё будет ок.
1. По F3 эмулятор выходит. Возможности загрузить файл нет.
это на нетбуке или на на настольном компьютере?
просто выходит или ошибка какая-нибудь?
2. После запуска эмулятора частота процессора поднимается до 100% и кулер на нём начинает шуметь (процессор греется) - эмулятор забирает на себя все ресурсы.
sdl звук или нативный? если sdl звук, попробуйте выключить его (UseSdlSound=no)
если у вас есть время и возможность, могли бы вы попереключать параметры конфига (выключить звук например или дополнительные девайсы).
Sinus, да, всё время при включеном эмуляторе идёт треск из динамиков.
насчёт того что эта версия виндовс может както повлиять на звук, сильно сомневаюсь, у меня много различных эмуляторов (для эмуляции разных компьютеров) ошибок обычно нет.
может это SDL звук такой эфект даёт ?
и ещё хочу спросить, будет ли в эмулятор добавляться нормальное меню с опциями, по которым можно лазить мышкой ?
Sinus, да, всё время при включеном эмуляторе идёт треск из динамиков.
насчёт того что эта версия виндовс может както повлиять на звук, сильно сомневаюсь, у меня много различных эмуляторов (для эмуляции разных компьютеров) ошибок обычно нет.
дело в том, что эмуль изначально писался (и пишется по сей день) под линукс, а вин-версия это просто порт.
может это SDL звук такой эфект даёт ?
так он всё таки включен или нет? звук есть нативный, через виндовые функции (если UseSdlSound=no), и тогда WqSize должен влиять на звук.
и ещё хочу спросить, будет ли в эмулятор добавляться нормальное меню с опциями, по которым можно лазить мышкой ?
нет. не хочется привязываться и gui-библиотекам (как то qt либо gtk).
а если под винду, так есть же много хороших эмулей, с гуем и без.
Alexandr Medvedev
03.07.2009, 16:04
дело в том, что эмуль изначально писался (и пишется по сей день) под линукс, а вин-версия это просто порт.У меня тот же самый треск, а вот в прошлых версиях его не было, так что проблема не в портировании, а в изменениях сделанных в последней версии.
CityAceE
05.07.2009, 13:51
новая строка подходит для любой системы, в новой версии всё будет ок.
Это очень хорошо!
это на нетбуке или на на настольном компьютере?
На нетбуке эмулятор по-прежнему на клавиши не реагирует и звук трещит. То есть по F3 выходит на компьютере.
просто выходит или ошибка какая-нибудь?
Просто молча выходит и всё.
sdl звук или нативный? если sdl звук, попробуйте выключить его (UseSdlSound=no)
Увы, не разобрался где посмотреть и переключить :( Я просто качаю исходники и компилирую их.
если у вас есть время и возможность, могли бы вы попереключать параметры конфига (выключить звук например или дополнительные девайсы).
Требуются дополнительные инструкции :)
И ещё большая просьба оформить ссылку на скачивание, лог изменений и полезные советы, и поместить всё это в первом сообщении.
Увы, не разобрался где посмотреть и переключить :( Я просто качаю исходники и компилирую их.
текстовым редактором в файле config.xml.
Требуются дополнительные инструкции :)
И ещё большая просьба оформить ссылку на скачивание, лог изменений и полезные советы, и поместить всё это в первом сообщении.
сделал. и там же инструкции по настройке конфига.
---------- Post added at 12:02 ---------- Previous post was at 11:59 ----------
Товарищи, у кого проблемы со звуком, измените в config.xml пару строчек:
TsfmMode выставить в "ay"
EnableCovox - "no"
UseSdlSound - "no"
OssFragNum - увеличить значение в 2 раза (если linux)
WqSize - увеличить значение в 2 раза (если win)
В крайнем случае SoundEnable выставить в "no"
И я очень прошу отписаться о результатах, это очень для меня важно.
Alexandr Medvedev
07.07.2009, 22:25
Товарищи, у кого проблемы со звуком, измените в config.xml пару строчекПоменял -- как трещал так и трещит.
В крайнем случае SoundEnable выставить в "no"А теперь молчит.
у меня ничего не трещит, бипер в менюшке булькае, но вот при попытке нажать F3:
# ./zemu
$ww,.
`^$$$ww,.
`^$$$$$$
,$$7'
_j$$' __ __ _ _
,j$$7 /__ (-_ | ) ) (_|
$$$$$$w.
`^^T$$$w, rst'o6
`^T$$
restorer [ restorer.fct@gmail.com ]
boo_boo [ boo_boo@inbox.ru ]
breeze (gfx)
with help of SMT
*** buffer overflow detected ***: ./zemu terminated
Аварийный останов
если запустить с явным указанием пути к TRD всё булькает.
Брать где обычно (http://detstwo.com/pub/zemu)
----
upd: в win версии гарантированно будут проблемы с SDL звуком.
ссылка на пофикшенную linux версию через пост
----
#####################
## Version 0.99942 ##
#####################
[fix] Вылетание при нажатии на F3.
[upd] Возможность выбора диска в win32 версии. Кстати, может глючить сохранение диска (в linux всё должно быть по прежнему круто).
[fix] Пересчёт таймингов при входе/выходе из турбы. Теперь ВГ-шка не глючит непойми от чего.
[upd] При выходе по ESC спрашивает (Y/N)
[fix] В очередной раз попытался пофиксить SDL звук. Если и теперь при SDL звуке 100% загрузка процессора и эмуль ни на что не реагирует, то это проблемы SDL.
[upd] Из конфига можно менять множитель размера буфера для SDL звука (параметр SdlBufferSize, может быть от 4х и выше. Реальный размер буффера = SdlBufferSize * 4096).
[add] Шрифт 4x8 из Аласма.
[upd] Дебаггер использует новый шрифт.
[add] F9 в дебаггере - выполнить до этого адреса.
[upd] Определялка активных звуковых устройств в последнюю секунду.
[add] Различные режимы микшера (параметр MixerMode):
0 - умный микшер, громкость от -32768 до 32767
1 - умный микшер, громкость от 0 до 32767
2 - микшер по-старому (значение звука делится на общее кол-во устройств), громкость от -32768 до 32767
3 - микшер по-старому, громкость от 0 до 32767
http://detstwo.com/pub/zemu/zemu-configs.zip - набор минимальных конфигов
Alexandr Medvedev, если проблемы со звуком остались, то попробуйте поменять параметр MixerMode (от 0 до 4) или заменить конфиг конфигами из набора минимальных конфигов.
CityAceE, очень интересует как будет вести себя новая версия на нетбуке. попробуйте взять по очереди конфиги из минимального набора и поместить из в папку с эмулятором, переименовав в config.xml. (и если вы раньше инсталлировали (make install), то не инсталлируйте для теста).
Брать где обычно
походу, что-то ты зацепил :(
make
make -C lib_z80ex static
make[1]: Entering directory `/opt/My ZX/zemu.src/zemu-compiletree/lib_z80ex'
ar rs ./lib/libz80ex.a z80ex.o
ar rs ./lib/libz80ex_dasm.a z80ex_dasm.o
make[1]: Leaving directory `/opt/My ZX/zemu.src/zemu-compiletree/lib_z80ex'
cp -f lib_z80ex/lib/libz80ex.a zemu/lib_z80ex/libz80ex.a
cp -f lib_z80ex/lib/libz80ex_dasm.a zemu/lib_z80ex/libz80ex_dasm.a
make -C zemu
make[1]: Entering directory `/opt/My ZX/zemu.src/zemu-compiletree/zemu'
g++ -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -O2 -fomit-frame-pointer -Wall -g -pipe -DCONFIG_PATH=\".\" -c config.cpp -o config.o
g++ -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -O2 -fomit-frame-pointer -Wall -g -pipe -DCONFIG_PATH=\".\" -c cpu_trace.cpp -o cpu_trace.o
g++ -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -O2 -fomit-frame-pointer -Wall -g -pipe -DCONFIG_PATH=\".\" -c defines.cpp -o defines.o
g++ -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -O2 -fomit-frame-pointer -Wall -g -pipe -DCONFIG_PATH=\".\" -c dialog.cpp -o dialog.o
g++ -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -O2 -fomit-frame-pointer -Wall -g -pipe -DCONFIG_PATH=\".\" -c dirwork.cpp -o dirwork.o
dirwork.cpp: In member function ‘bool C_DirWork::EnumFiles(const char*)’:
dirwork.cpp:195: ошибка: декларация ‘char path [4096]’ перекрывает параметр
make[1]: *** [dirwork.o] Ошибка 1
make[1]: Leaving directory `/opt/My ZX/zemu.src/zemu-compiletree/zemu'
make: *** [zemu] Ошибка 2
грёбанный белтелеком :mad: нет связи до многих серваков в россии, и до моего в том числе :mad:
пришлось залить в америку (это временно, потом будет где обычно): http://206.222.20.165/pub/zemu-0.99942ff-src.tar.gz
upd: в win версии гарантированно будут проблемы с SDL звуком.
Исправленные версии выложены в обычное место.
CityAceE
14.07.2009, 03:21
CityAceE, очень интересует как будет вести себя новая версия на нетбуке. попробуйте взять по очереди конфиги из минимального набора и поместить из в папку с эмулятором, переименовав в config.xml. (и если вы раньше инсталлировали (make install), то не инсталлируйте для теста).
Как только доберусь до нетбука и будет свободное время обязательно всё проверю...
какого ?
блин, пытаюсь открыть этот адрес http://detstwo.com/pub/zemu , а мне опера предлагает сохранить какойто файл default в 270 байт, страница даже не открывается.
открываю этот адрес в IE, эксплорер вылетает с ошибкой.
залейте куданибудь на нормальный адрес win версию эмулятора, на рапиду например.
блин, пытаюсь открыть этот адрес http://detstwo.com/pub/zemu
блин! :mad: когда мы научимся читать ВСЁ! а не только то, что нам хочется ???
http://206.222.20.165/pub/zemu-0.99942ff-src.tar.gz
бриз, там сорсы в архиве, так что zeman-у они не надо.
ZEman, сейчас должно всё работать.
---------- Post added at 12:14 ---------- Previous post was at 11:49 ----------
Исправленные версии выложены в обычное место.
breeze, ты бы хоть прочитал вначале сообщение прежде чем его комментировать :v2_laugh:
---------- Post added at 16:21 ---------- Previous post was at 16:15 ----------
Sinus, спасибо, теперь нормально работает, никаких посторонних звуков нету. :)
Q-Master
15.07.2009, 08:22
А у меня вообще никаких звуков нету, кроме бипера.
Собирал под линух. Юзается SDL.
А у меня вообще никаких звуков нету, кроме бипера.
Собирал под линух. Юзается SDL.
обычный intel процессор или с big endian?
Q-Master
16.07.2009, 09:06
обычный intel процессор или с big endian?
Пока проверял только на обычном интеле. Дома проверю на powerpc. Такая шняга началась с версии 0.99942. До нее вроде все нормально было и звук был как надо. Смотри что ты там менял.
Пока проверял только на обычном интеле. Дома проверю на powerpc. Такая шняга началась с версии 0.99942. До нее вроде все нормально было и звук был как надо. Смотри что ты там менял.
менял всё, но чтоб работал бипер и не работало всё остальное :v2_conf2:
если есть время, то протести эту специальную версию - http://detstwo.com/pub/zemu/zemu-sndtest.zip и http://detstwo.com/pub/zemu/zemu-sndtest.files.zip
zemu-sndtest надо просто замейкать, но не инсталлировать.
из zemu-sndtest-files набо взять конфиг, положить его вместо того который в эмуле и все файлы тоже скопировать в папку с эмулём.
и пробовать так:
./zemu -w beeper-test.sna
./zemu -w covox-test.sna
./zemu -w ay-test.z80
подержать секунд 5-10 и выйти.
после каждого раза будет создаваться файл output.wav
запакуй их плиз и вышли мне на restorer.fct@gmail.com
Alexandr Medvedev
16.07.2009, 17:30
Alexandr Medvedev, если проблемы со звуком остались, то попробуйте поменять параметр MixerMode (от 0 до 4) или заменить конфиг конфигами из набора минимальных конфигов.Ура! При MixerMode=3 треск пропал! А где лежит этот набор, чё-то я не нашёл?
Q-Master
19.07.2009, 19:25
менял всё, но чтоб работал бипер и не работало всё остальное :v2_conf2:
если есть время, то протести эту специальную версию - http://detstwo.com/pub/zemu/zemu-sndtest.zip и http://detstwo.com/pub/zemu/zemu-sndtest.files.zip
zemu-sndtest надо просто замейкать, но не инсталлировать.
из zemu-sndtest-files набо взять конфиг, положить его вместо того который в эмуле и все файлы тоже скопировать в папку с эмулём.
и пробовать так:
./zemu -w beeper-test.sna
./zemu -w covox-test.sna
./zemu -w ay-test.z80
подержать секунд 5-10 и выйти.
после каждого раза будет создаваться файл output.wav
запакуй их плиз и вышли мне на restorer.fct@gmail.com
Шутник. Куда дел второй файл? Первый скачался, а на второй я получил 404. Ща дома попробую собрать zemu. Посмотрим как он на паверной машине заработает.
Q-Master,
чорд. ошибся в одном символе.
так правильно: http://detstwo.com/pub/zemu/zemu-sndtest-files.zip
---------- Post added at 18:35 ---------- Previous post was at 18:34 ----------
Ура! При MixerMode=3 треск пропал!
забавно. это режим как в самых старых версиях эмуля.
А где лежит этот набор, чё-то я не нашёл?
http://detstwo.com/pub/zemu/zemu-configs.zip
Q-Master
19.07.2009, 20:27
Q-Master,
чорд. ошибся в одном символе.
так правильно: http://detstwo.com/pub/zemu/zemu-sndtest-files.zip
Скачал. Попробовал собрать дома на паверной тачке с биг-эндианом. Звук нихт арбайтен. Хрипы какие-то... шумы... Какое-то звучание на музыке есть, но слушать невозможно.
Q-Master, послушал звуки в файлах, с ними всё в порядке.
я всё понял! забыл что big endian и для звука тоже надо предусмотреть.
... хотя вообще-то SDL должен позаботится об этой проблеме ...
всё понял, я дурак :)
Q-Master
22.07.2009, 10:19
... хотя вообще-то SDL должен позаботится об этой проблеме ...
всё понял, я дурак :)
Починил?
Вроде починил.
#####################
## Version 0.99943 ##
#####################
[fix] Загрузка 48k SNA
[add] Запись SNA (48k / 128k)
[add] Возможность выбора формата для quick save / load (SnapFormat в конфиге)
[fix] Громкость tape output уменьшена, теперь программы "некорректно" срущие в порт #FE нормально играют музыку на бипере (например, Manic Miner)
Alexandr Medvedev
13.08.2009, 21:55
#####################
## Version 0.99943 ##
#####################И где оно?
Тута (http://detstwo.com/pub/zemu/index.html) попрежнему 0.9993 как Win32 так и src.
чорд, забыл '4'-ку вставить :) (по ссылкам, кстати, было правильно всё)
Q-Master
14.08.2009, 19:38
Стало лучше со звуком, но теперь оно просто тормозит не по детски. Теоретически это может быть у меня проблема с отображением. Фиг пока знает.
А раньше тормозило? Я вроде ничего особо не менял...
Q-Master
15.08.2009, 16:32
А раньше тормозило? Я вроде ничего особо не менял...
Чо-то у меня с линухом. Что-то случилось и все начало тормозить просто ужасно. Причем не пойму что.... Но один фиг бипер хрюкает.
а предыдущая версия? тормозит так же?
Но один фиг бипер хрюкает.
это как?
Q-Master
18.08.2009, 08:13
а предыдущая версия? тормозит так же?
это как?
Как обычно. Пощелкивает, но достаточно часто. Сменил кол-во буферов с 4 до 8 - щелчки и похрюкивания исчезли. Тормозит правда эмуль ужос как. fuse визуально быстрее, не смотря на то что он GTKшный и достаточно криво вывод написан
mastermind
23.08.2009, 15:28
Погонял zemu под valgrind (callgrind), по результатам немного подправил z80_ex (T_WAIT_UNTIL() кушало довольно много CPU).
См. патч здесь http://pastebin.com/f8feb49c или в аттаче.
mastermind
23.08.2009, 15:48
И вот еще подправил arc/zip:
http://pastebin.com/f3063feba
пасяба :)
насчёт z80ex сообщу boo_boo (в след. версии будет с патчем),
насчёт arc/zip не согласен с генерацией темпового имени, tempfile оно гораздо более надёжней.
mastermind
23.08.2009, 21:45
tempfile оно гораздо более надёжней.
Это смотря с какой стороны посмотреть ;)
Мне вообще не удалось выяснить что это за tempfile такой. У меня Fedora Linux 11, оно ни о каком tempfile не знает:
$ tempfile
bash: tempfile: command not found
$ yum whatprovides *bin/tempfile
Loaded plugins: fastestmirror, protectbase, refresh-packagekit
1 packages excluded due to repository protections
No Matches found
mastermind
05.09.2009, 16:57
Оптимизировал чтение из памяти. См. http://pastebin.com/f53255b28 или прикрепленный файл.
mastermind
05.09.2009, 17:17
Залил репозитарий на GitHub: http://github.com/mkoloberdin/zemu/tree/master
Буду свои изменения впредь push-ить туда.
Sinus, boo_boo, зарегьтесь там если есть желание, добавлю вас collaborator-ами, чтоб вы могли добавлять изменения прямо туда.
Краткая инструкция по git: http://www.spheredev.org/wiki/Git_for_the_lazy ну и тут см. Tutotuals: http://git-scm.com/documentation
Вытянуть репозитарий с github можно так:
git clone git://github.com/mkoloberdin/zemu.git
Если что непонятно, спрашивайте.
крута.
(но я всё равно буду вести свою ветку, ибо не все изменения мне по душе)
важные изменения буду коммитить на гитхаб, я там, кстати, есть - http://github.com/restorer
немного подправил z80_ex (T_WAIT_UNTIL() кушало довольно много CPU).
См. патч здесь 10x!, отличный патчик, залил на http://sourceforge.net/projects/z80ex версию с ним и еще парой небольших изменений
Для эмуляции Тр-Дос/ВГ93 критично ли соблюдение тактов процессора Z80?
если ВГшка в nodelay_mode, то пофиг.
если не нужно 100% работа мультилоадеров в демках, то тоже пофиг.
в остальных случаях важно и ВГ и z80
Alexandr Medvedev
25.10.2009, 17:09
кушало довольно много CPUА когда эмуль с этим исправлением ждать? А то последние версии слишком сильно CPU напрягают.
если ВГшка в nodelay_mode, то пофиг.
если не нужно 100% работа мультилоадеров в демках, то тоже пофиг.
в остальных случаях важно и ВГ и z80
Я свой эмулятор пишу, и взял эмулятор вг93 из унреалспека, пробовал и nodelay 0 и 1, не работает... Вот пытаюсь понять почему может не работать. Когда у меня такты от фонаря выставлялись то эмулятор говорил no-disk когда такты подкорректировал то теперь при *"A" говорит О.К. а при попытке чтения диска пишет ошибка чтения сектора 9.
Подскажите эмулятор который может сделать трассировку в лог файл?
По Emuzу сравнивал все нормально до команды LDIR, на ней у него башню срывает и такты до 40-50 доходят и дальше сравнение невозможно.
На чём эмуляторы отлаживаются? в частности этот Zemu?
p.s. Существует ли другой эмулятор вг93? (точность не главное, главное чтобы ЧВ запускался)
А когда эмуль с этим исправлением ждать? А то последние версии слишком сильно CPU напрягают.
у меня сейчас завал со временем. может потом соберу win версию.
Подскажите эмулятор который может сделать трассировку в лог файл?
да хотя-бы zemu :) и emuzwin
На чём эмуляторы отлаживаются? в частности этот Zemu?
фиг знает. если что-то не работает, читаю доки до посинения, нахожу ошибку, фикшу, начинает работать :)
Существует ли другой эмулятор вг93? (точность не главное, главное чтобы ЧВ запускался)
что б в исходниках и легко подключался, то наверное не существует. в исходниках есть только unreal и zxmak.net, но в последнем ВГ-шка почти 1:1 как в анриле.
в Zemu по логам, R считается неправильно, т.к. старший бит не меняется!
в Zemu по логам, R считается неправильно, т.к. старший бит не меняется!
:v2_jawdr::v2_eek::v2_laugh:
:v2_jawdr::v2_eek::v2_laugh:
http://www.emuverse.ru/wiki/Zilog_Z80/Система_команд
R: Регистр регенерации памяти, 8 бит. Увеличивается на 1 после каждой выборки команды, но инкремент затрагивает только младшие 7 бит, старший бит не меняется и может быть использован в программах.
А в Zemu он до FF считается, хотя старший бит не должен меняться.
2 psb ссылку на источник где сказано что правильно считать до FF и изменять тем самым старший бит?
И ещё...
в Zemu R+=2 для команды CB XX, и R+=2 для DD CB XX, это правильно?
А в Zemu он до FF считается, хотя старший бит не должен меняться.
ну вот я не знаю как в Zemu. но ты написал что
R считается неправильно, т.к. старший бит не меняется!
2 psb
похоже я очепятался...
либа z80ex (которая применяется в zemu) основана на коде из fuse. там применён "хитрый" ход для ускорения, когда есть регистр R и R7, где R - от 0x00 до 0xFF, а R7 - седьмой бит регистра R. комманды записи в рег. R меняют оба (R и R7), а при чтении из рег. R применяется формула ((R & 0x7F) | (R7 & 0x80)).
к слову сказать, в текущей версии (публично пока не выложено) в лог записывается правильное значение.
в Zemu R+=2 для команды CB XX, и R+=2 для DD CB XX, это правильно?
правильно.
почему в Zemu когда приходит прерывание, по логам приходит на 0038, и dT = 9 хотя выполняется команда по адресу Е5С с dT=21, а минимальный dT при приходе прерываний = 13 (2+11), так откуда взялось число 9?! в z80ex в процедуре int я такого не нашел
ошибка в функции TraceCpuInt в файле zemu.cpp
(опять же, в новой dev версии исправлено).
функция должна выглядеть так:
int TraceCpuInt(Z80EX_CONTEXT *cpu)
{
CpuTrace_Log();
int dt = z80ex_int(cpu);
cpuTrace_dt += dt;
return dt;
}
upd.
если z80ex находится в режиме Z80EX_OPSTEP_FAST_AND_ROUGH, то такты в инте будут считаться неправильно.
Прикрутил эмулятор ВГ93, от Zemu к своему эмулятору, заработал сразу. Да и его реально проще прикручивать чем оригинал из унреалспека : )
Да и его реально проще прикручивать чем оригинал из унреалспека : )
всё спасибы boo_boo, я лишь код более красивым сделал и пару хако-фиксов добавил.
mastermind
01.11.2009, 05:40
А когда эмуль с этим исправлением ждать? А то последние версии слишком сильно CPU напрягают.
Собрал под Win32, выложил здесь: http://cloud.github.com/downloads/mkoloberdin/zemu/zemu-0.99943.mm1-win32-bin.zip
Что там изменено по сравнению с оригинальной версией, можно посмотреть здесь: http://github.com/mkoloberdin/zemu/commits/master/
под winmobile собрать не пробовали?
под winmobile собрать не пробовали?
пару лет назад делал вот это - http://pocketspeccy.narod.ru/
пару лет назад делал вот это
с аигреком так и не разобрался?
с аигреком так и не разобрался?
неа, надоело с этой недовиндой бороться :)
Rubts0FF
29.03.2010, 19:52
Так, кажется мои поиски завершены! Сейчас объясню, уже несколько недель ищу/тестирую эмуляторы. Дело в том, что наиболее удобным для себя считаю эмуль Шалаева, отчасти из за пропорции экрана, раскладки клавиатуры, кучи плугов и т.п., но на новом компе работать не хочет, а под виртуальной XP видео-режим эмулируется не правильно, да и тормозит временами.
В общем на первом месте zemu, вот только для полного счастья, нужно что бы эмуль сохранял файл-образы. Желательно при операции запись на диск, т.е. при изменении файл-образа изменения должны сохранятся.
А то, написал самую крутую, единственную и неповторимую 3D-Гейму :), вышел из эмуля и все псу под хвост.
Практически все эмуляторы грешат тем, что написаны для игр/демо. Человек создавший в ArtStudio шедевр (Черный квадрат, например) не сможет без лишних телодвижений сохранить своё произведение и это при одном дисководе. Я при работе использую четыре, а сохранить могу только снапшот :(
Help!
(войти в дисковое меню) F3 -> (сохранить диск) S -> (да, уверен) Y
---------- Post added at 18:57 ---------- Previous post was at 18:56 ----------
сохраняет только TRD. есть известная багофича - если вставить в дисковод, например, bge3o5.scl, а потом его сохранить, то сохранится trd, но с расширением scl (т.е. будет bge3o5.scl но это не scl а trd)
Rubts0FF
30.03.2010, 02:35
Это уже что то, хотя сохранить все четыре ... дисковода :), хорошо у Шалаева, было, записал файл на диск, тут же сохранился образ .trd. Я пока повоюю, но надо бы сделать. И где брать последние версии?!
хорошо у Шалаева, было, записал файл на диск, тут же сохранился образ .trd.
сколько людей - столько мнений. как по мне, так это очень плохо. лучше когда я сам контролирую когда записать диск.
И где брать последние версии?!
нигде. но если mkoloberdin будет что-то наворачивать дальше, то тогда тут -> http://github.com/mkoloberdin/zemu
Rubts0FF
30.03.2010, 02:46
сколько людей - столько мнений. Это можно определять в конфиге. В любом случае спасибо!
Black1980
08.06.2010, 23:35
Господа, подскажите плиз, а как это чудо под Ubuntu 10.04 установить??? Я на линукс недавно пересел...
Q-Master
09.06.2010, 09:02
Господа, подскажите плиз, а как это чудо под Ubuntu 10.04 установить??? Я на линукс недавно пересел...
Собирать из сорцов. Задача для новичка получится нетривиальная. Метод сборки там дурной.
Метод сборки там дурной.
make && cd zemu && ./zemu
что я делаю не так?
Q-Master
10.06.2010, 11:28
make && cd zemu && ./zemu
что я делаю не так?
libz80 еще надо собирать. Насколько я помню последние разы сборки, ее надо тащить отдельно и не забыть распаковать туда, куда надо.
она сама собирается (по крайней мере в моей версии). достаточно только распаковать в нужную папку.
Black1980
11.06.2010, 11:20
libz80 еще надо собирать. Насколько я помню последние разы сборки, ее надо тащить отдельно и не забыть распаковать туда, куда надо.
А не мог бы ты подробно расписать что и как??? Что необходимо ввести в консоли и каким порядком???
Заранее спасибо!!!:)
Q-Master
15.06.2010, 09:53
А не мог бы ты подробно расписать что и как??? Что необходимо ввести в консоли и каким порядком???
Заранее спасибо!!!:)
Лучше вон пусть Синус распишет. Я его не собирал уже 100 лет. Мне Fuse хватает.
Black1980, обновил первый пост. возможно, будут ошибки при сборке, так как я точно не помню какие либы надо ставить.
в любом случае (если получилось собрать, и если не получилось) - отписывай.
ram_scan
15.06.2010, 14:40
Вобщем собрал я его, под OpenSuse 11.0
lib_z80ex ессно из мэйкфайлов правильно не собирается, ну да бог с ней, невелика проблема.
Хорошие новостя - оно работает.
Плохая новостя - не желает без SDL открывать /dev/dsp. Ибо по умолчанию правов не хватает. Добавил себя в группу audio, но перелогиниваться заленился.
Что ожидал увидеть и что разочаровало - отсутствие документации. Где хоткеи, какие хоткеи. Но эт я по исходнику и методом тыка выясню, тоже бог с ним.
А вот чего реально не хватило - отладчика. То есть он там есть. Позволяет пошагать программу, бряк поставить... А нужностей то нету...
Установка точки прерывания на адрес в стеке - нету. Выполнить до текущего места - нету. Точки прерывания по обращению к региону памяти - нету, тем более условного брякпойнта (кстати условные бряки по обращению к портам тоже полезная штука).
Состояние портов не глянуть, замапленую память не глянуть, да даже дамп памяти не глянуть. И содержимое регистров не нашел как модифицировать.
Ну и интерфейс какой-никакой все-таки нужен...
Это я к чему. Не к тому чтобы раскритиковать. Эмулятор отличный хотя бы в плане того что компактный и с бубном плясать вокруг сборки не надо, плюс работает. Мне лучше fuse он даже глянулся. Это я к тому что может быть в дебаггере уже все это в планах есть, и если я дописывать его кинусь то чтобы обезьянью работу не делать.
кстати собирали версию от mkoloberdin или мою оригинальную?
Где хоткеи, какие хоткеи
всё конфигурится из keys.config, там же можно и посмотреть хоткеи. (кроме тех что в дебаггере).
lib_z80ex ессно из мэйкфайлов правильно не собирается, ну да бог с ней, невелика проблема.
это скорее к boo_boo, но тем не менее, какие были ошибки и как исправляли?
Это я к тому что может быть в дебаггере уже все это в планах есть, и если я дописывать его кинусь то чтобы обезьянью работу не делать.
в ближайшее время попытаюсь смержить мои последние наработки с последней версией эмуля, но там скорее багфиксы, чем доработки.
по-этому если есть желание дорабатывать - дорабатывайте! чем смогу - помогу.
Q-Master
16.06.2010, 08:58
Вобщем собрал я его, под OpenSuse 11.0
lib_z80ex ессно из мэйкфайлов правильно не собирается, ну да бог с ней, невелика проблема.
Хорошие новостя - оно работает.
Плохая новостя - не желает без SDL открывать /dev/dsp. Ибо по умолчанию правов не хватает. Добавил себя в группу audio, но перелогиниваться заленился.
Что ожидал увидеть и что разочаровало - отсутствие документации. Где хоткеи, какие хоткеи. Но эт я по исходнику и методом тыка выясню, тоже бог с ним.
А вот чего реально не хватило - отладчика. То есть он там есть. Позволяет пошагать программу, бряк поставить... А нужностей то нету...
Установка точки прерывания на адрес в стеке - нету. Выполнить до текущего места - нету. Точки прерывания по обращению к региону памяти - нету, тем более условного брякпойнта (кстати условные бряки по обращению к портам тоже полезная штука).
Состояние портов не глянуть, замапленую память не глянуть, да даже дамп памяти не глянуть. И содержимое регистров не нашел как модифицировать.
Ну и интерфейс какой-никакой все-таки нужен...
Это я к чему. Не к тому чтобы раскритиковать. Эмулятор отличный хотя бы в плане того что компактный и с бубном плясать вокруг сборки не надо, плюс работает. Мне лучше fuse он даже глянулся. Это я к тому что может быть в дебаггере уже все это в планах есть, и если я дописывать его кинусь то чтобы обезьянью работу не делать.
попробуй еще fuse. там не все гладко, но собирается он 100% нормально, с доками там тоже все вроде ок, ну и отладчик достаточно наворочен. гуй на GTK или SDL. возможна сборка под венду, но думаю это нафиг не надо. А... во.. есть еще под Wii сборка. 8)
ram_scan
16.06.2010, 11:55
кстати собирали версию от mkoloberdin или мою оригинальную?
Собирал ту которая в первом посте выложена.
это скорее к boo_boo, но тем не менее, какие были ошибки и как исправляли?
Сама библиотека собирается без претензий (с git-а взятая которая).
Просто шеллскрипт, приведенный в первом же посте 1) не собирает эту библиотеку (предполагает что она собраная уже, или собирает да не там, не помню уже, на втором компе баловался), а после сборки расчитывает на то что она уже или a) заинсталлена или b) обьектники ее к эмулятору в каталожек подложили.
Вобщем собрал ее без приключений руками, подложил обьектники в zemu, и собрал потом уже снова без приключений zemu.
То есть все собирается, но нужно чуть рук приложить. Совсем свисткатый чайник не осилит.
по-этому если есть желание дорабатывать - дорабатывайте! чем смогу - помогу.
Ну значит мне и карты в руки :v2_wink2:
---------- Post added at 14:55 ---------- Previous post was at 14:50 ----------
попробуй еще fuse. там не все гладко, но собирается он 100% нормально, с доками там тоже все вроде ок, ну и отладчик достаточно наворочен. гуй на GTK или SDL. возможна сборка под венду, но думаю это нафиг не надо. А... во.. есть еще под Wii сборка. 8)
Я на fuse сейчас и катаюсь. Но не нравится оно мне. Во первых в репозитариях он обновляется начасто, а руками собирать по человечьи его не очень приятно. Во вторных в SDL-ной версии отладчик отсутствует чуть менее чем полностью (им вообще можно пользоваться там?) а в иксовой хоть и отладчик наличествует, но все равно жутко неудобный.
Поэтому отлаживаться мне приходится в r80 под досбоксом. А в r80 тоже глюков хватает. Но там хоть отладчик сьедобный. Вобщем нет в жизни щщастя.
Вот я грешным делом и задумал в zemu отладчик заимпрувить хотя-бы до уровня r80.
Q-Master
18.06.2010, 14:22
Я на fuse сейчас и катаюсь. Но не нравится оно мне. Во первых в репозитариях он обновляется начасто, а руками собирать по человечьи его не очень приятно. Во вторных в SDL-ной версии отладчик отсутствует чуть менее чем полностью (им вообще можно пользоваться там?) а в иксовой хоть и отладчик наличествует, но все равно жутко неудобный.
Странно. Я не знал что там отладчик под СДЛ не работает. Надо покопать исходники и попинать товарищей по разработке.
PS: принимаются предложения о улучшении fuse.
ram_scan
20.06.2010, 11:20
Странно. Я не знал что там отладчик под СДЛ не работает. Надо покопать исходники и попинать товарищей по разработке.
PS: принимаются предложения о улучшении fuse.
Там отладчик есть и даже работает. Но интерфейс у него отсутствует чуть более чем полностью. Mons по сравнению с SDL-нам отладчиком в fuse - верх совершенства.
Плюс там в SDL-ной версии с хоткеями напутано.
Q-Master
20.06.2010, 12:56
Там отладчик есть и даже работает. Но интерфейс у него отсутствует чуть более чем полностью. Mons по сравнению с SDL-нам отладчиком в fuse - верх совершенства.
Плюс там в SDL-ной версии с хоткеями напутано.
А можно по-поточнее. Я проверю и если надо отправлю патч в репозиторий.
ram_scan
20.06.2010, 20:25
А можно по-поточнее. Я проверю и если надо отправлю патч в репозиторий.
Ну например в основном окне Bytes/Breakpoints.
Ну в главном меню обе этих функции висят на клавише "B". Работает ессно тока Bytes. Как вызвать меню брекпоинтов без чтения мануала или без разглядывания исходника неочевидно.
Очень напрягает, что disasm не шагает вслед за PC. То есть программу пошагал на экране меняется только значение PC. Как выглядит место до которого дошагал - вручную смотри...
Вобщем вам проще SDL версию просто собрать и самому глянуть, чем в глухой телефон играть.
Я сечас в fuse в отладчик даже и не лазаю (за отсутствием предмета лазания), просто тестовые прогоны делаю, перед тем как на реале запускать.
Навигации по ленте не хватает. Только на начало перемотать, пуск и остановка. Ленточный загрузчик без tape browser'a и без возможности позиционирования хотя-бы на начало блока отладить практически невозможно.
Тот же спидлок я в r80 встроенным отладчиком откручиваю менее чем за 5 минут, в fuse проще sts-ом с мытарствами отвинчивать. Вобщем не "девелоперский" эмулятор.
Q-Master
21.06.2010, 11:18
Ну например в основном окне Bytes/Breakpoints.
Ну в главном меню обе этих функции висят на клавише "B". Работает ессно тока Bytes. Как вызвать меню брекпоинтов без чтения мануала или без разглядывания исходника неочевидно.
Очень напрягает, что disasm не шагает вслед за PC. То есть программу пошагал на экране меняется только значение PC. Как выглядит место до которого дошагал - вручную смотри...
Вобщем вам проще SDL версию просто собрать и самому глянуть, чем в глухой телефон играть.
Я сечас в fuse в отладчик даже и не лазаю (за отсутствием предмета лазания), просто тестовые прогоны делаю, перед тем как на реале запускать.
Навигации по ленте не хватает. Только на начало перемотать, пуск и остановка. Ленточный загрузчик без tape browser'a и без возможности позиционирования хотя-бы на начало блока отладить практически невозможно.
Тот же спидлок я в r80 встроенным отладчиком откручиваю менее чем за 5 минут, в fuse проще sts-ом с мытарствами отвинчивать. Вобщем не "девелоперский" эмулятор.
Спасибо. Попробую посмотреть что можно с этим сделать. Если получится - соберу новые пакеты для х86. Просто у меня PowerPC.
Последняя mkoloberdin-версия приобрела фикс для FreeBSD.
Точнее теперь это мой форк, так как я ничего не понял в этих ваших гитах, и как я могу закомитить в главную ветку.
mastermind
01.09.2010, 22:13
Последняя mkoloberdin-версия приобрела фикс для FreeBSD.
Точнее теперь это мой форк, так как я ничего не понял в этих ваших гитах, и как я могу закомитить в главную ветку.
Замержил в свою ветку. См. http://github.com/mkoloberdin/zemu
Я там еще недавно под cmake переделал сборку, попробуй на FreeBSD. Как минимум на линуксе (gnu) и винде (MSVC 2010) собирается и работает.
Краткая инструкция по сборке (потом сделаю readme):
1. Нужен cmake (есть в дистрибутивах линуксов, во фре наверное тоже, если нет. см. www.cmake.org)
2. Нужна последняя версия либы z80ex (1.1.19pre1, см. http://sourceforge.net/projects/z80ex/files/ ). Положить ее можно либо как обычно в соседнюю директорию (../z80ex) или в соответствующей опции cmake указать где она лежит (с помощью ccmake или cmake-gui можно это сделать, например).
3.1. Сборка в Linux:
mkdir build
cd build
cmake ..
опционально, если нужно опции поменять:
ccmake ..
или
cmake-gui ..
make
3.2. В винде (MSVC) аналогично, но вместо последнего шага (make) открываем сгенеренный cmake-ом .sln файл и компилим проект Zemu.
Я там еще недавно под cmake переделал сборку, попробуй на FreeBSD.
Ну вообще-то сборками под FreeBSD занимаюсь я :rolleyes: Sinus у нас на Gentoo.
Ну вообще-то сборками под FreeBSD занимаюсь я
ну так это, займись :)
я тоже опробую новую методу под линем.
mastermind
02.09.2010, 07:44
Ну вообще-то сборками под FreeBSD занимаюсь я :rolleyes:
А, ОК. :v2_rolley Ну попробуй собрать.
Q-Master
02.09.2010, 09:11
Последняя mkoloberdin-версия приобрела фикс для FreeBSD.
Точнее теперь это мой форк, так как я ничего не понял в этих ваших гитах, и как я могу закомитить в главную ветку.
git clone УРЛ
git status покажет все изменения, которые ты внес
git commit -a -m "лог-сообщение"
git push
Усе. 8) Ну можешь еще если на последнее действие ругаеццо, то git push origin master:refs/heads/master
ну или после clone git branch master
mastermind
02.09.2010, 10:46
так как я ничего не понял в этих ваших гитах, и как я могу закомитить в главную ветку.
Странно, вроде я тебя добавлял в коллабораторы, но сейчас не обнаружил. Добавил снова.
В принципе если тебе удобнее продолжать вести свою ветку, нет проблем, я буду мержить время от времени.
ну так это, займись :)
я тоже опробую новую методу под линем.
попробовать я конечно могу, но! нативно [читай в портах] cmake нету и не предвидеться. У меня он стоит как сторонняя сборка. Просто у меня была задумака засунуть zEmu в порты, а с cmake сразу возникает куча не нужных вопросов.
mastermind
02.09.2010, 12:08
нативно [читай в портах] cmake нету и не предвидеться. У меня он стоит как сторонняя сборка. Просто у меня была задумака засунуть zEmu в порты, а с cmake сразу возникает куча не нужных вопросов.
Это странно. Довольно много проектов уже вроде использует cmake (KDE например, есть KDE в портах?).
Я с FreeBSD дела почти не имел, и, возможно, поэтому не знаю о чем говорю, но быстрый поиск в гугле показывает наличие некоего порта "devel/cmake" http://www.google.com/#hl=en&q=freebsd+port+cmake
Это странно. Довольно много проектов уже вроде использует cmake (KDE например, есть KDE в портах?).
Я KDE принципиально не перевариваю, ибо начиная где-то со второй версии они пошли по принципу венды — «система лучше знает, что нужно пользователю!», я не отношусь к тем самым пользователям ;)
Я с FreeBSD дела почти не имел, и, возможно, поэтому не знаю о чем говорю, но быстрый поиск в гугле показывает наличие некоего порта "devel/cmake" http://www.google.com/#hl=en&q=freebsd+port+cmake
упс! мой косяк ;) просто когда-то собирал какой-то сторонний проект, которому требовался cmake и по какой-то причине тогда не нашел cmake. странно, но видимо стоит иногда перепроверять, прежде чем ляпать :dizzy_mad_old:
это форум про zx spectrum?
а как собрать kde под freebsd?
:)
---------- Post added at 14:23 ---------- Previous post was at 14:13 ----------
git clone УРЛ
git status покажет все изменения, которые ты внес
git push
это мне и так пришлось узнать, ибо никак по другому.
git commit -a -m "лог-сообщение"
за ключик -a спасибо, а то неудобно было по файлу через git add прогонять.
git push origin master:refs/heads/master
а это что делает?
---------- Post added at 14:28 ---------- Previous post was at 14:23 ----------
В принципе если тебе удобнее продолжать вести свою ветку, нет проблем, я буду мержить время от времени.
я уже не веду активной разработки zemu, так что будет удобней иметь одну ветку (допустим, твою).
mastermind
02.09.2010, 15:55
за ключик -a спасибо, а то неудобно было по файлу через git add прогонять.
Все же лучше это делать явно через add, имхо, чтоб случайными изменениями репозиторий не засорять. :)
я уже не веду активной разработки zemu, так что будет удобней иметь одну ветку (допустим, твою).
ОК, тогда наверное лучше push-ить все мне в master, я ее буду более-менее поддерживать.
Q-Master
03.09.2010, 09:38
это форум про zx spectrum?
а как собрать kde под freebsd?
:)
8)))
за ключик -a спасибо, а то неудобно было по файлу через git add прогонять.
Смотри только осторожно. Не добавь лишние изменения.
а это что делает?
Это если у тебя бранч не установлен, то пуш делает прямо в мастер на сервере.
Итак, наконец-то слил свою private-svn ветку с общедоступной git веткой. Теперь есть только одна единственная актуальная ветка (git).
Что появилось:
Исправленный и улучшенный cputrace
Flash color (по дефолту F1)
Turbo до 8x (было до 4x, кнопка по дефолту F2)
UnTurbo до -256x (по дефолту RCtrl+F2)
ScreensHack (меняет местами 5й и 7й экраны, по дефолту RCtrl+F6)
Ну и пару багов пофиксил.
С помощью AttribHack (F6), ScreensHack (RCtrl+F6) и UnTurbo (RCtrl+F2) очень прикольно смотреть чо делается во всякого рода демах.
Смотреть чо как компилить - в первом посте. Под винду версии нет.
mastermind
23.10.2010, 16:33
Скомпилил для винды последнюю версию: /удалено/ здесь новее ==> http://zx.pk.ru/showpost.php?p=324916&postcount=362
насколько последнюю? я вчера перешёл на свой z80 core замест z80ex.
кстати, пока фиксил в ней баги (забавный был один с EDxx), походу сломал glibc :)
ибо printf("%4X", some_value) дало GFFF
было только один раз, но я похоже начинаю верить в мистику :)
mastermind
23.10.2010, 17:54
насколько последнюю? я вчера перешёл на свой z80 core замест z80ex.
Да вот после этого вчерашнего коммита я подправил немного чтоб компилилось в MSVC. Вроде работает. Залил на github все только что.
а чё, msvc не понимает C99 ?
mastermind
23.10.2010, 18:24
а чё, msvc не понимает C99 ?
Ага, я тоже удивился, но почему-то не сильно :D Это ж MS. Им стандарты не писаны. Часть реализуют, часть нет, плюс что-то свое городят. (C99 реализован отчасти вроде, сильно не вникал, просто гуглил и правил то что не работало)
---------- Post added at 17:24 ---------- Previous post was at 17:22 ----------
Чтоб не путаться, скомпилил совсем свежую версию (коммит 86db63aba87a8fc2dcb8 ). Лежит здесь: http://github.com/downloads/mkoloberdin/zemu/zemu-2010-10-23-2.zip
самое вкусное (обявление переменных в любом месте) походу как раз и не работает.
кстати, давно хотел спросить - а чем был вообще вызван переход с mingw на msvc?
и ещё. если есть желание, может в OutputLogo впиши свой email, так сказать оставь свой след в истории :)
и совсем ещё. stdbool.h в zemu.cpp подключал, так как есть вероятность что C99 bool и C++ bool вещи разные, и что-нибудь когда-нибудь где-нибудь сглючит :)
в gcc-шном stdbool.h есть специальные define для С++
mastermind
24.10.2010, 13:28
кстати, давно хотел спросить - а чем был вообще вызван переход с mingw на msvc?
Да нет никакого "перехода". Просто захотелось сделать код более портабельным, чтоб компилилось и на msvc в т.ч., чтоб сравнить производительность и т.п. как-нибудь... (пока не занимался этим)
Вот еще выложил бинарник скомпиленный mingw: http://github.com/downloads/mkoloberdin/zemu/zemu-2010-10-24-mingw32.zip
и ещё. если есть желание, может в OutputLogo впиши свой email, так сказать оставь свой след в истории :)
ОК, вписался :)
и совсем ещё. stdbool.h в zemu.cpp подключал, так как есть вероятность что C99 bool и C++ bool вещи разные, и что-нибудь когда-нибудь где-нибудь сглючит :)
в gcc-шном stdbool.h есть специальные define для С++
Ну в теории да... И тогда уж по идее нужно в C++ инклудить cstdbool раз уж на то пошло (который впрочем в msvc тоже отсутствует).
и ещё. если есть желание, может в OutputLogo впиши свой email, так сказать оставь свой след в истории :)
ну уж и мой тогда впишите :rolleyes:
mastermind
24.10.2010, 14:09
ну уж и мой тогда впишите :rolleyes:
Скинь мне в личку мыло.
Скинь мне в личку мыло.
у меня личка отключена, breeze.fbn[гау]gmail.com
mastermind
24.10.2010, 19:30
ОК, добавил.
Просто захотелось сделать код более портабельным, чтоб компилилось и на msvc в т.ч., чтоб сравнить производительность и т.п. как-нибудь... (пока не занимался этим)
Я на своем проекте позанимался как-то таким...
32-битный mingw показал на 40%(!) большую скорость работы, нежели 64-битный msvs80 на 64-битной windows7 (но и самый большой размер бинарника. Хотя это же фигня?). Самая медленная версия- 32-битная сборка от msvs80. Самый компромиссный вариант- msvs71.
[bETA]mEN
24.10.2010, 23:24
http://img230.imageshack_.us/img230/180/zx1.png (http://img230.imageshack_.us/i/zx1.png/)
Uploaded with ImageShack.us (http://imageshack_.us)
http://img594.imageshack_.us/img594/830/zx2b.png (http://img594.imageshack_.us/i/zx2b.png/)
Uploaded with ImageShack.us (http://imageshack_.us)
:v2_down:
чё эта ? o_O ты б хоть выложил софтину которую запускал
похоже на zxall, да не оно.
и, похоже, таже беда, что и с zxall - тест не знает о существовании memptr (ну, или я неправильно memptr реализовал :) ).
[bETA]mEN, так что за тест и где взять? погоняю на boo_boo-шном z80ex (считаю идеалом среди эмулируемых z80)
Q-Master
25.10.2010, 09:36
Обновил git ветку
1. Вообще неплохо-бы и инсталл прикрутить и ридми поправить, а то там чепуха про make.
2. Antiflicker ON - показывает ерунду. Такое впечатление что один из экранов игнорируется. В TR-DOS сразу после загрузки эмуля если включить эту фишку фон становится желтым. Такое впечатление что полностью убирается синяя компонента.
1. Вообще неплохо-бы и инсталл прикрутить.
это пусть тов. mkoloberdin делает, ибо я не в восторге от cmake.
2. Antiflicker ON - показывает ерунду. Такое впечатление что один из экранов игнорируется. В TR-DOS сразу после загрузки эмуля если включить эту фишку фон становится желтым. Такое впечатление что полностью убирается синяя компонента.
big endian?
сделал фикс и только что закоммитил.
mastermind
25.10.2010, 11:42
[bETA]mEN, это что за тест? Кинь в меня им плз на zxmmind /at/ gmail.com
Скомпилил с Z80EX, попробуй эту версию, выложил тут: http://github.com/downloads/mkoloberdin/zemu/zemu-2010-10-24-mingw32-z80_ex.zip
Пробовал zexall отсюда (http://zx.pk.ru/showpost.php?p=118226&postcount=83), обе версии проходят.
---------- Post added at 10:42 ---------- Previous post was at 10:40 ----------
1. Вообще неплохо-бы и инсталл прикрутить и ридми поправить, а то там чепуха про make.
Ну дык проект вроде открытый, кто мешает? ;)
[bETA]mEN
25.10.2010, 19:20
Скомпилил с Z80EX, попробуй эту версию, выложил тут: http://github.com/downloads/mkoloberdin/zemu/zemu-2010-10-24-mingw32-z80_ex.zip
ошибок меньше, но они есть
http://img41.imageshack_.us/img41/4407/zx01.png (http://img41.imageshack_.us/my.php?image=zx01.png)
[bETA]mEN, это что за тест? Кинь в меня им плз на zxmmind /at/ gmail.com
я оставлю это тут.
SAM style
25.10.2010, 19:50
А ещё интересно, что все эти цифробуквы означают? У меня в Xpeccy over 9000 красных результатов (и не удивительно).
mastermind
25.10.2010, 20:07
Вообще есть эмули, на которых оно все проходит?
(Это конечно не значит что не нужно допиливать эмуляцию)
UnrealSpeccy 0.37.3.fix3
http://img828.imageshack_.us/img828/4356/unreal1.png
http://img541.imageshack_.us/img541/296/unreal2.png
http://img100.imageshack_.us/img100/5504/unreal3.png
Spectaculator 7.0.1.1349
http://img253.imageshack_.us/img253/1867/spectaculator1.png
http://img529.imageshack_.us/img529/8938/spectaculator2.png
http://img838.imageshack_.us/img838/8056/spectaculator3.png
---------- Post added at 19:07 ---------- Previous post was at 19:03 ----------
MEMPTR-тест кстати на ZEMU весь проходит нормально (на обоих вариантах эмуляции Z80), на Unreal 4 ошибки, на Spectaculator не проходит ничего, не знает он о memptr видать.
[bETA]mEN
25.10.2010, 20:57
Вообще есть эмули, на которых оно все проходит?
Sinclairean (http://sinclairean.blogspot.com/) - проходи все тесты.
M.E.S.S. (http://www.mess.org/) - проваливает один тест.
остальные эмуляторы - кто лучше, кто хуже.
я никогда больше не буду копипастить, я никогда больше не буду копипастить, я никогда больше не буду копипастить,
я никогда больше не буду копипастить, я никогда больше не буду копипастить, я никогда больше не буду копипастить,
я никогда больше не буду копипастить, я никогда больше не буду копипастить, я никогда больше не буду копипастить,
я никогда больше не буду копипастить, я никогда больше не буду копипастить, я никогда больше не буду копипа...
в общем теперь мой z80 и z80ex по ошибкам совпадают.
насчёт оставшихся ошибок, есть мнение, что тест неверный. сейчас перегоню на самый что ни на есть реальный KAY-1024 и проверю там.
есть мнение, что тест неверный. сейчас перегоню на самый что ни на есть реальный KAY-1024 и проверю там.
Есть мнение, что тест покажет разные результаты на разных ревизиях и версиях _реального_ процессора:)
[bETA]mEN
25.10.2010, 22:46
Есть мнение, что тест покажет разные результаты на разных ревизиях и версиях _реального_ процессора:)
All results are compared against a real NEC D780C-1 Z80 CPU
так... про копипасту я написал в предыдущем сообщении.
остались те же ошибки, что и в z80ex.
на кае у меня не какой-нибудь NEC, а самый настояший Zilog: Z84C0008PEC
осталось придумать как sna запихать на реальный спектрум.
вроде была какая-то тулза, иначе придётся писать свою :)
mEN;325562]All results are compared against a real NEC D780C-1 Z80 CPU
Я, собсно, вспомнил свою тему: http://zx.pk.ru/showthread.php?t=6978 и некоторые неожиданные выводы из нее:)
нашёл этот тест в tap. ща загоню в кай
----
готово. значения у LDI, LDD, CPI и CPD такое же как и в эмуле, так что пусть фиксят свой NEC :D
с BIT n,(HL) вопрос открытый - Zilog, NEC и эмуль дают 3 разных значения.
есть куда стремится в эмулировании (надо скооперироваться с boo_boo, может в результатах тестов, которые он проводил некоторое время назад, это уже есть)
[bETA]mEN
26.10.2010, 01:11
http://www.worldofspectrum.org/forums/showthread.php?t=29409
или я туплю, или там раговор про подгонку эмуляции под NEC.
я же хочу подогнать под Zilog.
Q-Master
26.10.2010, 09:54
big endian?
сделал фикс и только что закоммитил.
Ага. Проверю чуть позже.
---------- Post added at 09:54 ---------- Previous post was at 09:53 ----------
Ну дык проект вроде открытый, кто мешает? ;)
Я не фанат cmake. Разбираться с ним будет дольше чем тебе. 8)
[bETA]mEN
26.10.2010, 19:07
или я туплю, или там раговор про подгонку эмуляции под NEC.
на ZX Spectrum 48K Issue 3B — 1983 стоял именно NEC D780C - 1
пруфпик: http://upload.wikimedia.org/wikipedia/commons/8/85/ZXspectrum_mb.jpg
это не отменяет того факта, что я буду доделывать эмуляцию Zilog, а не NEC.
Q-Master
27.10.2010, 08:36
Проверю чуть позже.
Проверил. Не помогло. По-прежнему желтый фон при включении Flicker OFF.
Проверил. Не помогло. По-прежнему желтый фон при включении Flicker OFF.
Так Flicker ON или Flicker OFF?
Ранее антифликер не учитывал endianess, теперь учитывает, так что теперь либо всё должно быть желтым (и с ним, и без), либо ничего (по идее).
Можешь для тесту найти в zemu.cpp функцию AntiFlicker и убедиться что там есть #ifdef ZEMU_BIG_ENDIAN ?
И ещё вставить
#ifdef ZEMU_BIG_ENDIAN
printf("detected\n");
#endif
в начало main(), может неправильно детектится?
Q-Master
28.10.2010, 12:04
И ещё вставить
#ifdef ZEMU_BIG_ENDIAN
printf("detected\n");
#endif
в начало main(), может неправильно детектится?
Оно точно неправильно детектится. Я детектю вот так:
#if SDL_BYTEORDER == SDL_BIG_ENDIAN, а не так как написано у тебя. И как только я поменял детект - все стало определяться правильно.
Во вторых, как только оно стало правильно детектиться - все стало желтым, причем вне зависимости Antiflicker OFF или ON.
mastermind
28.10.2010, 12:44
Q-Master, попробуй последнюю версию. Сделал детект через cmake.
mEN;325517']Sinclairean (http://sinclairean.blogspot.com/) - проходи все тесты.
M.E.S.S. (http://www.mess.org/) - проваливает один тест.
остальные эмуляторы - кто лучше, кто хуже.
поообщался с автором sinclairean, который тоже разбирался с этим тестом. оказывается, результаты отчасти зависят от версии ПЗУ (и всё по идее проходит без ошибок если ПЗУ классическое).
стало быть, для чистоты эксперимента надо прогнать тест на разных эмулях (и реалах) с одинаковыми ромами, и тогда уже сравнивать.
Оно точно неправильно детектится. Я детектю вот так:
#if SDL_BYTEORDER == SDL_BIG_ENDIAN, а не так как написано у тебя. И как только я поменял детект - все стало определяться правильно.
я уже не помню откуда я взял тот детект, всё равно пишу в слепую, ибо всё более-менее мощное у меня little endian.
Во вторых, как только оно стало правильно детектиться - все стало желтым, причем вне зависимости Antiflicker OFF или ON.
хм. похоже никаких преобразований не нужно, ибо SDL само всё преобразовывает.
вопрос - а почему раньше (когда неправильно детектило), оно разный резалт показывало в зависимости от антифлика?
ответа я не знаю.
Q-Master, пофикси плиз, спасибо скажем :) (поискать в defines.h и zemu.cpp по ZEMU_BIG_ENDIAN).
поообщался с автором sinclairean, который тоже разбирался с этим тестом. оказывается, результаты отчасти зависят от версии ПЗУ (и всё по идее проходит без ошибок если ПЗУ классическое).
стало быть, для чистоты эксперимента надо прогнать тест на разных эмулях (и реалах) с одинаковыми ромами, и тогда уже сравнивать.
в общем так и вышло, тревога оказалась ложной.
слил пзу с кая (кто бы думал что так сложно найти рабочую 3'' дискету :) )
в аттаче картинка: слева - zemu (с моим ядром, но я думаю что с z80ex будет тоже самое), справа - KAY-1024 (самый что ни на есть реальный).
в аттаче картинка: слева - zemu (с моим ядром, но я думаю что с z80ex будет тоже самое), справа - KAY-1024 (самый что ни на есть реальный).
Все ли проваленные тесты относятся к ROM-операциям?
слил пзу с кая (кто бы думал что так сложно найти рабочую 3'' дискету
да! но на кае-то отчасти оригинальное пзу! оно же модифицированное, например добавлен HDD лоадер! :rolleyes:
ты попробуй взять оригинальную прошивку от того же Spectrum 128k и подсунь zEmu :eek:
Vitamin, breeze,
похоже вы неправильно восприняли результаты моего теста.
естественно, что на кае модифицированное пзу.
суть теста была не в том, чтобы убедиться что и кай и эмуль проваливают одинаковые элементы теста, а в том, чтобы убедиться, что и кай и эмуль дают одинаковый CRC регистра AF в этих тестах.
как работает этот тест: каждый элемент теста (комманда) прогоняется много раз с разными параметрами.
например, для BIT n,(HL) будут испробованы разные значения n, HL и AF (и вроде ещё IX и IY).
в каждом витке цикла, после выполнения комманды, берётся очередное значение AF и делается некое подобие CRC.
затем полученное значение (выводится чёрным цветом в правой колонке) сравнивается с эталонным значением, и, если они не совпадают, то эталонное значение выводится красным.
эталонные значения были получены автором теста путём прогона этого самого теста на zx spectrum 48.
т.е. если бы он их прогонял на кае, то значения бы были совершенно другие (конкретно - такие, какие видны на скриншоте).
итого, так как значения на кае и на эмуле полностью совпадают, то значит что эмуль 99% правильно эмулирует :)
Q-Master
29.10.2010, 15:38
я уже не помню откуда я взял тот детект, всё равно пишу в слепую, ибо всё более-менее мощное у меня little endian.
Пациент, а вы так не делайте. 8))
хм. похоже никаких преобразований не нужно, ибо SDL само всё преобразовывает.
вопрос - а почему раньше (когда неправильно детектило), оно разный резалт показывало в зависимости от антифлика?
ответа я не знаю.
Все верно. Оно и должно было. Проблема в суммировании и последующем выводе. Суммирование было неверным, а вывод изображения - верным.
Q-Master, пофикси плиз, спасибо скажем :) (поискать в defines.h и zemu.cpp по ZEMU_BIG_ENDIAN).
Пофиксил. Причем элементарно. 8)
defines.h:
#ifdef ZEMU_BIG_ENDIAN
#define DRGB(r,g,b) (((r)<<0x10)|((g)<<8)|(b))
#define GETR(c) (((c)>>8)&0xFF)
#define GETG(c) (((c)>>0x10)&0xFF)
#define GETB(c) (((c)>>0x18)&0xFF)
#else
#define DRGB(r,g,b) (((r)<<0x10)|((g)<<8)|(b))
#define GETR(c) ((c)>>0x10)
#define GETG(c) (((c)>>8)&0xFF)
#define GETB(c) ((c)&0xFF)
#endif
как и обещал говорю спасибы.
годы практики в веб-программировании дают о себе знать, начинаешь забывать как работает железо.
до меня только теперь дошло, что в общем то (X)<<(Y) будет правильно в любой архитектуре, и весь этот код для big endian в defines.h не нужен.
осталось только найти пепел, чтоб посыпать им голову :)
попробуй плиз последнюю версию.
в общем так и вышло, тревога оказалась ложной.
слил пзу с кая (кто бы думал что так сложно найти рабочую 3'' дискету :) )
в аттаче картинка: слева - zemu (с моим ядром, но я думаю что с z80ex будет тоже самое), справа - KAY-1024 (самый что ни на есть реальный).
а, гут. кинь плз в меня кайским ПЗУ, прогоню на z80ex это дело для порядка
[bETA]mEN
30.10.2010, 15:31
результаты отчасти зависят от версии ПЗУ (и всё по идее проходит без ошибок если ПЗУ классическое)
и грузить надо из sna, а не tap.
mastermind
30.10.2010, 15:44
а, гут. кинь плз в меня кайским ПЗУ, прогоню на z80ex это дело для порядка
Он выложил этот ром в репозитарий zemu, см. в директории src/roms.
и грузить надо из sna, а не tap.
нет разницы.
у чела на восе были проблемы, потому что у него как-то странно tape traps были реализованы (он менял код в пзу).
disassembler is back.
опкоды для дизассемблера автосгенерены по комментам либе для z80, так что если я нигде не налажал с комментами, то дизасм должен показывать верно.
Не хватает SounDrive'a. И разных моделей памяти. Непонятно по какому стандарту расшит 1024кб режим.
Q-Master
04.11.2010, 18:01
А еще GeneralSound. 8)
да, причём желательно NGS :)
SoundDrive не будет (по крайней мере, я не буду этим заниматься. кто-нибудь другой - пожалуйста). имхо изначально мертворождённая примочка. была у нас в гродно у несколькох человек. а толку никакого, софта всё равно нет (3.5 штуки).
1024 по стандарту пентагона, естессно, ибо полное название эмуля - pentagon zx emulator.
Вот, собственно, GS. Не NGS, а простой обычный GS (по ngs ещё курю доки).
Забирать с гитхаба.
По Ctrl+F12 (reset to tr-dos) GS не сбрасывается, и продолжает играть.
По F12 (просто reset) GS тоже сбрасывается.
mastermind
21.11.2010, 03:38
Вот, собственно, GS. Не NGS, а простой обычный GS (по ngs ещё курю доки).
Забирать с гитхаба.
Win32 сборку забирайте здесь (https://github.com/downloads/mkoloberdin/zemu/zemu-2010-11-20-mingw32.zip).
ааа, чорд. забыл закоммитить новый ini файл, там коммент важный, что не стоит вместе включать gs и covox, будет конфликт по портам.
завтра закоммичу.
короче вот оно.
ридми в архиве.
это естессно tar.gz а никакой не zip.
необходим SDL (как dev так и он сам ^_~)
по сравнению с альфой (сюда не выкладывал) эмуль стал существенно тормознее (раза в 4) (зато гораздо читабельнее и приятней в программинге), по-этому для нормальной работы ниже 800mhz не рекомендуется.
фз. может возьмусь за дикий оптимайз. но тогда не так наглядно будет.
если у кого слабенькая тачка, вы скажите, я тогда старую версию выложу (ей 200mhz должно хватит по уши)
жду отзывов и предложений.
А можно пощщюпать ту самую "старую" версию? Мне на мобилку :v2_wink2: А то нынешняя версия тупииииииииииит :rolleyes:
Allin, сейчас у меня на венике старой версии нету, может где-то есть в бэкапах, но шанс небольшой.
под нынешней версией вы имеете в виду то что я выложил в первом посте или текущая версия с github? текущая с гитхаба раза в два точно быстрее чем та, что в первом посте.
Пользуюсь версией с гитхаба. Кросскомпилировал для мобилки, но совершенно не усабельно, несмотря на отключеный звук
Тогда наверное zemu не очень подходит :(
Как вариант - написать новый эмуль используя ядро z80, вг и ay :) но если всё делать ради скорости, то получится спагетти-код, какой можно наблюдать в unreal, fuse и других эмулях.
(и ещё имхо без звука всё это лишено смысла).
А что хоть за мобилка? Я так понимаю с хардверной клавой?
но если всё делать ради скорости, то получится спагетти-код, какой можно наблюдать в unreal, fuse и других эмулях.
Крайне разумное заявление:)
по сравнению с альфой (сюда не выкладывал) эмуль стал существенно тормознее (раза в 4) (зато гораздо читабельнее и приятней в программинге), по-этому для нормальной работы ниже 800mhz не рекомендуется.
А почему такое колоссальное падение производительности?
Крайне разумное заявление
что-то у меня с сарказмо-детектором в последнее время.
смотрю я вот на эту мессагу, и вижу тут сарказм, а ведь тут его может и не быть.
Vitamin, объясни :)
А почему такое колоссальное падение производительности?
спагетти было переписано: появильсь различные хэндлеры (типа там OnReadByte, OnOutputByte, OnFrameStart и т.д.) и все устройства стали работать через них.
однако хватит уже ворошить дела дней минувших, текущая версия наверное раза в 2-3 быстрее чем самая первая альфа.
смотрю я вот на эту мессагу, и вижу тут сарказм, а ведь тут его может и не быть.
Vitamin, объясни
Напрасно, сарказма там нет:). Я с тобой абсолютно согласен, что погоня за "оптимизацией" крайне хреново сказывается на сопровождаемости кода.
однако хватит уже ворошить дела дней минувших, текущая версия наверное раза в 2-3 быстрее чем самая первая альфа.
Т.е. новая версия уже обогнала по производительности последнюю версию со старым дизайном?
Т.е. новая версия уже обогнала по производительности последнюю версию со старым дизайном?
тов. mastermind сделал несколько хороших оптимизаций по скорости, добавив совсем немного спагетти. можно сказать что КПД этих оптимизаций (прирост_скорости/прирост_спагетти*100%) более 90%.
и я ещё что-то там доделал в паре последних коммитов.
чтоб сказать точно, нужно найти ту старую версию, вставить в код замерялки скорости и проверить.
однако новая версия точно быстрее предыдущих, можно замерить косвенно - промотка на max speed прекалька к инвитейшену на ht2k10ae занимала около 15 секунд (http://www.youtube.com/watch?v=a3MNnKUbik8), на текущей версии это же занимает секунд 10, т.е. имеем 30% прирост производительности.
+ то что версия на которой записывалось видео для ютюба - это эмуль уже после mastermind-овских оптимизаций, которые тоже ускорили его. так что я думаю что текущая версия точно не медленней альфы.
А что хоть за мобилка? Я так понимаю с хардверной клавой?
Мобилка на линуксе motorola a1200e MING, клавиатуры хардварной нет, но один умелец нарисовал для sdl клаву и прикрутить в любой проект особого труда не составляет ;) Всё равно нужно код любой программы править добавляя эвенты на обработку звонков/закрытие флипа
Замутил небольшой апдейт под новый год (забирать с гитхаба):
Точная эмуляция всех вариаций OUT и INI/IND/INIR/INDR; это не значит что раньше эмуляция была не точная, просто теперь можно узнать сколько tstates прошло конкретно во время записи в порт; другие комманды не делал, так как не могу придумать где такая точность в спектруме нужна.
Соответственно появилясь точная эмуляция бордера. демки от VNN теперь работают как надо, да и RAGE покрасивше стала.
Новый Attributes hack (теперь можно смотреть не только что скрыто под аттрибутами, но и сами аттрибуты без картинки).
Пофиксил мелкий баг в дизасме.
Увеличил экран по высоте (чтоб наслаждаться бордюрными эффектами).
Немного заоптимизировал цикл рендера. Должно стать быстрее (с другой стороны более точный бордер и экран цвеличился; но на глаз вроде как быстрее).
upd.
Ещё одна новая плюшка - эмуляция ZXM-SoundCard (аки чип SAA1099). Из звуковых девайсов осталось сделать только NeoGS (простой GS уже есть), SoundDrive (хотя его надобность мне сомнительна) и DMA Ultrasound (на самом деле пока в планах нет, ибо софта под это чуть менее чем нисколько).
теперь можно смотреть не только что скрыто под аттрибутами
а это в реалтайме? т.е. можно видеть белое на белом и черное на черном? :)
а это в реалтайме? т.е. можно видеть белое на белом и черное на черном? :)
Ага. Прикольно бывает посмотреть что как декрянчицца или что как сделано.
---------- Post added at 18:34 ---------- Previous post was at 17:20 ----------
mastermind, замути плиз виндовс версию, а то у меня сейчас на виндовой машине только скайп и хром стоит.
по идее проблем с компиляцией saasound быть не должно.
mastermind
30.12.2010, 19:40
Сбока текущей версии под Windows. (https://github.com/downloads/mkoloberdin/zemu/zemu-2010-12-30-mingw32.zip)
---------- Post added at 18:40 ---------- Previous post was at 18:39 ----------
mastermind, замути плиз виндовс версию, а то у меня сейчас на виндовой машине только скайп и хром стоит.
по идее проблем с компиляцией saasound быть не должно.
Ага, уже :D
гм. видимо после каких-то моих рефакторов сломалась запоминалка путей до диска для win32.
т.е. нажимаю F3, выбираю диск, нажимаю F3 опять - и я вижу список дисков вместо того места, где я выбирал диск.
---------- Post added at 18:58 ---------- Previous post was at 18:52 ----------
в maxspeed по скорости уже паштишто как анриал.
и код менее-более нормальный, а не запутанные макаронины :)
Sinus, можешь в одном архиве выложить? а то с моей скоростью.... под линь. и почему бы под репы тебе не собрать?
можешь в одном архиве выложить?
выложу, полностью готовые к компиляции сорсы и win32 версию с настроенным ini-шником.
но позже (может завтра).
и почему бы под репы тебе не собрать?
это сложно :) ебилд для генты может и напишу, а под всё остальное я не знаю как.
вот чтоб кто-нибудь другой...
как классно когда mastermind фиксит и собирает под винду (за что ему большущее спасибо и полку полную пряников, чтоб мог брать пряник с полки когда захочет :)), я могу потихонечку что-нибудь допиливать не заморачиваясь мелочами.
Уважаемый, А где, собственно, SAA Sound? В конфиге что написать надо или как?
Allin, да, в zemu.ini надо прописать "tsfmmode = zxm"
проверить можно в E-Tunes-ах
Кстати! Уровень звука в SAA Sound очень низок - так задумано или вывод звука у меня хромает?
есть такое дело, уже исправил, но ещё не закоммитил.
mastermind
31.12.2010, 06:27
Sinus, можешь в одном архиве выложить?
На гитхабе жми "Downloads", дальше "Download .tar.gz" чтоб скачать текущий снапшот. Или вот прямая ссылка: https://github.com/mkoloberdin/zemu/tarball/master
---------- Post added at 05:01 ---------- Previous post was at 04:54 ----------
и почему бы под репы тебе не собрать?
это сложно :) ебилд для генты может и напишу, а под всё остальное я не знаю как.
вот чтоб кто-нибудь другой...
как классно когда mastermind фиксит и собирает под винду (за что ему большущее спасибо и полку полную пряников, чтоб мог брать пряник с полки когда захочет :)), я могу потихонечку что-нибудь допиливать не заморачиваясь мелочами.
Дык это одно из преимуществ опенсорс, что кто угодно может что-то допилить или собрать под какую-то другую платформу. Народ, присоединяйтесь :D
---------- Post added at 05:27 ---------- Previous post was at 05:01 ----------
есть такое дело, уже исправил, но ещё не закоммитил.(админы, сделайте тэг strike (http://www.vbulletin.org/forum/showthread.php?t=77721), а?)
Сборка для винды с поправленной громкостью SAA. (https://github.com/downloads/mkoloberdin/zemu/zemu-2010-12-31-mingw32.zip)
А мне чего тут не хватает?
The C compiler identification is GNU
The CXX compiler identification is GNU
Check for working C compiler: /usr/bin/gcc
Check for working C compiler: /usr/bin/gcc -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler: /usr/bin/c++
Check for working CXX compiler: /usr/bin/c++ -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Check if the system is big endian
Searching 16 bit integer
Looking for sys/types.h
Looking for sys/types.h - found
Looking for stdint.h
Looking for stdint.h - found
Looking for stddef.h
Looking for stddef.h - found
Check size of unsigned short
Check size of unsigned short - done
Using unsigned short
Check if the system is big endian - little endian
CMake Error at zame_z80/CMakeLists.txt:8 (message):
Ruby not found (required to build zame_z80 core)
Configuring incomplete, errors occurred!
А мне чего тут не хватает?
...
Ruby not found (required to build zame_z80 core)
руби не хватает.
apt-get install ruby-full
счас на sdl жалуется какие использовал?
apt-get install libsdl-dev
у меня не debian, а suse, там россыпью:) тем не менее поставл и скомпилировал. счас жалуется на отсутствие key.config. просто компилил, make без install
osa@linux-vbd2:~/Downloads/mkoloberdin-zemu-aaf1e0f> sudo ./zemu
$ww,.
`^$$$ww,.
`^$$$$$$
,$$7'
_j$$' __ __ _ _
,j$$7 /__ (-_ | ) ) (_|
$$$$$$w.
`^^T$$$w, rst'o6
`^T$$
restorer [ restorer.fct@gmail.com ]
boo_boo [ boo_boo@inbox.ru ]
mastermind [ zxmmind@gmail.com ]
breeze (gfx) [ breeze.fbn@gmail.com ]
with help of SMT
[Error] Error 200: File not found : "keys.config"
---------- Post added at 11:18 ---------- Previous post was at 11:16 ----------
ы. а у тебя там правила для install вообще нет:)
у меня не debian, а suse, там россыпью
можешь привести строчку в консоли, которая бы всё заинсталила (нужно make, gcc, cmake, libsdl и ruby)?
типа yum install ....
счас жалуется на отсутствие key.config.
положи бинарь в папку src
а у тебя там правила для install вообще нет
ага.
Sinus, я через менеджер приложений ставил, в логах посмотрю и сюда кину.
в логах посмотрю и сюда кину.
ок, обновлю тогда первый пост инструкциями для suse
mastermind
31.12.2010, 13:09
Чтоб все e-tunes работали нормально (некоторые работают и на 128К), поправьте в zemu.ini:
enable512 = yes
enable1024 = yes
Sinus, дико извиняюсь, пока не могу, брат ноут забрал.
mastermind, ты под какой проц компилировал? я просто не в курсе, можно ли выбирать набор комманд проца при компиляции. пробовал zemu на thinkpad 600e (П-2 366мгц, 128Мб, вин2000), грузит 100 и фпс небольшой. унреал тоже с 20 фпс сидит и утверждает, что проц 86мгц:)
366мгц
это очень мало. на такой слабой машине надо пользоваться эмулями написанными на ассемблере.
минимальная частота на которой будет без тормозов работать zemu - 500mhz
жаль, мечтал запустить:) а разгон в условиях ноутбука невозможен.
mastermind
03.01.2011, 10:21
mastermind, ты под какой проц компилировал?
Интересный вопрос. Не знаю под какой проц по дефолту mingw32 (gcc 4.5) компилирует. Кто-нибудь знает как выяснить? (влом под все таргеты собирать и сравнивать)
Компилирую на i7, но не думаю что оно генерит под него (иначе на p2 вообще не работало бы по идее).
я просто не в курсе, можно ли выбирать набор комманд проца при компиляции.
Можно.
пробовал zemu на thinkpad 600e (П-2 366мгц, 128Мб, вин2000), грузит 100 и фпс небольшой.
Маловато будет. Но попробуй прикрепленные экзешники, попробовал скомпилить с -march=i686 и -march=pentium2 (второе от первого судя по документации отличается в основном использованием mmx).
не, никак слайдшоу:) попробую асмовские, но демки на них не посмотришь:( только классика.
mastermind
03.01.2011, 10:56
Попробуй enablegs=no, tsfmmode=ay или вообще выключить звук (enable=no в секции sound). Интересно, ускорится ли слайдшоу хоть :)
запустился с приемлимой скоростью(латракс дема) со звуком. экран уменьшил и запустил на приоритете выше среднего. Без звука загрузка процессора 55-75%:) подтормаживает раз в 15-20 секунд, но работает(на фоне опера и квип). фпс не посчитать к сожалению. счас тсфм на zxm поставлю.
---------- Post added at 11:23 ---------- Previous post was at 11:14 ----------
с zxm звук начинает ощутимо щелкать, фпс вроде таким же осталось. ну или чуть уменьшилось.
mastermind
03.01.2011, 11:28
Похоже, все не так уж безнадежно. Возможно, можно дооптимизировать :D
после отключения оперы и выставления опции AY вместо zxm и отключения GS. на высоком приоритете латракс идет почти без запинок и за всю дему была пара щелчков.
---------- Post added at 12:23 ---------- Previous post was at 12:21 ----------
так что зря sinus сказал, что нужно 500.:) унреал щелкает ужасно, так что не сравнялся, а обогнал:)
---------- Post added at 12:23 ---------- Previous post was at 12:23 ----------
так что зря sinus сказал, что нужно 500.:) унреал щелкает ужасно, так что не сравнялся, а обогнал:)
mastermind
03.01.2011, 12:29
Не знаю, дойдут ли у меня руки, буду сюда записывать идеи по оптимизации (вдруг кому пригодится):
1. Заюзать orc: http://code.entropywave.com/projects/orc/
osa, так что зря sinus сказал, что нужно 500. унреал щелкает ужасно, так что не сравнялся, а обогнал
а ты в unreal тоже GS отключи.
mastermind, Заюзать orc
я что-то так и не понял что это. понял только что это не очень портабельно.
mastermind
03.01.2011, 13:51
я что-то так и не понял что это. понял только что это не очень портабельно.
Как раз таки портабельная штука (Current targets: SSE, MMX, ARM, Altivec, and NEON). Генерит из псевдокода машинный код в векторных инструкциях CPU (+возможна эмуляция при недоступности векторых инструкций). Применимо там же где и MMX, SSE и прочее (ну т.е. типа циклическая обработка массивов данных, которую можно распараллелить), но портабельно (см. выше). Ссылка на документацию: http://code.entropywave.com/documentation/orc/
В туториале там примеры работы со звуком и графикой: http://code.entropywave.com/documentation/orc/orc-tutorial.html
Основной режим использования - генерация в рантайме (генерация в инструкциях CPU на котором программа запущена), но возможны варианты. Т.е., например, для x86 оно налету определяет что на данном CPU доступно (MMX, SSE и т.п.) и генерит соответствующий код (при первом вызове функции, насколько я понял при беглом просмотре кода).
Предшественник этой либы - liboil: http://liboil.freedesktop.org/wiki/
Используется как минимум в GStreamer довольно давно, так что в линуксовых дистрибутивах присутствует.
Иначе говоря, задача этой либы как раз состоит в решении проблемы непортабельности зоопарка MMX/SSE/и т.д.
а ты в unreal тоже GS отключи.
Один хрен, не щелкает, а останавливается на треть секунды каждые 5 секунд на демарше.
---------- Post added at 14:00 ---------- Previous post was at 13:56 ----------
AY-emul пользоваться не возможно, грузит на 100, а тут, приятно удивило, что ничего не тормозит и музыка играет:)
mastermind
03.01.2011, 14:08
Что кушает больше всего CPU на данный момент (внимание на вторую колонку):
http://img233.imageshack_.us/img233/5340/zemucallgrind.png
Интересный вопрос. Не знаю под какой проц по дефолту mingw32 (gcc 4.5) компилирует. Кто-нибудь знает как выяснить? (влом под все таргеты собирать и сравнивать)
Скопируй свою строку вызова компилятора и в конце вместо имен файлов напиши "-Q --help=target" и увидишь какие фичи оборудования будут использоваться при генерации кода.
mastermind
03.01.2011, 14:23
Скопируй свою строку вызова компилятора и в конце вместо имен файлов напиши "-Q --help=target" и увидишь какие фичи оборудования будут использоваться при генерации кода.
Спасибо.
-march=i386 по дефолту. Буим компилить под i686 впредь, значит :D (на более медленных машинах все равно вряд ли будет работать). Пока же всем кто пользуется эмулятором под виндой есть смысл скачать экзешник из этого поста (http://zx.pk.ru/showpost.php?p=345310&postcount=447) (тот который "pentium2" быстрее по идее).
-march=i386 по дефолту. Буим компилить под i686 впредь, значит (на более медленных машинах все равно вряд ли будет работать). Пока же всем кто пользуется эмулятором под виндой есть смысл скачать экзешник из этого поста (тот который "pentium2" быстрее по идее).
Поделюсь своими опциями для mingw:
g++ -g3 -mthreads -march=native -mmmx -minline-all-stringops -O2 -DNDEBUG -fdata-sections -ffunction-sections -funroll-loops -funsigned-char -fno-strict-aliasing -W -Wall -Wextra -ansi -pipe
Насчет -march=native начинаю уже сомневаться, но пока никто не жаловался:)
Сборка MinGW с http://nuwen.net/mingw.html
mastermind
03.01.2011, 14:38
Да, -march=native, пожалуй, опасно, оно ж всякие доступные на хосте sseX тоже по идее включает и может чего-нибудь развернуть в них (и гадай потом из за чего оно не работает). С остальным поиграюсь, спасибо.
Vitamin, я немного пожалуюсь zxtune-qt есть от 18 до 55% на TS, zxtune 123 8-50% тоже TS, но это гораздо лучше, чем AY-emul. но это так, из области мелких придирок:)
Как раз таки портабельная штука (Current targets: SSE, MMX, ARM, Altivec, and NEON)
ну как минимум 68k тут нет.
да и вообще, тут думать надо, а мне в последние пару лет бесплатно думать голова болит :)
Да, -march=native, пожалуй, опасно, оно ж всякие доступные на хосте sseX тоже по идее включает и может чего-нибудь развернуть в них (и гадай потом из за чего оно не работает). С остальным поиграюсь, спасибо.
Имхо, стоит определить нижнюю границу поддерживаемой аппаратуры. MMX сейчас есть везде, поэтому я его включаю по умолчанию. SSE тоже уже есть везде, ЕМНИП. Остальная экзотика и так отключена.
Vitamin, я немного пожалуюсь zxtune-qt есть от 18 до 55% на TS, zxtune 123 8-50% тоже TS, но это гораздо лучше, чем AY-emul. но это так, из области мелких придирок
Какая платформа? Какой билд? Какой модуль?
Вин2000, 366 мгц, билд последний. насчет модуля не понял честно говоря, пробовал и консольную и qt версии, о чем выше и отписался
---------- Post added at 15:01 ---------- Previous post was at 14:57 ----------
и нам бы к тебе перенестись
mastermind
03.01.2011, 15:02
Хе хе, попробовал с флагами "-O3 -DNDEBUG -march=pentium2 -mmmx -minline-all-stringops -fdata-sections -ffunction-sections -funroll-loops -funsigned-char -fno-strict-aliasing", наразворачивало циклов на 7Мб экзешник :D (более чем в 10 раз больше чем было), 7zip правда его почти в тот же объем сжал :D
osa, попробуй приаттаченный экзешник.
mastermind
03.01.2011, 15:17
ну как минимум 68k тут нет.
На 68K есть векторные инструкции разве? По идее на нем orc обычный код скомпилит.
да и вообще, тут думать надо, а мне в последние пару лет бесплатно думать голова болит :)
:D
---------- Post added at 14:17 ---------- Previous post was at 14:07 ----------
Имхо, стоит определить нижнюю границу поддерживаемой аппаратуры.
Опрос что ли провести...
MMX сейчас есть везде, поэтому я его включаю по умолчанию. SSE тоже уже есть везде, ЕМНИП.
SSE же куча разных версий...
Остальная экзотика и так отключена.
Угу, щаз...
gcc -march=native -Q --help=target
мне говорит (оставил только то что касается "экзотики"):
-march= core2
-msse [enabled]
-msse2 [enabled]
-msse2avx [disabled]
-msse3 [enabled]
-msse4 [enabled]
-msse4.1 [enabled]
-msse4.2 [enabled]
-msse4a [disabled]
-msseregparm [disabled]
-mssse3 [enabled]
(а при -march=pentium2 все выключено)
Похоже (и man gcc на это намекает) -march помимо всего прочего включает также соответствующие модели процессора -msseX. На -mmmx, однако, похоже -march не влияет.
наразворачивало циклов на 7Мб экзешник (более чем в 10 раз больше чем было), 7zip правда его почти в тот же объем сжал
Ога. Бинарники получаются неприлично жирные. Но! По скорости работы кроют другие версии как бык овцу. У меня 32-битный бинарь от mingw умудрился на 40% обогнать по скорости 64-битный бинарь от vc80
Угу, щаз...
Ну я собираю на определенной машине, где этой экзотики вроде бы нет. Короче, ты посеял зерна сомнений в моей душе:)
---------- Post added at 15:39 ---------- Previous post was at 15:25 ----------
Хе хе, попробовал с флагами "-O3 -DNDEBUG -march=pentium2 -mmmx -minline-all-stringops -fdata-sections -ffunction-sections -funroll-loops -funsigned-char -fno-strict-aliasing"
Ах, да. Опция -fno-strict-aliasing влияет на некоторые варнинги (мне нужно было для сборки сторонних либ), опцию -funsigned-char используй аккуратно- она может привнести непонятных глюков в код, закладывающийся на знаковость этого самого чара.
Ну и еще линковать с опциями -Wl,-O3,-x,--gc-sections,--relax,--kill-at
Разумеется, эти все приседания для релизных билдов. В дебаге это все нельзя использовать.
пошустрее, но на грани плацебо... расход памяти не поменялся.
Эээ. Прошу прощения если вклиниваюсь в беседу... :) А куда писать флажки оптимизаций? Имеется ввиду кросскомпиляция под мой ARM-девайс.
"-DCMAKE_C_FLAGS=" ?
mastermind
03.01.2011, 15:54
Ах, да. Опция -fno-strict-aliasing влияет на некоторые варнинги (мне нужно было для сборки сторонних либ), опцию -funsigned-char используй аккуратно- она может привнести непонятных глюков в код, закладывающийся на знаковость этого самого чара.
Да это понятно... Я просто побыстрому скопипейстнул не вникая, чтоб посмотреть что получится.
---------- Post added at 14:54 ---------- Previous post was at 14:50 ----------
наразворачивало циклов на 7Мб экзешник :D
Вскрытие показало, что дело не в разворачивании циклов (секция .text выросла незначительно). Дело в опции -fdata-sections - секция .data выросла в 10+ раз (большая часть экзешника забита нулями).
Дело в опции -fdata-sections - секция .data выросла в 10+ раз (большая часть экзешника забита нулями).
Смотри мой пост про опции линковки. Если не поможет- каленым железом выжигать разные статические массивы и прочий бред.
mastermind
03.01.2011, 15:58
Эээ. Прошу прощения если вклиниваюсь в беседу... :) А куда писать флажки оптимизаций? Имеется ввиду кросскомпиляция под мой ARM-девайс.
"-DCMAKE_C_FLAGS=" ?
-DCMAKE_C_FLAGS_RELEASE:STRING="..тут нужные опции.." (без выделенной части не работает как надо)
Ну и -DCMAKE_CXX_FLAGS_RELEASE:STRING="(опции для c++, те же как правило что и для C)", а также -DCMAKE_BUILD_TYPE=Release
(Release везде заменить на нужный тип билда при необходимости)
Чтоб видеть с какими опциями чего реально запускается в процессе сборки, запускай make так:
VERBOSE=1 make
Новый минорный коммит - исправил скорость эмуля (а то было кто в лес, кто по дрова - использовалось и 3500000, и 3584000).
Спасиба SAM style, что указал мне на этот факт (http://zx.pk.ru/showpost.php?p=349913&postcount=302), а то я сам не замечал уже.
Q-Master
17.01.2011, 09:49
Еще-б неплохо было юзать префикс который цмэйк задает при сборке эмуля. А то по дефолту он свои настройки и ПЗУшки пытается грузить откуда попало. Особенно если проинсталлен в пути куда-нить.
PS: А сложно там включить еще и запуск с последнего сегмента ПЗУ, куда грузить какой-нить Глюк РесетСервис? Я чот к нему привык...
Еще-б неплохо было юзать префикс который цмэйк задает при сборке эмуля. А то по дефолту он свои настройки и ПЗУшки пытается грузить откуда попало. Особенно если проинсталлен в пути куда-нить.
с путями там тоже каша полная, я лучше не буду делать хакофиксы, а сделаю рефактор нормальный. это есть в планах.
PS: А сложно там включить еще и запуск с последнего сегмента ПЗУ, куда грузить какой-нить Глюк РесетСервис? Я чот к нему привык...
запишу в todo, надо только обчитаться как оно включается, а то у меня на реале никогда такого не было.
Хотелось бы услышать какую-нибудь рецензию на вот это:
http://www.anddev.org/sdl_port_for_android_sdk-ndk_16-t9218.html
В соответствующем треде ответа так и не дождался
Я в курсе про SDL для андроида, давно ещё на 4pda делали порт.
У меня желания делать тупой порт нету, потому что получится ничем не лучше ZXdroid-а, а скорее всего хуже.
Я лучше сначала отрефакторю zemu, потом хочу перенести с C++ на C (ибо C++ там используется концептуально неправильно).
Ну а затем сделать нормальный порт, без SDL.
Естественно, это мои планы (причём так как у меня самого девайс на андроиде, то я очень заинтересован в их исполнении).
Если же какой-нибудь другой человек сделает такой порт, то пусть делает :)
----
сцылко на флейм по теме: http://zx.pk.ru/showthread.php?p=350662 (C vs C++)
собрал я эмулятор под опен сусе, у тебя в sdl какие используются? а то я не по одному ставил, не осилю зависимости вывести.
Пока строка такая:
sudo zypper install ruby libsdl-dev
Q-Master
19.04.2011, 09:30
собрал я эмулятор под опен сусе, у тебя в sdl какие используются? а то я не по одному ставил, не осилю зависимости вывести.
Пока строка такая:
sudo zypper install ruby libsdl-dev
ruby не нужен-же. Нужен g++, cmake, libsdl и libsdl-dev и все.
ruby тоже нужен (для сборки z80 core).
Doctor Max
12.10.2011, 02:32
Охрененно! Могу сделать .deb для Debian/sid
Doctor Max
25.01.2012, 09:09
не выходит сделать deb ^-( как только не извращался... но я еще попытаюсь.
ну и для проформы - как собирать.. надо же написать что-то ;)
./cmake
make
:)
---------- Post added at 09:09 ---------- Previous post was at 09:00 ----------
как вариант, можно в тарболе закинуть скомпиленную версию. с ромами и инишниками в правильном месте
Doctor Max
26.01.2012, 11:53
deb пакет не получается сделать, что нет правила install.. имхо.. собирается нормально, но пакет получается пустой...
Doctor Max
30.01.2012, 04:33
http://www-flc.desy.de/ldcoptimization/documents/talks/CMake_Tutorial.pdf
так, на всякий случай... распечатаю и буду курить :-)
Q-Master
30.01.2012, 21:04
deb пакет не получается сделать, что нет правила install.. имхо.. собирается нормально, но пакет получается пустой...
Без инсталла тоже можно. Копируй руками исполняемый файл и все. Дел на 20 минут.
Doctor Max
31.01.2012, 14:33
Q-Master, Хочется по фен-шую же) Да, и как с мдсумм быть?
Q-Master
01.02.2012, 19:00
Q-Master, Хочется по фен-шую же) Да, и как с мдсумм быть?
А это будет вполне по феншую. И что-то я ничего не могу про мд5сумм вспомнить.
А это будет вполне по феншую. И что-то я ничего не могу про мд5сумм вспомнить.
deb-пакет крут только тогда, когда для любой версии эмулятора он автоматом собирается за минуту
Чем руками копировать, проще действительно в tar.gz заархивировать.
Вот если собрать под все архитектуры, и сделать мини-репозиторий на каком-нибудь launchpad.net, то вот это фэн-шуй будет :)
Doctor Max
01.02.2012, 22:40
Под все архитектуры и с репом, это вообще прям совсем фен-шуй будет ;-) будем к этому стремиться, для начала надо разобраться с CMake. А пока может и правда в тарболе закинуть, если кому надо и собрать не может.
Q-Master
01.02.2012, 22:52
deb-пакет крут только тогда, когда для любой версии эмулятора он автоматом собирается за минуту
Чем руками копировать, проще действительно в tar.gz заархивировать.
Вот если собрать под все архитектуры, и сделать мини-репозиторий на каком-нибудь launchpad.net, то вот это фэн-шуй будет :)
деб-пакет будет крут, когда будет. Не очень понимаю в чем проблема сделать в debian/rules тупо:
install : build
install -D ./build/zemu $(DEB_DIR)/usr/bin/zemu
Это 100% работает. Это 100% собирается на любой архитектуре. Более того это пишется за 10 минут.
Там дольше надо делать импорт changelog из git, но это тоже достаточно легко.
Doctor Max
02.02.2012, 14:29
breeze, make файл трогать нельзя, потому что на CMake основана сборка
breeze, тут говорят про deb пакет. а чо, BSD уже из deb-ов умеет ставить?
Не очень понимаю в чем проблема сделать в debian/rules тупо
это-то нормально, просто под "скопировать руками" понимаются обычно несколько менее... гм... автоматизированные вещи :)
Doctor Max
02.02.2012, 16:55
breeze, спорить не буду ибо бесполезно... вот зачем про make говорить? и как нет секции инсталл? не городите чушь, товарищ! и трогать его нельзя ибо он создается после cmake!!!
трогать его нельзя ибо он создается после cmake!!!
но ведь ничто не мешает cmake'у рассказать, что прописать в install: в мейкфайле? В cmake.txt, или как там его конфиг называется.
Doctor Max
02.02.2012, 18:13
Eltaron, CmakeLists.txt
только я СМаке впервые пощупал...
Q-Master
02.02.2012, 21:52
ну тогда уж добавьте в make-файл развилку для BSD /usr/local/bin/zemu
Это не мэйкфайл. Это файл правил для сборки *.deb.
Doctor Max
03.02.2012, 05:31
breeze, еще раз! Makefile создается CMAKE!!!!
cmake_minimum_required (VERSION 2.8)
project (ZEmu)
set (CMAKE_INSTALL_PREFIX /usr/local/bin)
set (ZEMU_VERSION_MAJOR 0)
set (ZEMU_VERSION_MINOR 99944)
include (TestBigEndian)
test_big_endian(BIG_ENDIAN)
INSTALL_PROGRAMS(/ZEmu/ zemu)
INSTALL_FILES(/ZEmu/ FILES ./src/zemu.ini ./src/keys.config)
configure_file (
"${PROJECT_SOURCE_DIR}/ZEmuConfig.h.in"
"${PROJECT_BINARY_DIR}/ZEmuConfig.h"
)
include_directories(${PROJECT_BINARY_DIR})
option (USE_Z80EX "Use external Z80EX library for z80 emulation" Off)
set (ZAME_Z80_PATH "${PROJECT_SOURCE_DIR}/zame_z80"
CACHE PATH "Path to zame z80 library")
set (Z80EX_PATH "${PROJECT_SOURCE_DIR}/../z80ex"
CACHE PATH "Path to Z80Ex library")
if (USE_Z80EX)
include_directories("${Z80EX_PATH}/include")
set (Z80EX_BINARY_DIR "${PROJECT_BINARY_DIR}/lib_z80ex")
make_directory (${Z80EX_BINARY_DIR})
set (Z80EX_STATIC_ONLY true)
add_subdirectory (${Z80EX_PATH} ${Z80EX_BINARY_DIR})
link_directories (${Z80EX_BINARY_DIR})
else ()
set (ZAME_Z80_BINARY_DIR "${PROJECT_BINARY_DIR}/lib_zame_z80")
set (ZAME_SRC_OUTPUT_DIR "${ZAME_Z80_BINARY_DIR}-src")
include_directories(${ZAME_SRC_OUTPUT_DIR})
add_subdirectory (${ZAME_Z80_PATH} ${ZAME_Z80_BINARY_DIR})
link_directories (${ZAME_Z80_BINARY_DIR})
endif ()
if (WIN32 AND NOT CMAKE_COMPILER_IS_GNUCC)
if (NOT ENV{SDLDIR})
set (ENV{SDLDIR} "${PROJECT_BINARY_DIR}/SDL")
message ("ENV{SDLDIR}=$ENV{SDLDIR}")
endif ()
endif ()
# message ("ENV{SDLDIR}=$ENV{SDLDIR}")
find_package (SDL REQUIRED)
if (SDL_FOUND)
message ("SDL found")
include_directories (${SDL_INCLUDE_DIR})
else ()
message (FATAL_ERROR "SDL not found")
endif (SDL_FOUND)
include_directories("${PROJECT_SOURCE_DIR}/src")
file (GLOB_RECURSE SOURCES
src/*.cpp
src/*.h
)
if (WIN32)
if (CMAKE_COMPILER_IS_GNUCC)
set (CMAKE_RC_COMPILER_INIT windres)
enable_language(RC)
set (CMAKE_RC_COMPILE_OBJECT
"<CMAKE_RC_COMPILER> -O coff <FLAGS> <DEFINES> <SOURCE> <OBJECT>")
endif ()
set (SOURCES ${SOURCES} "${PROJECT_SOURCE_DIR}/src/windows/zemu.rc")
endif ()
add_executable (zemu WIN32 ${SOURCES})
if (USE_Z80EX)
target_link_libraries (zemu z80ex-static z80ex_dasm-static)
else ()
target_link_libraries (zemu z80ex_wrapper)
endif ()
target_link_libraries (zemu ${SDL_LIBRARY})
if (WIN32)
target_link_libraries (zemu winmm shlwapi)
endif ()
# Visual Studio file grouping
source_group (zemu src/*)
source_group (devices src/devices/*)
source_group (devices/border src/devices/border/*)
source_group (devices/covox src/devices/covox/*)
source_group (devices/extport src/devices/extport/*)
source_group (devices/joystick src/devices/joystick/*)
source_group (devices/keyboard src/devices/keyboard/*)
source_group (devices/mmanager src/devices/mmanager/*)
source_group (devices/mouse src/devices/mouse/*)
source_group (devices/trdos src/devices/trdos/*)
source_group (devices/tsfm src/devices/tsfm/*)
source_group (images src/images/*)
source_group (lib_ay src/lib_ay/*)
source_group (lib_wd1793 src/lib_wd1793/*)
source_group (lib_ym2203 src/lib_ym2203/*)
source_group (renderer src/renderer/*)
source_group (sound src/sound/*)
source_group (tape src/tape/*)
---------- Post added at 05:17 ---------- Previous post was at 05:17 ----------
вот теперь инсталл есть
---------- Post added at 05:31 ---------- Previous post was at 05:17 ----------
ромы забыл...
INSTALL_FILES(/ZEmu/roms/ FILES ./src/roms/)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot