Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

10.6: Run old screen savers on Snow Leopard System 10.6
Snow Leopard only hintWith Snow Leopard the ScreenSaverEngine application is a 32/64-bit binary, and if your system supports it will run in 64-bit mode. This means that any screen savers without 64-bit code will not run, and this is primarily old unsupported screen savers.

To get screen savers with only 32-bit code in them to run ScreenSaverEngine must be forced to run in 32-bit mode only.

One way to accomplish this it to remove the 64-bit portion completely:
  • First backup the ScreenSaverEngine app to somewhere safe, it's located at /System/Library/Frameworks/ScreenSaver.framework/Resources/.
  • Then run this command from a terminal under an account with Admin rights:
    sudo lipo -remove x86_64 /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -output /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
Removing the 64-bit portion of the ScreenSaverEngine has no apparent disadvantages; it runs fine by opening it from the Finder, having the screen saver activate on a timer, through a hot corner, etc.

One issue that will occur is that System Preferences will still run in 64-bit mode, and so will not allow you to select a screen saver that only includes 32-bit code. Handling this is much simpler:
  • Open the /Applications folder in the Finder.
  • Get Info (Cmd+I) on System Preferences.
  • Tick the Open in 32-bit mode tick box.
Opening System Preferences should give you a window titled 'System Preferences (32-bit).' Now you should be able to select the screen saver from the list.

[crarko adds: I haven't tested this one.]
    •    
  • Currently 3.50 / 5
  You rated: 4 / 5 (4 votes cast)
 
[9,257 views]  

10.6: Run old screen savers on Snow Leopard | 6 comments | Create New Account
Click here to return to the '10.6: Run old screen savers on Snow Leopard' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
10.6: Run old screen savers on Snow Leopard
Authored by: arkayn on Nov 05, '10 08:03:44AM

Does it work if you get info on the screensaverengine and check "Run in 32-bit mode"?



[ Reply to This | # ]
10.6: Run old screen savers on Snow Leopard
Authored by: melby.ruarus on Nov 05, '10 06:28:45PM

The Open in 32-bit mode tick box is only adhered to if you open an application from the finder, as the ScreenSaverEngine is launched directly from the system, by passing the finder - it will still run in 64bit mode regardless



[ Reply to This | # ]
10.6: Run old screen savers on Snow Leopard
Authored by: arcticmac on Nov 05, '10 08:09:01AM

Removing the 64-bit code from the binary seems like overkill - what if you sometime get a screensaver that's compiled *only* as 64-bit?

The comments (by VK and slippyd) in this hint suggest a safer way to accomplish the same thing:
http://hints.macworld.com/article.php?story=20100209053016662

If you felt really inspired, you could probably even modify the script to use the 64-bit version when the selected screensaver has it, and the 32-bit version otherwise.

Edited on Nov 05, '10 08:10:28AM by arcticmac


[ Reply to This | # ]
10.6: Run old screen savers on Snow Leopard
Authored by: melby.ruarus on Nov 05, '10 07:03:02PM

Screen savers that contain only 64bit code are rather unusual, though using a script could be a better solution in some cases

A quick way to accomplish this is as follows:

  • Open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS
  • Rename ScreenSaverEngine to ScreenSaverEngineBinary - You may need to use the terminal for this:
    sudo mv /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngineBinary
  • Create a text file here named ScreenSaverEngine (note no extension) and paste in the following:
    
    #!/bin/bash
    
    arch -i386 /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngineBinary
    
  • Mark the script as executable (open terminal and type in sudo chmod +x /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine

Note, the reason we can hardcode the -i386 flag is because you can't be running 10.6 on a ppc machine in the first place.

Running the screensaver should now work without removing the x86_64 code from the binary



[ Reply to This | # ]
10.6: Run old screen savers on Snow Leopard
Authored by: melby.ruarus on Nov 05, '10 07:13:18PM

Whoops, didn't see, thats exactly what i had.



[ Reply to This | # ]
10.6: Run old screen savers on Snow Leopard (and Mountain Lion)
Authored by: tupholme on Jan 15, '13 10:13:47AM

I hit this problem when I moved to 10.8 - previously I had been running on a 32-bit EFI Mac so even Lion ran 32-bit.

Mountain Lion always runs in 64-bit so this hint is still useful, although it means System Preferences can no longer be forced (despite the checkbox still existing in Get Info). That means that you can't get the preview for your old screensaver, although you can select it and using the above script means it will actually run when it comes to the crunch.



[ Reply to This | # ]