https://speccy.info/w/index.php?title=The_Link&feed=atom&action=history
The Link - История изменений
2024-03-29T10:08:42Z
История изменений этой страницы в вики
MediaWiki 1.23.6
https://speccy.info/w/index.php?title=The_Link&diff=32083&oldid=prev
Alone в 20:09, 31 октября 2013
2013-10-31T20:09:01Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 20:09, 31 октября 2013</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] в качестве "ускорителя". Также используется [[TurboSound FM]] для воспроизведения музыки, режим [[16col]] для некоторых эффектов, расширенная память и [[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] в качестве "ускорителя". Также используется [[TurboSound FM]] для воспроизведения музыки, режим [[16col]] для некоторых эффектов, расширенная память и [[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах<ins class="diffchange diffchange-inline">, но 31 октября 2013 года была выпущена версия под [[ATM Turbo 2]] + NeoGS + TurboSound FM</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[Screw]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[Screw]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].</div></td></tr>
<!-- diff cache key db_speccyinfo-WIKI_:diff:version:1.11a:oldid:19542:newid:32083 -->
</table>
Alone
https://speccy.info/w/index.php?title=The_Link&diff=19542&oldid=prev
Screw в 08:32, 17 сентября 2009
2009-09-17T08:32:16Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 08:32, 17 сентября 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] в качестве "ускорителя". Также используется [[TurboSound FM]] для воспроизведения музыки, режим [[16col]] для некоторых эффектов, расширенная память и [[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] в качестве "ускорителя". Также используется [[TurboSound FM]] для воспроизведения музыки, режим [[16col]] для некоторых эффектов, расширенная память и [[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[<del class="diffchange diffchange-inline">screwer</del>]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[<ins class="diffchange diffchange-inline">Screw</ins>]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Демо было представлено на [[демопати]] [[Chaos Constructions 2009]] и заняло первое место из четырёх работ (3 для ZX Spectrum, 1 для компьютера "[[Вектор-06Ц]]").</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Демо было представлено на [[демопати]] [[Chaos Constructions 2009]] и заняло первое место из четырёх работ (3 для ZX Spectrum, 1 для компьютера "[[Вектор-06Ц]]").</div></td></tr>
<!-- diff cache key db_speccyinfo-WIKI_:diff:version:1.11a:oldid:19419:newid:19542 -->
</table>
Screw
https://speccy.info/w/index.php?title=The_Link&diff=19419&oldid=prev
Zxdn в 22:07, 12 сентября 2009
2009-09-12T22:07:52Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 22:07, 12 сентября 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] <del class="diffchange diffchange-inline">(также </del>используется [[TurboSound FM]]<del class="diffchange diffchange-inline">). Использует </del>режим [[16col]], <del class="diffchange diffchange-inline">расширенную </del>память<del class="diffchange diffchange-inline">, </del>[[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] <ins class="diffchange diffchange-inline">в качестве "ускорителя". Также </ins>используется [[TurboSound FM]] <ins class="diffchange diffchange-inline">для воспроизведения музыки, </ins>режим [[16col]] <ins class="diffchange diffchange-inline">для некоторых эффектов</ins>, <ins class="diffchange diffchange-inline">расширенная </ins>память <ins class="diffchange diffchange-inline">и </ins>[[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[screwer]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[screwer]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Демо было представлено на [[демопати]] [[Chaos Constructions 2009]] и заняло первое место из четырёх работ (3 для ZX Spectrum, 1 для компьютера "[[Вектор]]").</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Демо было представлено на [[демопати]] [[Chaos Constructions 2009]] и заняло первое место из четырёх работ (3 для ZX Spectrum, 1 для компьютера "[[Вектор<ins class="diffchange diffchange-inline">-06Ц</ins>]]").</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Описание ==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Описание ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 27:</td>
<td colspan="2" class="diff-lineno">Строка 27:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Третья часть ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Третья часть ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Картинка собирается из падающих брусков (цвет на точку). Единственный эффект, использующий NMI (для того, чтобы несколько раз переставить указатель DMA). На пати не показан из-за проблем с аппаратурой.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Картинка собирается из падающих брусков (цвет на точку). Единственный эффект, использующий NMI (для того, чтобы несколько раз переставить указатель DMA). На пати <ins class="diffchange diffchange-inline">эффект </ins>не <ins class="diffchange diffchange-inline">был </ins>показан из-за проблем с аппаратурой. Чтобы эффект успел во [[фрейм]], используется насильственный останов вывода по прерыванию (визуально - "расчёска").</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Чтобы эффект успел во [[фрейм]], используется насильственный останов вывода по прерыванию (визуально - "расчёска").</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Принцип вывода блоков - косыми сканлайнами. Чтобы избежать дыр и многократного рисования одних и тех же байтов, рисуется не h строк по l пикселей, а h/cos a строк по l*cos a пикселей.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Принцип вывода блоков - косыми сканлайнами. Чтобы избежать дыр и многократного рисования одних и тех же байтов, рисуется не h строк по l пикселей, а h/cos a строк по l*cos a пикселей.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Строка 45:</td>
<td colspan="2" class="diff-lineno">Строка 44:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Картинка с демоном и вращающийся большой звёздчатый додекаэдр. Освещение текстуры по Ламберту (texture+flat shading). Объект содержит 60 граней, укладывается во фрейм, но Pentagon 1024SL 2.2 немного не успевает его отрисовать (это исправимо, если не обновлять углы кадра).</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Картинка с демоном и вращающийся большой звёздчатый додекаэдр. Освещение текстуры по Ламберту (texture+flat shading). Объект содержит 60 граней, укладывается во фрейм, но Pentagon 1024SL 2.2 немного не успевает его отрисовать (это исправимо, если не обновлять углы кадра).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Автор текстуры объекта и наброска демона - Alone Coder. Демона раскрасил Shiru.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Автор текстуры объекта и наброска демона - Alone Coder. Демона раскрасил <ins class="diffchange diffchange-inline">(сделал пиксельную версию изображения) </ins>Shiru.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Статистика (в тактах, приводятся также оптимизации, сделанные уже после показа демо):</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Статистика (в тактах, приводятся также оптимизации, сделанные уже после показа демо):</div></td></tr>
<!-- diff cache key db_speccyinfo-WIKI_:diff:version:1.11a:oldid:19350:newid:19419 -->
</table>
Zxdn
https://speccy.info/w/index.php?title=The_Link&diff=19350&oldid=prev
Alone: /* Третья часть */
2009-09-12T10:24:11Z
<p><span dir="auto"><span class="autocomment">Третья часть</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 10:24, 12 сентября 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 28:</td>
<td colspan="2" class="diff-lineno">Строка 28:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Третья часть ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Третья часть ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Картинка собирается из падающих брусков (цвет на точку). Единственный эффект, использующий NMI (для того, чтобы несколько раз переставить указатель DMA). На пати не показан из-за проблем с аппаратурой.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Картинка собирается из падающих брусков (цвет на точку). Единственный эффект, использующий NMI (для того, чтобы несколько раз переставить указатель DMA). На пати не показан из-за проблем с аппаратурой.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Чтобы эффект успел во [[фрейм]], используется <del class="diffchange diffchange-inline">насильственная остановка </del>вывода по прерыванию (визуально - "расчёска").</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Чтобы эффект успел во [[фрейм]], используется <ins class="diffchange diffchange-inline">насильственный останов </ins>вывода по прерыванию (визуально - "расчёска").</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Принцип вывода блоков - косыми сканлайнами. Чтобы избежать дыр и многократного рисования одних и тех же байтов, рисуется не <del class="diffchange diffchange-inline">hxl </del>пикселей, а <del class="diffchange diffchange-inline">(</del>h/cos a<del class="diffchange diffchange-inline">) </del>строк по l*cos a пикселей.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Принцип вывода блоков - косыми сканлайнами. Чтобы избежать дыр и многократного рисования одних и тех же байтов, рисуется не <ins class="diffchange diffchange-inline">h строк по l </ins>пикселей, а h/cos a строк по l*cos a пикселей.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>В коде программы есть четыре (если не считать зеркальных копий) процедуры для разных углов (почти стоячий, средний, почти лежачий и лежачий). Из них используются только две последние, чтобы не затягивать эффект. Нельзя бросать блоки быстрее, иначе компьютер не успеет их стереть (стирается только верхняя половина бруска и два байта с торца).</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>В коде программы есть четыре (если не считать зеркальных копий) процедуры для разных углов (почти стоячий, средний, почти лежачий и лежачий). Из них используются только две последние, чтобы не затягивать эффект. Нельзя бросать блоки быстрее, иначе компьютер не успеет их стереть (стирается только верхняя половина бруска и два байта с торца).</div></td></tr>
</table>
Alone
https://speccy.info/w/index.php?title=The_Link&diff=19349&oldid=prev
Alone: /* Первая часть */
2009-09-12T10:23:16Z
<p><span dir="auto"><span class="autocomment">Первая часть</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 10:23, 12 сентября 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 19:</td>
<td colspan="2" class="diff-lineno">Строка 19:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  res 6,h ;можно избежать, если 2 копии текстуры 128x64</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  res 6,h ;можно избежать, если 2 копии текстуры 128x64</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  ld b/c,(hl)  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  ld b/c,(hl)  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>  ld a,(bc) ;пересчитываем 2 пикселя в байт атрибутов</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>  <ins class="diffchange diffchange-inline">[</ins>ld a,(bc) ;пересчитываем 2 пикселя в байт атрибутов</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>  ld (...),a ;пишем на экран</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>  ld (...),a ;пишем на экран<ins class="diffchange diffchange-inline">]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Вторая часть ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Вторая часть ===</div></td></tr>
</table>
Alone
https://speccy.info/w/index.php?title=The_Link&diff=19327&oldid=prev
Alone: /* Пятая часть */
2009-09-11T14:49:55Z
<p><span dir="auto"><span class="autocomment">Пятая часть</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 14:49, 11 сентября 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 48:</td>
<td colspan="2" class="diff-lineno">Строка 48:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Статистика (в тактах, приводятся также оптимизации, сделанные уже после показа демо):</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Статистика (в тактах, приводятся также оптимизации, сделанные уже после показа демо):</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Вращение вершин (метод JTN с исправлением округления): 17001 (32 вершины по ~520), можно 12079 без SRA и по 2 осям (32 вершины по ~360)</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Вращение вершин (метод <ins class="diffchange diffchange-inline">[[</ins>JTN<ins class="diffchange diffchange-inline">]] </ins>с исправлением округления): 17001 (32 вершины по ~520), можно 12079 без SRA <ins class="diffchange diffchange-inline">(координаты будут грубыми) </ins>и по 2 осям (32 вершины по ~360)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Перспективная коррекция: 2833 (32 вершины по ~88)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Перспективная коррекция: 2833 (32 вершины по ~88)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Расчёт средних точек полигонов: 8726 (60 граней по ~145)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Расчёт средних точек полигонов: 8726 (60 граней по ~145)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Очистка чанкового буфера: 24032 (64x64 - можно уменьшить под текущее окно)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Очистка чанкового буфера: 24032 (64x64 - можно уменьшить под текущее окно)</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*Сортировка вершин: 52806..54894 (60 граней^2), можно heap sort: ~50000 (N*lg N), можно по Сайрусу (есть ситуации, которые <del class="diffchange diffchange-inline">его метод </del>не может отсортировать) 17983..19787 (log2(60) проходов по 60 граней по ~50 тактов), но <del class="diffchange diffchange-inline">проще </del>pigeonhole sort 15500 (Z=#a0..#ff)</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*Сортировка вершин: 52806..54894 (60 граней^2), можно heap sort: ~50000 (N*lg N), можно по <ins class="diffchange diffchange-inline">[[Sairoos|</ins>Сайрусу<ins class="diffchange diffchange-inline">]] </ins>(<ins class="diffchange diffchange-inline">но </ins>есть ситуации, которые <ins class="diffchange diffchange-inline">он </ins>не может отсортировать)<ins class="diffchange diffchange-inline">: </ins>17983..19787 (log2(60) проходов по 60 граней по ~50 тактов), но <ins class="diffchange diffchange-inline">лучше </ins>pigeonhole sort<ins class="diffchange diffchange-inline">: </ins>15500 (Z=#a0..#ff)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Полигоны: 166000..169000 (60 граней, полная ~1600+патч+отрисовка)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Полигоны: 166000..169000 (60 граней, полная ~1600+патч+отрисовка)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>**~600 выполняется даже в случае невидимости полигона</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>**~600 выполняется даже в случае невидимости полигона</div></td></tr>
</table>
Alone
https://speccy.info/w/index.php?title=The_Link&diff=19326&oldid=prev
Alone в 14:46, 11 сентября 2009
2009-09-11T14:46:43Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 14:46, 11 сентября 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Строка 43:</td>
<td colspan="2" class="diff-lineno">Строка 43:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Пятая часть ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== Пятая часть ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Картинка с демоном и <del class="diffchange diffchange-inline">вращующийся </del>большой звёздчатый додекаэдр. Освещение текстуры по Ламберту. Объект содержит 60 граней, укладывается во фрейм, но Pentagon 1024SL 2.2 немного не успевает его отрисовать (это исправимо, если не обновлять углы кадра).</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Картинка с демоном и <ins class="diffchange diffchange-inline">вращающийся </ins>большой звёздчатый додекаэдр. Освещение текстуры по Ламберту <ins class="diffchange diffchange-inline">(texture+flat shading)</ins>. Объект содержит 60 граней, укладывается во фрейм, но Pentagon 1024SL 2.2 немного не успевает его отрисовать (это исправимо, если не обновлять углы кадра).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Автор текстуры объекта и наброска демона - Alone Coder. Демона раскрасил Shiru.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Автор текстуры объекта и наброска демона - Alone Coder. Демона раскрасил Shiru.</div></td></tr>
</table>
Alone
https://speccy.info/w/index.php?title=The_Link&diff=19325&oldid=prev
Alone: Новая страница: «'''The Link''' - первое демо, специально написанное для компьютера Pentagon 1024SL v2.x с устройством …»
2009-09-11T14:44:36Z
<p>Новая страница: «'''The Link''' - первое <a href="/%D0%94%D0%B5%D0%BC%D0%BE" title="Демо">демо</a>, специально написанное для компьютера <a href="/Pentagon_1024SL" class="mw-redirect" title="Pentagon 1024SL">Pentagon 1024SL</a> v2.x с устройством …»</p>
<p><b>Новая страница</b></p><div>'''The Link''' - первое [[демо]], специально написанное для компьютера [[Pentagon 1024SL]] v2.x с устройством [[NeoGS]] (также используется [[TurboSound FM]]). Использует режим [[16col]], расширенную память, [[турбо-режим]]. Не работает на обычных [[ZX Spectrum]]-совместимых компьютерах.<br />
<br />
Демо разработано в [[2009]] году [[Alone Coder]]'ом (код, музыка, графика) при участии [[Shiru]] (графика) и [[Dimidrol]]'а (графика). Утилиту для получения 256-цветных чанков 2x2 написал [[screwer]]. Эмуляцию NeoGS в [[Unreal Speccy]] реализовали [[deathsoft]] и [[DDp]].<br />
<br />
Демо было представлено на [[демопати]] [[Chaos Constructions 2009]] и заняло первое место из четырёх работ (3 для ZX Spectrum, 1 для компьютера "[[Вектор]]").<br />
<br />
== Описание ==<br />
Демо состоит из титульного экрана (Medieval by Dimidrol), семи частей и конечного экрана с указанием авторов. Действие синхронизировано с музыкой, общая продолжительность демо составляет две минуты десять секунд.<br />
<br />
=== Первая часть ===<br />
Туннель с поворотом. Выводится в мультиколоре пикселями 4x2. Реализован через двойной [[лукап]] (первый - из декартовых координат в полярные, второй - из полярных координат в координаты текстуры тора). Текстура - сгенерированная плазма 256x64.<br />
<br />
Внутренний цикл:<br />
ld hl,dRa ;строится по таблице полярных координат<br />
add hl,sp ;Ra + адрес таблицы для тора<br />
ld sp,hl<br />
pop hl ;адрес в текстуре<br />
add hl,de ;dVdU ;0..3fff<br />
res 6,h ;можно избежать, если 2 копии текстуры 128x64<br />
ld b/c,(hl) <br />
ld a,(bc) ;пересчитываем 2 пикселя в байт атрибутов<br />
ld (...),a ;пишем на экран<br />
<br />
=== Вторая часть ===<br />
Вращение текстуры 256x128 в пиксельном разрешении, с логотипом поверх. Автор текстуры и логотипа - Alone Coder. Экран рисуется целыми байтами. Для этого в памяти лежит 16 байтов-поворотов от каждого пикселя текстуры.<br />
Возможны более крупные текстуры, если усложнить код и использовать больше памяти.<br />
<br />
=== Третья часть ===<br />
Картинка собирается из падающих брусков (цвет на точку). Единственный эффект, использующий NMI (для того, чтобы несколько раз переставить указатель DMA). На пати не показан из-за проблем с аппаратурой.<br />
Чтобы эффект успел во [[фрейм]], используется насильственная остановка вывода по прерыванию (визуально - "расчёска").<br />
<br />
Принцип вывода блоков - косыми сканлайнами. Чтобы избежать дыр и многократного рисования одних и тех же байтов, рисуется не hxl пикселей, а (h/cos a) строк по l*cos a пикселей.<br />
<br />
В коде программы есть четыре (если не считать зеркальных копий) процедуры для разных углов (почти стоячий, средний, почти лежачий и лежачий). Из них используются только две последние, чтобы не затягивать эффект. Нельзя бросать блоки быстрее, иначе компьютер не успеет их стереть (стирается только верхняя половина бруска и два байта с торца).<br />
Внутренние циклы очень большие.<br />
<br />
NGS передаёт Spectrum'у адреса для стирания, а также адреса и данные для отрисовки.<br />
<br />
Автор картинки - Alone Coder.<br />
<br />
=== Четвёртая часть ===<br />
Картинка рассыпается на бруски (в мультиколоре). NGS передаёт Spectrum'у команды типа "вывести по адресу такие-то данные", "обнулить 32 байта с такого-то адреса", "ждать столько-то тактов", "переключить экран".<br />
<br />
=== Пятая часть ===<br />
Картинка с демоном и вращующийся большой звёздчатый додекаэдр. Освещение текстуры по Ламберту. Объект содержит 60 граней, укладывается во фрейм, но Pentagon 1024SL 2.2 немного не успевает его отрисовать (это исправимо, если не обновлять углы кадра).<br />
<br />
Автор текстуры объекта и наброска демона - Alone Coder. Демона раскрасил Shiru.<br />
<br />
Статистика (в тактах, приводятся также оптимизации, сделанные уже после показа демо):<br />
*Вращение вершин (метод JTN с исправлением округления): 17001 (32 вершины по ~520), можно 12079 без SRA и по 2 осям (32 вершины по ~360)<br />
*Перспективная коррекция: 2833 (32 вершины по ~88)<br />
*Расчёт средних точек полигонов: 8726 (60 граней по ~145)<br />
*Очистка чанкового буфера: 24032 (64x64 - можно уменьшить под текущее окно)<br />
*Сортировка вершин: 52806..54894 (60 граней^2), можно heap sort: ~50000 (N*lg N), можно по Сайрусу (есть ситуации, которые его метод не может отсортировать) 17983..19787 (log2(60) проходов по 60 граней по ~50 тактов), но проще pigeonhole sort 15500 (Z=#a0..#ff)<br />
*Полигоны: 166000..169000 (60 граней, полная ~1600+патч+отрисовка)<br />
**~600 выполняется даже в случае невидимости полигона<br />
**~1000 выполняется только для видимых<br />
**60 тактов на пиксель максимальной ширины - патч смещений отрисовки<br />
**116 тактов на сканлайн - обвязка отрисовки<br />
**39 тактов на пиксель - отрисовка<br />
*[[c2p]]: 181762 (56x64 по ~50)<br />
<br />
=== Шестая часть ===<br />
Двухслойная картинка - на заднем плане пейзаж (автор - канадский художник Frank Stock), на переднем женщина с метлой (нарисовал и раскрасил Alone Coder).<br />
<br />
=== Седьмая часть ===<br />
Голова женщины вращается на фоне текстуры плазмы (проекция лукапом). В объекте 28 полигонов. Автор модели и графики - Alone Coder.<br />
<br />
== Скриншоты ==<br />
<br />
== Ссылки ==<br />
*[http://pouet.net/prod.php?which=53778 демо с исходниками]<br />
*[http://www.youtube.com/watch?v=BYmyuF2UVWg youtube] (видео снято с эмулятора [[Diver]]'ом)<br />
*[http://narod.ru/disk/12588097000/TheLink_by_AloneCoder__50fps_v2.mkv.html mkv] (видео снято с реала [[DDp]])<br />
<br />
[[Категория:Демо]]</div>
Alone