Page 1 of 1

Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 1:09 am
by bestusername
Image: https://imgur.com/ubr22Za

While trying to setup Mac System 9, I ran into this issue. As you can see it only displays the bottom left quarter (approximately) of what should be shown. I tried changing the scaling option in System Prefs., but that didn't do anything. I also uninstalled SheepShaver and tried again. I also tried changing to fullscreen mode in SheepShaver prefs., changing the window size also doesn't change this.

If anyone has run into this, what was the solution? Otherwise does anyone know what this could be?

I'm running Mojave 10.14.3

Re: Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 5:52 am
by adespoton
It looks like your screen resolution in the prefs file is set to 160x120 -- did you miss some 0s?

Re: Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 8:55 am
by Ronald P. Regensburg
Do you have a Retina screen? And did you download the latest SheepShaver build soon after it was posted? Please download this one and try again:
http://ronaldpr.home.xs4all.nl/sheepsha ... 90220A.zip

This may be the same problem that was reported here:
viewtopic.php?p=62270#p62270
(The original download was modified accordingly yesterday, so it should now also be OK.)

Edit: You can also try to solve the issue while still using the original download by setting the application to open in low resolution in Finder Info for the application.

Re: Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 2:11 pm
by JonathonWyble
adespoton wrote:It looks like your screen resolution in the prefs file is set to 160x120 -- did you miss some 0s?
I also found something similar to what you posted when doing a Google search on this. Something about setting the screen resolution to 1024x768. Anyway, maybe that could be the OP's problem, according to some articles I found, kind of like this one (on E-Maculation), https://www.emaculation.com/doku.php/sh ... os_x_setup

Re: Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 5:46 pm
by DrLex
bestusername wrote:Image: https://imgur.com/ubr22Za
If anyone has run into this, what was the solution? Otherwise does anyone know what this could be?

I'm running Mojave 10.14.3
I'm also running Mojave 10.14.3 and I have never seen this with my own SheepShaver builds. This looks a lot like a bug in SDL2, which may be confused about the plist saying that the app is high-resolution capable, but the window is configured as not allowing high resolution. Maybe I'm not seeing this bug because I'm building against a newer version of the SDL2 framework than the build you were using?

Can you try reproducing this bug with this build? It contains the fix proposed in this thread, maybe that on its own would be enough to avoid the problem as well.

Re: Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 6:30 pm
by bestusername
Telling the application to run in Low Resolution in the Get Info panel fixed the issue

Thank you!

Re: Can Only See a Portion of the Screen

Posted: Fri Feb 22, 2019 6:37 pm
by DrLex
No, it worked around the issue. Please try my build so we can know if it really fixes the problem.

Re: Can Only See a Portion of the Screen

Posted: Sat Feb 23, 2019 4:10 am
by adespoton
I tested your build and got the following:
Feb 22 20:03:18 Host com.apple.xpc.launchd[1] (com.apple.xpc.launchd.oneshot.0x10000082.SheepShaver[37347]): Service exited due to SIGKILL | sent by CoreServicesUIAgent[4006]
Feb 22 20:03:24 Host SheepShaver[37349]: DEPRECATED USE in libdispatch client: dispatch source activated with no event handler set; set a breakpoint on _dispatch_bug_deprecated to debug
Feb 22 20:03:29 Host kcm[37353]: DEPRECATED USE in libdispatch client: Setting timer interval to 0 requests a 1ns timer, did you mean FOREVER (a one-shot timer)?; set a breakpoint on _dispatch_bug_deprecated to debug
Feb 22 20:04:35 Host SheepShaver[37366]: DEPRECATED USE in libdispatch client: dispatch source activated with no event handler set; set a breakpoint on _dispatch_bug_deprecated to debug
Feb 22 20:04:36 Host SheepShaver[37366]: dyld: lazy symbol binding failed: Symbol not found: _SDL_RenderSetIntegerScale
Referenced from: /Applications/Emulation/Apple/Macintosh/Macs OS /1999-2000 Mac OS 9.0.4 (Minuet).app/Contents/Resources/1999-2000 Mac OS 9.0.4 (Sonata).app/Contents/MacOS/SheepShaver
Expected in: /Library/Frameworks/SDL2.framework/Versions/A/SDL2
Feb 22 20:04:36 Host SheepShaver[37366]: dyld: Symbol not found: _SDL_RenderSetIntegerScale
Referenced from: /Applications/Emulation/Apple/Macintosh/Macs OS /1999-2000 Mac OS 9.0.4 (Minuet).app/Contents/Resources/1999-2000 Mac OS 9.0.4 (Sonata).app/Contents/MacOS/SheepShaver
Expected in: /Library/Frameworks/SDL2.framework/Versions/A/SDL2
Feb 22 20:04:43 Host Console[37369]: DEPRECATED USE in libdispatch client: dispatch source activated with no event handler set; set a breakpoint on _dispatch_bug_deprecated to debug
Is it possible to include sdl2 in your build instead of using it externally? There appears to be a conflict between my system-wide SDL2 and your build.

