Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

คุณต้องการเรียกใช้แอปพลิเคชัน DOS อีกครั้งหรือไม่

คุณต้องการเล่นเกมที่ดีเช่น Warcraft, Wolfenstien, Doom 2, X-Wing และอื่น ๆ หรือไม่? คุณต้องการสัมผัสความงาม 256 สีของซอฟต์แวร์ 16 บิตหรือไม่? ฟังดูดีใช่ไหม

ฉันได้ตัดสินใจมองย้อนกลับไปที่ระบบปฏิบัติการรุ่นเก่าในช่วงเวลาที่ Windows XP SP2 เปิดตัว หลังจากอัปเดตเครื่อง Windows เครื่องหนึ่งของฉัน จู่ๆ ฉันก็นึกขึ้นได้ว่าไม่สามารถเล่นเกมโปรดของฉันได้อีกต่อไป Caesar III และหลังจากพยายามติดตั้ง Transport Tycoon Deluxe อีกครั้ง (เพื่อเป็นการชดเชยการสูญเสีย Caesar) ฉันรู้สึกประหลาดใจอย่างไม่เป็นสุขที่พบว่าเกมเล็กๆ ตลกๆ นี้จะไม่ทำงานบน Windows XP แม้ว่าฉันจะไม่ได้เล่น TTD มาตั้งแต่สมัยที่ใช้ Windows 98 และการสูญเสียเกมที่ดีกว่าไปสองเกมอย่างกระทันหันทำให้ฉันครุ่นคิดอย่างลึกซึ้ง

บทนำ

ไม่มีอะไรที่ฉันจะช่วย การเรียกใช้แอปพลิเคชันในโหมดอื่นภายใต้ Windows XP ไม่ทำงาน ไม่ได้ใช้แพตช์ต่างๆ ที่ออกแบบมาเป็นพิเศษเพื่อแก้ปัญหาเหล่านี้ จากนั้นฉันก็พบกับผลิตภัณฑ์ที่ยอดเยี่ยมที่เรียกว่า VMware Player VMware Player เป็นซอฟต์แวร์เวอร์ช่วลไลเซชันที่ให้คุณเรียกใช้ระบบปฏิบัติการบนพีซีได้หลากหลายเป็นแอปพลิเคชันภายในระบบปฏิบัติการที่คุณมีอยู่ ฟังดูดี. คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ VMware Player ได้ในบทความชื่อ VMware Player - เพื่อนที่ดี

ฉันดาวน์โหลดและติดตั้ง VMware Player และเริ่มติดตั้งระบบปฏิบัติการรุ่นเก่าที่ฉันมี โดยหวังว่าจะกู้คืนความสามารถในการเล่นเกมเก่า โชคเข้าข้างฉันสองครั้ง ฉันสามารถติดตั้ง Windows XP Home SP1 เป็นเครื่องเสมือนได้สำเร็จบนหนึ่งในโฮสต์ Windows XP Pro SP2 ของฉัน และภายในระบบปฏิบัติการเกสต์ ฉันสามารถติดตั้ง Caesar III และเล่นอีกครั้งได้ ใช่! จากนั้นฉันก็พบกับ Open TTD ซึ่งเป็นโอเพ่นซอร์สโคลนของ Transport Tycoon Deluxe ซึ่งทำให้ฉันสามารถเล่นเกมที่ยอดเยี่ยมนี้ใน Windows XP SP2 ได้

คุณอาจต้องการอ่านเกี่ยวกับวิธีการติดตั้ง Windows XP โดยทั่วไปและโดยเฉพาะในฐานะระบบปฏิบัติการแขกภายใน VMware Player คุณสามารถอ่านรายละเอียดเกี่ยวกับความสำเร็จของฉันกับ Caesar III ได้ คุณยังสามารถอ่านบทวิจารณ์เกมของฉัน คุณสามารถอ่านเกี่ยวกับวิธีการติดตั้งและเล่น Open TTD รวมถึงบทวิจารณ์เกมแยกต่างหาก แล้วฉันก็กล้า Caesar III เป็นเกมที่วางจำหน่ายในราวปี 1998 Transport Tycoon Deluxe ย้อนกลับไปในปี 1994 ย้อนเวลากลับไปให้ไกลกว่านี้อีกไหม แล้วดอสล่ะ?

วิธีการติดตั้งดอส

