ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 19 окт 2017, 14:03

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 05 сен 2013, 12:59 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 978
sas9568635 писал(а):
Я иммею ввиду для таких целей как эмуляторы (мой и Марата)?!.. Считаешь что стОит?..

Винда не расчитана на динамическую картинку всякими директдровами. Поэтому, особенно для такой сложной задачи, как эмуляция, использование DirectX оправдано более чем. Более того, и со звуком будет легче.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 13:07 
Не в сети
Аватар пользователя

Зарегистрирован: 13 фев 2012, 15:32
Сообщений: 315
Откуда: Приморский край. Уссурийск
sas9568635 писал(а):
Марат обрати внимание!... может нет смысла замораживаться на всяких директИксах...
Вот я написал на форумы
Цитата:
Вот таймер 1 который временами дает глюки...
Код:
procedure TMainFormEmu.TimerMainTimer(Sender: TObject);
begin
 i8080_do_opcodes(opcodes_to_run);// блок команд КР580
RefreshScreen;// перечертить экран
end;

Вот таймер 2 который будет в следующей версии(в меню можно будет выбрать способ вывода 1 или 2) Этом таймер я еще не проверил так как глюков не появлялось...
RDTSCfirstStart — флаг первого запуска, необращай внимания
GetTestRDTSC_ - измерянное кол-во таков RDTSC в 1 сек
RDTSCbak- бывшее состояние RDTSC
RDTSC1fps — колво тактов RDTSC в 1/50 секунду при FPS=50
RDTSC — текущее RDTSC

Код:
function RDTSC: int64; assembler; asm  db $0F,$31 end;

procedure TMainFormEmu.TimerRDTSCTimer(Sender: TObject);
begin
if not RDTSCfirstStart then begin RDTSCfirstStart:=True; RDTSCbak:=RDTSC; end;//первый запуск таймера
RDTSC1fps:=Round((GetTestRDTSC_/FPS)*{поправка}(100/173));
if RDTSC >= RDTSCBAK+RDTSC1fps then begin
RDTSCbak:=RDTSC; RDTSCBAK:=RDTSCBAK+RDTSC1fps;
 i8080_do_opcodes(opcodes_to_run);// блок команд КР580
RefreshScreen;// перечертить экран
end;

Соль второго таймера, что отсчёт времени начинается СРАЗУ после того как закончился предыдущий отсчёт времени (RDTSCbak:=RDTSC; RDTSCBAK:=RDTSCBAK+RDTSC1fps;) и процедуры ( i8080_do_opcodes(opcodes_to_run) RefreshScreen;) выполняются когда «часики уже тикают»....
А вот в первом, врядле так оно. Поетому я хочу в 1 таймере вынести выполнение за пределы таймера т. е. чтобы они выполнялись по end-таймеру....
Правильно ли я мыслю?.... даст ли это чего?..


Марат! Я все это к тому. что есть другие способы вот такие как я пишу и прочие... а для ретро машин (ретро эмуляторов) заморачиваться на Директах... стоит ли?.. особенно если еще изучать нужно

Пойми , дело даже и не в таймере .... то что я и ты пытаемся сделать, на delphi мягко скажем код двоечника программиста (я про себя)
чтобы заставить такой код как наш работать на старых машинах, нужно использовать вставки ассемблерные, получить доступ к железу на прямую а не через winapi и оптимизировать и оптимизировать и еще раз ..........
Вот DIRECTX помогает со всем этим бороться , все заточено под железо , там проще (если знать как) выводить картинку с темже сглаживанием, синхронизация звука ... и т.д


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 13:08 
Не в сети
Аватар пользователя

Зарегистрирован: 13 фев 2012, 15:32
Сообщений: 315
Откуда: Приморский край. Уссурийск
Zelya писал(а):
sas9568635 писал(а):
Я иммею ввиду для таких целей как эмуляторы (мой и Марата)?!.. Считаешь что стОит?..

Винда не расчитана на динамическую картинку всякими директдровами. Поэтому, особенно для такой сложной задачи, как эмуляция, использование DirectX оправдано более чем. Более того, и со звуком будет легче.

+1 :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 14:11 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
MARAT_BEST писал(а):
чтобы заставить такой код как наш работать на старых машинах,

А вот скажи... зачем на этом заморачиваться (для старых компов)... год-два и эти компы на которых сейч.сидим мы будут старые!... Ну кто оцененит то что ты эмуль напишешь, что он будет работать на "поиске" ?... или на "ПК-01 Львове" ? :-)
MARAT_BEST писал(а):
нужно использовать вставки ассемблерные, получить доступ к железу на прямую а не через winapi и оптимизировать и оптимизировать и еще раз ..........

Я это типа понимаю... но, нам с тобой немного не по пути :-) так сказать...:-) у меня другие цели...т.е. эмуль тот что у меня и другие эмули меня вполне устраивают... через год-два наши эмули "летать" будут на новых машинах!... :-) Я буду больше двигаться в сторону управления эмулем (и машиной в эмуле) из внешней программы (т.е. используя DprToLvt ) для прочного изучения (эксперементов) с ПК-01... постараюсь довести до того, чтобы можно было хоть как-то(т.е. комбинированно) компилировать в ПК-01 написанное в дельфи (командами Асм580) используя DprToLvt...
MARAT_BEST писал(а):
Вот DIRECTX помогает со всем этим бороться , все заточено под железо , там проще (если знать как) выводить картинку с темже сглаживанием, синхронизация звука ... и т.д