[edit] I upgraded my SDL to 2.09 and it appears to be working properly (nice crisp graphics) but really slow redraw, slow performance and 100% CPU usage.

Re: Can Only See a Portion of the Screen

Posted: Sat Feb 23, 2019 4:10 pm
by DrLex
adespoton wrote:Is it possible to include sdl2 in your build instead of using it externally? There appears to be a conflict between my system-wide SDL2 and your build.

[edit] I upgraded my SDL to 2.09 and it appears to be working properly (nice crisp graphics) but really slow redraw, slow performance and 100% CPU usage.
Oops, I assumed the project was configured to embed the framework but it obviously wasn't. It also seems this was a debug build, so it probably lacks optimisations. Here's a new one that is built for release and includes the framework (I have updated all the above links to point to this build as well).

Re: Can Only See a Portion of the Screen

Posted: Sun Feb 24, 2019 9:14 am
by Ronald P. Regensburg
DrLex wrote:Oops, I assumed the project was configured to embed the framework but it obviously wasn't.
The project expects the framework to be in /Users/Library/Frameworks/

Re: Can Only See a Portion of the Screen

Posted: Sun Feb 24, 2019 4:05 pm
by DrLex
Ronald P. Regensburg wrote:The project expects the framework to be in /Users/Library/Frameworks/
That's a bit of an unusual location. Also the XCode project (as checked into GitHub) uses relative paths, so it needs to be in a specific location as well. Wouldn't it be better to expect the framework to be in the standard location (/Library/Frameworks/) and refer to it using absolute paths in the project?

Re: Can Only See a Portion of the Screen

Posted: Sun Feb 24, 2019 4:42 pm
by Ronald P. Regensburg
As far as I know, it was a choice made by kanjitalk755, I don't know why. I have it now both in the default location /Library/Frameworks/ and in /Users/Library/Frameworks/ for building SheepShaver and BasiliskII from kanjitalk755/macemu only.
I didn't realise that a relative path is used. I always use the source folder on my desktop.

Re: Can Only See a Portion of the Screen

Posted: Sun Feb 24, 2019 4:46 pm
by adespoton
Personally, I think that unless it’s deploying an installer script, it should just be in the Resources folder. It’s not like the size difference is that big compared to the disk images/etc we create to go with it, and that prevents other applications from requiring an incompatible version at some point and breaking things.

Re: Can Only See a Portion of the Screen

Posted: Sun Feb 24, 2019 5:04 pm
by Ronald P. Regensburg
The Xcode project finds SDL2.framework in /Users/Library/Frameworks/ and when building the application, copies it into SheepShaver.app/Contents/Frameworks/

It has been like that for many years, but in the past it used to copy the framework from the default location /Library/Frameworks/
I do not remember when that changed and if it is only in kanjitalk755/macemu.

Re: Can Only See a Portion of the Screen

Posted: Sun Feb 24, 2019 8:33 pm
by DrLex
Ronald P. Regensburg wrote:The Xcode project finds SDL2.framework in /Users/Library/Frameworks/ and when building the application, copies it into SheepShaver.app/Contents/Frameworks/

It has been like that for many years, but in the past it used to copy the framework from the default location /Library/Frameworks/
I do not remember when that changed and if it is only in kanjitalk755/macemu.
Well, it doesn't really matter if the framework location is a bit odd and I don't want to make kanjitalk755 move his files around, but regardless of where the framework is expected to be, it should be documented in the README. The easier we make it for anyone to get started working on this, the better the chances of getting more contributions to the project :smile:

Re: Can Only See a Portion of the Screen

Posted: Mon Feb 25, 2019 9:43 am
by kanjitalk755
When I added SDL2.framework as embedded, it was registered by relative path.
I couldn't find how to change it to absolute path.

As a trial, I have edited project file manually.
If something goes wrong with this change, I will restore it.

Re: Can Only See a Portion of the Screen

Posted: Mon Feb 25, 2019 10:52 am
by Ronald P. Regensburg
Works here as intended.

SDL2.framework is now found by the Xcode project at /Library/Frameworks/SDL2.framework