1 điểm bởi GN⁺ 2025-06-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Infinite Mac nay đã có thể chạy Mac OS X đời đầu trong trình duyệt; hiện 10.1 và 10.3 là các phiên bản được hỗ trợ tốt nhất
  • Khi hướng đi DingusPPC hiện có bị kẹt ở lỗi kernel panic và vấn đề đồ họa, dự án chuyển sang port PearPC, một trình giả lập được tạo ra với mục tiêu giả lập Mac OS X đầu thập niên 2000
  • Hiệu năng vẫn còn chậm: Mac OS X 10.2 mất gần 2 phút để hoạt động hoàn chỉnh, và các tối ưu hóa cũng chỉ rút ngắn được khoảng 15 giây
  • Một lỗi bỏ sót kiểm tra bit FP trong xử lý dấu phẩy động PowerPC đã gây ra vấn đề render Dock và cửa sổ Finder; quá trình sửa lỗi cũng cải thiện độ ổn định của DingusPPC
  • Infinite HD đã được cấu trúc lại để chứa phần mềm indie thời kỳ Mac OS X đời đầu và các công cụ Developer CD, nhưng khác biệt HFS/HFS+ và khả năng tương thích .dmg cũ vẫn là những hạn chế

Chạy Mac OS X đời đầu trong trình duyệt

  • Infinite Mac nay có thể chạy Mac OS X đời đầu
    • Mac OS X 10.1Mac OS X 10.3 là các phiên bản được hỗ trợ tốt nhất
    • Tốc độ chạy không nhanh, nhưng cảm giác cũng gần với thực tế là phần cứng thật thời đó cũng không khá hơn nhiều
  • Infinite HD, vốn cung cấp kèm phần mềm phù hợp với thời kỳ, cũng được cấu trúc lại xoay quanh phần mềm indie thời Mac OS X đời đầu

Chuyển hướng sang port PearPC

  • Ban đầu, dự án định dùng DingusPPC để chạy Mac OS X trên Infinite Mac, nhưng khoảng mùa hè năm ngoái đã không tiến xa hơn được do kernel panic và lỗi đồ họa
    • Đã thử thu hẹp phạm vi vấn đề bằng chế độ chạy xác định, nhưng bước tiếp theo không rõ ràng
  • Phương án thay thế được chọn là PearPC
    • PearPC được tạo ra vào đầu thập niên 2000 để giả lập Mac OS X trên các máy x86 chạy Windows và Linux
    • Sau khi Apple chuyển sang Intel, sự quan tâm giảm dần và codebase gần như bị xem là đã dừng phát triển
  • Việc kanjitalk755 đã tạo một nhánh thử nghiệm PearPC có thể build và chạy trên macOS hiện đại trở thành điểm khởi đầu cho việc port
  • PearPC là một codebase đa nền tảng và không dùng rộng rãi các khái niệm khó port như thread, nên khá dễ chuyển sang WebAssembly/Emscripten và runtime của Infinite Mac
    • Trong vài ngày, dự án đã tiến tới build được, xuất video, nạp disk image và nối input chuột/bàn phím
    • Kết quả là Mac OS X 10.2 có thể chạy trong trình duyệt ổn định hơn trước

Tối ưu hiệu năng và các nút thắt còn lại

  • PearPC chạy Mac OS X 10.2 ổn định hơn, nhưng cảm giác chậm hơn DingusPPC
  • Bộ benchmark harness của DingusPPC được chuyển sang PearPC, đồng thời các tối ưu hóa từng làm cho DingusPPC cũng được áp dụng lặp lại cho PearPC
    • Cả hai trình giả lập đều là interpreter thuần dựa trên bảng tra cứu, nên công việc tương đối trực tiếp
    • Thời gian khởi động Mac OS X 10.2 giảm được khoảng 15 giây
  • Ngay cả sau tối ưu hóa, vẫn mất gần 2 phút để đạt trạng thái có thể hoạt động hoàn chỉnh
    • UI của Infinite Mac đã được thêm thông báo rằng quá trình khởi động Mac OS X có thể chậm
  • Nút thắt lớn nhất là PearPC không có cache MMU
    • Mọi thao tác load/store đều phải đi qua tính toán địa chỉ phức tạp và tốn kém
    • DingusPPC có cache phân tầng trưởng thành hơn, có vẻ hiệu quả
  • PearPC có thể ổn định hơn DingusPPC khi chạy 10.2~10.4, nhưng codebase kém nguyên tắc hơn
    • Dùng firmware và driver video tùy biến
    • Chỉ triển khai một phần các lệnh PowerPC cần cho Mac OS X
    • Về dài hạn, kỳ vọng DingusPPC sẽ trở thành lựa chọn nhanh, ổn định và chính xác

