This repository has been archived on 2017-10-30. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2017-02-13 20:55:08 +10:30
dbg Fix speedrun 2017-02-13 14:43:59 +10:30
disasm_hints Annotate self test 2017-02-13 20:55:08 +10:30
libsynacor Annotate self test 2017-02-13 20:55:08 +10:30
tools Port disassembler to new API 2017-02-12 23:01:56 +10:30
.gitignore Port debug scripts to new API 2017-02-12 22:50:06 +10:30
arch-spec Initial commit 2016-05-29 18:04:40 +09:30
asm.py Annotate self test 2017-02-13 20:55:08 +10:30
COPYING Initial commit 2016-05-29 18:04:40 +09:30
disasm.py Annotate self test 2017-02-13 20:55:08 +10:30
electric_boogaloo.md Switch notation to R{0..7} per spec 2017-02-12 21:53:56 +10:30
notes.md Port debug scripts to new API 2017-02-12 22:50:06 +10:30
README.md Port debug scripts to new API 2017-02-12 22:50:06 +10:30
synacor.py Port debug scripts to new API 2017-02-12 22:50:06 +10:30

synacor.py

My OOP, poorly-documented concise working response to the Synacor challenge

Debug commands

At any time the program is waiting for input, a string of the following form may be input:

.<cmd> <args>

This will execute the file <cmd>.py with dbg_args[0] set to <cmd> and <args> stored in dbg_args[1..n].

For example, the self-test and decryption at the beginning of the program takes a comparatively long time. To save the state to the dumps/init file, enter:

.dbg/dump dumps/init

Similarly, debug commands may be passed as command-line arguments to synacor.py in the form:

./synacor.py <file> <cmd> <args>

For example, to load the dumps/init state to skip the self-test and decryption, run:

./synacor.py challenge.bin dbg/load dumps/init

Dump files are stored in Python pickle format, so if you want to inspect the memory in a hex editor, for example, it will be necessary to extract a raw memory dump:

./tools/dump_to_raw.py dumps/init dumps/init.raw