┌──────────────────────────────────────────────────────────┐
┌─┴──────────────────────────────────────────────────────────┴─┐
│ CИСТЕМА │
└─┬──────────────────────────────────────────────────────────┬─┘
└──────────────────────────────────────────────────────────┘
┌───────────────────────────┐
│ ∙ КОНВЕРТАЦИЯ IBM -> ZX ∙ │
└───────────────────────────┘
Конвертация программ
────────────────────
(Для тех, кто знаком с IBM PC)
Empty spaces - what are we living for
Abandoned places - I guess we know the score
On and on, does anybody know what we are
looking for...
Queen. The Show Must Go On
Хочу рассказать о том, как можно конвертировать
спектрумовские игры из форматов .sna, .tap и .z80 в HoBet'у.
Думаю, вам известно, что спектрумовский софт в Интернете в
подавляющем большинстве случаев находится именно в этих
форматах.
.Z80
────
Для конвертации я использую эмулятор UKV. В этом-то и кроется
проблема. UKV v1.2 не может работать с 48-ыми .Z80, так что их
приходится конвертировать в формат .SNA-48 с помощью программки
SPCONV. При этом все, что от вас требуется - это написать:
spconv game.z80 game.sna
И у вас 48-ой .sna, который можно без проблем (хмм... не
всегда) загрузить в UKV.
Но допустим, что у вас 128-ой .Z80. В этом случае запускаем
эмулятор, жмем ESC (попадаем в отладчик). Теперь в меню FILE
входим в опцию "SELECT SNAPSHOT FORMAT" (выбираем ".Z80 128").
Далее грузим snapshot ("READ SNAPSHOT FILE") и запускаем его
(F9).
Если все работает, как часы, то можно заняться конвертацией.
Входим в отладчик (ESC), затем неплохо бы прямо в нем
разобраться, какой у программы стартовый адрес. Или, хотя бы,
выяснить, какие страницы заняты и насколько. Определив, где что
находится, можно сохранять содержимое нужных страниц: в меню
DATA выбираем "WRITE BLOCK" и вводим строку:
game1 , address , length
где game1 - имя PCшного файла, в котором будет сохранен блок,
address - шестнадцатиричный адрес начала записываемого
блока,
length - его длина (тоже HEX)
Записав таким образом всю необходимую информацию, выходим из
эмулятора (ALT+X в отладчике). Теперь в директории можно
обнаружить сохраненные файлы. Чтобы их перегнать в формат
программы HoBeta, которая переводит файлы с PC на ZX и обратно,
можно воспользоваться программой PCTOBETA, обратившись к ней
так:
pctobeta game1 game1.$c GAME1
где game1 - конвертируемый файл,
game1.$c - имя создаваемого хобетного файла,
GAME1 - имя, которое будет иметь файл на спектрумовском
диске
Можно сразу воспользоваться HoBet'ой, но копировать PCшный
файл не по F5, а по ALT+F5.
Теперь у вас на диске должна иметься переконвертированная
игра в виде нескольких файлов. А уж как вам заставить ее
работать - не мне вам объяснять.
.SNA
────
Эти снапшоты тоже можно конвертировать через UKV, при этом
способ конвертации мало чем отличается от описанного в главе про
.Z80. Единственная разница - возможность конвертации как 48-ых,
так и 128-ых снапшотов. Не забудьте только выбрать нужный режим
в FILE/SELECT SNAPSHOT FORMAT.
И еще: игры, переконвертированные из .sna и .z80 обычно
требуют реставрации. Не поленитесь пройти программу до конца,
просмотреть, не запорчены ли где спрайты. Также в
переконвертированном блоке может быть много мусора: копии
экранов, неиспользующиеся данные и т.п. Их неплохо бы убрать.
.TAP
────
Их конвертировать проще всего. Для этого есть по крайней мере
2 способа.
Проще всего запустить программку TAP2HOB. Она прекрасно
извлекает блоки из tap'ов, записывая их в формате хобеты, т.е.
решает сразу все проблемы. Остается только переконвертировать
игру с помощью этой самой HoBet'ы. Но есть одно "но": эта
программа не годится для тех тапов, которые имеют в своем
составе блоки без заголовков. А это почти все игры с уровнями +
львиная доля обычных. Тут-то и пригодится программа TAP2TRD. Она
перегоняет все содержимое тапа в образ Шалаевского эмулятора.
Как ей пользоваться. Допустим, имеется файл game.tap. Создаем
с помощью программы zcop образ диска Шалаевского эмулятора:
zcop disk.trd
где disk.trd - имя образа диска.
Теперь вводим в командной строке следующее:
tap2trd disk.trd game.tap
Теперь содержимое тапа в disk.trd. Разобраться с ним можно
как в самом эмуляторе, так и непосредственно на Спектруме. В
последнем случае скопировать образ диска на дискету можно, в
частности, пользуясь встроенными в эмулятор дисковыми утилитами.
Еще один момент, на который мне хотелось бы обратить ваше
внимание: TAP2TRD не объединяет файл с его заголовком, а
записывает его как два блока без заголовка: первый представляет
из себя сам заголовок длиной в 17 байт, а второй -
непосредственно данные.
Вроде все.
PS: Просьба не обращаться ко мне с просьбой прислать ту или
иную из вышеупомянутых программ.
PPS: Конвертацию графики, думаю рассматривать не стоит. Если
вы считаете по другому - пишите. Возможно, когда-нибудь коснусь
и этого вопроса.