Тeбя понял прeкрaсно.Просто рaзвил идeю eщё дaльшe,или в ту сторону,гдe eщё eсть пользa)
Тeбя понял прeкрaсно.Просто рaзвил идeю eщё дaльшe,или в ту сторону,гдe eщё eсть пользa)
"...Неправедный пусть еще делает неправду; нечистый пусть еще сквернится; праведный да творит правду еще, и святый да освящается еще. Се, гряду скоро, и возмездие Мое со Мною, чтобы воздать каждому по делам его. " (Откр. 22:11-13)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да, Мад, я приметил что ты просёк о чем я.
Остальные отписавшиеся - по-ходу не въехали.
Объясни ты, если сможешь
---------- Post added at 19:47 ---------- Previous post was at 19:43 ----------
А вообще было бы гораздо труёвей если бы кто-нибудь шарящий во внутренностях эмуля (ну например Unreal`а) - просто взял и попробовал реализовать.
Т.е. для начала всё по-старому, тока INT обрабатывается отдельно (не нагружая основной проц).
Это был-бы первый шаг в том пути который либо окажется тупиком (т.е. покажет что ненужное затеяли - отрицательный результат=тоже результат) либо подскажет в каком направлении дальше двигать (если всё-таки полезную штуку удумали).
Ничего так самомнение, а?
Бери исходники us035b2-src.rar, последние на sourceforge. На новодел типа 0.37.6 не смотри, там сильно код усложнен.
В папке Z80 в файле DEFS.H описана struct Z80.
Создание экземпляра этой структуры в глобальной памяти:
Z80 cpu;
в файле VARS.CPP. Этот файл включается перед другими в EMUL.CPP. С помощью #include, не очень красивый стиль;/
Соответственно, везде, где видишь cpu.что-тотам - это работа с процом.
Основной цикл - функция mainloop() в файле mainloop.cpp. Она вызывает spectrum_frame() в том же файле. А та вызывает z80dbg::z80loop() или z80fast::z80loop(), в зависимости от переменной dbgchk. Где z80dbg и z80fast - это namespaces(смотри z80.cpp) - по сути откомпиленный с включенным и выключенным макросом Z80_DBG файл Z80_MAIN.CPP...
...
Все больше убеждаюсь в значении такого параметра, как толстотаСмотри мой пост выше... Даже скажу на какой странице: на 4-ой. Даже номер поста: 39-ый. Даже ссцылку приведу: http://zx.pk.ru/showpost.php?p=549887&postcount=39
Разбирайся, изучай, если ты серьезно. Никто за тебя ничего делать такого не будет, это не очень правильный подход.
Вот за то что в созданной тобой дискуссии упомянуты ZX-Poly и ICU64 - это спасибо! Давно были такие мысли... Типа добавить в эмулятор автоматический(ну полуавтоматический) анализатор памяти на основе текущих исполняемых эмулятором алгоритмов. Для выявления спрайтов, карт и т.д. У ICU64, как я понял, все это вручную ищется, ну в данной версии, пока что... Верх совершенства был бы автоматический проходитель игр... или автоматический исправлятель ошибок эмуляции![]()
(и далее...)
Какое там самомнение, я наоборот имел в виду что не сумею освоить это раньше пенсии ( а скорей всего - и вообще не сумею).
А про "толстоту" - не понял вообще о чём ты, но закралась мысль что ты меня в троллинге подозреваешь.
Это не так.
"Двуядреный" эмуль мне нужен не как гипотеза чтоб тред/срач завести, а действительно - мучаюсь с написанием сложной проги (ну для меня это сложная штука) - и прикинул что могло бы мне облегчить.
Тред и завёл (ну мало-ли ещё кто того-же инструмента желает? вдруг чего сообща и придумали).
---------- Post added at 23:35 ---------- Previous post was at 23:31 ----------
"В это вpемя известный иностpанный писатель виpусов посетил
Москву (все еще не пеpеименованную) и, находясь под впечатле-
нием от всего увиденного, написал новый виpус. Благодаpя шиpоко-
му набоpу команд нового пpоцессоpа Decium, он уместил его всего
в 10 байт. Виpус взбудоpажил миpовую общественность, ибо тепеpь
самовозникновение виpусов в pезультате случайных сбоев стало из
невозможного пpосто маловеpоятным. Идеологи ВКП(П) усмотpели в
этом шиpокую пеpспективу: настанет вpемя, когда пpогpаммы будут
писаться сами собой, а пpогpаммисты будут только игpать в DOOM и
Beholder, пить пиво и спать." (с) - где-то тут http://www.zxpress.ru/article.php?id=12223
А ты начни. Потом опубликуй хоть что-нибудь. Так больше шансов, что подхватят
В unreal0.35, кстати, уже есть еще один Z80:
Z80 gscpu;
в том же VARS.CPP.
И работа с ним идет в GS.CPP и gsz80.cpp - всего 290 строк(реально меньше, так как еще эмуляция звуковой карты).
Лучше спрашивай про конкретные алгоритмы в unreal, думаю на такие вопросы отвечать к многих будет интерес! Ломать - не строить))
А автоматическая проходилка...
Есть доказательство, что невозможно написать алгоритм, который будет исследовать другой подсунутый ему алгоритм(заранее неизвестный - типа аргумент функции) и выдавать его результат, при этом не исполняя самого алгоритма.
Если же исполнять, утыкаемся в комбинаторный взрыв.
Но народ воюет.
Можно как-то считать что-то типа энтропии программы, т.е игра еще продолжается или нет. Можно строить длиннющие причинно-следственный связи и отматывать время назад(почему-то все забывают, какой вагон памяти у нас, если не хранить в нем HD-video...).
Но суть в том, что надо отсекать лишние ветви, уменьшать количество вариантов. Но это оффтоп все...
По твоей же пр... теме. Представь что у тебя черный ящик. Дак вот, вместо того, чтобы изучать его извне, без последствий для черного ящика(а ты это можешь, если работаешь на любом PC, а не на самом ящике) - ты пытаешься его распилить, взять половинку от другого и склеить их...
Короче, эффекта "двупроцессорного эмулятора", ты, Destr, можешь добиться очень просто: поставить в UnrealSpeccy 200 000 тактов в прерывании и выводить на прерываниях всё, что тебе хочется. Не будет успевать в прерывание - поставь 300 000 тактов. Меньше побочных эффектов на программу (в случае если она синхронизированна с INT'ом). И не надо ломать себе моск.
Последний раз редактировалось siril; 08.11.2012 в 13:53.
oisee.
нужен еще отдельный экран, например, для всей карты в мелком масштабе...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)