PCem: различия между версиями
м (пунктуация) |
RaymanM (обсуждение | вклад) м |
||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 4: | Строка 4: | ||
| другое название = | | другое название = | ||
| разработчик = Sarah Walker | | разработчик = Sarah Walker | ||
− | | последняя версия = | + | | последняя версия = v17 (01.12.2020) |
| состояние = В разработке | | состояние = В разработке | ||
| платформы = [[Windows]]/[[Linux]] | | платформы = [[Windows]]/[[Linux]] | ||
Строка 12: | Строка 12: | ||
}} | }} | ||
− | '''PCem''' — это эмулятор персонального компьютера на уровне регистров аппаратного обеспечения. Методы эмуляции: бинарная трансляция и динамическая рекомпиляция. Эмулируются шины ISA, PCI и оборудование с ними связанное. С полным перечнем последнего можно ознакомиться на [http://pcem-emulator.co.uk/status.html сайте разработчика] или в сопроводительном readme.txt эмулятора. Эмуляция на уровне регистров позволяет прозрачное исполнение программ, написанных для соответствующего железа. Другими словами, патчи и модификации не нужны — все совместимое программное обеспечение (ПО) запускается и работает в оригинальном виде и качестве. Это огромный плюс, а теперь о минусах: | + | '''PCem''' — это эмулятор персонального компьютера на уровне регистров аппаратного обеспечения. Методы эмуляции: бинарная трансляция и динамическая рекомпиляция. Эмулируются шины [[ISA]], [[PCI]] и оборудование с ними связанное. С полным перечнем последнего можно ознакомиться на [http://pcem-emulator.co.uk/status.html сайте разработчика] или в сопроводительном readme.txt эмулятора. Эмуляция на уровне регистров позволяет прозрачное исполнение программ, написанных для соответствующего железа. Другими словами, патчи и модификации не нужны — все совместимое программное обеспечение (ПО) запускается и работает в оригинальном виде и качестве. Это огромный плюс, а теперь о минусах: |
− | # Настоящее железо часто имеет на борту микропрограмму (прошивку, биос, ром — названий много) обеспечивающую функционирование железяки. Эмуляция на уровне регистров, как очень близкая к настоящему железу, также требует использования прошивок для соответствующего оборудования. Из-за политики разработчиков PCem прошивки с ним не поставляются, а их обретение перекладывается на плечи пользователей; | + | # Настоящее железо часто имеет на борту микропрограмму, (прошивку, биос, ром — названий много) обеспечивающую функционирование железяки. Эмуляция на уровне регистров, как очень близкая к настоящему железу, также требует использования прошивок для соответствующего оборудования. Из-за политики разработчиков PCem прошивки с ним не поставляются, а их обретение перекладывается на плечи пользователей; |
− | # Точная эмуляция железа на регистровом уровне | + | # Точная эмуляция железа на регистровом уровне довольно сложна, поскольку производители железяк, драйверов и прочего ПО часто отклонялись от своих же дизайн-документов и, само собой, допускали ошибки. Это приводит к забавным ситуациям, когда реализованный точно по спецификации модуль эмуляции какого-либо железа не работает со своей же прошивкой или использующее его ПО глючит; |
# В силу предыдущего пункта, эмуляция железа на регистровом уровне очень ресурсоемкая, особенно с учетом применяемых методов. Из-за этого разработчикам приходится вводить различные хаки и оптимизации, часто жертвуя точностью эмуляции. Данное обстоятельство сильно усложняет жизнь при отлавливании багов и глюков, поскольку не всегда понятно: является ли данный конкретный баг оригинальным поведением соответствующего железа с соответствующей программой или же глюком именно эмулятора. | # В силу предыдущего пункта, эмуляция железа на регистровом уровне очень ресурсоемкая, особенно с учетом применяемых методов. Из-за этого разработчикам приходится вводить различные хаки и оптимизации, часто жертвуя точностью эмуляции. Данное обстоятельство сильно усложняет жизнь при отлавливании багов и глюков, поскольку не всегда понятно: является ли данный конкретный баг оригинальным поведением соответствующего железа с соответствующей программой или же глюком именно эмулятора. | ||
− | |||
== История разработки == | == История разработки == | ||
+ | Первая версия эмулятора PCem (v0.1) увидела свет 15 августа 2007 года. Тогда он был способен на базовую эмуляцию [[IBM PC XT]] с [[MDA]]/[[CGA]] графикой и дискетами. Главный разработчик проекта PCem уже имел опыт разработки эмуляторов восьмибитных компьютеров, поэтому работа шла быстро. Осенью того же года эмулятор вышел на уровень [[IBM PC AT]] с [[EGA]]/[[VGA]]-графикой, [[Sound Blaster]]-звуком и поддержкой жестких дисков. Дальнейшее развитие было не таким быстрым и совершенно не ритмичным, но проект постоянно двигался вперед, обрастая возможностями, перенимая некоторые наработки других эмуляторов ([[DOSBox]], [[Bochs]], [[QEMU]] и др.) и повышая достоверность эмуляции. | ||
− | + | 24 октября 2015 года в PCem v10 появилась поддержка процессоров класса [[Pentium]], шины PCI и соответствующих устройств, в том числе 3dfx [[Voodoo]]. С этого момента сообщество PCem стало прирастать ускоренными темпами, а многие пользователи стали всерьез рассматривать PCem в качестве универсального инструмента для запуска старых игр. Обратили внимание на данный проект и сторонние независимые разработчики, многие из которых не только внесли свой вклад в код PCem, но и предложили несколько ответвлений (форков) со своими особенностями. | |
− | + | С тех пор обновления не носят прорывной характер: помимо исправлений, лишь расширяется список эмулируемых устройств и повышается качество эмуляции. Регулярность выхода новых версий составляет, приблизительно, полгода. | |
− | С тех пор | ||
== Возможности == | == Возможности == | ||
Строка 35: | Строка 34: | ||
* IBM PC-совместимые на базе процессора Pentium или аналогов. | * IBM PC-совместимые на базе процессора Pentium или аналогов. | ||
− | В качестве графического адаптера можно выбирать из целого ряда MDA/CGA/EGA/VGA-совместимых видеокарт с учетом шины, поддерживаемой платформой (ISA, VLB или PCI). Отдельного упоминания заслуживает S3 Virge, для которого реализована поддержка Direct3D и S3D API. В платформы с поддержкой PCI-шины можно дополнительно подключить 3dfx Voodoo/Voodoo2 или даже SLI. | + | В качестве графического адаптера можно выбирать из целого ряда MDA/CGA/EGA/VGA-совместимых видеокарт с учетом шины, поддерживаемой платформой (ISA, VLB или PCI). Отдельного упоминания заслуживает [[S3 Virge]], для которого реализована поддержка Direct3D и S3D API. В платформы с поддержкой PCI-шины можно дополнительно подключить 3dfx Voodoo/Voodoo2 или даже SLI. |
− | Среди звуковых карт | + | Среди звуковых карт к выбору доступны многочисленные творения Creative (от C/MS до Sound Blaster PCI 128), [[Gravis Ultrasound]], [[Innovation SSI-2001]], [[Adlib]]/[[Adlib Gold]] или [[Windows Sound System]]-кодек. [[COVOX]], [[Disney Sound Source]], [[Tandy]] и [[PC Speaker]] также поддерживаются. |
− | Виртуальные жесткие диски создаются в виде файлов формата RAW. Поддерживаются контроллеры MFM/ESDI/IDE/SCSI. Что касается работы со сменными носителями, то эмулируются дисководы для дискет 5.25" и 3.5" (формат .img, .ima и .fdi), Iomega Zip Drive и CD-ROM (формат .iso и .cue, или проброс реального привода). Работа с DVD в настоящее время не поддерживается. | + | Виртуальные жесткие диски создаются в виде файлов формата RAW. Поддерживаются контроллеры MFM/ESDI/IDE/SCSI. Что касается работы со сменными носителями, то эмулируются дисководы для дискет 5.25" и 3.5" (формат .img, .ima и .fdi), [[Iomega Zip Drive]] и [[CD-ROM]] (формат .iso и .cue, или проброс реального привода). Работа с DVD в настоящее время не поддерживается. |
− | Поддерживается эмуляция PS/2 или Serial-мыши, а к виртуальному Game Port можно подключить джойстик хоста, при его наличии. | + | Поддерживается эмуляция [[PS/2]] или Serial-мыши, а к виртуальному [[Game Port]] можно подключить джойстик хоста, при его наличии. |
Наличие эмуляции сетевой карты позволяет объединить в сеть хост и эмулируемый компьютер используя механизмы PCAP или SLiRP. | Наличие эмуляции сетевой карты позволяет объединить в сеть хост и эмулируемый компьютер используя механизмы PCAP или SLiRP. | ||
Строка 47: | Строка 46: | ||
== Связанные проекты == | == Связанные проекты == | ||
− | * [[86Box]] [http://ci.86box.net/job/86Box | + | * [[86Box]] [http://ci.86box.net/job/86Box (страница проекта)] |
− | * [[VARCem]] [https://www.varcem.com | + | * [[VARCem]] [https://www.varcem.com (страница проекта)] |
== Ссылки == | == Ссылки == | ||
Строка 57: | Строка 56: | ||
{{Связанные статьи эмуляторов|PCem}} | {{Связанные статьи эмуляторов|PCem}} | ||
− | |||
[[Категория:Эмуляторы]] | [[Категория:Эмуляторы]] |
Текущая версия на 12:10, 15 декабря 2020
PCem | |
---|---|
Разработчик | Sarah Walker |
Разработчики | {{{разработчики}}} |
Последняя версия | v17 (01.12.2020) |
Состояние | В разработке |
Платформы | Windows/Linux |
Список эмулируемых компьютеров | IBM PC |
Лицензия | GNU GPL ver.2 |
pcem-emulator.co.uk |
PCem — это эмулятор персонального компьютера на уровне регистров аппаратного обеспечения. Методы эмуляции: бинарная трансляция и динамическая рекомпиляция. Эмулируются шины ISA, PCI и оборудование с ними связанное. С полным перечнем последнего можно ознакомиться на сайте разработчика или в сопроводительном readme.txt эмулятора. Эмуляция на уровне регистров позволяет прозрачное исполнение программ, написанных для соответствующего железа. Другими словами, патчи и модификации не нужны — все совместимое программное обеспечение (ПО) запускается и работает в оригинальном виде и качестве. Это огромный плюс, а теперь о минусах:
- Настоящее железо часто имеет на борту микропрограмму, (прошивку, биос, ром — названий много) обеспечивающую функционирование железяки. Эмуляция на уровне регистров, как очень близкая к настоящему железу, также требует использования прошивок для соответствующего оборудования. Из-за политики разработчиков PCem прошивки с ним не поставляются, а их обретение перекладывается на плечи пользователей;
- Точная эмуляция железа на регистровом уровне довольно сложна, поскольку производители железяк, драйверов и прочего ПО часто отклонялись от своих же дизайн-документов и, само собой, допускали ошибки. Это приводит к забавным ситуациям, когда реализованный точно по спецификации модуль эмуляции какого-либо железа не работает со своей же прошивкой или использующее его ПО глючит;
- В силу предыдущего пункта, эмуляция железа на регистровом уровне очень ресурсоемкая, особенно с учетом применяемых методов. Из-за этого разработчикам приходится вводить различные хаки и оптимизации, часто жертвуя точностью эмуляции. Данное обстоятельство сильно усложняет жизнь при отлавливании багов и глюков, поскольку не всегда понятно: является ли данный конкретный баг оригинальным поведением соответствующего железа с соответствующей программой или же глюком именно эмулятора.
История разработки
Первая версия эмулятора PCem (v0.1) увидела свет 15 августа 2007 года. Тогда он был способен на базовую эмуляцию IBM PC XT с MDA/CGA графикой и дискетами. Главный разработчик проекта PCem уже имел опыт разработки эмуляторов восьмибитных компьютеров, поэтому работа шла быстро. Осенью того же года эмулятор вышел на уровень IBM PC AT с EGA/VGA-графикой, Sound Blaster-звуком и поддержкой жестких дисков. Дальнейшее развитие было не таким быстрым и совершенно не ритмичным, но проект постоянно двигался вперед, обрастая возможностями, перенимая некоторые наработки других эмуляторов (DOSBox, Bochs, QEMU и др.) и повышая достоверность эмуляции.
24 октября 2015 года в PCem v10 появилась поддержка процессоров класса Pentium, шины PCI и соответствующих устройств, в том числе 3dfx Voodoo. С этого момента сообщество PCem стало прирастать ускоренными темпами, а многие пользователи стали всерьез рассматривать PCem в качестве универсального инструмента для запуска старых игр. Обратили внимание на данный проект и сторонние независимые разработчики, многие из которых не только внесли свой вклад в код PCem, но и предложили несколько ответвлений (форков) со своими особенностями.
С тех пор обновления не носят прорывной характер: помимо исправлений, лишь расширяется список эмулируемых устройств и повышается качество эмуляции. Регулярность выхода новых версий составляет, приблизительно, полгода.
Возможности
В настоящее время PCem v14 поддерживает эмуляцию следующих платформ:
- IBM PC XT и совместимые на базе процессора i8088 или i8086 (IBM PCjr, Tandy и др.);
- IBM PC AT и совместимые на базе процессора i80286 или аналогов;
- IBM PS/2 с шиной MCA;
- IBM PC-совместимые на базе процессора i80386 или аналогов;
- IBM PC-совместимые на базе процессора i80486 или аналогов;
- IBM PC-совместимые на базе процессора Pentium или аналогов.
В качестве графического адаптера можно выбирать из целого ряда MDA/CGA/EGA/VGA-совместимых видеокарт с учетом шины, поддерживаемой платформой (ISA, VLB или PCI). Отдельного упоминания заслуживает S3 Virge, для которого реализована поддержка Direct3D и S3D API. В платформы с поддержкой PCI-шины можно дополнительно подключить 3dfx Voodoo/Voodoo2 или даже SLI.
Среди звуковых карт к выбору доступны многочисленные творения Creative (от C/MS до Sound Blaster PCI 128), Gravis Ultrasound, Innovation SSI-2001, Adlib/Adlib Gold или Windows Sound System-кодек. COVOX, Disney Sound Source, Tandy и PC Speaker также поддерживаются.
Виртуальные жесткие диски создаются в виде файлов формата RAW. Поддерживаются контроллеры MFM/ESDI/IDE/SCSI. Что касается работы со сменными носителями, то эмулируются дисководы для дискет 5.25" и 3.5" (формат .img, .ima и .fdi), Iomega Zip Drive и CD-ROM (формат .iso и .cue, или проброс реального привода). Работа с DVD в настоящее время не поддерживается.
Поддерживается эмуляция PS/2 или Serial-мыши, а к виртуальному Game Port можно подключить джойстик хоста, при его наличии.
Наличие эмуляции сетевой карты позволяет объединить в сеть хост и эмулируемый компьютер используя механизмы PCAP или SLiRP.