Bạn có muốn chơi game kinh điển như Warcraft, Wolfenstein, Doom 2, X-Wing, và những game khác? Bạn có muốn trải nghiệm vẻ đẹp 256 màu của phần mềm 16-bit? Nghe hay, phải không?
Tôi quyết định nhìn lại OS cũ vào khoảng thời gian Windows XP SP2 phát hành. Sau bản cập nhật trên một máy Windows, tôi bỗng nhận ra không còn chơi được game cực yêu thích, Caesar III. Rồi, sau khi thử cài lại Transport Tycoon Deluxe (để bù đắp mất Caesar), tôi bất ngờ không vui khi phát hiện game nhỏ vui này không chạy trên Windows XP. Dù tôi không chơi TTD từ thời Windows 98, việc mất đột ngột hai game hay khiến tôi suy ngẫm sâu.
Giới thiệu
Không điều gì tôi làm giúp ích. Chạy ứng dụng ở chế độ khác trên Windows XP không hoạt động. Cũng không dùng các patch đa dạng, thiết kế đặc biệt giải quyết loại vấn đề này. Rồi tôi gặp sản phẩm tuyệt vời VMware Player. VMware Player là phần mềm ảo hóa cho phép chạy nhiều OS dựa trên PC như ứng dụng trong OS hiện có. Nghe hay. Đọc thêm VMware Player trong bài "VMware Player - a great friend".
Tôi tải và cài VMware Player và bắt đầu cài OS cũ tôi có, hy vọng khôi phục khả năng chơi game cũ. May mắn ghé thăm hai lần. Tôi cài thành công Windows XP Home SP1 làm máy ảo trên host Windows XP Pro SP2. Và bên trong guest OS, cài thành công Caesar III và chơi lại. Vâng! Rồi tôi gặp Open TTD, bản clone mã nguồn mở của Transport Tycoon Deluxe, cho phép chơi game này native trên Windows XP SP2.
Bạn có thể đọc cách cài Windows XP nói chung và làm guest OS trong VMware Player. Đọc chi tiết thành công Caesar III. Đọc review game. Đọc cài và chơi Open TTD cũng như review riêng. Rồi tôi dũng cảm. Caesar III phát hành khoảng 1998. Transport Tycoon Deluxe năm 1994. Sao không quay xa hơn? DOS thì sao?
Cách cài DOS
Nếu bạn không biết DOS là gì, hoặc không quan tâm, dừng đọc ngay. MS-DOS là OS desktop phổ biến năm 80 và đầu 90. Không còn hỗ trợ lâu nay và lấy bản sao có thể khó. Nhưng đừng lo. Thay vào đó có FreeDOS, "OS tương thích 100% MS-DOS" (theo trang web).
Tôi quyết định thử FreeDOS làm nền tảng DOS. Vì không thể dual-boot FreeDOS trên máy nào, tôi chọn thử trong VMware Player, giải pháp rẻ, nhanh, hợp lý nhất. Cách này dễ debug lỗi, không thay đổi vĩnh viễn hay hỏng hệ thống. Bạn nên theo dõi bài Linux From Scratch để học:
- Cài và dùng VMware Player và QEMU.
- Tạo file cấu hình máy ảo .vmx.
- Cấu hình .vmx boot từ CD ảo (mount .iso).
- Tạo đĩa cứng ảo.
Tuy nhiên, tôi sẽ chi tiết một số cơ bản tôi làm để tạo môi trường DOS.
- Tải file .iso bootable FreeDOS.
- Tạo file cấu hình .vmx sau (dưới); bạn copy dùng. Lưu ý lưu dạng All Types thay vì .txt (trong text editor, ví dụ Notepad).
config.version = "8"
virtualHW.version = "3"
guestOS = "other"
displayName = "FreeDOS"
numvcpus = "1"
memsize = "64"
MemAllowAutoScaleDown = "FALSE"
MemTrimRate = "-1"
uuid.action = "create"
tools.remindInstall = "TRUE"
hints.hideAll = "TRUE"
tools.syncTime = "TRUE"
usb.present = "TRUE"
usb.generic.autoconnect = "FALSE"
serial0.present = "FALSE"
serial1.present = "FALSE"
parallel0.present = "FALSE"
# Sound settings
sound.present = "TRUE"
sound.virtualdev = "sb16"
logging = "TRUE"
log.fileName = "FreeDOS.log"
log.append = "TRUE"
log.keepOld = "1"
isolation.tools.hgfs.disable = "FALSE"
isolation.tools.dnd.disable = "TRUE"
isolation.tools.copy.enable = "TRUE"
isolation.tools.paste.enabled = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "vlance"
ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:80:9c:48"
ethernet0.generatedAddressOffset = "0"
floppy0.present = "TRUE"
floppy0.startConnected = "TRUE"
floppy0.autodetect = "TRUE"
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-raw"
ide1:0.startConnected = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.autodetect = "TRUE"
ide1:1.present = "TRUE"
ide1:1.fileName = "fdbootcd.iso"
ide1:1.deviceType = "cdrom-image"
ide1:1.mode = "persistent"
ide1:1.startConnected = "FALSE"
ide0:0.present = "TRUE"
ide0:0.fileName = "freedos.vmdk"
ide0:0.mode = "persistent"
ide0:0.startConnected = "TRUE"
ide0:0.writeThrough = "TRUE"
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"
Trang web tuyệt vời giúp tạo file cấu hình máy ảo là EasyVMX!. Trang cung cấp giao diện tương tác tạo file .vmx, tải về dùng. Tôi dùng QEMU tạo đĩa cứng ảo; tạo đĩa 500Mb bằng lệnh sau trong thư mục QEMU (dòng lệnh):
qemu-img.exe create -f vmdk freedos.vmdk 500M
Sau đó, gom file vào một thư mục, khởi động VMware Player, boot từ CD (.iso) và cài FreeDOS. Cài đặt khá trực tiếp. Không đi chi tiết, nếu nhận nhiều email (> 2) xin hướng dẫn từng bước, tôi có thể thêm sau. Nhưng lại nói, rất đơn giản, làm theo hướng dẫn màn hình.
Một kỳ quan tôi khám phá về FreeDOS là hỗ trợ CD-ROM. Tôi khá hào hứng, vì không thích làm việc với đĩa mềm. Tôi đợi cài xong. Reboot. Rồi được đưa ra vài lựa chọn. Tất nhiên, chọn option 1, với tất cả driver và nhiều memory nhất.
Nó không chạy. Hầu hết driver fail khởi tạo. Không có High Memory. Không có chuột. Không có CD-ROM. Hmmm. Tôi mất 2-3 ngày tìm ra nguyên nhân:
- Đường dẫn đến file nhất định và tên file không đúng (trong file fdauto.bat).
- Driver CD-ROM xấu (trong file fdconfig.sys).
Sửa file hệ thống
Không biến bài thành sử thi thử sai, mô tả mọi bước, tôi giải quyết mọi vấn đề. Tôi thay đổi fdconfig.sys và fdauto.bat gốc để nạp driver hoạt động và thực thi đường dẫn/tên file đúng. Tôi thay driver CD-ROM của FreeDOS bằng driver aoatapi.sys hoạt động. Cuối cùng, cài dosidle.exe để CPU không chạy full throttle liên tục (đó là cách DOS chạy).
Vì tôi không rõ vấn đề pháp lý về aoatapi.sys và dosidle.exe, tôi chắc chắn không host hoặc link trực tiếp nguồn trên Internet. Tôi cũng không đảm bảo chất lượng nguồn.
Vì vậy, lời khuyên tốt nhất: tìm aoatapi.sys và dosidle.exe bằng công cụ tìm kiếm. Tôi tìm bản sao tin cậy trong vài phút. Thử Google search aoatapi.sys ở đây và dosidle.exe ở đây. Bạn tự chọn công cụ tìm kiếm và từ khóa.
Điều đầu tiên: copy hai file lên đĩa mềm, rồi copy lên ổ cứng máy ảo. Chạy dosidle.exe và CPU thở bình thường. Dưới đây là fdconfig.sys và fdauto.bat đã sửa.
fdconfig.sys
SWITCHES=/F/N
COUNTRY=001,858,C:\FREEDOS\BIN\COUNTRY.SYS
SET LANG=EN
LASTDRIVE=Z
BUFFERS=20
FILES=40
DOS=HIGH,UMB
DOSDATA=UMB
SET DIRCMD=/OGN /4
MENUCOLOR=7,0
MENUDEFAULT=1,5
MENU 1 - Load FreeDOS, with maximum RAM free, using EMM386
MENU 2 - Load FreeDOS, including HIMEM XMS-memory driver
MENU 3 - Load FreeDOS without drivers
12?DEVICE=C:\FREEDOS\BIN\HIMEM.EXE
1?DEVICE=C:\FREEDOS\BIN\EMM386.EXE NOEMS X=TEST VDS
REM 1?DEVICEHIGH=C:\FREEDOS\BIN\ATAPICDD.SYS /D:FDCD0001
1?DEVICEHIGH=C:\AOATAPI.SYS /D:FDCD0001
fdauto.bat
@echo off
prompt $p$g
path C:\FREEDOS\BIN;C:\BATCHES
set HELPPATH=C:\FREEDOS\HELP
set LANG=US
set NLSPATH=C:\FREEDOS\NLS
IF not "%CONFIG%"=="1" goto noperuse
rem echo Load PERUSE scrolling driver?
rem lh c:\bin\peruse.exe
rem echo PERUSE loaded
:noperuse
IF "%CONFIG%"=="3" goto nomouse
lh c:\freedos\bin\ctmouse.exe /3 /V
:nomouse
if not exist CDRCACH$ goto normalcd
echo Activating cached CD-ROM drive now.
rem lh c:\freedos\bin\shsucdx.exe /D:CDRCACH$,N
lh c:\freedos\bin\shsucdx.com /D:CDRCACH$,N
goto nomorecd
rem the above goto avoids double SHSUCDX loading.
:nomorecd
rem if not exist CDROM001 goto nomorecd
if not exist fdcd0001 goto nomorecd
echo Activating uncached CD-ROM drive now.
rem lh c:\freedos\bin\shsucdx.exe /D:CDROM001,N
lh c:\freedos\bin\shsucdx.com /D:FDCD0001,N
:nomorecd
echo.
IF "%CONFIG%"=="3" goto 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 The environment contents are:
rem echo. displays an empty line...
IF "%CONFIG%"=="3" echo.
IF "%CONFIG%"=="3" echo goto nopause
echo.
echo Welcome to FreeDOS. Press enter to go on and see environment:
rem pause
rem :nopause
set
echo FreeDOS is now at your service :-)
echo.
CLS
C:\DOSIDLE.EXE
lh c:\freedos\bin\mouse.exe
Copy & paste text vào text editor, lưu file (đề nghị đuôi .bak, All Types), đặt lên đĩa mềm và copy lên ổ cứng máy ảo. Backup fdconfig.sys và fdauto.bat gốc, đổi tên .bak mới thành .bat và .sys tương ứng. Hãy nhớ:
- Tôi cài FreeDOS dưới C:\FREEDOS.
- Tôi đặt aoatapi.sys và dosidle.exe ở root, tức C:\.
- Cài đặt quốc gia/ngôn ngữ có thể khác.
- Tôi giữ dòng lệnh không hoạt động, chỉ comment để không chạy. Ví dụ, giữ dòng PERUSE và chuột, dù active chúng không chạy đúng – driver PERUSE không tìm thấy, chuột không chạy – nhưng comment thì không ảnh hưởng. Cũng đúng cho CD-ROM, share, v.v.
- Tôi giữ gán chữ cái cho driver CD-ROM bắt đầu từ N (N:, O: v.v.), tuy bạn đổi tùy thích, miễn không xung đột.
Làm thay đổi cần thiết cho đường dẫn file (nếu cần) trong fdconfig.sys và fdauto.bat phản ánh lựa chọn cài của bạn. Reboot. May mắn, OS chạy mượt.
Môi trường OS nên như ảnh dưới, bạn có chuột (test bằng edit fdauto.bat, nên thấy con trỏ chuột), và ít nhất một driver CD-ROM, nếu dùng file .vmx của tôi. Tương tự, dosidle.exe chạy. Cơ bản, xong. Bạn có DOS hoạt động.
Kết luận
Trong bài tới, tôi sẽ viết về thành công (hoặc thiếu) chạy game hay xưa xây dựng nhân cách chúng ta đầu năm 90. Tôi biết game cũ hay truy vấn cổng serial và parallel (COM1, LPT1). Theo hiểu biết, một số OS Windows hiện đại không thích điều đó. Tôi quan sát hiện tượng với VMware Player. Có thể việc từ chối truy cập phần cứng, lý do chính game không chạy, vẫn ảnh hưởng khả năng chơi. Tuy nhiên, tôi sẽ thử.
Tôi cũng nghe dự án như Open TTD, cho phép người dùng PC hiện đại trải nghiệm game như Doom và Duke Nukem 3D trên OS hiện đại. Tôi sẽ kiểm tra tin đồn hy vọng đúng và cập nhật. Ngược lại, nếu bạn có tin tức/gợi ý, hãy email. Tôi đăng với credit.
Bạn tìm cập nhật trong section "Reviving old games", cũng bao gồm Caesar III và Open TTD. Cũng đọc review và xem ảnh game trong category Computer games.
Chúc vui.