Skip to content

Fallback unsupported database SPU decoder on ARM64 - #18651

Merged
AniLeo merged 4 commits into
RPCS3:masterfrom
cicerohellmann:fix/arm64-db-spu-decoder-fallback
Jul 1, 2026
Merged

AniLeo merged 4 commits into
RPCS3:masterfrom
cicerohellmann:fix/arm64-db-spu-decoder-fallback

Conversation

@cicerohellmann

Copy link
Copy Markdown
Contributor

Summary

  • fall back from database-applied SPU Decoder: Recompiler (ASMJIT) to Recompiler (LLVM) on ARM64 builds during boot
  • log the fallback in fixup_settings() instead of letting SPU initialization fail later

Problem

Need for Speed: Most Wanted [BLES01659] receives SPU Decoder: Recompiler (ASMJIT) from the config database. On ARM64 builds that decoder is unsupported, which caused RPCS3 to abort during SPU initialization with Unsupported spu decoder while the UI remained on the loading screen.

Validation

  • built RPCS3 locally on macOS Apple Silicon
  • booted BLES01659 through the database config path with the custom per-game override temporarily removed
  • verified the log now shows the ARM64 fallback warning and SPU Decoder: Recompiler (LLVM) instead of the previous fatal error
  • observed the title proceed past the old boot blocker into active RSX program compilation

@elad335 elad335 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should fallback to SPU dynamic Interpreter instead.

@Megamouse Megamouse added the CPU: arm64 Host architecture arm64 specific CPU code label Apr 28, 2026

@elad335 elad335 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If LLVM_AVAILABLE is not defined, you cannot use spu_decoder_type::dynamic because the opcode handlers are built on LLVM as well, you must resort to spu_decoder_type::_static unfortunately.

Comment thread rpcs3/Emu/System.cpp Outdated
Comment thread rpcs3/Emu/System.cpp
Co-authored-by: Elad <18193363+elad335@users.noreply.github.com>
@elad335
elad335 marked this pull request as ready for review July 1, 2026 10:33
@elad335
elad335 enabled auto-merge (squash) July 1, 2026 10:33
@AniLeo
AniLeo disabled auto-merge July 1, 2026 11:05
@AniLeo
AniLeo enabled auto-merge (squash) July 1, 2026 11:05
@AniLeo
AniLeo merged commit 6647c5a into RPCS3:master Jul 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CPU: arm64 Host architecture arm64 specific CPU code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants