![]() |
| Forums | Gaming News | Videos | Downloads | Today's Posts | Mark Forums Read | Chat | FAQ | Members List | Contact |
| ||||||
This is a discussion on [RELEASE][3rd party sources included :D] LocoRoco Motion Plugin v0.99 = Next-Gen within the PSP Development Forum forums, part of the PSP Development, Hacks, and Homebrew category; Here's a major update from previous version. This version almost all problems that existed in the previous 0.8 SWC "SomeWhatCrippled" ...
![]() |
|
|
LinkBack | Thread Tools |
|
|
#1 |
![]() ![]() Developer
|
Here's a major update from previous version.
This version almost all problems that existed in the previous 0.8 SWC "SomeWhatCrippled" version. You can also try the LocoRoco demo's; you donot have to own the game to try this. ![]() Requirements: ------------- 1) Neo Motion Kit 2) CFW atleast v3.71 - due to NID compatibility. Changelog: ---------- 1) Added audio Fix; Audio works perfectly along with motion for perfect LocoRoco game experience. Thanks to ps2dev members. 2) Added a check, wherein the plugin self-terminates with a message, if Motion Kit is unplugged or not plugged in before the game begins or due to failure in initialization; hence if anything fails, you can still play the game unlike previous version which caused "unusably sluggish behaviour". 3) Added a Jump function but something isn't right. Tilt forward and then backward. [This will most probably be removed in next version if I can't figure out the problem] 4) Substantially improved chances of succesfull initialization. Failure rate - 1 in 10 times. 5) Reduced CPU usage - removed unused stuff / Z axis reading / other calculations Videos Illustrations: ------------------ Latest Video with audio & initialization failure / disconnection notification Tutorial / How to use the plugin Fast Paced action video Additional Notes: ----------------- 1) After muting and disabling by using Note button, audio doesn't re-enable, Press Vol Up or Down. 2) You'll see a slight delay when you change the volume -- it's normal. Any suggestions for improvement welcome. Enjoy. Note: Put "REAL USER" in your post let me know you have actually tried this. Download v0.99 Donate
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
Last edited by Mr305; 02-28-2008 at 05:22 PM.. |
|
|
|
|
|
#3 | |
![]() ![]() Developer
|
Quote:
You can also try the demo.
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#5 | |
![]() ![]() Developer
|
Quote:
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#7 |
![]() ![]() ![]() Developer
|
Pity you didn't include the code - especially since you stitched most of it up from various apps. I like the way you *reused* the SceCtrlData structure in conjunction with count to initialize your function
Good job!Here is a quick and dirty reverse of it. Not compilable as is, and contains a few volountary errors to make it QJ-proof. ![]() Code:
#include <pspdebug.h>
#include "psplink/util.h"
#include "psplink/apihook.h"
#include "graphics.h"
int module_stop(){
return 0;
}
int module_start(int argc, void* argv){
pspDebugSioInit();
pspDebugSioSetBaud(510416);
th_id = sceKernelCreateThread("main_thread", main, 0x20, 0x10000, 0, 0);
if (th_id >= 0){
sceKernelStartThread(th_id, argc, argv);
}
return 0;
}
SceCtrlData old_pad; //0x000020EC
SceCtrlData new_pad; //0x0000210C
SceCtrlData fake_pad; //0x0000211C
int fake_buttons;
int old_btn; //0x00002100
int initialized; //0x000020BC
int last_peek_ret; //0x000020C0
int *fake_btn_ptr; //0x000020B8
int jmp_counter; //0x000020B4
int jmp_state; //0x000020B0
int sceCtrlReadBufferPositive_fake(SceCtrlData *pad_data, int count){
int cnt;
if ((initialized != 1) && (count == 0x1FEA3F)){
initialized = 1;
fake_btn_ptr = pad_data.Buttons;
g_counter = 0x3C;
jmp_state = 0;
}
last_peek_ret = sceCtrl_driver_454455AC(pad_data, count);
if (initialized != 1) return last_peek_ret;
if (*fake_btn_ptr == 0x1F4){
pad_data.Buttons |= PSP_CTRL_LTRIGGER;
}
if (*fake_btn_ptr == 0x1F5){
pad_data.Buttons |= PSP_CTRL_RTRIGGER;
}
if (*fake_btn_ptr == 0x1F7){
if (jmp_state == 0){
jmp_state = 2;
jmp_counter = 1;
pad_data.Buttons |= (PSP_CTRL_LTRIGGER|PSP_CTRL_RTRIGGER);
*fake_btn_ptr = 0;
return last_peek_ret;
}
}
if (jmp_state == 1){
jmp_state = 2;
jmp_counter = 1;
pad_data.Buttons |= (PSP_CTRL_LTRIGGER|PSP_CTRL_RTRIGGER);
*fake_btn_ptr = 0;
return last_peek_ret;
} else if (jmp_state == 2){
cnt = g_counter;
if (cnt < 0xB){
cnt++;
if (cnt < 0xB){
jmp_counter = cnt;
pad_data.Buttons |= (PSP_CTRL_LTRIGGER|PSP_CTRL_RTRIGGER);
*fake_btn_ptr = 0;
return last_peek_ret;
}
}
if (cnt == 0xB){
jmp_counter = 0x3C;
jmp_state = 0;
}
}
*fake_btn_ptr = 0;
return last_peek_ret;
}
int main(int argc, void* argv){
char c1; //r16
char c2; //r17
int modid;
int tries; //r20
int deadthread; //r19
int unk; //r18
sceKernelDelayThread(3500000);
fake_buttons = 0;
modid = refer_module_by_name("sceController_Service", 0);
apiHookByNid(modid, "sceCtrl", 0x1F803938, sceCtrlReadBufferPositive_fake);
fake_pad.Buttons = &fake_buttons;
sceCtrl_driver_454455AC(&fake_pad, 0x1FEA3F);
sceCtrlReadBufferPositive_fake(&fake_pad, 0x1FEA3F);
sceCodecOutputEnable(0, 1);
tries = 0;
unk = 0;
deadthread = 0;
while(1){
sceCtrl_driver_C4AAD55F(&new_pad, 1);
old_pad.TimeStamp = new_pad.TimeStamp;
old_pad.Ly = new_pad.Ly;
old_btn = old_pad.Buttons;
old_pad.Buttons = new_pad.Buttons;
old_pad.Lx = new_pad.Lx;
if ((old_btn & ~new_pad.Buttons) & (PSP_CTRL_VOLDOWN|PSP_CTRL_VOLUP)){
sceKernelDelayThread(50000);
sceCodecOutputEnable(0, 1);
}
pspDebugSioPutchar(0x31);
c1 = pspDebugSioWaitGetchar();
pspDebugSioPutchar(0x32);
c2 = pspDebugSioWaitGetchar();
if ((c1 == 0x500) || (c2 == 0x500)){
printTextScreen(0, 0, "Motion Kit not detected. Terminating...", 0, 0xFFFFFF);
tries++;
if (tries == 100){
sceKernelExitDeleteThread(0);
}
deadthread = 0;
}
if (c1 < 0x73){
fake_pad.TimeStamp = 0x1F5;
}
if (c1 < 0xC8){
if (c1 < 0x92){
fake_pad.TimeStamp = 0x1F4;
}
}
if (c2 >= 0x96) && (unk != 0){
if ((unk == 1) && (c2 >= 0xA7)){
fake_pad.TimeStamp = 0x1F7;
unk = 0;
}
}
if (deadthread != 1){
sceKernelDelayThread(0x3e8);
} else {
sceKernelDelayThread(1);
}
}
__________________
Adrahil - Software architect and specialist in Reverse Engineering. Spoiler for Guilt of a Dev:
Spoiler for me:
|
|
|
|
|
|
#8 | |
![]() ![]() Developer
|
Quote:
Anyway, Great skill ya got EDIT: Before you claim "Stitch", Ofcourse it uses Psplink's ApiHook sources & vshblit.c/h
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
Last edited by Mr305; 12-26-2007 at 04:35 PM.. |
|
|
|
|
|
|
#9 |
![]() ![]() Developer
|
The code is far less complex than I had imagined :P
@adrahil: Would like to know if you're able to reverse my motion kit driver too when I release it first :P Nah, don't want to waste your time, I know you could ![]() PS: Not much left before the first release, only one minor bug and writing a readme
__________________
Raphs board rules #31: Excessive use of punctuation is either a sign of a lesser ego or a small mind. Avoid it if you don't want to look like a total moron. Raphs board rules #17: When you need to ask whether you are capable of doing something, you are not. Raphs board rules #2: Exploits aren't found by changing version numbers, blindly merging data into a file or turning your PSP upside down. Raphs board rules #1: If you have no clue how exploits work, don't come up with ideas about them. |
|
|
|
|
|
#10 | |
![]() ![]() Developer
|
Quote:
why wud it have 2 be complex?
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
Last edited by Mr305; 02-28-2008 at 02:18 PM.. |
|
|
|
|
|
|
#11 |
![]() |
thats a big price for a little thing...
__________________
[URL="http://jomann18.deviantart.com/"][IMG]http://img242.imageshack.us/img242/5020/bestsigeveraw1or8.png[/IMG][/URL] [COLOR=Red][B][SIZE=3][URL="http://jomann18.deviantart.com/"]Hey look its a link to my deviant art maybe you should click it just for kicks eh?[/URL][/SIZE][/B][/COLOR] |
|
|
|
|
|
#12 | |
![]() ![]() Developer
|
Quote:
I also noticed your "AI" to detect the motion kit just depends on whether the SIO returns 0x500 (1280) for the motion kit commands. This is a rather weak implementation though, as it will only work if the remote control is plugged in, but what if just the headphone is plugged in? In that case, the SIO will return nothing (timeout) and your plugin will suppose that a motion kit is plugged in, going on with polling SIO data and hogging the CPU resources :P Another weakspot is when plugging out the motion kit and plugging in the remote control/headphone and not rebooting afterwards (or going from VSH to game or vice versa), because your plugin will detect there is a remote plugged in, but the Hprm driver of the firmware will still be shutdown from the sioInit function. Anyway, good you found that problem with sceCodecEnableOutput and the VOL/NOTE buttons too - I noticed that same thing just barely when my GF tried to silence my PSP a little bit and suddenly the sound went all off ![]() I fixed it similarly to your method, but I'm still eager to find a way that is less brute force.
__________________
Raphs board rules #31: Excessive use of punctuation is either a sign of a lesser ego or a small mind. Avoid it if you don't want to look like a total moron. Raphs board rules #17: When you need to ask whether you are capable of doing something, you are not. Raphs board rules #2: Exploits aren't found by changing version numbers, blindly merging data into a file or turning your PSP upside down. Raphs board rules #1: If you have no clue how exploits work, don't come up with ideas about them. |
|
|
|
|
|
|
#13 | |
![]() ![]() Developer
|
Quote:
So implementation is perfect.However, I am unable to Reinitialize SIO once it unplugged. Any ideas? How did you manage to get around the problem, SceController Service has no imports for sceHprm. Any different methods that you used? [just curious] I mean you can't directly read sio inside ReadBufferpositive.
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#14 |
![]() ![]() Developer
|
REAL USER
It doesn't work for me - I tried both full game and demo and I get "Motion Kit not detected" every time it starts.Neoflash motion demo works fine though. I have 3.71-4 and psp 1004(eur).Please help! |
|
|
|
|
|
#15 | |
![]() ![]() Developer
|
Quote:
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#17 | |
![]() ![]() Developer
|
Quote:
Install cwcheat and Custom firmware. It may sound stupid, but this should fIx it.
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#18 |
![]() ![]() Developer
|
Found another problem with the motion kit driver :/ Try going to standby while motion kit is plugged, then resume from standby - the SIO connection will be closed (will delay the release a little more).
__________________
Raphs board rules #31: Excessive use of punctuation is either a sign of a lesser ego or a small mind. Avoid it if you don't want to look like a total moron. Raphs board rules #17: When you need to ask whether you are capable of doing something, you are not. Raphs board rules #2: Exploits aren't found by changing version numbers, blindly merging data into a file or turning your PSP upside down. Raphs board rules #1: If you have no clue how exploits work, don't come up with ideas about them. |
|
|
|
|
|
#19 | |
![]() ![]() Developer
|
Quote:
How did you bypass sceContoller non import of siofuncs? any alternate methods? Looks like I'll have to make a final iteration of this and analog mapper; my last button mapping release
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#20 | |
![]() ![]() lol
Join Date: Aug 2006
Real First Name: Robert
Location: Whittier, CA
Just Played: Madden 10
Posts: 5,791
Trader Feedback: 0
|
Quote:
Same. Except I have a US PHAT PSP. |
|
|
|
|
|
|
#21 | |
![]() ![]() Developer
|
Quote:
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#22 | |
![]() ![]() Developer
|
Quote:
Regarding reinit, I never had much problems with that other than the sceHprm driver trying to bypass the UART power on state.
__________________
Raphs board rules #31: Excessive use of punctuation is either a sign of a lesser ego or a small mind. Avoid it if you don't want to look like a total moron. Raphs board rules #17: When you need to ask whether you are capable of doing something, you are not. Raphs board rules #2: Exploits aren't found by changing version numbers, blindly merging data into a file or turning your PSP upside down. Raphs board rules #1: If you have no clue how exploits work, don't come up with ideas about them. |
|
|
|
|
|
|
#23 | |
![]() ![]() Developer
|
Quote:
![]() Well... Nothing much to add and expecting your release soon.
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#24 | |
![]() ![]() Developer
|
Quote:
C'mon... I need feedback
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#25 | |
|
Quote:
-= Double Post =- edit: installing both cwcheat AND custom firmware extender fixed it. REAL USER Last edited by ahoeben; 01-10-2008 at 05:23 AM.. Reason: Automerged Doublepost |
||
|
|
|
|
|
#26 | |
![]() ![]() Developer
|
Quote:
I donot want a Non-functional product just because it only needs a small fix; meaning -- I'll release a fix when I find time.
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#27 | |||
![]() Enter Custom Title
|
Quote:
__________________
http://img489.imageshack.us/img489/5841/99862310tg8.jpg Quote:
Quote:
|
|||
|
|
|
|
|
#29 | |
![]() ![]() Developer
|
Quote:
Will look into it.
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
|
|
|
#30 |
![]() ![]() Developer
|
Is anyone still on 3.80 M33?
-- Does this work on 3.80 M33?
__________________
Hardware Alarm Suite II v2.7 bld 1727 (1730 Latest)|Academic Aid 6.R769 w/ Motion|LocoRoco Motion Plugin|XmbController 1.61|More(32) TweakDISPLAY(NOW OUT!) | PaintOnXMB v1
|
|
|
|
![]() |
| Tags |
| included , locoroco , motion , nextgen , party , plugin , release3rd , sources , v099 |
| Thread Tools | |
|
|