Turing Complete

This game has consumed my entire life and has converted me into a hardware geek instead of a software one. Send help.

Turing Complete is a surprisingly competent logic simulation model and game, where you start with nothing but a couple of basic gates, like NAND and NOR, and build your way up to a fully working programmable computer.

My partner was gonna write this one back in the December review-a-thon, but didn’t have the spoons for it. Back then, only she had played it, I didn’t really know much about it other than that she enjoyed it and a bunch of her friends did too. In Janurary, then, I decided I’d give the game a go too and see what the fuss was about, and then suddenly it was 5am, whoops… I guess ADHD brain inertia goes brrr.

At first it was just building a bunch of components. Build NOT from NAND. Duild XOR from AND/OR/NOT, and eventually you’re building half adders, full adders, logic units, arithmetic units, memory cells, comparitors, and a whole bunch of other stuff before the game pulls its first big trick.

It gives you a huge work area, with 6 spaced out registers frozen in place, and a block of ROM with some numbers in it. It tells you that you’ll have to decode the value coming from the command wire, and then use the values you just decoded in order to decide which of the 6 registers, (or the level IO) to read from and write to. And while it all feels like inocuous wiring at first, it’s so much more than that. You’re building a computer. Like, an entire fully fledged computer. It can move values between registers, it can write numbers to registers, it can perform logic and arithmetic on registers 1 and 2, and save the output in 3, and it can jump around its own program code.

And once you’ve built the computer, the game replaces that ROM chip with level data into a Program chip, where you can write your own code to run your own computer!

After you finish your first architecture, the rest of the game is about upgrading your components and building a second architecture to solve more programming puzzles, and if you want to, you can build specific dedicated state machines to solve the programming puzzles without using your computer, which gets you significantly better scores, but thats not where my journey ended.

No you see, I decided I was going to do something that the developers didn’t intend for me to do.

They made the terrible mistake of adding a screen.

A very simple screen, 6 pixels wide and 8 tall, controlled using (basically) 2 pins. One for choosing a colour, and one for setting pixels of that screen to that colour. I think it was designed to be able to cleanly render 5x8px characters for displays and stuff like that.

But I took that, and fucking ran with it.

I have spent close to 30 hours on this project as of writing? I don’t know if I’ll be done by the time this post goes up, but I’ve been documenting my progress on my other blog. So far I have a little PPU that can take various formatted colour, tile, and character data, and then produces a 192x128px image over 512 different screen modules. I’d go for bigger but not only is the time to draw exponential, the lag is too.

For reference, the rest of the game only took me like, 15-20 hours?

So far my main gripe with the simulation is that it doesn’t allow for bistable circuits, any chip that feeds itself is an error regardless of how long that path is, or if that path would otherwise be bistable. Of course there is a setting to allow a few specific bistable recipes such as a D-Latch or an RS-Latch, but anything more complex just doesnt work, so don’t waste your time following complicated chip schematics that work in the real world because you’ll just get 1 red link and the whole thing falls apart. Ask me how I know.


Steam: https://store.steampowered.com/app/1444480 £15.49


Posted

in

, ,

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.