|
Man, got to the audio thing and already feeling stuck due to pin deprivation. (And sleep deprivation..) Edit: it's trying to teach about what happens when you're not driving a pin that's connected elsewhere, isn't it? Edit #2: Oh, I am dumb. I can use the X-pins between controllers... OddObserver fucked around with this message at 02:22 on Oct 7, 2016 |
# ? Oct 7, 2016 02:18 |
|
|
# ? Jun 10, 2024 13:10 |
|
gently caress I figured out what was happening and it turned out I was returning the wrong values for the leftmost chip AND hosed up "less than 28 OR greater than or equal to 84" I'll just show myself the door.
|
# ? Oct 7, 2016 02:29 |
|
Pollyanna posted:My question is ultimately one of keeping them in sync, i.e. "how do I make sure I don't end up in a state where a chip is waiting for a signal from the wrong chip, therefore one won't go to sleep". I learn best from example, so here's my current solution for the heat sensor. I can see here that the issue is that the rightmost chip is waiting for a response from the upper left chip while the bottom chip is waiting to write to the rightmost chip, and the upper left chip is asleep. I just don't really understand how to avoid this situation, because it seems less like I have to put SLX statements everywhere and more that I need to make sure everything executes in the expected order every time, which doesn't seem to be guaranteed at all. The easiest way to keep sync is just to make sure everything operates in lockstep. If a CPU ever writes to an xbus port make sure it does so every tick, and make sure the controller its connected to will read that port every tick. If everything is lockstep you will never need to worry about the order things execute because the synchronization is implicit every time you touch an xbus port. e: Here's my solution as an example The right CPU blocks on read until the left one has done everything it needs to do, and they operate in lockstep predictably every tick. homeless snail fucked around with this message at 02:37 on Oct 7, 2016 |
# ? Oct 7, 2016 02:33 |
|
Pollyanna posted:My question is ultimately one of keeping them in sync, i.e. "how do I make sure I don't end up in a state where a chip is waiting for a signal from the wrong chip, therefore one won't go to sleep". I learn best from example, so here's my current solution for the heat sensor. I can see here that the issue is that the rightmost chip is waiting for a response from the upper left chip while the bottom chip is waiting to write to the rightmost chip, and the upper left chip is asleep. I just don't really understand how to avoid this situation, because it seems less like I have to put SLX statements everywhere and more that I need to make sure everything executes in the expected order every time, which doesn't seem to be guaranteed at all. Oh, I see - SLX is the wrong tool for you here, then. If I call your chips 1, 2 and 3 from left to right, then the situation right now is that 1 and 2 are both outputting every single cycle. So 3 needs to input from both 1 and 2 every single cycle to stop it crashing, but the order doesn't matter, because crashes only happen when you have an output that's not read within the same cycle or an input that's not provided within the same cycle. Chip 3 can read x0 first or x1 first and either will work. The SLXes aren't hurting you, but they aren't helping you either and you could remove them without breaking anything. Your problem is that 3 isn't inputting from 2 every cycle, which can be fixed e.g. by adding "- mov x1 null" between lines 4 and 5 of chip 3. What SLX is useful for is if you want a chip to do something like "wait for a number on x0, then output 100 on p0 for that many cycles". The SLX takes care of the waiting - otherwise you'd have to somehow try and sync it and its inputs up so that it only polled for inputs on cycles where inputs were available.
|
# ? Oct 7, 2016 02:41 |
|
SupSuper is too good at this game, gatdamn. I need to step my game up. I just PMed the mod of TGS to see if they'd be opposed to a Zachtronics Steam Profile Sharing thread in there, so we can share our steam profile links freely behind the paywall and not flood this thread. I'll update the OP with a link if we get the OK.
|
# ? Oct 7, 2016 02:52 |
|
I/O blocking was such a huge stumbling block for the average person in TIS-100. I can only imagine what its like now that it not only freezes time, but you also have your choice of rope to hang yourself with because of the differences between simple IO and the xbus. You can and should flowchart your concept to understand how blocking on the xbus or racing with a simple IO can work out. It lets you put the data handling and flow in something human readable to understand where syncs should occur and help troubleshoot where they aren't occurring.
|
# ? Oct 7, 2016 02:53 |
|
Finally unlocked the prototype board, immediately found the beeper/speaker and made some garbage noises Someone with more free time than me: Please figure out which 1-100 values map to which tones, was going to try to make a touch tone phone but I'm not sure there's enough precision to do so accurately enough to work over the actual phone
|
# ? Oct 7, 2016 03:07 |
|
People posted:I think there's a good reason why I don't do embedded development I'm at the problem that basically decomposes down into a really gross conditional statement, and even wrapping my head around it is giving me a headache. I think I might put that one off until tomorrow. edit: Also I have no idea what the IO splitter is supposed to be used for. Pollyanna fucked around with this message at 03:53 on Oct 7, 2016 |
# ? Oct 7, 2016 03:37 |
|
Is anyone else getting "Invalid Label Name" errors on any label name? I mean :label and :end are both examples from the manual, yet both of those are giving me errors. What am I missing here?
|
# ? Oct 7, 2016 03:58 |
|
The colon goes after the name
|
# ? Oct 7, 2016 04:00 |
|
New Zealand can eat me posted:Ahhhh I figured out drinking game. lol I skipped doing that one the easy way and just grinded it out, now I'm near the top of the leaderboard. 254 power . This game is gonna allow for some absurd code golf using conditional instructions: http://i.imgur.com/iLPhxwX.png Jeffrey of YOSPOS fucked around with this message at 04:19 on Oct 7, 2016 |
# ? Oct 7, 2016 04:16 |
|
Its beautiful. I'm torn if they should have a stricter test case with overlapping button presses. On one hand it's for Joe and he's going to get drunk and slam both buttons because he doesn't remember the rules. But on the other hand of course the cheap electronics are going to behave poorly in edge cases.
|
# ? Oct 7, 2016 04:31 |
|
This game rules. The atmosphere is great. I'm so glad I ordered the physical manual and I can't wait until it gets to me. I coasted smoothly up through the drinking game thanks to all the time I put into TIS-100 and not caring at all about cost/power. Now feel like I've hit a bit of a wall with the level after that. I'm gonna see what I can figure out on my own before I read the first page of this thread, though. Please add me on steam where my name is "ERLOG" (That's with an 'L' not an 'i') I have the dinosaur from Braid as my av. zedprime posted:Its beautiful. I'm torn if they should have a stricter test case with overlapping button presses. On one hand it's for Joe and he's going to get drunk and slam both buttons because he doesn't remember the rules. But on the other hand of course the cheap electronics are going to behave poorly in edge cases. This was also a bit of a factor in TIS-100 and the reason why it was early-accessed similar to Shenzen. Noticing the bounds of the input and using that to your advantage is part of the optimization challenge, but there were one or two puzzles in TIS-100 where there were limitations in the test data that weren't intended that got fixed before full release. So anticipate that some of your solutions to some of these puzzles might be obsoleted as the game is tuned. ErIog fucked around with this message at 05:18 on Oct 7, 2016 |
# ? Oct 7, 2016 05:16 |
|
Pushing both buttons will work fine, its only holding one for a tick then pressing the other without releasing it that will cause an issue. Even a drunk guy won't do that!!
|
# ? Oct 7, 2016 05:33 |
|
What do you guys think the third metric is going to be? I'm guessing it's going to be minimizing the number of instructions in your busiest cycle - gotta make timing closure.
|
# ? Oct 7, 2016 06:13 |
|
Jeffrey of YOSPOS posted:What do you guys think the third metric is going to be? I'm guessing it's going to be minimizing the number of instructions in your busiest cycle - gotta make timing closure. I think it's going to be something like mm of traces you use. That doesn't factor into the cost metric right now, and it would be similar to how KONSTRUKTOR graded you. It's also a logical thing to try to optimize for.
|
# ? Oct 7, 2016 07:17 |
ErIog posted:I think it's going to be something like mm of traces you use. That doesn't factor into the cost metric right now, and it would be similar to how KONSTRUKTOR graded you. It's also a logical thing to try to optimize for. Or perhaps size of print required. Similar to the game prototyping challenge that doesn't have a set board size, maybe later have an unlimited board size but then get graded on making it more compact.
|
|
# ? Oct 7, 2016 07:32 |
|
Having a blast so far. Here's my scores in case anyone cares. Pulse Generator 3/139/? Light-up Signs 9/205/? (My buddy has 200 somehow) or 7/218/? Rubbish Audio 6/416/? Bring out the Baron 8/660/? (254 now thanks to Jeffrey) Infrared Sensor 8/462/? VR Buzzer 5/173/? Device 2A27 6/599/? Cool Dad 14/525/? Little Help 8/256/? e: Lol I just saw the undocumented instructions. That'll be some rework...
|
# ? Oct 7, 2016 07:50 |
|
Jeffrey of YOSPOS posted:lol I skipped doing that one the easy way and just grinded it out, now I'm near the top of the leaderboard. 254 power . This game is gonna allow for some absurd code golf using conditional instructions:
|
# ? Oct 7, 2016 07:56 |
|
Pollyanna posted:I think there's a good reason why I don't do embedded development That one gets easier when you notice that you can write the algorithm as "start with zero, add 30 if you're on the left or right side, and add 50 if you're in the square". The splitter isn't too useful when you get it, but becomes worth its weight in gold when you start dealing with boards that have 2-3 simple inputs and 2-3 simple outputs. Basically it saves you from needing to add extra chips just to deal with the fact that all your current chips only have two simple I/O pins.
|
# ? Oct 7, 2016 09:09 |
|
Christ, I just played until 5am It sure feels good to get solutions that are off the front end of the histogram though. I'm going to be optimizing a bunch of stuff while on an airplane over the weekend, presumably those scores will still submit once I come back online? I presume I'll have to rerun the solutions to get them to actually count, but that's okay. The solitaire minigame is a bit tricky, but some boards seem a lot easier than others.
|
# ? Oct 7, 2016 09:53 |
|
There's some really great tension between digital and analog, synchronous and async ways of doing the same things. I thought I couldn't do infrared sensor in less than 8¥ until I changed some intermediate signals from X to P. I am completely lost trying to add sound to the prototype game without blocking. Add me for high scores: http://steamcommunity.com/id/myhf/
|
# ? Oct 7, 2016 09:59 |
|
NickPancakes posted:SupSuper is too good at this game, gatdamn. I need to step my game up. NickPancakes posted:I just PMed the mod of TGS to see if they'd be opposed to a Zachtronics Steam Profile Sharing thread in there, so we can share our steam profile links freely behind the paywall and not flood this thread. I'll update the OP with a link if we get the OK. Edit: Have a Steam profile to shame your ancestors: http://steamcommunity.com/id/supsuper SupSuper fucked around with this message at 10:07 on Oct 7, 2016 |
# ? Oct 7, 2016 10:04 |
|
Jesus where did the day go, currently stuck on the coin machine and the rgb led. Does the sealed envelope contain an english language page about @ and gen?
|
# ? Oct 7, 2016 14:10 |
|
Is Cloud Sync broken? I'd like to move my game from my macbook to my PC. It's uploading on my mac, but not downloading. I've never really used the sync before, so I don't know if this is just typical and I need to just copy some files.
|
# ? Oct 7, 2016 14:12 |
|
profile URLs for the profile URL god https://steamcommunity.com/id/_sneakyness/
|
# ? Oct 7, 2016 14:27 |
|
Guy Axlerod posted:Is Cloud Sync broken? I'd like to move my game from my macbook to my PC. It's uploading on my mac, but not downloading. I've never really used the sync before, so I don't know if this is just typical and I need to just copy some files. Same thing just happened to me. I played all day at work on Linux. It was uploading fine. I get home. Install it on my Mac and my save has now disappeared.
|
# ? Oct 7, 2016 14:33 |
|
How is this happening? Conditionals are not working like I figured they would? I figured it would not reach this line unless the first teq was true and the second teq is false, but it's just jumping to this line on the false condition of the first teq after the first - line Picture is slightly misleading, it gets there on step 3
|
# ? Oct 7, 2016 15:10 |
|
New Zealand can eat me posted:How is this happening? Conditionals are not working like I figured they would? IIRC conditional tests just enable or disable certain lines, so after - slp 1 runs, everything with a + in front of it is skipped, which moves it to - jmp buzz.
|
# ? Oct 7, 2016 15:12 |
|
that is loving stupid I hate this game let me nest things like -- or something, this game clearly isn't complicated enough I guess I'll have to find another way
|
# ? Oct 7, 2016 15:15 |
|
I think you have to make sure that the game can see a new conditional in both + and - branches when using branching conditionals. Things I slapped my face when I figured out (I'm slow): * You can have several non-signed lines of code mixed in with the branches. * You can mix up the order for + and - branches. There is quite a bit of flexibility to it.
|
# ? Oct 7, 2016 15:25 |
|
Zteuer posted:I think you have to make sure that the game can see a new conditional in both + and - branches when using branching conditionals.
|
# ? Oct 7, 2016 15:32 |
So when does a conditional flag end? After you loop back to the top of your code? Or only when a new conditional is met?
|
|
# ? Oct 7, 2016 15:34 |
|
Popete posted:So when does a conditional flag end? After you loop back to the top of your code? Or only when a new conditional is met? Only when a new conditional is met - think of the condition flags as another variable or register or whatever that you set with test instructions.
|
# ? Oct 7, 2016 15:40 |
|
Fuzzy Mammal posted:e: Lol I just saw the undocumented instructions. That'll be some rework... What are these instructions? I was stuck for over an hour on Rubbish Audio because I hadn't yet realized Xbus ports could be linked up between chips i.e. I was trying to solve it using only 1 input per chip. Feels like smooth sailing after that minor fiasco.
|
# ? Oct 7, 2016 15:41 |
|
Shab posted:What are these instructions? Check your email.
|
# ? Oct 7, 2016 15:47 |
|
Oh yeah and add me on steam if you want a cool middle-of-the-road benchmark to check your stats against http://steamcommunity.com/id/jabor/
|
# ? Oct 7, 2016 15:53 |
|
They really throw you in the deep end with that first division with remainders implementation, don't they? That behavior isn't even in the spec
|
# ? Oct 7, 2016 15:56 |
|
zedprime posted:That behavior isn't even in the spec Most realistic part of the game, imo.
|
# ? Oct 7, 2016 16:03 |
|
|
# ? Jun 10, 2024 13:10 |
|
Friend thingies sent edit: moved profile to http://forums.somethingawful.com/showthread.php?threadid=3793493
Spookydonut fucked around with this message at 16:35 on Oct 7, 2016 |
# ? Oct 7, 2016 16:04 |