Down To Fuck: Soft & Hardcore
Привет DTF! Хочу поведать вам свою небольшую историю «любви».
Предыстория
Ностальгия из меня прям так и прет: люблю я вспомнить счастливое детство, поэтому на моих устройствах всегда есть всяческие эмуляторы старых консолей, виртуальные машины или сборки каких-нибудь старых игр, которые, пусть и с лютыми костылями, но возможно запустить на современных системах в каком-либо виде. Но эмуляторы-эмуляторами, а хочется чего-то более аутентичного. Поэтому я загорелся идеей собрать себе ретро машинку для всяких старых игрушек, чтобы не возиться с виртуалками и DosBox.
В 1998 году, у моего друга и одноклассника появился прекрасный диск (в 1990-е годы в нашей провинции ничего кроме пираток и не было). Если мысленно выкинуть из него все паззлы и карточные игры, то мы имеем великолепную подборку игр тех времен. Спасибо тому человеку, кто составил этот сборник! Жемчужиной этой коллекции оказалась GTA — я чуть не тронулся, когда ее впервые увидел. Из-за нее я часто огребал от родителей — не из-за жестокости и всей той преступной тематики, а по причине того что проводил за компьютером гораздо больше разрешенного мне времени :) .
Несколько лет назад я вспомнил про игру с того диска: ярко-выраженный-клон Quake под названием Chasm: The Rift от украинских разработчиков Action Forms. Игра довольна занимательная: 2,5D-шутер (но все модели в честном 3D, никаких спрайтов!) в котором врагам можно отстреливать конечности. На моем предыдущем компьютере в DosBox игра шла очень неровно в разрешении 640х480, а играть в 320х240 на жидкокристаллическом мониторе то еще удовольствие.
Страдать от плохой эмуляции и мыла на экране мне надоело и я принял решение: пора что-то собирать! Вспомнил что у двоюродного брата пылится на полке его первый компьютер, который ему покупали в начале 2000х, и 17" ЭЛТ-монитор Samsung Samtron 76E — очень ходовая модель в то время. Договорился, забрал системник и моник, накатил Windows 98, прошел Chasm. Гештальт закрыт! Но на этом я не успокоился, а лишь только раздразнил себя...
Понимая что бороться со своей странной необходимостью в сборе своего ретро-системника у меня не получится, я начал обзванивать местных барахольщиков, просматривать газеты и сайты с объявлениями в надежде найти что-то уровня Pentium II или Pentium III. Конечно же ничего, кроме странных взглядов, в нашем уездном городе я не нашел. Максимум что мне светило Celeron или Pentium 4 поколения Northwood с поддержкой Hyper-Threading, да всякие Athlon XP, так что об аутентичном железе можно было забыть. Все раритеты либо под кучей хлама на закрытых складах предприятий, либо давно разлагаются на свалках загрязняя окружающую среду. Тратить много времени и денег выискивая и покупая железо у энтузиастов из других регионов или возиться с доставкой мне не хотелось, поэтому я успокоился на некоторое время....
Компромисс
....пока однажды не оказался на таком складе. Среди шкафов, столов и прочей утвари я обнаружил кучу списанной техники, подлежащей утилизации: принтеры, сканеры, толстые ЖК-мониторы первых поколений, ЭЛТ-мониторы, разные системные блоки, все примерно начала двухтысячных. Под плотным слоем пыли и грязи я разглядел несколько интересных экземпляров: рабочие станции IBM Thinkcentre, корпуса в вертикальном и горизонтальном исполнении. Те что вертикальные явно стояли на полу, поэтому годы их не пощадили: краска местами облезла, пластик потрескался, у некоторых сколоты углы передней панели, видны следы обуви на боковых стенках - страшно смотреть. Горизонтальные корпуса вызвали особый интерес - выглядели они гораздо лучше, т.к. стояли на столах, а не на полу и побоев перенесли поменьше. Поинтересовался о их жизнеспособности, но ответа на этот вопрос не знал никто, т.к. пылились они там уже не первый год. В общем выпросил разрешения посмотреть, включить, проверить.
Большинство не стартовало: умерли блоки питания, в некоторых не было комплектующих (видимо ушли на замену по соседним рабочим станциям или еще куда), в каких-то умерли чипсеты или вздулись конденсаторы. Худо-бедно собрал один рабочий системный блок:
- взял самый хорошо сохранившийся горизонтальный корпус (чтоб как у оригинальных IBM PC/AT, да и выглядит круто);
- снял мать с вертикального донора (только на таких экземплярах был AGP слот под видеокарту на материнской плате), но оставил родной процессор (я точно знал что, допустим, Chasm: The Rift не запустится на процессоре с частотой 3.0 GHz - как у донора, но пойдет на процессоре с частотой 2.8 GHz - на родном от этой модели), в моем случае - чем хуже - тем лучше :) ;
- докинул еще одну плашку памяти (итого 2 х 256 Mb - максимум что может выдержать Windows 9x из коробки и без костылей);
- методом перебора нашел рабочий CD-ROM (по какой-то причине почти все умерли, был еще один комбо CD-RW/DVD-ROM, но он читал через раз, да и это уже слишком).
Монстр Франкенштейна
IBM ThinkCentre A50 8177 - это один из последних "настоящих" IBM PC 2004 года выпуска, произведенный примерно за год до продажи IBM своего бизнеса по производству ПК и ноутбуков китайцам из Lenovo. Да, я понимаю, что все сделано в китае, но шильдик "голубого гиганта" на корпусе греет душу и вызывает гордость.
Отмывал и продувал я его не жалея сил. Итак, вот что у меня получилось:
- CPU: Pentium 4 Prescott 2,8 GHz 533 MHz FSB Socket 478
- RAM: 512 Mb DDR SDRAM 333 MHz Dual
- GPU: Intel Extreme Graphics 2 (до 32Mb Shared RAM)
- Audio: Analog Devices SoundMAX AC'97
- HDD: Seagate 40 Gb 7200 RPM
- FDD: NEC 3.5″ Drive
- ODD: Hitachi-LG 48x CD-ROM
- NET: Intel PRO/100 VE
Интерфейсы:
- 2 х PS/2 для клавиатуры и мыши
- Параллельный порт
- Последовательный порт
- VGA порт для интегрированного видео Intel 865G
- Mic, Line-In, Line-Out для интегрированного аудио AC'97
- Ethernet порт 100Mbit
- 4 х USB 2.0 сзади \ 2 х USB 2.0 спереди
Это практически максимум того что может потянуть старушка Windows 98 (на самом деле нет, но и этого более чем достаточно).
We need to go deeper
Под виндой дело шло неплохо, до поры, до времени. Чем больше игр я запускал, тем больше понимал - все только начинается. Интегрированное аудио не SoundBlaster-совместимо, а интегрированное видео поддерживает не все VESA-режимы (например, разрешение 640х400). Это значит что в играх поздней DOS эпохи совершенно нет звука, а в некоторых и изображения (или настолько сильные артефакты, что ничего не разобрать, а некоторые игры, например GTA, не запускаются совсем). Такое положение вещей меня совершенно не устраивало, да и в целом сводило на нет все эти мои выкрутасы, причиняя мне невероятные душевные муки :'( .
Вспоминаю железо которое было у меня (ок, в компьютере моего отца) в начале 2000-х: Pentium III 1 GHz, GeForce 2 GTS от Asus (со стерео очками!), SoundBlaster Live 5.1. Ладно, поехали: знаю где достать GeForce 4 MX 440 8X AGP (по факту это GeForce 2, очень хороший по характеристикам, легко может пободаться с топовой Ultra-версией), "Лайвов" в те года тоже было просто завались. Иду на "авито" и покупаю отличную звуковую карту за 200 рублей :) . Ну хоть в чем-то повезло.
Устанавливаю драйверы. Видео: Detonator 45.23 - лучшее соотношение производительность\совместимость (NVidia даунгрейдила карты драйверами еще до того как некоторые из вас появились на свет!). Аудио: SB Live VxD драйвер (в комплекте еще идет более современный WDM драйвер, но он не дает хорошей совместимости с эмуляцией SoundBlaster 16 для DOS игр), а также DOS драйвер.
Настраиваю игры, запускаю: есть картинка, есть звук! Но где, блин, музыка с компакт-диска? Понимаю что коннектор под названием CD-IN не спроста присутствует на звуковой карте. Пришлось найти кабель для передачи аналогового звука с привода CD-ROM напрямую в звуковуху. Проблем не возникло, музыка заиграла. Слава Компьютерному Богу (и Задротскому тоже, что уж там)!
Dirty Old Sucker
Еще у меня есть такой пунктик: если у игры есть DOS-версия, значит она непременно должна запускаться из-под чистого DOS. Раз уж я не смог сделать все аутентично по железной части, значит нужно постараться навести красоту по части программной!
Попадаем в чистый DOS
Для начала, я хочу попасть в чистый DOS, тот самый, что загружается до старта Windows. Чтобы это сделать нужно нажать клавишу F8 до начала загрузки операционной системы - на экране появится загрузочное меню Windows 98. Но я не хочу ловить момент при каждом включении или перезагрузке! Придется прописать параметр BootMenu=1 в msdos.sys.
Содержимое msdos.sys:
Теперь при каждом включении компьютера нас будет встречать такой экран:
Теперь мы можем и в дос попасть, выбрав пункт 5. Command prompt only, и в безопасный режим загрузиться, если что-то пойдет не так. Удобно!
Все бы хорошо, но теперь нужно решить еще несколько задач:
- Нет звука (да, опять!).
- Нет поддержки мыши (неужели придется "тракторить" в шутерах на стрелках?!).
- Нет поддержки CD-ROM из коробки (игру не поставить, музыку в игре не послушать!).
Пройдемся по основным конфигурационным файлам, дабы научить дос загружать драйверы необходимого нам оборудования. Однако важно помнить, что под чистым досом каждый килобайт памяти на счету. Некоторые старые игры могут загружаться только в основную память (Conventional memory - это та, которой всего 640 килобайт!). Например, Cannon Fodder: мало того что игра сама по себе вынесет мозги, так еще и запустить ее - целый ритуал. Для того чтобы была возможность сыграть в нее, нам требуется 567536 байт свободной оперативной памяти.
Смотрим использование памяти "голой" системой (команда mem /c).
Сейчас памяти для запуска игры хватает, но нам нужен драйвер мыши (которого, кстати, нет в комплекте с ОС) и звуковой драйвер. А вообще, в идеале, я не хочу городить забор из вариантов запуска операционной системы под каждую такую хитровыделанную игру, мне нужна универсальная сборка: мышь, привод, звук, да чтоб памяти побольше!
Из того что система уже загружает сама убирать ничего нельзя - я не хочу лишаться поддержки кириллицы или возможности в любой момент загрузиться в Windows без перезагрузки компьютера (для этого просто набираем win в командной строке и через несколько секунд видим рабочий стол винды и прочие прелести графического интерфейса). Нужно научить DOS загружать себя в High Memory Area (небольшой участок памяти свыше 1 мегабайта), а драйверы в Upper Memory Blocks (память в промежутке от 640 килобайт до 1 мегабайта). Костыли, на которых живет вся архитектура x86, но... такова жизнь.
Освобождаем память
Содержимое config.sys (свои комментарии даю через двойной слэш):
Содержимое autoexec.bat:
Вот что показывает mem /c после проведенных оптимизаций:
Последствия
Ура! "Верхняя" память занята, а свободной "обычной" стало даже больше чем было до этого. Вот теперь можно и поиграть! Хотя уже, что-то и не охота... Заставить игру работать гораздо интереснее, чем играть в нее.
Возвращаясь к теме звука: в Cannon Fodder или Disney's Alladdin SoundBlaster-совместимая карта будет выдавать звук только если она на шине ISA, а это совсем редкость, так что со своей SB Live! на шине PCI мне светит только пиликание через эмуляцию AdLib, которое к счастью поддерживается.
Под чистым DOS я прошел первый Quake со всеми аддонами (впервые) на Nightmare, в 320х240, с мышью и саундтреком от Nine Inch Nails. И это было просто офигенно! Замечательная игра, на этой сложности раскрывается совсем с другой стороны. Рекомендую! Сейчас перепрохожу Duke Nukem 3D. А под виндой, наконец-то прошел режим Factory Driver в Need For Speeed: Porsche Unleashed. Кажется теперь у меня реальные проблемы с бэклогом...
Ниже немного снимков экрана (буквально, ха-ха).