Synapse by tompudding

[raw]
made by tompudding for LD33 (COMPO)
*** WARNING ***
This is an extremely nerdy hacking "game" that is barely a game, and certainly not fun. If you're not into security or embedded systems shenanigans, you might want to give this a miss!

That said, if things like TIS-100 and 0x10c interest you, and you wish for something vastly more complicated and much less fun, then walk this way...

Synapse
-------

This is my entry for Ludum Dare 33. It is a hacking simulator (You are the monster(!), because hackers are monsters right?) where you have an imaginary old machine based on an ARMv2 CPU and made up hardware. You have some tapes, and on each tape there is a secret password, can you find all three?

I had originally intended to implement a BBS style system and have you hack a real server and possibly other people, but that was way too ambitious for the 48 hours. It's probably extremely hard, with a high barrier to entry, but if you like low level stuff, old computers and ARM, then it might just be for you :)

Installation
------------

A Windows build is up, Linux coming soon :)

You can build and run the source directly with python, pygame, pyelftools, cython and an arm toolchain (arm-none-eabi-) installed into your path to build it.

Help
----
To get started you'll want to load a tape. You can type load and enter and it will try to load a tape, but at bootup there is no tape in the drive.

* Press escape to halt execution and switch controll to the debugger. You'll see the bottom right text switch from "RUNNING" to stopped
* Press tab until the tape selector is highlighted
* Use the arrow keys to choose the tape you want
* Press enter or space to load it
* Resume execution either by pressing c or escape again. R will reset the machine and Q exit completely at this point so be careful!
* type load and enter to load the tape
* Enjoy the delights of the Tetralimbic Systems Synapse!

At this point it's probably very daunting. The debugger is not very full featured and there's a lot of code, so I've included a docs directory in the binary distributions with some helpful files:
* disassembly of the tapes including function names. These should give some hints where to set those breakpoints
* ARMv2 manual

You can add other tapes by dropping files into the tapes directory. These can then either be loaded and run as any other tape, or played as keyboard input by pressing p (for any crafted input you might need :))

Bugs
----
* Sometimes there's a deadlock and it hangs. Not sure why :(
* There is no indication when the CPU is idle and waiting for an interrupt. This is a problem as it causes the debugger to not step.

Ratings

Coolness 36% 1752
Overall 3.00 572
Fun 2.82 599
Graphics 3.17 425
Humor 2.53 542
Innovation 3.61 129
Mood 3.53 160
Theme 2.40 875

Feedback

dosmaen
24. Aug 2015 · 05:08 UTC
I'll give this a try once it is built, seems like a good concept.
stahlmanDesign
24. Aug 2015 · 05:16 UTC
I love the old commodore 64 look.
HiddenDepthGames
24. Aug 2015 · 09:23 UTC
Love the style... Give us a playable version! :D
okmmjyygv
24. Aug 2015 · 13:53 UTC
Not bad, but can be improved.
Big Cow
25. Aug 2015 · 17:53 UTC
Got as far as loading the adventure tape, then tried a whole bunch of commands but not worked. Still, I like the concept, there was a great feeling of excitement on loading the adventure tape. The initial interface was a little advanced for me but I'd love to play a bit more of a noob version :)
Phil Strahl
25. Aug 2015 · 22:17 UTC
Wow, very impressed by all the nerdy stuff that's in there. This is way beyond what I know about those great old hardware (which mostly amounts to copying sprites to v-ram ;). Your game looks like the big brother of Uplink :D
flatgub
26. Aug 2015 · 07:22 UTC
I was really excited to play this because I love stuff like this, but it seems to freeze every time i try to start it...
🎤 tompudding
26. Aug 2015 · 08:04 UTC
Oh that's a shame flatgub, finding people who might want to play this is going to be hard I think. Are you on Windows? Does the Window appear or does it hang at the console? Maybe try running it from the command prompt and seeing if there any errors? Thanks
flatgub
26. Aug 2015 · 08:40 UTC
Yeah windows.
The window appears for about a second and it suddenly freezes and I get the "Synapse.exe has stopped responding" message. I checked the cmd and There's no errors being logged or anything...
🎤 tompudding
26. Aug 2015 · 08:49 UTC
OK thanks, I haven't done much testing on Windows. Which version of Windows do you have out of interest? Thanks for the help
flatgub
26. Aug 2015 · 08:51 UTC
Windows 7 Ultimate!
Maybe i should get the source and compile it myself?
boardtobits
26. Aug 2015 · 21:57 UTC
Hitting tab didn't seem to do anything, then the game locked up.
🎤 tompudding
28. Aug 2015 · 07:48 UTC
I updated the binaries to hopefully fix the deadlock bugs, I'll try rating some games now and see what the new players thing :D
wesley werner
28. Aug 2015 · 19:47 UTC
This is madness, I tell you. Madness! You actually linked the ARM libraries, what dark magic is this?

Your interpretation of the theme is largely interpretive. But I guess tongue-cheekery is to be expected in LD!

Okay on to the game - I stepped through the number guessing game, watching the registers to glean any info on what the number is I should be guessing, they are tricky to decipher, my friend. Golly-gosh-gee-willikers batman.

Okay... I am wiping the brain-ooze off the side of my face now, and am going back in to decipher some more.
🎤 tompudding
28. Aug 2015 · 20:06 UTC
Woohoo, really glad someone is enjoying it Wesley! The tapes are C, compiled with the GCC arm toolchain into Armv2 assembler, then linked up with a bit of hand codes assembly, run on a C emulator running as a python extension model with the hardware devices in pure python. It is a fun project :)
Empyrealhell
30. Aug 2015 · 20:11 UTC
I feel like if you want to make a game like this, the debugger really needs to be on point, and this one isn't. The concept is really neat, but for those of us that don't have experience with this type of hacking, the game requires hours of research to learn how to even approach it. A built-in tutorial that shows people how to start would go a long way to making this more approachable. As it stands, it seems more like an emulator than a game, really. I think it's an awesome idea, I just don't have time to read a tech manual and spend the next few days learning what I'm supposed to be doing.
nihilaleph
30. Aug 2015 · 20:23 UTC
Oh I would love to finish your game, but I really need to relearn all this ^^; Still I'll try to play though!
PS: Is there anyway you could share a manual or instruction set?
PSS: I was able to get the password from guessing game with basic dichotomy xp
Biruts
31. Aug 2015 · 15:15 UTC
Very nice project guys, i really love it, please check our game too and if you liked it give us a vote. Look for Road to hell and enjoy.