PCem

PCem
Deweloperzy Michael Manley (w tym współpracownicy)
Pierwsze wydanie 15 sierpnia 2007 ; 15 lat temu ( 15.08.2007 )
Wersja stabilna
17 / 1 grudnia 2020 ; 2 lata temu ( 2020-12-01 )
Magazyn github.com / sarah-walker-pcem /pcem /
Napisane w C , C++
System operacyjny Microsoft Windows , Linux
Typ Maszyna wirtualna , emulator
Licencja GNU GPL wersja 2
Strona internetowa pcem-emulator .co .uk /index .html

PCem (skrót od PC Emulator) to emulator IBM PC dla systemów Windows i Linux, który specjalizuje się w uruchamianiu starych systemów operacyjnych i oprogramowania zaprojektowanego dla kompatybilności z IBM PC. Pierwotnie opracowany jako IBM PC XT , później dodał obsługę innych komputerów kompatybilnych z IBM PC.

widelec znany jako 86Box , który zawiera szereg dodatkowych funkcji, takich jak obsługa SCSI i dodatkowych kart.

14 czerwca 2021 roku główny programista Sarah Walker ogłosiła odejście z projektu. Nowy opiekun, Michael Manley, został wyznaczony 18 grudnia 2021 r. W okresie przejściowym bez opiekuna fora projektu były zamknięte.

Cechy

Sprzęt komputerowy

PCem jest w stanie emulować procesory Intel (i ich klony, w tym AMD , IDT i Cyrix ) od Intel 8088 do procesorów Pentium Tillamook MMX /Mobile MMX od 1997 do 1999. W wersji 10.1 dodano rekompilator, który jest obowiązkowy dla Procesory P5 Pentium i Cyrix oraz opcjonalnie dla procesorów i486 i procesorów IDT WinChip . Jednak do pełnej szybkości emulacji potrzebny jest dość szybki procesor (taki jak Intel Core i5 przy 4 GHz). Jednak obecny twórca PCem ma główną obawę, że rekompilator nie jest jeszcze wystarczająco szybki, aby emulować procesory Intel Pentium Pro/Pentium II.

PCem emuluje różne systemy / płyty główne kompatybilne z IBM PC od 1981 do 1996, w tym prawie wszystkie modele IBM PC (w tym IBM PS / 1 model 2121 i IBM PS / 2 model 2011), niektóre klony BIOS-u American Megatrends (od 1989 do 1994 ), systemy Award BIOS (klon Award 286, Award SiS 496/497 i Award 430VX PCI) oraz płyty główne Intel Premiere/PCI i Intel Advanced/EV. Jednak nieoficjalne wersje PCem (PCem-X i PCem-unofficial) obsługują również systemy / płyty główne kompatybilne z IBM PC (od 1996 do 2000), które obsługują procesory Intel Pentium Pro / Pentium II. PCem symuluje pamięć podręczną systemu BIOS, która opiera się na procesorze, a nie na pamięci systemowej.

PCem może emulować różne tryby graficzne, w tym tryb tekstowy , Hercules , CGA (w tym niektóre tryby kompozytowe i ulepszone tryby 160 × 100 × 16), Tandy , EGA , VGA (w tym tryb X i inne poprawki), VESA , a także różne interfejsy API wideo, takie jak DirectX i Glide 3Dfx. PCem może również emulować różne karty graficzne, takie jak ATI Mach64 GX i S3 Trio32/64/Virge.

PCem emuluje również niektóre karty dźwiękowe, takie jak AdLib , Sound Blaster (w tym Game Blaster ), Sound Blaster Pro , Sound Blaster 16 , Sound Blaster AWE32 , Gravis UltraSound , Innovation SSI-2001, Aztech Sound Galaxy Pro 16, Windows Sound System , Ensoniq AudioPCI 64V/ES1371 i Sound Blaster PCI 128 .

Voodoo są również emulowane od czasów PCem v10 i PCem v12, które dodały obsługę Voodoo 2 i różne optymalizacje. Istnieją jednak pewne niedociągnięcia dotyczące emulacji Voodoo, takie jak brak mipmappingu, lekko chybotliwe trójkąty, brak ograniczenia prędkości i niedokładne częstotliwości odświeżania w prawie każdej rozdzielczości (z wyjątkiem 640 × 480 przy 60 Hz). Od PCem v11 dodano osobny rekompilator do emulacji Voodoo, co przyspiesza emulację karty graficznej Voodoo.

Nieoficjalna wersja PCem umożliwia użycie SLiRP / WinPcap jako interfejsu sieciowego, a także emulowanych kart Ethernet NE2000 i Realtek RTL8029AS. Jednak począwszy od PCem v13, oficjalnie dodano emulację NE2000.

Obsługa systemu operacyjnego

