Устраняем хаос. Сортировка ромов для эмуляторов

Сортировка ромов для эмуляторов является настоящим кошмаром. Скачивая полные ром-сеты приставочных игр, вы неизбежно столкнетесь с проблемой огромного количества лишних дубликатов одних и тех же игр. Отсеивание вручную займет большое количество времени. Обычные программы удаления дубликатов не смогут решить эту задачу. Справиться этим ужасом помогут программы и скрипты, рассматриваемые в этой статье. Наведение порядка в этом хаосе упростит создание своей игротеки в EmulationStation и прочих ром-менеджерах.

Сортировка ромов для эмуляторов

Rom Deleter — удаление ненужных ромов

Rom Deleter — простая утилита, которая поможет удалить ненужные ромы, с ненужным переводом, овердампы, плохие дампы, пиратки и хаки. Программа фильтрует ромы по заданным параметрам, которые настраиваются в файле config.txt. Все ромы должны лежать в одной директории и быть не заархивированы. Указываем эту директорию, жмем кнопку «List Roms», проверяем результаты и удаляем ненужное.

Внешний вид Rom Deleter

Скачать Rom Deleter можно здесь.

RomSort — сортировка ромов

RomSort — это небольшая утилита для сортировки ромов в подкаталоги по алфавиту. Она была разработана, чтобы помочь в организации и просмотре больших коллекций ромов, особенно на флеш-картах.

Чтобы начать использовать программу нажмите кнопку «Open» и выберите корневой каталог, который вы хотите отсортировать. Файловая иерархия должна отображаться в разделе «Original» в левой части приложения. Установите «Max Directories» в нижней части приложения на нужное количество подкаталогов по алфавиту. Проверьте иерархию файлов, которая отображается в «Sort Preview» в правой части приложения. Нажмите кнопку «Sort», чтобы выполнить сортировку.

Важно! RomSort создаст совершенно новую иерархию каталогов, точно такую как показано в разделе предварительного просмотра. Это удалит все другие существующие каталоги. Обязательно удостоверьтесь, что предварительный просмотр – это именно то, что вам нужно, прежде чем нажимать кнопку «Sort».

Поскольку RomSort реорганизует файлы в подкаталоги по алфавиту, требуется, чтобы каждый файл начинался с уникального имени. В противном случае RomSort будет перезаписывать файлы по мере их перемещения. Такие конфликты имен (и все их родительские каталоги) помечаются красным цветом в разделе «Original». Вам нужно будет переименовать или удалить конфликтующие файлы перед сортировкой. Это можно сделать с помощью доступных операций, если щелкнуть правой кнопкой мыши по такому элементу («Rename» или «Delete»). Также можно исправить положение вручную в проводнике. Если вы внесли изменения в файлы на диске вручную, обязательно запустите «File», а затем «Refresh», чтобы RomSort мог увидеть изменения.

Внешний вид RomSort

RomSort можно установить из магазина Microsoft Store или с репозитория GitHub.

Сортировка ромов командным bat-файлом

Командная строка

Создадим свой командный файл, который сортирует ромы в три основные папки ORIG, RUS и ENG.
В папке ORIG располагаются только хорошие дампы ромов. В директорию RUS помещаются ромы, переведенные на русский язык. Ромы с английским переводом будут лежать в папке ENG. Помещаем следующий код в файл с расширением .bat:

