Comments 90
Спасибо! Проностальгировал :) Вспомнились былые времена, когда тоже игрался над созданием графики в турбопаскакале и асме :)
А я посмею взять на себя ответственность и расказать подробней об технической части всего этого.
1. Сначала нужно установить графический режим.
2. Потом указать палитру. z — индекс цвета. r, g, b — яркость красного, зеленого, синего. 0 <= r,g,b,z <= 255
Вот такую функцию нужно для каждого z запустить.
3. Ну и теперь можно выводить пиксели на экран тупо записывая что-то в память с $A000:
$A000:[(320*y)+x]:= color;
и на экране появиться пиксель цвета color с координатами [x, y]
Остальное — дело математики.
P. S. про old school компьютерную графику буду расказывать на 5ой киевской хабровстречи, и через пару недель появится статья и на самом хабре
1. Сначала нужно установить графический режим.
asm
mov ax, 13h // 320х200 256 colors mode
int 10h
end;
2. Потом указать палитру. z — индекс цвета. r, g, b — яркость красного, зеленого, синего. 0 <= r,g,b,z <= 255
Вот такую функцию нужно для каждого z запустить.
asm
mov dx, 0x3c8
mov ax, z
out dx, al
mov dx, 0x3c9
mov al, r
out dx, al
mov al, g
out dx, al
mov al, b
out dx, al
int 10h
end;
3. Ну и теперь можно выводить пиксели на экран тупо записывая что-то в память с $A000:
$A000:[(320*y)+x]:= color;
и на экране появиться пиксель цвета color с координатами [x, y]
Остальное — дело математики.
P. S. про old school компьютерную графику буду расказывать на 5ой киевской хабровстречи, и через пару недель появится статья и на самом хабре
Этот код:
и прочие лодсвы и стосвы мне до сих пор снятся :)
Спасибо за частичку вашей жизни!
mov ax, 13h
int 10h
и прочие лодсвы и стосвы мне до сих пор снятся :)
Спасибо за частичку вашей жизни!
Демки тормозящие на Pentium 166? Ну-ну, настоящий олдскул.
Не говоря о том что собственно ничего оригинального так и не показали, были вещи намного красивее.
Не говоря о том что собственно ничего оригинального так и не показали, были вещи намного красивее.
Ну, если конкретезировать, то подтормаживали только «воксели», все остальное шло плавно. И это было технической «демкой», так и не переросшей в часть какой-либо настоящей демки. Оригинального — действительно ничего, в этом я с вами согласен, и про это писал в статье.
Но, давайте взглянем на ваши примеры, пускай даже это будет банальный вертящийся кубик?
Но, давайте взглянем на ваши примеры, пускай даже это будет банальный вертящийся кубик?
Всё правильно сказали, кроме последнего предложения. Пожалуйста, не используйте отмазку Уве Болла.
видел в свое время вращающиеся друг вокруг друга тетраэдр, куб и икосаэдр, сделанные в текстовом режиме (sic!) за счет постоянной смены символьных масок. сам бы так не смог в то время, а сейчас не захотел бы время тратить. но впечатлился
Не каждое демо обязательно должно быть Second Reality.
Для тех кто не в теме: ru.wikipedia.org/wiki/Second_Reality
Елки, да я ведь с тех же цветных прямоугольников начинал когда-то. Да, это был обычный делфи, там все было тривиально, но ведь было и работало :)
Ааааа! Спасибо за статью. Вспомнил свой первый «снег» и «огонь» на Поиск+QBasic. Шикарное ностальжи.
Ах да, перед QBasic был же еще Turbo Basic. Он мне как-то больше нравился.
Turbo Basic был адом :) У него компилятор глючный был, при довольно больших листингах программы появлялись нереальные баги.
ЗЫ: Не путайте Qbasic и QuickBasic, первый был урезанной версией, без компилятора и шёл с MS-DOS, второй был отдельной полноценной средой разработки, с компилятором, возможностью подключать библиотеки и работающий на порядок быстрее чем Qbasic.
ЗЫ: Не путайте Qbasic и QuickBasic, первый был урезанной версией, без компилятора и шёл с MS-DOS, второй был отдельной полноценной средой разработки, с компилятором, возможностью подключать библиотеки и работающий на порядок быстрее чем Qbasic.
Музыка в рекламном ролике напомнила об эпохе восьмибитных приставок :)
В свое время тоже увлекся ассемблером и даже как-то писал свои танчики, естественно с блекджеком, но дело до конца так и не довел — появились более важные занятия. А вы молодец, особенно с HorizontCommander!
В свое время тоже увлекся ассемблером и даже как-то писал свои танчики, естественно с блекджеком, но дело до конца так и не довел — появились более важные занятия. А вы молодец, особенно с HorizontCommander!
Опять же и http://listen.di.fm/public3/chiptunes.pls есть.
Спасибо, да Horizont Commander был мегапроект )) Самое интересное, что чуть-чуть не доделов его для DOS он был переписан полностью с нуля для OS/2. К сожалению сорцы для OS/2 канули в лету, вместе с винтом на 450Mb.
Какой знакомый путь, а так да семья работа, работа семья. Спасибо.
Horizont CORPORATION
Все мы наверное такие были в молодости :)
Все мы наверное такие были в молодости :)
Обычно перед Corp (или Incorp) ставились иннициалы. Меннее и более оригинальные скромные придумывали названия содержащие Sovie, Russian, East или скромно Moscow (Spb, Gadukiono, etc).
Сам проходил все стадии;) И огоньки завораживали настолько, что дизасемблировал чужой демо-код и потом переписывал на том же ассемблере или в последствии на java, играясь с высотой и количеством «языков»)
Сам проходил все стадии;) И огоньки завораживали настолько, что дизасемблировал чужой демо-код и потом переписывал на том же ассемблере или в последствии на java, играясь с высотой и количеством «языков»)
Эх, напомнили мне о моем поделии.
Писал несколько лет, начиная с класса эдак 9ого и до 1 курса института.
Это была 2Д-аркада, с текстурами, звуками и спрайтами от Hexen.
Что-то вроде Doom2D для Doom, только для Hexen. Хотя мое поделие было более технологичным, умело исполнять скрипты для оригинального Hexen (ACS), загружало оригинальные WADс картами для Hexen, сделанные в любом совместимом редакторе (WAD Author я использовал), только что карты должны были быть нарисованы особым образом, т.е. не проекция на плоскость XY, как в 3Д Hexen, а натурально, вид сбоку, как и будет видно в игре)
Писалось оригинально на Borland C, но потом стало не хватать EMS, XMS и прочих хитрых методов работы с памятью, и перелез на Watcom C, DOS экстендеры и защищенный режим )
Ух, сколько я многого узнал о работе с графикой, прерываниями и разными форматами файлов…
Ностальгия) Жаль исходники утеряны…
Писал несколько лет, начиная с класса эдак 9ого и до 1 курса института.
Это была 2Д-аркада, с текстурами, звуками и спрайтами от Hexen.
Что-то вроде Doom2D для Doom, только для Hexen. Хотя мое поделие было более технологичным, умело исполнять скрипты для оригинального Hexen (ACS), загружало оригинальные WADс картами для Hexen, сделанные в любом совместимом редакторе (WAD Author я использовал), только что карты должны были быть нарисованы особым образом, т.е. не проекция на плоскость XY, как в 3Д Hexen, а натурально, вид сбоку, как и будет видно в игре)
Писалось оригинально на Borland C, но потом стало не хватать EMS, XMS и прочих хитрых методов работы с памятью, и перелез на Watcom C, DOS экстендеры и защищенный режим )
Ух, сколько я многого узнал о работе с графикой, прерываниями и разными форматами файлов…
Ностальгия) Жаль исходники утеряны…
Как давно и как волшебно это было. Книгам предпочитал teach60. Когда появилась поддержка vesa кодил с её помощью. Написал целый набор юнитов для работы с графикой 16,24,32 бита. Как хардкорно это было. В итоге был интерфейс похожий на старкрафт. Mbr загрузчики для дискет и винта, в экспериментах умирала таблица разделов и все по новой. И много много всего. Было время :)
ЗЫ Спасибо. Покопался в исходниках понастальгировал.
ЗЫ Спасибо. Покопался в исходниках понастальгировал.
Как похоже на меня в старших классах и начале института! Некоторые демки практически один в один. И да, тоже был сначала Бэйсик, а потом Паскаль с asm-вставками.
80й процессор — это счастье.
Жаль, прошлое…
Жаль, прошлое…
Тьюториалы посоветуйте про это дело, пожалуйста.
> Disaev Demo Guide
По-моему, Дасаев или Дазаев, не?
По-моему, Дасаев или Дазаев, не?
Отпишитесь в комментариях известные демомейкеры (или иные участники демо и сценерских групп), интересно кто на хабре присутствует :)
Кстати, недавно занялся тем же самым. Поставил досбокс, и записал видео своих старых демок девяностых годов.
webhamster.ru/site/page/index/demodesign
На подходе запись самодельных игр для Микроши, но дело осложняется тем что в эмуляторах они не работают, ибо по наивности использовали нащупанные на ощупь аппаратные особенности компьютера.
webhamster.ru/site/page/index/demodesign
На подходе запись самодельных игр для Микроши, но дело осложняется тем что в эмуляторах они не работают, ибо по наивности использовали нащупанные на ощупь аппаратные особенности компьютера.
А вы много эмуляторов пробовали? Встречаются даже очень точные.
Я пробовал все какие существуют, включая виндовый Emu3000.
Даже с Виктором Пыхониным закорефанился, он мне дал исходники своего эмулятора. Я хотел его сделать кроссплатформенным и добавить свои исправления чтоб игры работали. Но, как оказалось, в нем половина кода написана на чистом ассемблере, так что для кроссплатформенности надо фактически с нуля писать.
Пока решил взять за основу пролетавший здесь на хабре JavaScript эмулятор. Но он не поддерживает настройку графических режимов и звук. Так что если и браться, то работы выше крышы.
Даже с Виктором Пыхониным закорефанился, он мне дал исходники своего эмулятора. Я хотел его сделать кроссплатформенным и добавить свои исправления чтоб игры работали. Но, как оказалось, в нем половина кода написана на чистом ассемблере, так что для кроссплатформенности надо фактически с нуля писать.
Пока решил взять за основу пролетавший здесь на хабре JavaScript эмулятор. Но он не поддерживает настройку графических режимов и звук. Так что если и браться, то работы выше крышы.
Посмотрел, прикольные эффекты есть. Классно.
Хорошо вам. А у меня, к сожалению, кассет с моими поделиями не сохранилось.
А интерфейс для дискет под Spectrum было тогда фиг достать.
А интерфейс для дискет под Spectrum было тогда фиг достать.
Будет возможность, проверьте следующее:
Напишите какую-нить строчку с командой, потом
EDIT
EXTEND MODE
0
стрелка влево
стрелка вправо
0
ENTER
Эта штука на эмуляторах, которые я пробовал, не работала. На аппаратной Дельте-С работала.
В результате строчка команды становится невидимой и недоступной для редактирования по кнопке EDIT, при нажатии на нее раздается сигнал. А текст программы, идущий за этой строчкой, не отображается на экране. Соответственно, если каждую строчку так обработать, текст программы можно было достать только по выводу с адреса 23755 (адрес программы на бейсике в адресном пространстве Spectrum 48-64 Kb). Там еще номер строчки патчить ручками можно (через POKE), но это совсем другая тема, да и заезженная до дыр в свое время.
Может быть таким путем длина строки команды меняется на ноль, не могу сказать, тогда это в голову не пришло, а щас проверить негде.
Напишите какую-нить строчку с командой, потом
EDIT
EXTEND MODE
0
стрелка влево
стрелка вправо
0
ENTER
Эта штука на эмуляторах, которые я пробовал, не работала. На аппаратной Дельте-С работала.
В результате строчка команды становится невидимой и недоступной для редактирования по кнопке EDIT, при нажатии на нее раздается сигнал. А текст программы, идущий за этой строчкой, не отображается на экране. Соответственно, если каждую строчку так обработать, текст программы можно было достать только по выводу с адреса 23755 (адрес программы на бейсике в адресном пространстве Spectrum 48-64 Kb). Там еще номер строчки патчить ручками можно (через POKE), но это совсем другая тема, да и заезженная до дыр в свое время.
Может быть таким путем длина строки команды меняется на ноль, не могу сказать, тогда это в голову не пришло, а щас проверить негде.
Да ладно кассет… Я потерял тетрадку, куда записывал листинги программ на бейсике. Магнитофон у меня быстро сломался, пришлось учиться программированию, не мог загрузить игры же ( Был тогда в 3-ем классе.
да-да-да, на дискетах наклейка обычна была исписанной напрочь, притом у более опытных товарищей (у которых дискета была не первой) наклейки были исписаны в три слоя, но карандашом ;)
Хех на мою первую зарплату (лаборант в институте) можно было купить 6 3х дюймовых дискет, ну поторговавшись — 10 ;)
У меня еще 5.25" дискеты сохранились, с MS-DOS 3.21 и прочим :-)
Там на дискетку 360Кб столько влезало, что поверить сложно! )
Там на дискетку 360Кб столько влезало, что поверить сложно! )
Ностальгически, спасибо! У меня, правда, началось с копирования заставки из «600 секунд».
program matrix;
USES crt;
VAR
i:integer;
BEGIN
textcolor(2);
while true do
begin
i:=i+1;
write(i);
end
END.
USES crt;
VAR
i:integer;
BEGIN
textcolor(2);
while true do
begin
i:=i+1;
write(i);
end
END.
Желающим скачать Dasaev Demo Guide: держите ссылку
kabardcomp.narod.ru/ddg11.rar
kabardcomp.narod.ru/ddg11.rar
Помним, помним!
Здесь pascal.sources.ru/demo/ddg11.htm есть скриншоты эффектов из него.
Здесь pascal.sources.ru/demo/ddg11.htm есть скриншоты эффектов из него.
Именно, именно, именно — волшебная связка TP + ASM делала нас Богами. Мы снисходительно похлопывали молодых, освоивших прерывания и читающих порты. Теперь молодые снисходительно похлопывают нас, ставших на рельсы и Obj-C…
Среди стариков все еще есть такие, кто не трогал Obj-C, рельсы
стариками можно считать тех, кто начал писать на асме в 98 году?
спорно. я вот в свои 22 года считаю себя стариком. начинал pas/asm в 2001 — 2002.
Скорее относительно.
Я в это же время (2002) сдал предпоследний свой коммерческий проект, завязал с реверс-инжинирингом (реверс того же netbus'а и написание своего сканера-листенера для него), написал последние статьи по битхаку, последний патч, правда, релизнул в 2003. И до сих пор имею слабое представление об Obj-C и никакого о рельсах, что, в общем-то никак не мешает сейчас.
Стариком при этом всем себя не считаю. Потому что есть еще много чего интересного, чего я не знаю и хотел бы изучить.
Стариками становятся когда есть что вспомнить и при этом нет желания двигаться дальше.
Я в это же время (2002) сдал предпоследний свой коммерческий проект, завязал с реверс-инжинирингом (реверс того же netbus'а и написание своего сканера-листенера для него), написал последние статьи по битхаку, последний патч, правда, релизнул в 2003. И до сих пор имею слабое представление об Obj-C и никакого о рельсах, что, в общем-то никак не мешает сейчас.
Стариком при этом всем себя не считаю. Потому что есть еще много чего интересного, чего я не знаю и хотел бы изучить.
Стариками становятся когда есть что вспомнить и при этом нет желания двигаться дальше.
Подскажите пожалуйста есть ли какието туториалы\статьи для самым самым азам современного демостроительства?
Заранее спасибо.
Заранее спасибо.
На русском есть FAQ, очень модный в своё время — DEMO.DESIGN FAQ.
http://www.enlight.ru/demo/faq/
http://www.enlight.ru/demo/faq/
«If you are using Horizont Commander — you are very good boy!»
спасибо, пронастальгировал
именно так и начинал Поиск-2, BAT-файлы, GW Basic, QBasic, Pascal, TASM, ANSI C…
а как закончил? Project Management :-(
:-)
именно так и начинал Поиск-2, BAT-файлы, GW Basic, QBasic, Pascal, TASM, ANSI C…
а как закончил? Project Management :-(
:-)
v-silvansky.livejournal.com/28946.html
Я как раз недавно вспоминал свои поделки на Atari…
Там был тоже свой Basic…
Эх, а QBasic для меня был своеобразным прорывом в программировании!
Я как раз недавно вспоминал свои поделки на Atari…
Там был тоже свой Basic…
Эх, а QBasic для меня был своеобразным прорывом в программировании!
Сложно сказать, у меня этот файл называется в оригинале FOXES.HSC, наверняка я его дернул из какой-то демки. Из какой конечно уже сложно сказать.
Оп, нашел ту BBStro: artscene.textfiles.com/intros/PC/1998/ Файл ak-vga.zip, в досбоксе пашет.
Первый раз когда я игрался с графикой в Qbasic было два года назад на уроке информатики. Давно уже сделал заданную работу (а все остальные ещё её делали) и начал экспериментировать, узнавая для себя крутые возможности бэйсика
Ох, прям прослезился.
В конце 90-х начале нулевых тоже баловался паскалем, ассемблером и их комбинацией.
Поначалу хотел писать свой менеджер файлов, но заинтересовался упаковкой исполняемых файлов и в качестве курсовой сделал WFSoftMaker — EXE — упаковщик для DOS. (PAS, ASM).
Интерфейс был как у RAR, и ещё там были три мегакрутых экранные заставки. Одна точно огонь, а две других уже и не помню… Плазма и звёзды наверное.
Самое крутое достижение было в первой самостоятельно написанной крупной утилите на ASM — шифорвщике COM-файлов (упаковщик я уже написал позже и не релизил вообще).
Шифровка была по XOR-у, и часть механизма заимствована из какого-то вируса.
Сейчас к сожалению не могу найти ни исходиников ни даже скриншотов WFSoft Maker.
Остался только огузок моей домашней странички в WebArchive.
Впрочем, есть слабая надежда, что всё это где-то ещё лежит на первых CD-R блованках, которые я когда-то записывал.
Каждая такая болванка была очень важна. Сейчас наверное эти болванки выцвели, окислились или ещё как-нибудь испортились временем.
В конце 90-х начале нулевых тоже баловался паскалем, ассемблером и их комбинацией.
Поначалу хотел писать свой менеджер файлов, но заинтересовался упаковкой исполняемых файлов и в качестве курсовой сделал WFSoftMaker — EXE — упаковщик для DOS. (PAS, ASM).
Интерфейс был как у RAR, и ещё там были три мегакрутых экранные заставки. Одна точно огонь, а две других уже и не помню… Плазма и звёзды наверное.
Самое крутое достижение было в первой самостоятельно написанной крупной утилите на ASM — шифорвщике COM-файлов (упаковщик я уже написал позже и не релизил вообще).
Шифровка была по XOR-у, и часть механизма заимствована из какого-то вируса.
Сейчас к сожалению не могу найти ни исходиников ни даже скриншотов WFSoft Maker.
Остался только огузок моей домашней странички в WebArchive.
Впрочем, есть слабая надежда, что всё это где-то ещё лежит на первых CD-R блованках, которые я когда-то записывал.
Каждая такая болванка была очень важна. Сейчас наверное эти болванки выцвели, окислились или ещё как-нибудь испортились временем.
Хм… Сергей Найденов? :) Привет тебе от Tornado 2.0 :)))
Начинал я с советского полу-IBM совместимого компьютера «Поиск». Конфа: аналог i8088 процессора, CGA монитор. Начал «программировать» с batch-файлов (.BAT) ибо была книжка по MS-DOS и дискетка с этим самым MS-DOS.
Прямо про меня написано. Только у меня еще была книжка про Бейсик, но не было интерпретатора. Поэтому я научился Бейсику виртуально. И когда в школе (да и в универе) изучали QBASIC, я был мегапрогер :)
Прямо про меня написано. Только у меня еще была книжка про Бейсик, но не было интерпретатора. Поэтому я научился Бейсику виртуально. И когда в школе (да и в универе) изучали QBASIC, я был мегапрогер :)
Статья клёвая :) Сам всё хотел такую написать, про свой «путь демомэйкера» :) Но ты меня опередил. Надо будет поднапрячься, поискать свои старые поделки на старых винтах, да написать свои мемуары )
У меня одними из первых программ были анимации на LOGO — нас в школе учили программировать при помощи черепашки, бегающей по экрану и оставляющей след. :) Сначала окружности, потом «скрипичные ключи», обнаружилась возможность стирать и рисовать по кадрам, потом пошло-поехало: бегающие человечки, переливающиеся цветы и прочие красивости.
Очень обидно, что программы не сохранились. :(
Очень обидно, что программы не сохранились. :(
тоже занимался подобным и даже больше :) эх ностальгия
мои исходники и интро ( например pascal.sources.ru/demo/wrc_blur.htm ) и куча моих библиотек в исходных текстах попавших в Russian SWAG есть тут pascal.sources.ru/authors/kalinins.htm
в том числе и eZine's
мои исходники и интро ( например pascal.sources.ru/demo/wrc_blur.htm ) и куча моих библиотек в исходных текстах попавших в Russian SWAG есть тут pascal.sources.ru/authors/kalinins.htm
в том числе и eZine's
Sign up to leave a comment.
Демо, которых никто никогда не видел