Please,
a new OSK with full keyboard on screen is now available since last fw.
Using what already known and present in our SDK this new OSK is not accessible via SELECT.
I've seen a new .prx is added to 5.00 and 5.01 original fw, may be last one with the new OSK.
has anybody instruction on how to access to it? thanks
New OSK from (c)fw 5.00
OK. First you have to load the extra plugin that's been made.
flash0:/kd/osk_plugin_500.prx (I think).
Then use the OSK sample and see if there's an unused variable or something.
Sometimes, devs find functions that do nothing, but may be used in the future. Here's an example:
See if you can find something like that in the OSK files.
There is another, cheekier way you can go about it. You load the OSK like normal and suff the "select" key 3-4 times.
Here's a function to help you do this:
I use it whith piKey:
I hope that helps! Good luck!
Angelo
flash0:/kd/osk_plugin_500.prx (I think).
Then use the OSK sample and see if there's an unused variable or something.
Sometimes, devs find functions that do nothing, but may be used in the future. Here's an example:
Code: Select all
/**
* Executes a new executable from a memory stick.
* It is the function used by the firmware to execute ... ?
*
* @param file - The file to execute.
* @param param - Pointer to a ::SceKernelLoadExecVSHParam structure, or NULL.
*
* @returns < 0 on some errors.
*/
int sceKernelLoadExecVSHMs3(const char *file, struct SceKernelLoadExecVSHParam *param);
There is another, cheekier way you can go about it. You load the OSK like normal and suff the "select" key 3-4 times.
Here's a function to help you do this:
Code: Select all
//Load your common #include files.
//Before main thread
int gkeymask;
void stuff_key(int keymask)
{
gkeymask = keymask;
while (gkeymask != -1)
{
sceKernelDelayThread(2000);
}
}
void OSKMapChange()
{
stuff_key(PSP_CTRL_SELECT);
sceKernelDelayThread(20000); // It's best to leave a pause so the PSP keeps up.
stuff_key(PSP_CTRL_SELECT);
sceKernelDelayThread(20000);
stuff_key(PSP_CTRL_SELECT);
sceKernelDelayThread(20000);
}
OSKMapChange();
Code: Select all
//Bookmarker
if (isKeyPressed(KEY_B) && ctrl){
if(browserRunning()){
if(bufferchary < 1200){
Web_Bar_Remove();
stuff_key(PSP_CTRL_TRIANGLE);
sceKernelDelayThread(20000);
sceKernelDelayThread(500000);
hold_key(PSP_CTRL_LEFT);
sceKernelDelayThread(800000);
hold_key(0);
sceKernelDelayThread(20000);
stuff_key(PSP_CTRL_RIGHT);
sceKernelDelayThread(20000);
stuff_key(PSP_CTRL_RIGHT);
sceKernelDelayThread(20000);
stuff_key(PSP_CTRL_RIGHT);
sceKernelDelayThread(20000);
stuff_key(PSP_CTRL_RIGHT);
sceKernelDelayThread(20000);
stuff_key(PSP_CTRL_RIGHT);
sceKernelDelayThread(20000);
stuff_key(enter);
sceKernelDelayThread(100000);
stuff_key(enter);
sceKernelDelayThread(100000);
stuff_key(enter);
sceKernelDelayThread(1000000);
hold_key(cancel);
sceKernelDelayThread(200000);
hold_key(PSP_CTRL_TRIANGLE);
sceKernelDelayThread(500000);
hold_key(0);
bufferchary += 600;
}else{
overy = 1;
}
}
}
Angelo