jjuran / metamage_1

Metamage open source, general repository, iteration 1
302 stars 27 forks source link

ARDI Executor #4

Closed jschwartzenberg closed 1 year ago

jschwartzenberg commented 5 years ago

Hi, I just read about this project on Slashdot and it reminded me a lot of ARDI Executor for which the source code was published a few years back. Did you consider using (parts of) Executor?

https://en.wikipedia.org/wiki/Executor_(software)

jjuran commented 5 years ago

Indirectly. Executor's developers chose to optimize for performance (and rightly so) but at the cost of portability and complexity — so merging it into Advanced Mac Substitute would be difficult. But it could still serve as unofficial system documentation to fill in the gaps where Apple's is less detailed.

jschwartzenberg commented 5 years ago

Good to know you're aware. Using its source as documentation makes sense then. Performance was great with Executor but I remember even for just compiling syn68k it can be challenging to find a gcc version that compiles it correctly. Maybe the system ROM parts would especially be useful.

There was also the Mace project, but I don't think they got very far. One of their goals was also integrating with the host OS (similar to Wine).

nl255 commented 5 years ago

Performance was great with Executor but I remember even for just compiling syn68k it can be challenging to find a gcc version that compiles it correctly. Maybe the system ROM parts would especially be useful.

Given that computers are so fast nowadays that even a lowly New 3DS can handle emulation of an 8MB Mac II with color (via vMac) at faster than native speeds syn68k doesn't sound nearly as useful as it was back then. Hopefully the rom toolbox parts are well commented.

jjuran commented 5 years ago

Fiendishly clever x86 optimization was the right move at the time, but not a priority these days. With most 1980s Mac apps, performance on modern hardware is not about how quickly instructions are executed, but how much of an application's idle time is spent not executing any instructions at all.

MikeRich88 commented 5 years ago

I was able to compile and run Executor on OS X 10.13.

Compatibility is very poor though, most installers won't even finish. I don't know if this is because Executor is buggy or because my build is crappy.

jjuran commented 5 years ago

From https://github.com/ctm/executor/blob/master/README:

"… nor did it even run most System 7 applications. Unless you have a particular application that you know works with Executor, or just like emulation a lot, you probably don't want to spend any time with Executor."

jjuran commented 1 year ago

The logic and tables for slope<->angle conversion are loosely based on Executor source code, as documented in https://github.com/jjuran/metamage_1/blob/master/68k/modules/ams-qd/QDUtils.cc#L392.