1 điểm bởi GN⁺ 9 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Có thể tái hiện thực Mac OS của thập niên 1980 ở cấp độ API, cho phép chạy trực tiếp các ứng dụng Mac 68K mà không cần ROM hay phần mềm hệ thống của Apple
  • Với kiến trúc thay thế chính hệ điều hành thay vì mô phỏng toàn bộ phần cứng, có thể khởi chạy ứng dụng ngay lập tức mà không cần quá trình boot
  • Được cấu thành từ trình giả lập 68K ở backendfrontend dựa trên SDL2, cung cấp cùng một môi trường trên nhiều nền tảng như macOS, X11, Linux framebuffer
  • Có thể chạy các phần mềm Macintosh cổ điển như MacPaint, Lode Runner, The Fool’s Errand trong môi trường đồ họa 1-bit
  • Được phát hành dưới dạng mã nguồn công khai trên GitHub, đây là một dự án tái hiện thực mở có thể chạy cả trên hệ thống họ POSIX và VNC client

Tổng quan về Advanced Mac Substitute

  • Advanced Mac Substitute (AMS)một dự án tái hiện thực Mac OS của thập niên 1980 ở cấp độ API, có thể chạy các ứng dụng Mac 68K mà không cần ROM hay phần mềm hệ thống của Apple
  • Khác với các trình giả lập truyền thống, AMS không mô phỏng toàn bộ phần cứng, mà chỉ mô phỏng bộ xử lý 680x0 và thay thế chính hệ điều hành
  • Nhờ cấu trúc này, có thể chạy ứng dụng ngay lập tức mà không cần qua quá trình boot

Kiến trúc và các thành phần

  • AMS được cấu thành theo dạng ứng dụng phân tách (factored application)
    • Backend là trình giả lập 68K, có thể build và chạy trên bất kỳ hệ thống họ POSIX nào
    • Frontendlớp trừu tượng hóa terminal bitmap, dựa trên SDL2, bao gồm các bản triển khai cho macOS, X11 và Linux framebuffer (fbdev)
  • Nhờ cấu trúc này, AMS cung cấp cùng một môi trường chạy ứng dụng Mac 68K trên nhiều nền tảng khác nhau

Ứng dụng có thể chạy và demo

  • AMS có thể chạy nhiều ứng dụng dành cho Macintosh nguyên bản
    • Ví dụ gồm các trò chơi phát hành năm 1984 như Amazing, Solitaire, Missile, IAGO
    • Ngoài ra còn chạy được các chương trình như MacPaint, System’s Twilight, Lode Runner, The Fool’s Errand
  • Mỗi ứng dụng đều hoạt động trong AMS dưới môi trường đồ họa 1-bit, và có cung cấp video minh họa hoạt động thực tế

Các tính năng được hỗ trợ

  • AMS hỗ trợ các thành phần đồ họa và UI của Mac OS như sau
    • Đồ họa độ sâu 1-bit, vùng (regions), hình tròn và hình chữ nhật bo góc, đường thẳng (line), con trỏ, GrafPorts, văn bản, cửa sổ, control, menu, hộp thoại
  • Nhờ đó, dự án tái hiện khá trung thực các đặc tính thị giác và chức năng của phần mềm Macintosh thập niên 1980

Mã nguồn và môi trường chạy

  • Mã nguồn của AMS được công khai trên GitHub tại kho metamage_1
  • Có thể chạy trực tiếp trên macOS / OS X, X Window System, console Linux framebuffer hoặc VNC client
  • Tài liệu cũ (legacy documentation) của dự án đã được chuyển sang một trang riêng, và hiện đang được chỉnh sửa lại

Ví dụ trình diễn

  • Trang chính thức có kèm nhiều video demo, có thể xem cảnh chạy của MacPaint, Amazing, Nyanochrome Cat
  • Màn hình “Welcome to Advanced Mac Substitute” không phải màn hình boot thực sự mà là giao diện dưới dạng ứng dụng

Thông tin khác

  • Dự án được quản lý tại v68k.org, và bản cập nhật mới nhất được thực hiện vào ngày 29 tháng 11 năm 2025
  • Nhà phát triển hoạt động thông qua tài khoản GitHub và Twitter

1 bình luận

 
Ý kiến trên Hacker News
  • Đây thực sự là một dự án rất tuyệt. Cảm giác của MacOS cổ điển đen trắng mang lại một kiểu mỹ học như ở ‘dòng thời gian thay thế’, khiến nó tạo cảm giác đáng tin cậy và ổn định
    Nó gợi nhớ đến những chiếc Macintosh SE hay Plus từng xếp thành hàng trong phòng máy tính ở trường tiểu học
    Xin giới thiệu giao diện desktop web MacOS System 7 mà tôi đã làm. Đây là một phiên bản diễn giải lại có thể duyệt web thực sự

    • Vừa nhìn thấy biểu tượng Mac đang cười và thanh tiến trình trống là tôi lập tức cho phép domain trong NoScript. Thực sự rất cuốn hút
      Tôi đã cười lớn khi nhìn screensaver. Nó vừa quen vừa lạ, như thể đang nhìn vào một vũ trụ song song
      Trước đây tôi cũng từng làm một trình mô phỏng Mac trên web. Ban đầu là để học CSS và JS, nhưng rồi tôi nhận ra web không phù hợp để chồng chất các cấu trúc phức tạp, và chính trải nghiệm đó đã trở thành động lực để làm ra Advanced Mac Substitute
  • Trong vài tháng gần đây tôi đã thêm ARM64 JIT vào Basilisk II
    Hiện giờ tôi đang vá Quadra ROM để bỏ qua việc phát hiện phần cứng NuBus
    Tôi rất muốn thử dự án này. Nếu môi trường Mac cổ điển có thêm các tính năng hiện đại như chia sẻ tệp, thì có lẽ nó sẽ hoàn hảo ngay cả trên thiết bị nhỏ

  • Thật đáng kinh ngạc khi phần mềm từ thập niên 1980 có thể chạy chỉ với tính tương thích API
    Việc nó không phụ thuộc vào các chi tiết triển khai như timing hay căn chỉnh bộ nhớ là điều rất ấn tượng
    Chỉ cần phụ thuộc vào đúng một chi tiết triển khai thôi thì trên OS khác cũng có thể không chạy được

    • Mac Classic là một hệ thống có độ thuần khiết gần như hoàn hảo về mặt cấu trúc
      Nó thực hiện được hầu hết chức năng chỉ với framebuffer 1-bit và CPU
      Việc hack trên máy 8-bit phần lớn là để lách các giới hạn về chức năng
      Tôi không biết Apple có đưa ra những quyết định này với các thế hệ tương lai trong đầu hay không, nhưng nhờ cấu trúc đơn giản mà việc mở rộng ở các thế hệ sau hẳn đã dễ dàng hơn
    • Tất nhiên cũng có nhiều ứng dụng phụ thuộc vào những đặc điểm lệch chuẩn (quirk) trong triển khai
  • Đây thực sự là một dự án rất tuyệt. Nó khiến tôi nhớ đến ARDI Executor, phần mềm thương mại ra mắt năm 1990
    Khi đó nó đạt tốc độ đáng kinh ngạc nhờ tái hiện ở mức API trên phần cứng PC
    Tôi vẫn nhớ hồi nhỏ chạy game Mac trên PC Windows và thầm thốt lên ‘à, hóa ra chuyện này làm được’
    Có thể tham khảo thêm wiki về Executormã nguồn GitHub
    Một kỹ sư của ARDI cũng từng xuất hiện thoáng qua trong phim tài liệu Triumph of the Nerds năm 1996

    • Tôi có biết về Executor nhưng chưa từng tận mắt thấy nó
      Hồi đó hiệu năng mô phỏng là yếu tố quan trọng, nhưng giờ phần cứng đã nhanh hơn nên không còn là vấn đề lớn
      Điều quan trọng lúc này là tính di động và khả năng bảo trì, cùng với việc vá các chương trình vốn được thiết kế độc quyền cho CPU để phù hợp với môi trường hiện đại
  • Tôi không thể hình dung nó sẽ nhanh hơn phần cứng Mac 512k nguyên bản đến mức nào
    Nhớ lại thời chạy hệ thống chỉ bằng một đĩa mềm, cứ phải thay đĩa liên tục, đúng là một trải nghiệm cơ học rất riêng
    Nếu có tính năng ‘chạy chậm lại’ để tái hiện cả tiếng đọc/ghi đĩa mềm thì chắc sẽ rất thú vị

    • Gần đây trên HN có một dự án phần cứng retro có kèm mô phỏng âm thanh. Âm thanh đó là thứ gây ấn tượng nhất
    • Tôi từng dùng trình giả lập Apple II là Virtual II, nó có tiếng đĩa mềm và chức năng chỉnh tốc độ nên mang lại cảm giác tương tự
    • Tôi còn nhớ hồi nhỏ chơi King’s Quest IV trên Apple IIe. Mỗi lần chuyển màn hình lại phải đổi đĩa mềm. Đúng là nỗi khổ thay đĩa
  • Tôi tò mò không biết nó so với Executor thì thế nào

  • Sẽ thật tuyệt nếu có một lớp tương thích kiểu Carbon cho phép các ứng dụng cũ chạy trong khung cửa sổ hiện đại và vẫn lưu tệp được

    • Advanced Mac Substitute lưu tài liệu và tệp cấu hình vào một thư mục host đã được sandbox
      Ví dụ, trong demo MacPaint, nếu nhấp đúp vào tài liệu Hello thì nó sẽ mở bằng MacPaint.app trong Finder của macOS
    • Có cảm giác những dự án như thế này hoàn toàn có thể trở thành nền tảng cho một hệ thống như vậy
  • Tôi tự hỏi liệu nó được hoàn thành trước MACE hay chỉ đơn giản là nhắm tới mục tiêu khác

  • “Dark Castle” có chạy được không? Tôi đã dành rất nhiều thời gian cho trò đó

    • Tôi vẫn luôn thắc mắc tại sao nhân vật chính lại trông giống Shaggy trong Scooby Doo đến vậy
      Và nếu nhìn vào commit này, thì có vẻ là nó thực sự chạy được
    • Chắc tôi sẽ chuyển thẳng sang Beyond Dark Castle. Mức độ hoàn thiện của cả series rõ ràng đã khác hẳn
  • Đây thật sự là một thành tựu đáng nể. Tôi tò mò về quá trình thực hiện, động lực và thời gian đã bỏ ra

    • Có lẽ động lực ban đầu nhất để tôi bắt đầu dự án này là khát khao hồi sinh The Fool’s Errand. Trớ trêu thay, đó lại chính là điểm khởi đầu
      Có lẽ vì phần lớn lời gọi MacOS khi đó được truy cập thông qua lệnh TRAP của 68K, nên thay vì mô phỏng phần cứng, họ đã tái hiện trực tiếp ROM
      Một người bạn của tôi trước đây cũng từng viết lại Toolbox thành thư viện C để port ứng dụng Mac sang PC
      Gần như mọi thứ như QuickDraw, Event Manager, Memory Manager đều được triển khai lại từ đầu. Họ dùng OpenLook UI nên cảm giác hoàn toàn khác biệt