Blog Comments

  1. Firemac's Avatar
    sorry to post again, but I sort of need to understand subtraction and dealing with when the answer is below 0.
    If the answer is obvious, I'm sorry, I'm still trying to figure out this whole analog business. I really don't need to get overly complex, I just need to handle some basic addition/subtraction to use in my levels that I'm working on.
  2. Firemac's Avatar
    I do believe there's a typo in your initial addition formula, input 1 + input 1? I think you meant input 1 + input 2
  3. SSTAGG1's Avatar
    It was just an idea I had for a non-impact based damage system. Would get rid of several tags and additions in the system I'm using, but isn't as flexible to complex shapes being damaged (actually, it is, depends on how quickly destroyers work though, since it relies on the tag to transmit signal for a single frame and then get destroyed the next) Here is the result of my ideas.
    Updated 02-24-2011 at 05:29 AM by SSTAGG1
  4. rtm223's Avatar
    strongest. Which is bloody annoying if you ask me, but what you gonna do, eh?

    If you require 2 then it returns the value of the 2nd strongest, etc.
  5. SSTAGG1's Avatar
    What occurs when multiple tags of different strengths are within the range of a tag sensor set to detect signal strength?

    Is the output the closest tag, the strongest, the weakest, or a combination of the strengths? Am away from PS3 right now, but had an idea for a new damage system, and if it's a combination, that'd be awesome.
  6. innocentpasserby's Avatar
    Thanks . I think i'll go with de divider, since thermo isn't really an issue when it comes to most logic.

    Lol, i have just been looking for 30 minutes what was wrong with a complex logic circuit that i build, and then i would out i scaled by first multiplying and then dividing, resulting in very weird answers:.
  7. rtm223's Avatar
    Should be identical. Divider will add in 1 frame delay, as will the sequencer.

    64s an easy number to factor as well, I'd guess you'd be looking at lower thermo, higher accuracy and less ballache with the 96/150.

    @Ruisje, if you're still struggling at the weekend I'll try to take a look. Is a bit much for me right now - I'm bloody knackered
  8. innocentpasserby's Avatar
    I have a question. If you for example want to multiply a value by 0.64, does is matter (speedwise) if you map the entire function on a sequencer or if you do 96/150?
  9. Phazerz123's Avatar
  10. Tygers's Avatar
    As an addendum to my previous post, the fact that it is single precision floating point is going to be largely irrelevant to us; since the most basic operation (Addition) requires an inversion, we've basically got 24 bits of precision; anything else will end up rounded to 0 or 100%.

    I also have a meter that produces as many decimal places as you want. Basically it comes in two different flavors. One is a sign detector with a display for -1, to show the 100s place and negative value. The rest all do the same thing; they convert the signal in to two decimal digits, scale it by 100, and output it to feed into the next module. You can stack them as far as you want; though after 7 places, the precision of 24 bits breaks down.

    The downside of my meter is that it does no rounding. So with just two places, it often shows 1 less than the value. But if you add more digits, they will show up as .99, so I usually add one extra digit after the decimal point. However I consider this a feature, as the .0000001 difference can effect which bar in a sequencer is selected.

    If anyone wants a copy of my meter let me know and I can put up a level to share it.
    Updated 02-15-2011 at 09:30 PM by Tygers
  11. Tygers's Avatar
    I ran some tests of my own and I think I can say with pretty high confidence that they use single precision floating point for the analog values.

    First to test the number of bits in the significand, I created a binary decomposition chip - basically it takes the current value, turns it into a 0 or 1 (0 = 0-50%, 1 = 50-100%) then doubles it. The output of one chip is then fed into the next chip and the process repeats. As an input I used a counter so I could set irrational fractions. For ease of use, I fed this through an inverter so I could quickly go through 2/3, 4/5, 5/6, 6/7, and so on. I layed together about 48 of these binary decomposers, but no matter what I fed in, only the first 24 would ever show a 1 bit, after that the value was true 0. This is EXACTLY the number of bits you would expect to see on a single precision (32 bit) floating point number.

    Since the step involves an inversion, this also nicely eliminates the exponent from the test. The way floating points work, a very small number can be represented, but once you have a large number, the precision drops down to the significand only. This means that no matter the scale they are using, this will show up.

    Next I wanted to test the exponent. Unfortunately they do not make this easy, since values are clamped at 100%, and there is no native divide by 2. So I picked something close to a power of 2 and divided by 255 (8.5 sec timer on the divider). I also wrote a C program to do the same division natively. The result is 18 divisions by 255, followed by 3 divisions by 3 before the value becomes 0. This matched my C program exactly.

    Finally, the final proof that it is floating point... Once you divide by more than 2**24, running the non-zero value through two NOT gates results in a zero value, exactly as you would expect if you subtract a very small floating point value from 1.
  12. Speed Racer's Avatar
    Awesome, thanks for the clarification! I'll be sure to bug you in the comments threads of the other segments if I run into more trouble.
  13. rtm223's Avatar
    loks like you're right... bit of epic fail there. It's too late in the evening for me to fix it tonight, but it seems your understanding things pretty well

    Do let me know if you find any more errors in there!
  14. Speed Racer's Avatar
    Okay, I'm going through this right now, trying to wrap my head around everything. I'm looking at the first section, about finding the second highest or lowest number in a set. In the first example, you say that the three OR gates give use the minimum values of each of the three pairs, and in the second, you say that the three AND gates give us the maximum values of each of the three pairs. Isn't that the reverse of what you said in the fundamentals segment?

    The AND gate is effectively a min() function - it’s output is equal to the smallest value input. So for signals of 10, 63 and 42, the output would be 10. To compliment this, the OR gate is a max() function, so the output value from the same three signals would be 63. Note that these definitions make sense in terms of using binary (0 / 1) inputs for the same gates, which is probably why this happened.
    Am I missing something or are these examples backwards?
  15. Ruisje's Avatar
    Hi analogue geeks,

    I've read the blog with much interest: great work!

    I'm having a problem with a rotator / joystick issue that I believe is due to a flaw in my analogue logic. If you have any time, could you look at this thread?


    thanks in advance,

  16. rtm223's Avatar
    @phort: I assume you've got a a system of subtracting values for each digit, then amplifying the signal by 10 to get higher resolution? I started making one of these then found the sequencer latency was annoying. Was gonna update it to remove the latency basically do all subtraction before the evaluation of each digit) but then didn't actually ever get around to it. I don't actually have a working probe in the full game yet

    @sehven: Yeah, the divider is a weird looking thing and completely unintuitive - it's not something I would have designed from scratch, it only came about through evolution of the samplers. Aya pointed out that the doubel NOT gate configuration was better implemented as a select switch (a point I missed due to evolving design) and phort independently came up with a circuit that is identical in function but with a slightly different configuration, which is worth taking a look at:

    I prefer my version (obviously), but either works soundly
  17. Sehven's Avatar
    Wow. I saw this a few days ago but I've been putting off reading it 'cuz it looked intimidating. I asked you about averaging two signals once and you showed me your circuit: I dismissed it as being too slow to be useful as soon as I saw the timer, not realizing that you were able to achieve a 30Hz sample. Now I feel stupid... er... stupider, though I'm pretty sure the idea I needed averages for would have failed anyway.

    Anyway, I can't even count how many times I've wanted an easy/reliable way to downscale a signal and here it is. Yay! I also like that last bit about differentiation: I'm working on a lightsaber and I've had to use a kinda' sloppy technique of emitting keys on holo and tracking their position relative to the saber to get that whooshing noise it makes, but if I run the player's thumbstick through a differentiator, it should be better and more cleanly and I should be able to get better control over the output.

    As for the multiplication part, I may take a crack at it later, but for now it's over my head
  18. phort's Avatar
    Yay, a new post! I don't know if you've recreated your analog signal probe from the beta yet, but if not, you might find this useful:

    It's super-accurate, down to the ten-thousandths!

    I can tell you how it works if you want.
    Updated 02-09-2011 at 11:32 PM by phort
  19. fatman689's Avatar
    Awesome. You officially rock.
  20. Powershifter's Avatar just .. wow
Page 2 of 15 FirstFirst 1 2 3 4 ... LastLast