PC-01 Lviv

It is currently 19 Mar 2024, 05:22

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 26 posts ]  Go to page Previous 1 2
Author Message
PostPosted: 05 Sep 2013, 12:59 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Quote:
Я иммею ввиду для таких целей как эмуляторы (мой и Марата)?!.. Считаешь что стОит?..
Винда не расчитана на динамическую картинку всякими директдровами. Поэтому, особенно для такой сложной задачи, как эмуляция, использование DirectX оправдано более чем. Более того, и со звуком будет легче.


Top
   
PostPosted: 05 Sep 2013, 13:07 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Марат обрати внимание!... может нет смысла замораживаться на всяких директИксах...
Вот я написал на форумы
Quote:
Вот таймер 1 который временами дает глюки...
Code:
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
Code:
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 помогает со всем этим бороться , все заточено под железо , там проще (если знать как) выводить картинку с темже сглаживанием, синхронизация звука ... и т.д


Top
   
PostPosted: 05 Sep 2013, 13:08 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Quote:
Я иммею ввиду для таких целей как эмуляторы (мой и Марата)?!.. Считаешь что стОит?..
Винда не расчитана на динамическую картинку всякими директдровами. Поэтому, особенно для такой сложной задачи, как эмуляция, использование DirectX оправдано более чем. Более того, и со звуком будет легче.
+1 :D


Top
   
PostPosted: 05 Sep 2013, 14:11 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
чтобы заставить такой код как наш работать на старых машинах,
А вот скажи... зачем на этом заморачиваться (для старых компов)... год-два и эти компы на которых сейч.сидим мы будут старые!... Ну кто оцененит то что ты эмуль напишешь, что он будет работать на "поиске" ?... или на "ПК-01 Львове" ? :-)
Quote:
нужно использовать вставки ассемблерные, получить доступ к железу на прямую а не через winapi и оптимизировать и оптимизировать и еще раз ..........
Я это типа понимаю... но, нам с тобой немного не по пути :-) так сказать...:-) у меня другие цели...т.е. эмуль тот что у меня и другие эмули меня вполне устраивают... через год-два наши эмули "летать" будут на новых машинах!... :-) Я буду больше двигаться в сторону управления эмулем (и машиной в эмуле) из внешней программы (т.е. используя DprToLvt ) для прочного изучения (эксперементов) с ПК-01... постараюсь довести до того, чтобы можно было хоть как-то(т.е. комбинированно) компилировать в ПК-01 написанное в дельфи (командами Асм580) используя DprToLvt...
Quote:
Вот DIRECTX помогает со всем этим бороться , все заточено под железо , там проще (если знать как) выводить картинку с темже сглаживанием, синхронизация звука ... и т.д
Согласен, конечно!
Считаю, что подобным никого и даже себя ни ты не я не удивлю!... Ну есть уже такое!.. Ну может и лучше у тебя получится!... ну и что?!... по существу ничего это не меняет - есть подобные эмуляторы!...
ИМХО! Проще говоря, пытайся написать в своём эмуле, то, чего нет в других эмулях!


Top
   
PostPosted: 05 Sep 2013, 14:17 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Quote:
Я это типа понимаю... но, нам с тобой немного не по пути :-) так сказать...:-) у меня другие цели...т.е. эмуль тот что у меня и другие эмули меня вполне устраивают... через год-два наши эмули "летать" будут на новых машинах!... :-)
Вспомните свои первые попятки написать эмуль. Как вы все пытались сделат риалтайм с задержками треда, не слушая советов. Сейчас, когда Вы уже умеете писать дивжок эмуля (как я понмаю, спаибо Марату) это выглядит неуклюже и смешно. Хотя даже такая страшная конструкция летала бы на новых многоядерных машинах. Вот так же неуклюже и смешно выглядит directdraw против directX.
А если цели другие, то и подход должен быть другой. Если Вы деалете эмуль, как конечный продукт для пользователя, то присулшивайтесь к советам по качеству. Если же этот эмуль для Вас всего лишь инструмент для чего-то другого (например пишите игру на ПК-01), тогда давайте нам тот другой, финальный продукт на оценку, а эумль выкладывать не нужно. Как-то так.


Top
   
