Scripts Lua-interface...

Forum où l'on peut discuter de tout à condition de ne pas flooder, sauf dans l'unique sujet dédié "foutoir".
Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6465
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Scripts Lua-interface...

Message non lu par BahaBulle » 10 avr. 2013, 17:13

ISOLua

Un petit script pour lua-interface que j'ai fait pour Hiei qui permet d'extraire tous les fichiers d'un iso ou d'en recréer un en lui fournissant les fichiers modifiés.
Les isos doivent être au format .BIN (.cue) ou .ISO.
Pour l'insertion, le répertoire contenant les fichiers modifiés doit respecter l'arborescence de l'iso d'origine.

Il y a sûrement des bugs même s'il fonctionne pour l'iso de Hiei ainsi que sur Parasite Eve 3 :-P
Il reste encore des problèmes selon le type d'iso parce qu'apparemment, les jeux PC, Saturn, Playstation n'utilisent pas tous le même système.
N'hésitez pas si vous en trouvez ou si vous vous que j'ajoute quelque chose.

Ligne de commande :

Code : Tout sélectionner

lua-interface[-light].exe -a ISOLua.paq -e "extract('<type_iso>', '<iso>', '<path>'[, '<iso_tree>'])" ISOLua.lua
lua-interface[-light].exe -a ISOLua.paq -e "insert('<type_iso>', '<iso>', '<path>', '<name_out>'[, '<iso_tree>'[, <forcelba>]])" ISOLua.lua
lua-interface[-light].exe -a ISOLua.paq -e "getlist('<type_iso>', '<iso>', '<mode>', '<iso_tree>')" ISOLua.lua

type_iso : type d'iso (CD, CD-PS, DVD, DVD-PS, UMD)
iso      : chemin (complet ou relatif) de l'iso d'origine (.bin ou .iso)
path     : chemin (complet ou relatif) du repertoire contenant les fichiers extrait ou a inserer
iso_tree : chemin (complet ou relatif) du fichier contenant l'arborescence de l'iso pour forcer l'ordre d'extraction ou d'insertion des fichiers
name_out : chemin (complet ou relatif) du nom de l'iso cree (utilise que pour l'insertion)
mode     : format du fichier contenant l'arborescence de l'iso)
           LIST : Liste des fichiers (ISOLuaList)
           TREE : Arborescence des fichiers (ISOLuaTree)
forcelba : force l'écriture des répertoires/fichiers aux mêmes secteurs que pour l'iso d'origine (ne fonctionne qu'avec un fichier ISOLuaList)
CD-PS et DVD-PS sont pour les jeux PS1 ou PS2. Les DVD PS2 semblent utiliser le format UDF qui n'est pas pris en charge par lua-interface.

Pour les boulets voilà un exemple :

Code : Tout sélectionner

Extraction : lua-interface.exe -a ISOLua.paq -e "main('CD', 'Orig.bin', 'OrigFiles')" ISOLua.lua"
Insertion  : lua-interface.exe -a ISOLua.paq -e "main('CD', 'Orig.bin', 'NewFiles', 'Dest.BIN')" ISOLua.lua
!! ATTENTION !!
Ce script ne fonctionne qu'avec les jeux utilisant le système de fichiers ISO 9660. Les jeux PS2 sur DVD semblent utiliser le format UDF qui n'est pas supporté par lua-interface.

Types de jeux non supportés :
- les jeux comme Xenogears (PSX), Chrono Cross (PSX) ou encore Valkyrie Profile (PSX) car il utilisent leur propre système de fichiers ;
- les jeux comme Legend of Mana (PSX) ou Jeanne d'Arc (PSP). Quand on ouvre ces iso dans un logiciel adéquat, on voit bien tous les fichiers et donc ils utilisent la norme ISO 9660 mais ils utilisent en plus un fichier index indiquant l'emplacement des fichiers. Et mon script ne peut pas modifier ces fichiers ;
- d'autres jeux qui auraient des fichiers spéciaux. Par exemple, Tales of Destiny possède un fichier DUMMY qui ne semble pas pouvoir être extrait par mon script (en tout cas, dans sa version actuelle).
- la fonction interne de lua-interface permettant de boucler sur les répertoires possède un bug. Je ne l'ai eu que sur l'iso de Jeanne d'Arc (PSP). Il n'extrait pas tous les fichiers. Cependant, si vous arrivez à créer le fichier "iso_tree", il devrait être possible de tout extraire quand même.

------------------------------------------------------------------------------------------
Versions :

Version 1.1
Version 1.0

Avatar de l’utilisateur
kogami
Dieu Floodeur
Messages : 761
Inscription : 17 juin 2004, 16:47

Re: Lua-interface...

Message non lu par kogami » 10 avr. 2013, 17:37

Script très intéressant, pense tu qu'il soit compatible pour les jeux PC Engine CD ?
Traduction de BS Zelda - Ancient Stone Tablets (Projet en cour)Image

Hiei-

Re: Lua-interface...

Message non lu par Hiei- » 10 avr. 2013, 17:54

