Просмотр полной версии : Мегадемка в 256 байт
Megapole by RSI (MS-Dos, 2015)
http://www.youtube.com
Исходники:
http://www.pouet.net/prod_nfo.php?which=66372
Интересно, если портировать на спектрум, сколько займет байт :).
пофиг сколько это займет.
как это рендерится?
http://www.pouet.net/img_ascii.php?nfo=66372&font=0
---------- Post added at 15:00 ---------- Previous post was at 14:52 ----------
и оттуда же только первое место
http://www.youtube.com
shurik-ua
29.09.2015, 23:43
Интересно, если портировать на спектрум
периписать в кодах z80 дело нехитрое, но в каментах пишут что тормозить начинает уже если запустить в VirtualBox.
CodeMaster
30.09.2015, 05:58
периписать в кодах z80 дело нехитрое, но в каментах пишут что тормозить начинает уже если запустить в VirtualBox.
Ну сейчас есть софт-ядра Z80 на сотню мегагеерц. Мне вот другое интересно, дема заявлена как "MS-DOS", в ней есть какие-то вызовы DOS или нет? И, вообще, для какого проца она написана для любого x86 на котором работает DOS (какая?) начиная с i8086?
Мне вот другое интересно, дема заявлена как "MS-DOS", в ней есть какие-то вызовы DOS или нет? И, вообще, для какого проца она написана для любого x86 на котором работает DOS (какая?) начиная с i8086?
Используются вызовы BIOS int 10h - переключиться в граф режим 320x200x256 цветов и прерывание DOS int 21h - вывести строку (megapole). А так же используется адресация через FS-регистр, который появился только начиная с 486+ процов. То есть на XT, 286 и 386 запуститься не должно. Хотя можно переписать и на обычную DS-адресацию, только код разрастется на 6-8 байт, и уже будет не 256 байт.
Используются вызовы BIOS int 10h - переключиться в граф режим 320x200x256 цветов и прерывание DOS int 21h - вывести строку (megapole). А так же используется адресация через FS-регистр, который появился только начиная с 486+ процов. То есть на XT, 286 и 386 запуститься не должно. Хотя можно переписать и на обычную DS-адресацию, только код разрастется на 6-8 байт, и уже будет не 256 байт.
ты главное скажи.
как это работает?
на спек сделать можно?
фиг с ней с реализацией в 256 байт
на спеке вообще можно сделать в разрешении 64х24 главное чтобы вообще работало.
CodeMaster
30.09.2015, 13:53
можно переписать и на обычную DS-адресацию, только код разрастется на 6-8 байт, и уже будет не 256 байт.
Да это фигня, вопрос как она (с какой скоростью) будет работать на XT
это называется не мегадемка, а крутой воксельный эффект.
звука нет, последовательности частей нет, развития действия нет (как, капример, в работе, занявшей там 1 место)
эффект, да :)
shurik-ua
30.09.2015, 22:21
звука нет, последовательности частей нет, развития действия нет
256 байт, Карл )
так на спек можно перенести или нельзя?
а если можно то как оно работает?
shurik-ua
02.10.2015, 13:51
так на спек можно перенести или нельзя?
в спеке нет видеорежима "байт на точку" - поэтому скорее нет чем да.
shurik-ua, а там это обязательно?
а если разрешение использовать 64*24?
его хватит?
shurik-ua
02.10.2015, 15:33
дело не в разрешении - а в том как отобразить в одной точке 8 градаций яркости
shurik-ua, а там это обязательно?
а если разрешение использовать 64*24?
его хватит?
Имхо, нет никакого смысла портировать на спек этот эффект, ибо то, что хорошо затачивалось под специфический процессор, системные вызовы и размер, на спеке при повторении алгоритма "в лоб" будет тормозить хуже бейсика. А крупночанкового тормознутого (но гораздо более быстрого, чем получится здесь) 3д на спеке хоть отбавляй.
Имхо, нет никакого смысла портировать на спек этот эффект, ибо то, что хорошо затачивалось под специфический процессор, системные вызовы и размер, на спеке при повторении алгоритма "в лоб" будет тормозить хуже бейсика. А крупночанкового тормознутого (но гораздо более быстрого, чем получится здесь) 3д на спеке хоть отбавляй.
да там тема в том что я например не вижу тут ни объектов, ни текстур
а в демке вижу интересные 3д эффекты.
как они это делают?
да там тема в том что я например не вижу тут ни объектов, ни текстур
а в демке вижу интересные 3д эффекты.
как они это делают?
Ничего интересного особо, прямогуольники всякие и зум)
Я не знаю, как делают, я пц-шный асм особо не знаю, и не программлю на нем. А тут надо не просто его знать, а знать в нюансах, скорее всего, т.к. выжимают все что могут, дабы сэкономить место.
Побаловался с исходником. Заменил cmovnz (теоретически теперь должно работать начиная с 386ых, только интересно с какой скоростью). Можно задать "начало скрипта" (mov bp,число от 0 до 255). Добавил выход по нажатию клавиши, раз уж про 256 байт речь не идет. Из любопытства заменил самомодифицирующийся фрагмент на "правильный". Автор крут
Увлекся процессом разусовершенствования. Заменил некоторые специфичные x86 команды (stosb, aam, aad) на
более-менее общечеловеческие аналоги. Топорно, но убрал использование fs - в результате теоретически стало работоспособно на <386, но на практике теперь подтормаживает на i5 :)
ivagor, на x64 можно скомпилировать? :)
но никто так и не ответил на вопрос "а каким болтом оно всё так красявишно `рендерится` в оченно мало байтов" :) .
shurik-ua
03.10.2015, 01:03
но никто так и не ответил на вопрос "а каким болтом оно всё так красявишно `рендерится`
пока неизвестно - но чувствую надо сделать на z80 или вообще на vhdl - тогда станет понятно )
Убран эффект "старой плёнки" - в комментах он так называется )
Убран эффект "старой плёнки" - в комментах он так называется )Под DosBox у меня - самое известное произведение какогото Казимира...
CodeMaster
03.10.2015, 07:57
теоретически стало работоспособно на <386, но на практике теперь подтормаживает на i5
Вообщем, как и говорил Titus, в итоге будет тормозить хуже Бейсика. По аналогии переписав какую-то для Спека можно получить жуткие тормоза на более быстрой машине. Т.е. это всё в итоге сугубо специфично.
на x64 можно скомпилировать?
Если речь о запуске в современных ОС, то тут писали, что в VirtualBoxe работает. У меня тоже так работает, но Virtual Box с winxp32 у меня установлен под winxp32 (так надо :) ), что мало кому интересно. Поэтому я еще попробовал dos box под win7x64 - мои rip-offы работают (в отличие от оригинала), но очень-очень медленно (можно видеть, как рисуются строки)
А если ты о переписывании под win и избавлении от наследия dos - несомненно можно, осталось только найти энтузиаста, который это сделает. Ну и это будет уже совсем не 256 байт.
UPD: Попробовал еще VirtualBox с winxp32 под 7x64 - работает нормально
Думаю, что те, кому интересно, разобрались, но озвучу, что bp отвечает за ориентацию камеры. Можно ее зафиксировать, если закомментить add bp,[toadd] (я про "свои" версии). Только стоит изменить mov bp,0 например на 128, а то будет смотреть в правый нижний угол.
Если закомментить первый add bl,[si] то не будет "продвижения вперед".
---------- Post added at 17:56 ---------- Previous post was at 17:05 ----------
Рискну написать, что содержимое картинки фактически определяется координатами x y z. Направление показа камеры очевидно как изменяется. Движение вперед (изменение z) и движение "космических кораблей" задается изменением времени.
Почистил от мусора версию без fs (старый вариант удалил) - стала меньше на 25 байт и снова не торомозит.
В dosbox если задать core=dynamic (и, конечно, cycles=max) то уже более-менее работает в режиме слайдшоу
shurik-ua
15.10.2015, 10:53
в каментах RTC - это что )
в каментах RTC - это что )
Если это вопрос, то это часы реального времени. По адресу 0x46c MSDOS счетчик времи накручивает по прерываниям.
То, что автор демки обозвал RTC, относится к таймеру, все же в PC и настоящий RTC есть
shurik-ua
15.10.2015, 12:09
а какая частота этого таймера ?
По умолчанию частота прерываний от таймера примерно 18,2 Гц (в принципе можно перепрограммировать)
ни в дос-боксе, ни на реальной тачке с досом - не стартанула. (Megapole by RSI (MS-Dos, 2015))
Оригинал в dosbox не работает (про это я уже писал). Реал для оригинальной версии нужен >586
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot