Login to Account Create an Account
Bugs in Dolphin
Posted 28 February 2009 - 07:00 AM
Most Wii/Gamecube games uses the Digital Signal Processor (DSP) to decode data into Audio data (like the DSP could be used to decode MP3 files into audio). The games load a small program into the DSP called a UCode. the game can send data to the UCode which processes the data into audio and writes the audio data back in the system RAM. In Dolphin, we have to emulate the DSP chip but there is only 1 doc on how this chip works. The DSP_HLE can 95% accurately emulate the AX UCodes, note that all 3rd part games use AX UCodes. Nintendo made games use non-AX UCodes. The HLE doesn't understand the non-AX codes, we are still in progress in turning the non-AX codes into C code. The LLE (Low Level Emulation) DSP plugin emulates the chip by simulating the chip instead of turning the UCodes to C code. Currently the LLE is really buggy and barley works and you also need dsp_rom.bin and dsp_coef.bin, which is a bunch of data you have to dump off your gamecube/Wii system.
Most of the graphics is working now but there are still problems with the XFB and Texture Cache and the zbuffer. The OpenGL plugin is mostly worked on than the Direct3D9 one. The D3D9 plugin is old and needs to be re-written. Also I suspect the EFB is missing some shader functionality. Note the Video plugins are still in the works, so expect bugs. Also the emulator can speedown from the vertex loaders loading too many verticies that the games wants to draw to the screen. Also the GatherPipe emulation system might still be bugged, we hacked a WatchDog for it since the watermark is not to be fully trusted to protect the GX FIFO buffer from getting corruptions.
There are still bugs in the CPU emulator and some missing parts like TLB emulation. Dual Core mode is unstable and usually it causes random crashes/bugs during the execution of the game. The Command Processor is still buggy and it is only used in DC Mode. It tries to emulate the CP on the real system when CPU and GPU threads are running on seperate ALU Cores.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users