Podobnie jak Virtual PC , Bochs i QEMU , emuluje prawie wszystkie wersje systemu Microsoft Windows , aż do Windows Vista (w tym Service Pack 2), MS-DOS , FreeDOS i CP/M-86 są również obsługiwane. Wcześniejsze wersje OS/2 wymagają sformatowania dysku twardego przed instalacją, podczas gdy OS/2 Warp 3 do Warp 4.5 wymaga do działania karty graficznej bez przyspieszenia. PCem obsługuje również inne systemy operacyjne, takie jak wersje systemu Linux który obsługuje procesor Pentium, pochodne BSD (np. FreeBSD ) i BeOS 5 , który działa tylko na płycie głównej Award SiS 497.

Historia wersji

Wersje PCem od wersji 0.5 do wersji 8 zostały usunięte z oficjalnej strony internetowej ze względu na użycie kodu emulacji MAME OPL2 / OPL3 od czasu, gdy nie był on jeszcze objęty licencją zgodną z GPL .

Wersja PCem Data wydania Notatki
v0.1 15 sierpnia 2007
v0.2 10 października 2007
v0.2a 14 października 2007 r
  • Liczne poprawki błędów
v0.3 30 lipca 2008 r
v0.4 27 lipca 2010 r
v0.41 1 lutego 2011 r
  • Liczne poprawki błędów i ulepszenia
v0.41a 13 lutego 2011 r
  • Liczne poprawki błędów
    • Naprawiono błąd uszkodzenia dysku
  • Ponownie dodano emulację CGA Composite
v0.5 21 września 2011 r
  • Obsługiwane więcej gier ( Tyrian , Jazz Jackrabbit , Transport Tycoon )
  • Dodano emulację pamięci podręcznej
  • Dodano emulację Soundblaster Pro v2 i Sound Blaster 16
  • Dodano emulację CD-ROM
  • Liczne poprawki błędów i ulepszenia
    • Dodano opcje prędkości 80486 między 50 a 120 MHz
    • Naprawiono błąd korupcji CMOS
    • Ulepszenia GUS do odtwarzania MIDI
    • Poprawki taktowania 8088/8086
    • Naprawiono błędy w LLDT/LIDT/LGDT/LTR
    • Flaga VM nie jest już przechowywana z PUSHFD
    • Naprawiono błąd w SIDT/SGDT - nie ma już „nierozpoznanego sprzętu” z Borland DPMI
    • HLT jest teraz uprzywilejowany
    • Naprawiono nieużywane bity w rejestrze FLAGS
    • Naprawiono odczyt/zapis poza granicami strony
    • Wiele poprawek błędów w obsłudze wyjątków
    • REP INSx używa teraz poprawnego segmentu
    • Naprawiono DIV.D ( Terminal Velocity , Pro Pinball )
    • Inne poprawki i zmiany
v0.6 19 grudnia 2011 r
  • Obsługiwane więcej gier ( Quake , Grand Theft Auto , X-COM: Apocalypse )
  • Obsługiwane więcej systemów ( Windows 3.x w trybie rozszerzonym 386, Windows 95 )
  • emulację Intel 80486 DX FPU .
  • Dodano obsługę systemów BIOS Dell System 200, Acer 386SX/25N, WinBIOS 486
  • Dodano emulację mikserów Soundblaster Pro i Sound Blaster 16
  • Liczne poprawki błędów i ulepszenia
    • Naprawiono problem z błędem strony
    • Naprawiono CD-ROM Polecenie odczytu podkanału, muzyka w Quake i Grand Theft Auto działa poprawnie
    • Naprawiono MOV exx,sreg
    • Naprawiono pułapkowanie portów IO
    • Naprawiono instrukcję LAR
    • Zaimplementowano uprawnienia MMU dla systemu Windows 95
    • Poprawki timera
    • Naprawiono odczyty rejestru adresu VGA
    • Naprawiono rejestry bankowe Trident (między innymi) dla instalatorów MicroProse
    • Zaimplementowano flagę pułapki i naprawiono zachowanie przerwań ( demo Second Reality )
    • Naprawiono liczne błędy z PPI i PIT
    • Poprawki kontrolera stacji dyskietek
    • Zwiększono limit pamięci z 16 MB do 64 MB
    • Zwiększono limit dysku twardego z 512 MB do 2 GB
    • Inne poprawki i zmiany