PostPosted: 05 Sep 2013, 14:49 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Если Вы деалете эмуль, как конечный продукт для пользователя, то присулшивайтесь к советам по качеству.
Нет, мой эмуль это не как конечный продукт. Поэтому у меня нет особого желения осваивать ДиректИкс хотя бы для того что-бы "мозги" настраивать на другое и время не тратить на ДиректИкс... Не исключено, что могу внезапно переключится если посчитаю, что я ДиректИкс быстренько прикручу и "пойду дальше"...
Quote:
Если же этот эмуль для Вас всего лишь инструмент для чего-то другого (например пишите игру на ПК-01),
Скажем так, писал я DprToLvt, к нему был эмуль как прилягающее... Шото то... как-то... в тупик зашел... что-ль.. непонравилось мне все это... решил пойти обратным ходом написать эмуль который можно в принципе использовать, и прикуритить DprToLvt... Далее поддерживать "легонько" эмуль как окончательный вариант, но при котором развивается DprToLvt... далее РиверРайд для эмулятора (с использованием DprToLvt, по другому я его не напишу)... далее компилятор... далее... ОЙ! Шото я увлекся! :-) я столько не проживу! :-) Да и возможны "повороты" судьбы..
Если где-то и в чём-то описанном выше будут "тупики" - дак конечно же и я буду менять ход развития проекта. А это плохо?... Что изначально цель мутна и "размыта"... а далее по мере действий(праивильных и неправильных) - проясняется?!
Quote:
тогда давайте нам тот другой, финальный продукт на оценку, а эумль выкладывать не нужно. Как-то так.
Хм.. А чем Вас эмуль не устраивает!?... как конечный продукт!... Его что нельзя использовать?!.. Думаю можно! Если есть какие недостатки - дак они везде и во всём есть...


Top
   
PostPosted: 05 Sep 2013, 15:09 
Offline
Site Admin
User avatar

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

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


Top
   
 Post subject: SAS еmulator
PostPosted: 21 Dec 2017, 12:45 
Offline

Joined: 18 May 2016, 19:55
Posts: 425
SAS emulator 1.42 Beta.
Добавил возможность сохранения в формат SAV (в разные его разновидности, т.е. с различными хендерами).
Надеюсь, на этом вопрос о "SasLVE => SAV" будет закрыт раз и навсегда!
(см. файл "SASemulator1.42Beta.txt" или "!Readme.txt")

сам Эмулятор без игр
Attachment:
SASemulator1.42Beta(1).7z [584.19 KiB]
Downloaded 890 times
игры к эмулятору (скопируйте каталог "GAMES", в каталог где находится эмулятор)
Attachment:
SASemulator1.42Beta(2).7z [934.8 KiB]
Downloaded 878 times


Top
   
 Post subject: Re: SAS еmulator
PostPosted: 21 Dec 2017, 14:00 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Quote:
Надеюсь, на этом вопрос о "SasLVE => SAV" будет закрыт раз и навсегда!
Очень советую Вам выкладывать Ваши игры уже в фортамте SAV.


Top
   
 Post subject: Re: SAS еmulator
PostPosted: 21 Dec 2017, 14:25 
Offline

Joined: 18 May 2016, 19:55
Posts: 425
Quote:
Очень советую Вам выкладывать Ваши игры уже в фортамте SAV.
Ну ужеж сделал возможность в эмуле, так теперь можно и выкладывать! :-)
Просто не хотелось было на этом парится.
А ты проверял, всё впорядке ? потому что я только на лаб2018 проверял те форматы!... мало ли что!...
"советую Вам" - Слушай, я не помню как мы общались раньше... :-) но давай на "ты", просто потому что так проще, лады ? :-)


Top
   
 Post subject: Re: SAS еmulator
PostPosted: 27 May 2018, 13:58 
Offline

Joined: 18 May 2016, 19:55
Posts: 425
SAS emulator 1.44 Beta.

08-01-2018
SAS emulator 1.43 Beta:
Добавлено открытие файлов с коммандной строки, например
"SASEmulator_.exe boulderdash.SasLVE "
==================================================================
27-05-2018
SAS emulator 1.44 Beta
Отменил сохранение в версию SasLVE (48+2) по умолчанию, так как она дала сбой,
сейчас по умолчанию сохраниение в версию SasLVE (48+1)

