Project

General

Profile

Actions

Emulator Issues #12041

closed

Dolphin crashes when using DSP LLE and CPU Interpreter

Added by pokechu22 about 4 years ago. Updated about 4 years ago.

Status:
Duplicate
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

I've tested with the GameCube IPL and Wii Sports, but I'm pretty sure it affects all titles.

What's the problem? Describe what went wrong.

Dolphin crashes on starting emulation if both DSP LLE and CPU interpreter are used together. This happens with both DSP LLE Recompiler and DSP LLE Interpreter, and interpreter/cached interpreter, and single/dual core, and dumped/free DSP roms, and MMU enabled or disabled (I haven't tested all of the permutations of these, but I did test a lot of them).

What steps will reproduce the problem?

  1. Under Settings ⇒ Audio, set DSP Emulation Engine to DSP LLE Recompiler.
  2. Under Settings ⇒ Advanced, set CPU Emulation Engine to Cached Interpreter.
  3. Try to launch something.

Is the issue present in the latest development version?

Yes, tested 5.0-11824.

Is the issue present in the latest stable version?

No, not present in 5.0.

If the issue isn't present in the latest stable version, which is the first broken version?

5.0-11494, PR #8537

What are your PC specifications?

  • CPU: AMD A6-340M APU with Radeon(tm) Graphics, 1500 Mhz, 4 Core(s), 4 Logical Processor(s)
  • GPU: AMD Radeon HD 6520G
  • OS: Windows 10 Pro (Insider preview) 10.0.19041.172

Is there anything else that can help developers narrow down the issue?

Stacktrace with DSP LLE Interpeter and CPU Cached Interpreter and Single Core, on CPU-GPU thread:

Unhandled exception at 0x00007FF7D75B02CE in DolphinD.exe: 0xC0000005: Access violation reading location 0x00000000013CA440.

>	DolphinD.exe!Common::HashEctor(const unsigned char * ptr, int length) Line 104	C++
 	DolphinD.exe!DSP::gdsp_idma_in(unsigned short dsp_addr, unsigned int addr, unsigned int size) Line 289	C++
 	DolphinD.exe!DSP::gdsp_do_dma() Line 423	C++
 	DolphinD.exe!DSP::gdsp_ifx_write(unsigned int addr, unsigned short val) Line 132	C++
 	DolphinD.exe!DSP::dsp_dmem_write(unsigned short addr, unsigned short val) Line 62	C++
 	DolphinD.exe!DSP::Interpreter::sr(unsigned short opc) Line 69	C++
 	DolphinD.exe!DSP::Interpreter::`anonymous namespace'::ExecuteInstruction(const unsigned short inst) Line 32	C++
 	DolphinD.exe!DSP::Interpreter::Step() Line 101	C++
 	DolphinD.exe!DSP::Interpreter::RunCyclesDebug(int cycles) Line 140	C++
 	DolphinD.exe!DSP::DSPCore_RunCycles(int cycles) Line 280	C++
 	DolphinD.exe!DSP::LLE::DSPLLE::DSP_Update(int cycles) Line 321	C++
 	DolphinD.exe!`DSP::RegisterMMIO'::`2'::<lambda_5>::operator()(unsigned int __formal) Line 280	C++
 	DolphinD.exe!std::_Invoker_functor::_Call<`DSP::RegisterMMIO'::`2'::<lambda_5> &,unsigned int>(DSP::RegisterMMIO::__l2::<lambda_5> & _Obj, unsigned int && <_Args_0>) Line 1610	C++
 	DolphinD.exe!std::invoke<`DSP::RegisterMMIO'::`2'::<lambda_5> &,unsigned int>(DSP::RegisterMMIO::__l2::<lambda_5> & _Obj, unsigned int && <_Args_0>) Line 1610	C++
 	DolphinD.exe!std::_Invoker_ret<unsigned short,0>::_Call<`DSP::RegisterMMIO'::`2'::<lambda_5> &,unsigned int>(DSP::RegisterMMIO::__l2::<lambda_5> & <_Vals_0>, unsigned int && <_Vals_1>) Line 1637	C++
 	DolphinD.exe!std::_Func_impl_no_alloc<`DSP::RegisterMMIO'::`2'::<lambda_5>,unsigned short,unsigned int>::_Do_call(unsigned int && <_Args_0>) Line 927	C++
 	DolphinD.exe!std::_Func_class<unsigned short,unsigned int>::operator()(unsigned int <_Args_0>) Line 977	C++
 	DolphinD.exe!MMIO::ReadHandler<unsigned short>::Read(unsigned int addr) Line 143	C++
 	DolphinD.exe!MMIO::Mapping::Read<unsigned short>(unsigned int addr) Line 132	C++
 	DolphinD.exe!PowerPC::ReadFromHardware<1,unsigned short,0>(unsigned int em_address) Line 250	C++
 	DolphinD.exe!PowerPC::Read_U16(unsigned int address) Line 469	C++
 	DolphinD.exe!Interpreter::lhz(UGeckoInstruction inst) Line 234	C++
 	DolphinD.exe!CachedInterpreter::ExecuteOneBlock() Line 96	C++
 	DolphinD.exe!CachedInterpreter::Run() Line 122	C++
 	DolphinD.exe!PowerPC::RunLoop() Line 367	C++
 	DolphinD.exe!CPU::Run() Line 122	C++
 	DolphinD.exe!Core::CpuThread(const std::optional<std::string> & savestate_path, bool delete_savestate) Line 371	C++
 	DolphinD.exe!Core::EmuThread(std::unique_ptr<BootParameters,std::default_delete<BootParameters>> boot, WindowSystemInfo wsi) Line 618	C++
 	DolphinD.exe!std::_Invoker_functor::_Call<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters>>,WindowSystemInfo),std::unique_ptr<BootParameters,std::default_delete<BootParameters>>,WindowSystemInfo>(void(*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters>>, WindowSystemInfo) && _Obj, std::unique_ptr<BootParameters,std::default_delete<BootParameters>> && <_Args_0>, WindowSystemInfo && <_Args_1>) Line 1610	C++
 	DolphinD.exe!std::invoke<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters>>,WindowSystemInfo),std::unique_ptr<BootParameters,std::default_delete<BootParameters>>,WindowSystemInfo>(void(*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters>>, WindowSystemInfo) && _Obj, std::unique_ptr<BootParameters,std::default_delete<BootParameters>> && <_Args_0>, WindowSystemInfo && <_Args_1>) Line 1610	C++
 	DolphinD.exe!std::thread::_Invoke<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters>>,WindowSystemInfo),std::unique_ptr<BootParameters,std::default_delete<BootParameters>>,WindowSystemInfo>,0,1,2>(void * _RawVals) Line 44	C++
 	ucrtbased.dll!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97	C++
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown

The parameters to gdsp_idma_in are 0, 0x813CA440, 0x1760.

This code is suspect, since Memory::physical_base (and thus g_dsp.cpu_ram) seems to be NULL when using CPU Interpreter.


Related issues 1 (0 open1 closed)

Is duplicate of Emulator - Emulator Issues #11980: LLE audio and Fastmem off causes Dolphin crashFixed

Actions
Actions #1

Updated by JosJuice about 4 years ago

Actions #2

Updated by JosJuice about 4 years ago

  • Status changed from New to Duplicate
Actions

Also available in: Atom PDF