|
quote:TIS-100 is an open-ended programming game by Zachtronics, the creators of SpaceChem and Infinifactory, in which you rewrite corrupted code segments to repair the TIS-100 and unlock its secrets. It’s the assembly language programming game you never asked for! It's about programming a fictional 80s microcomputer. If that somehow sounds fun, this might be the game for you. Obstacles include: an instruction set limited to 13 opcodes, managing multiple cores - each limited to 15 instructions and one directly addressable register - and spooky notes left by its previous owner. Links: Tips:
overeager overeater fucked around with this message at 01:20 on Jun 7, 2015 |
# ? Jun 3, 2015 04:51 |
|
|
# ? Apr 27, 2024 00:02 |
|
The thing I actually want most in this game is some real keybindings. You won't believe how many times I've inserted ddkp into the program while trying to rearrange things. I binged through most of the levels last night, just primes and sorting to go. And my brain has wasted most of today designing a solution to the former one. Game is addictive and I haven't even started seriously thinking about optimisation yet.
|
# ? Jun 3, 2015 05:07 |
|
I blasted through the first six levels sometime after midnight without having written a single line of code in years, and I'm staring at what I wrote and the next set of challenges in confusion the next day. A+, would buy again.
|
# ? Jun 3, 2015 05:35 |
|
After poking around for a bit launch morning, I took a vacation day and completed 17 of the 20 puzzles. I've now only got the Primes and Sorting to do (they are a bit of a pain given the constraints), but keep going back to re-optimize stuff as various friends on Steam start turning up on the histograms with faster run-times. It is an evil, evil game, and entirely too much fun.
|
# ? Jun 3, 2015 07:31 |
|
Vlad the Retailer posted:
Heck yes AT&T syntax!
|
# ? Jun 3, 2015 10:42 |
|
Anyone managed to solve the second last challenge, the sorting challenge yet? I know what I must do but there are so many communication pathways that will cross through each other to make it viable that I don't even know where to start.
|
# ? Jun 3, 2015 11:02 |
|
I haven't done that one yet, but don't you just have to shuffle numbers between the stacks and inject new numbers in their proper place after doing some subtraction and comparison? Though I don't recall the node structure there. Game is too good for how much development went into it.
|
# ? Jun 3, 2015 15:31 |
|
Wild M posted:I haven't done that one yet, but don't you just have to shuffle numbers between the stacks and inject new numbers in their proper place after doing some subtraction and comparison? Though I don't recall the node structure there. That's the basic strategy, yeah - you use your two stacks to emulate a list, and then use whatever sorting algorithm you can implement in the space constraints to sort it. Much of the complexity comes from the fact that the node arrangement is rather pants-on-head and (I assume deliberately) designed to require lots of instructions just moving things around and leaving you squeezed for actual code space.
|
# ? Jun 3, 2015 15:39 |
|
Well played game. The opaque 3x3 sprites not working are a bitch and handling it pixel by pixel is a garbage amount of data to wrangle and a perfectly placed error node to keep you from going comfortably wide, am I missing a simple transformation to describe those shapes? Otherwise I'll get back to trying to find enough lines to cram everything in.
|
# ? Jun 3, 2015 18:06 |
|
the way I did it was to draw that red dot in at the end and then just keep trying until the random case fits.
|
# ? Jun 3, 2015 20:25 |
|
I haven't solved Primes yet, but if you're doing trial division, it's helpful to keep in mind that you only need to check against the primes below (and including)
|
# ? Jun 3, 2015 20:35 |
|
Time to brush up with my trusty machine code manual http://mocagh.org/usborne-hayes/machinecodebeginners.pdf quote:Unlike Intel syntax, the source operand comes before the destination.
|
# ? Jun 3, 2015 20:48 |
|
zedprime posted:
My approach to this one used a lot of instructions but was pretty quick. I generate a stream of 5 relative coordinate pairs per sprite and add them to the base coordinates from the input. I also started with opaque 3x3 sprites and was annoyed to discover that no, that wasn't going to work.
|
# ? Jun 3, 2015 21:04 |
|
does this game have music?
|
# ? Jun 3, 2015 21:24 |
|
EngineerSean posted:does this game have music? It doesn't at the moment. For music I'd suggest putting on either SomaFM's Groove Salad or Space Station in the background. Their DEFCON station would probably fit too.
|
# ? Jun 3, 2015 22:04 |
|
Prenton posted:Time to brush up with my trusty machine code manual
|
# ? Jun 3, 2015 22:08 |
|
Quinton posted:My approach to this one used a lot of instructions but was pretty quick. I could watch this thing run for minutes, its amazing how entertained you can be by the simplest thing when its your simplest thing.
|
# ? Jun 3, 2015 22:24 |
|
I should really go back and modify some solutions so they use JRO. Way too many of my solutions stash things in BAK just so I can receive a flag from another node and branch on it.
|
# ? Jun 3, 2015 22:34 |
|
i havent tried this yet due to splatoon and pinball but i am happy to see a thread for the 10 of us who fit the niche
|
# ? Jun 3, 2015 22:47 |
|
gently caress this game. I start it up and next thing I know, it's 1 in the morning. I get the concept of what I want to do, but it's hard to make the code to do it...
|
# ? Jun 3, 2015 23:02 |
|
i love this game and all zachtronic games. i also like sc2, so basically if a game can serve as a ready reminder im dumb as hell i love it to bits.
|
# ? Jun 3, 2015 23:07 |
|
Wild M posted:I haven't done that one yet, but don't you just have to shuffle numbers between the stacks and inject new numbers in their proper place after doing some subtraction and comparison? Though I don't recall the node structure there. So I take it you're enjoying your gift, then?
|
# ? Jun 3, 2015 23:08 |
|
The last row is all the horror stories my computer savvy math professors told us about how horrible the computer guts really are for division, made manifest.
|
# ? Jun 3, 2015 23:34 |
|
I fit the niche for this game perfectly. Until the last row. gently caress the last row forever.
|
# ? Jun 3, 2015 23:47 |
|
Vlad the Retailer posted:It doesn't at the moment. For music I'd suggest putting on either SomaFM's Groove Salad or Space Station in the background. Their DEFCON station would probably fit too. Thanks
|
# ? Jun 4, 2015 00:29 |
|
Orthogonalus posted:I fit the niche for this game perfectly. Until the last row. gently caress the last row forever. If you just want to open the final level, do the division one. You've supposedly already done multiplication, so you "just" have to do the opposite. If you want to 100% the last row...well...
|
# ? Jun 4, 2015 00:32 |
|
I was in the running in spacechem and infinifactory but I am just not getting this game. For example, I'm trying to do pattern recognition with: JRO 2 S: MOV 0, DOWN R: MOV 1, ACC SUB UP JNZ S MOV 0, DOWN MOV 5, ACC SUB UP JNZ S MOV 0, DOWN MOV 4, ACC SUB UP JNZ Z MOV 1, DOWN JMP R but it doesn't handle the edge case with 2 1s in a row. Am I supposed to spread the logic out among the different cores? I'm not even sure how to tackle flow control or testing since i can only have one register to store stuff in. And I'm at the max number of lines, so... Bhodi fucked around with this message at 00:57 on Jun 4, 2015 |
# ? Jun 4, 2015 00:49 |
|
In general yeah, you should be splitting things across nodes if you can. For example, if your first node zeroes out everything that isn't 1, 4 or 5, that makes signaling easier. Also remember that you have the position of the instruction being executed as effectively another piece of state. -- Primes ended up being fairly straightforward, though of course it took forever to run. There are a bunch of optimisations I need to do on that.
|
# ? Jun 4, 2015 01:12 |
|
The histograms are very clear I'm not going to win any awards for any category but I had 3 parallel stacks running similar checks so for the sequence abcde, the first stack would report on abc, the second stack on bcd, and the third stack on cde. The offset in feed seemed to be enough to prevent a race and keep them reporting in order while sharing moving nodes.
|
# ? Jun 4, 2015 01:15 |
|
Jabor posted:In general yeah, you should be splitting things across nodes if you can. For example, if your first node zeroes out everything that isn't 1, 4 or 5, that makes signaling easier. Also remember that you have the position of the instruction being executed as effectively another piece of state. I'm baffled. How can you zero out everything that isn't 1, 4 or 5?
|
# ? Jun 4, 2015 01:53 |
|
RadicalR posted:I'm baffled. How can you zero out everything that isn't 1, 4 or 5? If I've got the idea right: START: MOV UP, ACC SAV SUB 1 JEZ SEND SUB 3 JEZ SEND SUB 1 JEZ SEND MOV 0, DOWN JMP START SEND: SWP MOV ACC, DOWN should send 1, 4, and 5 to DOWN while making everything else zero.
|
# ? Jun 4, 2015 02:11 |
|
i once coded a simple game for the Atari 2600 in 6502 assembly, so i think this game would give me ptsd flashbacks
|
# ? Jun 4, 2015 02:14 |
|
Just solved the RLE image decoder
|
# ? Jun 4, 2015 02:57 |
|
Vlad the Retailer posted:Just solved the RLE image decoder WHICH YOU CAN'T REPLAY. So if you want to optimize, you'd better not let it finish!
|
# ? Jun 4, 2015 03:23 |
|
Wild M posted:WHICH YOU CAN'T REPLAY. So if you want to optimize, you'd better not let it finish! I think I'm fine with not optimizing whatever the hell that was I can't really think of a more efficient solution, besides
|
# ? Jun 4, 2015 03:27 |
|
"game"
|
# ? Jun 4, 2015 03:40 |
|
I went with a really trivial convert RLE sequences to sequence of color numbers, feed that from one edge, feed X values from another edge, feed Y values from a third edge, and fuse them into X, Y, C, -1 and spit them out. Super straight forward, skips the trickiness with needing to break the sequences at the right edge (since single draw commands cannot wrap onto the next line), but not nearly most optimal.
|
# ? Jun 4, 2015 03:51 |
|
Quinton posted:I went with a really trivial convert RLE sequences to sequence of color numbers, feed that from one edge, feed X values from another edge, feed Y values from a third edge, and fuse them into X, Y, C, -1 and spit them out. Super straight forward, skips the trickiness with needing to break the sequences at the right edge (since single draw commands cannot wrap onto the next line), but not nearly most optimal. This is basically what I did as well. There's a really obvious optimisation that I only realised after finishing it.
|
# ? Jun 4, 2015 04:08 |
|
Quinton posted:I went with a really trivial convert RLE sequences to sequence of color numbers, feed that from one edge, feed X values from another edge, feed Y values from a third edge, and fuse them into X, Y, C, -1 and spit them out. Super straight forward, skips the trickiness with needing to break the sequences at the right edge (since single draw commands cannot wrap onto the next line), but not nearly most optimal. That was my solution except I managed to fit the X/Y value iteration into one node, giving me a plotter capable of drawing whatever color sequence it was fed. With an extra node to handle the RLE sequence, the solution ended up fitting into two nodes (with two extra transport nodes)
|
# ? Jun 4, 2015 04:09 |
|
|
# ? Apr 27, 2024 00:02 |
|
THE PENETRATOR posted:"game" Freeform drawing program I made in case you want to laugh at bad code or draw dicks yourself on pastebin
|
# ? Jun 4, 2015 04:34 |