Согласен, конечно!
Считаю, что подобным никого и даже себя ни ты не я не удивлю!... Ну есть уже такое!.. Ну может и лучше у тебя получится!... ну и что?!... по существу ничего это не меняет - есть подобные эмуляторы!...
ИМХО! Проще говоря, пытайся написать в своём эмуле, то, чего нет в других эмулях!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 14:17 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 978
sas9568635 писал(а):
Я это типа понимаю... но, нам с тобой немного не по пути :-) так сказать...:-) у меня другие цели...т.е. эмуль тот что у меня и другие эмули меня вполне устраивают... через год-два наши эмули "летать" будут на новых машинах!... :-)

Вспомните свои первые попятки написать эмуль. Как вы все пытались сделат риалтайм с задержками треда, не слушая советов. Сейчас, когда Вы уже умеете писать дивжок эмуля (как я понмаю, спаибо Марату) это выглядит неуклюже и смешно. Хотя даже такая страшная конструкция летала бы на новых многоядерных машинах. Вот так же неуклюже и смешно выглядит directdraw против directX.
А если цели другие, то и подход должен быть другой. Если Вы деалете эмуль, как конечный продукт для пользователя, то присулшивайтесь к советам по качеству. Если же этот эмуль для Вас всего лишь инструмент для чего-то другого (например пишите игру на ПК-01), тогда давайте нам тот другой, финальный продукт на оценку, а эумль выкладывать не нужно. Как-то так.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 14:49 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
Zelya писал(а):
Если Вы деалете эмуль, как конечный продукт для пользователя, то присулшивайтесь к советам по качеству.

Нет, мой эмуль это не как конечный продукт. Поэтому у меня нет особого желения осваивать ДиректИкс хотя бы для того что-бы "мозги" настраивать на другое и время не тратить на ДиректИкс... Не исключено, что могу внезапно переключится если посчитаю, что я ДиректИкс быстренько прикручу и "пойду дальше"...
Zelya писал(а):
Если же этот эмуль для Вас всего лишь инструмент для чего-то другого (например пишите игру на ПК-01),

Скажем так, писал я DprToLvt, к нему был эмуль как прилягающее... Шото то... как-то... в тупик зашел... что-ль.. непонравилось мне все это... решил пойти обратным ходом написать эмуль который можно в принципе использовать, и прикуритить DprToLvt... Далее поддерживать "легонько" эмуль как окончательный вариант, но при котором развивается DprToLvt... далее РиверРайд для эмулятора (с использованием DprToLvt, по другому я его не напишу)... далее компилятор... далее... ОЙ! Шото я увлекся! :-) я столько не проживу! :-) Да и возможны "повороты" судьбы..
Если где-то и в чём-то описанном выше будут "тупики" - дак конечно же и я буду менять ход развития проекта. А это плохо?... Что изначально цель мутна и "размыта"... а далее по мере действий(праивильных и неправильных) - проясняется?!
Zelya писал(а):
тогда давайте нам тот другой, финальный продукт на оценку, а эумль выкладывать не нужно. Как-то так.

Хм.. А чем Вас эмуль не устраивает!?... как конечный продукт!... Его что нельзя использовать?!.. Думаю можно! Если есть какие недостатки - дак они везде и во всём есть...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 15:09 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 978
Еще раз.
1. Если Ваш эумль не есть конечным продуктом, а есть только инструментом, чтобы потетсить, опробовать, упростить разработку Ваших других проектов, то проблем никаких. Только в таком случае раздавать его и предлагать пробовать смысла не имеет.
2. Если Вы предлагаете свой эмулятор, как конечный продукт. Т.е. чтобы любой посторонний использовал его для эмуляции игр ПК-01, то в таком случае отмазка "у меня другие цели..." не катит. По крайней мере она выглядит некрасиво перед людьми, которым Вы предложили его тестировать. Снова же приведу Ваш же пример.
Вы предлагете потестить свой первый вариант эумля. Эмуль страшно глючит даже на мощном одноядерном компе, при том отжирая кучу ресурсов. Вам делают замечания, но Вы их не слушаете, то доказывая что он работает достаточно быстро, то говоря, что для своих задач он хорош. Это просто некрасиво по отношению к тем, кому Вы предложили попробовать тот первый эумль.
Сейчас у Вас есть версия №2. Прогресс на лицо. Но Вы снова повторяете шаг в шаг весь негатив. Снова, Вас все устраивает и у эмуля другая цель. Я думаю, если Марат выпустит свой двиг на ДиректИкс, то Ваше мнение снова поменяется. Но в то же время о Ваших разработках уже может сложится негативный фон.

Вывод:
Выкладывайте только продукт, который предлагаете использовать как конечный (исключения, если отдельно просят показать что-то), и всегда прислушивайтесь советов пользователей.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
cron
Free counters!
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB