forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

PSPLINK
Goto page Previous  1, 2, 3, ... 9, 10, 11  Next
 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
nullp01nter



Joined: 04 Jan 2006
Posts: 26
Location: Saxony/Germany

PostPosted: Fri Jan 20, 2006 8:37 am    Post subject: Reply with quote

Quote:
I like it. If you were to use something like the FT232R, you could get rid of a bunch of components and have true 2.5v logic output. I think I'll go cancel my order for a bunch of max3319s and make cables like this instead. :)


Wow! That's it! This is what I need to have :)
This chip is rather new, so I did not come across yet. But I'll try to order a few immediately and then hack together a modified (and "minified") layout. I think I'm a bit excited about that now *g*

Thoralt
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Fri Jan 20, 2006 8:39 am    Post subject: Reply with quote

Damn that looks great, might have to build one myself. Few questions though, is the audio passed straight through (I assume it is)? And is it actually bus powered, i.e. would we even need to init the power from the SIO port to use it, if not that would cut 2 seconds off psplink reboot times ;)

Nice work.
Back to top
View user's profile Send private message
nullp01nter



Joined: 04 Jan 2006
Posts: 26
Location: Saxony/Germany

PostPosted: Fri Jan 20, 2006 9:02 am    Post subject: Reply with quote

Quote:
Damn that looks great, might have to build one myself. Few questions though, is the audio passed straight through (I assume it is)? And is it actually bus powered, i.e. would we even need to init the power from the SIO port to use it, if not that would cut 2 seconds off psplink reboot times ;)


If you have a look at the schematic (http://www.thoralt.de/projects/SIO2USB/SIO2USB.html) you see, that every line except the PSP's RXD is straight through. So headphones and (if needed) the remote is working as usual. and yes, the device is bus powered. so there's no need of the power supply from the PSP (which still seems to be somehow mystic from the sources I read through).

As suggested by jimparis I will include a different USB chip into the design and thus getting rid of almost all additional components, making the device even smaller :) I then also will update the article on my homepage to be a bit more explanative.

Thoralt
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Fri Jan 20, 2006 9:07 am    Post subject: Reply with quote

Have you actually tried to use psplink with the power init removed? If you edit sio.c in pspsdk and remove the last two function calls from pspDebugSioInit does it still work? If it does I'll be even more interested ;P

edit: Oh and what is driver support like for the usb chip? Need anything special?
Back to top
View user's profile Send private message
jimparis



Joined: 10 Jun 2005
Posts: 1179
Location: Boston

PostPosted: Fri Jan 20, 2006 9:17 am    Post subject: Reply with quote

TyRaNiD wrote:
edit: Oh and what is driver support like for the usb chip? Need anything special?
Might need to download FTDI's driver for Win or Mac. The ftdi_sio module is standard on Linux, as is uftdi on *BSD.
Back to top
View user's profile Send private message
crazyc



Joined: 17 Jun 2005
Posts: 410

PostPosted: Sat Jan 21, 2006 4:19 am    Post subject: Reply with quote

I just made something similar out of a cell phone data cable from Radio Shack. It uses a Prolific PL2303 and outputs 3.3V on the TX line, seems to work fine with no pulldown. The same cable also works for SIO with a PS2. BTW, the remote connector is ~5 PCI pins wide :).
Back to top
View user's profile Send private message
xflash



Joined: 15 Jan 2006
Posts: 2

PostPosted: Mon Jan 23, 2006 9:14 am    Post subject: Reply with quote

Hello,

A really great thanks for your job! PSPlink is indeed a "must have" for anyone who wants to test/debug those productions.
I'm Wifi powered. (My soldering skills are .... too old :) ), I met some problems with an SDL app I wrote. It's freezing, when I launch it with psplink, but works fine from Vsh.
No traces to give, SDL redirects them, and stdout.txt and stderr.txt are empty ?!?
Any idea?


