I am making available my work-in-progress patch for synchronising the FIFO. Synchronising the FIFO allows games like Eternal Darkness to run by making the GPU run in step with the CPU.
The code is more stable in Single Core mode than Dual Core. However, Dual Core does work and is faster. The Zelda Bloom Projection Hack needs to be turned on to see the game menu.
I am looking for test reports on this FIFO. I am most interested in games that work in SVN r5688 (x64 and Win32) but do not work with this version. However, all reports are welcome. In the report, please list the game and whether you used Single Core or Dual Core mode. Also, the FIFO BP Hack takes new meaning with this patch. If a game does not work, try toggling the FIFO BP Hack setting in the game properties. The FIFO BP Hack makes the FIFO work similar to the old FIFO.
I have found that Wii Sports, SMG, Pokemon XD, and Starfox Adventures do not work.
If you compile your own build, there are some special parameters that you can adjust to possibly make games work. Let me know if you have changed these parameters.
These are the parameters:
In CommandProcessor.h:
The FIFO period is how closely stepped the GPU and CPU are. The lower the number, the more accurate. The higher the number, the faster the emulation. Range should be 1000 - 30000
In OpcodeDecoding.cpp, there are a few lines that are in the following format:
This sets the amount of time that it takes to execute a GPU command. The ones marked with TODO have not been verified on the real hardware. The range should be between 5 - 50. Experiment with this value up to 1000.
If you compile your own builds, there is a patch file attached. If you cannot compile builds, here are the Win32 and x64 builds with default settings (they work with Eternal Darkness)
Synchronised FIFO Win32
Synchronised FIFO x64
The code is more stable in Single Core mode than Dual Core. However, Dual Core does work and is faster. The Zelda Bloom Projection Hack needs to be turned on to see the game menu.
I am looking for test reports on this FIFO. I am most interested in games that work in SVN r5688 (x64 and Win32) but do not work with this version. However, all reports are welcome. In the report, please list the game and whether you used Single Core or Dual Core mode. Also, the FIFO BP Hack takes new meaning with this patch. If a game does not work, try toggling the FIFO BP Hack setting in the game properties. The FIFO BP Hack makes the FIFO work similar to the old FIFO.
I have found that Wii Sports, SMG, Pokemon XD, and Starfox Adventures do not work.
If you compile your own build, there are some special parameters that you can adjust to possibly make games work. Let me know if you have changed these parameters.
These are the parameters:
In CommandProcessor.h:
Code:
#define FIFO_PERIOD 13000
The FIFO period is how closely stepped the GPU and CPU are. The lower the number, the more accurate. The higher the number, the faster the emulation. Range should be 1000 - 30000
In OpcodeDecoding.cpp, there are a few lines that are in the following format:
Code:
cycleTime = XX; // TODO
This sets the amount of time that it takes to execute a GPU command. The ones marked with TODO have not been verified on the real hardware. The range should be between 5 - 50. Experiment with this value up to 1000.
If you compile your own builds, there is a patch file attached. If you cannot compile builds, here are the Win32 and x64 builds with default settings (they work with Eternal Darkness)
Synchronised FIFO Win32
Synchronised FIFO x64