Как обычно программисту стало скучно, и он решил покопаться в вайпе. Только не простой вейп, а с ЖК-экраном.
После реверс-инжиниринга и анализа Flash-памяти, которой здесь целый мегабайт, автор создал пару пользовательских инструментов: сплиттер и переупаковщик Flash-изображений.
А дальше пошёл полёт фантазии. Полноценный Doom сложно сюда портировать, поэтому автор решил сделать пользовательский интерфейс в стиле Windows NT 4.0 (по сути, корпоративной/профессиональной версии Windows 95). Используя несколько виртуальных машин, инструменты для создания скриншотов и записи, а также Microsoft Paint, он смог воссоздать ностальгический интерфейс Windows 95 на крошечном пространстве 80×160.
Главный экран имеет два окна: окно с батареей (удивительно отображает уровень заряда) и неактивное окно, которое отображает уровень жидкости. (1 окно на превью)
Анимация зарядки сделана на небольшом диалоговом окне Charging с анимированным курсором в виде песочных часов посередине. (2 окно на превью)
И самое красивое — вейп-анимация (парения). Выбор пал на легендарную 3D Pipes — одну из самых известных заставок эпохи Windows 95. (3 окно на превью)
В итоге получился кастомный интерфейс с двумя окнами и ретро-дизайном, вдохновлённый Windows 95. Это, конечно, не Doom, но тоже замечательно
порт .NET Framework обеспечивает обратную совместимость с современным программным обеспечением.
ВНИМАНИЕ! Использован перевод гугл!
Lego Island и ножницы входят в число протестированных приложений
Демонстрация MattKC функционирующего инструмента создания снимков экрана с помощью click-and-drag (щелчка и перетаскивания) в Win95 после внесения изменений. (Изображение предоставлено MattKC на YouTube)
Ютубер MattKC , по его собственным словам, портировал «тысячи приложений» на Windows 95, кропотливо перенося самую выдающуюся функцию Windows 98, .NET Framework, обратно в старую 95. В конце концов, основным ограничением Windows 95 по сравнению с 98 является отсутствие .NET Framework — во многих других отношениях Windows 98 удивительно близка к своей предшественнице по дизайну и функциям. Но почему он это сделал?
51-минутное видео, которое мы просмотрели несколько раз, в основном демонстрирует подлинный энтузиазм по поводу той эпохи аппаратного и программного обеспечения, как можно было бы предположить, если бы он захотел снять фильм о расширении Windows 95 через 28 лет после ее выпуска. В оригинальном видео, прикрепленном ниже, также есть несколько забавных моментов с живыми актерами, которые задают тон и характер, включая несколько прекрасно снятых антрактов.
Проклятие KernelEx не работает в Windows 95; MattKC должен выяснить, как заставить .NET Framework работать правильно. Отсутствующих файлов .DLL предостаточно, но использование инструмента дампа позволяет идентифицировать имена отсутствующих файлов, поэтому отсутствующую DLL можно заменить или проигнорировать. Даже после портирования всех недостающих DLL-файлов .NET все равно не уступает.
Для работы .NET в Windows 95 требуется больше ключей реестра, чем секунд в исходном 51-минутном 53-секундном видео — общее количество необходимых ключей реестра составило 5409.
Но даже после портирования .NET не может должным образом JIT (Just In Time) отлаживать себя в Windows 95. Причиной, по-видимому, является «ndphlpr», загадочный устаревший драйвер Windows, не используемый в Windows 98, но «необходимый» для .NET из-за сбоя .NET. без этого. MattKC определяет, что ложь компьютеру о наличии ndphlpr может сработать, но после того, как исследование показывает, что никто не знает, что это такое, он пытается полностью это исправить.
Это выдает ошибку исключения машинного кода. Инструмент WinDebug не поддерживает .NET изначально (поскольку он еще не должен существовать), поэтому MattKC все еще приходится иметь дело с некоторыми проблемами совместимости при параллельном тестировании Windows 95 и 98. W95 и W98 запускались в WinDebug в течение нескольких дней, чтобы найти проблему, и сброс прогресса был кропотливым.
В конце концов MattKC наконец нашел заблокированный блок кода, который WinDebug не смог прочитать. После расшифровки код оказался следующим:
F2 0F 10 44 24 08 F2 05 2C CO
Этот код с ошибкой относился к отсутствующему Windows API для некоторых функций щелчка. Исключением было то, что он не мог найти «NotifyWinEvent в user32.dll», а SSE2 запутывал инструкцию в коде. Затем пришлось внести исправления в .NET, чтобы устранить зависимость от SSE2, но это не исправило совместимость, а только сам отладчик .NET.
После долгих отладок Lego Island, MattKC в конце концов вручную закодировал метод, позволяющий выводить сообщение об исключении/ошибке в окно, а не там, где он его не видит. Это работает и позволяет сгладить последнюю часть совместимости DLL. После этого Rebuilder for Lego Island и специальное, более модернизированное приложение для создания снимков экрана теперь отлично работают в Windows 95.
И это еще одна фигура для легендарных технарей «Достаточно решительных безумцев».
DOS... Чёрной пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое маздайное окно, Я поставил DOS, и тогда увидел: это счастье - вот оно.
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.
Отказался от использования системных шрифтов вообще, с ними лишние проблемы на ровном месте. Вместо этого взял несколько символов из того самого растрового шрифта, который использовался на IBM PC;
Увеличил масштаб, теперь рисуется в масштабе 2:1. Разрешение дисплеев с тех пор сильно выросло, так получается аутентичнее;
Оптимизировал размер исполняемого файла. Теперь это 15Кб
Исходники и сам скринсейвер решил упаковывать в один архив. Всё равно объёмы микроскопические.