xFlash
Back to top
View user's profile Send private message
bulb



Joined: 19 Jan 2006
Posts: 50

PostPosted: Fri Jan 27, 2006 4:10 am    Post subject: Reply with quote

I have two issues with PSPLink.

1. Sometimes I can't exec ELF module that I have just copied. Usually I have to disable and reenable USB. Problems with buffer flushing?

2. Problems with file I/O that happen all the time. Whenever I write the file (from ELF module), it occupies size on the stick, but is nowhere to be found.
Back to top
View user's profile Send private message
NoHexPleaseI'mBritish



Joined: 28 Jan 2006
Posts: 1

PostPosted: Sat Jan 28, 2006 2:35 am    Post subject: Reply with quote

Great piece of software, I can really see this speeding my development times up. The fact I can now actually see my printf statements alone is a major time-saver.

I have a couple of issues though, that could be me not doing something right, or maybe its just how PSPLink is.

Firstly, i'm using WiFi mode.

When I copy my .ELF over to the PSP, then type exec myapp.elf, it starts up on the PSP just fine.

If I type exec to re-execute the same file or exec anotherapp.elf then it restarts PSPlink, killing the wifi connection and USB. Then it starts the app while the wifi in PSPLink is still init'ing. In my PSPGL app this means nothing is visible and the psp buttons don't work, but I can still hear my background music playing. Also if I type reset then it goes to a black screen and freezes for about 20 seconds and then the PSP powers off.

I thought it might have been something in my app, so I tried with Hello World and get the same results.

Am I building my ELF's wrong or something?
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Sat Jan 28, 2006 2:46 am    Post subject: Reply with quote

bulb, there are issues with the use of usb and ms at the same time, there is no real way around that, that is just how the psp's drivers work. You are best to umount the usb drive and reset psplink (it will close usb on exit anyway) then rerun.

