Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs: update #1336

Merged
merged 2 commits into from
Sep 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/advanced/temp-dir.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ Igir will use your operating system's temporary directory for these files by def

## RAM disks

### :simple-windowsxp: Windows
### :fontawesome-brands-windows: Windows

There are no tools built-in to Windows that can create a RAM disk. The open source [ImDisk Toolkit](https://sourceforge.net/projects/imdisk-toolkit/) is a popular option.

### :simple-apple: macOS
### :fontawesome-brands-apple: macOS

The built-in `diskutil` and `hdiutil` tools can be used to create and mount a RAM disk. Alex T has some instructions in a [GitHub gist](https://gist.github.com/htr3n/344f06ba2bb20b1056d7d5570fe7f596).

### :simple-linux: Linux
### :fontawesome-brands-linux: Linux

`tmpfs` is a tool that comes with most Linux distributions that is used for creating RAM disks. Oracle has [a guide](https://docs.oracle.com/cd/E18752_01/html/817-5093/fscreate-99040.html) on the tool.
8 changes: 6 additions & 2 deletions docs/alternatives.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ There are a few different popular ROM managers that have similar features:
| Arcade: CHD disk inclusion | ✅ by default, can be turned off ([arcade docs](usage/arcade.md)) | ✅ by default, can be turned off | ❓ | ❓ |
| Arcade: sample inclusion | ❌ | ❌ | ✅ | ❓ |
| Archives: extraction formats | ✅ many formats ([reading archives docs](input/reading-archives.md)) | ⚠️ `.zip`, `.7z` (natively) | ✅ `.zip`, `.7z` (via `7z`), `.rar` (via `rar`) | ⚠️ `.zip`, `.7z` |
| Archives: `.chd` support | ⚠️ via `chdman` (bundled) | ✅ v1-5 natively | ⚠️ via `chdman` | ⚠️ v1-4 natively |
| Archives: `.chd` support | ⚠️ via `chdman`<sup>1</sup> (bundled) | ✅ v1-5 natively | ⚠️ via `chdman`<sup>1</sup> | ⚠️ v1-4 natively |
| Archives: `.cso` & `.zso` support | ⚠️ via `maxcso` (bundled) | ❌ | ❌ | ❌ |
| Archives: `.nkit.iso` support | ⚠️ matching but no extraction [GameCube docs](usage/console/gamecube.md#nkit) | ❌ | ❌ | ❌ |
| Archives: `.nkit.iso` support | ⚠️ matching but no extraction/inflation ([GameCube docs](usage/console/gamecube.md#nkit)) | ❌ | ❌ | ❌ |
| Archives: creation formats | ❌ `.zip` only by design ([writing archives docs](output/writing-archives.md)) | ⚠️ `.zip` (TorrentZip), `.7z` (RV7Z) | ✅ `.zip`, `.7z`, `.rar` | ⚠️ `.zip`, `.7z` |
| Archives: contents checksums | ✅ when needed ([reading archives docs](input/reading-archives.md)) | ⚠️ requires "files only" mode | ⚠️ if DAT has forcepacking=unzip | ❓ |
| Archives: automatic extension correction | ✅ | ❌ | ❌ | ❌ |
Expand All @@ -45,6 +45,10 @@ There are a few different popular ROM managers that have similar features:
| Output: subdirectory customization | ✅ [many options](output/path-options.md) | ⚠️ depends on DAT organization | ❌ | ❌ |
| Output: create single archive for DAT | ✅ | ✅ | ❌ | ❌ |

<small>
<sup>1</sup> requires you to install SDL2 manually, see the [chdman-js README](https://github.com/emmercm/chdman-js#readme).
</small>

!!! note

Just like Igir, other ROM managers that are in active development are likely to release new features often. The above table is not guaranteed to be perfectly up-to-date, it is just a best effort.
Expand Down
4 changes: 2 additions & 2 deletions docs/dats/dir2dat.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ Igir uses the following rules when creating dir2dat DAT files:

If multiple input paths overlap, such as:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir dir2dat ^
--input "C:\ROMs" ^
--input "C:\ROMs\NES"
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir dir2dat \
Expand Down
4 changes: 2 additions & 2 deletions docs/dats/fixdats.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The `fixdat` command creates a [Logiqx XML](http://www.logiqx.com/DatFAQs/) DAT

For example:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy zip fixdat ^
Expand All @@ -20,7 +20,7 @@ For example:
--fixdat
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy zip fixdat \
Expand Down
4 changes: 2 additions & 2 deletions docs/dats/processing.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ There have been a few DAT-like formats developed over the years. Igir supports t

Instead of exporting the ListXML to a file yourself, you can also specify a MAME executable for the DAT path and then Igir is smart enough to parse it:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

Windows is fairly easy, MAME is officially compiled for Windows and downloads can be found on many mirror sites.

```batch
igir [commands..] --dat "mame0258b_64bit.exe" --input <input>
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

MAME isn't officially compiled for macOS, you will have to use a third-party release such as [SDL MAME](https://sdlmame.lngn.net/).

Expand Down
6 changes: 5 additions & 1 deletion docs/input/reading-archives.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Igir supports most common archive formats:
| Extension | Contains file CRC32s | Igir can extract without a third-party binary | Igir can checksum without temporary files |
|------------------------------------------------------------------|----------------------|-----------------------------------------------|-------------------------------------------|
| `.7z` | ✅ | ❌ `7za` | ❌ |
| `.chd` | ❌ SHA1 | ❌ `chdman` | ❌ |
| `.chd` | ❌ SHA1 | ❌ `chdman`<sup>1</sup> | ❌ |
| `.cso`, `.zso`, `.dax` | ❌ | ❌ `maxcso` | ⚠️ CRC32 only |
| `.gz`, `.gzip` | ❌ CRC16 | ❌ `7za` | ❌ |
| `.nkit.iso` ([GameCube docs](../usage/console/gamecube.md#nkit)) | ✅ | ❌ no extraction support | ✅ |
Expand All @@ -21,6 +21,10 @@ Igir supports most common archive formats:
| `.zip.001` | ✅ | ❌ `7za` | ❌ |
| `.zipx` | ✅ | ❌ `7za` | ❌ |

<small>
<sup>1</sup> requires you to install SDL2 manually, see the [chdman-js README](https://github.com/emmercm/chdman-js#readme).
</small>

**You should prefer archive formats that have CRC32 checksum information for each file.**

By default, Igir uses CRC32 information to [match ROMs](../roms/matching.md) to DAT entries. If an archive already contains CRC32 information for each file, then Igir doesn't need to extract each file and compute its CRC32. This can save a lot of time on large archives.
Expand Down
5 changes: 3 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Installation

Igir is supported on :simple-windowsxp: Windows, :simple-apple: macOS, :simple-linux: Linux, and every other operating system that [Node.js](https://nodejs.org) supports.
Igir is supported on :fontawesome-brands-windows: Windows, :fontawesome-brands-apple: macOS,:fontawesome-brands-linux: Linux, and every other operating system that [Node.js](https://nodejs.org) supports.

There are a few different installation options offered for Igir with varying levels of technical complexity. Every option will require some baseline understanding of command-line interfaces (CLIs).

Expand All @@ -27,7 +27,7 @@ npx igir@latest copy extract --dat *.dat --input ROMs/ --output ROMs-Sorted/ --d

You can alias the `npx` command in your macOS or Linux [dotfiles](https://missing.csail.mit.edu/2019/dotfiles/) like this:

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```bash
alias igir="npx igir@latest"
Expand Down Expand Up @@ -69,5 +69,6 @@ brew upgrade igir
## Via downloaded executable

[![GitHub: release](https://img.shields.io/github/v/release/emmercm/igir?color=%236e5494&logo=github&logoColor=white)](https://github.com/emmercm/igir/releases/latest)
![Node.js](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.npmjs.org%2Figir%2Flatest&query=volta.node&logo=node.js&logoColor=white&label=Node.js&color=66cc33)

If you don't want to download Node.js, you can download executables for various OSes from the [GitHub releases](https://github.com/emmercm/igir/releases) page.
8 changes: 4 additions & 4 deletions docs/output/cleaning.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ In other words, `games/{mister}` is _not_ equivalent to `games/*`. Igir will _no

If you want to clean _every_ directory in `games/`, you could specify it as both the `--input <path>` and `--output <path>`:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir move clean --dat "*.dat" --input "games\" --output "games\{mister}\"
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir move clean --dat "*.dat" --input "games/" --output "games/{mister}/"
Expand Down Expand Up @@ -61,13 +61,13 @@ The `--clean-dry-run` option exists to see what paths `igir clean` would delete,

Usage:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir [commands..] clean [options] --clean-dry-run -vv
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir [commands..] clean [options] --clean-dry-run -vv
Expand Down
28 changes: 14 additions & 14 deletions docs/output/path-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ ROMs-Input/

When combined with a [DAT](../dats/introduction.md), the ROMs will be written with a standardized name, but the output subdirectory structure will match the input:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -40,7 +40,7 @@ When combined with a [DAT](../dats/introduction.md), the ROMs will be written wi
--dir-mirror
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down Expand Up @@ -101,7 +101,7 @@ ROMs-Input/

The ROMs will be grouped by their DAT name in the output directory:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -111,7 +111,7 @@ The ROMs will be grouped by their DAT name in the output directory:
--dir-dat-name
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down Expand Up @@ -159,7 +159,7 @@ ROMs-Output/

Similar to `--dir-dat-name`, this option will append the matching [DAT](../dats/introduction.md)'s description to each file.

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -169,7 +169,7 @@ Similar to `--dir-dat-name`, this option will append the matching [DAT](../dats/
--dir-dat-description
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down Expand Up @@ -218,7 +218,7 @@ ROMs-Input/

The ROMs will be grouped together by their first letter in the output directory:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -227,7 +227,7 @@ The ROMs will be grouped together by their first letter in the output directory:
--dir-letter
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down Expand Up @@ -273,7 +273,7 @@ This option controls the number of leading letters to use for the `--dir-letter`

For example, if we increase the number of letters used for subdirectory names from the above example, then the output would be:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -283,7 +283,7 @@ For example, if we increase the number of letters used for subdirectory names fr
--dir-letter-count 3
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down Expand Up @@ -346,7 +346,7 @@ ROMs-Input/

If we limit the number of files per letter folder, then the output would be:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -356,7 +356,7 @@ If we limit the number of files per letter folder, then the output would be:
--dir-letter-limit 5
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down Expand Up @@ -418,7 +418,7 @@ ROMs-Input/

We can group the games into letter ranges, with a max of 10 games in each subdirectory like this:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy ^
Expand All @@ -429,7 +429,7 @@ We can group the games into letter ranges, with a max of 10 games in each subdir
--dir-letter-group
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy \
Expand Down
8 changes: 4 additions & 4 deletions docs/output/reporting.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ At least one DAT is required for the `igir report` command to work, otherwise Ig

The `igir report` command can be specified on its own without any [writing command](../commands.md) (i.e. `igir copy`, `igir move`, etc.) to report on an existing collection. This causes Igir to operate in a _read-only_ mode, no files will be copied, moved, or deleted. For example:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
> igir.exe report --dat *.dat --input ROMs\
Expand All @@ -24,7 +24,7 @@ The `igir report` command can be specified on its own without any [writing comma
igir_2023-03-29T18;26;00-04;00.csv
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
$ igir report --dat *.dat --input ROMs/
Expand Down Expand Up @@ -72,7 +72,7 @@ The report output filename supports a version of [Moment.js symbols](https://mom

Here are some example usages:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
> igir.exe report --dat *.dat --input ROMs\ --report-output ".\report.csv"
Expand All @@ -84,7 +84,7 @@ Here are some example usages:
REM /igir/1681515048.csv
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
$ igir report --dat *.dat --input ROMs/ --report-output "./report.csv"
Expand Down
4 changes: 2 additions & 2 deletions docs/output/tokens.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ See [output path tokens](./path-options.md) for other options that will further

For example, if you want to group all ROMs based on their region, you would specify:

=== ":simple-windowsxp: Windows"
=== ":fontawesome-brands-windows: Windows"

```batch
igir copy extract ^
Expand All @@ -15,7 +15,7 @@ For example, if you want to group all ROMs based on their region, you would spec
--output "ROMs-Sorted\{region}\"
```

=== ":simple-apple: macOS"
=== ":fontawesome-brands-apple: macOS"

```shell
igir copy extract \
Expand Down
Loading
Loading