Los emuladores modernos aceptan archivos comprimidos de forma nativa, ahorrando espacio y disminuye los tiempos de carga., estos son los mejores formatos para cada uno:
Emulador | Compresión |
PS2 y PSP | .cso |
PSX | .chd |
GameCube y Wii | .rvz |
Sega CD | .chd |
Sega Dreamcast | .chd |
Sega Saturn | .chd |
TurboGrafx-16 CD | .chd |
Panasonic 3DO | .chd |
Comprimir .cue + .bin, .gdi y .iso a .chd
Originalmente el formato CHD fue creado por MAME específicamente para los discos duros de ciertas Arcades y luego el soporte fue extendido para PlayStation 1 (PSX), Sega CD, Saturn, Dreamcast, etc. y han desarrollado una herramienta llamada CHMAN, con la cual podemos reducir considerablemente el tamaño de los archivos., eso significa muchos juegos en poco espacio.
Instalar CHMAN
Windows
Linux
sudo apt install -y --no-install-recommends mame-tools

macOS
En Mac hay que instalar el administrador de paquetes Homebrew para poder instalar chdman
brew install rom-tools

Convertir .cue y .gdi a .chd
En Windows
El archivo comprimido contiene la herramienta chdman.exe y algunos archivos por lotes, el cual procesa todos los archivos contenidos en la carpeta.


Probemos con los PSX., copiamos el archivo chdman.exe y CUE or GDI to CHD.bat en la carpeta donde se encuentran los ROMs

Ejecutamos dándole doble clic a CUE or GDI to CHD.bat y comenzará el proceso de convertir todos los archivos que se encuentren en la carpeta., una ROM pueden tener muchos archivos *.bin – Nombre_del_ROM (Track 01).bin hasta Nombre_del_ROM (Track X_Numero).bin y Nombre_del_ROM.cue, en la siguiente imagen se pueden ver más claro.

Al final transformará todos los archivos .bin y .cue en un solo .chd., en este ejemplo vemos cómo convirtió dos archivos .bin y el .cue, así como se redujo el peso de 646 MB a 384 MB

En este ejemplo también aplica para los .gdi a .chd.
En Linux / macOS
Primero ingresamos en la carpeta dentro de la Terminal, para este ejemplo usaremos 3do en un disco externo configurado con Batocera.
macOS:
cd /Volumes/nombre_disco_hdd/batocera/roms/3do

Linux:
Para la mayoría de las distros
cd /mnt/nombre_disco_hdd/batocera/roms/3do
En Ubuntu
cd /media/usuario/nombre_disco_hdd/batocera/roms/3do

Para comprimir todos los archivos en el directorio
Para .bin + .cue a .chd:
for i in *.cue; do chdman createcd -i "$i" -o "${i%.*}.chd"; done
Para .gdi a .chd:
for i in *.gdi; do chdman createcd -i "$i" -o "${i%.*}.chd"; done

Para comprimir cada archivo en subdirectorios dentro de una carpeta, teniendo en cuenta que ya estamos en la carpeta
for i in */*.cue; do chdman createcd -i "$i" -o "${i%.*}.chd"; done
De .gdi a .chd
for i in */*.gdi; do chdman createcd -i "$i" -o "${i%.*}.chd"; done
Como crear el archivo .cue
Sin el archivo .cue no podemos utilizar el proceso de compresión anteriormente visto, en caso de que tengas un ROMset y no lo tenga lo podemos crear en este sitio https://www.duckstation.org/cue-maker/ seleccionamos todos los archivos .bin del mismo nombre (Track 01 hasta X) > los soltamos en el cuadro [Drop your .bin files here!] y presionamos el botón [Download .cue file] y repetimos el proceso para cada uno.

Cortamos el archivo descargado .cue y lo pegamos donde están los .bin

Hay una versión de escritorio https://github.com/nielsbuus/psx_cue_maker_desktop/tree/master/dist del mismo autor Niels Buus., la cual encuentro mas complicada.
Tambien puedes descargar los Cuesheets para cada roms set en la pagina http://redump.org/downloads/
Convertir .iso a .chd
Este método puede ser utilizado para los ROMs.iso de PSX
En Windows
Editamos el archivo CUE or GDI to CHD.bat clic derecho y Editar

Agregamos , *.iso