md .\ENG\#
md .\RUS\#
md .\ORIG\#
move 0*[!].* .\ORIG\#
move 0*[t+rus*.* .\RUS\#
move 0*[t+eng*.* .\ENG\#
move 1*[!].* .\ORIG\#
move 1*[t+rus*.* .\RUS\#
move 1*[t+eng*.* .\ENG\#
move 2*[!].* .\ORIG\#
move 2*[t+rus*.* .\RUS\#
move 2*[t+eng*.* .\ENG\#
move 3*[!].* .\ORIG\#
move 3*[t+rus*.* .\RUS\#
move 3*[t+eng*.* .\ENG\#
move 4*[!].* .\ORIG\#
move 4*[t+rus*.* .\RUS\#
move 4*[t+eng*.* .\ENG\#
move 5*[!].* .\ORIG\#
move 5*[t+rus*.* .\RUS\#
move 5*[t+eng*.* .\ENG\#
move 6*[!].* .\ORIG\#
move 6*[t+rus*.* .\RUS\#
move 6*[t+eng*.* .\ENG\#
move 7*[!].* .\ORIG\#
move 7*[t+rus*.* .\RUS\#
move 7*[t+eng*.* .\ENG\#
move 8*[!].* .\ORIG\#
move 8*[t+rus*.* .\RUS\#
move 8*[t+eng*.* .\ENG\#
move 9*[!].* .\ORIG\#
move 9*[t+rus*.* .\RUS\#
move 9*[t+eng*.* .\ENG\#

md .\ENG\A
md .\RUS\A
md .\ORIG\A
move a*[!].* .\ORIG\a
move a*[t+rus*.* .\RUS\a
move a*[t+eng*.* .\ENG\a

md .\ENG\B
md .\RUS\B
md .\ORIG\B
move b*[!].* .\ORIG\b
move b*[t+rus*.* .\RUS\b
move b*[t+eng*.* .\ENG\b

md .\ENG\C
md .\RUS\C
md .\ORIG\C
move c*[!].* .\ORIG\c
move c*[t+rus*.* .\RUS\c
move c*[t+eng*.* .\ENG\c

md .\ENG\C
md .\RUS\C
md .\ORIG\C
move c*[!].* .\ORIG\c
move c*[t+rus*.* .\RUS\c
move c*[t+eng*.* .\ENG\c

md .\ENG\D
md .\RUS\D
md .\ORIG\D
move d*[!].* .\ORIG\d
move d*[t+rus*.* .\RUS\d
move d*[t+eng*.* .\ENG\d

md .\ENG\E
md .\RUS\E
md .\ORIG\E
move e*[!].* .\ORIG\e
move e*[t+rus*.* .\RUS\e
move e*[t+eng*.* .\ENG\e

md .\ENG\F
md .\RUS\F
md .\ORIG\F
move f*[!].* .\ORIG\f
move f*[t+rus*.* .\RUS\f
move f*[t+eng*.* .\ENG\f

md .\ENG\G
md .\RUS\G
md .\ORIG\G
move g*[!].* .\ORIG\g
move g*[t+rus*.* .\RUS\g
move g*[t+eng*.* .\ENG\g

md .\ENG\H
md .\RUS\H
md .\ORIG\H
move h*[!].* .\ORIG\h
move h*[t+rus*.* .\RUS\h
move h*[t+eng*.* .\ENG\h

md .\ENG\I
md .\RUS\I
md .\ORIG\I
move i*[!].* .\ORIG\i
move i*[t+rus*.* .\RUS\i
move i*[t+eng*.* .\ENG\i

md .\ENG\J
md .\RUS\J
md .\ORIG\J
move j*[!].* .\ORIG\j
move j*[t+rus*.* .\RUS\j
move j*[t+eng*.* .\ENG\j

md .\ENG\K
md .\RUS\K
md .\ORIG\K
move k*[!].* .\ORIG\k
move k*[t+rus*.* .\RUS\k
move k*[t+eng*.* .\ENG\k

md .\ENG\L
md .\RUS\L
md .\ORIG\L
move l*[!].* .\ORIG\l
move l*[t+rus*.* .\RUS\l
move l*[t+eng*.* .\ENG\l

md .\ENG\M
md .\RUS\M
md .\ORIG\M
move m*[!].* .\ORIG\m
move m*[t+rus*.* .\RUS\m
move m*[t+eng*.* .\ENG\m

md .\ENG\N
md .\RUS\N
md .\ORIG\N
move n*[!].* .\ORIG\n
move n*[t+rus*.* .\RUS\n
move n*[t+eng*.* .\ENG\n

md .\ENG\O
md .\RUS\O
md .\ORIG\O
move o*[!].* .\ORIG\o
move o*[t+rus*.* .\RUS\o
move o*[t+eng*.* .\ENG\o

md .\ENG\P
md .\RUS\P
md .\ORIG\P
move p*[!].* .\ORIG\p
move p*[t+rus*.* .\RUS\p
move p*[t+eng*.* .\ENG\p

md .\ENG\Q
md .\RUS\Q
md .\ORIG\Q
move q*[!].* .\ORIG\q
move q*[t+rus*.* .\RUS\q
move q*[t+eng*.* .\ENG\q

md .\ENG\R
md .\RUS\R
md .\ORIG\R
move r*[!].* .\ORIG\r
move r*[t+rus*.* .\RUS\r
move r*[t+eng*.* .\ENG\r

md .\ENG\S
md .\RUS\S
md .\ORIG\S
move s*[!].* .\ORIG\s
move s*[t+rus*.* .\RUS\s
move s*[t+eng*.* .\ENG\s

md .\ENG\T
md .\RUS\T
md .\ORIG\T
move t*[!].* .\ORIG\t
move t*[t+rus*.* .\RUS\t
move t*[t+eng*.* .\ENG\t

md .\ENG\U
md .\RUS\U
md .\ORIG\U
move u*[!].* .\ORIG\u
move u*[t+rus*.* .\RUS\u
move u*[t+eng*.* .\ENG\u

md .\ENG\V
md .\RUS\V
md .\ORIG\V
move v*[!].* .\ORIG\v
move v*[t+rus*.* .\RUS\v
move v*[t+eng*.* .\ENG\v

md .\ENG\W
md .\RUS\W
md .\ORIG\W
move w*[!].* .\ORIG\w
move w*[t+rus*.* .\RUS\w
move w*[t+eng*.* .\ENG\w

md .\ENG\X
md .\RUS\X
md .\ORIG\X
move x*[!].* .\ORIG\x
move x*[t+rus*.* .\RUS\x
move x*[t+eng*.* .\ENG\x

md .\ENG\Y
md .\RUS\Y
md .\ORIG\Y
move y*[!].* .\ORIG\y
move y*[t+rus*.* .\RUS\y
move y*[t+eng*.* .\ENG\y

md .\ENG\Z
md .\RUS\Z
md .\ORIG\Z
move z*[!].* .\ORIG\z
move z*[t+rus*.* .\RUS\z
move z*[t+eng*.* .\ENG\z

Полученный файл кладем в папку с ромами. Все ромы должны лежать в одной директории и быть не заархивированы. Запускаем скрипт, происходит сортировка ромов по основным папкам и по алфавиту. После отработки скрипта могут появиться пустые каталоги.

Помещаем следующий код в файл с расширением .bat и кладем рядом с предыдущим файлом:

goto start
:fn1
for /d %%i in ("%~1\*") do (call :fn1 "%%i" & rd /q "%%i")
exit /b
:start
call :fn1 ".\"

После запуска скрипт удалит лишние пустые каталоги. Также для этой цели можно использовать программу Remove Empty Directories.

GoodMerge RomSets Sorter & Packer — наводим порядок в коллекции ромов

GoodMerge RomSets Sorter & Packer

Популярность GoodTools определила способ распространения ромов. Вместо единичных файлов или их коллекций используются «goodsets»-архивы.

Утилита GoodMerge RomSets Sorter & Packer призвана устранить бардак, творящийся внутри «goodsets»-архивов, а также рассортировать игры по категориям и подружить архивы с ром-менеджерами. Утилита работает с любыми скаченными с торрентов коллекциями, объединенными программой GoodMerge в 7z или Zip-архивы. На данный момент поддерживаются следующие платформы: Nintendo Entertainment System, Super Nintendo Entertainment System, Sega Mega Drive / Genesis и Sega Master System.

Утилита сканирует имеющиеся архивы, достаёт из архива все ромы, сортирует ромы по подпапкам (хаки, бета-версии, плохие и пиратские дампы…). Можно отключать ромы того или иного типа, таким образом оставляя только то, что вам нужно.

Мастер сортировки ромов GoodMerge RomSets Sorter & Packer

GoodMerge RomSets Sorter & Packer отбирает лучшую версию игры и лучший перевод (если он есть). Эти файлы помещаются в корень сортировки. Как правило, лучшей считается чистая версия официального региона с правильным именем и наиболее свежей ревизии без хаков и фиксов. Если игра пиратская, то также ищется наиболее чистая версия. Аналогично работает и поиск перевода. В настройках утилиты задаются языки (и их приоритет), участвующие в поиске (по умолчанию — русский и английский).

Затем ромы пакуются обратно в архив, и мы получаем удобные и читабельные версии каждой игры без необходимости рыться в куче хлама.

На основе анализа ромов утилита также производит сортировку всех архивов по папкам, оставляя в общей папке только официальные игры. Программа отделяет в подпапки прочие файлы.

Помимо этого, утилита может исправлять имена архивов для соответствия оригинальному (либо наиболее популярному) названию игры. А может и заменять азиатские названия на распространённые английские, если игра на английском или имеет неофициальный перевод.

Скачать программу можно с форума.

UnGoodMerge — преобразование и наведение порядка в архивах

UnGoodMerge позволяет выбрать папку, содержащую «goodsets»-архивы. Затем она просматривает каждый из них, выполняет необязательные фильтры, чтобы отсортировать нежелательные вещи, такие как плохие дампы, позволяет пользователю выбирать, какие файлы использовать, извлекает выбранные файлы и, при необходимости, повторно архивирует каждый из них. Эта программа делает очень удобным преобразование большого количества архивов, объединенных программой GoodMerge в форматы, которые могут читать эмуляторы.

В процессе работы программа дает выбрать наиболее подходящий ром в сомнительных ситуациях и создает командный файл .bat, запуск которого осуществит копирование и архивацию отсортированных ромов в указанный каталог (рекомендую выбирать отличный от исходного).

Внешний вид UnGoodMerge

Программа требует наличия архиватора 7-Zip. Скачать UnGoodMerge можно здесь.

Don’s HyperSpin Tools — набор утилит от HyperSpin

HyperSpin

HyperSpin — это удобная оболочка для создания своего аркадного автомата, своего рода аналог EmulationStation. Don’s Hyperspin Tools — это набор утилит, созданный для HyperSpin, но мы будем использовать некоторые его инструменты для переименования ромов. Нам понадобится Create New HyperList для конвертации XMDB -файлов, содержащих информацию о ромах, в XML-файл.

Create New HyperList

XMDB-файлы можно раздобыть на этом сайте. Можно обойтись без них, скачав сам набор утилит Don’s HyperSpin Tools и готовые XML-листы с сайта Hyperspin.

Внешний вид Create New HyperList
Rename ROMs

Скармливаем папку с ромами и XML-лист нужной системы утилите Rename ROMs, делаем необходимые настройки (сканировать подпапки, использовать контрольные суммы CRC или нечеткое совпадение). Сканируем и после проверки переименовываем файлы. Имена ромов, которые не удалось распознать, можно получить из названия файла. Вот и все, ребята!

Внешний вид Rename ROMs

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *