alucryd / oxyromon

Rusty ROM OrgaNizer
Other
126 stars 14 forks source link

[Feature] Convert only compatible systems #121

Closed maxexcloo closed 8 months ago

maxexcloo commented 9 months ago

When using convert-roms it would be good to be able to mass convert every compatible system only, for example converting all to RVZ will convert PlayStation Portable ISOs at the moment (or at least a way to specify system as an argument):

root@gen8:/mnt/user/media/games# docker run -i -t -v $(pwd):/data --rm ghcr.io/maxexcloo/docker-oxyromon:main convert-roms --all --format RVZ
Processing "ACT - Apricot PC Xi"
Processing "APF - Imagination Machine"
Processing "APF - MP-1000"
Processing "Acorn - Archimedes"
Processing "Acorn - Atom (Tapes) (Bitstream)"
Processing "Acorn - Risc PC (Flux)"
Processing "Acorn RISC OS - Flash Media (Misc)"
Processing "Amstrad - CPC (Flux)"

Processing "Amstrad - CPC (Misc)"

Processing "Apple - I (Tapes)"
Processing "Apple - II (A2R)"

Processing "Apple - II (WOZ)"

Processing "Apple - II (Waveform)"

Processing "Apple - II Plus (Flux)"

Processing "Apple - II Plus (WOZ)"

Processing "Apple - IIGS (A2R)"

Processing "Apple - IIGS (WOZ)"

Processing "Apple - IIe (A2R)"

Processing "Apple - IIe (Kryoflux)"

Processing "Apple - IIe (WOZ)"

Processing "Apple - Macintosh"
Processing "Apple - Macintosh (A2R)"
Processing "Apple - Macintosh (BETA) (Bitstreams)"
Processing "Apple - Macintosh (BETA) (FluxDumps)"
Processing "Apple - Macintosh (DC42)"
Processing "Apple - Macintosh (KryoFlux)"
Processing "Apple - Macintosh (Uncategorized)"
Processing "Apple - Macintosh (WOZ)"
Processing "Apple-Bandai - Pippin (Floppies)"
Processing "Arcade - Konami - FireBeat"
Processing "Arcade - Konami - System GV"
Processing "Arcade - Konami - e-Amusement"
Processing "Arcade - Namco - Sega - Nintendo - Triforce"
Processing "Arcade - PC-based"
Processing "Arcade - Sega - Chihiro"
Processing "Arcade - Sega - Lindbergh"
Processing "Arcade - Sega - Naomi"
Processing "Arcade - Sega - Naomi 2"
Processing "Arcade - Sega - RingEdge"
Processing "Arcade - Sega - RingEdge 2"
Processing "Arduboy Inc - Arduboy"

Processing "Atari - 2600"

Processing "Atari - 5200"

Processing "Atari - 7800"

Processing "Atari - 8-bit Family"

Processing "Atari - 8-bit Family (Kryoflux)"

Processing "Atari - Jaguar (ABS)"
Processing "Atari - Jaguar (COF)"
Processing "Atari - Jaguar (J64)"

Processing "Atari - Jaguar (JAG)"
Processing "Atari - Jaguar (ROM)"

Processing "Atari - Jaguar CD Interactive Multimedia System"
Processing "Atari - Lynx (BLL)"
Processing "Atari - Lynx (LNX)"
Processing "Atari - Lynx (LYX)"

Processing "Atari - ST"

Processing "Atari - ST (Flux)"

Processing "Bally - Astrocade"

Processing "Bally - Astrocade (Tapes)"
Processing "Bally - Astrocade (Tapes) (WAV)"
Processing "Bandai - Design Master Denshi Mangajuku"
Processing "Bandai - Gundam RX-78"
Processing "Bandai - Pippin"
Processing "Bandai - Playdia Quick Interactive System"
Processing "Bandai - WonderSwan"

Processing "Bandai - WonderSwan Color"

Processing "Benesse - Pocket Challenge V2"
Processing "Benesse - Pocket Challenge W"
Processing "Bit Corporation - Gamate"

Processing "Casio - Loopy (BigEndian)"
Processing "Casio - Loopy (LittleEndian)"
Processing "Casio - PV-1000"

Processing "Coleco - ColecoVision"

Processing "Commodore - Amiga"

Processing "Commodore - Amiga (Bitstream)"

Processing "Commodore - Amiga (Flux)"

Processing "Commodore - Amiga CD"
Processing "Commodore - Amiga CD32"
Processing "Commodore - Amiga CDTV"
Processing "Commodore - Commodore 64"

Processing "Commodore - Commodore 64 (PP)"

Processing "Commodore - Commodore 64 (Tapes)"

Processing "Commodore - Plus-4"

Processing "Commodore - VIC-20"

Processing "Digital Media Cartridge - Firecore"
Processing "Emerson - Arcadia 2001"

Processing "Entex - Adventure Vision"
Processing "Epoch - Game Pocket Computer"
Processing "Epoch - Super Cassette Vision"

Processing "Fairchild - Channel F"