Archivo Guardar y Cerrar o Salir

En Linux / macOS
for i in *.iso; do chdman createcd -i "$i" -o "${i%.*}.chd"; done
Todo en uno .cue, .gdi y .iso a .chd
for i in *.cue *.gdi *.iso; do chdman createcd -i "$i" -o "${i%.*}.chd"; done
Es normal si te marca un error si no encuentra ningún archivo con la extensión .cue / .gdi / .iso
Con cuáles sistemas y ROMs puedo usar este método de compresión.
Sistema | Abreviación | Ruta | Extensiones |
---|---|---|---|
3DO Interactive Multiplayer | 3do | /userdata/roms/3do | .iso .chd .cue |
Amiga CD32 | amigacd32 | /userdata/roms/amigacd32 | .bin .cue .iso .chd |
Amiga CDTV | amigacdtv | /userdata/roms/amigacdtv | .bin .cue .iso .chd .m3u |
Dreamcast | dreamcast | /userdata/roms/dreamcast | .cdi .cue .gdi .chd .m3u |
FM-TOWNS | fmtowns | /userdata/roms/fmtowns | .bin .m3u .cue .d88 .d77 .xdf .iso .chd .toc .nrg .gdi .cdr .mfi .dfi .hfe .mfm .td0 .imd .1dd .cqm .cqi .dsk .zip .7z |
Macintosh | macintosh | /userdata/roms/macintosh | .dsk .zip .7z .mfi .dfi .hfe .mfm .td0 .imd .d77 .d88 .1dd .cqm .cqi .dsk .ima .img .ufi .ipf .dc42 .woz .2mg .360 .chd .cue .toc .nrg .gdi .iso .cdr .hd .hdv .2mg .hdi |
CD-i | cdi | /userdata/roms/cdi | .chd .cue .toc .nrg .gdi .iso .cdr |
Neo-Geo CD | neogeocd | /userdata/roms/neogeocd | .cue .iso .chd |
PC Engine CD | pcenginecd | /userdata/roms/pcenginecd | .pce .cue .ccd .iso .img .chd |
PC-FX | pcfx | /userdata/roms/pcfx | .cue .ccd .toc .chd .zip .7z |
PlayStation 2 | ps2 | /userdata/roms/ps2 | .iso .mdf .nrg .bin .img .dump .gz .cso .chd |
PlayStation | psx | /userdata/roms/psx | .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso |
Saturn | saturn | /userdata/roms/saturn | .cue .ccd .m3u .chd .iso .zip |
Sega CD | segacd | /userdata/roms/segacd | .cue .iso .chd .m3u |
Supergrafx | supergrafx | /userdata/roms/supergrafx | .pce .sgx .cue .ccd .chd .zip .7z |
Aunque para PS2 recomiendo el sistema de compresión CSO que veremos a continuación.
Comprimir PSP y PS2 en CSO
CSO es un formato comprimido mejor que el GZ., para ello usaremos la herramienta maxcso, este es su repositorio: https://github.com/unknownbrackets/maxcso
En Windows
Instalarlo:
Descarga su ultimo release en: https://github.com/unknownbrackets/maxcso/releases
La versión maxcso_v1.13.0_windows.7z es para sistemas 64 bits, si tienes un equipo viejo descarga maxcso_v1.13.0_windows-32bit.7z., requieres para descomprimirlos el 7z.
Uso:
Solo arrastra los archivos a maxcso.exe


Para convertir todos los archivos contenidos en la carpeta crearemos un archivo por lotes .bat lo podemos llamar ISO to CSO.bat, creamos un Documento de texto le ponemos el nombre de ISO to CSO.bat Si, clic derecho al archivo Editar



Escribimos el siguiente texto o copiamos y pegamos., guardamos y cerramos.
for /r %%i in (*.iso) do maxcso "%%i" -o "%%~ni.cso

Ejecutamos el ISO to CSO.bat dándole doble clic