หากคุณไม่รู้ว่า DOS คืออะไร หรือไม่สนใจเกี่ยวกับมัน คุณสามารถหยุดอ่านได้ทันที MS-DOS เป็นหนึ่งในระบบปฏิบัติการเดสก์ท็อปที่ได้รับความนิยมมากในยุค 80 และต้นยุค 90 ตอนนี้ไม่รองรับอีกต่อไปแล้วและการรับสำเนาอาจค่อนข้างยาก แต่นั่นไม่ควรกังวลคุณ แต่มี FreeDOS ซึ่งเป็น "ระบบปฏิบัติการที่เข้ากันได้กับ MS-DOS 100%" (อ้างอิงจากเว็บไซต์)

ฉันตัดสินใจลองใช้ FreeDOS เป็นแพลตฟอร์ม DOS ของฉัน และเนื่องจากฉันไม่สามารถใช้ FreeDOS ดูอัลบูตบนเครื่องใดๆ ของฉันได้ ฉันจึงเลือกที่จะลองใช้ใน VMware Player ซึ่งเป็นโซลูชันที่ถูกที่สุด เร็วที่สุด และเหมาะสมที่สุด ด้วยวิธีนี้ ฉันสามารถดีบักข้อผิดพลาดระหว่างทางได้อย่างง่ายดาย โดยไม่มีการเปลี่ยนแปลงถาวรหรือแม้แต่ความเสียหายต่อระบบ คุณควรติดตามบทความ Linux From Scratch ของฉันเพื่อเรียนรู้วิธีการ:
  1. ติดตั้งและใช้ VMware Player และ QEMU
  2. สร้างไฟล์การกำหนดค่าเครื่องเสมือน .vmx
  3. กำหนดค่าไฟล์ .vmx ให้บูตจากซีดีเสมือน (ติดตั้ง .iso)
  4. สร้างฮาร์ดดิสก์เสมือน
อย่างไรก็ตาม ฉันจะอธิบายรายละเอียดพื้นฐานบางอย่างที่ฉันทำเพื่อสร้างสภาพแวดล้อม DOS ของฉัน
  1. ฉันดาวน์โหลด FreeDOS .iso ที่สามารถบู๊ตได้
  2. ฉันสร้างไฟล์การกำหนดค่า .vmx ต่อไปนี้ (ด้านล่าง); คุณสามารถคัดลอกและใช้เป็นของคุณเอง เพียงให้แน่ใจว่าคุณบันทึกเป็นไฟล์ทุกประเภทแทนที่จะเป็นไฟล์ .txt (ในโปรแกรมแก้ไขข้อความใดๆ เช่น Notepad)

config.version ="8"
virtualHW.version ="3"

guestOS ="อื่นๆ"

displayName ="ฟรีดอส"

numvcpus ="1"

เม็มไซส์ ="64"
MemAllowAutoScaleDown ="เท็จ"
MemTrimRate ="-1"

uuid.action ="สร้าง"

tools.remindInstall ="จริง"

คำใบ้ ซ่อนทั้งหมด ="จริง"

tools.syncTime ="จริง"

usb.present ="จริง"
usb.generic.autoconnect ="เท็จ"

serial0.present ="เท็จ"

serial1.present ="เท็จ"

Parallel0.ปัจจุบัน ="เท็จ"

# การตั้งค่าเสียง
เสียง.ปัจจุบัน ="จริง"
เสียง.virtualdev ="sb16"

เข้าสู่ระบบ ="จริง"
log.fileName ="FreeDOS.log"
log.append ="จริง"
log.keepOld ="1"

isolation.tools.hgfs.disable ="เท็จ"
isolation.tools.dnd.disable ="จริง"
isolation.tools.copy.enable ="จริง"
isolation.tools.paste.enabled ="จริง"

ethernet0.present ="จริง"
ethernet0.virtualDev ="วแลนซ์"
ethernet0.connectionType ="แนท"
ethernet0.addressType ="สร้าง"
ethernet0.generatedAddress ="00:0c:29:80:9c:48"
ethernet0.generatedAddressOffset ="0"

floppy0.present ="จริง"
floppy0.startConnected ="จริง"
floppy0.autodetect ="จริง"

