[Trim v0.22a] Recortador de ROMS para GNU/Linux

Trimmer es una aplicación compatible con *NIX que te permite recortar los ROMS para que ocupen menos espacio.

Descárgala desde aquí, descomprime el archivo comprimido y copia el fichero trim a /usr/bin. Por ejemplo:
$ wget [url]http://l33t.spod.org/ratx/DS/dslazy/trim-0.22a.zip[/url]
$ unzip trim-0.22a.zip
$ sudo cp trim /usr/bin/trim
$ sudo chmod +x /usr/bin/trim
Después para "trimmear" un ROM escribe, por ejemplo, lo siguiente:
$ trim "/home/usuario/Descargas/ROMS/Juego para trimmear.NDS"
Recuerda que tanto los directorios y nombres de archivo como sus extensiones son sensibles a las mayúsculas. También puedes situarte en el directorio en el que tienes los ROMS para recortarlo escribiendo menos:
$ trim "Juego para trimmear.NDS"
El programa te creará una versión duplicada pero menos pesada del ROM con el sufijo .trim justo antes de la extensión.

El archivo zip también incluye un ejecutable para Windows. Me parece que es para el intérprete de comandos (MS-DOS) y se utiilza igual que el de GNU/Linux.

Página oficial | ratx stuffs » trim
Un pequeño script en bash para "trimear" todas las ROMs que hay en un directorio determinado, eliminando los originales, y dejando el nombre del archivo sin el ".trim" del final:

#!/bin/bash
trim="/usr/local/bin/trim"
if [ ! -f $trim ]; then
    echo "Asegúrese de que 'trim' esta instalado en:"
    dirname $trim
    echo
    echo "http://blog.dev-scene.com/ratx/archives/category/trim"
    exit