Agregar velocidad al proceso, adicionamos el parámetro de –threads (Hilos por proceso)., si tienes un buen procesador de 8 nucleos te sugiero agregarle el valor de –threads=10
for /r %%i in (*.iso) do maxcso "%%i" --threads=2 -o "%%~ni.cso
En macOS
Aparte de gcc/g++ o clang (de Xcode o brew), también necesitarás librerías las cuales instalamos con brew, clonamos el repositorio y compilamos
Instalarlo:
brew install lz4
brew install libuv
brew install libdeflate
git clone https://github.com/unknownbrackets/maxcso.git
cd maxcso
make
sudo make install
En Linux
Aparte de gcc/g++ o clang instalamos con apt las librerías que se ocuparan, clonamos el repositorio y compilamos
Instalarlo:
sudo apt-get install git-core build-essential liblz4-dev libuv1-dev zlib1g-dev
git clone https://github.com/unknownbrackets/maxcso.git
cd maxcso
make
sudo make install



Uso:
Para este ejemplo usaremos las ISOs de PSP en Batocera usualmente se encuentra en la ruta /batocera/roms/psp., entramos en la carpeta y convertimos todas las .isos que contiene la carpeta en .cso
En macOS:
cd /Volumes/nombre_disco_hdd/batocera/roms/psp
for i in *.iso; do maxcso "$i"; done
Para cada archivo dentro de los subdirectorios
cd /Volumes/nombre_disco_hdd/batocera/roms/psp
for i in */*.iso; do maxcso "$i"; done
En Linux:
cd /media/usuario/nombre_disco_hdd/batocera/roms/psp
for i in *.iso; do maxcso "$i"; done
Para cada archivo dentro de los subdirectorios
cd /media/usuario/nombre_disco_hdd/batocera/roms/psp
for i in */*.iso; do maxcso "$i"; done
Comprimir Gamecube y Wii
La mejor manera de comprimir los roms de Gamecube y Wii es en formato RVZ, para ello ocupamos que ambos dos se encuentren en formato ISO.
Si tenemos .wbfs convertirlos a .iso
Si tenemos los ROMs de Wii en formato .wbfs hay que cambiarlos a .iso con la herramienta NKit v1.4 (descargamos y descomprimimos)., en este sitio se encuentra toda la documentación.
Ejecutamos NKitProcessingApp.exe

Vamos a la carpeta donde se encuentran los archivos .wbfs a convertir, los arrastramos al espacio donde indica Drag and Drop files here... en los Settings seleccionamos Convert to ISO y presionamos el botón Process

Los archivos procesados se encontrarán en la carpeta NKit_v1.4 > Processed > Wii_MatchFail copiamos los .iso a la carpeta donde concentramos tanto los de GameCube como Wii.

Eliminamos todos los .wbfs y .wbf[X]., recordemos que los .wbfs pueden dividirse en archivos con el_mismo_nombre.wbf1 hasta el_mismo_nombre.wbf[N] números, todos ellos conforman un solo.

Convertir .iso a .rvz
Descargamos el Emulador Dolphin y descomprimimos el archivo dolphin-master-5.0-16793-x64.7z entramos a la carpeta Dolphin-x64 y ejecutamos Dolphin.exe


Clic a Configuración luego Rutas y Añadir...

Seleccionamos la carpeta donde se encuentran las isos y cerramos la ventana

Se enlistan todas las ISOs, seleccionamos todos los elementos de la lista con el mouse o presionando ctrl + a presionamos clic derecho en lo seleccionado y clic a Convertir archivos seleccionados...

Conservamos estos parámetros, presionamos el botón Convertir... y seleccionamos la carpeta destino.


Al terminar el proceso presionamos Aceptar y vemos en el listado el nivel de compresión de los archivos tanto GC como Wii (los marcados con azul).

En macOS
Descarga la versión para macOS

Ejecuta estos parámetros en la terminal ya que por razones de seguridad no te va a permitir abrir la aplicación., reemplaza /path/to/ por la ruta donde se encuentre la app.
sudo xattr -r -d com.apple.quarantine /path/to/Dolphin.app
sudo xattr -r -d com.apple.quarantine /path/to/Dolphin\ Updater.app
En Linux
Ubuntu via Snap
sudo apt update
sudo apt install snapd
sudo snap install dolphin-emulator


Otras distros
https://wiki.dolphin-emu.org/index.php?title=Installing_Dolphin#Linux
Sigue el mismo proceso detallado en Convertir .iso a .rvz
Comprimir por lotes a Zip y 7z
Los emuladores más recientes también han abrazado la idea de aceptar archivos comprimidos Zip y 7z todo ello para facilitar a la comunidad de usuarios ahorrar espacio., ver listado completo de emuladores y extensiones permitidas claro ello incluyendo las descritas.
Windows
Descargar 7 Zip Extra y descomprime el archivo