NoHexPleaseI'mBritish, I rarely use the exec command these days, I almost always use ld myfile.elf when I want to run a different executable once the shell comes up, exec works oki on sio but isn't so good on wifi as you have found out, if you need to pass complex arguments each time then either using pcterm (for a decent history) or create a script will suffice. As for the reset causing the psp to shut down I have seen this error before, it seems to be releated to having a kernel thread still running in user space. Absolutely no idea why it does this, it seems most likely to be a bug in the psp kernel somewhere, it gets itself stuck when resetting the system which then eventually kicks the watchdog off ;( Ensure your applications you are running are user mode only and that will fix the issue (but I know if you are running other apps this isn't always possible).
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Mon Feb 06, 2006 4:30 am    Post subject: Reply with quote

I have now added a version of GDB which runs over WIFI to PSPLINK. At the moment unfortunately it doesn't play nice with the WIFI shell for what ever reason so it is for SIO users only atm :( You will need to update newlib and pspsdk in order to use it (as usual :P)

With previous work from lovely2 the wifi GDB should be far better than previous versions, it is now a separate prx file which loads the debugee for you so you no longer need to use the inbuilt stub or for that matter kernel mode at all. It operates in a similar fashion to gdbserver does on *nix machines, you set it going with the "debug program.elf [args]" command in the shell then connect to it in GDB using the target remote command on port 6999.

Other improvements is it can now debug both ELF and PRX files and will handle the relocations as appropriate. I am going to try and implement threading support as well so you can manage the entire application from the PC which will be nice.

Anyway if you get a chance to test it obvisouly post any bug reports (and I am sure there will be some).
Back to top
View user's profile Send private message
optixx00



Joined: 18 Jul 2005
Posts: 11

PostPosted: Fri Feb 17, 2006 6:20 am    Post subject: Reply with quote

Just got my SIO Cable working, but i can't start an elf. Any ideas.

Code:

ms0:/apps/>  e p.elf
Exec 'ms0:/apps/p.elf'
modulemgr.c:ReadFile:sceIoRead(0xf000) failed: 0x8001001c
modulemgr.c:exe_thread:LoadModule failed: 0x8001001c
modulemgr.c:sceKernelLoadModuleWithApitype:sceKernelLoadModule failed 0x8001001c
lsm: Error loading module ms0:/apps/p.elf 8001001C
Failed to Load/Start module 'ms0:/apps/p.elf' Error: 0x8001001C
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Fri Feb 17, 2006 4:37 pm    Post subject: Reply with quote

I have seen this before and it is down to buffering issues between the USB mass storage and the ms driver. Whenever you copy across a new app unmount or disconnect the usb drive and reset PSPLINK. Then it should run fine.
Back to top
View user's profile Send private message
optixx00



Joined: 18 Jul 2005
Posts: 11

PostPosted: Fri Feb 17, 2006 9:41 pm    Post subject: Reply with quote

Thx, the reset did it. Oh man wonderful tool. This makes psp dev work like charm. Quick turn around times and give practical debugging support. Great !

Is there a trick to reinit the SIO connection on psp side , as i lost the connection e.g. after plugging the sio cable off. At the moment iam forced to do an hard reset, holding power button for seconds.
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Sat Feb 18, 2006 2:26 am    Post subject: Reply with quote

Unfortunately not, I haven't got around to doing some more reversing of the hprm driver to allow the SIO to reinit. Maybe sometime :)
Back to top
View user's profile Send private message
raf



Joined: 13 Oct 2005
Posts: 57

PostPosted: Sun Feb 19, 2006 1:09 pm    Post subject: Reply with quote

TyRaNiD wrote:
Unfortunately not, I haven't got around to doing some more reversing of the hprm driver to allow the SIO to reinit. Maybe sometime :)


Thanks so much, TRaNiD, for such a wonderful tool!
I'm ashamed to say that I just discovered it; and it's already making my life so much easier..
Will have to make/get a sio cable now so I can use gdb!

Great job!

Raf
Back to top
View user's profile Send private message
sandberg



Joined: 05 Oct 2005
Posts: 90
Location: Denmark

PostPosted: Mon Feb 20, 2006 8:34 am    Post subject: Reply with quote

TyRaNiD, there seems to be problems with compiling psplink against the lastest sdk ? You've made changes to the prototypes in pspusb.h, which requires sceUsbDeactivate to take the product ID for the default USB driver as an argument, like for sceUsbActivate. This causes psplink to give compiler errors.

Works fine when passing 0x168 as in the call to sceUsbActivate.
_________________
Br, Sandberg
Back to top
View user's profile Send private message
Orion_



Joined: 27 Jan 2005
Posts: 69

PostPosted: Tue Feb 21, 2006 10:28 am    Post subject: Reply with quote

I tried with eboot loader 9 and wifi hack for 2.0 firmware and psplink don't work :/
should I get back to 1.5 firmware ?
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Tue Feb 21, 2006 11:59 am    Post subject: Reply with quote

psplink relies on kernel mode access so it only works on 1.0 and 1.5 firmware, sorry.
Back to top
View user's profile Send private message
Debug



Joined: 06 Oct 2005
Posts: 16

PostPosted: Fri Feb 24, 2006 8:42 am    Post subject: Reply with quote

When I try to compile PSPLINK I get what seems like a pretty bad error:
Code:
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -fno-builtin-print
f -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -fno-builtin-printf   -c
 -o kmode.o kmode.S
kmode.S: Assembler messages:
kmode.S:9: Error: illegal operands `move $v0,$k1'
kmode.S:11: Error: illegal operands `move $k1,$a0'
kmode.S:19: Error: illegal operands `mfc0 $v0,$0'
kmode.S:20: Error: illegal operands `sw $v0,0($a0)'
kmode.S:21: Error: illegal operands `mfc0 $v0,$1'
kmode.S:22: Error: illegal operands `sw $v0,4($a0)'
kmode.S:23: Error: illegal operands `mfc0 $v0,$2'
kmode.S:24: Error: illegal operands `sw $v0,8($a0)'
kmode.S:25: Error: illegal operands `mfc0 $v0,$3'
kmode.S:26: Error: illegal operands `sw $v0,12($a0)'
kmode.S:27: Error: illegal operands `mfc0 $v0,$4'
kmode.S:28: Error: illegal operands `sw $v0,16($a0)'
kmode.S:29: Error: illegal operands `mfc0 $v0,$5'
kmode.S:30: Error: illegal operands `sw $v0,20($a0)'
kmode.S:31: Error: illegal operands `mfc0 $v0,$6'
kmode.S:32: Error: illegal operands `sw $v0,24($a0)'
kmode.S:33: Error: illegal operands `mfc0 $v0,$7'
kmode.S:34: Error: illegal operands `sw $v0,28($a0)'
kmode.S:35: Error: illegal operands `mfc0 $v0,$8'
kmode.S:36: Error: illegal operands `sw $v0,32($a0)'
kmode.S:37: Error: illegal operands `mfc0 $v0,$9'
kmode.S:38: Error: illegal operands `sw $v0,36($a0)'
kmode.S:39: Error: illegal operands `mfc0 $v0,$10'
kmode.S:40: Error: illegal operands `sw $v0,40($a0)'
kmode.S:41: Error: illegal operands `mfc0 $v0,$11'
kmode.S:42: Error: illegal operands `sw $v0,44($a0)'
kmode.S:43: Error: illegal operands `mfc0 $v0,$12'
kmode.S:44: Error: illegal operands `sw $v0,48($a0)'
kmode.S:45: Error: illegal operands `mfc0 $v0,$13'
kmode.S:46: Error: illegal operands `sw $v0,52($a0)'
kmode.S:47: Error: illegal operands `mfc0 $v0,$14'
kmode.S:48: Error: illegal operands `sw $v0,56($a0)'
kmode.S:49: Error: illegal operands `mfc0 $v0,$15'
kmode.S:50: Error: illegal operands `sw $v0,60($a0)'
kmode.S:51: Error: illegal operands `mfc0 $v0,$16'
kmode.S:52: Error: illegal operands `sw $v0,64($a0)'
kmode.S:53: Error: illegal operands `mfc0 $v0,$17'
kmode.S:54: Error: illegal operands `sw $v0,68($a0)'
kmode.S:55: Error: illegal operands `mfc0 $v0,$18'
kmode.S:56: Error: illegal operands `sw $v0,72($a0)'
kmode.S:57: Error: illegal operands `mfc0 $v0,$19'
kmode.S:58: Error: illegal operands `sw $v0,76($a0)'
kmode.S:59: Error: illegal operands `mfc0 $v0,$20'
kmode.S:60: Error: illegal operands `sw $v0,80($a0)'
kmode.S:61: Error: illegal operands `mfc0 $v0,$21'
kmode.S:62: Error: illegal operands `sw $v0,84($a0)'
kmode.S:63: Error: illegal operands `mfc0 $v0,$22'
kmode.S:64: Error: illegal operands `sw $v0,88($a0)'
kmode.S:65: Error: illegal operands `mfc0 $v0,$23'
kmode.S:66: Error: illegal operands `sw $v0,92($a0)'
kmode.S:67: Error: illegal operands `mfc0 $v0,$24'
kmode.S:68: Error: illegal operands `sw $v0,96($a0)'
kmode.S:69: Error: illegal operands `mfc0 $v0,$25'
kmode.S:70: Error: illegal operands `sw $v0,100($a0)'
kmode.S:71: Error: illegal operands `mfc0 $v0,$26'
kmode.S:72: Error: illegal operands `sw $v0,104($a0)'
kmode.S:73: Error: illegal operands `mfc0 $v0,$27'
kmode.S:74: Error: illegal operands `sw $v0,108($a0)'
kmode.S:75: Error: illegal operands `mfc0 $v0,$28'
kmode.S:76: Error: illegal operands `sw $v0,112($a0)'
kmode.S:77: Error: illegal operands `mfc0 $v0,$29'
kmode.S:78: Error: illegal operands `sw $v0,116($a0)'
kmode.S:79: Error: illegal operands `mfc0 $v0,$30'
kmode.S:80: Error: illegal operands `sw $v0,120($a0)'
kmode.S:81: Error: illegal operands `mfc0 $v0,$31'
kmode.S:82: Error: illegal operands `sw $v0,124($a0)'
kmode.S:83: Error: illegal operands `addiu $a0,$a0,128'
kmode.S:84: Error: illegal operands `cfc0 $v0,$0'
kmode.S:85: Error: illegal operands `sw $v0,0($a0)'
kmode.S:86: Error: illegal operands `cfc0 $v0,$1'
kmode.S:87: Error: illegal operands `sw $v0,4($a0)'
kmode.S:88: Error: illegal operands `cfc0 $v0,$2'
kmode.S:89: Error: illegal operands `sw $v0,8($a0)'
kmode.S:90: Error: illegal operands `cfc0 $v0,$3'
kmode.S:91: Error: illegal operands `sw $v0,12($a0)'
kmode.S:92: Error: illegal operands `cfc0 $v0,$4'
kmode.S:93: Error: illegal operands `sw $v0,16($a0)'
kmode.S:94: Error: illegal operands `cfc0 $v0,$5'
kmode.S:95: Error: illegal operands `sw $v0,20($a0)'
kmode.S:96: Error: illegal operands `cfc0 $v0,$6'
kmode.S:97: Error: illegal operands `sw $v0,24($a0)'
kmode.S:98: Error: illegal operands `cfc0 $v0,$7'
kmode.S:99: Error: illegal operands `sw $v0,28($a0)'
kmode.S:100: Error: illegal operands `cfc0 $v0,$8'
kmode.S:101: Error: illegal operands `sw $v0,32($a0)'
kmode.S:102: Error: illegal operands `cfc0 $v0,$9'
kmode.S:103: Error: illegal operands `sw $v0,36($a0)'
kmode.S:104: Error: illegal operands `cfc0 $v0,$10'
kmode.S:105: Error: illegal operands `sw $v0,40($a0)'
kmode.S:106: Error: illegal operands `cfc0 $v0,$11'
kmode.S:107: Error: illegal operands `sw $v0,44($a0)'
kmode.S:108: Error: illegal operands `cfc0 $v0,$12'
kmode.S:109: Error: illegal operands `sw $v0,48($a0)'
kmode.S:110: Error: illegal operands `cfc0 $v0,$13'
kmode.S:111: Error: illegal operands `sw $v0,52($a0)'
kmode.S:112: Error: illegal operands `cfc0 $v0,$14'
kmode.S:113: Error: illegal operands `sw $v0,56($a0)'
kmode.S:114: Error: illegal operands `cfc0 $v0,$15'
kmode.S:115: Error: illegal operands `sw $v0,60($a0)'
kmode.S:116: Error: illegal operands `cfc0 $v0,$16'
kmode.S:117: Error: illegal operands `sw $v0,64($a0)'
kmode.S:118: Error: illegal operands `cfc0 $v0,$17'
kmode.S:119: Error: illegal operands `sw $v0,68($a0)'
kmode.S:120: Error: illegal operands `cfc0 $v0,$18'
kmode.S:121: Error: illegal operands `sw $v0,72($a0)'
kmode.S:122: Error: illegal operands `cfc0 $v0,$19'
kmode.S:123: Error: illegal operands `sw $v0,76($a0)'
kmode.S:124: Error: illegal operands `cfc0 $v0,$20'
kmode.S:125: Error: illegal operands `sw $v0,80($a0)'
kmode.S:126: Error: illegal operands `cfc0 $v0,$21'
kmode.S:127: Error: illegal operands `sw $v0,84($a0)'
kmode.S:128: Error: illegal operands `cfc0 $v0,$22'
kmode.S:129: Error: illegal operands `sw $v0,88($a0)'
kmode.S:130: Error: illegal operands `cfc0 $v0,$23'
kmode.S:131: Error: illegal operands `sw $v0,92($a0)'
kmode.S:132: Error: illegal operands `cfc0 $v0,$24'
kmode.S:133: Error: illegal operands `sw $v0,96($a0)'
kmode.S:134: Error: illegal operands `cfc0 $v0,$25'
kmode.S:135: Error: illegal operands `sw $v0,100($a0)'
kmode.S:136: Error: illegal operands `cfc0 $v0,$26'
kmode.S:137: Error: illegal operands `sw $v0,104($a0)'
kmode.S:138: Error: illegal operands `cfc0 $v0,$27'
kmode.S:139: Error: illegal operands `sw $v0,108($a0)'
kmode.S:140: Error: illegal operands `cfc0 $v0,$28'
kmode.S:141: Error: illegal operands `sw $v0,112($a0)'
kmode.S:142: Error: illegal operands `cfc0 $v0,$29'
kmode.S:143: Error: illegal operands `sw $v0,116($a0)'
kmode.S:144: Error: illegal operands `cfc0 $v0,$30'
kmode.S:145: Error: illegal operands `sw $v0,120($a0)'
kmode.S:146: Error: illegal operands `cfc0 $v0,$31'
kmode.S:147: Error: illegal operands `sw $v0,124($a0)'
kmode.S:161: Error: illegal operands `sw $a0,4($sp)'
kmode.S:162: Error: illegal operands `sw $a1,8($sp)'
kmode.S:163: Error: illegal operands `sw $a2,12($sp)'
kmode.S:164: Error: illegal operands `sw $a3,16($sp)'
kmode.S:165: Error: illegal operands `sw $t0,20($sp)'
kmode.S:166: Error: illegal operands `sw $t1,24($sp)'
kmode.S:167: Error: illegal operands `move $a0,$v0'
kmode.S:169: Error: illegal operands `addiu $a1,$sp,4'
kmode.S:172: Error: illegal operands `lw $a0,4($sp)'
kmode.S:173: Error: illegal operands `lw $a1,8($sp)'
kmode.S:174: Error: illegal operands `lw $a2,12($sp)'
kmode.S:175: Error: illegal operands `lw $a3,16($sp)'
kmode.S:176: Error: illegal operands `lw $t0,20($sp)'
kmode.S:177: Error: illegal operands `lw $t1,24($sp)'
kmode.S:179: Error: illegal operands `beq $v0,$0,1f'
kmode.S:181: Error: illegal operands `jr $v0'
kmode.S:186: Error: illegal operands `move $v0,$0'
kmode.S:193: Error: illegal operands `li $v0,0'
kmode.S:200: Error: illegal operands `li $v0,1'
kmode.S:207: Error: illegal operands `li $v0,2'
kmode.S:214: Error: illegal operands `li $v0,3'
kmode.S:221: Error: illegal operands `li $v0,4'
kmode.S:228: Error: illegal operands `li $v0,5'
kmode.S:235: Error: illegal operands `li $v0,6'
kmode.S:242: Error: illegal operands `li $v0,7'
kmode.S:249: Error: illegal operands `li $v0,8'
kmode.S:256: Error: illegal operands `li $v0,9'
kmode.S:263: Error: illegal operands `li $v0,10'
kmode.S:270: Error: illegal operands `li $v0,11'
kmode.S:277: Error: illegal operands `li $v0,12'
kmode.S:284: Error: illegal operands `li $v0,13'
kmode.S:291: Error: illegal operands `li $v0,14'
kmode.S:298: Error: illegal operands `li $v0,15'
make: *** [kmode.o] Error 1

Anyone know why this happens?
_________________
Code:

catch(IOException e){
//oh crap
}
Back to top
View user's profile Send private message AIM Address
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Fri Feb 24, 2006 8:51 am    Post subject: Reply with quote

you have got an old old toolchain build, you will need to update it to get it to build correctly.
Back to top
View user's profile Send private message
Debug



Joined: 06 Oct 2005
Posts: 16

PostPosted: Fri Feb 24, 2006 1:42 pm    Post subject: Reply with quote

I see, thanks. Unfortunately, I updated the toolchain from svn to make sure, then I ran ./toolchian.sh -p. It was going fine until here:

Code:

/cygdrive/f/DOCUME~1/Allen/LOCALS~1/Temp/ccNqBoly.s: Assembler messages:
/cygdrive/f/DOCUME~1/Allen/LOCALS~1/Temp/ccNqBoly.s:53: Error: illegal operands
`vmidt.q M300'
/cygdrive/f/DOCUME~1/Allen/LOCALS~1/Temp/ccNqBoly.s:90: Error: illegal operands
`vmidt.q M300'
make[3]: *** [sceGumLoadIdentity_vfpu.o] Error 1
make[3]: Leaving directory `/tmp/pspdev/pspsdk/src/gum'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/pspdev/pspsdk/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/pspdev/pspsdk'
make: *** [all] Error 2
ERROR BUILDING PSPSDK

Should I run the entire toolchain or is that something else?
_________________
Code:

catch(IOException e){
//oh crap
}
Back to top
View user's profile Send private message AIM Address
Oobles
Site Admin


Joined: 17 Jan 2004
Posts: 362
Location: Melbourne, Australia

PostPosted: Fri Feb 24, 2006 3:28 pm    Post subject: Reply with quote

Yes, you need to run the full toolchain script, not just the SDK. The operands are now part of GCC, so you need to rebuild it.
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Mon Feb 27, 2006 12:27 am    Post subject: Reply with quote

Okay this is going to need testing. I have added a USB based host filing system to PSPLINK, it uses libusb to communicate with the PSP from user mode, it claims to work on most *nix like systems though I have had issues with it before so this is a good time for people to try it ;) For info I run x86 linux on a 2.6 kernel, and it works fine for me. There is a libusb port for windows but lacking an easily accessible windows machine with dev tools on it I haven't yet tested it on that.

Brief description of how it works, you enable hostfs on the PSP by setting usbhost=1 in the psplink.ini file, you then run up a tool on your PC which uses libusb to communicate with the PSP and serve file data. It supports mapping upto 8 directories (and more if you change the PC side code define) so you can access different directories under host0 or host5 for example. All commands are supported, though devctl and ioctl have not been fully implemented yet, got some plans for those.

It wont like you blocking on the PC side read so no blocking sockets yet but for the most part it should do what people need in a host filing system.

I have tested with USB 1.1 and 2.0 and they both seem to work fine, 1.1 gets around 1Mb/s and 2 around 10Mb/s, so best plug it into a 2.0 host port ;)

Oh and final thing, if you are building on a big-endian machine (i.e. a mac) then make the PC side tool with 'make BUILD_BIGENDIAN=1', that will ensure all integer values are swapped around correctly, however I haven't tested it so YMMV.

Report any bugs to /dev/null, thx.
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Mon Feb 27, 2006 7:54 am    Post subject: Reply with quote

Update: I decided to try my hand at getting the hostfs to work on a windows box and I suceeded, so I thought I might as well post the info. You will need to build in cygwin as there are too many unixism for it to build correctly on vanilla win32 or mingw.

Download the latest snapshot of the libusb-win32 driver (not the filter driver) from libusb-win32.sourceforge.net. Extract to a directory.

Start up psplink with the hostfs driver enabled, Windows should try and install a driver, just ignore that for now. In the bin directory of libusb run inf-wizard, follow the instructions, select the PSP Type-B device, and choose the bin directory as your output. This should have produced a *.inf and *.cat file. Complete the windows driver installation but tell it you will specify the directory, point it at the bin directory and it should pick it up and install the driver.

Now copy include/usb.h and lib/gcc/libusb.a from the extracted directory and copy them into the usbhostfs_pc directory in cygwin.

Open up cygwin and navigate to the usbhostfs_pc directory, you will now need to edit a few bits.
Edit Makefile, add -I. to CFLAGS and then add the line LDFLAGS=-L.
Edit main.c, on line 1669 change the final parameter of euid_usb_bulk_read from 0 to INFINITE.
Type make and it should build. Then run as normal.

There is of course a caveat, seems that on linux bulk reads fail with a 0 byte read when the USB device is disconnected, but on Windows it doesn't seem to do anything at all, i can probably get around it by implementing a goodbye command from the USB device to tell the PC side it should shutdown, but then again that'll teach you for using Windows ;) the fix is obviously to shutdown the hostfs app once the psp has rebooted and rerun it.
Back to top
View user's profile Send private message
pspkrazy



Joined: 04 Jul 2005
Posts: 49

PostPosted: Mon Feb 27, 2006 9:11 am    Post subject: wow Reply with quote

Amazing job.

Everyone can now use your debug tool with ease and power.

Great.

PS : Are you planning to make an usb shell ? It will be great for poeple like me who don't have a SIO cable (cause wifi sucks a little).
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Mon Feb 27, 2006 10:40 am    Post subject: Reply with quote

Probably, I have left in what I think I need to support a shell in the current driver, my main issue is really with implementing on the PC side, libusb doesn't seem the best thing for actually doing what I need it to do. Will look into it later.
Back to top
View user's profile Send private message
psx-frogger



Joined: 16 Jan 2006
Posts: 5

PostPosted: Tue Feb 28, 2006 4:16 am    Post subject: Reply with quote

Hi Tyranid,

Thanks for this great tool.

I saw on the svn that the Pdf documentation is talking abouit version 0.9b.

Have you released the 0.9b version ?

Regards

Psx-frogger
Back to top
View user's profile Send private message
TyRaNiD



Joined: 18 Jan 2004
Posts: 918

PostPosted: Tue Feb 28, 2006 4:56 am    Post subject: Reply with quote

Technically the subversion code is 0.9b, will probably not release a 0.9b until I have a USB shell and that will probably be 0.9c, or more depending what I feel like. For now just use the subversion version.
Back to top
View user's profile Send private message
johnmph



Joined: 23 Jul 2005
Posts: 119

PostPosted: Sat Mar 04, 2006 1:50 am    Post subject: Reply with quote

Hello TyRaNiD, beautiful tool ;-)

In your find_syscall_addr function (apihook.c), you use a u32 pointer to access syscall table (u32 *syscalls) :

Code:

void *find_syscall_addr(u32 addr)
{
   struct SyscallHeader *head;
   u32 *syscalls;
   void **ptr;
   int size;
   int i;

   asm(
         "cfc0 %0, $12\n"
         : "=r"(ptr)
      );

   if(!ptr)
   {
      return NULL;
   }

   head = (struct SyscallHeader *) *ptr;
   syscalls = (u32*) (*ptr + 0x10);
   size = (head->size - 0x10);

   for(i = 0; i < size; i++)
   {
      if(syscalls[i] == addr)
      {
         return &syscalls[i];
      }
   }

   return NULL;
}


and you calculate size with : head->size - 0x10

but this size is in bytes, and you use this with a u32 pointer, the size should not be rather :

size = (head->size - 0x10) / sizeof(u32);

(Sorry for my ultra bad english) ;-)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Goto page Previous  1, 2, 3, ... 9, 10, 11  Next
Page 2 of 11

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group