HyperCard visual effects too slow

About SheepShaver, a PPC Mac emulator for Windows, MacOS X, and Linux that can run System 7.5.3 to MacOS 9.0.4.

Moderators: Cat_7, Ronald P. Regensburg, ClockWise

Post Reply
User avatar
uliwitness
Student Driver
Posts: 11
Joined: Thu Feb 17, 2022 12:04 am

HyperCard visual effects too slow

Post by uliwitness »

Hi,

just wondering if anyone knows why HyperCard's visual effects (transition effects from one page to the next) don't work in SheepShaver? My guess is they use some low-level tricks or at least assembly language to achieve decent performance, and that somehow passes by whatever SheepShaver uses to detect if the display changed?

ISTR the visual effects working (but being very slow) on Windows, and just being missing on MacOS X.

If you're curious, to reproduce it, get HyperCard 2.4, choose "File" > "New Stack", save the stack somewhere on your hard disk, choose "Objects" > "New Button", then double-click the button, click "Script" and type in

Code: Select all

on mouseUp
  visual effect dissolve to black
  visual effect dissolve
  go this card
end mouseUp
close the window and save, choose the little "hand" icon from the "Tools" menu, then click the button. You should see the screen fade to black by adding random black pixels, then fade back to the button again, in about a second's time.
Cheers,
-- Uli Kusterer
https://hypercard.org
Korkman
Tinkerer
Posts: 40
Joined: Fri Jan 03, 2003 3:41 am

Re: HyperCard visual effects too slow

Post by Korkman »

Hi,

I'm in the same boat. Hoping to find a fix or workaround for a decade, but haven't found any yet. This only affects the Windows build, though. The transitions are fine for the Mac OS X build. Not sure about the Linux build, will compile soon. If it works fine on the Linux build, I would propose running SheepShaver within VirtualBox or a similar VM.
Korkman
Tinkerer
Posts: 40
Joined: Fri Jan 03, 2003 3:41 am

Re: HyperCard visual effects too slow

Post by Korkman »

Yep, as expected, transitions are fine on Linux builds as well. So this is a Windows only thing. The only workaround I can think of for now is to run SheepShaver in a Linux VM, which isn't as bad as it sounds.
Yakkers
Space Cadet
Posts: 6
Joined: Thu Dec 25, 2014 2:40 am

Re: HyperCard visual effects too slow

Post by Yakkers »

I'm sorry to bump this, but I wanted to add my comments and maybe bring some eyes back on it.

I'm on windows and never had this bug until semi-recently, unfortunately I can't pinpoint exactly where it changed for me so I would assume it was after updating at some point but I can't be certain. If others have been experiencing this for years and years though, there must be some other variable at play. This makes it impossible to play Cosmic Osmo so I would love to figure out a solution or help find a fix. I've tried every combination of display and memory settings and nothing seems to affect it.
User avatar
adespoton
Forum All-Star
Posts: 4226
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: HyperCard visual effects too slow

Post by adespoton »

Does it happen in all display modes?

https://www.emaculation.com/doku.php/sheepshaver_setup

window/full screen
Window refresh rate
Quickdraw accel on/off

And does it happen with JIT enabled/disabled?

https://github.com/kanjitalk755/macemu/ ... indows.cpp lists the Windows-specific prefs options.

Looking at that, it could be one of the SDL prefs at play, or windowmode, or screenmode.
Yakkers
Space Cadet
Posts: 6
Joined: Thu Dec 25, 2014 2:40 am

Re: HyperCard visual effects too slow

Post by Yakkers »

adespoton wrote: Thu May 25, 2023 8:52 pm Does it happen in all display modes?

https://www.emaculation.com/doku.php/sheepshaver_setup

window/full screen
Window refresh rate
Quickdraw accel on/off

And does it happen with JIT enabled/disabled?

https://github.com/kanjitalk755/macemu/ ... indows.cpp lists the Windows-specific prefs options.

Looking at that, it could be one of the SDL prefs at play, or windowmode, or screenmode.
I tried each option on:

- Enable polling
- Video Type
- Refresh rate (tried 10, 60, and dynamic)
- Quickdraw acceleration
- Render driver
- Vertical sync
- RAM size (128, 256, 512, 1024)
- Don't use CPU when idle
- Ignore illegal memory accesses
- JIT compiler
- Built in 68k DR emulator

and nothing made a difference. It's possible that a certain combination would make or break it, but that would be an insane amount of states to test.
This is my pet bug and I've spent a lot of time digging into it and testing stuff, so if there's anything at all I can do to help figure it out or just provide diagnostics or anything I'm happy to do whatever I can.
kanjitalk755
Apple Corer
Posts: 239
Joined: Thu Nov 09, 2017 12:06 pm

Re: HyperCard visual effects too slow

Post by kanjitalk755 »

I recently fixed a similar issue in BasiliskII.
Specifically, I backported the high-precision timer of SheepShaver to BasiliskII.
Unfortunately, its implementation (src/timer.cpp) is OS dependent and Windows is not supported, so we can't use it.
Post Reply