Infinite Mac OS X
(blog.persistent.info)- Platform Infinite Mac kini dapat menjalankan versi awal seri Mac OS X (10.1, 10.3) di browser web
- Dengan mem-porting emulator PowerPC PearPC ke Emscripten/WebAssembly, kompatibilitas dan stabilitas berhasil ditingkatkan
- Melalui perbandingan dengan DingusPPC, performa dan bug yang penyebabnya tidak jelas diperbaiki sambil menjalani proses optimalisasi algoritmik
- Citra disk Infinite HD yang cocok untuk Mac OS X juga dibangun ulang, sehingga berbagai software dan alat pengembangan era 2000-an dapat diakses
- Penerapan gaya Aqua pada UI semakin memperkuat pengalaman retro, sambil mempertimbangkan kemungkinan pengembangan lebih lanjut di masa depan
Ringkasan
Infinite Mac, proyek yang memungkinkan sistem legacy lama dicoba secara online di platform Infinite Mac, kini dapat berjalan di browser web modern dengan mendukung versi awal Mac OS X seperti 10.1 dan 10.3. Dalam proses ini, emulator PowerPC seperti PearPC dan DingusPPC di-porting ke basis Emscripten/WebAssembly, disertai berbagai upaya untuk meningkatkan performa dan memastikan stabilitas. Melalui optimalisasi algoritme dan perbaikan bug, resolusi serta keandalan ditingkatkan dibanding perangkat keras asli, sementara Infinite HD yang berisi software dan alat pengembangan dari masa itu juga disusun ulang untuk memperkuat kegunaannya. Selain itu, tema Aqua diterapkan pada UI situs untuk menghadirkan pengalaman yang bernuansa emosional, dan ekspansi ke OS yang lebih retro seperti A/UX dan Lisa juga dipertimbangkan untuk masa depan. Proyek ini menunjukkan upaya teknis dengan berbagai tujuan sekaligus, seperti emulasi program, perluasan arsip open source, dan pemulihan UI.
Perluasan dukungan Mac OS X
- Infinite Mac di-porting agar dapat menjalankan versi awal OS X seperti Mac OS X 10.1 dan 10.3 di browser web
- Performa lambat pada perangkat keras asli direproduksi apa adanya, dan pengguna juga dapat merasakan penggunaan aplikasi representatif saat itu seperti NetNewsWire Lite dan Terminal
- Beberapa software indie pada masa itu juga disertakan dalam citra disk terbaru, sehingga eksplorasi software retro menjadi lebih mudah
Proses porting PearPC
- Awalnya fokus diarahkan pada porting dan modifikasi emulator DingusPPC, tetapi karena masalah kernel panic dan error grafis, jalur dialihkan ke PearPC
- PearPC adalah codebase multiplatform yang dirancang pada awal 2000-an untuk menjalankan Mac OS X di sistem berbasis x86, sehingga relatif mudah di-porting ke target WebAssembly tanpa banyak pekerjaan tambahan
- Baru-baru ini, maintainer utama Basilisk II dan SheepShaver membuat branch eksperimen PearPC sehingga build di macOS modern menjadi memungkinkan
- Source-nya sudah tua dan berbasis C++ legacy, tetapi memiliki kekhasan seperti string class kustom,
sprintf, dan decoder GIF - Berkat struktur multiplatform, desain yang hampir tidak memakai thread, dan lapisan abstraksi struktural, proses porting dapat dilakukan dengan cepat
Optimalisasi performa dan batasannya
- Di PearPC, keandalan boot dan menjalankan Mac OS X 10.2 cukup tinggi, tetapi kecepatan eksekusinya lebih lambat dibanding DingusPPC
- Penurunan performa cukup besar akibat tidak adanya caching MMU dan faktor lainnya
- Berbagai optimalisasi berbasis algoritme yang diterapkan di DingusPPC juga dipindahkan ke PearPC, sehingga waktu boot dapat dipersingkat sebagian
- PearPC hanya mengimplementasikan subset instruksi PowerPC yang diperlukan, dan memanfaatkan berbagai "cheat" seperti firmware serta driver kustom
- Masih ada harapan bahwa untuk emulasi Mac OS X yang cepat dan stabil, DingusPPC lebih menjanjikan dalam jangka panjang
Temuan sampingan: penanganan exception FP
- Saat metode decoding terpadu diperkenalkan pada interpreter di PearPC, muncul error rendering dalam operasi floating point
- Kernel Mac OS X telah mendaftarkan penanganan exception berdasarkan status bit FP pada register MSI, dan ketika hal ini diimplementasikan ke dalam kode, masalah rendering terselesaikan
- Di DingusPPC juga ada masalah bit FP yang sama-sama terlewat, menyebabkan anomali rendering teks; setelah diperbaiki, stabilitas meningkat drastis
- Penanganannya berkembang dari pendekatan ad hoc menjadi implementasi yang "sesuai kaidah", dan pada akhirnya keandalan menjalankan 10.1 juga meningkat pesat
- Dengan menggabungkan kedua emulator, dukungan untuk menjalankan berbagai versi OS X pun diperluas
Rekonstruksi citra disk Infinite HD
- Citra disk yang sesuai dengan era Mac OS X dibangun ulang, mencakup banyak software indie dan alat developer dari periode tersebut
- File
.dmgversi lama tidak bisa langsung di-mount di macOS modern, sehingga dibangun pipeline konversi dan otomatisasi dengan alat seperti dmg2img - Ada beberapa keterbatasan karena perbedaan sistem file HFS dan HFS+, tetapi sebagian besar software berjalan normal
- Lingkungan eksekusi software awal 2000-an dilengkapi melalui berbagai sumber seperti situs pustaka dan Wayback Machine
- Dengan menerapkan teknik pembuatan image multipartisi secara dinamis, hingga tiga volume dapat di-mount sekaligus: disk boot, Infinite HD, dan Saved HD untuk penyimpanan
UI: penerapan gaya Aqua
- Tema Aqua juga diadopsi pada UI Infinite Mac untuk memaksimalkan nuansa retro
- Aset gambar bergaya Mac OS X 10.0/10.1 diekstrak langsung dan bahkan efek semi-transparan turut diimplementasikan
- Gaya bagian kontrol situs juga otomatis diterapkan sesuai tampilan tiap OS (Classic, Platinum, NeXT, dan lain-lain)
- Seiring perubahan UI besar di Apple macOS yang diperkirakan akan datang, ini juga dapat berfungsi sebagai "titik referensi" bagi UI masa lalu
Fitur tambahan dan milestone
- Ditambahkan fitur mount partisi Mac OS 9 dan menjalankan lingkungan Classic (hanya didukung di 10.1)
- Perbedaan UX antarsistem, seperti perilaku operasi berulang pada aplikasi Calculator lama, juga dapat diverifikasi
- Mode boot message (Verbose) bawaan PearPC diaktifkan, dan di DingusPPC diterapkan metode penetapan variabel open firmware
- Upaya memperluas branding melalui domain macosx.app juga sedang dicoba, tetapi saat ini domain tersebut dimiliki pihak lain
Ekspansi selanjutnya dan penutup
- Dengan perluasan dukungan Mac OS X, Infinite Mac menghadirkan jembatan penghubung ke macOS modern
- Untuk nostalgia yang lebih dalam, kemungkinan porting A/UX, Lisa, Pippin, dan Newton juga disebutkan
- QEMU berbasis WebAssembly (wasm) juga menarik perhatian secara eksperimental, dengan sinyal positif yang terlihat dari pengujian performa
- Emulasi Mac OS X berbasis web menawarkan nilai dalam berbagai skenario IT/startup, seperti pengalaman penggunaan, pelestarian software legacy, dan eksperimen pengembangan
1 komentar
Komentar Hacker News
dmg), bookmark Finder, perilaku Dock, sampai hadirnya Spotlight semuanya sudah ada saat itu. Dibandingkan perubahan dari Windows XP ke Windows 11, perubahan di Mac dinilai tidak terlalu besarwmvataudivx) menjadi rutinitas, dan karena desainnya sampai tak punya ventilasi demi terlihat cantik, masalah overheat juga sering terjadi