NeXTcommunity

Everything => Virtualization => Topic started by: jeffburg on Nov 08, 2025, 03:18 PM

Title: Previous running on PowerPC Macintosh
Post by: jeffburg on Nov 08, 2025, 03:18 PM
Hey Folks,

Previous has an official minimum deployment target of Mac OS X 10.13. Considering its release year of 2017, that seems like quite a long run of support. However, now that I got my iMac G4, I wondered if it could be run on older systems...

How about Mac OS X 10.5 Leopard from 2007?

I am happy to say that I spent an absurd amount of time to do something totally pointless. I back-ported both SDL 2.26.x and Previous to Leopard, although SDL was quite a bit more difficult as Previous needed almost no changes. I've never done anything like this before but it was kind of fun to do the back-porting 100% with GCC, GDB, and the command line.

Right now the SDL code is quite rough because I just wanted to see if it would work at all. I do want to spend some time cleaning up SDL because it's probably leaking memory and has hidden crashers, however I have spent an unexpectedly large amount of time on this and I am kind of burned out on it, so it might take a bit of time for me to pick it back up again.

Also, the performance is worse than I expected... When I run a 68030 machine at 25MHz, it says it's running at about 30% of full performance. Also, networking seems to not be working. Anyway, I consider this to be a sort of POC... but hopefully in the future, people will be able to take advantage of SDL 2.26.x for PPC. The latest one I found online was 2.0.6 and that was too old for Previous (and probably many other apps).

I attached photos as well as build logs for SDL and Previous. You can see the pull requests with the links below.

See Patch/Changes for Previous (https://github.com/jeffreybergier/Previous-Fork/pull/4/files)
See Patch/Changes for SDL2 (https://github.com/jeffreybergier/SDL-2-leopard/pull/1/files)
Title: Re: Previous running on PowerPC Macintosh
Post by: marvin on Nov 08, 2025, 03:41 PM
This is really great, thanks for sharing!

From the running speed it reminds me on my experiments with UAE running Amiga games on a 25 MHz NeXTstation. It kind of worked, but performance was not so good  ;D

EDIT: and I really like your cute mouse with the nice face!
Title: Re: Previous running on PowerPC Macintosh
Post by: jeffburg on Nov 08, 2025, 04:06 PM
@marvin haha thanks. I live in Japan, so of course the dorky cute mouse is the cheapest thing available. But it also fits the theme of the computer. In Japan they call these iMacs "Daifuku" Macs because they look like the dessert. So I found some cute Daifuku pictures and made it into a little theme.

https://www.yodobashi.com/product-detail/100000001003173439/
Title: Re: Previous running on PowerPC Macintosh
Post by: Rhetorica on Nov 08, 2025, 04:57 PM
Wow, nice work! Did you try messing with the performance-boosting settings we were discussing recently? Less accurate emulation might be the key here...
Title: Re: Previous running on PowerPC Macintosh
Post by: andreas_g on Nov 08, 2025, 06:04 PM
Fantastic work! Well, the performance does not surprise me. I started development of Previous on an iMac G5 and that was also hardly usable. Anyway a great proof of concept!

This could be used for debugging endianness issues. Maybe some C developer with an old PPC Mac picks up your builds and does the porting required (definitely for the ND emulation and maybe some bugs in the networking part).
Title: Re: Previous running on PowerPC Macintosh
Post by: ZombiePhysicist on Nov 08, 2025, 06:52 PM
Wow super cool. We are now one step closer to Previous running on toasters! :D
Title: Re: Previous running on PowerPC Macintosh
Post by: jeffburg on Nov 09, 2025, 01:41 AM
@andreas_g When I ran sudo make install it looks like it relinks the binary and packages the dependencies right in the bundle... is that the case? If so I will zip it up and upload it here if anyone is curious.
Title: Re: Previous running on PowerPC Macintosh
Post by: jeffburg on Nov 09, 2025, 01:46 AM
@Rhetorica @ZombiePhysicist Yes, this build already has those cache optimizations enabled. But to your point about running on a toaster... I don't see why it's not possible because the 68040 is just so old and so weak, basically anything should be able to properly emulate it.

And I agree it seems like a strong goal of Previous was to be very accurate, but I wonder how much faster it could go and still work. As someone said elsewhere, NeXTstep is not very timing sensitive.

For comparison, on this same iMac, I installed VirtualPC 7 which emulates Intel 32 bit. I am going to try to install OpenStep on that... but handily the VirtualPC install disc came with an installation of Windows XP. So I booted up Windows XP on this iMac and it runs fine. So I think if a G4 can emulate an Intel processor and run Windows XP at a reasonable speed, it should be able to run an operating system and chip that are literally 10 years older at a much faster speed.

https://www.macintoshrepository.org/759-microsoft-virtual-pc-7-0
Title: Re: Previous running on PowerPC Macintosh
Post by: andreas_g on Nov 09, 2025, 11:07 AM
Quote from: jeffburg on Nov 09, 2025, 01:41 AM@andreas_g When I ran sudo make install it looks like it relinks the binary and packages the dependencies right in the bundle... is that the case? If so I will zip it up and upload it here if anyone is curious.
Yes, that should work. You can check the linkage using ditool -L on the binary inside the application bundle.