UNPKG

romtool

Version:

Collection of tools for managing your PSX rom collection

128 lines (87 loc) 4.28 kB
# romtool - CLI tool for managing your PSX ROMs A small collection of tools to help manage your PSX ROMS for use with emulators and RetroPie. NOTE: I have only tested this on Linux and Mac, I do not have a Windows machine to test on. But in theory it should work. ![romtool demo][demo] ## Commands: * `romtool merge` * Merge multi-track `.bin`'s into a single `.cue`/`.bin` pair * Move originals to subfolder * Delete the source files * Archive the source files using 7zip * `romtool playlist` * Create a `.m3u` playlist for multi-disc games * Revert playlist creation See more: * [merge](https://github.com/jordond/romtool/blob/master/docs/merge.md) * [playlist](https://github.com/jordond/romtool/blob/master/docs/playlist.md) ### TODO * Revert merge if source files were archived or moved * Figure out how to get `popstation_md` to work, so I can convert them to eboots * Rewrite in TypeScript * This was a weekend project I wrote because I needed it right away. The code can be improved, and switching to TypeScript would help. ## Reasoning: According to the [RetroPie wiki](https://github.com/retropie/retropie-setup/wiki/Playstation-1#m3u-playlist-for-multi-disc-games) in order to play multi-disc games properly within RetroArch, you need to create a playlist `.m3u` file for each multi-disc game. And in order to make a playlist for games that have multiple track files you need to merge those into a single `.bin`/`.cue` pair. So this CLI tool comes with commands to find and merge all multi-track games into a single `.bin`/`.cue` pair. And then another option to generate a playlist file for each. ## Installation: You will also need the following requirments: 1. Node v8.11.1 or higher 2. Python - If you use `romtool merge` 3. 7zip - If you use the `--archive` flag with `romtool merge` Install via `npm` ```bash npm install -g romtool # Dependencies # Mac brew install python brew install p7zip # For linux, just install via your package manager ``` ## Usage: Run `romtool -h` for the CLI usage. ``` $ romtool -h romtool <command> Commands: romtool merge [options] [--path] Merge multi-track roms into a single '.bin' + '.cue' romtool playlist [options] [--path] Create a '.m3u' playlist for multi-disc games romtool find-discs [options] Find all folders with multiple discs romtool find-tracks [options] Find all folders with games that have multiple tracks romtool scrape-archive [options] Scrape locked links from archive.org Options: --version Show version number [boolean] --verbose, -v Enable extra logging [boolean] --help, -h Show help [boolean] ``` For more information on a specific command run `romtool <command> -h` ex: `romtool merge -h` ## Contributing Feel free to fork and create a pull request! All contributions are welcome! Just clone the repo, install dependencies and start coding! ```bash git clone git@github.com:jordond/romtool cd romtool yarn # Optionally run link so you can test the CLI yarn link ``` ## Acknowledgements For merging the multi-track files, this tool relies heavily on a python script created by [@putnam](https://github.com/putnam) * See his script [here](https://github.com/putnam/binmerge) ## License ``` romtool, a CLI tool for managing PSX roms. Copyright (C) 2018 Jordon de Hoog This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ``` [demo]: https://github.com/jordond/romtool/raw/master/assets/demo-usage.gif "CLI Demo"