diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index d0a9e15ebc..d6ef1a77d5 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -303,6 +303,20 @@ static void fixup_settings(const psf::registry* _psf) } } +#if defined(ARCH_ARM64) + if (g_cfg.core.spu_decoder == spu_decoder_type::asmjit) + { +#ifdef LLVM_AVAILABLE + constexpr auto arm64_spu_fallback = spu_decoder_type::llvm; +#else + constexpr auto arm64_spu_fallback = spu_decoder_type::dynamic; +#endif + sys_log.warning("The setting '%s' is currently not supported on ARM64 builds and will therefore be changed from '%s' to '%s' during emulation.", + g_cfg.core.spu_decoder.get_name(), spu_decoder_type::asmjit, arm64_spu_fallback); + g_cfg.core.spu_decoder.set(arm64_spu_fallback); + } +#endif + if (const u32 psf_resolution = _psf ? psf::get_integer(*_psf, "RESOLUTION", 0) : 0) { const std::map resolutions