hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.24k stars 2.17k forks source link

GTA : LCS - All character and vehicle models are invisible on M1 Mac #15149

Closed patrickmetz closed 1 year ago

patrickmetz commented 2 years ago

Game or games this happens in

ULUS-10041 GTA:Liberty City Stories

What area of the game / PPSSPP

One minute into the game when one watches the intro, it becomes clear that all characters and vehicles are invisible most of the time, and only partly "flash" into existence for very brief periods. Broken Models

I also tested OpenEmu which uses 1.10.3. And that version is not affected and shows all characters and vehicles correctly. But in OpenEmu one cannot even access any of PPSSPP's settings, so using that "frontend" is rather pointless.

Also you guys do not provide 1.10.3 readily compiled for M1. Brew provides PPSSPP 1.10.3, too, but crashes during installation of PPSSPP. See [#72631].(https://github.com/Homebrew/homebrew-core/issues/72631) And RetroArch for M1 is missing the PPSSPP core entirely.

So the only way to play this game is OpenEmu, which is not configurable and uses 1x-PSP-resolution -.-

What should happen

Characters and vehicles should be clearly visible, when they are on screen.

Logs

No response

Platform

macOS

Mobile phone model or graphics card

M1

PPSSPP version affected

1.12.3

Last working version

1.10.3

Graphics backend (3D API)

OpenGL / GLES and Vulkan

Checklist

hrydgard commented 1 year ago

Oh darn, I thought unions were the "approved" way to bitcast. I guess memcpy it is... Will play with it tomorrow.

unknownbrackets commented 1 year ago

It seems like they aren't on C++ yeah... does #16817 help?

-[Unknown]

hrydgard commented 1 year ago

Some poking around with my convenient partial revert #16927 resulted in this result:

Removing:

    if (k < 0x68) {
        val.i &= 0x80000000;
        return val.f;
    }

from vfpu_sin() in MIPSVFPUUtils.cpp is enough to get things working again on both Intel and ARM64 Macs. Most curious.

DTibor1986 commented 1 year ago

Hello, sorry to bother you, but GTA LC & VC still crashing me, no matter whatever backend I am using. I am on MacOS 12.6.3, M1 Max. Tried resetting PPSSPP, different rom (I know..) but still crashing both game right after the intro scene. Any other game in my library just runs perfectly fine.

DTibor1986 commented 1 year ago

I am on the build which fixing the 16928 issue.

hrydgard commented 1 year ago

I would guess your ISO is broken, or maybe you're using some cheat that doesn't quite work? I have an ISO file I dumped myself from UMD and it works just fine on both my Macs, as far as I can tell.

sum2012 commented 1 year ago

Lucky I just test chinese patched of GTA still work (in windows)