I got a problem again....
Lately I got a habit of patching syscalls :D
So far it always worked fine.... mostly....
Usually I have a usermode PRX that loads a pure kernel mode PRX, the kernel mode PRX does all the hooking/patching and everthing is fine, my own functions get called instead of the original ones.
The kernel mode PRX is also compiled against the kernel libs with those two line in the makefile:
Code: Select all
USE_KERNEL_LIBC=1
USE_KERNEL_LIBS=1
So, NOW I have a PRX that is supposed to be a CFW plugin.
I also build it as kernel module, and here comes the thing....
With the above two lines in my makefile theese two lines of code seem to have no effect:
Code: Select all
sceKernelDcacheWritebackInvalidateRange(addr, sizeof(addr));
sceKernelIcacheInvalidateRange(addr, sizeof(addr));
If I take out the KERNEL_LIB lines mentioned above from my makefile everything works perfectly and my hooked functions are called like they are supposed to.
What am I missing here? :)
Or could I just compile my PRX without those lines without risking mayor compatibility problems with games running?
Another advantage not to compile against those would be that I could use printf() again, couldn't I? :D