Processing "FinalBurn Neo - Arcade Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - ColecoVision Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - FDS Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Fairchild Channel F Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Game Gear Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - MSX 1 Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Master System Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Megadrive Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - NES Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Neo Geo Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Neo Geo Pocket Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - PC-Engine Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - Sega SG-1000 Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - SuprGrafx Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - TurboGrafx 16 Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "FinalBurn Neo - ZX Spectrum Games"
Only ["ORIGINAL", "ZIP"] are supported for arcade systems
Processing "Fujitsu - FM Towns (Flux)"

Processing "Fujitsu - FM Towns (HDM)"

Processing "Fujitsu - FM-7 (Bitstream)"
Processing "Fujitsu - FM-7 (Flux)"
Processing "Fujitsu - FM-7 (Sector)"
Processing "Fujitsu - FM-7 (Tapes) (Bitstream)"
Processing "Fujitsu - FM-7 (Tapes) (Waveform)"
Processing "Fujitsu - FM-Towns"
Processing "Fujitsu - FMR50 (Flux)"
Processing "Fukutake Publishing - StudyBox"
Processing "Funtech - Super Acan"
Processing "GCE - Vectrex"

Processing "GamePark - GP2X"
Processing "GamePark - GP32"
Processing "Hartung - Game Master"

Processing "Hitachi - S1 (Waveform)"
Processing "IBM - PC and Compatibles (Digital) (Desura)"
Processing "IBM - PC and Compatibles (Digital) (Groupees)"
Processing "IBM - PC and Compatibles (Digital) (JAST USA)"
Processing "IBM - PC and Compatibles (Digital) (Misc)"
Processing "IBM - PC and Compatibles (Digital) (Unknown)"
Processing "IBM - PC and Compatibles (Digital) (Updates and DLC)"
Processing "IBM - PC and Compatibles (Flash Media)"
Processing "IBM - PC and Compatibles (Flux)"
Processing "IBM - PC and Compatibles (IPF)"
Processing "IBM - PC and Compatibles (LooseFilesArchive)"
Processing "IBM - PC and Compatibles (SCP)"
Processing "IBM - PC compatible"
Processing "Incredible Technologies - Eagle"
Processing "Interton - VC 4000"
Processing "Konami - Picno"
Processing "LeapFrog - LeapPad"
Processing "LeapFrog - Leapster Learning Game System"
Processing "Luxor - ABC 800 (Flux)"
Processing "Magnavox - Odyssey 2"

Processing "Mattel - Fisher-Price iXL"
Processing "Mattel - HyperScan"
Processing "Mattel - Intellivision"

Processing "Memorex - Visual Information System"
Processing "Microsoft - MSX"

Processing "Microsoft - MSX2"

Processing "Microsoft - Xbox"
Processing "Microsoft - Xbox (Development Kit Hard Drives)"
Processing "Microsoft - Xbox 360"
Processing "Microsoft - Xbox 360 (Development Kit Hard Drives)"
Processing "Milton-Bradley - Omni (Waveform)"
Processing "Mobile - J2ME"

Processing "Mobile - Palm OS"

Processing "Mobile - Palm OS (Digital)"

Processing "Mobile - Pocket PC"
Processing "Mobile - Pocket PC (Digital)"
Processing "Mobile - Symbian"

Processing "NEC - PC Engine - TurboGrafx-16"

Processing "NEC - PC Engine CD & TurboGrafx CD"

Processing "NEC - PC Engine SuperGrafx"

Processing "NEC - PC-88 (Flux)"

Processing "NEC - PC-88 (KryoFlux)"

Processing "NEC - PC-88 series"
Processing "NEC - PC-98"

Processing "NEC - PC-98 (Flux)"

Processing "NEC - PC-98 (Greaseweazle)"

Processing "NEC - PC-98 (HardDisk)"

Processing "NEC - PC-98 (Uncategorized)"

Processing "NEC - PC-98 series"
Processing "NEC - PC-FX & PC-FXGA"
Processing "Nichibutsu - My Vision"
Processing "Nichibutsu - My Vision (Mame)"
Processing "Nintendo - Family BASIC (Tapes)"
Processing "Nintendo - Family Computer Disk System (FDS)"

Processing "Nintendo - Family Computer Disk System (QD)"

Processing "Nintendo - Family Computer Network System"
Processing "Nintendo - Game & Watch"

Processing "Nintendo - Game Boy"

Processing "Nintendo - Game Boy Advance"

Processing "Nintendo - Game Boy Advance (Multiboot)"

Processing "Nintendo - Game Boy Advance (Play-Yan)"

Processing "Nintendo - Game Boy Advance (Video)"

Processing "Nintendo - Game Boy Advance (e-Reader)"

Processing "Nintendo - Game Boy Color"

Processing "Nintendo - GameCube"

Processing "Nintendo - Kiosk Video Compact Flash (CardImage)"
Processing "Nintendo - Kiosk Video Compact Flash (Extracted)"
Processing "Nintendo - Misc"
Processing "Nintendo - New Nintendo 3DS (Decrypted)"
Processing "Nintendo - New Nintendo 3DS (Digital) (Deprecated)"
Processing "Nintendo - New Nintendo 3DS (Encrypted)"
Processing "Nintendo - Nintendo 3DS (Decrypted)"

