Где найти инфу по программированию под ДОС на borland c++ 3.1 ?
Работа с графикой , вывод спрайтов там всяких в VGA режиме 320*240*8bit. Может есть чё по полигональной графике или рейкастингу?
Вид для печати
Где найти инфу по программированию под ДОС на borland c++ 3.1 ?
Работа с графикой , вывод спрайтов там всяких в VGA режиме 320*240*8bit. Может есть чё по полигональной графике или рейкастингу?
ALKO, "Библиотека системного программиста" том 3 - "Программирование видеоадаптеров CGA, EGA и VGA", том 21 - "Программирование видеоадаптеров", того же издательства книга "Как написать игру типа Doom".
Но лучше на это забить =)
Под ДОС на борланде серьёзно никто не писал, писали на ваткоме под дос-экстендеры. На сегодняшний день ниже того же SDL опускаться смысла нет. Впрочем, это зависит от целей, какие они у тебя на этот раз?
Пробовал. На перво-пне SDL медленно выводит пиксели. Простая заливка экрана 800*600 происходит со скоростью 4-5 кадров в секунду, и это без посторонних расчётов, лишь только два вложенных цикла.
Скачал, но ещё не особо вчитывался.Цитата:
того же издательства книга "Как написать игру типа Doom".
бормановский Turbo C++ можно скачать на торент-трекерах.
пишешь в программе:
asm
mov ax,13h
int 10h
end;
и получаешь режим 320x200, 256 цветов.
Если ставить точку, то можно использовать pokeb(0XA000, x*320+y,15), если читать данные, то нечто другое.
здесь 0XA000 - сегмент видеопамяти
x*320+y - смещение в сегменте
15 - цвет точки.
Готовый raycasting вряд ли найдется, придется перепиливать код под графику. Полигональную заливку - тоже.
есть интересный ресурс:
http://freespace.virgin.net/hugo.eli...s/x_main.htm#1
там описаны многие алгоритмы.
https://github.com/keendreams/keen
Цитата:
The code is designed for Borland C++ 2.0
---------- Post added at 14:50 ---------- Previous post was at 14:46 ----------
Похоже что у ваткома нет интерфейса. То есть там нужно использовать сторонний текстовый редактор.
>https://github.com/keendreams/keen
А то, что ID в своё время пяткой в грудь стучали, что сделали на EGA плавный скролл тебя не смущает? Да можно и на си писать, но асме в данном случае даже проще =)
>Похоже что у ваткома нет интерфейса. То есть там нужно использовать сторонний текстовый редактор.
Да, конечно.
Но можно и нужно взглянуть на djgpp.
>На перво-пне SDL медленно выводит пиксели.
Внезапно, оно везде так, на любом железе и софте. Надо выводить не пикселями, а либо кусками кратными регистру или сразу блитить, возможно с поддержкой железа.
Довольно давно я писал с SDL на P233MMX и меня скорость вполне устраивала.
Линуксовым гамам хватает, много буковских квестов на Python/SDL сделаны и норм.
13h видеорежим программировать легоко - бери да пиши, память-то линейная, что не писать :)
Может заинтересует PC Game Programmer's Encyclopedia
Пока искал вот еще попалось, мб пригодтсяThe Difference Engine
Я много писал на Watcom C++ 10.6, с 1997 до начала 2000-х. Для вывода графики в режиме 1280x1024x256 использовалась библиотека VBE2.0 - фактически BIOS видеокарты. Линейная адресация памяти. Использовал вместе с DosNavigator, его редактором, там отличная подсветка синтаксиса. Писал сам функции вывода текста векторными шрифтами *.chr ( их тогда много было, в том числе кириллица ).
Watcom считался профессиональным, основные достоинства - линейная адресация памяти ( никаких дурацких страниц по 64к ), в том числе при доступе к видеопамяти, надежность ( у борландовских поделок всегда были предсказуемые и не очень глюки ) и высокое качество самого компилятора ( ассемблерные вставки делать не было смысла, и так высокая скорость ).
Хорошие готовые графические библиотеки мне не попались, связку Watcom+VBE2 пилил сам. Из-за линейной адресации это было одно удовольствие. Отладчик у него был, но я почти не использовал, а потом вообще перестал.
В 2008 запускал свои программы под Linux в Dosemu, скорость на современном компе вообще сумасшедшая получалась.
а borland - для студентиков и их преподов. Видел увлеченных C builder'ом, только у них не было ни одной надежной программы написано. Все всегда сбоило, на разных машинах по-разному.
И стоит учесть, что простое mov reg,mem:mov mem,reg было чуть-чуть, но быстрее rep movs*.
>какой reg?
Вроде любой кроме аккумулятора, 12-13 тактов туда-сюда, в то время как movsw 26t или 9+25/rep.
А костылей у ПЦ с AMD64 стало только больше =)
Разве что фанатизма поменело, и на пц, и на других архитектурах отстоя хватает.
вот эта книга гуд
http://www.burnlib.com/x/shikin-e-v-...izobrazheniya/
denpopov, ну а чё, для 8086 нормально, для двойки тоже. Они ж от Z80 не так далеко ушли.
Ну дык mov reg, mem нельзя сравнивать с rep movsw. Последняя ведь эквивалентна целому куску кода:
label:
mov mem, reg
mov reg, mem
inc di; или dec di
inc si; или dec si
loop label
И мне сдается, всё это ну никак не будет быстрее, чем rep movsw... Хотя на спор утверждать не буду, сам не проверял, растактовку помню уже весьма смутно. На 8086 mov был кажись 8 тактов, movsw что-то около 20, сколько префикс повторения добавлял, в упор не помню.
DrPass, никаких inc'ов, только DUP'ы =)
Я же написал растактовку для 8086. Понятно, что movs универсальнее, как и ldir, но в определённых условиях её можно и обставить.
парни, вы 8086 никак не забудете штоль?
если и оффтоп, то я был удивлен, изучая 6809, зная 6502: как интересно поменялись набор инструкций и прочее.
У меня Искра-1031 была кажется вторым после УКНЦ компьютером, за которым удалось поиграцца =)
Да и если уж пошла такая пьянка...
Просто на 8086 такие методы ещё прокатывали, а вот на сегодня(с sandy bridge кажется, хотя вроде ещё на nehalem'ах обещали) rep movsB (сюрпрайз!)опять _быстрейший_ метод для небольших блоков! Иначе - дрючить SSE/AVX, учитывать cache locality/throughput/ширину datapath для каждой архитектуры/конфига/размера данных...
Как хотя бы хыллоу-ворлд написать на нём?
(это я зашёл в watcom->IDE)
http://i.piccy_.info/i9/93e8e7b902dd...533/vatkom.jpghttp://i.piccy_.info/a3/2014-09-20-2...40x591-r/i.gif
При инсталляции ставил галки напротив Dos, windows и winNT/Win98/Win386
для DOS прикольно писать на FORTH SMAL32 , тот мало того что имеет встроенный экстендер памяти, дак еще и клевые графические библиотеки, я на нем тестовую систему когда то писал
http://igormaznitsa.com/gui/tstcop1.jpg
У меня другая версия была. 10.6. Копировалась на диск c:, прописывались пути в autoexec.bat. Максимальная версия windows при которой запускалась компиляция - Win98. И никакого графического IDE там не помню.
Если поискать, могу найти архив для установки. И "скелетный" проект свой с графикой всякой под vbe2.
кстати версии Watcom сильно отличаются, 10.6 как раз типа лучшая... 11-я уже считалась отстоем
пробовал когда-то OpenWatcom, мои проекты вообще не компилились.
Мой скрин тоже с 10.6,
специально ту же версию и искал.Цитата:
WATCOM C/C++ Version 10.6 - README
----------------------------------
Welcome to WATCOM C/C++ version 10.6. This README provides helpful hints
found during testing as well as updated information that was not available
at the time the documentation was produced.
На линуксе немного иначе устроен SDL, да и к тому же для квеста много и не надо.
А вот ради интереса попробовал не свои корявые проги запустить, а вот этот ремейк, сделанный полностью на SDL, безо всяких OpenGL-привязок.
на MMX-e адовый слоумошн. Пройти игру можно с лёгкостью, так как она превратилась из жанра "гонычки" в жанр "пошаговая стратегия"
http://www2.braingames.getput.com/roadf/
Michael Abrash для желающих зарыться в ассемблер
например, Graphics Programming Black Book
Андре Ламот. Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации. 2005
По названию сложно догадаться, но в этой книге ни слова про аппаратное ускорение, Direct3D, OpenGL. Весь вывод на экран идет через функцию рисования пикселя(реализована через DirectDraw).
Так что основы софтового рендеринга рассмотрены очень подробно. Возможно пригодится для его реализации на старом железе.
Не путать эту книгу с ее предшественницей, того же автора. Вот в той немного про Windows есть;)
Не знаю, какой Ламот. у него на сайте тьма скринов демоэффектов. Гоблин спросил в почте, как делается один, тот ответил, что не знает и засыпал письмами с вопросами об эффектах.
а для OpenGL есть популярные уроки NeHe, есть и перевод. Но компилировать примеры замаешься.