ide1:0.present ="จริง"
ide1:0.deviceType ="cdrom-raw"
ide1:0.startConnected ="จริง"
ide1:0.fileName ="ตรวจจับอัตโนมัติ"
ide1:0.autodetect ="จริง"

ide1:1.present ="จริง"
ide1:1.fileName ="fdbootcd.iso"
ide1:1.deviceType ="ภาพ cdrom"
ide1:1.mode ="ถาวร"
ide1:1.startConnected ="เท็จ"

ide0:0.present ="จริง"
ide0:0.fileName ="freedos.vmdk"
ide0:0.mode ="ถาวร"
ide0:0.startConnected ="จริง"
ide0:0.writeThrough ="จริง"

ide0:0.redo =""
uuid.location ="56 4d 2e 31 1d 13 5d 4f-0d a6 5c b7 54 80 9c 48"
uuid.bios ="56 4d 2e 31 1d 13 5d 4f-0d a6 5c b7 54 80 9c 48"

ไซต์ที่ยอดเยี่ยมที่สามารถช่วยคุณในการสร้างไฟล์การกำหนดค่าเครื่องเสมือนคือ EasyVMX! ไซต์มีอินเทอร์เฟซแบบโต้ตอบสำหรับการสร้างไฟล์การกำหนดค่า .vmx ซึ่งสามารถดาวน์โหลดและใช้งานได้ จากนั้นฉันใช้ QEMU เพื่อสร้างฮาร์ดดิสก์เสมือน ฉันสร้างดิสก์ขนาดเล็ก 500Mb โดยพิมพ์คำสั่งต่อไปนี้ในไดเร็กทอรี QEMU (บรรทัดคำสั่ง):

qemu-img.exe สร้าง -f vmdk freedos.vmdk 500M

จากนั้น เมื่อไฟล์ทั้งหมดถูกจัดกลุ่มไว้ในโฟลเดอร์เดียว ฉันเริ่ม VMware Player บูตจากซีดี (.iso) และติดตั้ง FreeDOS การติดตั้งค่อนข้างตรงไปตรงมา ฉันจะไม่ลงรายละเอียด แต่ถ้าฉันได้รับอีเมลจำนวนมาก (> 2) ขอคำแนะนำทีละขั้นตอนโดยละเอียด ฉันอาจพิจารณาเพิ่มในภายหลัง แต่อีกครั้ง มันง่ายมาก เพียงทำตามคำแนะนำบนหน้าจอ

สิ่งมหัศจรรย์อย่างหนึ่งที่ฉันค้นพบเกี่ยวกับ FreeDOS ก็คือการรองรับซีดีรอม ฉันค่อนข้างกระตือรือร้น เพราะฉันไม่รู้สึกกระตือรือร้นที่จะทำงานกับฟล็อปปี้ดิสก์ ดังนั้นฉันจึงรอให้การติดตั้งเสร็จสิ้น ฉันรีบูตเครื่อง จากนั้นฉันก็มีตัวเลือกมากมาย แน่นอน ฉันตัดสินใจเลือกตัวเลือกที่ 1 ซึ่งมีไดรเวอร์ทั้งหมดและหน่วยความจำส่วนใหญ่

มันไม่ได้ผล. ไดรเวอร์ส่วนใหญ่ไม่สามารถเริ่มต้นได้ ฉันไม่มีหน่วยความจำสูง ฉันไม่มีเมาส์ ฉันไม่มีซีดีรอม อืม. ฉันใช้เวลา 2-3 วันถัดไปเพื่อพยายามหาสาเหตุว่าทำไมสิ่งต่างๆ จึงไม่เป็นไปตามปกติ ในที่สุด ฉันก็ตระหนักถึงจุดที่น่าตกใจบางประการ:

  1. พาธไปยังไฟล์บางไฟล์และชื่อไม่ถูกต้อง (ในไฟล์ fdauto.bat)
  2. ไดรเวอร์ซีดีรอมเสีย (ในไฟล์ fdconfig.sys)

การแก้ไขไฟล์ระบบ

