Opened 4 months ago

Closed 3 months ago

#14809 closed defect (fixed)

OSXPPC: No PPC ScummVM past 2.2.0 works on iMac G5

Reported by: memphisbarbecue Owned by: lephilousophe
Priority: normal Component: Port: Mac OS X
Version: Keywords: PowerPC, iMac G5
Cc: memphisbarbecue Game:

Description

(To start, I just wanted to say, I really appreciate whoever is maintaining the Mac OS X PPC port - I understand it is probably a lot of work for a small user base)

That being said, I was building my iMac G5 into an educational games computer for my daughter and tried loading the current PowerPC build onto it. The current (2.8.0) build does not work but I tried working my way backward until I found that the 2.2.0 build does work. This isn't a huge deal though we had one game (The New Kid on the Block) which had a bug in 2.2.0 that we'd like to get working.

The symptoms are: installing the .dmg works, but when I try to launch ScummVM a window tries to pop up and crashes.

Attachments (7)

scummvm-d6.log (2.1 KB ) - added by memphisbarbecue 4 months ago.
imac-g5-graphics-card.png (99.0 KB ) - added by memphisbarbecue 4 months ago.
opengl-ppc-imac-g5-vs-powerbook-g4.diff (1.1 KB ) - added by dwatteau 4 months ago.
Comparison between -d6 output on the previous iMac G5 setup (KO) and my PowerBook G4 (OK)
opengl-ppc-imac-g5-vs-ibook-g4.diff (1.4 KB ) - added by dwatteau 4 months ago.
ScummVM -d6 output difference between the iMac G5 (with its NVIDIA GeForce FX 5200) and my iBook G4 (with its ATI Radeon 9200)
scummvm-d6-2.6.0.log (3.4 KB ) - added by memphisbarbecue 4 months ago.
scummvm-d6-2.7.0.log (2.0 KB ) - added by memphisbarbecue 4 months ago.
crash_report_scummvm_2.6.0.txt (31.0 KB ) - added by memphisbarbecue 4 months ago.

Download all attachments as: .zip

Change History (23)

comment:1 by dwatteau, 4 months ago

OSX PPC maintainer here, thanks for your essential feedback! Unfortunately I don't have any G5 device anymore to test the build. I don't really see any reason why it wouldn't work, though...

What is your OS X release, when you look at "About this Mac"? (or sw_vers in a Terminal).

Also, in your System Preferences, is your screen set to "thousands of colors", instead of "millions of colors"? This is known to cause problems.

Last thing, when the 2.8.0 executable crashes, could you try getting the "Details" output from the OS X crash window, and attach it to this bug report? The stack trace won't be very detailed I think, but at least it'll give a direction to look at.

Thanks!

comment:2 by dwatteau, 4 months ago

Component: GUIPort: Mac OS X
Owner: set to dwatteau
Resolution: assigned
Status: newpending
Summary: No PPC ScummVM past 2.2.0 works on iMac G5OSXPPC: No PPC ScummVM past 2.2.0 works on iMac G5

comment:3 by memphisbarbecue, 4 months ago

I did verify that my display is set to "Millions" of colors rather than "Thousands." When I type "sw_vers" I get

ProductName: Mac OS X
ProductVersion: 10.5.8
BuildVersion: 9L31a

I tried to get the "Details" output from the 2.8.0 crash window but there actually isn't a crash window. I tried running it from command line to see whether there was an error reported, and I get:

WARNING: Shader: createCompatShader(): Required version 110 is not supported (100 maximum)!
Required GLSL version 110 is not supported (100 maximum)!

Just to make sure, I ran 2.2.0 and I do not get the same warning. Let me know if there's another way to diagnose what's happening.

comment:4 by criezy, 4 months ago

It looks like this might be an issue with the OpenGL graphics mode.
Can you try to add gfx_mode=surfacesdl to the [scummvm] section of your ScummVM Preferences file to see if that allows starting ScummVM?

comment:5 by memphisbarbecue, 4 months ago

Adding gfx_mode=surfacesdl to the [scummvm] section fixes it so that ScummVM can start. Thanks! Is the answer to this just that Mac OS X on the G5 has aged out of OpenGL support?

comment:6 by dwatteau, 4 months ago

Thanks for your test.

I don't have access to my PPC systems right now, but the OpenGL output does work on my iBook G4 and my PowerBook G4.

Do you have details about the graphics card in your G5? (It should be somewhere in the system information dialogs.)

I've been told about the OpenGL output having problems with Rage Mobility 128 cards in G3 iBooks, so reverting to surfacesdl on older OSX is maybe a safer default setting.

comment:7 by dwatteau, 4 months ago

Also, attaching the output from

/Applications/ScummVM.app/Contents/MacOS/scummvm -d6

run from the command-line could help having a bit more context. When you're running the latest release in OpenGL mode, that is.

Thanks.

by memphisbarbecue, 4 months ago

Attachment: scummvm-d6.log added

by memphisbarbecue, 4 months ago

Attachment: imac-g5-graphics-card.png added

