как вариант вместо
ld a,x
call print
использовать
call print
address
длина одинаковая, а адрес сообщения снимается со стека процедурой печати
как вариант вместо
ld a,x
call print
использовать
call print
address
длина одинаковая, а адрес сообщения снимается со стека процедурой печати
[quote="krt17"]
Самое сложно там в диких простынях в 3д, пока окапываю вокруг.
молодец, я в таком совершенно неразбираюсь
[quote="GoodBoy"]
как вариант вместо
ld a,x
call print
использовать
call print
address
Там сделано именно так, только не адрес а индекс сообщения. call print ; db txt_index. С местом особых проблем нет, ну по крайней мере по мелочи можно добавлять, почти везде можно чутка оптимизировать без ущерба.
Самая прикольная печаталка была в эксолоне, там ей не только текст выводился но и игровые экраны, была вложенность, циклы и забавная система управляющих кодов.
[quote="krt17"]
Самая прикольная печаталка была в эксолоне
в дизях также, там каждая буква это спрайт+его размеры
https://zxaaa.net/view_demo.php?id=5738
[img]http://zxdemos.ru/oldforum/img/posts/posts_20/10397.png[/img]
Немного истории по некоторым спековским версиям
Оригиналы:
1. типа 48к с софтлоком и лензлоком
Отличия:
Adder
свой шрифт
На ее основе монстрячил Кладов.
Она же joystick club
2. типа 128к без защиты
Отличия:
Krait
пзушный шрифт
Из нее делали THD и Atossoft
Дальнейшие производные есть но не интересуют, эти 6 версий вроде основные. Говорили где то что есть русская версия, но на spectrum4ever куча битых, а те что запускаются обычные версии 1.
У 48-й версии - две версии. На одной стороне кассеты с одним кораблем, на другой с другим.
Да нашел версию с защитой и крайтом, по коду соответствует версии с адером. Буду смотреть. По идее должна быть еще версия с адером и пзушным шрифтом, чет я такой не нашел.Отредактировано krt17 (2016-10-21 05:17:14)
[quote="krt17"]
Да нашел версию с защитой и крайтом, по коду соответствует версии с адером. Буду смотреть. По идее должна быть еще версия с адером и пзушным шрифтом, чет я такой не нашел.
Отредактировано krt17 (Сегодня 07:17:14)
Ищи элиту в волгодонском архиве!
https://zxaaa.net/GAME.html
Каталог
https://zxaaa.net/OTHER/tomcat.zip
[quote="dr.Titus"]
У 48-й версии - две версии. На одной стороне кассеты с одним кораблем, на другой с другим.
У Гудбоя такая кассета была.
[img]http://zxdemos.ru/oldforum/img/posts/posts_20/10397.jpg[/img]
[quote="Rindex"]
У Гудбоя такая кассета была.
Там пленк нет))
[quote="AAA"]
Там пленк нет))
Есть. Минут на пять, или сколько она там грузится. У него даже коробочка большая есть, куда эту кассету вставляешь.
Далее я буду писать только об оригинальной 48 с защитой и адером.
В игре станция только 1 типа, нет никаких секретных кораблей и т.д., все обьекты можно посмотреть в текущем снапе на экране press space commander понажимайте N. В сам билд можно играть, отгрузка подходит от оригинала. Доработок пока минимум, ускорено процентов на 5, практически не заметно. Основной тормоз в математике, стандартные линии достаточно шустрые хотя клипинг можно я думаю ускорить.
Факт 6
Игру без проблем можно расширить на пару знакомест в стороны, это не затормозит, они и так рисуются, просто затерты 0 инком.
Погонял профайлером из фьюза, смотрел вручную, никакого криминала не нашел. Ожидаемые затраты на умножения, но они уже оптимизированы, звезды затратные, особенно когда поворот идет, но не критично. По легкому ускорить не выйдет, придется копать до конца.
а что висит на-прерываниях ?
при чистке буфера они запрещаются ( используется push),
а при печати из буфера разрешены (стек для забора/передачи использовать низя, только ldi)
На прерываниях клава, повороты, скорость и звук. Это там не критично. Есть подозрение что спасет небольшой прекалк для текущего фрейма поэтому и говорю придется до конца разбирать. Арифметика со знаком отдельно выглядит тормозно, возможно придется переделать в стандартную с дополнением но пока не могу оценить глобальность проблемы.
Звуки во время боя сделаны следующим образом. Если произошло событие требующее озвучки то выставляется бит в флаге звуков (всего возможно 8 но по факту их 7). Во время прерывания если обработчик видит включенный бит то играется соответствующий звук. Звуки не маленькие, по 100к тактов. Причем за 1 кадр возможно эти звуки придут не один раз, отсюда нереальные тормоза когда идет стрельба. Оценить влияние звука на геймплей можно отключив его (пауза S). По моему все становится не так плохо [img]http://zxdemos.ru/oldforum/img/posts/posts_20/10397.gif[/img]
[quote="krt17"]
Звуки во время боя сделаны следующим образом. Если произошло событие требующее озвучки то выставляется бит в флаге звуков (всего возможно 8 но по факту их 7). Во время прерывания если обработчик видит включенный бит то играется соответствующий звук. Звуки не маленькие, по 100к тактов. Причем за 1 кадр возможно эти звуки придут не один раз, отсюда нереальные тормоза когда идет стрельба. Оценить влияние звука на геймплей можно отключив его (пауза S). По моему все становится не так плохо
Вставь ау музыку подлиней и оцифровки пулей. паямяти там навалом
Факт 7
Торусы очень невнимательно отнеслись к медленной памяти оригинального спека. Очень много математики и даже переброска видеобуфера лежат ниже #8000, при этом печать и даже фразы лежат в быстрой.
[quote="krt17"]
Дизасм Elite
дык а где сабж?
[quote="DimkaM"]
дык а где сабж?
Как где, на винте [img]http://zxdemos.ru/oldforum/img/posts/posts_20/10397.gif[/img] Пока это не публичный проект, по крайней мере до некой стадии презентабельности которая подразумевает более менее откоменченый весь код. Если заброшу, то конечно положу.
[quote="krt17"]
Там сделано именно так, только не адрес а индекс сообщения. call print ; db txt_index. С местом особых проблем нет, ну по крайней мере по мелочи можно добавлять, почти везде можно чутка оптимизировать без ущерба.
если строка одноразовая то
call print
db "hello world",0
или, заместо 0, длинну строки в начале db
[quote="DimkaM"]
если строка одноразовая то
call print
db "hello world",0
или, заместо 0, длинну строки в начале db
Рефакторинг печаталки конечно в начале списка туду как самое простое, вначале копания потом переделки. Пока переделываю по мелочам, то что в глаза бросается. Там есть ебнутые моменты когда вместо флагов используется замена в смещении у jr, при этом неоптимальности по мелочи столько что руки сами тянутся переписать.
[quote="lvd"]
А как в элите идёт время и соотвно происходят эволюции (сдвиг кораблей, ИИ врагов и т.д.)?
По прерываниям или чем быстрее рендер тем быстрее время?
Сделано так:
На прерываниях висит опрос клавы и изменение скорости крена тангажа. Тоесть развить максимальную скорость можно независимо от тормозов.
Само изменение зависит от тормозов напрямую ибо делается раз за рендер, максимальную скорость то разовьет но сам поворот будет тормозить.
Как сделать хорошо понятно, пока надо досконально разобраться что уже есть, откомечнено процентов 20, примерно есть представление еще о 20%. Встречается такой код что просто офигеваешь как так можно было писать, а есть места что прям не ускорить не уменьшить. Отрисовка радара была ускорена раза в 3 и уменьшена раза в 4. Надеюсь в 3д тоже будут такие места.Отредактировано krt17 (2016-10-27 16:39:49)
в процессе ковыряний дабы окончатенльно не заебало решил прикинуть какой кокпит хотелось бы мне в элите
[img]http://zxdemos.ru/oldforum/img/posts/posts_20/10397_3.png[/img]
Пока переделал несколько индикаторов, полностью еще под новый не готов.
Синий на черном плоховато виден.
[quote="dr.Titus"]
Синий на черном плоховато виден.
Так и должно быть, минимум отвлечения от индикаторов.