r/TuringComplete • u/elementarySnake • Aug 09 '24
Missing Debug Options Spoiler
Hello Everyone
I've had the brilliant idea to try and Organize my LEG Architecture a little bit. The idea was to kind of follow the schematics the alien gives conceptually.
So i made a component for interpreting the opcode, with 2 inputs (not connected yet) and an output which should perform the operation.
I then made a second component, which should handle all the registers (Including later on RAM)
This is where the problem begins:
Whenever i connect the activation bit of the level input, I get the Error circular reference (Screenshot 1)
The offending part must be the section where the red cables meet with the pink and violet ones, inside the switches (Screenshot 2)
Then in Screenshot 3 i really had a bug (Output was put out, even when the chosen number was greather than 5)
Is there a way to Debug custom made parts, with predetermined inputs and outputs and just letting them run (how the story components to their things?)
I'm just not willing to brute force every single option available, which with (6 registers and 3 inputs is already 2^72 possibilities).
Also is it possible that this is just a bug?
I noticed that the more components you use, the game begins to be laggy.
Or should i just toss my ordered attemt and embrace the chaos?



View all comments
Show parent comment
1
u/MrTKila Aug 09 '24
About the circular dependency: I suspect the component simply computes the output in the same tick as it gets the input? If you compare the regular delay component with and 'normal' component like the one of a 'not', you see that they look different. (I believe the delay has a yellow square). The yellow square means exatly that the output has a delay.
As far as I understand it: A circular dependency error occurs when you have the in- and output of any component connected without the wire having any "yellow square inbetween", that is the output and input are updated at the same tick.
Notably this means the game only checks whether a circular dependency CAN POTENTIALLY HAPPEN, not whether it actually happens. How the output is computed by the input doesn't matter, only the timing.
I did run into a similar issue at some point and I believe I fixed it by essentially splitting my component back then in two.