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