v0.7 3 sierpnia 2012 r
  • Nowe maszyny - klon DTK XT, Amstrad PC2086/PC3086 , Olivetti M24 , Commodore PC-30 III , klon PCI 486
  • Nowe karty graficzne - IBM EGA, Diamond Stealth 32 (ET4000/W32p), Paradise Bahamas 64 ( S3 Vision864 )
  • Obsługiwane więcej systemów i programów ( Windows 3.x w trybie rozszerzonym 386, Windows 98 , Internet Explorer 4 , Linux)
  • Dodano emulację dysku twardego IDE (zastąpiono starą emulację pułapek INT 13 we wszystkich modelach)
  • Liczne poprawki błędów i ulepszenia
    • Naprawiono błędny segment kodu przy błędzie strony - eliminuje niektóre awarie systemu Windows 95
    • Naprawiono flagę pułapki na POPF/IRET - poprawia skrzynkę DOS na Windows 95
    • Naprawiono różne rzeczy związane z pmode, OS/2 v1.3 działa
    • Naprawiono błąd buforowania MMU
    • Główne ulepszenia emulacji dyskietek - naprawiono sporadyczne uszkodzenia dysków, działa z OS/2 i Linux
    • Polecenie identyfikacji ATAPI zwraca teraz wersję ATAPI, działają teraz natywne sterowniki CD-ROM systemu Windows 95
    • Emulacja CD-ROM wykorzystuje teraz surowy odczyt audio - działa w systemie Windows 7
    • Główne wewnętrzne zmiany w emulacji grafiki
    • Główne wewnętrzne zmiany w pamięci i emulacji IO
    • Inne poprawki i zmiany
v8 20 grudnia 2013 r
wersja 8.1 3 stycznia 2014 r
  • Liczne poprawki błędów i ulepszenia
    • Naprawiono różne problemy z wykrywaniem/ładowaniem pamięci ROM
    • Zaimplementowano wyłączenie kontrolera DMA, naprawiono PC2086/3086
    • Zmieniono BIOS IBM XT z wersji 01/10/86 na 11/08/82
    • Naprawiono zablokowane klawisze na maszynach XT i Amstrad
  • Zastąpiono niewolny kod emulacji MAME OPL2 / OPL3 kodem emulacji OPL2 / OPL3 na licencji GPL
v9 4 października 2014 r
  • Nowe maszyny - IBM PCjr
  • Nowe karty graficzne - Diamond Stealth 3D 2000 (S3 ViRGE/325), S3 ViRGE/DX
  • Nowe karty dźwiękowe - Innovation SSI-2001 (przy użyciu ReSID-FP)
  • Dodano emulację joysticka
  • Dodano wstępny port Linuksa
  • Liczne poprawki błędów i ulepszenia
    • Poprawki procesora ( Windows NT teraz działa, OS/2 2.0+ działa lepiej)
    • Naprawiono problem z portem 3DA podczas wygaszania, teraz działa DOS 6.2/V
    • Przepisana emulacja PIT
    • IRQ 8-15 są teraz obsługiwane poprawnie, Civilization już się nie zawiesza
    • Naprawiono pionową oś myszy Amstrad
    • Poprawki szeregowe — naprawia problemy z myszą w systemach Windows 3.x i OS/2
    • Nowy kod klawiatury systemu Windows — powinien działać lepiej z międzynarodowymi klawiaturami
    • Zmiany w emulacji klawiatury - powinny naprawić zablokowane klawisze
    • Niektóre poprawki CD-ROM
v10 24 października 2015 r
  • Nowe maszyny - AMI XT clone, DTK XT clone, VTech Laser Turbo XT, VTech Laser XT3, Phoenix XT clone, Juko XT clone, IBM PS/1 model 2011 , Compaq Deskpro 386 , DTK 386SX clone, Phoenix 386 clone, Intel Premiere/ PCI, Intel Advanced/EV
  • Nowe karty graficzne - IBM VGA, 3dfx Voodoo Graphics
  • Dodano emulację Pentium i Pentium MMX
  • Dodano eksperymentalny rekompilator dynamiczny (przyspieszenie do 3x)
  • Ulepszona emulacja kontrolera stacji dyskietek
    • Dodano obsługę obrazów FDI
    • Dodano emulację stacji dyskietek 1,2 MB 5,25 cala
    • Dodano obsługę ochrony przed zapisem
  • Dodano obsługę maksymalnie 4 dysków twardych IDE
  • Liczne poprawki błędów i ulepszenia
    • Poprawki procesora - naprawiono problemy w Unreal , Half-Life , Final Fantasy VII , Little Big Adventure 2 , konfiguracji Windows 9x, Coherent , BeOS i innych
    • Ulepszenia wewnętrznego timera, poprawki dźwięku w niektórych grach (np. Król Lew )
    • Kod MIDI OUT poprawnie obsługuje teraz polecenia SysEx
    • Kod CD-ROM nie powoduje już awarii systemu Windows 9x, gdy napęd CD-ROM jest pusty
    • Poprawki do kart ViRGE, serii S3 Vision, ATI Mach 64 i OAK OTI-067
    • Inne poprawki i zmiany
