Pull to refresh
34
0
Сергей Морозов @DeadMoroz

User

Send message
Да там даже не то чтобы эффект, см. по ссылке выше, там есть скриншот.
К слову о Bill Gilbert, я наконец разобрался, как было реализовано его знаменитое лого. Не то чтобы это был секрет секретов, но в своё время мне не хватало ума, времени и желания разобраться, а сейчас вот получилось.
[…] сделай свой аналог Art Money
Ты имеешь ввиду взламыватель любых игр? Никогда не видел такого, видел только книжки к POKEs к конкретным играм.
Так вроде та часть, которая была написана на бейсике, и есть загрузчик.
сдуру грохнул нулевой сектор

Это скорее от большого ума. Просто так его не грохнешь :)
С другой стороны — после всего этого пришлось практически полностью переучиваться чтоб избавиться от стремления оптимизировать все и вся и экономить каждый байт путем запутывания кода :).

Я как раз сейчас смотрю на это с обратной стороны. По сравнению с современным софтом, спектрум — это прямо какая-то отдушина, в котором нет библиотек, построенных на фреймворках, а есть только непосредственно решение задачи. Хотя конечно же, во всём должна быть гармония.
Я тоже этим занимался. Только недавно узнал, что были ещё и юнилоадеры, когда игру можно было просто копировать с кассеты на дискету или наоборот, и она загружалась безо всяких изменений.
Ну да, действительно. Тот же TF-COPY умел сжимать-разжимать на ходу. Наткнулся, кстати, недавно на статью с парой демок, где ленточный загрузчик разжимает изображение прямо по ходу загрузки.
По мне так «во всю память» — это своего рода свинство. Разработчик решает свои проблемы за счёт более долгого времени загрузки у пользователя. Даже если и увеличивает скорость загрузки, т.к. это сказывается на стабильности.
К слову, с этой игрой такая загрузка не прокатит, т.к. байт типа файла тут нестандартный — не 00 (заголовок), не FF (тело), а A6. И заходят они в процедуру ПЗУ не по адресу 0556, а 055A. Кто-нибудь объяснит, в чём дело и как переписать пример выше, чтобы работало? Расшифрованный загрузчик работает (см. вторую картинку из отладчика), только не совсем понятно, что в нём по делу, а что для того, чтобы запутать взломщика.
Всё так. Я же говорил про простейший случай.
[…] кодовые блоки в подавляющем большинстве программ шли после оператора REM (данные после которого просто игнорировались интерпретатором Бейсика) […]
Да. Именно так я и буду делать загрузчик для TR-DOS в следующих частях.

В случае с Pac-Man мне показалось, что кодовые блоки идут сразу за окончанием строки безо всякого соблюдения формата хранения бейсик-программы в памяти (2 байта номера, 2 байта длины, данные строки). Хотя, видимо, эффект тот же самый (байты, которые интерпретируются как длина содержат какое-то большое значение).

Видимо, «синтаксис» — не самая удачная формулировка.
Я обходил так — заголовок (17 байт) грузил от одной ОЧЕНЬ длинной программы, а само тело — от взламываемой программы.
По идее, можно было загрузить заголовок от любого кодового файла, у которого длина больше длины бейсик-программы, и вменяемый адрес загрузки. А если с дисководом, то вроде бы можно было загрузить тело без заголовка в копировщик и сохранить его на диск как кодовый файл с тем же результатом.
Интересно, как ATOS SOFT создавали такие файлы? Ведь где-то должна быть процедура выгрузки файла или хотя бы её вызов, но вся память занята игрой. Даже в случае с 128К дополнительная память располагалась в дополнительных страницах, и её на ходу вряд ли переключишь. Может оно и сохранялось вместе кодом выгрузки? В случае с Pac-Man наверняка просто использовалась машина с 48К.
Всё правильно. В простешем случае нужно было просто перед всеми `LOAD` добавить `RANDOMIZE USR 15619: REM:`, но этого было достаточно далеко не всегда. В этой и других статьях будут как раз детали.
Интересно не видел раньше такого. Если бы ни видимый процесс загрузки, я бы по звуку подумал, что это просто сжатая картинка. Ан нет. Вот, кстати, этот релиз.
Всё правильно. Я имел ввиду не защиту программы от копирования, а защиту самого загрузчика от дизассемблирования и модификаций. Несмотря на то, что взломанную программу можно было копировать свободно, автор, видимо, не хотел, чтобы его стильный копилефт убрали или заменили имя на своё.

Счётчики (как в Эксолоне от Билла Гилберта) — это мой любимый стильный загрузчик в своё время.
Я с кассетными версиями от Родионова не сталкивался вообще, а вот от Билла Гилберта было много всяких. Интересно, есть ли где-нибудь готовый разбор загрузчика от него. Слышал, что там всё закодировано и перезакодировано и боюсь, что просто не хватит времени самому разобраться.
Я уверен, что вреда от него ноль. Так что скорее всего полезный.
По сегодняшним меркам — естественно. Можно скачать образ кассеты прямо с защитой и запустить. Другое дело, что волшебные кнопки не у всех были.

У меня была одна единственная бабина, переписанная напрямую на довольно приличном оборудовании, так с неё хорошо если треть игр загружалась. Но её так записывали не потому что какие-то защиты, просто человеку было лень возиться.

Information

Rating
Does not participate
Location
California, США
Date of birth
Registered
Activity