Vu que la plupart des jeux PC-Engine CD utilisent des pistes audios, j'en doute fort.
BahaBulle a écrit :N'hésitez pas si vous en trouvez ou si vous vous que j'ajoute quelque chose.
Pouvoir préciser l'ordre des fichiers (LBA) mais tu as déjà dit que c'était prévu pour ta prochaine version :wink: (mon iso se moque de l'emplacement des fichiers, mais j'imagine que ce n'est pas le cas de tous les jeux).

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6465
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: Lua-interface...

Message non lu par BahaBulle » 10 avr. 2013, 18:20

Faudrait que j'essaye pour les jeux PCE CD.

Mais ça me fait penser que ce n'est pas dit que ça fonctionne pour les jeux PSX qui ont des fichiers XA ou STR.
En ajoutant la possibilité de forcer l'ordre des fichiers, je vais ajouter ce qu'il faut pour paramétrer ces fichiers comme il faut mais je ne sais pas si ça fonctionnera pour un iso PCE. A tester.

Hiei-

Re: Lua-interface...

Message non lu par Hiei- » 11 avr. 2013, 09:37

Il n'y a pas vraiment d'intérêt à utiliser ce script pour des jeux PC Engine CD je pense. Ils sont en général composés d'une piste de données (ou deux) et de pistes audio.

Ici, c'est surtout utile car l'ISO en question contient une vingtaine de fichiers, et qu'il faut donc le reconstruire (je le faisais à la main avec ultraiso, mais évidemment, quand tu recréés l'iso des centaines de fois, tu préfères que ce soit automatisé).

Avatar de l’utilisateur
kogami
Dieu Floodeur
Messages : 761
Inscription : 17 juin 2004, 16:47

Re: Lua-interface...

Message non lu par kogami » 11 avr. 2013, 20:40

Je connais pas trop l'architecture des jeu PC Engine CD, mais en gros les pistes "Data" sont simplement de gros binaire à l'image d'un jeux rom (snes, MD etc...) ?

Du coup y a rien que l'on puisse décompacter.
Traduction de BS Zelda - Ancient Stone Tablets (Projet en cour)Image

Avatar de l’utilisateur
Graou
SHIKAAAA
Messages : 819
Inscription : 31 août 2004, 20:50
Localisation : Sous un pont
Contact :

Re: Lua-interface...

Message non lu par Graou » 15 avr. 2013, 13:05

Très bonne idée ce script, Baha :)

J'ai rapidement testé et j'ai l'impression (mais je peux me planter) que la reconstruction d'ISO en mode DVD ne marche pas comme elle devrait (elle se ferait pas en mode CD?).
D'ailleurs, ça m'amène aux deux questions suivantes :
- Les jeux UMD PSP sont considérés comme des DVD ?
- As-tu la liste des dernières API exposées dans lua-interface (depuis le passage cd-tool à lua-interface)? Ou est-ce que tu vas voir directement dans le code source ce qui existe ?

Avatar de l’utilisateur
Lyan
Dieu Suprême du flood
Messages : 1441
Inscription : 19 nov. 2007, 04:56
Localisation : Raxacoricofallapatorius
Contact :

Re: Lua-interface...

Message non lu par Lyan » 15 avr. 2013, 14:07

Graou a écrit :- Les jeux UMD PSP sont considérés comme des DVD ?
Je l'ai utilisé pour un jeu PSP et Baha m'a dit d'utiliser le mode DVD ;)

Mais petit souci néanmoins, il y a un petit truc à corriger car en théorie sur un ISO9660 l'arborescence de tous les dossiers et sous dossiers doit démarrer au secteur 22 (décimal) et ces derniers doivent être placés avant les fichiers, hors actuellement le script commence bien au secteur 22 avec un dossier et place bien le sous-dossier "PSP_GAME" sur le 23, mais les autres sous-dossiers eux sont balancés au milieu des fichiers ;)

Baha va nous fixer ça, et peut être même nous implémenter en bonus la possibilité de forcer les positions des secteurs pour restaurer LBA et ordre des fichiers :)
http://www.youtube.com/user/Lyan53
Image
- Avec les gens de cour, vos pareils don Salluste, je vous laisse et je reste avec mes chenapans. Je vis avec les loups, non avec les serpents.
- L'amour a dompté le loup ! Ôtez-lui l'amour, il redeviendra un loup.

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6465
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: Lua-interface...

Message non lu par BahaBulle » 15 avr. 2013, 15:49

Pour le mode DVD, possible, je n'ai pas encore vraiment testé.

Et sinon, non je ne regarde pas le code source, trop complexe pour moi :-P
Et je ne connais pas toute l'API. Il y a le fichier FAQ-CD.txt qui contient les principales fonctions pour recréer un iso.

UMD = DVD

Avatar de l’utilisateur
Graou
SHIKAAAA
Messages : 819
Inscription : 31 août 2004, 20:50
Localisation : Sous un pont
Contact :

Re: Lua-interface...

Message non lu par Graou » 15 avr. 2013, 16:02

