Эмуляция платформы ZX-Spectrum |
||
Наверное большинство, как минимум, слышали об игровом компьютере ZX-Spectrum на базе 8-разрядного процессора Z80 (8086) с тактовой частотой 3-7МГц. Он был разработан сэром Клайвом Синклером в 1980г. и сразу же завоевал бешеную популярность в Старом Свете. Дело в том, что за счет максимально упрощенной архитектуры компьютер был очень дешев. Весь он умещался в корпусе клавиатуры, в качестве периферии использовались обычные бытовые приборы. Так в роли устройства чтения-записи использовался магнитофон (магнитофонная лента-накопитель), а в качестве монитора - обычный телевизор. Видео-память составляла 6К, для кэша видеоадаптера использовалось основное ОЗУ. Такой интерфейс обеспечивал 8 цветов и 2 полу-тона.
Для тех времен памяти в 16К вполне хватало, позднее появились машины с 48 и 128К. Операционная система располагалась в 16К ПЗУ - это был новый и удобный по тем временам язык программирования Бейсик. В 1986г. дисководы уже не были очень дорогими и их стало возможно подключать к Спектруму, для работы с ними в ПЗУ была дополнительно вшита система TR-DOS, либо использовался внешний контроллер TR-DOS. В конце 80-х компьютеры Спекки (так любовно называли Спектрумы) были вытеснены с рынков Европы IBM-совместимыми компьютерами.
Но в начале 90-х Спектрум-совместимые компьютеры начали собирать в России. Россияне, никогда не видевшие компьютеров вообще, стали охотно покупать собранные частниками "Ленинграды". Позднее Спектрумы начали производить радиозаводы, как например 48K Magic, но они все равно не могли сбить ажиотажный спрос. А к концу 90-х и мы пересели на более мощные и сложные компьютеры, IBM и Macintosh, а про Speccy забыли...
Так к чему тогда этот раздел, посвященный забытому компьютеру? А вы помните середины 90-х с заваленными игровыми кассетами прилавками? Для Спектрума были созданы тысячи игр, они создаются и сейчас! Куда прикажете девать все это богатство?! Все очень просто - продолжать играть на IBM-совместимых компьютерах. К тому же очень много тех старых игр, умещающихся в 48, реже в 128 Килобайт, еще могут дать фору многим современным играм по своему интересному игровому сценарию! Чего стоят хотя-бы такие хиты как Academy, Elite, Nether Earth! Да и как приятно вспомнить былое и окунуться в мир игр юношества. Почти все игры Спектрума можно найти в интернете, можно купить CD с сотнями игр в сборнике.
Для совмещения платформы IBM с платформой ZX-Спектрум существует много эмуляторов. Благо создать виртуальный образ 144К памяти на компьютере с не одним десятком Мегабайт не составляет труда. Здесь мы представляем один из самых лучших эмуляторов ZX-режима - r80 v0.30, который вы можете скачать прямо сейчас. Он поддерживает большинство форматов zx-файлов, бипер и музыкальные процессоры Спектрума AY-3-8912 и Digital Covox через Sound Blaster или Adlib-совместимую карту (бипер обходится системными динамиками PC), создает полностью совместимые образы компьютеров Spectrum, +2, +2A, Pentagon, Scorpion с 16, 48 и 128K памяти, моделирует Бейсик, TR-DOS и Tape loader, эмулирует видеорежимы 320х200 в том числе 50Гц и Vesa 2.0 640х480, джойстики Kempston, Sinclair 1 и 2, Coursor на курсорных клавишах PC (огонь 0) и к тому же игры в этом эмуляторе идут с той же скоростью, что и на Спектруме, совсем не подтормаживают. Благодаря поддержке Tape loader можно грузить игры прямо с магнитофона через звуковую карту (требуется предварительно подключить магнитофон к LPT или COM-порту)! Для нормальной скорости игр требуется Pentium, но сносно работает и на 486-м процессоре. Под Win2k больше подойдет эмулятор Unreal Speccy для Windows. Он более совместим с Windows, поэтому если r80 искажает звук или изображение скачайте Unreal, в нем таких проблемм не возникнет. Далее пойдет описание для эмулятора r80, но и с US вам разобраться будет не сложно, по клавише F1 открывается диалог настроек, F2 для сохранения лент, F3 для загрузки (после загрузки в память для запуска надо ввести load "" (load по J)) и т.д.
Форматы файлов эмуляции |
||
Прежде чем приступить к работе с эмулятором разберемся с форматами файлов. Большинство файлов ZX-Spectrum написаны на ассемблере и хранились на магнитофонных кассетах. Для загрузки программ в память к PC через порт подключали магнитофон и загружали их при помощи звуковой карты. Звуки с магнитофона записывались специальной программой и создавались псевдозвуковые файлы .tzx, на которых записаны модемные сигналы. Эти файлы могут читать почти все эмуляторы, но у формата есть существенный недостаток: длительное время загрузки. Ведь эмулируется весь процесс, а с кассеты 40-килобайтная игра загружается минуты за 3. Поэтому эмуляторы стали использовать более совершенный формат - .tap. Это слепок звукового TZX-файла, но читается TAP уже не через звуковую карту, а напрямую с диска, поэтому загружается за доли секунды.
Игры для ZX-Spectrum существовали не только на магнитофоне, но еще и на 5'' дискетах (особенно 128-килобайтные). С этими много проще, ведь они уже использовали более-менее современный носитель. Каждая игра на диске состояла из нескольких файлов: загрузчика, транслятора, собственно игры и иногда файлов обслуживания (аналог современных оверлеев и библиотек). При помощи эмулятора эти файлы просто переписывались на диск PC и имели тип $ и !. Так $B-это бейсик-программа (обычно загрузчик), $E-программа в машинных кодах (обычно и есть игра), $1, $2 и так далее обычно оверлеи, вместо $ с таким же успехом может стоять !, но это разные, хотя и подобные форматы. Это все файлы HoBeta, и хранить в них информацию не совсем удобно. Гораздо удобнее хранить в одном файле. Поэтому сначала придумали архив ZZX, но чтобы запустить игру требовалось сначала разархивировать файлы, а потом образы реальных дисков TR-DOS .trd. В эмуляторах, поддерживающих TRD-формат (среди них и r80), работают с этими файлами так же как и с дисками TR-DOS. Недавно появился новый формат образа диска .scl (поддерживается в r80). С SCL работают так же как с TRD, но сами scl-файлы меньше по размеру, за счет более совершенного способа хранения информации.
Поскольку чужеродные программы уже стали поселяться в памяти PC и успешно там работать при помощи эмулятора, способного в любой момент остановить процесс, стали появляться и другие форматы. Пожалуй самые удобные форматы snapshot - слепки памяти. Это файлы с расширением SNA и Z80. Они сохраняют все содержимое памяти эмулятора на диск PC, поэтому можно начать даже любую аркаду с того места, на котором был сделан этот слепок. Сейчас множество игр ZX-Spectrum сохранено в этих форматах, просто после загрузки игры, когда появляется главное меню, делается слепок памяти. Вот в общем-то и все. Теперь все разнообразие игр 80-х доступно нам.
Еще существуют POKEs файлы с расширением .pok. Это что-то вроде cheats к играм для получения вечной жизни, полной аммуниции и т.п. Достаточно загрузить соответствующий POK-файл во время работы игры (Ctrl+F7, затем F2 и выбираете POK-файл). Он меняет некоторые адреса памяти, чтобы счетчики не уменьшались. В интернете есть множество указаний для получения вечной жизни, это ручные POKEs. В них указан адрес и значение в десятиричном формате. В r80 вы можете пользоваться и этим, только нужно перевести числа в 16-ричный формат, для этого подойдет стандартный калькулятор Windows в виде инженерного (меню вид, инженерный). Сначала вводим число в Dec, затем переключаемся в Hex и получаем шестнадцатиричное число. Так например в txt-файле к игре Freddy Hardest I указано для вечной жизни 64011, 167. Переведем числа в 16-ричный формат и получаем строку памяти вместо 64011 - FA0B, а значение вместо 167 - A7. Теперь запускаем игру и нажимаем Esc-попадаем в дебуггер. Нажимаем F2-попадаем в таблицу памяти, нажимаем F3-включаем режим редактирования, нажимаем F2 и вводим строку для поиска: FA0B. Затем в позиции курсора вводим значение строки A7, два раза нажимаем Esc и играем с вечной жизнью. Все очень просто.
Эмулятор |
||
Итак запускаем файл r80.exe и попадаем в 128-килобайтную ZX-Spectrum машину. Прямо в начальный экран. Здесь выбираем режим 128 или 48К BASIC и можем поработать в старом добром Бейсике, если хотите :-) А если нет, то нажимаем F3-для запуска форматов SNA или z80, F5-для запуска TAP или TZX или F8-для загрузки SCL или TRD. В открывшемся диалоге выбираем нужный файл и, если это слепок памяти он сразу запустится с того места на котором был сделан, если это слепок ленты, то нужно ввести load "" ("-пишется через Ctrl+P, в 48К машине LOAD пишется клавишей J), если это реальный диск, то:
Инструкции по запуску TRD и SCL (после нажатия F8)
- Сначала указывается эмулируемый диск клавишами влево-вправо, доходим до A (в подавляющем большинстве дисков B, C и D не существовало!) нажимаем Enter и выбираем файл диска TR-DOS на своем винте. Затем жмите ESC.
- Переходим в режим TR-DOS, для этого по кнопке F2 выбираем машину, на которой была эта система (Pentagon, Scorpion).
- Смотрим файлы на диске по команде LIST (клавиша K). Во второй колонке ищем запускаемый файл (обычно он имеет тип <B>, если такого файла нет-попробуйте позапускать все файлы в соответствии с п.4)
- Запускаем исполняемый файл командой RUN "FileName", не забывая, что регистр букв имеет значение заглавные буквы пишутся с Shift (RUN пишется клавишей R, кавычки-Ctrl+P или Alt+P).
Если на команду list выскакивает ошибка "No disk", значит файл приписан не к диску А, попробуйте загрузить в другие диски.
Пример: Нам нужно открыть игру Star Raiders II из файла srii.scl. Для этого мы запускаем эмулятор r80.exe, нажимаем кнопку F2 и выбираем машину Pentagon. В ней выбираем TR-DOS. Затем нажимаем F8, убеждаемся, что выбран диск A и нажимаем Enter. Находим файл srii.scl на жестком диске компьютера и выбираем его. Затем нажимаем Esc и кнопку K, появится команда LIST, нажимаем Enter. На диске видим 5 файлов, один из них имеет тип <B>, остальные <C>. Нам нужен исполняемый, то есть <B>, его имя SRII. Нажимаем R, появляется команда RUN, далее открываем кавычки (Ctrl+P), пишем имя файла и закрываем кавычки, должно получиться RUN "SRII", нажимаем Enter, игра запускается.
Вот вкратце и все. Надо отметить, что все функциональные клавиши и кнопка Esc останавливают работу ZX-программы и открывают диалоги эмулятора, все что в данный момент в памяти эмулятора может быть сохранено в формате слепков памяти (F4) или ленты (F6), все что на экране эмулятора может быть сохранено в графических форматах scr, pcx или grp (screenshot)(F7) - это особенно важно, так как такты видеоадаптеров Windows и ZX-Emul не совпадают и по PrtScr сохранить экран невозможно. По клавише F1 можно получить справку о любом диалоге, листается справка клавишами вправо-влево. В файле r80.ini можно задать начальные установки эмулятора, в том числе пути к программам, стартовую машину и т.п.
Управляющие клавишы (подробнее по F1 в программе)
- F1 - справка, листать справку кнопками вправо-влево
- F2 - выбор-сброс машины, Reset текущей машины можно сделать по Ctrl+F2
- F3 - загрузить слепок памяти SNA или z80
- F4 - сохранить слепок памяти в SNA или z80 (в диалоге TAB-переключает между выбором папки и вводом имени файла, вправо-влево-переключает форматы)
- F5 - загрузить слепок ленты TZX или TAP
- F6 - сохранить слепок памяти в формате слепка ленты TAP
- F7 - сохранить слепок экрана в формате SCR, PCX или GRP
- F8 - загрузить реальный диск TRD или SCL (сохраниться в формате TRD можно по F3 в этом диалоге)
- F9 - состояние и управление виртуальным магнитофоном (HOME-старт ленты, END-стоп ленты)
- F10 - выйти в DOS (закрыть эмулятор)
- F11 - дополнительные ПЗУ-функции машин (NMI)
- F12 - настройки эмуляции видеоадаптера, громкость звуковых процессов, эмуляция джойстиков Спектрума на джойстике PC или курсорных клавишах (если стрелкам назначить функции кроме Coursor, то меню эмулятора эти кнопки управлять уже не смогут)
- Ctrl+F1 - показать раскладку клавиатуры Спектрума. Это важно, поскольку раскладки несколько отличаются от PC.
- Ctrl+F7 - загрузить POKE-файл по F2
Следует помнить, что некоторые игры идут только в своих машинах, так игра для 48K машины может не пойти в 128K. Правда в большинстве случаев r80 сам определяет тип машины, но если игра не идет или виснет, то стоит попробовать другую машину.
Игры ZX-Spectrum в интернете |
||
В интернете можно найти множество сайтов со Спектрумовскими играми. Вот некоторые из них.
- Местная коллекция игр
- www.zx.ru - Большой музей ZX-Spectrum
- zx-spectrum.narod.ru - Сборник игр, форум по Спектруму
- zx-news.narod.ru - Сокровищница Спектрума. Много игр с описанием!
- speccy.iscool.net - Игры, эмуляторы
- ftp://ftp.nvg.ntnu.no/pub/sinclair/ - FTP-папка с кучей игр Спектрума во многих форматах
|