Вложений: 1
Sea Dragon TRS-80 decompiled
Во вложении -- результат трудов с пятницы по вторник.
Что сделано:
1. Взят образ диска для TRS-80 и вынут оттуда SEADRAG/CMD -- во вложении SEADRAG.CMD
2. Написана программа для убирания лишних байтиков данных загрузчика -- результат в SEADRAG.BIN -- это то что загружается и запускается с адреса 74ae
3. Декомпилятором dZ80 получен "сырой" исходник
4. Потрачено ещё несколько суток на получение более-менее осмысленного исходника. Раскопал не всё, но многое -- по крайней мере, основная логика есть.
Дальше это рубить пока сил нет, выкладываю как есть.
Буду рад если вам это хоть как-то пригодится.
Тому кто будет разбираться -- пригодятся ссылки:
http://en.wikipedia.org/wiki/TRS-80#Hardware
http://www.trs-80.com/trs80-zaps-internals.htm
Вложений: 2
Мины пошли... (ревизия 51)
Наконец-то хоть что-то сделал с объектами, спрайтами.
Этот объект пока на знаколинии разложишь - мозг сломаешь!:v2_crazy: Ведь всё усугубляется еще и клиппингом.
В итоге - куча процедур печати, куча таблиц для заполнения буфера...
Вложение 15928
1) Долго долго думал, на каком же способе печати спрайтов остановитсья. В итоге сделал вывод спрайтов маской. Т.е. объекты не затираются перед выводом ландшафта, а затираются краешком маски прямо при выводе.
Правда не совсем понятно как будут затираться пули от пушек - ведь у них шаг где-то 4 или 8 пикселей.
Тросы пока сделал печаткой спрайта 8на8 пикселей поэтому они так много и жрут времени.
2) Можно, конечно, затирать и выводить спрайты ксоркой, но это раза в 1.5 будет времени думаю. Т.к. придется делать 2 буфера спрайтов. Один для вывода на текущем кадре, другой - для затирания на предыдущем. Зато будет проще. Не надо будет заботиться о стирании объектов - прогнав буфер 2-й раз он вернет фон к первоначальному состоянию.
В общем, что-то я не доволен. Как же лучше сделать?
Вложений: 2
Случайности неслучайны...
Прикольно когда, что-то движеться:)
Вложение 16005
Пока без взрывов.
Вложений: 2
Пробуем цвет (ревизия 60)
Нда, клэшинг неизбежен.:v2_conf3:
Сделал раскраску ландшафта. Цвета сдвигаются одновременно с ландшафтом.
Вложение 16057
Ну, допустим, мины я подвину подальше от краёв ландшафта, Но пушки-то всё равно будут переливаться!:v2_blink:
Можно попробовать выводить цвета вместе со спрайтами, сохраняя атрибут фона под спрайтом, а потом восстанавливая его. Но от клэшинга это не спасет (будет тогда край ландшафта переливаться), а накладные расходы увеличатся существенно. Нужно ли?
Похвастаюсь процедурой вывода экрана :v2_finge:.
Код:
;печать видимой части ландшафта
;IN: LeftLandPtrs
PrnScreen ;{
di
ld (RestoreSPAndReturn+1),sp
ld sp,LeftLandPtrs ;sp - Указатель на указатели начал видимой части строк
jr _1PrnScreen
EndParseTileBuffer
ld sp,ix ;10 ;сохраненный sp
pop hl ;10
ld sp,hl ;6=26 ;загружаем адрес буфера спрайтов
ret ;разбор буфера спрайтов для этой строки
EndParseSpriteBuffer
pop hl ;10 ;в конце каждого буфера спрайтов хранится сохраненный sp
ld sp,hl ;6
_1PrnScreen
pop ix ;14 ;сохраненный sp. Запомним его в ix
pop hl ;10
ld sp,hl ;6=46 ;загружаем адрес буфера тайлов
ret ;разбираем буфер тайлов
;}
Так со стекпоинтом я еще никогда не развращался , спасибо Jerri, что научил.
Вложений: 4
Разнообразие-безобразие... (ревизия 69)
"А кузов-то - с оцинковкой!"
1) В добавление к текстуре сделана окантовка краёв. Мне кажется - так намного лучше.
2) Так как атрибуты обрабатываются и выводятся независимо от самого ландшафта, то решил сделать и редактор цветов, а не брать их исходя из расположения тайла.