Tu as une version du FAQ-CD.txt avec les derniers ajouts (comprendre depuis que c'est lua-interface) ? Si oui, je veux :love:
J'ai pas trop de soucis avec les fonctionnalités qui proviennent de cdtools, c'est surtout les bidules genre les différences en terme d'API entre CD et DVD qui me manque (de mémoire, c'est nouveau).

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6465
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: Lua-interface...

Message non lu par BahaBulle » 15 avr. 2013, 16:43

Le fichier doit se trouver dans les sources mais je peux te l'envoyer.

Hiei-

Re: Lua-interface...

Message non lu par Hiei- » 16 avr. 2013, 02:51

La fonction "CD" fonctionne niquelle avec la gestion de l'ordre des fichiers.

Par contre, la fonction "DVD" foire (elle fonctionne pour créer ou extraire les reps mais dès qu'elle commence à toucher à un fichier, boum).

J'ai testé avec "Deus Ex" que j'avais sous la main, au format "DVD" et j'ai eu le problème :

Code : Tout sélectionner

Creation du repertoire deus-ex/music/Vanden
Creation du repertoire deus-ex/music/Versa
Extraction du fichier deus-ex/intro.pss
(EE) Not a valid iso9660 file.
(EE) Lua object: Got an LUA error, inspecting stack.
(EE) 1: (String) Invalid arguments to constructor of cdfile
(EE) 2: (String) at =[C]:-1 ([top])
(EE) 3: (String) at =[C]:-1 (cdfile)
(EE) 4: (String) at @sources/extract.lua:78 (isoLuaExtractTree)
(EE) 5: (String) at @sources/extract.lua:113 (isoLuaExtract)
(EE) 6: (String) at @ISOLua.lua:100 (extract)
(EE) 7: (String) at Fifo:1 ([top])
terminate called after throwing an instance of 'LuaException'
(sachant que l'ancienne version du script extractait le jeu sans problème)

Lyan a eu exactement le même pour son jeu (que ce soit en extraction/insertion) :

http://nsa33.casimages.com/img/2013/04/ ... 569319.png

Avatar de l’utilisateur
Lyan
Dieu Suprême du flood
Messages : 1441
Inscription : 19 nov. 2007, 04:56
Localisation : Raxacoricofallapatorius
Contact :

Re: Lua-interface...

Message non lu par Lyan » 16 avr. 2013, 03:10

C'est celle-ci pour l'extraction mais ça revient à peu près au même : http://nsa33.casimages.com/img/2013/04/ ... 838916.png

Je pense que l'erreur est localisée au même endroit dans une des fonctions du script qui doit traiter les fichiers

Il plante dès qu'on veut lui faire manger un fichier, la gestion des dossiers et sous-dossiers elle fonctionne

J'ai même tenté en commentant plusieurs fichiers dans le "ISOLuaList.lua" mais du coup il plante sur le fichier suivant, bref il ne veut pas de fichiers à traiter ;)
http://www.youtube.com/user/Lyan53
Image
- Avec les gens de cour, vos pareils don Salluste, je vous laisse et je reste avec mes chenapans. Je vis avec les loups, non avec les serpents.
- L'amour a dompté le loup ! Ôtez-lui l'amour, il redeviendra un loup.

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6465
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: Scripts Lua-interface...

Message non lu par BahaBulle » 22 avr. 2013, 21:56

Mise à jour, passage à la version 1.1.

- Revue des fonctions d'extractions/insertion pour gérer différents formats de CD/DVD ;
- Ajout de la possibilité d'utiliser un fichier contenant la liste des fichiers/répertoires pour extraire/insérer certains fichiers ou pour en ajouter dans l'iso de destination ;
- Ajout de la fonction getlist permettant de créer le fichier cité précédemment.

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6465
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: Scripts Lua-interface...

Message non lu par BahaBulle » 07 août 2014, 21:37

BahaTools

Un petit script pour lua-interface pour les pros de la modif hexadécimale. Il permet d'extraire/insérer des octets d'un fichier afin d'éviter de modifier directement dans le fichier.

Par exemple, au lieu de modifier directement dans la rom les graphismes d'un jeu, vous pouvez les extraire et les insérer avec cet outil. Comme ça, si vous foirez la rom après, pas besoin de tout se retaper.

Fonctions :
  • BLOC : Extrait/insère un bloc d'octets
  • BYTES : Remplace des octets par une liste de valeurs (si jamais vous avez un octet à modifier par-ci, par-là)
  • FILL : Remplace un nombre d'octets par la même valeur (genre pour "effacer" des données non utilisées, permet aussi d'ajouter des octets à la fin d'un fichier)
Ligne de commande :

Code : Tout sélectionner

lua-interface[-light].exe -a Baha-Tools.paq -e "main('<param>')" BahaTools.lua
param : fichier de paramètre
Je fourni un fichier paramètre en exemple, évidemment ;)

------------------------------------------------------------------------------------------
Versions :

Une nouvelle version va voir le jour, beaucoup plus complète.

Répondre