diff --git a/gba/s3m2gbt/s3m2gbt.py b/gba/s3m2gbt/s3m2gbt.py index d7c9995..631ce5e 100755 --- a/gba/s3m2gbt/s3m2gbt.py +++ b/gba/s3m2gbt/s3m2gbt.py @@ -114,6 +114,15 @@ def __init__(self, header, channel, note, instrument, volume, class S3MFilePattern(S3MFormatReader): def __init__(self, data, offset): + + # Check if we have asked to generate an empty pattern + if data == None: + cell = S3MFilePatternCell(0, 0, 0, 0, 0, 0, 0) + self.cells = [] + for i in range(0, 64): + self.cells.append(cell) + return + self.data = data self.read_ptr = offset @@ -241,7 +250,8 @@ def __init__(self, data): if offset != 0: self.patterns[i] = S3MFilePattern(self.data, offset) else: - raise S3MFormatError(f"Empty pattern: {i}") + # A NULL pointer means that the pattern is empty + self.patterns[i] = S3MFilePattern(None, 0) # The file data is no longer needed