Skip to content

Make ROMs smaller, compatible with emulators and/or the console.

License

Notifications You must be signed in to change notification settings

Linx-ESP/auto-compress-roms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIP, but usable

Save space on your games ROMs

Most emulators or consoles allow to use different formats for games so you don't have to storage a full 8GB from a DVD since most of it will be blank.

You will probably want to use Nkit2 once it releases.

I will try to properly comment the code with sources and reasoning for those who want to work or fork it.

What it's meant to do

  • Take input file
    • .iso
  • Compress and output
    • GameCube: .ciso
    • Wii: .wbfs
    • PS2: .zso
    • ...
  • Take compressed rom and move it to the correct folder (meant for games over SMB or loaders that require certain folder structure).
  • Keeps original .iso (you can manually edit the script to delete)

Other formats (To do)

  • Xbox 360 - GoD (Games on Demand)
    • From extracted/folder format and .iso
    • Compatible with OG Xbox too (playing OG Xbox games on X360 console)
  • CEMU: .wua
  • NDS + 3DS: trimm .nds & .3ds
    • Usually you do this at the time of dumping, might not do it.

How to use

APT based distros (Ubuntu, Debian...)

Run curl -sSL https://raw.githubusercontent.com/Linx-ESP/auto-compress-roms/main/bash-scripts/install.sh | sudo bash

  • Requires SUDO

Set paths, run command: compressroms-setup

Run the command (might need relogin)
compressroms
compressroms gamecube
compressroms wii
compressroms ps2

  • Cron jobs can help automate this. Careful in keeping the original files, better to delete them.

Notes

  • Failed to detect file type of
    • This is not a problem. Unp (unpack) will output this for each file that is not a .zip/.tar/.rar/...
  • Multidisc games
    • Testing

Automatic paths

Import path (set using compressroms-setup)
    ../gc
    ../wii
    ../ps2

Output path (set using compressroms-setup)
    ../PS2/OpenPS2Loader (For OPL SMB Share)
        ../DVD
        ../CD
    ../Wii
    ../GameCube

You can point certains folder to a removable drive, such as a usb hard drive for the Wii.

  • Edit /etc/fstab so it mounts the drive with the same path if needed.

Dependencies (auto-installed)

TO DO

  • Setup individiual path in a more interactive way
    • Full TUI
  • Dolphin .rvz support improved
  • Integrate with cockpit

More info

  • It could be done so it identifies the console and executes the correct script/conversion by itself using Redump and No-Intro hashes, requiring only one input folder. But that's above what I can do.
  • Nkit seems viable via Mono on Linux, but doesn't seem to be widely use today. I'll probably not integrated it here.
  • Script-Server might be useful.
    • RetroNAS caused me issues as I use my NAS for more than that, but useful for a dedicated server.
  • Might end up in a docker container, probably if I add full Dolphin support. For now, ansible + bash scripts go brrr...

About

Make ROMs smaller, compatible with emulators and/or the console.

Resources

License

Stars

Watchers

Forks