fi
for i in ./*.nds; do
    nom=`echo $i | cut -c 3-999 | sed s/.nds//g`
    echo "* * * $nom.nds * * *"
    trim "$i"
    if [ -f "$nom.trim.nds" ]; then
        rm "$i"
        mv "$nom.trim.nds" "$i.nds"
    fi
done
exit


Fijaos que la segunda línea es la variable en donde teneis instalado el trim (yo lo tengo en /usr/local/bin). Para que funcione el script dicho directorio tiene que estar en el PATH.
xzibit escribió:
#!/bin/bash
trim="/usr/local/bin/trim"
if [ ! -f $trim ]; then
    echo "Asegúrese de que 'trim' esta instalado en:"
    dirname $trim
    echo
    echo "http://blog.dev-scene.com/ratx/archives/category/trim"
    exit
fi
for i in ./*.nds; do
    nom=`echo $i | cut -c 3-999 | sed s/.nds//g`
    echo "* * * $nom.nds * * *"
    trim "$i"
    if [ -f "$nom.trim.nds" ]; then
        rm "$i"
        mv "$nom.trim.nds" "$i.nds"
    fi
done
exit


No me funciona. Me sale todo el tiempo el nombre del primer rom que pilla entre los tres asteriscos y no me hace nada. ZzzZZ
Tenía un pequeño error, que dejaba el nombre final del rom en .nds.nds

#!/bin/bash
trim="/usr/local/bin/trim"
if [ ! -f $trim ]; then
        echo "Asegúrese de que 'trim' esta instalado en:"
        dirname $trim
        echo
        echo "http://blog.dev-scene.com/ratx/archives/category/trim/"
        exit
fi
for i in *.nds; do
        nom=`echo $i | sed s/.nds//g`
        echo "* * * $nom.nds * * *"
        trim "$i"
        if [ -f "$nom.trim.nds" ]; then
                rm "$i"
                mv "$nom.trim.nds" "$i"
        fi
done
exit


Lo acabo de probar y me funcionó bien...
xzibit escribió:Tenía un pequeño error, que dejaba el nombre final del rom en .nds.nds




#!/bin/bash
trim="/usr/local/bin/trim"
if [ ! -f $trim ]; then
        echo "Asegúrese de que 'trim' esta instalado en:"
        dirname $trim
        echo
        echo "http://blog.dev-scene.com/ratx/archives/category/trim/"
        exit
fi
for i in *.nds; do
        nom=`echo $i | sed s/.nds//g`
        echo "* * * $nom.nds * * *"
        trim "$i"
        if [ -f "$nom.trim.nds" ]; then
                rm "$i"
                mv "$nom.trim.nds" "$i"
        fi
done
exit





Lo acabo de probar y me funcionó bien...


Pues a mí no solo me sigue sin funcionar, sino que además me ha petado el ordenador. Sigue haciendo lo mismo, muestra todo el tiempo el nombre del primer rom que pilla entre asteriscos y no hace nada, excepto reducir la velocidad del sistema.

Casi prefiero hacerlo de manera manual.

EDITADO: Al final si que funciona. Sucede que debido a que como en mi PC se llamaba igual el script que el programa, el script se auto-ejecutaba dentro de sí mismo en un bucle infinito. :P Si va a ser que era una tontería. La solución en mi caso ha sido poner el script en /usr/bin/autotrim y el programa en /usr/bin/trim. Por otro lado ¡Buen trabajo! ;)

Ahora bien, me gustaría saber si podrías hacer que el script detectase si hay roms con la extensión en mayúscula, y si los hay, que realizase el trim solo con ellos.
[DoodoM] escribió:EDITADO: Al final si que funciona. Sucede que debido a que como en mi PC se llamaba igual el script que el programa, el script se auto-ejecutaba dentro de sí mismo en un bucle infinito. :P Si va a ser que era una tontería. La solución en mi caso ha sido poner el script en /usr/bin/autotrim y el programa en /usr/bin/trim. Por otro lado ¡Buen trabajo! ;)


Pues menos mal que te diste cuenta, yo pensaba que habías dejado el ejecutable original como estaba (o sea como trim). Que el error fuese causado por un bucle infinito es algo que me hubiera ocurrido en la vida XD

[DoodoM] escribió:Ahora bien, me gustaría saber si podrías hacer que el script detectase si hay roms con la extensión en mayúscula, y si los hay, que realizase el trim solo con ellos.


Vamos a ver si me aclaro. Lo que quieres tener es:
- ROMs Trimeadas: *.nds
- ROMs No trimeadas: *.NDS

Entonces lo que quieres es procesar todas las .NDS y dejarlas trimeadas como .nds, ¿no?

#!/bin/bash
trim="/usr/local/bin/trim"
if [ ! -f $trim ]; then
        echo "Asegúrese de que 'trim' esta instalado en:"
        dirname $trim
        echo
        echo "http://blog.dev-scene.com/ratx/archives/category/trim/"
        exit
fi
for i in *.NDS; do
        if [ ! -f $i ]; then
                echo "No hay ROMs que procesar..."
                exit
        fi
        nom=`echo $i | sed s/.NDS//g`
        echo "* * * $nom * * *"
        trim "$i"
        if [ -f "$nom.trim.NDS" ]; then
                rm "$i"
                mv "$nom.trim.NDS" "$nom.nds"
        fi
done
exit


De todas formas comentar que no le veo mucho sentido a esto, porque el ejecutable original (trim) si detecta que ya no hay nada que trimear (porque realmente no hay nada, o porque ya se le pasó el "trim" anteriormente) entonces el archivo ni lo toca (analizarlo como es lógico lo tiene que analizar, pero no lo modifica para nada).
De echo es al revés, que coja un archivo con extensión en minúscula, y que lo trimee poniendo extensión en mayúscula. Debido a las manías del R4 con los skins y a que las partidas guardadas se guardan en SAV me ha dado a mí también la manía de poner la extensión de los roms en mayúscula.

De todos modos no es muy complicado modificar el script. Yo lo que hecho ha sido copiarlo como /usr/bin/AUTOTRIM y hacer que ese otro haga lo mismo pero con los que tienen extensión en mayúscula.

Tendré que ponerme alguna vez a aprender un poco sobre scripts de Bash, que tampoco son tan difíciles. ;)
6 respuestas