Processing "Nintendo - Nintendo 3DS (Digital) (Deprecated)"
Processing "Nintendo - Nintendo 3DS (Digital) (Dev ROMs)"
Processing "Nintendo - Nintendo 3DS (Digital) (Pre-Install)"
Processing "Nintendo - Nintendo 3DS (Encrypted)"

Processing "Nintendo - Nintendo 64 (BigEndian)"

Processing "Nintendo - Nintendo 64 (ByteSwapped)"

Processing "Nintendo - Nintendo 64 (Mario no Photopi SmartMedia)"

Processing "Nintendo - Nintendo 64DD"

Processing "Nintendo - Nintendo DS (DSvision SD cards)"
Processing "Nintendo - Nintendo DS (Decrypted)"

Processing "Nintendo - Nintendo DS (Download Play)"
Processing "Nintendo - Nintendo DS (Encrypted)"
Processing "Nintendo - Nintendo DSi (Decrypted)"
Processing "Nintendo - Nintendo DSi (Digital)"

Processing "Nintendo - Nintendo DSi (Digital) (CDN) (Decrypted)"

Processing "Nintendo - Nintendo DSi (Encrypted)"
Processing "Nintendo - Nintendo Entertainment System (Headered)"

Processing "Nintendo - Nintendo Entertainment System (Headerless)"

Processing "Nintendo - Nintendo GameCube (NPDP Carts)"
Processing "Nintendo - Pokemon Mini"

Processing "Nintendo - Satellaview"

Processing "Nintendo - Sufami Turbo"

Processing "Nintendo - Super Nintendo Entertainment System"

Processing "Nintendo - Virtual Boy"

Processing "Nintendo - Wallpapers"
Processing "Nintendo - Wii"

Processing "Nintendo - Wii (Development Kit Hard Drives)"
Processing "Nintendo - amiibo"
Processing "Nokia - N-Gage (WIP)"
Processing "Ouya - Ouya"
Processing "Palm"
Processing "Panasonic - 3DO Interactive Multiplayer"
Processing "Philips - CD-i"
Processing "Philips - Videopac+"

Processing "Photo CD"
Processing "PlayStation GameShark Updates"
Processing "Project EGG"
Processing "RCA - Studio II"
Processing "SNK - Neo Geo CD"
Processing "SNK - NeoGeo Pocket"

Processing "SNK - NeoGeo Pocket Color"

Processing "Sanyo - MBC-550 (Flux)"
Processing "Sega - 32X"

Processing "Sega - Beena"
Processing "Sega - Dreamcast"

Processing "Sega - Dreamcast (Development Kit Hard Drives)"
Processing "Sega - Dreamcast (Visual Memory Unit)"
Processing "Sega - Game Gear"

Processing "Sega - Master System - Mark III"

Processing "Sega - Mega CD & Sega CD"

Processing "Sega - Mega Drive - Genesis"

Processing "Sega - PICO"
Processing "Sega - Prologue 21"
Processing "Sega - SG-1000"

Processing "Sega - Saturn"

Processing "Seta - Aleck64 (BigEndian)"
Processing "Seta - Aleck64 (ByteSwapped)"
Processing "Sharp - MZ-2200 (Waveform)"
Processing "Sharp - MZ-700 (Waveform)"
Processing "Sharp - X1 (Waveform)"

Processing "Sharp - X68000 (Flux)"

Processing "Sinclair - ZX Spectrum +3"

Processing "Sony - PlayStation"

Processing "Sony - PlayStation (PS one Classics) (PSN)"
Processing "Sony - PlayStation 2"
Processing "Sony - PlayStation 3"
Processing "Sony - PlayStation 3 (Development Kit Hard Drives) (Decrypted)"
Processing "Sony - PlayStation Mobile (PSN)"
Processing "Sony - PlayStation Portable"
Creating "Dissidia 012 - Duodecim Final Fantasy (USA) (En,Fr,De,Es,It).rvz"
⠚ Creating RVZ
Error: SimpleError { err: "sh: 1: xdg-mime: not found\nWarning: The input file is not a GC/Wii disc image. Continuing anyway.\n" }
alucryd commented 8 months ago

While not impossible, I would need to hardcode part or all of a system name in the code to associate it with a specific format, it will not be easy to maintain. The next best thing would indeed be to accept a string and only convert systems that contain it.

alucryd commented 8 months ago

Flag added in https://github.com/alucryd/oxyromon/commit/ee2a69bc661c44cdc5c6174288b870a04b9196c4

maxexcloo commented 8 months ago

Does this support selecting multiple systems? I only ask because it would be good to be able to bulk convert all CHD systems at once for example.

alucryd commented 8 months ago

It only matches systems containing the single input string, however I could easily allow specifying -s multiple times so you can select as many as you want. I'll reopen and do that :)

alucryd commented 8 months ago

There you go: https://github.com/alucryd/oxyromon/commit/eb747d521bd476ef1702a5563a8ace9e436048eb -s can be specified multiple times now, please let me know how it goes, docker should be up in a moment.