Часть с EGA/VGA не была действительно сложной для написания, потому что это было в основном написание кода для заполнения строк одним цветом или копирование целых кадровых буферов из VRAM в VRAM. Как только вы узнаете, как работает EGA/VGA, это становится довольно легко реализовать.
Трудности возникли при работе с аудио. Музыка для Amiga была написана с помощью инструмента «Sound Tracker» с аудиосэмплами, воспроизводимыми на четырёх каналах. На Amiga и ST это было просто, потому что в этих машинах было всё необходимое. Но на ПК это была совсем другая история. У этих машин был «buzzer» по умолчанию, а у счастливчиков был AdLib, способный воспроизводить FM. Ни один из них не имел возможности PCM, как, например, Sound Blaster и Gravis UltraSound.
Чтобы решить эту проблему, мне пришлось изменить таймер IRQ (от 80 или 100 Гц до 8000 Гц, уже точно не помню). Это означало, что основная программа прерывалась 8000 раз в секунду, чтобы сделать что-то ещё. Это «что-то ещё» должно было быть как можно короче, иначе ПК зависнет. Цель состояла в том, чтобы заставить PC Buzzer или AdLib вибрировать на желаемой частоте для имитации PCM сэмплов.Результат был далёк от оригинала. В любом случае это было лучше, чем вообще никакого звука.
Ух, как вспомню извращения с битовыми плоскостями, аж дурно становится - работал в своё время с режимами 640*480*16 цветов и 320*400*256 цветов! Всё-таки разработчики графики в IBM были самыми настоящими садистами.
Пара замечаний:
1) Buzzer и beeper - общепринятые обозначения встроенного звукового динамика в IBM PC и совместимых с ним компьютерах.
2) Поскольку речь идёт о разработчиках из Франции, то их имена с фамилиями нужно писать, как это принято: например, Daniel Morais = Даниэль Морэ.
вот это хардкорище по нынешним временам
286 МБ ЦПНаверное всё-таки 10 МГц 286 ЦП.
А какие именно уровни добавили для PC?
Я проходил в разных версиях (к примеру на сеге) и не помню такого.
В статье по ссылке упоминается 2 доп. уровня:
two extra levels are added where you have to rescue your alien friend twice