โดยไม่ต้องเปลี่ยนบทความนี้ให้กลายเป็นเรื่องราวแห่งการลองผิดลองถูก อธิบายทุกขั้นตอนที่ฉันทำ ฉันก็สามารถแก้ปัญหาทั้งหมดได้ ฉันเปลี่ยนไฟล์ fdconfig.sys และ fdauto.bat ดั้งเดิมเพื่อโหลดไดรเวอร์ที่ใช้งานได้ และดำเนินการตามเส้นทางและชื่อไฟล์ที่ถูกต้อง ฉันแทนที่ไดรเวอร์ซีดีรอมที่มาพร้อมกับ FreeDOS ด้วยไดรเวอร์ aoatapi.sys ที่ใช้งานได้ และสุดท้าย ฉันได้ติดตั้ง dosidle.exe เพื่อป้องกันไม่ให้ CPU ทำงานได้เต็มกำลังอย่างต่อเนื่อง (นั่นคือวิธีการทำงานของ DOS)

เนื่องจากฉันไม่ทราบปัญหาทางกฎหมายที่เกี่ยวข้องกับ aoatapi.sys และ dosidle.exe ฉันจะไม่โฮสต์หรือลิงก์โดยตรงไปยังแหล่งข้อมูลใด ๆ ที่มีอยู่ในอินเทอร์เน็ตอย่างแน่นอน ฉันไม่สามารถรับประกันคุณภาพของแหล่งข้อมูลเหล่านี้ได้

ดังนั้น คำแนะนำที่ดีที่สุดที่ฉันสามารถให้คุณคือการค้นหา aoatapi.sys และ dosidle.exe โดยใช้เครื่องมือค้นหา ฉันสามารถค้นหาสำเนาที่เชื่อถือได้ภายในไม่กี่นาที คุณสามารถลองใช้ Google ค้นหา aoatapi.sys ที่นี่ และ dosidle.exe ที่นี่ คุณสามารถเลือกตัวเลือกหรือเครื่องมือค้นหาและคำของคุณเองได้

สิ่งแรกที่ฉันทำคือคัดลอกไฟล์สองไฟล์ลงในฟล็อปปี้ดิสก์ จากนั้นจึงคัดลอกไฟล์เหล่านั้นลงในฮาร์ดดิสก์ของเครื่องเสมือน ฉันดำเนินการ dosidle.exe และทำให้ CPU ของฉันหายใจตามปกติอีกครั้ง ด้านล่างนี้คุณจะพบ fdconfig.sys และ fdauto.bat ที่แก้ไขแล้วของฉัน

fdconfig.sys

สวิตช์=/F/N
COUNTRY=001,858,C:\FREEDOS\BIN\COUNTRY.SYS
ตั้งค่า LANG=TH
LASTDRIVE=Z
บัฟเฟอร์ =20
ไฟล์=40
DOS=สูง UMB
DOSDATA=UMB
ตั้งค่า DIRCMD=/OGN /4
เมนูสี=7,0
MENUDEFAULT=1,5
เมนู 1 - โหลด FreeDOS พร้อม RAM สูงสุดฟรี โดยใช้ EMM386
เมนู 2 - โหลด FreeDOS รวมถึงไดรเวอร์หน่วยความจำ HIMEM XMS
เมนู 3 - โหลด FreeDOS โดยไม่ต้องใช้ไดรเวอร์

12?DEVICE=C:\FREEDOS\BIN\HIMEM.EXE
1?DEVICE=C:\FREEDOS\BIN\EMM386.EXE NOEMS X=ทดสอบ VDS

REM 1?DEVICEHIGH=C:\FREEDOS\BIN\ATAPICDD.SYS /D:FDCD0001
1?DEVICEHIGH=C:\AOATAPI.SYS /D:FDCD0001

fdauto.bat

@ปิดเสียงสะท้อน
พร้อมท์ $p$g
เส้นทาง C:\FREEDOS\BIN;C:\BATCHES
ตั้งค่า HELPPATH=C:\FREEDOS\HELP
ตั้งค่า LANG=US
ตั้งค่า NLSPATH=C:\FREEDOS\NLS

ถ้าไม่ใช่ "%CONFIG%"=="1" ให้ไปที่ไม่ใช้
rem echo Load PERUSE scrolling driver?
rem lh c:\bin\peruse.exe
rem echo PERUSE โหลดแล้ว
:ไม่ใช้

IF "%CONFIG%"=="3" ไปที่ nomouse
lh c:\freedos\bin\ctmouse.exe /3 /V
:โนมูส