Новое: Tools\"Intr BL\BS" - перехват Bload\Bsave
При включении "Intr BL\BS" - происходит чтение\сохранение файла на диск в
формате LVT, в папку емулятора ..\BloadBsave. Имена файлов задаваемые
в ПК-01, переобразовываються в HEX-вид, т.е. например если задать
имя файла "LABS18" то это соответвует файлу "4C4142533138.lvt", если задать
имя файла "" (считается как 6 пробелов), - "202020202020.lvt" и т.д.
При влючённой "Intr BL\BS" и чтении файла (BLOAD), возможны возникновения
ошибок и вывод на экран ПК-01, "ОШИБКА В/В",с последующим переходом на адрес:
E52BH ( 58667 ), как описано в "ПЕРСОНАЛЬНАЯ ЭВМ ПК-01 "ЛЬВОВ" РУКОВОДСТВО
ПРОГРАММИСТУ":
"При прерывании или аварийном завершении процедур ввода с МЛ выдается
сообщение об ошибке и производитсяпереход на E52BH ( 58667 ),
откуда управление передается на BEF0H ( 48880 )."

Такое возможно при: 1 - файл отсутствует или пустой;
2 - слишком маленький размер файла (файл не может быть меньше 23 байт);
3 - неверный формат файла(файл должен быть форматом LVT и начинаться с
'LVOV/2.0/'+#$D0;
4 - несоответствие размера данных (кол-во данных меньше разницы CODFL_END
и CODFL_ORG заданных в файле),

при этом количество данных которое будет в файле всё равно будет загружено
в память ПК-01.
При чтении без ошибок на экран ПК-01 будут выведены адреса начала и конца
загруженных данных, а также контрольная сумма (так как и в ПК-01).

Если например выполнить BLOAD"LABS18",R т.е. с ключом ",R", программа будет
запущенна по адресу старта прописанному в файле 4C4142533138.lvt. Данный
пример предоставляется, попробуйте. Можна также загружать со смещением,
например BLOAD"",10000 программа будет загружена соответвенно и запущена.

Данная возможность "Intr BL\BS" касается только команд BLOAD и BSAVE,
точнее говоря, данная возможность перехватывает переходы на адреса:
2.5.6 Прием кодового файла ( BLOAD ). Точка входа DD94H ( 56724 ). и
2.4.8 Передача кодового файла ( BSAVE ). Точка входа DD31H ( 56625 ),
само выполнение этих подпрограмм в ПК-01 не происходит кроме вычисления
контрольной суммы (" После выполнения загрузки на экран с новой строки вы-
даются адреса файла и его КС ( подпрограмма DD61H ( 56673 )) в
шестнадцатеричном виде. ").Других команд чтения/записи магнитофон,
кроме BLOAD и BSAVE,эта возможность не касается!
При оключённой возможности "Intr BL\BS", BLOAD и BSAVE работают как обычно.
Следует заметить, что при влючённой "Intr BL\BS", скорость работы чтения/записи
и вывода контрольной суммы работают на максимальной скорости, т.е. почти
моментально какими бы не были заданны объёмы чтения\записи.
Примечание. При сохрание данных (BSAVE), имя файла в HEX-виде будет
соотвествовать имени прописанному внутри файла LVT. При чтении данных (BLOAD),
будет прочитан файл с HEX-видом имени заданном в BLOAD, если внутри файла
окажется имя отличающееся от заданного в BLOAD, то данное имя (которое внутри
файла) будет помещено в переменную LOAD_NAME.
LOAD_NAME ¦ BE92-BE97 ¦ 48786-48791 ¦ считанное имя файла.
Данная функция работает про принципу записи данных в файл на диск, т.е.
если сохранить (BSAVE) с именем которым уже было сохранено, предыдущие данные
замещаются новыми.
*
В базу игр Эмулятора добавлена новая игра "2048!"
("2048!.SasLVE" в папке GAMES, прописана index.ini, т.е. есть в BOXGAMES
эмулятора)
==================================================================
сам Эмулятор без игр
Attachment:
SASemulator1.44Beta(1).7z [591.2 KiB]
Downloaded 872 times
игры к эмулятору (скопируйте каталог "GAMES", в каталог где находится эмулятор)
Attachment:
SASemulator1.44Beta(2).7z [952.1 KiB]
Downloaded 875 times


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 26 posts ]  Go to page Previous 1 2

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited