Mini vMac là một phần mềm đồ hoạ mã nguồn mở, miễn phí và cross-platform được triển khai trong C và được thiết kế từ phần bù đắp để hoạt động như một trình mô phỏng cho hệ thống máy tính Macintosh Plus do Apple phát triển trên Linux, BSD, Microsoft Windows và Mac OS X.
Là một trong những máy Macintosh đầu tiên do Apple thiết kế, Macintosh Plus chỉ chạy phần mềm Mac cũ, dĩ nhiên, không hoạt động trên các máy tính Macintosh gần đây. Do đó, phần mềm Mini vMac giúp bảo vệ lịch sử. Nó được thiết kế để dễ sử dụng, di động và đơn giản nhất có thể.
Bắt đầu với Mini vMac
Để sử dụng ứng dụng Mini vMac trên hệ thống GNU / Linux của bạn, đảm bảo rằng bạn tải xuống gói nhị phân tương ứng với kiến trúc phần cứng của máy tính, lưu kho lưu trữ ở đâu đó trên máy tính của bạn, giải nén nó và nhấp đúp vào tệp thực thi .
Ứng dụng sẽ mở ra, thông báo cho bạn rằng không thể định vị được một hình ảnh ROM của hệ thống Macintosh Plus. Điều này có nghĩa là bạn cũng sẽ phải lấy tệp vMac.ROM (có thể tìm thêm chi tiết trên trang chủ của dự án) và đặt nó vào cùng thư mục với tệp thực thi Mini vMac.
Sau khi bạn đã có được ảnh Macintosh Plus ROM, bạn phải đóng chương trình và mở lại nó. Nếu tệp ROM là hợp lệ, hệ thống sẽ tự động khởi động và cho phép bạn sử dụng nó như bạn sẽ sử dụng bất kỳ hệ điều hành ảo hóa nào khác.
Chạy trên tất cả các hệ điều hành chính
Phần mềm này thực sự là một spin off của ứng dụng vMac, nó đã không được cập nhật trong nhiều năm. Để thuận tiện cho bạn, nó được phân phối như là các gói nhị phân được xây dựng trước cho các hệ điều hành nói trên, hỗ trợ cả kiến trúc tập lệnh 64-bit (x86_64) và 32-bit (x86).
Mã nguồn của ứng dụng cũng có sẵn để tải xuống, đối với những người bạn muốn tối ưu hóa phần mềm cho một nền tảng phần cứng hoặc hệ điều hành cụ thể.
mới trong bản phát hành này:
Tính năng mới trong phiên bản 3.3.3:
- Các tính năng mới trong biên dịch mặc định:
- Hệ điều hành khác được chính thức hỗ trợ bởi Mini vMac:
- FreeBSD trên x86-32 (Sử dụng & quot; -t fbsd & quot; trong hệ thống tạo)
- FreeBSD trên x86-64 (& quot; -t fb64 & quot;)
- OpenBSD trên x86-32 (& quot; -t obsd & quot;)
- OpenBSD trên x86-64 (& quot; -t ob64>)
- NetBSD trên x86-32 (& quot; -t nbsd & quot;)
- NetBSD trên x86-64 (& quot; -t nb64 & quot;)
- Dragonfly BSD trên x86-32 (& quot; -t dbsd & quot;)
- Dragonfly BSD trên x86-64 (& quot; -t db64 & quot;)
- OpenIndiana trên x86-32 (& quot; -t oind & quot;)
- OpenIndiana trên x86-64 (& quot; -t oi64 & quot;)
- Linux trên ARM (& quot; -t larm & quot;)
- Linux trên SPARC (& quot; -t lspr & quot;)
- Minix 3.2 (& quot; -t minx & quot;)
- Các cổng này thích ứng cùng mã X Window với cổng Linux và nên có cùng chức năng, ngoại trừ hiện tại không có âm thanh cho một số. Các phiên bản x86-64 hiện tại chậm hơn, vì thiếu sự tinh chỉnh ngôn ngữ lắp ráp và không nên sử dụng nếu các phiên bản x86-32 sẽ hoạt động.
- Các phiên bản X bây giờ có thể phát âm thanh bằng API OSS (Open Sound System). (Thường sử dụng các cài đặt tương thích trên mỗi hệ điều hành, chứ không phải là chính chính OSS.) Âm thanh được kích hoạt mặc định trên FreeBSD và NetBSD. Biên dịch âm thanh không có vấn đề (sử dụng & quot; -sound 1 & quot;) trên Dragonfly BSD và OpenIndiana, nhưng tôi vẫn chưa thể kiểm tra được. Bắt âm thanh trên Dragonfly BSD dường như yêu cầu một số cài đặt bằng tay. OpenIndiana dường như không tạo ra âm thanh nào trong VMware Fusion. Âm thanh cũng biên dịch mà không có vấn đề gì trên OpenBSD, nhưng nó không hoạt động - thiết lập tỷ lệ mẫu mong muốn. Minix dường như không hỗ trợ âm thanh. Cũng có thể sử dụng API OSS trên Linux, sử dụng & quot; -snd-api & quot; xây dựng hệ thống tùy chọn.
- Các phiên bản X bây giờ sẽ cố gắng tìm trong thư mục chứa ứng dụng cho hình ảnh ROM, giống như phiên bản Macintosh và Windows làm. (Và cũng cho các tệp tin disk1.dsk vv) Nếu không thể xác định thư mục ứng dụng, thư mục hiện tại được sử dụng như trước. Điều này được thực hiện cho Linux, FreeBSD, NetBSD, Dragonfly BSD và OpenIndiana, nhưng không phải là OpenBSD và Minix.
- Các phiên bản X bây giờ có một tùy chọn dòng lệnh mới "-d [directory_path] & quot ;, trong đó [directory_path] được sử dụng thay vì thư mục ứng dụng khi tìm kiếm hình ảnh ROM, và tệp disk1.dsk và như vậy .
- Phiên bản X bây giờ có một tùy chọn dòng lệnh mới & quot; -n [app_name] & quot; trong đó tên ứng dụng được sử dụng thay vì tên ứng dụng cho tiêu đề cửa sổ Mini vMac.
- Các phiên bản X bây giờ hỗ trợ thư mục ROM trung tâm giống như các phiên bản Macintosh và Windows. Nếu & quot; ~ / .gryphel / mnvm_rom & quot; tồn tại, Mini vMac sẽ tìm kiếm ở đó cho hình ảnh ROM. Nếu nó không ở đó, nó sẽ tìm trong thư mục ứng dụng. (Và tùy chọn dòng lệnh -r sẽ ghi đè cả hai.)
- Thay đổi hành vi trong biên soạn mặc định:
- Vẽ màn hình mô phỏng với màn hình thực sự hiệu quả hơn. Khi độ sâu màu là 4 bit hoặc ít hơn, thay vì chuyển đổi mỗi pixel, có một bảng với 256 mục để chuyển đổi một byte một lúc. Nó cũng cẩn thận hơn về việc chỉ chuyển đổi các điểm ảnh trong hình chữ nhật bao quanh khu vực đã thay đổi chứ không phải toàn bộ màn hình.
- Phiên bản Linux tự động nạp thư viện ALSA để phát âm thanh, do đó Mini vMac sẽ vẫn chạy, không có âm thanh, ngay cả khi ALSA không được cài đặt. (Kỹ thuật này được thấy trong SDL) Vì vậy, mặc định phiên bản Linux đã được biên dịch với âm thanh, phù hợp với các phiên bản Mac và Windows.
- Trong phiên bản Linux, khi phát âm thanh với ALSA, snd_pcm_delay không còn được gọi nữa. Sự chậm trễ cho đến khi một mẫu được chơi không thực sự có liên quan. Những gì Mini vMac cần biết là thời gian để buffer underrun. Vì vậy, Mini vMac bây giờ nhìn vào kích thước bộ đệm trừ đi không gian có sẵn trong bộ đệm, có thể hữu ích hơn, nhằm mục đích ngăn chặn tràn bộ đệm, đồng thời giảm thiểu độ trễ.
- Các phiên bản X bây giờ sử dụng khóa tư vấn để từ chối mở để ghi một hình ảnh đĩa đã được mở ra để viết bằng một bản sao khác của Mini vMac. Trước đây, các phiên bản X của Mini vMac có thể mở một hình ảnh đĩa đã mở, có thể làm hỏng hình ảnh. Nếu Mini vMac chỉ có thể mở một ảnh đĩa chỉ đọc, chẳng hạn như vì người dùng đã khóa tập tin, thì khóa tư vấn không được sử dụng, và nhiều bản sao của Mini vMac có thể sử dụng.
- Các phiên bản X bây giờ cố gắng sử dụng tên ứng dụng để đặt tiêu đề cửa sổ của nó, giống như phiên bản Macintosh và Windows có. (Nếu không thể xác định được tên ứng dụng, "Mini vMac" được sử dụng như trước đây). Nó được tìm thấy cùng lúc với thư mục ứng dụng và được thực hiện cho cùng một hệ điều hành.
- Đối số dòng lệnh bây giờ đã được quét trước khi tìm kiếm tệp disk1.dsk và như vậy. Điều này là cần thiết cho mới & quot; -d & quot; tùy chọn để làm việc và có tác dụng phụ nếu hình ảnh đĩa được chỉ định trên dòng lệnh, chúng sẽ được mở trước. Nếu có hình ảnh trên dòng lệnh, Mini vMac bây giờ sẽ không phải lo lắng để tìm disk1.dsk cả.
- Biểu tượng & quot; -l & quot; (hoặc tùy chọn dòng lệnh & quot; / l & quot; trên Windows) sẽ bị xóa. Giá trị & quot ;- tốc độ z & quot; tùy chọn để xây dựng hệ thống nên được sử dụng thay thế. Tùy chọn dòng lệnh là từ trước khi hệ thống xây dựng tồn tại và quyết định được thực hiện để làm lợi cho các tùy chọn thời gian xây dựng trong các tùy chọn thời gian chạy.
- Sửa lỗi trong biên soạn mặc định:
- Phiên bản Windows bây giờ ánh xạ phím Enter trên bàn phím số tới phím Macintosh Enter. Bây giờ bạn có thể phân biệt phím đó từ phím Enter trên bàn phím chính, được ánh xạ tới phím Macintosh Return Key. Trước đây không có cách nào để nhập phím Macintosh Enter. Nhờ có & quot; Alex & quot; để chỉ ra vấn đề này.
- Trong phiên bản Windows, ở Chế độ toàn màn hình, kiểm tra cho dù một sự kiện xuống chính là một khóa tự động trả không chính xác. Vì vậy, tiềm năng chìa khóa có thể đã bị bỏ qua khi họ không nên có được. Tôi đã xoá kiểm tra, vì không rõ cách thực hiện đúng (khi sử dụng một "móc khóa bàn phím mức thấp" & quot;). Điều này không ảnh hưởng đến việc mô phỏng Macintosh, vì có một kiểm tra bổ sung cho các sự kiện dự phòng. Nó có thể ảnh hưởng đến chế độ Điều khiển, chẳng hạn như khi giữ Control-M.
- Phiên bản Windows hiện đáp ứng thông điệp WM_QUERYENDSESSION, vì vậy nếu bạn cố gắng tắt máy tính khi chạy Mini vMac (với các ảnh đĩa được gắn) thì Mini vMac sẽ phàn nàn và ngừng đóng.
- Trong phiên bản Linux, sử dụng ALSA để phát âm thanh, snd_pcm_start đã được gọi trước khi đưa bất kỳ mẫu âm thanh nào vào bộ đệm ALSA. Điều này có thể gây ra nói lắp vào đầu, hoặc theo một báo cáo, ngăn chặn âm thanh từ làm việc ở tất cả. Mini vMac đợi cho đến khi bộ đệm riêng của nó đầy, sau đó chuyển nhiều đến bộ đệm ALSA, và sau đó bắt đầu phát âm thanh.
- Khi phiên bản Linux được biên dịch cho ARM, nó bao gồm một kiểm tra rằng kết quả của snd_pcm_avail_update có vẻ hợp lý, và nếu không phải là cuộc gọi snd_pcm_status_get_avail thay thế. Điều này làm việc xung quanh những gì dường như là một lỗi trong Raspbian cho Raspberry Pi.
- Đồng hồ giả lập không được khởi chạy đúng và chỉ đúng sau lần đầu tiên & quot; thứ hai & quot; gián đoạn.
- Nếu màn hình mô phỏng quá lớn để phù hợp với màn hình thực (khi tự động quét có sẵn), nếu vùng của màn hình mô phỏng đã thay đổi không giao nhau với vùng hiển thị của màn hình mô phỏng, thì một hình chữ nhật không hợp lệ là dùng để vẽ. Tôi phát hiện ra điều này khi thử nghiệm Vector Linux 7, có vẻ như có một số kiểm tra gỡ lỗi bổ sung.
- Trong trường hợp không chắc chắn trong chế độ Toàn màn hình, tự động kiểm tra không được di chuyển để hiển thị hàng cuối cùng của các điểm ảnh ở cuối hoặc cột cuối cùng của các điểm ảnh ở bên phải.
- Nếu máy chủ không đủ nhanh để Mini vMac chạy ở tốc độ 1x, thì Mini vMac sẽ không chạy trơn tru, tạm dừng một vài giây theo định kỳ. Thử nghiệm cho tình huống này là không chính xác, và một bộ đếm byte sẽ tràn. (Có các bộ đếm nhỏ nhất có thể giúp bạn dễ phát hiện lỗi như thế này)
- Trong phiên bản X Window của Mini vMac, khi sử dụng tiện ích mở rộng Mini vMac để tạo tệp trên hệ thống chủ, chẳng hạn như với ExportFl, hộp thoại lưu không được triển khai. Trước đây, tệp sẽ đơn giản được tạo ra trong thư mục ứng dụng với tên được yêu cầu. Điều này không an toàn, và tệ nhất nó cho phép một chương trình chạy trong Mini vMac để thay thế cho ứng dụng Mini vMac. Vì vậy bây giờ các tệp tin sẽ được tạo ra trong thư mục có tên & quot; xuất & quot; trong thư mục chứa ứng dụng. Thư mục này sẽ được tạo nếu nó không tồn tại.
- Trong phiên bản Microsoft Windows, nếu đường dẫn đến hình ảnh đĩa được chuyển tới Mini vMac trên dòng lệnh dài hơn là hợp lệ cho đường dẫn, kết quả tràn bộ đệm.
- Phiên bản Windows CE bị thối rữa. Nó bây giờ biên dịch và ít nhất là các công trình trên Microsoft Device Emulator với Windows Mobile Phiên bản 5.0. Tôi không có ý tưởng nếu nó hoạt động trên phần cứng thực. Có ai quan tâm không? (Windows Mobile đã bị ngưng và thay thế bằng Windows Phone). Cổng này đã bắt đầu can thiệp vào việc duy trì phiên bản Windows chính, và sự lựa chọn là loại bỏ nó hoàn toàn hoặc làm cho nó được duy trì.
- Các tính năng mới không có trong trình biên dịch mặc định:
- Tùy chọn hệ thống xây dựng mới & quot; -lt & quot; cho phép thi đua LocalTalk của Mike Fort. Hiện tại một số hạn chế. Nó chỉ được thực hiện cho OS X. Nó đòi hỏi phải chạy lệnh "sudo chmod ugo + rw / dev / bpf * & quot; để cho phép Mini vMac (và mọi người khác) truy cập vào tất cả các lưu lượng mạng. Biểu tượng & quot; -lt & quot; tùy chọn cũng gây ra Mini vMac để chạy trong nền theo mặc định, bởi vì Mini vMac không thể là một nút LocalTalk thích hợp nếu nó không chạy. Và bạn cần bật AppleTalk theo cách thủ công trong trình chọn - tôi có thể thiết lập cờ PRAM để khởi động với AppleTalk đã được bật, nhưng nó không hoạt động đúng.
- Tùy chọn hệ thống xây dựng mới & quot; -lang pol & quot; chọn một bản dịch tiếng Ba Lan về giao diện người dùng bởi Przemyslaw Buczkowski.
- Các phiên bản X có hỗ trợ ban đầu về màu sắc (đối với mô phỏng Mac II). Phiên bản X cho đến nay chỉ hỗ trợ 24 bit & quot; TrueColor & quot ;, và có một vài hạn chế khác về định dạng. Tôi nghi ngờ rằng bất cứ điều gì ngoài TrueColor được sử dụng trên máy móc hiện đại, và do đó có lẽ sẽ không hỗ trợ các tùy chọn khác. Bạn có thể sử dụng các độ sâu khác như 15, 16, và 32 bit, và có lẽ nên được hỗ trợ, nếu tôi có thể tìm ra cách để kiểm tra chúng.
- Tùy chọn hệ thống xây dựng mới & quot; -mf & quot; cho phép thay đổi độ phóng đại từ mặc định 2. Ví dụ: & quot; -mf 3 & quot; đặt phóng to đến 3. Tùy chọn & quot; -mf 1 & quot; vô hiệu hóa độ phóng đại (loại bỏ lệnh Control-M). Hệ số phóng đại phải là số nguyên.
- Thay đổi hành vi không ở trong trình biên dịch mặc định:
- Độ sâu màu mặc định cho mô phỏng Mac II là & quot; -denthth 3 & quot; thay vì & quot; -denthth 0 & quot;.
- Để mô phỏng Macintosh II, AutoSlow đã bị vô hiệu theo mặc định & quot; -as 0 & quot ;. AutoSlow có thể cần một số điều chỉnh để làm việc tốt hơn với mô phỏng Mac II.
- Trong các phiên bản X, kết quả của việc ghi đè và fread trên các ảnh đĩa bây giờ đã được kiểm tra để tìm lỗi, và nó dừng các cảnh báo trình biên dịch trong Ubuntu gần đây.
- Các bản sửa lỗi không có trong trình biên dịch mặc định:
- Đã khắc phục lỗi trong chỉ dẫn DIVS.L được báo cáo bởi & quot; AP & quot ;. (Hướng dẫn 68020 được sử dụng trong mô phỏng Mac II.)
- Đã sửa hướng dẫn BFFFO, đã bị hỏng hoàn toàn, như được báo cáo bởi & quot; AP & quot ;. (Một hướng dẫn 68020 được sử dụng trong mô phỏng Mac II.)
- Hoạt động của trường bit trên một thanh ghi bây giờ sử dụng xoay thay vì thay đổi. Các bit được chọn có thể không liên tiếp, như được chỉ ra bởi & quot; AP & quot; và được xác nhận bởi tài liệu. (Lĩnh vực hoạt động bit đã được bổ sung trong 68020.)
- Hoạt động của trường bit trên bộ nhớ bây giờ chỉ cố gắng hoạt động trên nhiều byte nếu cần. Trước đây, nó luôn hoạt động trên 5 byte, có thể gây ra các hiệu ứng không mong muốn nếu hoạt động trên thiết bị được ánh xạ bộ nhớ, như được chỉ ra bởi & quot; AP & quot ;.
- Biểu tượng & quot; MoveP.L, Dn & quot; hướng dẫn đã trộn lẫn thứ tự của việc dịch chuyển và mặt nạ, và do đó đã bị phá vỡ hoàn toàn, như được báo cáo bởi & quot; AP & quot ;.
- Việc hack mà cho phép một lượng lớn Video RAM trong mô phỏng Macintosh II đã không làm việc đúng cách vì một mảng được sử dụng cho việc dịch địa chỉ không gian trong quá trình mô phỏng CPU không được phân bổ đủ lớn. Bây giờ hệ thống xây dựng chọn kích thước phân bổ. (Vấn đề này đã được quan sát thấy với 1024x768 với hàng triệu màu) Chi tiết: Mỗi thẻ NuBus chỉ có 1M không gian địa chỉ khi máy tính ở chế độ 24 bit. Và một Mac II dường như thường rút ra trong chế độ 24 bit. Khi cần nhiều Video RAM cho các tùy chọn thời gian biên dịch được yêu cầu, Mini vMac sử dụng không gian địa chỉ từ các khe NuBus lân cận.
- Cố định & quot; -min-extn & quot; build trong phiên bản Linux.
- Xây dựng hệ thống:
- Thêm tùy chọn hệ thống xây dựng & quot; -api cco & quot; sử dụng API ca cao của Apple cho OS X chứ không phải API của Carbon. Tuy nhiên, cổng Cocoa của Mini vMac chưa được coi là khá sẵn sàng để được chính thức hỗ trợ, và do đó phiên bản Carbon vẫn được sử dụng.
- Thêm tùy chọn hệ thống xây dựng & quot; -api sdl & quot; sử dụng API đơn giản DirectMedia Layer 1.2. Điều này đã được thêm vào như một tảng đá vào cổng Cocoa - bằng cách kết hợp mã nguồn cho SDL với mã nguồn cho một cổng SDL của Mini vMac, và sau đó loại bỏ mọi thứ không cần thiết, và sau đó rất nhiều làm sạch cho đến khi một Cocoa bản địa ban đầu cảng nổi lên. Tuy nhiên, cổng SDL có thể được sử dụng như là để cổng vào các nền tảng khác được hỗ trợ bởi SDL. Nhưng điều này chưa được chính thức hỗ trợ.
- Thêm tùy chọn hệ thống xây dựng & quot; -t mx64 & quot; cho việc thực hiện X11 của Apple trên x86-64. (Trước đây x86-32 và PowerPC được hỗ trợ.)
- Thêm tùy chọn hệ thống xây dựng & quot; -t cygw & quot; cho Cygwin / X cho Microsoft Windows. Cygwin cũng có thể được sử dụng để biên dịch phiên bản Microsoft Windows thông thường với & quot; -t wx86 -e cyg & quot ;.
- Thêm tùy chọn hệ thống xây dựng & quot; -t irix & quot; cho IRIX bởi Silicon Graphics, Inc., nhờ John Perkins.
- MinGW có thể được sử dụng để biên dịch Mini vMac với tùy chọn hệ thống xây dựng & quot; -t wx86 -e mgw & quot ;. Vì Bloodshed Dev-C ++ dựa trên MinGW, & quot; -t wx86 -e dvc -cl & quot; trước đây sẽ cho kết quả tương tự.
- Thay đổi thứ tự các đối số cho lệnh liên kết khi xây dựng phiên bản Linux. Nó chỉ ra rằng có một quy tắc thông thường về cách thức các thư viện nên được chỉ định, mà tôi không biết vì tôi đã không đi qua một mối liên kết mà chăm sóc cho đến khi Ubuntu 11.10.
- Hệ thống xây dựng bây giờ sẽ hoạt động bình thường trong các chương trình giả lập khác như SheepShaver. Nó đã được nặc danh báo cáo rằng hệ thống xây dựng sẽ sụp đổ giả lập. Thử nghiệm cho dù hệ thống xây dựng đang chạy trong Mini vMac (để lưu trữ kết quả có thể được xuất ra máy chủ) không đủ tốt.
- Hệ thống xây dựng bây giờ ngăn chặn các thông báo cảnh báo đã được tạo ra khi biên soạn Macintosh II thi đua với Microsoft Visual C ++, nhờ một báo cáo từ William Grana.
Bình luận không