หากไม่มีอยู่ CDRCACH$ ไปที่ normalcd
echo กำลังเปิดใช้งานไดรฟ์ซีดีรอมที่แคชไว้ในขณะนี้
rem lh c:\freedos\bin\shsucdx.exe /D:CDRCACH$,N
lh c:\freedos\bin\shsucdx.com /D:CDRCACH$,N
ไปที่ nomorecd
rem goto ด้านบนหลีกเลี่ยงการโหลด SHSUCDX สองครั้ง
:nomorecd
rem หากไม่มีอยู่ CDROM001 goto nomorecd
หากไม่มีอยู่ fdcd0001 ไปที่ nomorecd
echo กำลังเปิดใช้งานไดรฟ์ซีดีรอมที่ไม่ได้แคชทันที
rem lh c:\freedos\bin\shsucdx.exe /D:CDROM001,N
lh c:\freedos\bin\shsucdx.com /D:FDCD0001,N

:nomorecd

เสียงสะท้อน

ถ้า "%CONFIG%"=="3" ไปที่ noshare
rem LH c:\freedos\bin\share.exe /L:20 /F:2048
lh c:\freedos\bin\share.com /L:20 /F:2048
:noshare

IF "%CONFIG%"=="3" echo เนื้อหาสภาพแวดล้อมคือ:
เสียงสะท้อน แสดงบรรทัดว่าง...
ถ้า "%CONFIG%"=="3" echo
IF "%CONFIG%"=="3" echo ไปที่ nopause

เสียงสะท้อน

echo ยินดีต้อนรับสู่ FreeDOS กด Enter เพื่อดูสภาพแวดล้อม:
หยุดชั่วคราว
เร็ม :หมดเวลา
ชุด

echo FreeDOS พร้อมให้บริการคุณแล้ว :-)
เสียงสะท้อน

ซีแอลเอส

C:\DOSIDLE.EXE

lh c:\freedos\bin\mouse.exe

คัดลอกและวางข้อความลงในโปรแกรมแก้ไขข้อความ บันทึกไฟล์ (ฉันแนะนำนามสกุล .bak ทุกประเภท) วางบนฟล็อปปี้ดิสก์แล้วคัดลอกลงในฮาร์ดดิสก์ของเครื่องเสมือนของคุณ สำรอง fdconfig.sys และ fdauto.bat ดั้งเดิม และเปลี่ยนชื่อ .bak ที่สร้างขึ้นใหม่เป็น .bat และ .sys ตามลำดับ โปรดจำไว้ว่า:

  1. I installed FreeDOS under C:\FREEDOS.
  2. I placed the aoatapi.sys and dosidle.exe in the root directory, i.e. C:\.
  3. Your country and language settings may differ.
  4. I left the existing non-functional command lines, I only commented them so they would not run. For instance, I left the PERUSE and mouse lines, although when active they would not execute properly - the PERUSE driver could not be found and the mouse would not work - however commented they have no impact. This is also true for CD-ROM, share etc.
  5. I left the original assignment of letters to CD-ROM drivers beginning at N (N:, O:etc.), however you can change this to anything you like, provided there are no conflicts.
Make necessary changes to file paths (if needed) in the fdconfig.sys and fdauto.bat to reflect your installation choices. Reboot. Luckily, your OS will work smoothly now.

Your OS environment should look like the image below, you should have a mouse available (test it by typing edit fdauto.bat, for instance; you should be able to see a mouse cursor), and you should have at least one CD-ROM driver available, if you used my .vmx conf file. Likewise, dosidle.exe should work, too. Basically, that's it. You have a working DOS now.

สรุป

In one of the next articles, I will write about my success (or lack thereof) at running the good ole games that built and shaped our character(s) in the early 90s. I'm aware that old games uses to query the serial and parallel ports (COM1, LPT1). To the best of my knowledge, some modern Windows OSes do not quite like that. I have observed this phenomenon with VMware Player, too. It's possible that the denied access to hardware, which is the main reason most of these games no longer run, could still impact the ability to play them. Nevertheless, I'll give it a try.

I have also heard that much like Open TTD, various projects exist, which have enabled the contemporary PC user to experience games like Doom and Duke Nukem 3D in modern operating systems. I will check these hopefully true rumors and keep you updated. On the other hand, if you have any news or suggestions for me, please email me. I will post them with due credits.

You will find the updates in my Reviving old games section, which also covers Caesar III and Open TTD. You can also read my reviews and view screenshots of these fine games in the separate Computer games category.

ไชโย