v10.1 7 listopada 2015 r
  • Naprawiono przepełnienia bufora w emulacji PIIX i ET4000/W32p
  • Dodano opcje wiersza poleceń, aby uruchomić w trybie pełnoekranowym i określić plik konfiguracyjny
  • Naprawiono awarię emulatora, gdy procesor przeskakuje na niewykonywalny adres
  • Usunięto zrzut pamięci Voodoo przy wyjściu
v11 5 czerwca 2016 r
  • Nowe maszyny - Tandy 1000HX , Tandy 1000SL/2 , klon Award 286, IBM PS/1 model 2121
  • Nowa karta graficzna - Hercules InColor
  • Dodano rekompilator 3DFX (przyspieszenie 2-4x w stosunku do poprzedniej emulacji)
  • Dodano emulację Cyrix 6x86
  • Dodano emulację karty dźwiękowej IBM PS/1
  • Dodano emulację modułu surround Adlib Gold
  • Dodano obsługę stereo Gravis Ultrasound
  • Ulepszona emulacja kontrolera stacji dyskietek
    • Dodano obsługę większej liczby typów dysków
    • Dodano emulację FIFO
    • Lepsza obsługa obrazów XDF dodaje FDI
  • Dodano bezpośrednie wsparcie dla obrazu ISO dla emulacji CD-ROM
  • Ulepszona emulacja CD-ROM
    • Konfigurowalny kanał CD-ROM IDE
    • ulepszona obsługa zmiany dysku
    • Lepsza obsługa regulacji głośności
  • Liczne poprawki błędów i ulepszenia
    • Niektóre optymalizacje dynamicznego rekompilatora
    • Naprawiono zepsute taktowanie 8088/8086
    • Naprawiono blittery Mach 64 i ViRGE 2D
    • Maszyny XT mogą teraz mieć mniej niż 640 KB pamięci RAM
    • Poprawki emulacji PCjr/Tandy PSG
    • Naprawiono awarię podczas korzystania z wyjścia Direct3D na grafice Intel HD
    • Inne poprawki i zmiany
v12 18 lutego 2017 r
  • Nowe maszyny - AMI 386DX, MR 386DX
  • Nowe karty graficzne - Plantronics Colorplus , Wyse WY-700, Obsidian SB50, Voodoo2
  • Optymalizacje procesora
  • Optymalizacje 3DFX
  • Dodano podstawową emulację pobierania wstępnego 80286/80386
  • Mysz można wybrać między szeregową, PS/2 i IntelliMouse
  • Ulepszona emulacja joysticka
  • Ulepszona emulacja kompozytu CGA/PCjr/Tandy
  • Liczne poprawki błędów
v13 11 grudnia 2017 r
v13.1 17 grudnia 2017 r
  • Drobne poprawki rekompilatora, naprawiono spowolnienie w niektórych sytuacjach (głównie widoczne w Windows 9x tuż po uruchomieniu)
  • Liczne poprawki
    • Naprawiono problemy z dźwiękiem PCJr/Tandy w niektórych grach Sierra
    • Naprawiono wyświetlacz plazmowy w Toshiba 3100e
    • Naprawiono obsługę konfiguracji z kropkami w nazwie
    • Naprawiono wzmocnienie dźwięku wyjściowego podczas korzystania z OpenAL Soft
  • Domyślnie przełączono na używanie OpenAL Soft
v14 20 kwietnia 2018 r
v15 19 maja 2019 r
  • Nowe maszyny - Zenith Data SupersPORT , Bull Micral 45, Tulip AT Compact, Amstrad PPC512/640 , Packard Bell PB410A, ASUS P/I-P55TVP4, ASUS P/I-P55T2P4, Epox P55-VA, FIC VA-503+
  • Nowe karty graficzne - Image Manager 1024, Sigma Designs Color 400, TriGem Korean VGA
  • Dodano emulację rodziny AMD K6 i IDT Winchip 2
  • Nowy rekompilator procesora
  • Dodano eksperymentalną obsługę hostów ARM i ARM64
  • Dodano emulację kasety tylko do odczytu dla IBM PC i PCjr
  • Liczne poprawki błędów
v16 19 kwietnia 2020 r
  • Nowe maszyny - Commodore SL386SX-25, ECS 386/32, Goldstar GDC-212M, Hyundai Super-286TR, IBM PS/1 Model 2133 (EMEA 451), Itautec Infoway Multimidia, Samsung SPC-4620P, Leading Edge Model M
  • Nowe karty graficzne - ATI EGA Wonder 800+, AVGA2, Cirrus Logic GD-5428 , IBM 1MB SVGA Adapter/A
  • Nowa emulacja Aztech Sound Galaxy Pro 16 AB (Waszyngton).
  • Dodano obsługę adaptera IBM SCSI z pamięcią podręczną
  • Dodano obsługę emulacji FPU na maszynach wcześniejszych niż 486
  • Liczne poprawki błędów i ulepszenia
v17 1 grudnia 2020 r

Zobacz też