comment:8 by memphisbarbecue, 4 months ago

Attached, it's in the scummvm-d6.log file. (that's the output from redirecting stdout and stderr to a file)

Also, I screenshotted the graphics card in the system profile and it's attached as
imac-g5-graphics-card.png. It's an NVIDIA GeForce FX 5200.

by dwatteau, 4 months ago

Comparison between -d6 output on the previous iMac G5 setup (KO) and my PowerBook G4 (OK)

comment:9 by dwatteau, 4 months ago

Thanks for providing this output.

I can confirm that the OpenGL renderer works on my PoweBook G4, but it has an ATI Radeon 9600 XT, which reports different OpenGL settings (see the diff output above).

@memphisbarbecue: After explicitly setting gfx_mode=opengl in the configuration file, do the 2.2.0, 2.6.0 and 2.7.0 releases also trigger this crash? (There were no 2.3.0 or 2.4.0 releases, and 2.5.0 has not been published for OSXPPC). So that we can see when the problem may have been introduced. Thanks.

comment:10 by dwatteau, 4 months ago

Update: I've made some "new" builds of the older 2.5.x release for easier regression testing:

<https://downloads.scummvm.org/frs/scummvm/2.5.0/scummvm-2.5.0-macosx-ppc.dmg>
<https://downloads.scummvm.org/frs/scummvm/2.5.1/scummvm-2.5.1-macosx-ppc.dmg>

Also, some Discord chat about this OpenGL matter:

From lephilousophe:

openGL driver is too old
we should fallback on surfacesdl in this case
I am not sure we even support OpenGL 1.5?
at least not with shaders
oh, I see: file backends/graphics/opengl/opengl-graphics.cpp, line 1349, we don't check the version
but it's difficult to check because it depends on the type of the GL context (GL vs GLES)
I wonder why we request version 110

From ccawley2011:

The commit history suggests that the #version pragma was added to resolve issues with AmigaOS 4, and it requsted version 1.20 until it was lowered following a crash report.
https://github.com/scummvm/scummvm/commit/d524d36a6a2370decf2fcf8f4a48e8db99eec338
https://github.com/scummvm/scummvm/commit/35e12e2491d199a1ea8f54979fbbf7c065e059f6
We also used to have a specific workaround for aliasing between GL 2.0 and ARB shader extensions which might not have been preserved when we moved to GLAD.
https://github.com/scummvm/scummvm/blob/branch-2-2/backends/graphics/opengl/opengl-defs.h#L85

by dwatteau, 4 months ago

ScummVM -d6 output difference between the iMac G5 (with its NVIDIA GeForce FX 5200) and my iBook G4 (with its ATI Radeon 9200)

by memphisbarbecue, 4 months ago

Attachment: scummvm-d6-2.6.0.log added

by memphisbarbecue, 4 months ago

Attachment: scummvm-d6-2.7.0.log added

by memphisbarbecue, 4 months ago

comment:11 by memphisbarbecue, 4 months ago

I set gfx_mode=opengl in 2.2.0, and it worked. (I verified in the GUI menu that OpenGL was set on load as well in this release.)

Then, I set gfx_mode=opengl and gfx_mode=surfacesdl in 2.6.0 and 2.7.0. In both cases, the OpenGL mode crashes and the surfacesdl mode works. However, I got a different error in 2.6.0 with a crash report (crash_report_scummvm_2.6.0.txt) I've attached - it fails with "bus error". I'm downloading the 2.5.0 and 2.5.1 releases to test them on my machine.

comment:12 by memphisbarbecue, 4 months ago

@dwatteau - Versions 2.5.0 and 2.5.1 you've provided above load on my iMac G5 with gfx_mode=opengl with no issues.

comment:13 by dwatteau, 4 months ago

@memphisbarbecue: Thanks for your tests! So the regression was introduced somewhere between 2.5.0 and 2.6.0.

There's a pull request that might fix this:

https://github.com/scummvm/scummvm/pull/5631

I'll see if I can find the time to provide you a build with this change, but my availabilities are a bit random at the moment...

comment:14 by dwatteau, 4 months ago

@memphisbarbecue: Here's a 2.8.1pre test build with some new OpenGL changes from lephilousophe:

https://github.com/dwatteau/scummvm/releases/download/v1.8.1/scummvm-2.8.1pre-macosx-ppc-PR-5631-20240120.dmg

could you try it and tell us whether this improves things? Thank you!

comment:15 by memphisbarbecue, 3 months ago

@dwatteau: I just tested ScummVM 2.8.1pre (Jan 20 2024 21:56:51) and it runs fine in OpenGL mode. Thanks for preparing the build!

comment:16 by dwatteau, 3 months ago

Owner: changed from dwatteau to lephilousophe
Resolution: assignedfixed
Status: pendingclosed

Thank you for testing it and reporting the issue! Every test on OSX PPC is very welcome :)

Closing this issue, since the fix was merged for the next 2.8.1 and 2.9.0 releases.

Note: See TracTickets for help on using tickets.