Kiểm tra bit FP và lỗi render

  • Trong lúc áp dụng cách “bảng giải mã hợp nhất” cho interpreter của PearPC theo từng nhóm opcode, một hồi quy đã xảy ra ở thay đổi liên quan đến phép toán dấu phẩy động
    • Xuất hiện lỗi hiển thị Dock
    • Cửa sổ Finder không mở được
  • Việc dispatch các nhóm opcode 59 và 63 không chỉ là tra cứu đơn giản mà trước hết phải kiểm tra bit FP trong Machine State Register
    • Nếu bit FP không được đặt, phải ném ngoại lệ “floating point unavailable”
  • Các chip PowerPC dùng trong Mac thời đó có FPU, nhưng ngoại lệ này xảy ra thường xuyên trong lúc Mac OS X khởi động
    • Mã nguồn kernel xnu thời đó có vị trí xóa bit FP và trình xử lý ngoại lệ
    • Có vẻ đây là tối ưu hóa để tránh lưu/khôi phục thanh ghi FPU khi chuyển ngữ cảnh
  • Khi triển khai cùng kiểm tra FP trong mã dispatch đã tối ưu, vấn đề render biến mất
  • Lỗi tương tự cũng còn trong DingusPPC
    • DingusPPC không kiểm tra bit FP và luôn cho lệnh dấu phẩy động đi qua
    • Sau bản sửa nhanh để phát sinh ngoại lệ, lỗi hiển thị Mac OS X biến mất
    • Sau đó, triển khai chính thức và bản sửa tránh suy giảm hiệu năng được đưa vào, giúp độ ổn định của DingusPPC cải thiện đáng kể
  • Việc kết hợp hai trình giả lập đã mở rộng phạm vi Mac OS X đời đầu có thể chạy được
    • DingusPPC có thể chạy 10.1 ổn định
    • PearPC không chạy 10.1 ổn định
    • 10.0 vẫn không ổn định, còn Public Beta thì kernel panic ngay lập tức

Cấu trúc lại Infinite HD

  • Một trong những điểm hấp dẫn của Infinite Mac là Infinite HD chứa phần mềm đúng thời kỳ được mount kèm
  • Để phù hợp với hỗ trợ Mac OS X, một phiên bản riêng đã được tạo ra, vượt ra ngoài các ứng dụng Classic Mac thập niên 80~90 và chứa phần mềm thời Mac OS X đời đầu
    • Ngoài các ứng dụng cá nhân ưa thích, danh sách cũng được mở rộng nhờ các đề xuất
  • Disk image được tạo bằng cách mở rộng cơ chế tự động hóa hiện có
    • Vì thời Mac OS X đời đầu dùng disk image rất nhiều, chức năng đưa .dmg vào các thư mục bổ sung trong image được tạo đã được thêm vào
  • Các file .dmg cũ có nhiều biến thể dù cùng phần mở rộng, nên không phải lúc nào cũng mount được bằng hdiutil trên macOS hiện đại
    • Cuối cùng, dự án dùng dmg2img để trích xuất raw partition trước
    • Sau đó dùng cách vòng: tạo lại một disk image mới mà macOS hiện đại có thể mount và sao chép
  • Khi sưu tầm phần mềm thực tế, phần mềm Mac OS X đầu đến giữa thập niên 2000 là một vùng ít được bao phủ
    • Macintosh Garden cũng có một phần, nhưng không phải ưu tiên cao
    • Ở nhà cung cấp gốc, nhiều phần mềm đã quá cũ nên bị gỡ xuống
    • Wayback Machine được sử dụng nhiều
  • Developer CD đi kèm từng phiên bản Mac OS X cũng được cài đặt để có thể dùng các công cụ như Project Builder và Interface Builder

