Просмотр полной версии : ZEmu
Doctor Max
04.02.2012, 18:08
breeze, можно еще раз? мэйкфайла изначально не существует!
я написал уже, как сделать правила для инсталл!
Doctor Max
07.02.2012, 06:34
итак, в конец имеющегося файла добавляем следующее:
INSTALL_PROGRAMS(/ZEmu/ zemu)
INSTALL_FILES(/ZEmu/ FILES ./src/zemu.ini ./src/keys.config ./readme.utf8.text)
INSTALL_FILES(/ZEmu/roms/ FILES ./src/roms/)
вначале файла после project:
set (CMAKE_INSTALL_PREFIX /opt)
Q-Master
07.02.2012, 19:21
итак, в конец имеющегося файла добавляем следующее:
INSTALL_PROGRAMS(/ZEmu/ zemu)
INSTALL_FILES(/ZEmu/ FILES ./src/zemu.ini ./src/keys.config ./readme.utf8.text)
INSTALL_FILES(/ZEmu/roms/ FILES ./src/roms/)
вначале файла после project:
set (CMAKE_INSTALL_PREFIX /opt)
Может все-таки /usr/local а не /opt?
Doctor Max
07.02.2012, 21:40
Q-Master, можно и /usr/local/bin
это от религии зависит ;)
я же не разраб. от меня только пара патчей была
я за /opt.
закоммитил в апстрим.
Doctor Max
08.02.2012, 00:51
Sinus, пропиши на заглавной ссылку всеже...
извиняюсь...
ээм... ссылку куда? на гитхаб? так она там и так есть:
Желающих быть "на острие" приглашаю на https://github.com/mkoloberdin/zemu
Doctor Max
08.02.2012, 01:01
ну я же дописал - извиняюсь ;-) не увидел сначала на главной ;-)
кстати, если ты есть на гитхабе, то присоеденяйся, чо.
форкай, фиксай/меняй что надо, потом делай pull реквест
буш в истории коммитов
Doctor Max
08.02.2012, 01:12
нету меня там... вот хочу прикрутить экран Профи.
---------- Post added at 01:12 ---------- Previous post was at 01:10 ----------
и я в ченжлоге итак засветился ;-)
Q-Master
08.02.2012, 22:52
я за /opt.
закоммитил в апстрим.
ну все ./configure по умолчанию таки в /usr/local кладут. да и cmake тоже туда кладет во всех проектах что я видел. /opt уже забыть пора давно.
ну все ./configure по умолчанию таки в /usr/local кладут. да и cmake тоже туда кладет во всех проектах что я видел. /opt уже забыть пора давно.
текущий FHS (2.3) говорит что про /opt не надо забывать:
http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES
( /usr/local - http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#USRLOCALLOCALHIERARCHY )
/usr/local - для софта установленного локально (т.е. посредством ./configure && make && make install)
если же делать пакет (deb или ebuild какой-нибудь), то надо в /opt
а так как правила для install добавлялись как раз для deb пакета, то /usr/local не подходит
Doctor Max
09.02.2012, 13:58
всё верно, надо в /opt . OpenOffice, Bricscad, Google там живут...
Q-Master
09.02.2012, 19:26
Я не знаю чего вы там курите, но у меня /opt пустая, это раз. Второе: покажите мне хоть один пакет деб который ставится в опт? Я таких не видел ни одного ни в одном репозитории. Все ставятся в /usr.
В третьих, а с какого перепугу cmake .. && make && sudo make install покладет мне что-то в /opt, а не в /usr/local?
ну а у меня как-то так:
rst@localhost ~ $ ls -1 /opt
Adobe
argouml
google
icedtea6-bin-1.10.1
jrun4
nvidia-cg-toolkit
rar
skype
sun-jdk-1.6.0.26
VirtualBox
3) нажали F3 встали курсором на другой TDR_02
4) нажали S сохранить (бла… бла… бла… Y)
я посмотрю, мож в этом и баг.
НО. оно записывает не в тот TRD на котором курсор, а в тот, который загружен.
ты хоть на TRD_08 курсор выставь, оно в TRD_01 запишет, если он заинсерчен
Doctor Max
10.02.2012, 12:25
Q-Master
очень много deb пакетов ставится в опт, если они не из репозитория. а мы ведь не про репозиторий говорим. а make install покладет в /opt от этой сточки:
set (CMAKE_INSTALL_PREFIX /opt)
Q-Master
11.02.2012, 12:43
Q-Master
очень много deb пакетов ставится в опт, если они не из репозитория. а мы ведь не про репозиторий говорим. а make install покладет в /opt от этой сточки:
set (CMAKE_INSTALL_PREFIX /opt)
Да я в первый раз слышу про такие .deb пакеты. Ну покажи мне хоть один. Ткни носом.
А CMAKE после cmake .. && make && sudo make install ДОЛЖЕН положить в /usr/local а не в какой-то там /opt. Хочешь в /opt делай -DCMAKE_INSTALL_PREFIX=/opt и пользуйся. В штатной DEB системе туда даже пути никакие не настроены. Ну и соответственно никто мучаться не будет с их установкой.
сделал фиксы под OSX. компилиццо, запускаеццо, работает :)
оч мало времени разбираться почему SDL_UpdateRect работает аццки медленно, так что пока юзаю эмуль в режиме 1:1 (noscale).
Ума не приложу, где найти, что нужно нажать в дебугере, чтобы перейти на адрес и поставить точку остановки...
сделал фиксы под OSX. компилиццо, запускаеццо, работает :)
оч мало времени разбираться почему SDL_UpdateRect работает аццки медленно, так что пока юзаю эмуль в режиме 1:1 (noscale).
Можно ссылку на .dmg для Mac OS X ?
Компилил по первому сообщению, не вышло.
Конец терминала:
http://ipic.su/img/img7/fs/Snimokekranaot2018-01-1121-07-25.1515680405.png
Ошибок в другом месте не пишет.
lubuntu x64
mastermind
12.01.2018, 00:10
AER,
git clone http://github.com/mkoloberdin/zemu
cd zemu
mkdir build
cd build
cmake ..
опционально, если нужно опции поменять:
ccmake ..
или
cmake-gui ..
make
Можно попросить подробно описать процесс сборки zemu под mac os x ?
mastermind
19.02.2019, 21:39
Можно попросить подробно описать процесс сборки zemu под mac os x ?
Процесс тот же что и на линуксе, см. мое сообщение выше. Только перед этим нужно зависимости установить. Например с помощью homebrew (https://brew.sh/):
brew install git cmake sdl
homebrew проинсталлил но из-за того что не инсталлируется glibc zemu не собирается. Можно выложить готовую .dmg-шку ?
mastermind
14.06.2019, 23:19
Сборка на mac была сломана. Я поправил в последнем коммите.
Теперь собирается, но там Sinus что-то намудрил с выводом изображения конкретно для мака (в коде полно #ifdef __APPLE__ ), у меня нет картинки. (я до этого на маке никогда не тестировал, не в курсе в чем там дело)
Там в ощем всё собиралось (у меня как раз мак :), но сборка зависит от наличия __APPLE__. Оч странно что нет этого дефа (хотя с другой стороны я собирал эмуль давно, так то xcode после этого раз 10 уже обновлялся, мож сломали чего)
mastermind
15.06.2019, 01:06
Не, я не имел ввиду что дефайна __APPLE__ нет. Он есть. (точнее, должен быть на маке + я сейчас попробовал еще "cmake -D__APPLE__=1 .." - результат тот же - нет картинки )
Я имел ввиду что я не в курсе зачем [был] нужен отдельный code path (то что внутри #ifdef __APPLE__) для вывода изображения на маке и почему он не работает.
А не собиралось из за того что на маке принудительно дефайнился "__linux__" из за чего у тулчейна XCode срывало крышу по понятным причинам. (в библиотечных хедерах же те же самые дефайны для определения ОС используются)
Я имел ввиду что я не в курсе зачем [был] нужен отдельный code path (то что внутри #ifdef __APPLE__) для вывода изображения на маке
На OsX дичайше тормозит что SDL_Flip, что SDL_UpdateRect, что даже у меня на макбуке прошке в 50 FPS работало только в окошке 1x.
Решение - обновлять экран в отдельном потоке.
По хорошему это надо бы сделать не только для OsX, но для всех платформ, но это ж надо тестировать чтоб нигде не сломалось, а у меня нет на это времени сейчас (собсно оно и сломалось :) но хоть только на маке).
и почему он не работает.
К сожалению подсказать не могу, когда я давно-давно собирал, то всё работало. Сейчас попробовал всё почистить, обновить до последней версии из репы и собрать, но Cmake меня нагнул :) Сейчас надо убегать, сходу не смог порешать. Может подскажешь какие-нибудь флаги, чтоб:
1. Сказать ему, чтоб он искать SDL не из /Library/Frameworks/..., а из homebrew (/usr/local/...), ибо у меня для Hivelytracker лежит именно в /Library/Frameworks особая версия, и она для zemu не подходит. Конечно можно временно переименовать папку в /Library/Frameworkds, но это как-то похоже на костыль
2. Даже если путём переименовывания папки заставить его искать SDL там где надо, на линковке отваливается теперь уже zame_z80:
ld: warning: ignoring file lib_zame_z80/libz80ex_wrapper.a, file was built for archive which is not the architecture being linked (x86_64): lib_zame_z80/libz80ex_wrapper.a
Чот тоже поставило в тупик. Вот вроде ток что собралось, но как так получилось, что не под ту архитектуру?
P.S. Слишком много магии для меня в Cmake. Вот Makefile - это тупо, просто и понятно.
----
UPD №1.
Ок, билд собрался. Ключик:
-D CMAKE_FIND_FRAMEWORK=LAST
Это же полечило и "file was built for archive which is not the architecture being linked".
Изображения нет. Попробую посмотреть WTF.
Мопед не мой. Похоже то ли переобновили, то ли недообновили SDL 1.2, и ничего не работает:
#include <SDL.h>
int main(int argc, char *argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
SDL_WM_SetCaption("SDL Test", "SDL Test");
int done = 0;
SDL_Event event;
SDL_Rect rect;
rect.x = 50;
rect.y = 50;
rect.w = 50;
rect.h = 50;
while (!done) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT || (event.type == SDL_KEYUP && event.key.keysym.sym == SDLK_ESCAPE)) {
done = 1;
}
}
if (SDL_MUSTLOCK(screen)) {
SDL_LockSurface(screen);
}
SDL_FillRect(screen, &screen->clip_rect, SDL_MapRGB(screen->format, 0, 0, 0));
SDL_FillRect(screen, &rect, SDL_MapRGB(screen->format, 0xFF, 0x80, 0x40));
if (SDL_MUSTLOCK(screen)) {
SDL_UnlockSurface(screen);
}
SDL_UpdateRect(screen, 0, 0, 0, 0);
}
SDL_Quit();
return 0;
}
Компилим и запускаем:
gcc $(sdl-config --cflags --libs) sdltest.c -o sdltest && ./sdltest
И хоть бы что - пустой белый экран.
Причём бинарь который у меня был - работал, но я его потёр для тестов :) Так что теперь остался я без эмуля :(
----
UPD №1.
Скомпилил последний SDL1.2 из сорцов - саем стори. Походу сорян, zemu под мак накрылся до момента переезда на SDL2 :(
UPD №2.
https://twitter.com/icculus/status/1074330342193053697?lang=en
https://sourceforge.net/p/dosbox/bugs/491/
mastermind
15.06.2019, 22:08
P.S. Слишком много магии для меня в Cmake. Вот Makefile - это тупо, просто и понятно.
Да нет там никакой особой магии вроде. Все хорошо документировано.
Makefile - в том то и дело, там "просто и понятно" только пока "тупо", т.е. если очень простое что-то надо делать.
CMake - вещь более высокоуровневая, в нем просто делаются всякие вещи посложнее.
- - - Добавлено - - -
zemu под мак накрылся до момента переезда на SDL2 :(
Это, кстати, я давно начал делать, но не знаю когда доберусь закончить. Т.к. не закончено, не публиковал. Выложить как есть?
Edit: Посмотрел репо. Нет, вру, я лишь провел работу (не на 100%) по отделению UI от всего остального, чтоб можно было и SDL1 и SDL2 и пр. переключать во время сборки. До, собственно, портирования под SDL2 дело не дошло.
Да нет там никакой особой магии вроде. Все хорошо документировано.
Makefile - в том то и дело, там "просто и понятно" только пока "тупо", т.е. если очень простое что-то надо делать.
CMake - вещь более высокоуровневая, в нем просто делаются всякие вещи посложнее.
- - - Добавлено - - -
Это, кстати, я давно начал делать, но не знаю когда доберусь закончить. Т.к. не закончено, не публиковал. Выложить как есть?
Edit: Посмотрел репо. Нет, вру, я лишь провел работу (не на 100%) по отделению UI от всего остального, чтоб можно было и SDL1 и SDL2 и пр. переключать во время сборки. До, собственно, портирования под SDL2 дело не дошло.
Выложи в бранчик, мож совместными усилиями чот и допилим
- - - Добавлено - - -
P.S. Эх, больше 10 лет прошло с момента выпуска первой версии. Смотрю на код и плачу :)
А с другой стороны а что делать? Из годных опенсурсных эмулей под мак только Unreal через Wine и может Xpeccy (пока не пробовал).
Думаю, если какими-то небольшими усилиями (пусть и костыльными) можно перейти на SDL2 - нужно попробовать
Благодаря доброму человеку Bapabooiee отсюда - https://sourceforge.net/p/dosbox/bugs/491/ переезд на SDL2 можно на некоторое время отложить :)
I dunno where or how the presence of the LC_BUILD_VERSION affects the runtime environment, but using a hex-editor to remove the cmd causes DOSBox to begin working correctly again
Я прочитал это ещё вчера, но не мог поверить что поможет. Однако помогло!
https://images.zame-dev.org/pub/ljeMpi.png
Фикс в мастере, собирать через ./build.sh
mastermind
17.06.2019, 00:52
Выложи в бранчик, мож совместными усилиями чот и допилим
https://github.com/mkoloberdin/zemu/tree/zemu2
Посмотрел я коммиты в том барнчике, много вкусного, но и много слишком радикальных изменений на мой взгляд. Пока что моя главная задача - просто перевести эмуль наименьшими телодвижениями на SDL2. По этому я сейчас там всякое коммитаю, не основанное на бранчике.
Это не значит что я как-либо отрицаю все хорошие изменения оттуда, но пока что я пойду другим путём. Как завершу миграцию на SDL2 - буду в ручном режиме всё хорошее переносить.
Black Cat / Era CG
08.07.2019, 17:28
Спасибо
Если, вдруг, кому интересно, то эмуль уже на SDL2, и "фикс" под macOS больше не требуется. Уже в репе - https://github.com/mkoloberdin/zemu
P.S. Кроме SDL2 больше никаких глобальных изменений нет.
mastermind
08.07.2019, 21:58
но и много слишком радикальных изменений на мой взгляд.
Что именно? ;)
Что именно? ;)
Как насчёт того, чтоб обсудить "вижн" в скайпе / телеге / etc? Отправил в личку свои контакты.
mastermind
10.07.2019, 02:14
Как насчёт того, чтоб обсудить "вижн" в скайпе / телеге / etc? Отправил в личку свои контакты.
OK.
Хотел попробовать Ваш эмулятор на Linux, но он после сборки не открывает окно.
Просмотрел код инициализации SDL2 вроде отрабатывает, но как оказалось SDL_RenderPresent почему-то вызывается в другом потоке чем SDL_PollEvent, что по идее некорректно.
Попробовал допилить напильником, чтобы все работало в одном потоке, эмуль запустился нормально, на Raspi 4 работает шустренько. Лучше чем fuse. :)
https://i.imgur.com/SIcwpRp.png (https://imgur.com/a/vTSl0VH)
Но непонятно, что за приколы с потоками? Подскажите, может я чтото не так делаю?
Также не вижу кнопки переключения в полноэкранный режим, ее нет?Уже нашел - нужно замапить @fullscreen в keys.config
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot