Дизасм Elite
Да просто шаблонная проверка которая там как и в еще многих случаях не нужна, просто все проверяют, на всякий случай, так что дошло до такого.DimkaM писал(а):
А че должен делать недостижимый код?
Мож там что то интересное или недореализованное
Ну там немного анимаций есть конечно, типа взрыва из тех же кругов, или рисовалки кругов для карты, но в общем случае да, 2 типа залитая и пустая, кучи ветвлений уйма почти одинакового кода.dr.Titus писал(а):
Все 2.5к строк - это окружность???
Окружности там ппц быстрые на самом деле, основные циклы заливки разложены по стеку, есть таблички для логики, какого типа сейчас рисовать, более менее. Но все равно думаю и ускорить и сократить получится.
было интервью с разрабами, они как раз хвастались быстротой рисования круговkrt17 писал(а):
Окружности там ппц быстрые на самом деле
" The Spectrum draws a circle in 1040 milliseconds. We do it in 14. A solid sphere takes 20 milliseconds."
(серия игр gyron то-же от них)
во, нашёл
http://web.archive.org/web/201201310716 … tsquad.htmОтредактировано GoodBoy (2016-11-08 20:56:53)
GoodBoy писал(а):
было интервью с разрабами, они как раз хвастались быстротой рисования кругов
Да, процедура рисования окружностей из gyron'а, отсюда кстати и несуразное условие перехода, в элите экран по горизонтали во весь экран а в gyron'е #18 знакомест именно это там и проверяется. Как говорится, поменяй настройки и ничего не трогай. Я могу предположить что именно наличие в портфолио этой игры повлияло на выбор команды для портирования.
deathsoft писал(а):
А что есть алгоритмы быстрее чем метод брезенхема для рисования окружностей?
Может и есть, я о таких не знаю, но на спектруме алгоритм пол дела, можно и по оптимальному накодить совершенно по разному, тут конечно парни старались.
Про таблички для ветвлений я спиздел, они там немного для другого, настраивает параметры экрана, тоже кстати видно остатки универсального подхода, можно избавится будет.
Нашел причину явного глюка при отрисовке окружностей, виден был как только стартуешь со станции, самый маленький круг по верху рисовался до следующего. Исправил. Кстати в кладовской версии при вылете со станции еще один глюк, звезды рисуются раньше чем вылетишь из туннеля. Я подобное ловил когда дизасм делал, сразу поправил, видимо Кладов использовал не нужную как казалось процедуру для чего либо и потом забил.
Мир еще не может забыть Elita AAA
http://zxaaa.net/view_demo.php?id=8428
AAA [?] / pROF^4D / Den Popov / Gas 13
http://zxaaa.net/view_demo.php?id=8428
AAA [?] / pROF^4D / Den Popov / Gas 13
Посравнивал немного 3 фирменные версии, не код а просто поиграл немного во все. Оказалось в той что идет без защиты и с пзу шрифтом прилично изменена логика. Во время полета в открытом космосе просто одолевают, не дают и 5 секунд пролететь на ускорении. Посмотрел также немного и переделки, изменений прилично во всех. Относительно моей версии, все идет медленно, почти разобрался с математикой, переделывать можно и нужно, так же нужно переделывать линию и звуки. Звук основной тормозящий фактор во время боя, если еще и ПРО врубить вообще каюк, посмотрел тернеровский движок, буду сочинять нечто похожее.
текущий билд https://www.dropbox.com/s/9h03l4pwa3z7u … g.sna?dl=0
Эксперименты с xor радаром, быстро но иногда раздражает, подумаю еще как лучше, экономия на буфере не лишняя к тому же. Есть проблемы с отрисовкой окружностей, пока отложил так как буду скорее всего переделывать прекалк на них. В билде фулл чит с постоянным J и C.
Оффтоп: отсутствие кнопок на вставку ссылок это уебищность форума, мои настройки или издевательство ааа ?
текущий билд https://www.dropbox.com/s/9h03l4pwa3z7u … g.sna?dl=0
Эксперименты с xor радаром, быстро но иногда раздражает, подумаю еще как лучше, экономия на буфере не лишняя к тому же. Есть проблемы с отрисовкой окружностей, пока отложил так как буду скорее всего переделывать прекалк на них. В билде фулл чит с постоянным J и C.
Оффтоп: отсутствие кнопок на вставку ссылок это уебищность форума, мои настройки или издевательство ааа ?
Дак я и говорю что у меня их нет, раньше были но пропали. Видимо только для модераторовdr.Titus писал(а):
Кнопка для ссылки - это цепочка с зеленым плюсиком. Между кнопкой форматирования по правому краю и книжкой.
Нет пока, из за ебнутой математики с отдельным знаком и кучей вариантов его хранения для меня тяжковато разбираться в ней, а ее там прилично, еще и огромные куски кода без подпрограмм. Короче медленно, часто перехожу на куски попроще а потом возвращаюсь.dr.Titus писал(а):
Ты не разобрался, почему иногда видны скрытые грани обьекта? Например, на заставке, когда крутится кобра, иногда видно, что проскакивает скрытая грань.
Разобрался, это из за прокси.dr.Titus писал(а):
Я не модер, но у меня есть. Впрочем, это не так важно)
Ну на заставке прилично побыстрее , процентов на 20, в игре конечно тоже ускорено но не так существенно.dr.Titus писал(а):
Мне кажется, твоя элита стала побыстрее. Или может это субьективное впечатление)
Да но по мелочи, там есть момент в предрасчетах который для меня немного непонятен.dr.Titus писал(а):
Круги уже убыстырил?
По факту пока больше эксперименты и мелкие оптимизации. Из визуального добавил индикатор текущего правового статуса и ранее не очевидной для меня вещи как блокировку станции. Если в нее выстрелить то стыковка будет не возможна, хотя статус не изменится. Ну и конечно новый кокпит, вполне возможно перерисую еще раз, щиты как то взглядом не ловятся да и не только это не нравится. Хотя отсутствие рамки меня прет.dr.Titus писал(а):
Хорошо бы вести лог, чего ты сделал.
Как вариант конечно, но я не люблю пользоваться пзу, наверное потому что плохо его знаю. Да и сэкономить получится на этом байт 200, пока не критично.GoodBoy писал(а):
для вызова печати сообщений можно заюзать rst#8
Для разнообразия одна из веток рисования линии, как ускорять даже не представляю, в a' это уже я вынес, дало 3 такта как еще с возможностью переключения в xor без диких раскладок?Код:loc_B433dechloc_B434lda, (hl)@loc_B435orcld(hl), adecdretzexaaddejrnc, loc_B443loc_B43Frrccjrc, loc_B458loc_B443exadjnzloc_B433
можно ли доработать прицел? Чтобы в центре прицелы был бы либо квадратик с пустым пикселем по центру либо перекрестие с пустым пикселем по центру (для стрельбы на максимальном расстоянии, когда корабль врага состоит всего из нескольких пикселей). Сейчас прицеливаться очень сложно, (в версии с читом лазер то стоит мощный и дальнобойный), но чтобы поразить врага на максимальной дистанции приходится дюже поизвращаться, т.к. дырка в центре прицела просто огромная. Поиграл, новый кокпит понравился.
вообще без проблем. Но с прицеливанием в элите отдельная история, можно стрелять прямо в корпус визуально и мазать.deathsoft писал(а):
можно ли доработать прицел?
Все так, в b458 inc l и jp в начало, после dnjz следующая строка. Я про то что все достаточно оптимально, без существенного увеличения обьема чет я не вижу способов ускорить хотя бы процентов на 10. Прекалк ускорю, там есть где развернутся, но простые места все сделаны достаточно оптимально.dr.Titus писал(а):
Что в d? Длина линии? А в B счетчик линий внутри одной строки?
Немного офтопа, если кто не знал, на пц есть ремэйк элиты опенсорсный http://www.oolite.org/
Все-таки лучше, если ты приведешь полный кусок.krt17 писал(а):
Все так, в b458 inc l и jp в начало, после dnjz следующая строка. Я про то что все достаточно оптимально, без существенного увеличения обьема чет я не вижу способов ускорить хотя бы процентов на 10. Прекалк ускорю, там есть где развернутся, но простые места все сделаны достаточно оптимально.
И еще скажи, сколько байт ты можешь потратить на развертывание цикла в том или ином виде.
Получается, рисование идет прям в экран? Или же в буфер, который в памяти, но по сути имеющий экранную же структуру?
Ну будем решать проблемы по мере их возникновения, пока я примечаю места где нужно делать пересчет для синхры по прерываниям а не по рендерам, в принципе пока рано, но я думаю дело и до этого дойдет. Тут основное не будет ли больших перескоков на 3,5, ибо тогда вообще ад.deathsoft писал(а):
за кораблями противника просто не угнаться в бою.