Skip to content

Commit

Permalink
Fix: enable CRC32 checksums when patch files are provided (#1217)
Browse files Browse the repository at this point in the history
  • Loading branch information
emmercm committed Jul 17, 2024
1 parent de38745 commit d02511c
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/igir.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,11 @@ export default class Igir {
const minimumChecksum = this.options.getInputMinChecksum() ?? ChecksumBitmask.CRC32;
let matchChecksum = minimumChecksum;

if (this.options.getPatchFileCount() > 0) {
matchChecksum |= ChecksumBitmask.CRC32;
this.logger.trace('using patch files, enabling CRC32 file checksums');
}

if (this.options.shouldDir2Dat()) {
Object.keys(ChecksumBitmask)
.filter((bitmask): bitmask is keyof typeof ChecksumBitmask => Number.isNaN(Number(bitmask)))
Expand Down
2 changes: 2 additions & 0 deletions test/igir.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import Igir from '../src/igir.js';
import DATScanner from '../src/modules/datScanner.js';
import ArrayPoly from '../src/polyfill/arrayPoly.js';
import fsPoly from '../src/polyfill/fsPoly.js';
import { ChecksumBitmask } from '../src/types/files/fileChecksums.js';
import FileFactory from '../src/types/files/fileFactory.js';
import Options, { GameSubdirMode, OptionsProps, RomFixExtension } from '../src/types/options.js';
import ProgressBarFake from './console/progressBarFake.js';
Expand Down Expand Up @@ -707,6 +708,7 @@ describe('with explicit DATs', () => {
commands: ['copy', 'extract', 'test'],
dat: [path.join(inputTemp, 'dats', '*')],
input: [path.join(inputTemp, 'roms')],
inputMinChecksum: ChecksumBitmask[ChecksumBitmask.MD5].toLowerCase(),
patch: [path.join(inputTemp, 'patches')],
output: outputTemp,
dirDatName: true,
Expand Down

0 comments on commit d02511c

Please sign in to comment.