dhewm / dhewm3

dhewm 3 main repository
https://dhewm3.org/
GNU General Public License v3.0
1.81k stars 351 forks source link

All models stuck in T-Pose on PowerMac G5 #472

Closed Astal4 closed 2 weeks ago

Astal4 commented 2 years ago

Hello! I've got a PowerMac G5 Quad that I'm playing with, it's running Gentoo, and on the X1900 GT, all models are stuck in a T-Pose. It's a funny glitch, but still a glitch.

Built with -Ofast and -maltivec, this is from the stable release. image

DanielGibson commented 2 years ago

Don't use -Ofast, it can screw up math code.

If that doesn't help I have no idea, I can't debug this myself because I have no PPC hardware

Astal4 commented 2 years ago

Retrying with -O2 -maltivec instead

Astal4 commented 2 years ago

No difference. still issues with -O2

Cowcat5150 commented 2 years ago

Depending of the PPC system, altivec doesn't work as it is from those old sources.

I've tested some altivec for MorphOS platform (G4), and one of the functions that does funny things with models is BlendJoints: Try to copy paste the SIMD_Generic version equivalent to the SIMD_Altivec source.

Or try to compile a version that only uses Generic Simd code.

FuryOusFrank commented 2 years ago

Hi. Same problem with a Quad G5 running Void ppc64. I replaced the whole SIMD_Altivec.cpp file for SIMD_generic and all the models are still stuck with the T-Pose. I can't interact with them either. Was a solution ever found?

EDIT

Compiling and running in a 32bit chroot solved the problem for me (Void ppc64). It appears that the problem il not related to altivec.

DanielGibson commented 3 weeks ago

This problem should be fixed in the following branch: https://github.com/DanielGibson/dhewm3/tree/fix-ppc64be

@Astal4 @FuryOusFrank could you please test that branch to see if it works for you, and to make sure there are no additional 64bit Big Endian problems we haven't found yet? Thanks in advance! :)

DanielGibson commented 3 weeks ago

See also #626

FuryOusFrank commented 3 weeks ago

@Astal4 @FuryOusFrank could you please test that branch to see if it works for you, and to make sure there are no additional 64bit Big Endian problems we haven't found yet? Thanks in advance! :)

Thanks! My G5 is not working at this time. Overheating caused by the age of the liquid cooling system. I'll look into it as soon as I can.

DanielGibson commented 2 weeks ago

fix merged