29 comments

[ 5.5 ms ] story [ 83.1 ms ] thread
I wonder if it actually needs OS9, PPC supported started (barely) in the System 7.1 era
Yes, but lots of software made for PPC began requiring OS8, then 8.6, and then a bunch required OS 9 to run.
How far back did Carbon support go?
native mac os 8 and 9 applications could only be run under rosetta. they could be rebuilt to run under cocoa.
They required some Carbonization. Also then would run under Classic or Carbon. Rosetta was for Cocoa I think.
Rosetta was a PowerPC CPU emulator that allowed running any kind of PowerPC OS X application on Intel Macs.

Carbon was a set of largely OS 9 compatible APIs that allowed an easy transition for apps that could be recompiled.

Classic was a virtualized OS 9 environment available on OS X (up to 10.4 Tiger, PPC Mac only) that allowed running unmodified binaries for pre-OS X Macs. Most things that didn't require special hardware access or precise timing ran fine, but things like real-time audio and MIDI applications did not.

It's not that easy. Carbon is largely a subset of the classic MacOS toolkit APIs reimplemented in MacOS X to provide a migration path for existing application to MacOS X. IIRC carbonized applications commonly targeted version going back to MacOS 8.6 - 10.x with a single executable. From my unreliable childhood memories the next common range started at MacOS 9.0 (or 9.1).
> Quick Question: Why?

>People still use OS9! It's me, I'm people. I just like programming, I like this style of game, and I like giving myself a reason to turn on my iBook or iMac.

So good

Note that their goal is to master programming on a new platform, not just to play it in a browser.
That puzzle pack uses GTK too, porting them to Carbon or whatever API Mac OS 9 uses wouldn't be too difficult with some libre SDK targetting OS9.

https://github.com/autc04/Retro68

Also, this guy has a Classic Mac tool sw "runner" a la Wine:

https://github.com/autc04/executor

Forked, that's true, but that's the best Ardi Executor fork by a mile.

Writing a Mac application in GTK is, again, not conducive to the goal of learning to program a new platform. Wrappers such as GTK around native objC, Cocoa, and Swift are a distraction from the main purpose of learning those things.
No, I didn't mean to GTK, but for Carbon or whatever API Mac OS used. The game is already on GTK and JS, so it would be easily portable as they are really simple games (they have even an Android port).
If you don't happen to have your 2000s-era iMac or iBook running OS 9 currently in arm's reach here's an online version of the same sort of game: https://www.unixpapa.com/floodit/?sz=14&nc=6
You can emulate it with ease with qemu-system-ppc.
SheepShaver is much faster at the expense of not being able to run the latest version of OS 9, only 9.0.
I wonder why it's faster - specifically *how* it's more efficient.

(Admittedly an expansively broad question; summary responses accepted!)

If my understanding is correct, it doesn't implement the MMU (which latest OS 9 versions require), takes some other shortcuts and does JIT.
qemu actually tries to emulate all of the hardware in a Mac; also, I believe its CPU emulation is just interpreted though someone correct me if I'm wrong. SheepShaver emulates the CPU with a JIT and then patches the emulated MacOS so that calls to it run as native code.
SheepShaver is hacky, I know it since BasiliskII times, same people. SS is faster, but nowadays the gap against Qemu is not that big on a modern machine. Also, Qemu will provide an ATI Rage device for the G3/G4 machine, so you may be able to correctly play a good chunk of 3D games released for Mac OS 9.

>I believe its CPU emulation is just interpreted

Something between interpreted and a JIT. TCG:

https://wiki.qemu.org/Documentation/TCG

That's why I say Qemu is not as slow as Bochs.

Good timing, I just set up a RaSCSI to use with a PowerMac 5400! There was certainly a charm that Classic Mac OS has that was missing in OSX-onward.
speaking of OS 9, windowshade was so great.
I miss the spatial properties of classic MacOS. Windows would always be in the same spot when you window shaded them, files would be in the same spot in a folder unless you cleaned it up.

It was an aid to my memory.