PDA

Voir la version complète : PSPLink, le dev facilité


Yodajr
20/07/2007, 15h58
Tout d'abord le titre de ce tuto laisse à penser qu'il n'est destiné qu'aux codeurs, mais j'ai rien trouvé d'assez court pour parler à tout le monde, mais en fait il est vraiment destiné à tout possesseur de PSP.
Tant pis pour ceux qui ne me lisent pas donc :rolleyes:


[B]1. Concept

Beaucoup de ceux qui ont exploité les capacités avancées de devhook ou certains plugins des custom firmwares de Dark Alex savent déja de quoi il s'agit quand je parle d'usbhost, mais appliquée aux homebrews.
Pour les autres, il s'agit d'une procédure qui permet à la PSP de lancer des applications placées sur le disque dur du PC via le port USB, un peu comme si le PC était une grosse memory stick.

Avantages :

0 transfert à faire sur la MS à chaque test
lancement immédiat de l'eboot
possibilité de debug
screenshot à tout moment
plus jamais besoin de redémarrer la PSP en cas de plantage


Même hors du cadre du dev, c'est très intéressant pour tester les homebrews, car on met rien sur la MS, tout reste sur le PC, c'est pratique.
Par exemple pour tester les évolutions de l'émulateur N64, plus besoin de mettre à chaque fois sur sa MS 4 ou 5 roms de 30Mo juste pour tester.

Je vous ai convaincu je pense (les autres ont déja fermé l'onglet), donc passons à l'installation ! :w00t:


[B]2. Installation

Récupérez d'abord cette archive (http://www.playeradvance.org/img/tuto_pa/psplink/psplink2.0.zip), puis décompressez la quelque part.

Sur la PSP, copiez le dossier psplink présent dans le dossier PSP/GAME au même endroit sur la MS (si vous êtes en kernel 1.50). Si vous n'êtes pas en kernel 1.50 ou si vous ne savez pas de quoi je parle, copiez le dossier dans PSP/GAME150 sur la memory stick.

Sur le PC, copiez n'importe où (mais je trouve plus propre de le mettre dans le dossier du projet) le contenu du répertoire PC

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink03.png

Puis copiez dans le répertoire projet qui s'y trouve les fichiers de votre application ou d'un homebrew quelconque (vous pouvez bien sur renommer le dossier projet mais pensez à modifier le psplink.bat en conséquence)
Pour l'exemple j'y ai copié l'eboot et les fichiers du tuto oslib n°4 :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink04.png

Ensuite lancez sur la PSP l'application PSPLink :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink06.png

Vous aurez normalement ce simple message à l'écran :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink05.png

Et connectez la PSP au PC via le câble USB.
La PSP sera alors détecté en type B.
Si vous avez déjà fait ça, sautez cette étape, sinon vous savez quoi faire, c'est pas la première fois que vous installez un driver, si ? :huh:
Le driver se trouve dans l'archive fournie plus haut.

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink01.png

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink02.png



[B]3. Utilisation

Il n'y a qu'a lancer le client PC : double cliquez sur le psplink.bat
Si tout c'est bien passé, vous devez obtenir ceci :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink07.png

L'host0 est censé pointer sur le dossier projet, vérifions en tapant "ls"

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink08.png

Parfait. :)
Maintenant lançons l'eboot !
C'est simple, il suffit de taper "./eboot.pbp"

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink09.png

Si tout continue à bien se passer, le sample se lance immédiatement sur la PSP :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink16.png


Testons la prise de screenshot : la commande est "ss" suivie d'un nom et de l'extension BMP :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink10.png

Le screen se place immédiatement dans le dossier du jeu :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink11.png


Encore un truc marrant, c'est la commande "power" qui liste des trucs qui peuvent s'avérer utile :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink12.png

Bon, une fois fini le test, vous pouvez quitter le jeu comme d'habitude via la touche home, ou alors utiliser la commande "reset" (je préfère utiliser le combo alt+R)
Ca affiche ça :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink13.png

Et la PSP quitte le jeu pour revenir à l'écran d'accueil de PSPLink.


Maintenant voyons le truc le plus intéressant de cette méthode : le crash handling !
Si vous codez sur PSP, ça vous est forcément déjà arrivé au moins une fois : vous avez oublié de copier un fichier sur la memory stick, oublié de charger une image, remplit la mémoire sans faire attention... bref, le plantage, avec reboot de la PSP obligatoire... >_<
Grâce à cette méthode, ça n'arrivera (quasiment) plus jamais ! :ange:

Testons. Effacez un des fichiers .png du répertoire du sample, lancez l'eboot (les commandes tapées précédemment sont sauvegardées, utilisez les flèches haut et bas) et validez l'écran d'avertissement.
On y coupe pas, la PSP plante.
Mais hooo comme c'est étrange (:oha:), sur le client PC de drôles de trucs sont apparus :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink14.png

Toutes ces informations sont certainement très utiles à qui sait les déchiffrer, mais moi à cet instant je ne vois qu'un seul truc à ma portée : taper "reset" (ou alt+R)
Magie ! la psp revient à l'écran d'accueil de PSPLink et le client est prêt à recevoir la prochaine commande B) :

http://www.playeradvance.org/img/tuto_pa/psplink/tuto_psplink15.png


Une fois que vous avez fini tous vos tests, tappez "exit" pour quitter, le client PC se fermera et la PSP reviendra au XMB :)


[B]4. Automatisation

Si vous utilisez un fichier .bat pour copier votre eboot sur votre PSP ou dans le repertoire PSPLink de votre projet, vous pouvez également faire en sorte que l'eboot soit lancé automatiquement dès la fin de la compilation !

