Something big is brewing…

So this is a big one… I may have finally lost my mind. My growing frustrations with the state of legacy software on macOS are making me think of ambitious projects. Not to mention my desire to do this stuff full time and make a career out of it.

Before we get into the big thing, let’s take a look at these frustrations.

  • 32-bit apps no longer run on Catalina (Sure there are VMs)
  • Classic Mac OS stuff is basically out of reach unless you have old hardware.
  • SheepShaver is crap. I use it and I like it, but damn it is unreliable.
  • I don’t have masses of time to work on this stuff.

For some people these may not be the big issues they are for me. But for me personally they are issues that frustrate me and I want to do something about it.

Graphite

I introduced the Graphite library last week. This is an open source framework which will include a number of modern reimplementations of old technologies such as QuickDraw, ResourceForks, etc. Well this is the underpinning of my larger idea.

That idea is to build a technology that will run old classic mac software directly in a modern environment, similar to what WINE does.

OK so this is a big bit of work, and this aspect of the project will not be Open Source. I plan to make this a product that I can market and sell (though still maintaining a free aspect to it). The underlying Graphite technologies will remain open source and free for people to make use of though.

A kickstarter

As I said I want to do this full time. I’m fed up of life as an iOS developer. It’s not interesting to me and I love working on this stuff.

My plan is to put together a proof of concept and a plan so that I can setup a kickstarter to get this thing moving properly. The end result is likely to be something that take old Mac OS software and run it alongside you modern software emulating the old 68k or PPC code and provided functionality for API’s that they call.

It won’t be emulating OS 9 itself, or taking any aspect of Classic Mac OS directly (such as ROMs or System files).

This proof of concept may come to nothing. If thats the case then I will be continuing work on Graphite anyway.

This is a project/product that will take a lot of development. If you are interested in becoming involved in it and Graphite then head over to the Discord that I have set up for it. The intention for it is to discuss the development of Graphite and eventually the details of this new product.

What does this mean for the EV Nova Clone?

I will continue to work on it as I have done thus far. I still want to complete this project. But it can never pay the bills (unless I was able to get the rights to the name, etc). Graphite will remain open source, and it will be used to build an EV Nova clone, even if it takes a number of years.

Graphite

Here we go… time to start properly building this thing, and the first step of the journey is going to be Graphite.

What is Graphite?

Graphite is going to be a Swift package containing all the modern implementations of old legacy code found on the Macintosh platform in the Carbon era. It is fully written in Swift, and the name is a play on the name Carbon, of which Graphite is a type.

The early versions of Graphite will basically provide enough functionality for me to get my EV Nova clone up and running. Read resource files, handle some QuickDraw media and play some sound clips. Certainly not enough to provide a fully compliant Carbon environment. Maybe it’ll get to that point one day, but I certainly don’t see a need for that.

As a result this means that it is a combination of ResourceKit and ClassicKit, two earlier frameworks that I developed for accomplishing these goals. However they are written in Objective-C and strongly coupled to Apple’s Cocoa environment.

Graphite, on the other hand is written in Swift and, in theory, is not coupled to Apple’s ecosystem.

I’m not quite ready to setup the Open Source project page for Graphite just yet, as I want to get some tests in place and ensure the code and project are nicely documented. However I hope to get this up soon.