Первое знакомство с PCem v14
В этом руководстве будут показаны основные приемы по работе и настройке эмулятора PCem v14, как установить туда Windows 98 SE (eng) и организовать обмен файлами с хост-системой (компьютером, на котором запускается PCem). Высокая достоверность эмуляции и работа с оригинальными биосами накладывает ограничения, присущие реальным системам того времени. Поэтому, к примеру, попытка запустить 386-ю машину с 256 МБ ОЗУ — не самая хорошая идея. Также следует иметь в виду основные пределы размеров жестких дисков и разделов на них. Конфигуратор PCem постарается оградить от желания воткнуть 3dfx Voodoo в 286-ю машину, но многие вещи пользователю необходимо контролировать самостоятельно, полагаясь на опыт и здравый смысл. Например, жесткие диски объемом 500 МБ будут работать на XT с подходящим контроллером, но даже на разделе 127 МБ ожидание выполнения команды dir повергнет в тоску и отчаяние.
Скачивание и установка
На сайте разработчиков можно загрузить стабильные публичные сборки. Из репозитория разработчиков можно взять исходные коды с последними обновлениями и собрать свежую версию самостоятельно. Комплектовать нужными прошивками в обоих случаях придется самостоятельно. Альтернативный вариант — загрузить архив с укомплектованной версией PCem из раздела «Файлы — Эмуляторы» с нашего сайта.
Перечень устройств, названия файлов прошивок и пути, по которым их следует поместить в папке roms (там уже создано некоторое количество подпапок), можно найти в файле readme.txt в папке PCem. Категорически рекомендуется найти время на ознакомление с его содержимым, поскольку там есть некоторая полезная информация, касающаяся как эмулятора, так и эмулируемого железа.
Установка как таковая не требуется. Содержимое архива помещается в отдельную папку на диске, причем путь не должен содержать символов кириллицы (см. рис. 1).
-
Рисунок 1 – Содержимое папки чистой сборки PCem
Создание и настройка конфигурации
После запуска PCem.exe открывается окно менеджера конфигураций (см. рис. 2). Для создания новой конфигурации нажимаем кнопку New слева внизу. Во всплывшем окне вводим название новой конфигурации и жмем OK. Название лучше давать осмысленное, чтобы потом, когда их будет много, в списке конфигураций было проще ориентироваться.
В следующем окне настраивается железо эмулируемой платформы. Все настройки сгруппированы в семь закладок в соответствии с выполняемыми функциями. Существует определенный порядок, в котором следует проводить настройки. Закладки настраиваются по очереди, слева направо. Внутри одной закладки всё настраивается слева направо, сверху вниз. То есть создание новой конфигурации начинается с самой левой закладки (с пиктограммой материнской платы), с выбора вида материнской платы (выпадающий список machine) и так далее. Первая закладка посвящена основе платформы: материнской плате, процессору и оперативной памяти. Устанавливаем параметры, как на рисунке 3.
На следующей закладке настраивается видеоадаптер и ускоритель трехмерной графики. Маленькие квадратные кнопки с изображением гаечного ключа и молотка справа от некоторых позиций позволяют осуществлять тонкую настройку, но в данном руководстве это не потребуется. Достаточно установить параметры, как на рисунке 4.
В третьей по счету закладке конфигуратора настраивается звук. Выбираем вариант, как на рисунке 5.
На четвертой закладке настраиваются всевозможные накопители: дисководы для дискет, жесткие диски и контроллеры, а также оптические приводы. Сначала выставляем всё так, как на рисунке 6.
Выбранный тип контроллера (первая опция сверху) подразумевает наличие двух каналов с поддержкой двух устройств (Master и Slave) на каждом. Соответственно, можно подключить до четырех жестких дисков или оптических приводов. Выбор устройства для настройки происходит в широком выпадающем списке (на рисунке выше там выбран первичный канал Drive 0 Primary Master (C:)). Тип устройства на канале выбирается в выпадающем списке ниже (на рисунке выше там выбран Hard drive). Создадим новый пустой жесткий диск, на который потом будет установлена операционная система. Для этого нужно нажать небольшую квадратную кнопку справа от выбранного типа устройства . В новом открывшемся окне (см. рис. 7) нажимаем кнопку для выбора пути сохранения и имени файла, в котором будут храниться данные создаваемого диска.
Рекомендуется создать для файлов образов отдельную директорию непосредственно в папке PCem (в данном примере это images). В эту же папку лучше поместить заодно образы загрузочной дискеты и установочного диска Windows 98 SE, — они пригодятся позже. Найти и то и другое можно, например, на сайте winworldpc.com. Или в месте, запрещенном Роскомнадзором, — как вам удобнее.
Название файла образа жесткого диска опять же лучше давать осмысленное. Объем создаваемого диска выбираем 1,2 ГБ — вполне типичный для того времени. Геометрию и тип создаваемого диска не трогаем, — эти вещи имеют значение для более старых машин. Жмем ОК. Читаем предупреждение и запоминаем. Теперь на первичном канале мастером подключен образ жесткого диска объемом 1,2 ГБ (см. рис. 8).
На вторичном канале мастером устанавливаем CD-ROM (см. рис. 9).
В рамках данного руководства содержимое остальных трех закладок (конфигураторы мыши, джойстиков и сети) оставляем без изменений. Жмем ОК внизу окна настройки конфигурации и видим свежесозданную конфигурацию в списке менеджера конфигураций (см. рис. 10).
Вернуться к настройке и что-то изменить в выбранной конфигурации можно по нажатию пиктограммы гаечного ключа с молотком.
-
Рисунок 2 – Пустой менеджер конфигураций
-
Рисунок 3 – Конфигуратор эмулируемой платформы
-
Рисунок 4 – Конфигуратор видеоадаптеров
-
Рисунок 5 – Конфигуратор звуковых адаптеров
-
Рисунок 6 – Конфигуратор подсистемы хранения данных, исходное состояние
-
Рисунок 7 – Окно создания нового образа жесткого диска
-
Рисунок 8 – Конфигуратор подсистемы хранения данных, задан жесткий диск на первичном канале
-
Рисунок 9 – Конфигуратор подсистемы хранения данных, задан оптический привод на вторичном канале
-
Рисунок 10 – Менеджер конфигураций PCem с выбранной конфигурацией
Запуск сконфигурированного компьютера
Для запуска выбранной конфигурации в менеджере конфигураций нажимаем кнопку с узнаваемым символом . Откроется новое окно с изображением экрана эмулируемого компьютера, и начнется загрузка. Если немного подождать, то всё остановится на таком же экране, как на рисунке 11.
Перед вами основное рабочее окно эмулятора, поэтому изучим его подробнее. По нажатию сочетания Ctrl+Alt+PgDn можно переключаться в полноэкранный режим, но на начальном этапе знакомства с PCem этого делать не рекомендуется.
Строка заголовка рабочего окна содержит следующую информацию:
- Название и версию эмулятора;
- Отношение реальной скорости эмулируемого компьютера к идеальной, выраженное в процентах. Чем ближе к 100 % — тем лучше. Если там, к примеру, отображается цифра 50 %, то, значит, ваш реальный компьютер (хост) обеспечивает вдвое меньшую скорость, чем необходимо. Хотя и без этого индикатора заикающийся звук и лагающее видео намекнут, что вы слишком многого хотите;
- Краткие сведения об эмулируемой в настоящий момент платформе;
- Указания по захвату и освобождению указателя мыши окном эмулятора.
Главное меню рабочего окна содержит шесть пунктов. В System можно «нажать» reset или отправить комбинацию Ctrl-Alt-Del эмулируемому компьютеру, а также «выключить питание».
Пункт Disc содержит возможности по работе с дискетами и дисководами. Для установки дискеты в эмулируемый дисковод A: выбираем подпункт Change Drive A:… и в открывшемся окне указываем образ загрузочной дискеты Windows 98 SE и жмем Open (если вы всё внимательно выполнили во втором действии, то он уже должен быть в папке рядом с файлом образа жесткого диска). PCem понимает следующие форматы файлов образов дискет: .img, .ima и .fdi.
В следующем пункте главного меню CD-ROM находятся команды для работы с оптическим приводом. Имеется возможность подключить привод оптических дисков хоста (Host CD/DVD Drive), загружать образы (Load image…) и выгружать лоток (Empty). Текущее состояние виртуального лотка отмечено черным кружком. Поддерживаемые форматы образов: .iso и .cue, причем именно CD, — работа с DVD не поддерживается. Сейчас следует загрузить в лоток эмулируемого привода образ установочного диска Windows 98 SE, чтобы в дальнейшем запустить процесс установки.
Остальные пункты главного меню остаются за рамками первого знакомства с PCem.
-
Рисунок 11 – Первая загрузка эмулируемой конфигурации
Настройка BIOS
Перезагружаем эмулируемый компьютер (System -> Ctrl+Alt+Del), — но, прежде чем приступить к установке операционной системы, зайдем в настройки BIOS. Для этого в начальный момент загрузки (во время определения приводов сразу после теста памяти) нажимаем Del (см. рис. 12).
В настройках биоса в меню выбираем INTEGRATED PERIPHERALS и выключаем параллельный порт — или хотя бы переводим его на IRQ 5, поскольку IRQ 7 уже занят звуковой картой (см. рис. 13).
Можно также заодно отключить USB Controller, чтобы не смущать биос зря, — PCem не эмулирует USB. Далее выходим с сохранением изменений. Теперь можно начинать установку Windows 98 SE.
-
Рисунок 12 – Момент загрузки для входа в настройки BIOS
-
Рисунок 13 – Отключение параллельного порта в настройках BIOS
Установка Windows 98 SE
Детальное описание установки находится за рамками данного руководства, поскольку этот процесс ничем не отличается от такового на настоящем железе: загружаемся с дискеты с поддержкой CD-ROM, запускаем Setup.exe с установочного диска Win98, разрешаем разметить и отформатировать наш девственно чистый виртуальный жесткий диск, — и так далее и тому подобное. Не пройдет и полчаса, как вы услышите до боли знакомый звук приветствия и увидите такой же экран, как на рисунке 14.
-
Рисунок 14 – Первая загрузка Windows 98 SE в рабочий стол
Обмен файлами между эмулируемым компьютером и хостом
Учитывая полученные ранее навыки по работе с образами дискет и оптических дисков, вы уже должны быть готовы устанавливать игры, поскольку сам процесс установки аналогичен таковому на реальном железе. Но что делать, если желанная игра представляет собой набор файлов в папке и запускается без установки? Есть несколько путей перебрасывать файлы между эмулируемым компьютером и хостом, но далее будет показан самый удобный — прямой доступ к содержимому жесткого диска эмулируемого компьютера. Файл образа жесткого диска внутри имеет формат RAW, и его можно монтировать соответствующими утилитами в качестве жесткого диска непосредственно в операционной системе хоста. Рекомендуем использовать для этого свободно распространяемую программу OSFMount.
После установки запускаем OSFMount и жмем кнопку Mount new… (см. рис. 15).
В открывшемся окне (см. рис. 16) снимаем внизу галочку Read-only drive, затем нажимаем вверху справа многоточие рядом с полем Image file и выбираем файл с образом жесткого диска PCem.
После этого нужно указать раздел в образе для монтирования. В данном случае это единственный раздел объемом 1,2 ГБ (см. рис. 17).
После этого жмем OK и еще раз OK. Теперь основное окно программы OSFMount показывает, что образ смонтирован и готов к работе (см. рис. 18).
Теперь можно перебрасывать файлы любым файловым менеджером. Создадим, например, папку Games и скопируем туда Doom2 (см. рис. 19).
После выполнения всех требуемых операций нужно в OSFMount размонтировать (Dismount) образ, перед тем как снова запускать с него PCem.
На этом первое знакомство можно считать законченным.
-
Рисунок 15 – Основной экран программы OSFMount
-
Рисунок 16 – Монтирование образа в качестве диска в операционной системе хоста
-
Рисунок 17 – Выбор раздела для монтирования
-
Рисунок 18 – Смонтированный образ жесткого диска эмулятора C: в качестве диска E:
-
Рисунок 19 – На правой панели вид на созданный ранее диск C: эмулятора, который смонтирован как E:
В разделе «Файлы — Эмуляторы» с нашего сайта доступен для загрузки архив с готовой конфигурацией, настроенным биосом и образом жесткого диска с установленной Windows 98 SE (eng), которые должны были получиться в результате выполнения всех шагов данного руководства. Там же можно найти вариант с русской версией Windows 98 SE. Если планируется запуск Glide-игр, то нужно установить драйвера для Voodoo.
Ровно 22 года назад, 25 июня 1998 года, Microsoft представила Windows 98. Фактически это была обновлённая версия Windows 95, основанная на MS-DOS 7.1. Однако в ней было много нововведений, которые быстро сделали систему популярной среди пользователей.
Разработчики добавили в Windows 98 более 1000 драйверов для новых устройств, среди которых DVD, HDD IDE емкостью до 137 ГБ, шина USB, инфракрасные порты. В Windows 98 появилась возможность перевода системы в спящий режим, а также был добавлен узел Windows Update, позволяющий скачивать обновления из интернета. Для сёрфинга был предустановлен Internet Explorer 4.
Microsoft планировала прекратить поддержку системы 16 января 2004 года, но из-за невероятной популярности продлила срок до 11 июля 2006 года.
Наверное, многие уже не помнят, что собой представляла Windows 98. Кто-то и вовсе никогда с ней не работал. Это можно легко исправить с помощью эмуляторов. Они предлагают хорошо знакомый всем олдам ламповый интерфейс системы плюс дают возможность поиграть в старые игры.
Запуск Windows 98 в браузере — для быстрой ностальгии
Проект Virtual x86 позволяет запускать в обозревателе разные операционные системы — в том числе Windows 98. Система загружается за несколько секунд. Сразу совет — чтобы не мучиться с курсором, нажмите на кнопку Lock mouse. Эмулятор захватит мышку, указатель перестанет раздваиваться. Чтобы освободить курсор, нажмите на клавишу Esc.
После этой короткой настройки мышки можно приступать к изучению системы. Интерфейс — классический, набор предустановленных программ тоже. Paint, Notepad, Windows Media Player, «Сапёр», «Солитёр», «Косынка», «Червы» — всё работает.
Выйти в интернет через Internet Explorer мне не удалось. Впрочем, особого смысла в этом не было. Всё равно большинство сайтов не открылись бы из-за отсутствия поддержки HTTPS, а на мизерном количестве загрузившихся страниц была бы сломанная вёрстка. Разработчики интерфейсов давно забыли классику и даже поддержку Internet Explorer 11 считают подвигом, не говоря уже о более ранних версиях.
Программы-эмуляторы Windows 98 — для тех, кто хочет вспомнить старые игры
В браузере невозможно продержаться долго — слишком медленно система выполняет все действия. Куда приятнее (и интереснее) пользоваться программами-эмуляторами.
В первую очередь попробуйте эмулятор PCem. Чтобы не настраивать конфигурацию вручную, можно скачать самодостаточную сборку с установленной ОС Windows 98 SE на английском языке (размер файла — 204,59 МБ). Архив нужно распаковать в корень системного диска.
Файл PCem.exe запускает эмулятор с установленной и настроенной Windows 98. Система работает намного шустрее, чем в браузере. Но главное — можно устанавливать старые игры. Для этого нужны образы дисков. Поддерживаемые форматы — ISO и IMG. Вы загружаете образ через раздел CD-ROM в меню, находите диск в My Computer и устанавливаете игру.
Например, я с помощью эмулятора запустил FIFA 97, выпущенную в 1996 году. Всё работает отлично. Если хотите немного потеряться во времени, советую PСem.
Если нет времени на поиск старых игр, то скачайте Windows 98 на DosBox. Автор добавил в сборку пару десятков демо. Это отличный вариант для тех, кто хочет вспомнить как можно больше классических игр, в которые можно было играть сутками на компьютере с Windows 98.
Этот эмулятор работает не так стабильно, как PCem. Однако полазить по системе и запустить пару игр мне всё-таки удалось. Постоянно вылетающие ошибки же — это как ещё один привет от старой системы, которая даже на презентации в 1998 году ушла в «синий экран смерти».
This is a pre-packaged installation of Windows 98 SE for PCem. I’ve already installed the OS, most essential drivers and programs, so you’re ready to install games.
Extract the contents of this folder into
C:\PCem
Otherwise, edit configs/Win98SE.txt and change the line
hdc_fn = C:\PCem
to wherever you extracted this folder.
HDD space is 1024MB (total)
655 MB (free)
Pre-installed:
Windows 98 SE (Second Edition) OS
CD-ROM driver (Oak Technology)
Sci-Tech Display Doctor v7.0 beta
DirectX 7.0
DirectX 9.0C
Voodoo2
Sound Blaster 16 AWE
SetBlast — Find this Sound Blaster config tool in C:
QuickTime 2.1.2
Macromedia Shockwave / Flash 10.3.0.24
Windows Media Player 9
WinZip 10.0
7-zip v4.5.7
Notepad++ v4.1
No password.No screensaver, screen or sleep time out. Uses a silent Windows sound theme.
PCem
Download: Windows/Linux/vNext (Wise Global Solutions Mirror)
Latest version: v17 Changelog
PCem is licensed under GPL v2.0, see COPYING for more details.
You can submit patches on our forum. Before you do, please note the guidelines for submitting patches.
❗ Note: NO COPYRIGHTED ROM FILES ARE INCLUDED NOR WILL THEY BE. PLEASE DO NOT ASK FOR THEM.
BSD and Linux supplement (v17)
You will need the following libraries and buildtools (and their dependencies):
- SDL2
- wxWidgets 3.x
- OpenAL
- CMake
- Ninja (Recommended, but you can use a Makefile generator if you prefer)
Open a terminal window, navigate to the PCem directory then enter:
Linux/BSD
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release .
ninja
Windows (MSYS2)
cmake -G "Ninja" -DMSYS=TRUE -DCMAKE_BUILD_TYPE=Release .
ninja
then ./src/pcem
to run.
The Linux/BSD versions store BIOS ROM images, configuration files, and other data in ~/.pcem
You can specify the Display Engine using -DPCEM_DISPLAY_ENGINE=
The options you have are wxWidgets, and Qt
configure options are :
-DCMAKE_BUILD_TYPE=Release : Generate release build. Recommended for regular use.
-DCMAKE_BUILD_TYPE=Debug : Compile with debugging enabled.
-DUSE_NETWORKING=ON : Build with networking support.
-DUSE_PCAP_NETWORKING=ON : Build with pcap networking support. (Needs USE_NETWORKING to compile) Requires libpcap.
-DUSE_ALSA=OFF : Build with support for MIDI output through ALSA. Requires libasound. (Linux Only)
-DFORCE_X11=ON : Enables a hack to force X11 on Wayland systems. See #128 for details. (Linux Only)
-DPLUGIN_ENGINE=OFF : Build with plugin support. Builds libpcem-plugin-api and links PCem with it.
If you are using -DCMAKE_BUILD_TYPE=Debug, there are some more debug options you can enable if needed
-DPCEM_SLIRP_DEBUG=ON : Build PCem with SLIRP_DEBUG debug output
-DPCEM_RECOMPILER_DEBUG=ON : Build PCem with RECOMPILER_DEBUG debug output
-DPCEM_NE2000_DEBUG=ON : Build PCem with NE2000_DEBUG debug output
-DPCEM_EMU8K_DEBUG_REGISTERS=ON : Build PCem with EMU8K_DEBUG_REGISTERS debug output
-DPCEM_SB_DSP_RECORD_DEBUG=ON : Build PCem with SB_DSP_RECORD_DEBUG debug output
-DPCEM_MACH64_DEBUG=ON : Build PCem with MACH64_DEBUG debug output
-DPCEM_DEBUG_EXTRA=ON : Build PCem with DEBUG_EXTRA debug output
If you are using -DCMAKE_BUILD_TYPE=RelWithDebInfo, there are additional options you can do
-DPCEM_RELDEB_AS_RELEASE=ON : Builds RelWithDebInfo with debugging logging enabled when this is off
They are some extra modules you can add if you build with -DUSE_EXPERIMENTAL=ON
. These modules are untested.
incomplete, and may or may not be in a future build of PCem. We do not provide builds with these enabled as
well. It is also possible they may not even build.
-DUSE_EXPERIMENTAL_PGC=ON : Build PCem with Professional Graphics Controller support.
-DUSE_EXPERIMENTAL_PRINTER=ON : Build PCem with Printer support. Requires freetype.
The menu is a pop-up menu in the Linux/BSD port. Right-click on the main window when mouse is not
captured.
CD-ROM support currently only accesses /dev/cdrom
. It has not been heavily tested.
Links
PCem emulates the following hardware (as of v17):
Hardware | Links |
---|---|
Systems | 8088 8086 286 386 486 Pentium Super Socket 7 |
Graphics | Basic Unaccelerated (S)VGA cards 2D accelerated SVGA cards 3D accelerated SVGA cards 3D only cards |
Sound | Cards |
HDD Controller | Cards |
Misc | Cards |
Software Tested (list)
- DOS
- Windows
- Windows NT
- OS/2
- Linux
- Applications
- Games
- Demos
- Emulators
Systems
8088 based
Release | Machine | ROM file needed (within ./roms/ folder) |
---|---|---|
1981 | IBM PC 8088 at 4.77 MHz 16KB — 640KB RAM (min. 64KB) |
ibmpc/pc102782.bin ibmpc/basicc11.f6 ibmpc/basicc11.f8 ibmpc/basicc11.fa ibmpc/basicc11.fc |
1983 | Compaq Portable Plus 8088 at 4.77 MHz 128KB — 640KB RAM |
compaq_pip/Compaq Portable Plus 100666-001 Rev C.bin |
1983 | IBM XT 8088 at 4.77 MHz 64KB — 640KB RAM |
ibmxt/5000027.u19 ibmxt/1501512.u18 |
1983 | Leading Edge Model M 8088 at 7.16 MHz 128KB — 704KB RAM |
leadingedge_modelm/Leading Edge — Model M — BIOS ROM — Version 4.71.bin |
1984 | IBM PCjr [5] 8088 at 4.77 MHz 64KB — 640KB RAM (min. 128KB) Built-in 16 colour graphics 3 voice sound Not generally PC compatible. |
ibmpcjr/bios.rom |
1984 | Tandy 1000 [5] 8088 at 4.77 MHz 128KB — 640KB RAM Built-in 16 colour graphics 3 voice sound |
tandy/tandy1t1.020 |
1985 | Commodore PC10 8088 at 4.77 MHz 640KB RAM CGA/Monochrome |
cbm_pc10/cbm-pc10c-bios-v4.41-318085-08.bin |
1985 | NCR PC4i 8088 at 4.77 MHz 256KB — 640KB RAM |
ncr_pc4i/NCR_PC4i_BIOSROM_1985.BIN |
1986 | DTK Clone XT 8088 at 8/10 MHz 64KB — 640KB RAM |
dtk/dtk_erso_2.42_2764.bin |
1986 | Phoenix XT clone 8088 at 8/10 MHz 64KB — 640KB RAM |
pxxt/000p001.bin |
1987 | Hyundai Super 16T 8088/8087 at 4.77/8.0 MHz 640KB RAM EGA 16 colour graphics |
super16t/hyundai-super-16t-system-bios-hea-v1.12ta.bin |
1987 | Tandy 1000HX 8088 at 7.16 MHz 256KB — 640KB RAM Built-in 16 colour graphics 3 voice sound Has DOS 2.11 in ROM |
tandy1000hx/v020000.u12 |
1987 | Thomson TO16 PC 8088 at 9.54 MHz 512KB — 640KB RAM |
to16_pc/TO16_103.bin |
1987 | Toshiba T1000 [1] [5] 8088 at 4.77 MHz 512KB — 1024KB RAM CGA on built-in LCD |
t1000/t1000.rom t1000/t1000font.rom |
1987 | VTech Laser Turbo XT 8088 at 10 MHz 640KB RAM |
ltxt/27c64.bin |
1987 | Zenith Data SupersPort 8088 at 8 MHz 128KB — 640KB RAM Built-in LCD video is not currently emulated |
zdsupers/z184m v3.1d.10d |
1988? | ©Anonymous Generic Turbo XT BIOS 8088 at 8+ MHz 64KB — 640KB RAM |
genxt/pcxt.rom |
1988 | Atari PC3 8088 at 8 MHz 640KB RAM |
ataripc3/AWARD_ATARI_PC_BIOS_3.08.BIN |
1988 | Juko XT clone | jukopc/000o001.bin |
1988 | Schneider Euro PC 8088 at 9.54 MHz 512KB — 640KB RAM |
europc/50145 europc/50146 |
1989 | AMI XT clone 8088 at 8+ MHz 64KB — 640KB RAM |
amixt/ami_8088_bios_31jan89.bin |
1989 | Hyundai Super 16TE 8088/8087 at 10 MHz 640KB RAM EGA 16 colour graphics |
super16te/hyundai-super-16te-system-bios-v2.00id.bin |
2015 | Xi8088 8088 at 4.77-13.33 MHz 640KB RAM |
xi8088/bios-xi8088.bin |
8086 based
Release | Machine | ROM file needed (within ./roms/ folder) |
---|---|---|
1984 | Compaq Deskpro 8086 at 8 MHz 128KB — 640KB RAM |
deskpro/Compaq — BIOS — Revision J — 106265-002.bin |
1984 | Olivetti M24 [5] 8086 at 8 MHz 128KB — 640KB RAM Built-in enhanced CGA (supports 640x400x2) |
olivetti_m24/olivetti_m24_version_1.43_low.bin olivetti_m24/olivetti_m24_version_1.43_high.bin |
1986 | Amstrad PC1512 [5] 8086 at 8 MHz 512KB — 640KB RAM Enhanced CGA (supports 640x200x16) Custom mouse port |
pc1512/40043.v1 pc1512/40044.v2 pc1512/40078.ic127 |
1987 | Amstrad PC1640 [5] 8086 at 8 MHz 640KB RAM Built-in Paradise EGA Custom mouse port |
pc1640/40043.v3 pc1640/40044.v3 pc1640/40100 |
1987 | Toshiba T1200 [1] [5] 8086 at 9.54 MHz 1MB — 2MB RAM CGA on built-in LCD |
t1200/t1200_019e.ic15.bin t1200/t1000font.rom |
1988 | Amstrad PPC512/640 [5] 8086 at 8 MHz 512KB — 640KB RAM Built-in CGA w/ plasma display |
ppc512/40107.v2 ppc512/40108.v2 ppc512/40109.bin |
1988 | Sinclair PC200/Amstrad PC20 [5] 8086 at 8 MHz 512KB — 640KB RAM Built-in CGA (supports TV-out 50hz PAL) |
pc200/pc20v2.0 pc200/pc20v2.1 pc200/40109.bin |
1988 | VTech Laser XT3 8086 at 10 MHz 512KB — 1152KB RAM |
lxt3/27c64d.bin |
1989 | Amstrad PC2086 [5] 8086 at 8 MHz 640KB RAM Built-in VGA |
pc2086/40179.ic129 pc2086/40180.ic132 pc2086/40186.ic171 |
1989 | Tandy 1000SL/2 [5] 8086 at 9.54 MHz 512KB — 768KB RAM Built-in 16 colour graphics 4 voice sound |
tandy1000sl2/8079047.hu1 tandy1000sl2/8079048.hu2 |
1990 | Amstrad PC3086 [5] 8086 at 8 MHz 640KB RAM Built-in VGA |
pc3086/fc00.bin pc3086/c000.bin |
1991 | Amstrad PC5086 8086 at 8 MHz 640KB RAM |
pc5086/sys_rom.bin |
286 based
Release | Machine | ROM file needed (within ./roms/ folder) |
---|---|---|
1984 | IBM AT 286 at 6 or 8 MHz 256KB — 16MB RAM |
ibmat/at111585.0 ibmat/at111585.1 |
1986 | Compaq Portable II 286 at 8 MHz 256KB — 15MB RAM |
compaq_pii/109739-001.rom compaq_pii/109740-001.rom |
1986 | IBM XT Model 286 286 at 6 MHz 256KB — 16MB RAM |
ibmxt286/BIOS_5162_21APR86_U34_78X7460_27256.BIN ibmxt286/BIOS_5162_21APR86_U35_78X7461_27256.BIN |
1986 | Toshiba T3100e [1] [5] 286 at 12 MHz 1MB — 5MB RAM CGA on gas-plasma display |
t3100e/t3100e_font.bin t3100e/t3100e.rom |
1987 | IBM PS/2 Model 50 [5] 286 at 10 MHz 1MB — 16MB RAM Built-in VGA MCA bus |
i8550021/90×7420.zm13 i8550021/90×7423.zm14 i8550021/90×7426.zm16 i8550021/90×7429.zm18 |
1988 | Bull Micral 45 286 at 12 MHz 1MB — 6MB RAM |
bull_micral_45/even.fil bull_micral_45/odd.fil |
1988 | Commodore PC30-III 286 at 12 MHz 512KB — 16MB RAM |
cmdpc30/commodore pc 30 iii even.bin cmdpc30/commodore pc 30 iii odd.bin |
1988 | IBM PS/2 Model 30-286 286 at 10 MHz 1MB — 16MB RAM Built-in VGA MCA bus |
ibmps2_m30_286/33f5381a.bin |
1989 | Epson PC AX 286 256KB — 16MB RAM |
epson_pcax/EVAX epson_pcax/ODAX |
1989 | Epson PC AX2e 286 at 12 MHz 256KB — 16MB RAM |
epson_pcax2e/EVAX epson_pcax2e/ODAX |
1990 | AMI 286 clone 286 at 8+ MHz 512KB — 16MB RAM |
ami286/amic206.bin |
1990 | Award 286 clone 286 at 8+ MHz 512KB — 16MB RAM |
award286/award.bin |
1990 | Dell System 200 286 at 12 MHz 640KB — 16MB RAM |
dells200/dell0.bin dells200/dell1.bin |
1990 | IBM PS/1 Model 2011 [5] 286 at 10 MHz 512KB — 16MB RAM Built-in VGA DOS 4.01 + GUI menu system in ROM |
ibmps1/f80000.bin |
? | Goldstar GDC-212M 286 at 12 MHz 512KB — 4MB RAM |
gdc212m/gdc212m_72h.bin |
? | GW-286CT GEAR 286 at 8+ MHz 512KB — 16MB RAM |
gw286ct/2ctc001.bin |
? | Hyundai Super-286TR 286 at 12 MHz 1MB — 4MB RAM |
super286tr/award.bin |
? | Samsung SPC-4200P 286 at 12 MHz 512KB — 2MB RAM |
spc4200p/u8.01 |
? | Samsung SPC-4216P 286 at 12 MHz 1MB — 5MB RAM |
spc4216p/phoenix.bin or spc4216p/7101.u8 spc4216p/ac64.u10 |
? | Samsung SPC-4620P 286 at 12 MHz 1MB — 5MB RAM Built-in Korean ATI-28800 |
spc4620p/31005h.u8 spc4620p/31005h.u10 spc4620p/svb6120a_font.rom spc4620p/31005h.u8 spc4620p/31005h.u10 |
? | Tulip AT Compact 286 640KB — 16MB RAM |
tulip_tc7/tc7be.bin tulip_tc7/tc7bo.bin |
386 based
Release | Machine | ROM file needed (within ./roms/ folder) |
---|---|---|
1987 | IBM PS/2 Model 80 [5] 386DX at 20 MHz 1MB — 12MB RAM Built-in VGA MCA bus |
i8580111/15f6637.bin i8580111/15f6639.bin |
1988 | ECS 386/32 386DX at 20 MHz 1MB — 16MB RAM |
ecs386_32/386_32_even.bin ecs386_32/386_32_odd.bin |
1989 | IBM PS/2 Model 70 (type 3) [5] 386DX at 25 MHz 2MB — 16MB RAM Built-in VGA MCA bus |
ibmps2_m70_type3/70-a_even.bin ibmps2_m70_type3/70-a_odd.bin |
1989 | Compaq Deskpro 386 386DX at 20 MHz 1MB — 15MB RAM |
deskpro386/109592-005.u11.bin deskpro386/109591-005.u13.bin |
1989 | Epson PC AX3 386SX at 16 MHz 256KB — 16MB RAM |
epson_pcax3/EVAX3 epson_pcax3/ODAX3 |
1989 | IBM PS/2 Model 55SX 386SX at 16 MHz 1MB — 8MB RAM Built-in VGA MCA bus |
i8555081/33f8146.zm41 i8555081/33f8145.zm40 |
1990 | DTK 386SX clone 386SX 512KB — 16MB RAM |
dtk386/3cto001.bin |
1990 | IBM PS/1 Model 2121 [5] 386SX at 20 MHz 1MB — 16MB RAM Built-in VGA |
ibmps1_2121/fc0000.bin |
1990 | Samsung SPC-6000A 386DX 1MB — 32 MB RAM |
spc6000a/3c80.u27 spc6000a/9f80.u26 |
1992 | Acermate 386SX/25N [5] 386SX at 25 MHz 2MB — 16MB RAM Built-in Oak SVGA |
acer386/acer386.bin acer386/oti067.bin |
1992 | Amstrad MegaPC [2] [5] 386SX at 25 MHz 1MB — 16MB RAM Built-in VGA |
megapc/41651-bios lo.u18 megapc/211253-bios hi.u19 |
1992 | Commodore SL386SX-25 [5] 386SX at 25 MHz 1MB — 16MB RAM Built-in AVGA2 |
cbm_sl386sx25/f000.bin cbm_sl386sx25/c000.bin |
1992 | Packard Bell Legend 300SX 386SX at 16 MHz 1MB — 16MB RAM |
pb_l300sx/pb_l300sx.bin |
1992 | Samsung SPC-6033P 386SX at 33 MHz 2MB — 12 MB RAM |
spc6033p/phoenix.bin spc6033p/svb6120a_font.rom |
1994 | AMI 386DX clone 386DX at 40 MHz 1MB — 32MB RAM |
ami386dx/opt495sx.ami |
1994 | AMI 386SX clone 386SX at 25 MHz 1MB — 16MB RAM |
ami386/ami386.bin |
1994 | MR 386DX clone This is a generic 386DX clone with an MR BIOS |
mr386dx/opt495sx.mr |
? | KMX-C-02 386SX 512KB — 16MB RAM |
kmxc02/3ctm005.bin |
486 based
Release | Machine (+ addl. hardware) |
CPU(s) Supported | ROM file needed (within ./roms/ folder) |
---|---|---|---|
1990 | IBM PS/2 Model 70 (type 4) [3] 2MB — 16MB RAM Built-in VGA MCA bus |
486DX at 25 MHz | ibmps2_m70_type3/70-a_even.bin ibmps2_m70_type3/70-a_odd.bin |
1993 | AMI 486 clone 1MB — 32MB RAM |
486 at 16-66 MHz | ami486/ami486.bin |
1993 | Elonex PC-425X [5] 1MB — 256MB RAM Built-in Trident TGUI9440CXi |
486SX at 25 MHz | elx_pc425x/elx_pc425x.bin or elx_pc425x/elx_pc425x_bios.bin elx_pc425x/elx_pc425x_vbios.bin |
1993 | IBM PS/1 Model 2133 (EMEA 451) 2MB — 64MB RAM Built-in Cirrus Logic GD5426 |
486SX at 25 MHz | ibmps1_2133/PS1_2133_52G2974_ROM.bin |
1993 | Packard Bell PB410A [5] 1MB — 64MB RAM Built-in HT-216 video |
486 at 25-120 MHz Am5x86 at 133-160 MHz Cx5x86 at 100-133 MHz Pentium Overdrive at 63-83 MHz |
pb410a/PB410A.080337.4ABF.U25.bin |
1994 | AMI WinBIOS 486 clone 1MB — 32MB RAM |
486 at 16-66 MHz | win486/ali1429g.amw |
1995 | Award SiS 496/497 1MB — 64MB RAM |
486 at 16-120 MHz Am5x86 at 133-160 MHz Cx5x86 at 100-133 MHz Pentium Overdrive at 63-83 MHz |
sis496/sis496-1.awa |
Pentium based
Release | Machine (+ addl. hardware) |
CPU(s) Supported | ROM file needed (within ./roms/ folder) |
---|---|---|---|
1994 | Intel Premiere/PCI (Batman’s Revenge) 1MB — 128MB RAM |
Pentium at 60-66 MHz Pentium Overdrive at 120-133 MHz |
revenge/1009af2_.bi0 revenge/1009af2_.bi1 |
1995 | Intel Advanced/EV (Endeavor) [4] 1MB — 128MB RAM |
Pentium at 75-133 MHz Pentium Overdrive at 125-200 MHz |
endeavor/1006cb0_.bi0 endeavor/1006cb0_.bi1 |
1995 | Intel Advanced/ZP (Zappa) 1MB — 128MB RAM |
Pentium at 75-133 MHz Pentium Overdrive at 125-200 MHz |
zappa/1006bs0_.bio zappa/1006bs0_.bi1 |
1995 | Packard Bell PB520R (Robin LC) [5] 1MB — 128MB RAM Built-in Cirrus Logic GD-5434 |
Pentium at 60-66 MHz Pentium Overdrive at 120-133 MHz |
pb520r/1009bc0r.bio pb520r/1009bc0r.bi1 pb520r/gd5434.bin |
1995 | Packard Bell PB570 (Hillary) [5] 1MB — 128MB RAM Built-in Cirrus Logic GD-5430 |
Pentium at 75-133 MHz Pentium Overdrive at 125-200 MHz |
pb570/1007by0r.bio pb570/1007by0r.bi1 pb570/gd5430.bin |
1996 | ASUS P/I-P55TVP4 1MB — 128MB RAM |
Pentium at 75-200 MHz Pentium MMX at 166-233 MHz Mobile Pentium MMX at 120-300 MHz Cyrix 6×86 at PR90(80 MHz)-PR200(200 MHz) Cyrix 6x86MX/MII at PR166(133 MHz)-PR400(285 MHz) IDT WinChip at 75-240 MHz IDT Winchip 2 at 200-240 MHz IDT Winchip 2A at 200-233 MHz AMD K6 at 166-300 MHz AMD K6-2 (AFR-66) at 233-300 MHz |
p55tvp4/tv5i0204.awd |
1996 | ASUS P/I-P55T2P4 1MB — 512MB RAM |
Pentium at 75-200 MHz Pentium MMX at 166-233 MHz Mobile Pentium MMX at 120-300 MHz Cyrix 6×86 at PR90(80 MHz)-PR200(200 MHz) Cyrix 6x86MX/MII at PR166(133 MHz)-PR400(285 MHz) IDT WinChip at 75-240 MHz IDT Winchip 2 at 200-240 MHz IDT Winchip 2A at 200-233 MHz AMD K6 at 166-300 MHz AMD K6-2 (AFR-66) at 233-300 MHz |
p55t2p4/0207_j2.bin |
1996 | Award 430VX PCI 1MB — 128MB RAM |
Pentium at 75-200 MHz Pentium MMX at 166-233 MHz Mobile Pentium MMX at 120-300 MHz Cyrix 6×86 at PR90(80 MHz)-PR200(200 MHz) Cyrix 6x86MX/MII at PR166(133 MHz)-PR400(285 MHz) IDT WinChip at 75-240 MHz IDT Winchip 2 at 200-240 MHz IDT Winchip 2A at 200-233 MHz AMD K6 at 166-300 MHz AMD K6-2 (AFR-66) at 233-300 MHz |
430vx/55xwuq0e.bin |
1996 | Itautec Infoway Multimidia 8MB — 128MB RAM |
Pentium at 75-133 MHz Pentium Overdrive at 125-200 MHz |
infowaym/1006bs0_.bio infowaym/1006bs0_.bi1 |
1997 | Epox P55-VA 1MB — 128MB RAM |
Pentium at 75-200 MHz Pentium MMX at 166-233 MHz Mobile Pentium MMX at 120-300 MHz Cyrix 6×86 at PR90(80 MHz)-PR200(200 MHz) Cyrix 6x86MX/MII at PR166(133 MHz)-PR400(285 MHz) IDT WinChip at 75-240 MHz IDT Winchip 2 at 200-240 MHz IDT Winchip 2A at 200-233 MHz AMD K6 at 166-300 MHz AMD K6-2 (AFR-66) at 233-300 MHz |
p55va/va021297.bin |
Super Socket 7 based
Release | Machine (+ addl. hardware) |
CPU(s) Supported | ROM file needed (within ./roms/ folder) |
---|---|---|---|
1998 | FIC VA-503+ 1MB — 512MB RAM |
AMD K6 at 166-300 MHz AMD K6-2 at 233-550 MHz AMD K6-2+ at 450-550 MHz AMD K6-III at 400-450 MHz AMD K6-III+ at 400-500 MHz Pentium at 75-200 MHz Pentium MMX at 166-233 MHz Mobile Pentium MMX at 120-300 MHz Cyrix 6×86 at PR90(80 MHz)-PR200(200 MHz) Cyrix 6x86MX/MII at PR166(133 MHz)-PR400(285 MHz) IDT WinChip at 75-240 MHz IDT WinChip2 at 200-250 MHz IDT Winchip 2A at PR200(200 MHz)-PR300(250 MHz) |
fic_va503p/je4333.bin |
Socket 8 based
Release | Machine (+ addl. hardware) |
CPU(s) Supported | ROM file needed (within ./roms/ folder) |
---|---|---|---|
1996 | Intel VS440FX 8MB — 256 MB RAM |
Pentium Pro at 150-200 MHz Pentium II Overdrive at 300-333 MHz |
vs440fx/1018CS1_.BI1 vs440fx/1018CS1_.BI2 vs440fx/1018CS1_.BI3 vs440fx/1018CS1_.BIO vs440fx/1018CS1_.RCV |
Slot 1 based
Release | Machine (+ addl. hardware) |
CPU(s) Supported | ROM file needed (within ./roms/ folder) |
---|---|---|---|
1998 | Gigabyte GA-686BX 8MB — 512MB RAM |
Pentium II at 233-450 MHz Celeron at 266-533 MHz Cyrix IIIat 500 MHz |
ga686bx/6BX.F2a |
Additional Notes
[1]
Toshiba Button Mapping:
PCem maps [Fn] to right-Ctrl
and right-Alt
. The following functions are supported:
Key Combo | Function |
---|---|
Fn + Num Lock | toggle numpad |
Fn + Home | Internal LCD display |
Fn + Page Down | Turbo on |
Fn + Right | Toggle LCD font |
Fn + End | External CRT display |
Fn + SysRQ | Toggle window |
[2]
Amstrad MegaPC (386SX): The original machine had a built-in Sega MegaDrive. This is not emulated in PCem.
[3]
IBM PS/2 Model 70 (type 4) (486DX): PCem’s FPU emulation is not bit accurate and can not pass IBM’s floating point tests. As a result, this machine will always print 12903 and 162 errors on bootup. These can be ignored — F1 will boot the machine.
[4]
Intel Advanced/EV (Endeavor) (Pentium): The real board has a Sound Blaster 16 onboard and optionally an S3 Trio64V+. Neither are emulated as onboard devices.
[5]
Some systems have fixed graphics adapters:
** = Can use external video card.
System | Graphics | Addl. Info | ** |
---|---|---|---|
Amstrad MegaPC | Paradise 90C11 | A development of the PVGA1 with 512KB VRAM | ✔ |
Acer 386SX/25N | Oak OTI-067 | Another 512KB SVGA clone | ✔ |
Amstrad PC1512 | CGA | Has a new mode (640x200x16) | X |
Amstrad PC1640 | Paradise EGA | ✔ | |
Amstrad PC2086/PC3086 | Paradise PVGA1 | An early SVGA clone with 256KB VRAM | ✔ |
Amstrad PPC512/640 | CGA/MDA | Outputs to 640×200 plasma display | ✔ |
Commodore SL386SX-25 | AVGA2 | 256KB — 512KB VRAM | X |
Elonex PC-425X | Trident TGUI9400CXi | 512KB VRAM | X |
IBM PCjr | CGA | Has various new modes: 160×200 x 16 320×200 x 16 640×200 x 4 |
X |
IBM PS/1 Model 2011 | Stock VGA | 256KB VRAM | X |
IBM PS/1 Model 2121 | Basic (and unknown) SVGA | 256KB VRAM | X |
IBM PS/2 machines | Stock VGA | 256KB VRAM | X |
Olivetti M24 [6] | CGA | Has double-res text modes + 640×400 mode | X |
Packard Bell PB410A | Headland HT-216 | ✔ | |
Packard Bell PB520R | Cirrus Logic GD-5434 | ✔ | |
Packard Bell PB570 | Cirrus Logic GD-5430 | ✔ | |
Sinclair PC200 | CGA | Can output to TV @ 50hz (UK) | ✔ |
Tandy 1000 | Clone of PCjr video | Widely supported in 80s games | X |
Tandy 1000 SL/2 | Improved Tandy 1000 | Has support for 640x200x16 | X |
Toshiba T-series | CGA | Outputs to built-in LCD or plasma display | X |
[6]
Olivetti M24 (display): I haven’t seen a dump of the font ROM for this yet, so if one is not provided the MDA font will be used — which looks slightly odd as it is 14-line instead of 16-line.
Graphics Cards
Basic cards
Hardware | Addl. Info | ROM file needed (within ./roms/ folder) |
---|---|---|
MDA (1981) | 80×25 monochrome text | (none) |
CGA (1981) | 40×25 and 80×25 text 320×200 in 4 colours 620×200 in 2 colours Supports composite output for ~16 colours. |
(none) |
Hercules (1982) | 80×25 monochrome text 720×348 in monochrome |
(none) |
Plantronics ColorPlus | An enhanced CGA board with support for 320x200x16 and 640x200x4 | (none) |
Wyse WY-700 | A CGA-compatible board with support for a 1280×800 mode | (none) |
MDSI Genius | Mono portrait board with support for a 728×1008 mode | 8×12.bin |
IBM EGA (1984) | Text up to 80×43 Graphics up to 640×350 in 16 colours |
ibm_6277356_ega_card_u44_27128.bin |
ATI EGA Wonder 800+ | An enhanced EGA-compatible board with support for up to 800×600 in 16 colours | ATI EGA Wonder 800+ N1.00.BIN |
Hercules InColor | An enhanced Hercules with a custom 720×350 16 colour mode | (none) |
Unaccelerated (S)VGA cards
Hardware | Addl. Info | ROM file needed (within ./roms/ folder) |
---|---|---|
ATI Korean VGA | ATI-28800 based. 512KB VRAM Supports up to 8-bit colour Korean font support |
atikorvga.bin ati_ksc5601.rom |
ATI VGA Edge-16 | ATI-18800 based 512KB VRAM Supports up to 8-bit colour |
vgaedge16.vbi |
ATI VGA Charger | ATI-28800 based 512KB VRAM Supports up to 8-bit colour |
bios.bin |
AVGA2 | Also known as Cirrus Logic GD5402 256KB — 512KB VRAM Supports up to 8-bit colour |
avga2vram.vbi |
IBM VGA (1987) | 256KB VRAM Text up to 80×50 Graphics up to 320×200 in 256 colours or 640×480 in 16 colours |
ibm_vga.bin |
Kasan Hangulmadang-16 | ET4000AX based 1MB VRAM Supports up to 8-bit colour Korean font support |
et4000_kasan16.bin kasan_ksc5601.rom |
OAK OTI-037C | 256KB VRAM Supports up to 8-bit colour |
oti037/bios.bin |
OAK OTI-067 | 256KB — 512KB VRAM Supports up to 8-bit colour |
oti067/bios.bin |
Olivetti GO481 (Paradise PVGA1A) | 256KB VRAM Supports up to 8-bit colour |
oli_go481_lo.bin oli_go481_hi.bin |
Trident 8900D SVGA | 256KB — 1MB VRAM Supports up to 24-bit colour |
trident.bin |
Trident 9000B SVGA | 512KB VRAM Supports up to 8-bit colour |
tvga9000b/BIOS.BIN |
Trident TGUI9400CXi | 1MB — 2MB VRAM Supports up to 24-bit colour |
9440.vbi |
Trigem Korean VGA | ET4000AX based 1MB VRAM Supports up to 8-bit colour Korean font support |
tgkorvga.bin tg_ksc5601.rom |
Tseng ET4000AX SVGA | 1MB VRAM Supports up to 8-bit colour |
et4000.bin |
2D Accelerated SVGA cards
Hardware | Addl. Info | ROM file needed (within ./roms/ folder) |
---|---|---|
ATI Graphics Pro Turbo | Mach64GX based 1MB — 4MB VRAM |
mach64gx/bios.bin |
ATI Video Xpression | Mach64VT2 based 2MB — 4MB VRAM Has video acceleration |
atimach64vt2pci.bin |
Cirrus Logic GD-5428 | 1MB — 2MB VRAM | Machspeed_VGA_GUI_2100_VLB.vbi |
Cirrus Logic GD-5429 | 1MB — 2MB VRAM | 5429.vbi |
Cirrus Logic GD-5430 | 1MB — 2MB VRAM | gd5430/pci.bin |
Cirrus Logic GD-5434 [1] | 2MB — 4MB VRAM | gd5434.bin |
Diamond Stealth 32 SVGA | ET4000/W32p based 1MB — 2MB VRAM |
et4000w32.bin |
IBM 1MB SVGA Adapter/A | Cirrus Logic GD5428 based 1 MB VRAM Only supported on PS/2 models |
SVGA141.ROM |
Number Nine 9FX | S3 Trio64 based 1MB — 2MB VRAM |
s3_764.bin |
Paradise Bahamas 64 | S3 Vision864 based 1MB — 4MB VRAM |
bahamas64.bin |
Phoenix S3 Trio32 | S3 Trio32 based 512KB — 2MB VRAM |
86c732p.bin |
Phoenix S3 Trio64 | S3 Trio64 based 1MB — 4MB VRAM |
86c764x1.bin |
Trident TGUI9440 | 1MB — 2MB VRAM | 9440.vbi |
3D Accelerated SVGA cards
Hardware | Addl. Info | ROM file needed (within ./roms/ folder) |
---|---|---|
3DFX Voodoo Banshee (reference) | Voodoo Banshee based 8MB — 16MB VRAM |
pci_sg.rom |
3DFX Voodoo 3 2000 | Voodoo 3 based 16MB VRAM |
voodoo3_2000/2k11sd.rom |
3DFX Voodoo 3 3000 | Voodoo 3 based 16MB VRAM |
voodoo3_3000/3k12sd.rom |
Creative Labs 3D Blaster Banshee | Voodoo Banshee based 16MB VRAM |
blasterpci.rom |
Diamond Stealth 3D 2000 [2] | S3 ViRGE/325 based 2MB — 4MB VRAM |
s3virge.bin |
S3 ViRGE/DX [3] | S3 ViRGE/DX based 2MB — 4MB VRAM |
86c375_1.bin |
3D only cards
Hardware | Addl. Info |
---|---|
3DFX Voodoo Graphics [4] | 3D accelerator. Widely supported in late 90s games. |
Obsidian SB50 [5] | Voodoo with 2 TMUs |
3DFX Voodoo 2 [6] | Improved Voodoo Graphics Higher clocks 2 TMUs Triangle setup, etc. |
Additional Notes
[1]
Cirrus Logic GD-5434: Real chip also supports 1MB configurations, however this is not currently supported in PCem.
[2]
Diamond Stealth 3D 2000: PCem emulates the ViRGE S3D engine in software. This works with most games I tried, but there may be some issues. The Direct3D drivers for the /325 are fairly poor (often showing as missing triangles), so use of the /DX instead is recommended.
[3]
S3 ViRGE/DX: The drivers that come with Windows are similar to those for the /325, however better ones do exist (try the 8-21-1997 version). With the correct drivers, many early Direct3D games work okay (if slowly).
[4]
3DFX Voodoo Graphics: PCem emulates this in software. The emulation is a lot faster than in v10 (thanks to a new dynamic recompiler) and should be capable of hitting Voodoo 1 performance on most machines when two render threads are used. As before, the emulated CPU is the bottleneck for most games.
PCem can emulate 6 and 8 MB configurations, but defaults to 4 MB for compatibility. It can also emulate the screen filter present on the original card, though this does at present have a noticeable performance hit.
Almost everything I’ve tried works okay, with a very few exceptions — Screamer 2 and Rally have serious issues.
[5]
Obsidian SB50: Drivers for this are a bit limited — the official drivers don’t support 2 TMUs in Direct3D.
[6]
3DFX Voodoo 2: PCem can emulate both 8 and 12 MB configurations. It can also emulate 6 and 10 MB configurations (with 2MB framebuffer memory), which were never sold into the PC market but do exist for arcade systems.
Sound Cards
Hardware | Notes |
---|---|
PC speaker | The standard beeper on all PCs. Supports samples/RealSound. |
Tandy PSG | The Texas Instruments chip in the PCjr and Tandy 1000. Supports 3 voices plus noise. I reused the emulator in B-em for this (slightly modified). PCem emulates the differences between the SN76496 (PCjr and Tandy 1000), and the NCR8496 (currently assigned to the Tandy 1000HX). Maniac Mansion and Zak McKraken will only sound correct on the latter. |
Tandy PSSJ | Used on the Tandy 1000SL/2, this clones the NCR8496, adding an addition frequency divider (did any software actually use this?) and an 8-bit DAC. |
PS/1 audio card | An SN76496 clone plus an 8-bit DAC. The SN76496 isn’t at the same address as PCjr/Tandy, so most software doesn’t support it. |
Gameblaster | The Creative Labs Gameblaster/Creative Music System, Creative’s first sound card introduced in 1987. Has two Philips SAA1099, giving 12 voices of square waves plus 4 noise voices. In stereo! |
Adlib | Has a Yamaha YM3812, giving 9 voices of 2 op FM, or 6 voices plus a rhythm section. PCem uses the DOSBox dbopl emulator. |
Adlib Gold | OPL3 with YM318Z 12-bit digital section. Possibly some bugs (not a lot of software to test). The surround module is now emulated. |
Sound Blaster [1] | See linked note for more details. |
Gravis Ultrasound | 32 voice sample playback. Port address is fixed to 240, IRQ and DMA can be changed from the drivers. Emulation is improved significantly over previous versions. |
Windows Sound System | 16-bit digital + OPL3. Note that this only emulates WSS itself, and should not be used with drivers from compatible boards with additional components (eg Turtle Beach Monte Carlo) |
Aztech Sound Galaxy Pro 16 AB (Washington) | SB compatible + WSS compatible |
Innovation SSI-2001 | SID6581. Emulated using resid-fp. Board is fixed to port 280. |
Ensoniq AudioPCI (ES1371) Sound Blaster PCI 128 |
Basic PCI sound card. Emulates Sound Blaster in software. |
Additional Notes
[1]
Sound Blaster: Several Sound Blasters are emulated.
- SB v1.0 — The original. Limited to 22khz, and no auto-init DMA (can cause crackles sometimes).
- SB v1.5 — Adds auto-init DMA
- SB v2.0 — Upped to 41khz
- SB Pro v1.0 — Stereo with twin OPL2 chips.
- SB Pro v2.0 — Stereo with OPL 3 chip
- SB 16 — 16 bit stereo
- SB AWE32 — SB 16 + wavetable MIDI. This requires a ROM dump from a real AWE32.
All cards are set to Address 220, IRQ 7 and DMA 1 (and High DMA 5). IRQ and DMA can be changed for the SB16 & AWE32 in the drivers. The relevant SET line for autoexec.bat is SET BLASTER = A220 I7 D1 Tx
— where Tx is T1 for SB v1.0, T3 for SB v2.0, T4 for SB Pro, and T6 for SB16.
AWE32 requires a ROM dump called awe32.raw
. AWE-DUMP is a utility which can get a dump from a real card. Most EMU8000 functionality should work, however filters are not correct and reverb/chorus effects are not currently emulated.
HDD Controller Cards
Int. | Hardware | Notes | ROM file needed (within ./roms/ folder) |
---|---|---|---|
MFM | Fixed Disk Adapter (Xebec) | MFM controller originally included in the IBM XT. This controller only supports HD types 0, 2, 13, and 16. | ibm_xebec_62x0822_1985.bin |
MFM | DTC 5150X | 8-bit MFM controller. To configure drive types, run DEBUG.EXE and enter g=c800:5 . |
dtc_cxd21a.bin |
MFM | AT Fixed Disk Adapter | MFM controller originally included in the IBM AT. Supported by all AT-compatible BIOSes. | (none) |
ESDI | Western Digital WD1007V-SE1 | 16-bit ESDI controller | 62-000279-061.bin |
ESDI | IBM ESDI Fixed Disk Controller | MCA ESDI controller. Only supported on PS/2 models. | 90×8969.bin 90×8970.bin |
IDE | Standard IDE | Standard IDE controller. Supported by all AT-compatible BIOSes. Use this if in any doubt! | (none) |
IDE | XTIDE | 8-bit IDE controller. The BIOS is available here. v2.0.0 beta 1 is the version I’ve mostly tested. v2.0.0 beta 3 is known to have some issues. |
ide_xt.bin |
IDE | XTIDE (AT) | 16-bit IDE controller. | ide_at.bin |
IDE | XTIDE (PS/1) | IDE controller for the PS/1 model 2033. For this machine you will need BIOS version v1.1.5. The PS/1 is a bit fussy with XTIDE, and I’ve found that it works best when the XTIDE configuration has ‘Full Operating Mode’ disabled. | ide_at_1_1_5.bin |
SCSI | Longshine LCS-6821N | 8-bit SCSI controller. | Longshine LCS-6821N — BIOS version 1.04.bin |
SCSI | Rancho RT1000B | 8-bit SCSI controller. | Rancho_RT1000_RTBios_version_8.10R.bin |
SCSI | Trantor T130B | 8-bit SCSI controller. | trantor_t130b_bios_v2.14.bin |
SCSI | IBM SCSI Adapter with Cache | MCA SCSI controller. Only supported on PS/2 models. | 92F2244.U68 92F2245.U69 |
SCSI | Adaptec AHA-1542C | 16-bit SCSI controller. | adaptec_aha1542c_bios_534201-00.bin |
SCSI | BusLogic BT-545S | 16-bit SCSI controller. | BusLogic_BT-545S_U15_27128_5002026-4.50.bin |
Misc Cards
Hardware | Note |
---|---|
Serial mouse | A Microsoft compatible serial mouse on COM1. Compatible drivers are all over the place for this. |
M24 mouse | I haven’t seen a DOS mouse driver for this yet but the regular scancode mode works as does the Windows 1.x driver. |
PC1512 mouse | The PC1512’s perculiar quadrature mouse. You need Amstrad’s actual driver for this one. |
PS/2 mouse | A standard 2 button PS/2 mouse. As with serial, compatible drivers are common. |
Microsoft PS/2 Intellimouse | A PS/2 mouse with mouse wheel. |
ATAPI CD-ROM | Works with OAKCDROM.SYS, VDD-IDE.SYS, and the internal drivers of every OS I’ve tried. |
В эпоху стремительного развития технологий ностальгия по старым компьютерам и играм 1980-х и 1990-х годов остаётся сильной. Однако запуск старых программ на современных системах часто невозможен из-за несовместимости оборудования и операционных систем. Эмулятор PCem решает эту проблему, позволяя воссоздать персональные компьютеры эпохи XT, 486 и Pentium с точной эмуляцией процессоров, видеокарт и звуковых карт. PCem — это не просто эмулятор, а настоящая машина времени, которая переносит пользователей в эпоху MS-DOS, Windows 95 и культовых игр, таких как Doom или Unreal. В этой статье мы разберём, что такое PCem, как он работает, какие проекты можно реализовать, и приведём пример настройки для запуска Windows 98 с игрой. Если вы хотите вновь услышать звуки Sound Blaster или увидеть пиксельную графику Voodoo, PCem — ваш билет в прошлое.
PCem (Personal Computer emulator) — это открытый низкоуровневый эмулятор персональных компьютеров, разработанный Сарой Уокер (Sarah Walker) для Windows и Linux. Впервые выпущенный в 2007 году, он фокусируется на эмуляции ПК 1980-х и 1990-х годов, включая процессоры от Intel 8088 до Pentium II, а также широкий спектр видеокарт, звуковых карт и периферийных устройств. PCem отличается высокой точностью эмуляции, воспроизводя поведение реального оборудования, что делает его идеальным для запуска старых операционных систем (MS-DOS, Windows 3.1, Windows 98) и программ, которые зависят от специфического железа.
Основные характеристики
- Эмулируемые процессоры: Intel 8088/8086, 286, 386, 486, Pentium, Pentium Pro, Pentium II, а также AMD K5/K6, Cyrix 6×86 и IDT WinChip.
- Видеокарты: IBM CGA/EGA/VGA, S3 ViRGE, 3DFX Voodoo (1, 2, Banshee, Voodoo 3 2000/3000), Cirrus Logic, ATI и другие.
- Звуковые карты: Sound Blaster (1.0, 16, AWE32), AdLib, Gravis Ultrasound, ESS AudioDrive, Yamaha OPL3 и даже SID6581.
- Частотный диапазон: Поддержка машин от IBM PC/XT (1981) до Socket 7 (конец 1990-х).
- Операционные системы: MS-DOS, Windows (3.1, 95, 98, NT 4.0), OS/2, BeOS, Linux и даже ранние версии Apple Rhapsody.
- Периферия: Эмуляция флоппи-дисководов (3.5″ и 5.25″), жёстких дисков, CD-ROM, сетевых карт (SLiRP) и мыши/джойстика.
- Динамический рекомпилятор: Ускоряет эмуляцию процессоров и 3DFX Voodoo, обеспечивая прирост скорости до 3–4 раз.
- Открытый исходный код: Доступен на GitHub, хотя развитие замедлилось после 2021 года.
PCem требует BIOS-файлы для эмулируемых машин, которые пользователь должен найти самостоятельно (некоторые, например XT BIOS, распространяются свободно). Последняя версия — v17 (2021), доступная на pcem-emulator.co.uk.
Принципы работы
PCem — это низкоуровневый эмулятор, который воспроизводит работу аппаратного обеспечения, а не просто эмулирует программное окружение, как DOSBox. Его работа включает:
- Эмуляция процессора: PCem точно моделирует поведение процессоров, включая инструкции MMX и RDTSC, что важно для игр 1990-х годов.
- Эмуляция периферии: Видеокарты, звуковые карты и дисководы эмулируются с учётом их реальных характеристик, таких как частота кадров или качество звука.
- BIOS и загрузка: Пользователь устанавливает BIOS, соответствующий эмулируемой машине, после чего загружает операционную систему с дискеты или CD.
- Динамическая рекомпиляция: Переводит код x86 в машинный код хоста, ускоряя эмуляцию, особенно для Voodoo и Pentium II.
PCem требует мощного процессора хоста (рекомендуется 4 ГГц на ядро), так как эмуляция сложных систем, таких как Pentium II 333 МГц, нагружает даже современные ПК. Для управления мышью используется захват курсора (освобождение — Ctrl+End).
Возможности и проекты
PCem открывает множество возможностей для ретро-энтузиастов, геймеров и исследователей. Вот несколько идей проектов:
1. Ретро-гейминг
PCem позволяет запускать классические игры, такие как Doom, Quake, Unreal или Star Trek: Voyager – Elite Force, с аутентичной графикой и звуком. Эмуляция 3DFX Voodoo обеспечивает поддержку Glide API, недоступного на современных системах. Например, настройка Pentium 233 МГц с Voodoo 3 и Sound Blaster 16 идеальна для игр 1998 года.
2. Эмуляция рабочих станций
Установите Windows NT 4.0 или OS/2 на эмулируемую машину с процессором 486 для воссоздания рабочих станций 1990-х. Это полезно для тестирования старого ПО, например, AutoCAD или Lotus 1-2-3.
3. Обучение и исследование
PCem — отличный инструмент для изучения истории ПК. Настройте IBM PC/XT с CGA-дисплеем и MS-DOS 3.3, чтобы понять, как работали компьютеры 1980-х. Эмуляция Tandy 1000 с чипом SN76496 позволяет исследовать уникальные звуковые возможности.
4. Тестирование кибербезопасности
Специалисты могут использовать PCem для запуска старых ОС (например, Windows 95) и анализа уязвимостей, характерных для того времени, в безопасной среде.
5. Эксперименты с нестандартными системами
PCem поддерживает редкие конфигурации, такие как 6 МБ Voodoo для аркадных систем или корейские видеокарты (Kasan Hangulmadang-16). Это позволяет создавать уникальные виртуальные машины.
Ограничения и рекомендации
- Ограничения:
- Высокие требования к процессору: эмуляция Pentium II требует мощного одноядерного процессора (4 ГГц и выше).
- Необходимость BIOS-файлов: Пользователь должен найти подходящие ROM-файлы, что может быть юридически сложным.
- Полудуплексная эмуляция: PCem не поддерживает одновременную работу некоторых устройств (например, сложные сетевые сценарии).
- Замедленное развитие: После ухода Сары Уокер в 2021 году проект поддерживается ограниченным числом разработчиков.
- Ошибки совместимости: Некоторые игры (например, Screamer 2) или ОС (OS/2 с fdisk) имеют проблемы.
- Рекомендации:
- Используйте образы дисков вместо физических CD для повышения производительности.
- Установите DirectX 9 для Windows или соответствующие библиотеки для Linux.
- Для Pentium II и Voodoo 3 ограничьте количество рендер-потоков до двух.
- Изучите форумы VOGONS и Reddit для поиска BIOS и конфигураций.
- Если производительность низкая, попробуйте более лёгкие конфигурации (например, Pentium 166 MMX вместо Pentium II).
Пример проекта: Запуск Windows 98 с игрой Doom
Давайте создадим проект, в котором PCem эмулирует ПК 1998 года с Windows 98 и запускает shareware-версию Doom. Это простой способ познакомиться с эмулятором.
Что понадобится
- ПК: Windows 10/11 или Linux, процессор 4 ГГц+, 4 ГБ ОЗУ.
- PCem: Версия v17 (pcem-emulator.co.uk).
- BIOS-файлы: Award 430VX (Shuttle HOT-557) и необходимые ROM для видеокарты/звуковой карты.
- Образы дисков: Windows 98 ISO, загрузочная дискета MS-DOS, shareware Doom (доступен на archive.org).
- Инструменты: WinImage для создания дискет, 7-Zip для распаковки.
Настройка
- Установите PCem:
- Скачайте PCem v17 для Windows или Linux.
- Распакуйте в папку, например,
C:\PCem
. - Создайте папку
roms
вC:\PCem
и скопируйте BIOS-файлы (например, Award 430VX).
- Создайте виртуальный диск:
- В PCem откройте меню Disc → Configure hard disks → New.
- Укажите путь (
C:\PCem\hdd\win98.img
), размер 8 ГБ, цилиндры 16383, головки 16, сектора 63.
- Настройте машину:
- Откройте Settings → Configure.
- Установите:
- Machine: [Socket 7] Shuttle HOT-557.
- CPU: Pentium 233 MMX.
- Memory: 128 МБ.
- Video: S3 ViRGE/DX.
- Sound: Sound Blaster 16.
- Voodoo: 3DFX Voodoo (4 МБ, 2 render threads).
- Drives: CD-ROM (пустой), Floppy 3.5″ 1.44 МБ.
- Установите Windows 98:
- Загрузите образ загрузочной дискеты MS-DOS в Disc → Floppy 0.
- Перезагрузите эмулятор (Ctrl+Alt+Del).
- В BIOS (нажмите Del) установите Primary Master: Auto, остальные: None.
- Отформатируйте диск:
fdisk
, затемformat c:
. - Загрузите Windows 98 ISO в Disc → CD.
- Запустите установку:
d:\setup.exe
.
- Установите драйверы:
- После установки Windows установите драйверы для S3 ViRGE/DX и Voodoo (доступны на VOGONS или в интернете).
- Установите Sound Blaster 16 драйверы с диска Windows 98.
- Установите Doom:
- Скопируйте shareware Doom (файл
doom1.wad
) на виртуальный диск через образ дискеты. - Запустите
doom.exe
из Windows 98.
- Скопируйте shareware Doom (файл
Результат
После настройки вы получите виртуальный ПК 1998 года с Windows 98, где Doom работает с аутентичным звуком Sound Blaster и графикой S3 ViRGE. Для управления используйте захват мыши (Ctrl+End для освобождения). Это базовый проект, который можно расширить, добавив Quake или другие игры с поддержкой Voodoo.
Заключение
PCem — это уникальный эмулятор, который позволяет оживить компьютеры 1980-х и 1990-х годов с невероятной точностью. От запуска Doom на 486 до эмуляции Pentium II с Voodoo 3 для Unreal, PCem открывает двери в эпоху, когда каждый мегагерц был на счету. Несмотря на высокие требования к процессору и необходимость BIOS-файлов, эмулятор остаётся лучшим выбором для ретро-гейминга и изучения истории ПК. Наш пример с Windows 98 и Doom — лишь начало: попробуйте установить OS/2, настроить Tandy 1000 или запустить Windows NT с AutoCAD. Изучите документацию на pcem-emulator.co.uk, присоединяйтесь к сообществам на VOGONS и Reddit, и погрузитесь в цифровое прошлое. С PCem ретро-компьютеры никогда не устареют.