Войти
ФлеймФорумЖелезо

Консоли свернут на "кривую" дорожку ПК? (12 стр)

Страницы: 17 8 9 10 11 12
#165
(Правка: 3:07) 3:03, 17 янв. 2020

gamedevfor
> Под DOS
graphics.h передавал вам привет


#166
3:13, 17 янв. 2020

Delfigamer
> graphics.h передавал вам привет

рисовать графики и фигуры им можно было, но для игр это было медленно.

#167
10:58, 17 янв. 2020

gamedevfor
> Под DOS напрямую писали в видеопамять, благо она уже была линейная

ага - банков памяти конечно не было - забыл как тот драйвер назывался что делал линейный

> CPU в принципе нормально вытягивал 2D графику на ASMе.

elite retalator видел ?

#168
11:01, 17 янв. 2020

gamedevfor
>
> Под DOS напрямую писали в видеопамять, благо она уже была линейная (без битовых
> масок как в ZX), но тогда разрешение было 320x200 (256 цветов) CPU в принципе
> нормально вытягивал 2D графику на ASMе.

Во-первых, в 95 уже было нормальное разрешение (800х600 изи, 1024х768 тоже возможно), так что хочешь в досе это крутить - иди банки переключай. И с экстендед памятью мозги ломай. И драйвера для геймпадов и саундблястеров сам пиши. Да в вин95 был божественный геймдев по сравнению.

#169
11:17, 17 янв. 2020

gamedevfor
> Под DOS напрямую писали в видеопамять, , благо она уже была линейная (без битовых масок как в ZX),

Ты EGA видеорежимы вообще видел?  И возможность писать в видеопамять не даёт автоматом плавный скроллинг и спрайты. Например, чтобы сделать обновление экрана без мерцаний и снега в 320x200 режиме, нужно было ловить VBI в цикле (т.к. прерывания нет) и обновлять видеопамять именно в этот момент.  Не, конечно, можно было залезть руками в регистры VGA и настроить XMODE, чтобы получить (на выбор) или скроллинг или бэк буффер, но это из разряда эзотерики для большинства было.  И вообще, в эпоху до DirectX любая 16-ти битная консоль крыла 486 PC, как бык овцу,  и по графонию и по саунду.

#170
11:30, 17 янв. 2020

0iStalker
> И вообще, в эпоху до DirectX любая 16-ти битная консоль крыла 486 PC, как бык
> овцу,  и по графонию и по саунду.

Это там где отдельные граф и саунд процессоры ? ну да

#171
19:51, 17 янв. 2020

innuendo
> ага - банков памяти конечно не было - забыл как тот драйвер назывался что делал
> линейный

320x200x8bit < 64Kb как раз влезал в один сегмент, так что в этом разрешении банки были ни к чему.

#172
22:10, 17 янв. 2020

gamedevfor
> так что в этом разрешении банки были ни к чему.

это не отменяте факта что линейная не всегда была

#173
(Правка: 14:02) 13:06, 13 мар. 2020

0iStalker
> Просто до 3Dfx'ов пэкашное железо вообще не было заточено под игры (даже
> бэкбуффера не было, не говоря уж про спрайты и скролинг).

Позвольте возразить.  Карта S3 Trio V64+ имела 2D-ускоритель и могла блитить в видеопамять с учётом цвета прозрачности.  И флип сюрфейсов там тоже есть.  Родные драйвера этой карты под Win98 давали видимое на глаз ускорение, особенно при быстром провороте полосы прокрутки в офисных программах. По сравнению с дефолтным 16-цветным VGA-драйвером по умолчанию. Добавлю, что лично ковырял эту карту, регистры там отображены на 16-битные порты ввода-вывода, поэтому 2D-ускоритель программировал в реальном режиме CPU.

gamedevfor
> То что было в DOS для игроделов было еще более полной Ж

Никакая не жопа, а рай игродельства! :) Нужно просто иметь руки откуда надо и мышление как у Кармака (в те времена).

