Дизасм Elite
Там сделано именно так, только не адрес а индекс сообщения. call print ; db txt_index. С местом особых проблем нет, ну по крайней мере по мелочи можно добавлять, почти везде можно чутка оптимизировать без ущерба.GoodBoy писал(а):
как вариант вместо
ld a,x
call print
использовать
call print
address
Самая прикольная печаталка была в эксолоне, там ей не только текст выводился но и игровые экраны, была вложенность, циклы и забавная система управляющих кодов.
Немного истории по некоторым спековским версиям
Оригиналы:
1. типа 48к с софтлоком и лензлоком
Отличия:
Adder
свой шрифт
На ее основе монстрячил Кладов.
Она же joystick club
2. типа 128к без защиты
Отличия:
Krait
пзушный шрифт
Из нее делали THD и Atossoft
Дальнейшие производные есть но не интересуют, эти 6 версий вроде основные. Говорили где то что есть русская версия, но на spectrum4ever куча битых, а те что запускаются обычные версии 1.
Оригиналы:
1. типа 48к с софтлоком и лензлоком
Отличия:
Adder
свой шрифт
На ее основе монстрячил Кладов.
Она же joystick club
2. типа 128к без защиты
Отличия:
Krait
пзушный шрифт
Из нее делали THD и Atossoft
Дальнейшие производные есть но не интересуют, эти 6 версий вроде основные. Говорили где то что есть русская версия, но на spectrum4ever куча битых, а те что запускаются обычные версии 1.
Ищи элиту в волгодонском архиве!krt17 писал(а):
Да нашел версию с защитой и крайтом, по коду соответствует версии с адером. Буду смотреть. По идее должна быть еще версия с адером и пзушным шрифтом, чет я такой не нашел.
Отредактировано krt17 (Сегодня 07:17:14)
https://zxaaa.net/GAME.html
Каталог
https://zxaaa.net/OTHER/tomcat.zip
Далее я буду писать только об оригинальной 48 с защитой и адером.
В игре станция только 1 типа, нет никаких секретных кораблей и т.д., все обьекты можно посмотреть в текущем снапе на экране press space commander понажимайте N. В сам билд можно играть, отгрузка подходит от оригинала. Доработок пока минимум, ускорено процентов на 5, практически не заметно. Основной тормоз в математике, стандартные линии достаточно шустрые хотя клипинг можно я думаю ускорить.
Факт 6
Игру без проблем можно расширить на пару знакомест в стороны, это не затормозит, они и так рисуются, просто затерты 0 инком.
В игре станция только 1 типа, нет никаких секретных кораблей и т.д., все обьекты можно посмотреть в текущем снапе на экране press space commander понажимайте N. В сам билд можно играть, отгрузка подходит от оригинала. Доработок пока минимум, ускорено процентов на 5, практически не заметно. Основной тормоз в математике, стандартные линии достаточно шустрые хотя клипинг можно я думаю ускорить.
Факт 6
Игру без проблем можно расширить на пару знакомест в стороны, это не затормозит, они и так рисуются, просто затерты 0 инком.
На прерываниях клава, повороты, скорость и звук. Это там не критично. Есть подозрение что спасет небольшой прекалк для текущего фрейма поэтому и говорю придется до конца разбирать. Арифметика со знаком отдельно выглядит тормозно, возможно придется переделать в стандартную с дополнением но пока не могу оценить глобальность проблемы.
Звуки во время боя сделаны следующим образом. Если произошло событие требующее озвучки то выставляется бит в флаге звуков (всего возможно 8 но по факту их 7). Во время прерывания если обработчик видит включенный бит то играется соответствующий звук. Звуки не маленькие, по 100к тактов. Причем за 1 кадр возможно эти звуки придут не один раз, отсюда нереальные тормоза когда идет стрельба. Оценить влияние звука на геймплей можно отключив его (пауза S). По моему все становится не так плохо
krt17 писал(а):
Звуки во время боя сделаны следующим образом. Если произошло событие требующее озвучки то выставляется бит в флаге звуков (всего возможно 8 но по факту их 7). Во время прерывания если обработчик видит включенный бит то играется соответствующий звук. Звуки не маленькие, по 100к тактов. Причем за 1 кадр возможно эти звуки придут не один раз, отсюда нереальные тормоза когда идет стрельба. Оценить влияние звука на геймплей можно отключив его (пауза S). По моему все становится не так плохо
Вставь ау музыку подлиней и оцифровки пулей. паямяти там навалом
если строка одноразовая тоkrt17 писал(а):
Там сделано именно так, только не адрес а индекс сообщения. call print ; db txt_index. С местом особых проблем нет, ну по крайней мере по мелочи можно добавлять, почти везде можно чутка оптимизировать без ущерба.
call print
db "hello world",0
или, заместо 0, длинну строки в начале db
Рефакторинг печаталки конечно в начале списка туду как самое простое, вначале копания потом переделки. Пока переделываю по мелочам, то что в глаза бросается. Там есть ебнутые моменты когда вместо флагов используется замена в смещении у jr, при этом неоптимальности по мелочи столько что руки сами тянутся переписать.DimkaM писал(а):
если строка одноразовая то
call print
db "hello world",0
или, заместо 0, длинну строки в начале db
Сделано так:lvd писал(а):
А как в элите идёт время и соотвно происходят эволюции (сдвиг кораблей, ИИ врагов и т.д.)?
По прерываниям или чем быстрее рендер тем быстрее время?
На прерываниях висит опрос клавы и изменение скорости крена тангажа. Тоесть развить максимальную скорость можно независимо от тормозов.
Само изменение зависит от тормозов напрямую ибо делается раз за рендер, максимальную скорость то разовьет но сам поворот будет тормозить.
Как сделать хорошо понятно, пока надо досконально разобраться что уже есть, откомечнено процентов 20, примерно есть представление еще о 20%. Встречается такой код что просто офигеваешь как так можно было писать, а есть места что прям не ускорить не уменьшить. Отрисовка радара была ускорена раза в 3 и уменьшена раза в 4. Надеюсь в 3д тоже будут такие места.Отредактировано krt17 (2016-10-27 16:39:49)