From f66e8c480ffaf8740428ac2f52f90f4985834e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ni=C3=B1o=20D=C3=ADaz?= Date: Fri, 20 May 2022 01:03:39 +0100 Subject: [PATCH] gba: s3m2gbt: Support empty patterns --- gba/s3m2gbt/s3m2gbt.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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