Вспомнить хотя бы такие конторы как : BullFrog, Apogee, ... - годноту под DOS лабали ведь ))))  Пускай DOS-фанатам  икнётся! )))

Когда появился DirectX (вроде как в 98-й винде) то он нах... не нужен был, все писали Full-screen игры под ДОС.  )

#174
(Правка: 13:13) 13:12, 13 мар. 2020

gamedevfor
> 320x200x8bit < 64Kb как раз влезал в один сегмент, так что в этом разрешении
> банки были ни к чему.

innuendo
> это не отменяте факта что линейная не всегда была

Да, помню была проблема ускорить переключение банка 64 кБ в видеокарте. VESA-функция работала медленно (0x4F05), но всё решалось правильной установкой питча в байтах (функция 0x4F06) - задав ширину степени двойки, мы могли проверять переключение банка уже на уровне строк, а не пикселей!

Ну и спец-ухищрениями с VGA-регистрами, можно было при видео-таймингах 640x480 выставить логическое 320x240 - реорганизовав видеопамять: в итоге имеем 320x240 но в разрешении 640x480 и даже выше.

Дальнешие мои изыскания привели к дизассемблированию видео-BIOS'ов. Расколол nVidia, ATI, S3 - переключение банка видеопамяти там делается по-разному. Но очень быстро: одной или двумя записями в порт!  И это быстрее.

Потом пошли в ход защищённый режим, DPMI.  Переключение банков стало ненужным. С LFB.  Но в WinXP пришлось вернуться к банкам, так как DPMI функцию Map physical to linear - выпилили!

Ну и для олдфагов : режим Chain-4.  Когда запись байта в видеопамять приводит к загоранию сразу смежных 4-х пикселей.  По отдельности тоже можно-  уже через порты.  Итого 256 кБ видео-памяти вместо 64.

#175
14:01, 13 мар. 2020

0iStalker
> И возможность писать в видеопамять не даёт автоматом плавный скроллинг и
> спрайты. Например, чтобы сделать обновление экрана без мерцаний и снега в
> 320x200 режиме, нужно было ловить VBI в цикле (т.к. прерывания нет) и обновлять
> видеопамять именно в этот момент. Не, конечно, можно было залезть руками в
> регистры VGA и настроить XMODE, чтобы получить (на выбор) или скроллинг или бэк
> буффер, но это из разряда эзотерики для большинства было. И вообще, в эпоху до
> DirectX любая 16-ти битная консоль крыла 486 PC, как бык овцу, и по графонию и
> по саунду.

С помощью VESA можно скролить плавно. И флипать.
C VBlank вроде как проблем не было. Всё плавно и без дёргания (с отключенными прерываниями во время пересылки в видеопамять).

Спрайтов, да, не было. И в этом ПиСюк сосал у концолей. И звук первоначально - бипер. Отстой.
Хотя знакогенератор 8x8 (пусть даже и с экстеншеном спрайта до 32x32 из 4-х тайлов) не очень осчастливливает современных пограммистов, клепающих инди-треш на говно-движках )))

#176
(Правка: 14:53) 14:42, 13 мар. 2020

Gradius
> С помощью VESA можно скролить плавно. И флипать.

Не попадалось статей/документации по этому поводу. Всё что было известно, - это как выставить видеорежим и переключать банки через прерывание BIOS (очень медленно, мне пришлось трассировать биос видеокарточки S3 чтобы понять как переключать банки через порты IO).

+ Показать

upd.
Возможно это делалось через vesa-bios функцию 0x4f05, но я тогда в этом не разобрался, ибо с интернетами и прочими документациями было реально плохо. Да и DirectDraw буквально почти сразу подвезли... вообще, на досуге, надо будет попробовать устроить небольшой практикум (наверняка даже современные джифорсы rtx до сих пор всё это умеют)

#177
15:03, 13 мар. 2020

То ли дело сейчас, пара запросов в гугл и первой же строчкой - полнейший даташит на чип, бесплатно www.bitsavers.org/components/s3/DB018-A_Trio64V+_Integrated_Graph… tor_Jul95.pdf  только кому оно сейчас надо ?