Hệ thống tệp và mount nhiều đĩa

  • Quy trình build đĩa chủ yếu xoay quanh HFS, nhưng mặc định của thời kỳ đó là HFS+
    • HFS+ cung cấp các tính năng nâng cao hơn, như tên tệp dài hơn và ký tự Unicode tùy ý
    • Các file disk image phụ thuộc vào tính năng HFS+ không thể chuyển đổi mà không mất mát
    • Với đa số phần mềm, điều này không gây vấn đề lớn
  • Để mount tối đa 3 ổ gồm boot disk, Infinite HD và Saved HD, dự án mượn cách làm từ fork DingusPPC
    • Khi khởi động, tạo ngay một disk image đa phân vùng từ số lượng tùy ý các partition image được chỉ định

Chế độ Aqua và UI trang web

  • Để hoàn thiện việc bổ sung Mac OS X, các control của trang Infinite Mac cũng được thêm chế độ Aqua
    • Trước đó đã có giao diện classic, Platinum và NeXT
  • Trong thiết kế Aqua, phong cách 10.0/10.1 được chọn
    • Dù tác giả thích phiên bản tiết chế hơn của 10.3 và 10.4, cảm giác hoài niệm với 10.0/10.1 được cho là lớn hơn
  • Để dùng cùng asset hình ảnh như OS, tài nguyên gốc được trích xuất thay vì dùng ảnh chụp màn hình
    • Vì asset Aqua dùng nhiều thành phần bán trong suốt, ảnh chụp màn hình thông thường là không đủ
    • resource_dasmpxm2tga được dùng để trích xuất asset gốc từ Extras.rsrc

Chạy Classic, chế độ verbose và những phát hiện nhỏ

  • Vì có thể mount nhiều image, có thể đặt kèm một partition Mac OS 9 và khởi động môi trường tương thích Classic
    • Tính năng này chỉ hoạt động trên 10.1
    • PearPC không hỗ trợ Classic
    • Kết quả là có thể giả lập ứng dụng Classic Mac bên trong Mac OS X được giả lập trong máy ảo WebAssembly
  • Các image Mac OS X cũng cho thấy thay đổi hành vi của Calculator
    • Đến 10.3 vẫn chưa có hành vi nhấn lặp lại =
    • 10.4 có hành vi đó
  • Do Mac OS X khởi động chậm, chế độ verbose được đưa ra để hiển thị thêm tiến trình
    • PearPC có cơ chế tích hợp sẵn
    • DingusPPC được thêm tính năng chỉ định biến Open Firmware khi khởi động
    • Trong hộp thoại custom instance của Infinite Mac, tính năng này được hiển thị dưới dạng công tắc “Debug Mode”
  • Tác giả cũng đã cố giành domain macosx.app nhưng domain này đã được đăng ký
    • Domain đó chuyển hướng tới một video YouTube cụ thể
    • YouTuber trong video trả lời rằng không phải họ là người đã đăng ký

Ứng viên tiếp theo và khả năng QEMU

  • Với hỗ trợ Mac OS X, Infinite Mac đã chạm tới điểm gần với macOS hiện đại
    • Sau đó vẫn còn hai lần chuyển đổi CPU và nhiều thay đổi nhỏ
    • Tiger là hình thái mà ngay cả người dùng macOS hiện nay về cơ bản vẫn có thể nhận ra
  • Các mục tiêu retro computing sâu hơn hoặc đặc thù hơn còn lại gồm A/UX, Lisa, Pippin và Newton
    • A/UX là hệ thống cùng thời với classic Mac OS và đáng để so sánh với NeXTStep
    • Shoebill chạy được A/UX và codebase cũng có vẻ có thể port
    • Lisa, Pippin và Newton qua Einstein cũng vẫn là các ứng viên
  • Trước đây, QEMU được xem là dự án quá lớn để port sang WebAssembly, và hiệu năng của qemu.js cũng có vẻ khó dùng được
  • Gần đây, qemu-wasm và bài trình bày FOSDEM đã cho thấy lại khả năng này
    • Hiệu năng demo guest Linux khá khích lệ
    • Trong một benchmark nhanh tính checksum MD5 cho 100MB dữ liệu, qemu-wasm mất 8 giây, DingusPPC mất 13 giây, PearPC mất 18 giây
    • Với guest đồ họa là Mac OS X thì vẫn còn khoảng cách lớn

