diff --git a/dbg_speedrun.py b/dbg_speedrun.py
new file mode 100644
index 0000000..a1dccf9
--- /dev/null
+++ b/dbg_speedrun.py
@@ -0,0 +1,112 @@
+# synacor.py - An implementation of the Synacor Challenge
+# Copyright © 2017 RunasSudo
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+
+import io
+import sys
+
+transcript = """take tablet
+use tablet
+doorway
+north
+north
+bridge
+continue
+down
+east
+take empty lantern
+west
+west
+passage
+ladder
+west
+south
+north
+take can
+use can
+use lantern
+west
+ladder
+darkness
+continue
+west
+west
+west
+west
+north
+take red coin
+north
+west
+take blue coin
+up
+take shiny coin
+down
+east
+east
+take concave coin
+down
+take corroded coin
+up
+west
+use blue coin
+use red coin
+use shiny coin
+use concave coin
+use corroded coin
+north
+take teleporter
+use teleporter
+.dbg_teleporter
+use teleporter
+north
+north
+north
+north
+north
+north
+north
+north
+north
+take orb
+north
+east
+east
+north
+west
+south
+east
+east
+west
+north
+north
+east
+vault
+take mirror
+use mirror
+"""
+
+# Read code into memory
+SYN_PTR = 0
+with open('challenge.bin', 'rb') as data:
+ while True:
+ byteData = data.read(2)
+ if len(byteData) < 2:
+ break
+ SYN_MEM[SYN_PTR] = struct.unpack('