Вход

Просмотр полной версии : ZEmu



Страницы : 1 2 [3]

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
это от религии зависит ;)
я же не разраб. от меня только пара патчей была

Sinus
08.02.2012, 00:36
я за /opt.
закоммитил в апстрим.

Doctor Max
08.02.2012, 00:51
Sinus, пропиши на заглавной ссылку всеже...
извиняюсь...

Sinus
08.02.2012, 00:57
ээм... ссылку куда? на гитхаб? так она там и так есть:


Желающих быть "на острие" приглашаю на https://github.com/mkoloberdin/zemu

Doctor Max
08.02.2012, 01:01
ну я же дописал - извиняюсь ;-) не увидел сначала на главной ;-)

Sinus
08.02.2012, 01:03
кстати, если ты есть на гитхабе, то присоеденяйся, чо.
форкай, фиксай/меняй что надо, потом делай 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 уже забыть пора давно.

Sinus
09.02.2012, 13:52
ну все ./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?

Sinus
09.02.2012, 19:59
ну а у меня как-то так:



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

Sinus
09.02.2012, 22:42
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 системе туда даже пути никакие не настроены. Ну и соответственно никто мучаться не будет с их установкой.

Sinus
02.05.2012, 00:51
сделал фиксы под OSX. компилиццо, запускаеццо, работает :)
оч мало времени разбираться почему SDL_UpdateRect работает аццки медленно, так что пока юзаю эмуль в режиме 1:1 (noscale).

mungo
15.05.2013, 17:15
Ума не приложу, где найти, что нужно нажать в дебугере, чтобы перейти на адрес и поставить точку остановки...

13joe
15.07.2017, 15:48
сделал фиксы под OSX. компилиццо, запускаеццо, работает :)
оч мало времени разбираться почему SDL_UpdateRect работает аццки медленно, так что пока юзаю эмуль в режиме 1:1 (noscale).

Можно ссылку на .dmg для Mac OS X ?

AER
11.01.2018, 17:24
Компилил по первому сообщению, не вышло.
Конец терминала:


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

13joe
19.02.2019, 17:16
Можно попросить подробно описать процесс сборки zemu под mac os x ?

mastermind
19.02.2019, 21:39
Можно попросить подробно описать процесс сборки zemu под mac os x ?

Процесс тот же что и на линуксе, см. мое сообщение выше. Только перед этим нужно зависимости установить. Например с помощью homebrew (https://brew.sh/):

brew install git cmake sdl

13joe
09.06.2019, 16:51
homebrew проинсталлил но из-за того что не инсталлируется glibc zemu не собирается. Можно выложить готовую .dmg-шку ?

mastermind
14.06.2019, 23:19
Сборка на mac была сломана. Я поправил в последнем коммите.
Теперь собирается, но там Sinus что-то намудрил с выводом изображения конкретно для мака (в коде полно #ifdef __APPLE__ ), у меня нет картинки. (я до этого на маке никогда не тестировал, не в курсе в чем там дело)

Sinus
15.06.2019, 00:28
Там в ощем всё собиралось (у меня как раз мак :), но сборка зависит от наличия __APPLE__. Оч странно что нет этого дефа (хотя с другой стороны я собирал эмуль давно, так то xcode после этого раз 10 уже обновлялся, мож сломали чего)

mastermind
15.06.2019, 01:06
Не, я не имел ввиду что дефайна __APPLE__ нет. Он есть. (точнее, должен быть на маке + я сейчас попробовал еще "cmake -D__APPLE__=1 .." - результат тот же - нет картинки )

Я имел ввиду что я не в курсе зачем [был] нужен отдельный code path (то что внутри #ifdef __APPLE__) для вывода изображения на маке и почему он не работает.

А не собиралось из за того что на маке принудительно дефайнился "__linux__" из за чего у тулчейна XCode срывало крышу по понятным причинам. (в библиотечных хедерах же те же самые дефайны для определения ОС используются)

Sinus
15.06.2019, 13:57
Я имел ввиду что я не в курсе зачем [был] нужен отдельный 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.

Sinus
15.06.2019, 19:38
Мопед не мой. Похоже то ли переобновили, то ли недообновили 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 дело не дошло.

Sinus
16.06.2019, 01:38
Да нет там никакой особой магии вроде. Все хорошо документировано.
Makefile - в том то и дело, там "просто и понятно" только пока "тупо", т.е. если очень простое что-то надо делать.
CMake - вещь более высокоуровневая, в нем просто делаются всякие вещи посложнее.

- - - Добавлено - - -


Это, кстати, я давно начал делать, но не знаю когда доберусь закончить. Т.к. не закончено, не публиковал. Выложить как есть?
Edit: Посмотрел репо. Нет, вру, я лишь провел работу (не на 100%) по отделению UI от всего остального, чтоб можно было и SDL1 и SDL2 и пр. переключать во время сборки. До, собственно, портирования под SDL2 дело не дошло.

Выложи в бранчик, мож совместными усилиями чот и допилим

- - - Добавлено - - -

P.S. Эх, больше 10 лет прошло с момента выпуска первой версии. Смотрю на код и плачу :)
А с другой стороны а что делать? Из годных опенсурсных эмулей под мак только Unreal через Wine и может Xpeccy (пока не пробовал).
Думаю, если какими-то небольшими усилиями (пусть и костыльными) можно перейти на SDL2 - нужно попробовать

Sinus
16.06.2019, 12:12
Благодаря доброму человеку 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

Sinus
17.06.2019, 07:55
:cool:

Sinus
08.07.2019, 16:32
Посмотрел я коммиты в том барнчике, много вкусного, но и много слишком радикальных изменений на мой взгляд. Пока что моя главная задача - просто перевести эмуль наименьшими телодвижениями на SDL2. По этому я сейчас там всякое коммитаю, не основанное на бранчике.

Это не значит что я как-либо отрицаю все хорошие изменения оттуда, но пока что я пойду другим путём. Как завершу миграцию на SDL2 - буду в ручном режиме всё хорошее переносить.

Black Cat / Era CG
08.07.2019, 17:28
Спасибо

Sinus
08.07.2019, 21:58
Если, вдруг, кому интересно, то эмуль уже на SDL2, и "фикс" под macOS больше не требуется. Уже в репе - https://github.com/mkoloberdin/zemu

P.S. Кроме SDL2 больше никаких глобальных изменений нет.

mastermind
08.07.2019, 21:58
но и много слишком радикальных изменений на мой взгляд.
Что именно? ;)

Sinus
09.07.2019, 07:05
Что именно? ;)

Как насчёт того, чтоб обсудить "вижн" в скайпе / телеге / etc? Отправил в личку свои контакты.

mastermind
10.07.2019, 02:14
Как насчёт того, чтоб обсудить "вижн" в скайпе / телеге / etc? Отправил в личку свои контакты.

OK.

ZXMAK
03.09.2024, 04:05
Хотел попробовать Ваш эмулятор на Linux, но он после сборки не открывает окно.
Просмотрел код инициализации SDL2 вроде отрабатывает, но как оказалось SDL_RenderPresent почему-то вызывается в другом потоке чем SDL_PollEvent, что по идее некорректно.

Попробовал допилить напильником, чтобы все работало в одном потоке, эмуль запустился нормально, на Raspi 4 работает шустренько. Лучше чем fuse. :)

https://i.imgur.com/SIcwpRp.png (https://imgur.com/a/vTSl0VH)

Но непонятно, что за приколы с потоками? Подскажите, может я чтото не так делаю?


Также не вижу кнопки переключения в полноэкранный режим, ее нет?Уже нашел - нужно замапить @fullscreen в keys.config