1 bình luận

 
GN⁺ 2025-06-21
Ý kiến trên Hacker News
  • Đúng là PearPC đã trụ được khá tốt trong vài năm, nhưng sau khi maintainer ban đầu qua đời trong một tai nạn tàu hỏa, dự án đã mất phần lớn động lực
    Khi đó tôi là một người dùng nhiệt thành và thành viên cộng đồng, đến giờ nghĩ lại vẫn thấy rơi nước mắt
    https://www.wired.com/2004/07/pearpc-coauthor/

    • Rất nhiều khi các lập trình viên xuất sắc đột ngột qua đời mà không có cáo phó, chỉ có một lập trình viên khác dường như biết chút gì đó, nên đôi lúc tôi muốn tin rằng người ngoài hành tinh thấy họ quá quý giá để để lại Trái Đất và đã đưa họ đi
    • Có người đã sao chép công trình của anh ấy và bán dưới tên cherryos
    • Bài viết này nằm sau tường phí
  • Infinite Mac là một bộ sưu tập các bản phát hành hệ thống và phần mềm Macintosh cổ điển cùng NeXT, giúp dễ dàng truy cập ngay trong trình duyệt web
    https://infinitemac.org/

    • Lẽ ra bài blog nên liên kết tới hoặc định nghĩa Infinite Mac để chỉ riêng bài viết cũng có thể hiểu được
    • Cảm ơn vì đã liên kết trang này. Đây là thiếu sót lớn của tác giả blog, và nếu không có bình luận này thì có lẽ tôi đã không tìm được trang tuyệt vời đó
  • Một trong những phần thú vị nhất của bài viết là liên kết tới trình giả lập CPU PPC dưới 700 dòng
    https://github.com/kwhr0/macemu/blob/master/SheepShaver/src/...
    Ta thấy sự gọn nhẹ như vậy ở các trình giả lập 6502, nhưng với một kiến trúc tương đối hiện đại thì không phổ biến

    • Vì là RISC nên cũng không quá ngạc nhiên. Trình giả lập MIPS cũng cỡ đó
  • Tôi không tưởng tượng nổi một người mê công nghệ 20 tuổi ngày nay sẽ cảm thấy thế nào khi đối diện OS X 10.4 hay 10.5, 10.6
    Hơi cay đắng là tôi lại nghĩ tới cảnh một người thời kỳ đen tối đứng trước tượng cổ điển và tự hỏi: “Loài người từng có thể tạo ra thứ như thế này sao?”
    Tuy vậy thị hiếu thay đổi. Người thời kỳ đen tối thật sự có thể đã nghĩ “Sự suy đồi ngoại giáo này là gì?”, còn ngày nay có người có thể nhìn và nghĩ “Biểu tượng kiểu ảnh thật trông sến quá!”

    • 10.4 về cơ bản trông và hoạt động gần như cùng một cách với bất kỳ macOS hiện đại nào. Dù có Liquid Glass thì cách hoạt động vẫn tương tự
      Cài app vẫn là “kéo thả app từ dmg kiểu IKEA”, thỉnh thoảng có zip hoặc pkg. Cửa sổ Finder đã có bookmark ở sidebar bên trái, Dock cũng hoạt động y như vậy. Có trải qua giai đoạn Dock 3D kỳ quặc, hình như là Leopard
      Không có Mac App Store, nhưng ngày nay hầu như cũng chẳng mấy ai dùng; Spotlight thì mới xuất hiện từ Tiger. Dễ nhận ra hơn nhiều so với khác biệt giữa Windows XP và 11. XP vận hành khá khác 11
    • Tôi 20 tuổi, và vì có ký ức mơ hồ từng dùng 10.5 hoặc 10.6 hồi nhỏ nên nó mang cảm giác hoài niệm
    • Tôi bắt đầu làm lập trình viên vào thời 10.4/10.5. Đó là giai đoạn tôi chủ yếu chạy đủ thứ và chỉnh theme để cố làm nó trông như kiểu nửa dark mode
      Hồi đó việc đụng vào thư mục hệ thống không phức tạp như bây giờ
    • Tôi không rõ “thời kỳ đen tối” nghĩa là gì. Không hẳn là năng lực đã biến mất, mà giống như đối tượng được đế chế chi tiền khác với đối tượng được các vương quốc độc lập chi tiền hơn
      Đầu thời Trung cổ cũng có nhiều hiện vật và công trình kiến trúc đẹp. Tuy không còn lại nhiều, nhưng chỉ riêng những thứ tôi từng thấy tận mắt cũng có ví dụ như mộ thuyền Sutton Hoo hay các nhà thờ Anglo-Saxon
  • Ảnh chụp màn hình thật sự gây kinh ngạc. Cá nhân tôi thấy Mac OS X trông đẹp hơn Mac OS ngày nay rất nhiều
    Nó rõ ràng và ngăn nắp, tạo cảm giác “Được rồi, với môi trường này mình có thể làm việc!”
    Mac OS hiện tại thì cho cảm giác như “Cứu với, tôi rơi vào một bao kẹo rồi, làm sao thoát ra đây?” Tôi tò mò không biết người khác có cảm thấy vậy không

    • Tôi có cảm giác mình ngày càng thích giao diện màu xám ngày xưa (Windows 95, macOS 9). Giống như máy tính bỏ túi chỉ là một công cụ, UI như vậy cũng tạo cảm giác như công cụ nên rất dễ chịu
    • Thành thật mà nói thì tôi không thấy vậy. UI mà ta thực sự nhìn và làm việc chỉ giới hạn ở thanh menu, ba dấu chấm, đôi khi là thanh Spotlight
      Windows cũng tương tự. Hầu như chẳng ai làm việc trực tiếp với bản thân hệ điều hành, app native cũng hiếm, phần lớn là dựa trên trình duyệt hoặc là app đa nền tảng dùng hệ thống thiết kế của bên thứ ba
    • Thực ra gần như không có lý do gì khiến MacOS hiện đại không thể cung cấp diện mạo và cảm giác như thế này. Nếu có một lý do rõ ràng thì chỉ là thiết kế phần mềm tệ hại, thiếu tính mô-đun
      Tôi cũng chán việc các công ty phần mềm giả vờ như họ làm phần mềm giỏi rồi
    • Thứ tôi thích nhất là vẻ pha trộn giữa Aqua và brushed metal của 10.3 Panther
      10.4 Tiger cũng tương tự, nhưng thanh menu phía trên được làm bóng nên theo thời gian tôi thấy không còn thích lắm. 10.5 Leopard có Dock 3D lòe loẹt và quê, thanh menu trên trong suốt, cùng các gradient hiện đại hơn
      Hồi đó trông rất ngầu, nhưng gradient không ngầu bằng brushed metal và Aqua. Sau đó thì mọi thứ đều hơi nhàm chán
    • Các sọc trên cửa sổ hơi quá đà, và tôi khá mừng khi chúng biến mất
  • Thật bất ngờ là họ thành công với dự án pearpc đã hơn 10 năm không có commit cuối cùng: https://github.com/sebastianbiallas/pearpc
    Fork của anh ấy ở đây: https://github.com/mihaip/pearpc
    Có vẻ đã thêm target WebAssembly nhưng vẫn duy trì hỗ trợ x86-64
    Ngoài ra anh ấy cũng viết blog về quá trình đưa NextStep vào Infinite Mac: https://blog.persistent.info/2024/03/infinite-mac-nextstep.h...

  • Những thứ như thế này thật sự rất tuyệt. Vào thời đó, Aqua giống như một sự mặc khải

    • Mọi trình quản lý cửa sổ trên Linux đều có theme Aqua. Apple đã thực sự đưa ra hệ điều hành mà những người nói về “năm của desktop Linux” đã cố tạo ra suốt nhiều năm và đến giờ vẫn đang làm
      Đó là một Unix phổ thông với độ dễ dùng đến mức bà cũng có thể dùng được, lại còn hỗ trợ cả các ứng dụng bên thứ ba lớn, nên đúng là một cú home run trọn vẹn
    • Aqua đến giờ vẫn giống như một sự mặc khải. Khả năng nhận diện ngay các nút điều khiển cửa sổ đã thụt lùi khá nhiều
      Hy vọng một số yếu tố như vậy sẽ quay lại trong Liquid Glass, nhưng nói thật thì Aqua đến giờ vẫn trông rất đẹp
      Điều mà các bản bắt chước như Windows Vista hay các theme Linux bỏ lỡ là mọi thứ đã nhất quán và dùng được đến mức nào. Nó trông ngầu, nhưng quan trọng hơn là nó hoạt động thật sự tốt
    • Steve Jobs từng nói: “Trong 18 tháng qua, chúng tôi đã bí mật thiết kế một giao diện người dùng hoàn toàn mới, đưa di sản của Apple sang thế kỷ tiếp theo. Chúng tôi gọi UI mới này là Aqua, vì nó giống chất lỏng. Một trong những mục tiêu thiết kế là khiến bạn vừa nhìn thấy đã muốn liếm nó”
    • Liquid Glass có vẻ gợi lại thời kỳ đó
  • Thật vui khi thấy lại những UI trong ký ức. Tôi nhớ Platinum khoảng thời Macintosh OS 8, và UI MacOS X thời OS X 10.3 và 10.4 nhìn chỉ muốn liếm
    Tôi cũng thích OpenLook của SunOS/Slowlaris, UI NeXTStep/OpenStep, Microsoft Windows 2000 — đỉnh cao trước thời Winblows XP, thứ lẽ ra không bao giờ nên trộn màu cam với xanh lá — và cũng nhớ đến IRIX của SGI cùng những niềm vui kiểu Motif
    Các thành phần UI hầu như luôn có thể phân biệt, dễ hiểu và nhất quán. Khi thao tác với một control UI chuẩn, trước khi thực thi cũng đã biết chính xác chuyện gì sẽ xảy ra, và thực tế đúng là diễn ra như vậy
    Có vẻ như kết quả của việc cho phép tùy biến, gắn theme, thay thế và làm cho “ngầu” hơn chính là những gì chúng ta có ngày nay

  • Những ngày đầu của OS X là thời hoàng kim thật sự của Mac. Phần cứng khá cạnh tranh với x86, còn hệ điều hành thì thuộc hàng tốt nhất mọi thời
    Cuối cùng cả hai đều bắt đầu trục trặc, nhưng hiện nay phần cứng đang ở thời hoàng kim thứ hai, nên ta có thể mơ rằng một ngày gần đây Mac OS có thể lại trở nên xuất sắc
    Tuy vậy, ngay cả trong thời hoàng kim phần cứng mới này, hiệu năng mô phỏng ở đây trên M1 và Safari gần như ở mức khó dùng

    • Tôi không nghĩ Mac OS đang đi theo hướng trở nên xuất sắc trở lại
    • Tôi đã dùng các mẫu x86 đời đầu; về giá thì chúng không cạnh tranh, và OS X cũng không tốt như tôi tưởng
      Kernel panic xảy ra hằng ngày, và QuickTime thường chết vì lỗi segmentation khi đang xem video
      Muốn phát các định dạng tệp như wmv hay divx thì phải làm một nhiệm vụ truy tìm và cài đúng codec
      Máy cũng bị quá nhiệt vì để làm cho đẹp mà không bố trí đúng các khe thông gió cho luồng khí
    • Tôi đã dùng theo kiểu Think Different™ suốt từ 68k sang PPC, Intel rồi đến Silicon. Hai lần chuyển CPU gần đây là lúc hiệu năng tăng mạnh nhất, cả về hiệu năng tuyệt đối lẫn hiệu năng trên mỗi watt
      Chiếc M4 mini bản cơ bản nhập môn thật đáng kinh ngạc. Cả chiếc máy tính tiêu thụ ít điện hơn một GPU x86 có hiệu năng tương tự
    • Vẫn là vấn đề cũ. Phần cứng mang lại hiệu năng, rồi phần mềm lấy mất nó
  • Dark Castle! Hồi nhỏ, bố tôi có một chiếc Apple Lisa. Ông đang phát triển một bộ sản phẩm kế toán cho Apple nên Apple đã tử tế cung cấp chiếc máy đó
    Khi ấy tôi xem cỗ máy đáng kinh ngạc này là điều hiển nhiên, và chỉ dùng để chơi game với MacPaint. Trong bộ sưu tập đĩa 3,5 inch của bố có một đĩa ghi “Dark Castle”, nhưng vì lý do tôi không nhớ, nó không chạy trên Lisa
    Tôi đoán đó là một trò chơi, nhưng rất tiếc vì không thể chơi được, và bị cuốn hút bởi chiếc đĩa bí ẩn ấy
    Đến năm 2025, tôi chạy trình giả lập Infinite Mac System 7: https://infinitemac.org/1991/System%207.0
    Tim tôi như hẫng một nhịp. Ngay trong thư mục “Games” có Dark Castle
    Sau 30 năm, cuối cùng tôi cũng có thể chơi trò này. Đồ họa rất cuốn hút, và cũng cảm nhận được các yếu tố của những game kinh điển Sierra như King’s Quest và Prince of Persia
    https://en.wikipedia.org/wiki/Dark_Castle
    Lịch tối nay coi như đã được định sẵn với trò này