Mercurial > hg > tilerswift
changeset 42:508a077b7e9d
properly handle CHR in ROMs when it's actually present
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 02 Sep 2019 09:47:01 -0400 |
parents | 342165317836 |
children | 8e3a839e410f |
files | tilerswift |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/tilerswift +++ b/tilerswift @@ -8,8 +8,15 @@ with open(filename, 'rb') as f: ines = f.read() - prg = ines[16:] - tiles = [prg[i:i+16] for i in range(0, len(prg), 16)] + header = ines[0:16] + body = ines[16:] + prg_size = header[4]*16384 + chr_size = header[5]*8192 + if chr_size == 0: # No chr, just read the whole ROM + data = body + else: + data = body[prg_size:prg_size+chr_size] + tiles = [data[i:i+16] for i in range(0, len(data), 16)] return tiles