Pour cela rien de plus simple, mettez l'executable SendPspCommand.exe (merci à Brunni !) dans le répertoire de votre projet et modifiez le comme dans l'exemple ci dessous (un extrait du .bat qui est lancé à chaque compilation)

copy eboot.pbp Projet /y > nul
IF ERRORLEVEL 1 GOTO END
SendPspCommand ./eboot.pbp
:END

(le errorlevel empêche de lancer l'eboot si la compilation ne s'est pas bien passée)


[B]5. Plus loin

Consultez la doc de psplink (le fichier pdf dans l'archive) c'est bien complet, et y'a la liste complète des commandes à taper dans le client PC.
On y apprend également à débugger avec (bon courage, j'ai jamais vraiment essayé perso)
Et aussi à utiliser le wifi en lieu et place de l'USB (amusez vous si ca vous chante, je préfère de loin l'USB, bien plus rapide et fiable)

Grand merci à Tyranid pour ce logiciel qui ne quitte plus aucune de mes memory stick ! ^^

Merci également à Brunni pour son SendPspCommand très utile ;)

Lord Raptor
20/07/2007, 16h21
Merci pour le tuto !

J'ignorais que ce genre de possibilités existait... Je me demande ce que ça donne en Wifi ? :hmm: J'ai hâte de tester ça ! :bave:

Dr.Vince
20/07/2007, 16h21
sympa ce tuto !! merci yoda !!

par contre comment tu fait pour "brancher" ce truc avec ton environnement de dev ??

je m'explique, tu code, tu compile et ?? y a moyen d'envoyer direct l'exécution ou pas ???

Lord Deimos
20/07/2007, 17h32
Je ne code pas sur PSP (ni sur aucune autre plateforme, d'ailleurs :hum:) mais je trouve que ce petit logiciel est vraiment très pratique.
A tester...

Merci :yoda: très bon tuto!

PS: ça fonctionnerait avec les backup (isos) de ses propres jeux PSX ?
C'est histoire de tester le cadrage de l'écran et ne pas perdre de temps, en copier/coller sur la MS.
(Je maintiens que les jeux ne sont pas tous bien centré en 3.30 OE même en n'activant aucune option)

Yodajr
20/07/2007, 23h21
tu code, tu compile et ?? y a moyen d'envoyer direct l'exécution ou pas ???
Nan j'ai jamais réussi à automatiser le lancement de l'eboot.
Donc le mieux que j'arrive à faire c'est : compiler avec F7, une fois compilé, mon eboot.pbp est copié automatiquement dans le dossier psplink là, et donc je dois faire haut+enter dans PCterm (le client PC) pour lancer l'eboot :)

PS: ça fonctionnerait avec les backup (isos) de ses propres jeux PSX ?
La méthode de base fonctionne avec les isos de jeu (usbhost + plugin OE) mais il n'y a rien (encore ?) pour les jeux PS1, désolé v_v

Dr.Vince
21/07/2007, 02h37
bon le truc bizarre c'est qu'une fois que tu as fait reset tu te retrouves dans psplink et là pas moyen de quitter psplink sans éteindre la psp

y a un autre moyen ou pas ???

Yodajr
21/07/2007, 03h29
Ha oui, oubli, c'est "exit" pour quitter ;)

Lord Deimos
21/07/2007, 15h47
La méthode de base fonctionne avec les isos de jeu (usbhost + plugin OE) mais il n'y a rien (encore ?) pour les jeux PS1, désolé v_v
Vraiment dommage. Mais je saurais me montrer patient quant à une éventuelle mise à jour de ce logiciel qui permettrait enfin l'utilisation des jeux PSX depuis le disque dur...
En tout cas, merci pour tes réponses :yoda: ;)

RefiX
22/07/2007, 19h40
Vu que ma psp prends la poussière et que je n'ai plus de MS de grande capacité je vais tester ca.
Merci pour le tuto ;)

Arcadia
22/07/2007, 20h00
Erf, je découvre à l'instant deux choses : ce tuto, et le fait qu'il n'aitpas été newsé :cry:

Alors bravo Yodajr, et comme il n'est jamais trop tard...

Yodajr
31/07/2007, 09h19
Vous l'aviez rêvé, Brunni l'a fait ! :D

y a moyen d'envoyer direct l'exécution ou pas ???

Maintenant oui !

Il suffit d'ajouter le SendPspCommand (http://www.playeradvance.org/img/tuto_pa/psplink/SendPspCommand.zip) de Brunni au répertoire du projet et de l'ajouter au .bat qui copie l'eboot :

copy eboot.pbp Projet /y > nul
IF ERRORLEVEL 1 GOTO END
SendPspCommand ./eboot.pbp
:END

(le errorlevel empêche de lancer l'eboot si la compilation ne s'est pas bien passée, ici mon fichier .bat (http://hothmoon.free.fr/nmake.txt) en entier pour ceux que ça intéresse)

Merci Brunni ! :wub:


PS : :arcadia: : Merci ;)

Dr.Vince
31/07/2007, 11h25
ha ça c'est un bonne nouvelle !!

archilolo
17/09/2007, 14h30
Chouette tuto pour un prog indispensable de la PSP ! :bravo:

Jamais je ne te remercierai assez Yoda. :-'

(et Brunni aussi pour son OSlib ; mais il va finir par en avoir marre à la fin ! :D)

peb
19/10/2007, 14h53
Tout simplement génial! Je regrette de ne pas l'avoir utilisé plutôt, c'est un gain de temps assuré pour le développement! merci pour ce tuto ;)

Mokhet
31/12/2007, 02h40
Tout simplement indispensable