El archivo contiene 7zxa.dll, 7za.exe y 7za.dll de 32 bits (para equipos antiguos) y dentro del folder x64 la versión 64 bits. 7-Zip es un programa de empaquetado y compresión de datos, con soporte para multitud de formatos 7z, ZIP, GZip, Bzip2 o TAR, entre los más conocidos y que destaca por su elevado ratio de compresión.

Vamos a comprimir las ROMs NES., creamos un archivo de texto clic derecho, Nuevo, Documentos de texto le ponemos el nombre de nes to zip.bat y presionamos el botón de Si.


Clic derecho, editar y escribimos, guardamos y cerramos.
for /r %%i in (*.nes) do 7za a -tzip "%%~ni.zip" "%%i"


Copiamos los archivos 7zxa.dll, 7za.exe y 7za.dll de la carpeta x64/x32 (dependiendo de tu equipo) en la carpeta de los roms y el bat.

Ejecutamos el archivo nes to zip.bat dándole doble clic

Al final se convertirán los archivos

Nes a 7z
Recomiendo la compresión en formato 7z ya que tiene más eficiente que Zip, sigue los pasos anteriores para crear un archivo bat por lotes nes to 7z.bat y escribe en él y ejecutalo.
for /r %%i in (*.nes) do 7za a -t7z "%%~ni.7z" "%%i"


Como hacerlo con las demás ROMs, la fórmula es sencilla solo hay que cambiar la extensión dentro del archivo por lotes .bat, por ejemplo para las ROMS de PC Engine / CD .pce:
De .pce a .zip
for /r %%i in (*.pce) do 7za a -tzip "%%~ni.zip" "%%i"
De .pce a .7z
for /r %%i in (*.pce) do 7za a -t7z "%%~ni.7z" "%%i"
¿Cómo funciona?
for = Cíclico
/r = Búsqueda recursiva incluyendo subdirectorios
%%i = Variable que es equivalente al nombre de cada archivo
in = conjunto de archivos a escanear en este caso *.pce
do = hacer a continuación los siguientes comandos
7za a -t[formato] paquete-comprimido archivo-a-comprimir
7za a -tzip «%%~ni.zip» «%%i» = Sintaxis para convertir a ZIP
7za a -t7z «%%~ni.7z» «%%i» = Sintaxis para convertir a 7z
En resumen toda la instrucción dicta que para cada archivo con extensión .pce en esta carpeta y en los subdirectorios ejecuta los parámetros de 7za para comprimir cada archivo en .zip o .7z
Así que solo cambia la extencion del archivo *.pce por la que quieras convertir, otro ejemplo Master System .sms
De .sms a .zip
for /r %%i in (*.sms) do 7za a -tzip "%%~ni.zip" "%%i"
De .sms a .7z
for /r %%i in (*.sms) do 7za a -t7z "%%~ni.7z" "%%i"
Descarga todos los archivos por lotes y herramientas descritas anteriormente incluyendo ISO to CSO.bat


Linux
Ubuntu
Instalamos con apt desde la Terminal si tienes una version Ubuntu anterior a la 14.04 cambia por apt-get
sudo apt install p7zip
sudo apt install p7zip-full
Otras distros:
- p7zip for Debian (and Ubuntu)
- p7zip for Fedora Core
- p7zip for Gentoo
- p7zip for AltLinux.org
- p7zip for FreeBSD
- keka – the free Mac OS X file archiver
- p7zip for Amiga
- p7zip for Solaris
- p7zip for AIX
Entramos a la carpeta donde se encuentran los ROMs, para este ejemplo los .nes., reemplaza /media/usuario/nombre_hdd/batocera/roms/nes por la ruta de la carpeta.
De .nes a .zip
cd /media/usuario/nombre_hdd/batocera/roms/nes
for i in *.nes; do 7z a -tzip "${i%.*}.zip" "$i"; done
De .nes a .7z
cd /media/usuario/nombre_hdd/batocera/roms/nes
for i in *.nes; do 7z a -t7z "${i%.*}.7z" "$i"; done