Aller au contenu

Lancer un disque depuis OPL


djsteph974

Messages recommandés

Bonjour à tous :)

 

Ca fait bien longtemps que je n'avais pas poster sur ce bon vieux Metagames.

 

Voilà ma question, je me remet un peu à la PS2 en ce moment, et je me demandais si il existait un fichier .elf qui me permettrait de lancer un disque depuis OPL. Un fichier de ce genre existe bien sur Ulaunchelf, mais il n'est pas possible de le copier car ce n'est pas un .elf =/

 

Je sais qu'il est possible en redémarrant OPL ou la console, mais j'aurai aimé qu'il boot direct en lançant cette app.

 

Voilà, merci. :pouce:

Lien vers le commentaire
Partager sur d’autres sites

Bon je reformule ma question ... :fou:

 

Dans l'application Ulaunchelf, il existe une fonction qui permet de booter le disque d'un jeu. Il s'agit en fait du lanceur interne à la console. Ce lanceur est disponible dans le dossier "DIVERS" de Ulaunchelf et se nomme "PS2Disc".

 

 

Ma console est configurée de la sorte: j'allume ma console, OPL démarre, j'ai donc accès à mon dossier "APPS". Et dans ce dossier, j'aimerai pouvoir lancer le fameux PS2Disc, sans passer par Ulaunchelf.

 

Une autre solution serait de redémarrer sur le navigateur FMCB, mais ça implique un temps de chargement supplémentaire et inutile.

 

Merci à vous. :pouce:

Lien vers le commentaire
Partager sur d’autres sites

Ouaip. J'aurais bien aimé dépanner djsteph974 en codant un ptit lanceur, mais vu que je suis sur POPStarter, je n'ai définitivement pas le temps :( .

Pour softmodder ma PSX, j'ai fichu un ELF dans ce genre là dans le flash. Ce ELF a des trucs spécifiques pour la PSX et ne peut pas être lancé sur une PS2.

 

 

Pour coder un bon lanceur de disques, il faut :

1) Débloquer le lecteur pour la lecture des DVDV;

2) Identifier le type de disque via sceCdGetDiskType();

3) Si le type de disque renvoyé est SCECdDVDV, lire le secteur 14 via sceCdReadDVDV() et le traiter en tant que disque patché ESR si il contient l'identifiant +NSR à l'offset 37;

 

4) Si le disque est patché ESR, lancer un ELF de ESR intégré au lanceur ou externe.

 

5) Si le disque est de type SCECdDVDV, pas patché pour ESR, checker le KELF en MC, un ELF ailleurs, et lancer le DVD Player de la PS2 si rien n'a été trouvé (en reproduisant la procédure adéquate, IOP reset avec rom1:DVDCNF, chargement du pilote erom tout ça tout ça...)

 

6) Si le disque est de type SCECdPSCD ou SCECdPSCDDA, parser SYSTEM.CNF, assigner le chemin de l'exécutable principal en argument 0 et la version en argument 1, puis exécuter rom0:PS1DRV avec ces deux arguments. Si le disque n'a pas de SYSTEM.CNF, vérifier la présence de PSX.EXE. Si PSX.EXE est présent, le mettre en argument 0.

 

7) Si le disque est de type SCECdPS2CD, SCECdPS2CDDA ou SCECdPS2DVD, parser SYSTEM.CNF, mettre le chemin du ELF principal en argument 0 et exécuter rom0:PS2LOGO avec cet argument.

 

8) Si le disque est de type CD-Audio... je ne sais plus quel est l'argument du CdPlayer... Bon disons "rom0:" en argv[0], "BootBrowser" en argv[1], "SkipMc" en argv[2], "SkipHdd" en argv[3] et "SkipForbid" en argv[4], puis exécuter rom0:OSDSYS. Une bonne chose serait de dépacker OSDSYS en mémoire et de patcher ForbidDVDV...

Beaucoup de prise de tête alors qu'on peut tout simplement invoquer ExecOSD();

 

9) Si le disque est de type illégal ou le lecteur est vide, éjecter le tiroir, mettre le lanceur en attente de fermeture du tiroir et de lecteur prêt, avec un truc genre if(sceCdStatus() != CDVD_STAT_OPEN) sceCdDiskReady(0); puis looper l'identification du type de disque.

 

Pas besoin de BootCertify vu que OPL a été exécuté après OSDSYS/FMCB qui a fait le job.

 

 

Pour coder un lanceur vite fait, isoler et compiler le code de uLE.

Autre lanceur réalisable sans prendre trop de temps, un qui ne fait qu'exécuter rom0:OSDSYS, avec des arguments pour sauter la MC, le HDD et le verrouillage de ReadDVDV.

 

Une idée de lanceur qui pourra peut être fonctionner mais qui sera aussi basique que pourri :

 

int main()

{

ExecOSD();

 

return 1;

}

 

LOL. Celui là par contre, il lancera FHDB, le HDDOSD ou FMCB si ils sont présents.

Modifié par Hamato
Suppression logique comme demandée
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
  • Statistiques des membres

    23 028
    Total des membres
    1 033
    Maximum en ligne
    Subaru
    Membre le plus récent
    Subaru
    Inscription
  • Statistiques des forums

    128,1 k
    Total des sujets
    1,7 M
    Total des messages
×
×
  • Créer...