aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2024-04-26 13:52:24 +0300
committerJan Tuomi <jan@jantuomi.fi>2024-04-26 13:52:24 +0300
commit2b18b320e97260f1d27143a37fe14953cf62e56d (patch)
treea23a1490f27b930da534f00016707311ace82675
parentf3395cffedf488bcd1cad7e0c997742e6a227b8b (diff)
Make emulator TPU loop faster
-rw-r--r--atk16_emu/peripherals.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/atk16_emu/peripherals.py b/atk16_emu/peripherals.py
index 4ffffb2..b8a5b14 100644
--- a/atk16_emu/peripherals.py
+++ b/atk16_emu/peripherals.py
@@ -52,17 +52,18 @@ class TPU:
if not self.surface:
return
- for cy in range(2 ** 3):
- for ty in range(2 ** 5):
- for tx in range(2 ** 6):
- text_addr = (ty << 6) + tx
- char_s = self.text_mem.read(text_addr)
+ for ty in range(2 ** 5):
+ for tx in range(2 ** 6):
+ text_addr = (ty << 6) + tx
+ char_s = self.text_mem.read(text_addr)
+
+ for cy in range(2 ** 3):
char_addr = (char_s << 3) + cy
char_d = self.char_mem.read(char_addr)
+ sy = (ty << 3) + cy
for cx in range(2 ** 3):
sx = (tx << 3) + cx
- sy = (ty << 3) + cy
pixel_value_bit = (char_d >> cx) & 1
self.surface.set_at((sx, sy), (255 * pixel_value_bit, 255 * pixel_value_bit, 255))