无限 Mac OS X

  • Infinite Mac can now run early Mac OS X: With 10.1 and 10.3 being the best supported versions. It's not very snappy on Infinite Mac but was similar on real hardware. Infinite HD has been rebuilt with notable indie software from that era.
  • Porting PearPC: Been tracking DingusPPC progress. Tried using it to run Mac OS X but reached a plateau. Decided to use PearPC as it was created for emulating Mac OS X. It was easier as not actively developed and had the right abstractions. Got it to build, output video, load disk images and handle mouse/keyboard input.
  • Performance: PearPC ran 10.2 more reliably but was slower than DingusPPC. Made optimizations in DingusPPC and ported its benchmark harness to PearPC. Shaved off about 15 seconds from 10.2 boot time but still slow. DingusPPC has a more mature cache. PearPC is less principled and "cheats" in some ways.
  • A Side Quest: Encountered rendering glitches in PearPC and DingusPPC when dealing with floating point operations. Mac OS X's xnu kernel sources had places where the FP bit was cleared and an exception handler registered. Implementing the equivalent check in the emulators fixed the glitches and made them more stable.
  • Rebuilding Infinite HD: Extended the automated approach to build disk images. Discovered many variants of disk images and used a Rube Goldberg approach. Got software from sites like Macintosh Garden and the Wayback Machine. Installed companion "Developer" CDs. Mounted multiple drives using a clever solution from a DingusPPC fork.
  • Aqua: Wanted an Aqua mode for Infinite Mac's controls. Decided to use the 10.0/10.1 Aqua assets as it had the most nostalgia. Used resource_dasm and pxm2tga to extract and create the custom Aqua.
  • Odds and Ends: Can mount multiple images to have a Mac OS 9 partition and start the Classic compatibility environment. Verified Calculator behavior changes in different Mac OS X versions. Added a way to show more progress in Mac OS X boot. Thought about adding macosx.app but it's taken.
  • The End Of The Line?: Mac OS X support catches Infinite Mac up to the modern day. There are more CPU transitions and changes to explore like A/UX, Lisa, Pippin and Newton.
  • A Post-Credits Sequence: QEMU seemed daunting to port to WebAssembly initially. Recently became aware of qemu-wasm with encouraging Linux guest demos. There's still a gap between it and a graphical guest like Mac OS X but it's a good existence proof.
阅读 9
0 条评论