Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
GameDB enables VuClipFlagHack even with MicroVU
#1
I just happened to notice this while playing Persona 3. The description for the game fix(on the manual fix page) says:

"VU Clip Flag Hack - For Persona games (SuperVU recompiler only!)"

However, it gets enabled by the automatic game fixes even when MicroVU is selected.

[Image: 1.png]

Is this an issue?
[Image: ov4]
Gaming: Intel i7 3770k @ 4.2Ghz | R9 290 | 16GB RAM | 480GB(240GB+240GB RAID0) SSD | 3 TB HDD | 1 TB HDD | 500GB HDD
Server: AMD FX 6300 @ 4.4Ghz | GTX 670 | 16GB RAM | 240GB SSD | 320GB HDD
PCSX2 General Troubleshooting FAQ
Reply

Sponsored links

#2
Maybe, MVu recompiler doesn't need this Game fix. it might be present to just be usable in case if, Svu recompiler is used by the user.
We're supposed to be working as a team, if we aren't helping and suggesting things to each other, we aren't working as a team.
- Refraction

[Image: 84t1dRu.png]
Reply
#3
Search the option in source code. It might only impact superVu code.
Reply
#4
(03-29-2015, 02:03 PM)gregory Wrote: Search the option in source code. It might only impact superVu code.

I just did a format and don't have visual studio reinstalled yet. I'll give it a look when I do.
[Image: ov4]
Gaming: Intel i7 3770k @ 4.2Ghz | R9 290 | 16GB RAM | 480GB(240GB+240GB RAID0) SSD | 3 TB HDD | 1 TB HDD | 500GB HDD
Server: AMD FX 6300 @ 4.4Ghz | GTX 670 | 16GB RAM | 240GB SSD | 320GB HDD
PCSX2 General Troubleshooting FAQ
Reply
#5
Here a grep of VuClipFlag
Quote:pcsx2/x86/sVU_zerorec.cpp: if (!CHECK_VUCLIPFLAGHACK && pparentinst != NULL)
pcsx2/Config.h: Fix_VuClipFlag,
pcsx2/Config.h: VuClipFlagHack :1, // Persona games, maybe others. It's to do with the VU clip flag (again).
pcsx2/Config.h:#define CHECK_VUCLIPFLAGHACK (EmuConfig.Gamefixes.VuClipFlagHack) // Special Fix for Persona games, maybe others. It's to do with the VU clip flag (again).
pcsx2/Pcsx2Config.cpp: L"VuClipFlag",
pcsx2/Pcsx2Config.cpp: case Fix_VuClipFlag: VuClipFlagHack = enabled; break;
pcsx2/Pcsx2Config.cpp: case Fix_VuClipFlag: return VuClipFlagHack;
pcsx2/Pcsx2Config.cpp: IniBitBool( VuClipFlagHack );
Reply
#6
That explains it, there is nothing related to use the VU clip flag hack in the MicroVU hence, it will only get automatically applied if, SuperVu is in use.

The initialization of the VUclipflag hack is present under the following conditional operator series.

Code:
if (!CHECK_VUCLIPFLAGHACK && pparentinst != NULL)
{
if (nParentCheckForExecution >= 0)
{
if (pparentinst->pClipWrite == 0)
pparentinst->pClipWrite = (uptr)SuperVUStaticAlloc(4);
if (s_ClipRead == 0)
s_ClipRead = (uptr) & VU->VI[REG_CLIP_FLAG];
CMP32ItoM((uptr)&g_nLastBlockExecuted, nParentCheckForExecution);
u8* jptr = JNE8(0);
CMP32ItoM((uptr)&s_ClipRead, (uptr)&VU->VI[REG_CLIP_FLAG]);
u8* jptr2 = JE8(0);
MOV32MtoR(EAX, pparentinst->pClipWrite);
MOV32RtoM(s_ClipRead, EAX);
x86SetJ8(jptr);
x86SetJ8(jptr2);
}
Where, it checks for it's Initialization from the VuClipFlagHack variable, the flag hack function on Svu_zerorec.cpp is initialized when the variable is equal to 1. ( the values for that is stored in the GameIndex.dbf).

Therefore, it can only be applied if, Svu recompiler is in use. even if it shows enabled in the Console log it still can't reach the SUPERVU_PROPAGATEFLAGS since, SuperVu recompiler is not used.
We're supposed to be working as a team, if we aren't helping and suggesting things to each other, we aren't working as a team.
- Refraction

[Image: 84t1dRu.png]
Reply
#7
I figured as much. It's just that the gamefix says "SuperVU recompiler only!" which at least suggests it might cause havoc with MVU. Thanks for checking it out.
[Image: ov4]
Gaming: Intel i7 3770k @ 4.2Ghz | R9 290 | 16GB RAM | 480GB(240GB+240GB RAID0) SSD | 3 TB HDD | 1 TB HDD | 500GB HDD
Server: AMD FX 6300 @ 4.4Ghz | GTX 670 | 16GB RAM | 240GB SSD | 320GB HDD
PCSX2 General Troubleshooting FAQ
Reply




Users browsing this thread: 1 Guest(s)