Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Categories:

эмуляторное

Сегодня смотрел на то, какие есть эмуляторы старых Макинтошей (тех, что с процессором 68k, модели 1984-1996 примерно). Оказалось, что их не так много. Внутри браузера работает только один эмулятор, PCE.js, который является джаваскрипт-версией (через транслятор Emscripten) эмулятора PCE, написанного на олдскульном C человеком с неправдоподобным именем Hampa Hug.

Однако PCE - и соответственно его браузерная версия - поддерживает только ранние модели с монохромными дисплеями, вплоть до Macintosh Classic (1990). Первая модель Макинтоша с цветным дисплеем была Macintosh II (1987), в другой линейке - он ее не умеет. На словах больше моделей, включая II, поддерживает проект MAME, и он также утверждает, что все в нем можно скомпилировать в джаваскрипт через Emscripten (JSMAME); но конкретного работающего примера такого Мака нет, а MAME это такие дебри непроходимого и страшного кода, что мне не хочется туда и соваться. Сомневаюсь, что это хорошо работает: когда недавно энтузиасты archive.org сделали коллекцию ранних Макинтошных игр и программ, запускаемых в браузере, они воспользовались вышеупомянутым PCE.js, а не JSMAME.

Собственно, нашел только один эмулятор, хорошо поддерживающий цветные Макинтоши, конкретно модель Mac II. Он называется "Mini vMac", легкий, быстрый, удобный. Увы, только для десктопных ОС, не в браузере; но работает отлично. Когда мне захотелось посмотреть на его исходники, узнал удивительнейшую вещь о нем. Если скачать исходники эмулятора, то получаешь имидж диска для старых Макинтошей, который следует воткнуть... в сам эмулятор! Нет, сама компиляция исходников (написанных на C) в конечном счете будет под Windows, или Linux, или где еще надо. Но автор практически всё в эмуляторе сделал опцией времени сборки - и какую модель эмулировать, и сколько у нее памяти, итд. итд. И написал для всего этого собственную систему сборки, которой надо дать набор аргументов, а она на их основе создает подогнанный под них набор исходников на C и Makefile. Эта система сборки - программа для древнего Макинтоша и бежит внутри эмулятора! Это самый экстремальный пример принципа "eat your own dogfood", что я припоминаю.

До недавнего времени процесс выглядел так, если я верно понял. Скачиваешь готовый эмулятор для своей системы и имидж диска с исходниками. Запускаешь диск под эмулятором, запускаешь систему сборки, она пишет набор исходников на тот же диск. Теперь тебе его нужно вытащить из древнего эппловского формата HFS, в котором отформатирован диск, в свою настоящую ОС. Но недавно автор упростил этот процесс следующим образом. Он вставил в свой эмулятор специальную дырку, с помощью которой система сборки может сбежать за пределы своей виртуальной клетки, и приказать эмулятору записать такие-то данные на "настоящем" компьютере. Намного удобнее! Но как это все странно.
Tags: компьютеры, программирование
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments