shadps4-emu / shadPS4

PS4 emulator for Windows,Linux,MacOS
https://shadps4.net/
GNU General Public License v2.0
9k stars 480 forks source link

[macOS] Regression: Rosetta Error #735

Open shinra-electric opened 1 week ago

shinra-electric commented 1 week ago

This is related to Issue #667. When that issue was fixed by PR #685 it exposed this issue.

I opened this because I don't want to necropost on a closed issue.

The following games will crash with a rosetta error. It seems to have been introduced with PR #638.

Dead Cells - CUSA11253 (When entering the first level)

rosetta error: unexpectedly need to EmulateForward on a synchronous exception x86_rip=0x38670545502 arm_pc=0x481054039580 num_insts=3 inst_index=2 x86 instruction bytes: 0x5083236904201223365 0x11330223254244112

Dark Souls - CUSA08495 (When starting a new game)

rosetta error: unexpectedly need to EmulateForward on a synchronous exception x86_rip=0x38666814885 arm_pc=0x481062790024 num_insts=3 inst_index=2 x86 instruction bytes: 0x1296127535214623941 0x5192690247171377216
rcaridade145 commented 1 week ago

https://github.com/golang/go/issues/42700 Golang seems to have it that issue also.

squidbus commented 1 week ago

This is not a regression from https://github.com/shadps4-emu/shadPS4/pull/638, I tried a build from the commit before and it has the same issue.

squidbus commented 1 week ago

As far as I can tell this starts with https://github.com/shadps4-emu/shadPS4/commit/cf706f8cc7fb2e1606182b676ac50510211ec88b

squidbus commented 1 week ago

Specifically, blocking texel buffers from stream buffer is causing this, possibly something to do with the exception handler logic for buffer tracking.

squidbus commented 1 week ago

I think this has stopped happening with some of the recent changes, could you check?

shinra-electric commented 1 week ago

It has stopped happening with Dead Cells, but it still happens with Dark Souls.

It used to happen with the EU version of RDR (but not the US version, I'm told). But I'll have to reinstall that to check.

Edit: I tried out the EU version of RDR [CUSA36843] and it doesn't have the rosetta error anymore.