#178
15:34, 13 мар. 2020

0iStalker
> Не попадалось статей/документации по этому поводу. Всё что было известно, - это
> как выставить видеорежим и переключать банки через прерывание BIOS (очень
> медленно, мне пришлось трассировать биос видеокарточки S3 чтобы понять как
> переключать банки через порты IO).

Для обучения и практикума пользовался этой книгой: http://mega-avr.com.ua/kulakov/
Владимир Кулаков «Программирование на аппаратном уровне»
Только я её в бумажном варианте покупал в магазине, а не качал.
Там хоть и на ассемблере x86, но зато всё расжёвано и по-русски. Основные моменты перетащить на C будет достаточно легко.

Там есть пример с идеально плавно летящим самолётиком.
Как заготовка для собственного 2D-движка из псевдо-спрайтов сойдёт.

0iStalker
> ну или документация VESA настолько криво написана, что нужно читать между
> строчек, чтобы вынуть оттуда игродельные возможности

Первый ПК у меня появился в 2000 году. В 2001 году уже хорошо разбирался в ассемблере x86, с документацией  особо напряга не было. Интернет - диал-ап через городской телефон с модемом по RS-232 или выделенка в институте.

Особую пользу оказал пиратский CD-диск "Студенческая бомба" - и чего там только не было!  Начиная с разных компиляторов от Borland, заканчивая большим архивом под названием snippets, где была сосредоточена вся масса прог на Си, Паскаль, Ассемблере - как работать с графикой, VESA, защищёнными режимами и прочим.

И чья-та курсовая про функции VESA VBE 2.0.


0iStalker
> Возможно это делалось через vesa-bios функцию 0x4f05, но я тогда в этом не
> разобрался, ибо с интернетами и прочими документациями было реально плохо. Да и
> DirectDraw буквально почти сразу подвезли... вообще, на досуге, надо будет
> попробовать устроить небольшой практикум (наверняка даже современные джифорсы
> rtx до сих пор всё это умеют)

+ 4f06, 4f07.  И ещё там можно палитру расширить с 6 бит до 8 бит на компоненту.

С DDraw я познакомился только несколько лет спустя, и то - вынужденно... Так как в DOS сейчас никого не заставишь грузиться :(

Если карта от ATI или nVidia, подозреваю VIDEO BIOS + VESA VBE там работают.  VBE 3.0 не ждите, скорее будет 2.x.  По крайней мере, на GeForce 6600 и Radeon 9600 VESA работала и под XP (ДОС-сессия)

0iStalker
> То ли дело сейчас, пара запросов в гугл и первой же строчкой - полнейший
> даташит на чип, бесплатно
> www.bitsavers.org/components/s3/DB018-A_Trio64V+_Integrated_Graph…
> tor_Jul95.pdf только кому оно сейчас надо ?

:) Я из драйвера Линукса выковыривал всё это :)  Но тогда был 2004 г.  Зато даташит на Voodoo2 и 3 легко нашёл + прогу на асме как выставить режим 3D и затекстурировать треугольник. :)  Вся группа института была в ах..е, когда давал им загрузочную дискетку 3,5 дюйма с настоящим 3D-туннелем использующий 3д-ускоритель.  Карта Voodoo3 тоже была в демо-комплекте.  В то время заканчивалась эра Win98, все начали переходить на XP, и мне она очень сильно не понравилась.

#179
(Правка: 6:06) 6:06, 14 мар. 2020

Старые ISA видео-карты и подключение их а микроконтроллерам AVR : http://itnan.ru/post.php?c=2&p=292299
Довольно занятно :)



А тут пиксельный шейдер программируют для получения эффекта кругов по воде - с помощью АСМа и под ДОСом :)
https://wasm.in/threads/sled-ot-vodomerki-na-poverxnosti-vody.31854/

Страницы: 17 8 9 10 11 12
ФлеймФорумЖелезо