In any case, keep the 12x2 together. An older standard only required 10x2, which was extended by 2x2 more. All current computers I know require 12x2, not sure why new PSUs still have those splittable.
If you look at the mobo-page, those 2x2 deliver +12, +5, +3.3 and ground. If you jam them into the CPU power connector, baaad things will happen.
About the CPU connector: each 12V line can only supply a defined amount of power. If you have a hungry CPU, you will need 4 lines. Low-end CPUs will be happy with just two (both my 65W Athlon and my fusion box only have a 2x2 connector).
Conversely, only high-wattage-PSUs will provide a 4-line connector, because a low-end-PSU couldn't supply enough power to satisfy the standards.
My guess is that your motherboard supports a wide range of CPUs and must provide a 4-line connector for the highend-ones. Low- to midrange-CPUs should work fine with a 2-line connector. But I can't tell you whether your mobo actually handles that case gracefully (i.e. whether it's a supported configuration), so don't blame me if your fridge blows up.
I do like how the votes only add up to 99%. The other 1% of votes are afraid of Nach and don't dare to show their faces.
With Shinryuu's helmet, you can see the inside of the helmet at the lower left. With Bisqwit's helmet you can't, even though the shadow suggests a position of the light source that would clearly illuminate the inside of the helmet.
The only explanation is that the helmet is not just an empty helmet, but it contains a dark shadow within. Every time I view that helmet, I expect a pair of red eyes to show up. I've never seen them, but I know there's something dark inside. Lurking. Watching. Probably humming the Tetris music.
Bisqwit wins!
Ahh, nice. The immediate improvement is that the new algorithm will prefer low-contrast screenshots to fill in unicolor-areas, removing a lot of noise from the mosaic. Didn't think of that :)
There seem to be a few places where the algorithm picked structured screenshots to emulate image structure, but that's barely visible in this example.
You will get much better results if you don't just compare the average color of "mosaic window" & tile screenshot, but consider image structure. A mosaic window that looks like
######
#####.
####..
###...
##....
#.....
is better approximated by a screenshot with diagonal features than something that averages to gray.
You can simply scale the screenshots to match the resolution of the mosaic window, then compare differences for each pixel. Sum up the errors (or squared errors) of each pixel and pick the best tile.
Since this is computationally expensive, it may be wise to use your averaging method as a first step to filter out any screenshots that are way off, then use pixel-perfect matching on the best fits to determine the winner.
Further improvements can be made by disallowing repeating screenshots. That's easy to code, but obviously needs a larger library of screenshots to work.
(of course there are plenty of pre-made programs that can already do this, but where's the fun in that? ;))
Is that supposed to manipulate the enemy's card deck in a card battle, i.e. force them to play their rare cards at the earliest frame possible?
/edit: ok, let me ask a slightly less stupid question: are you just using it to manipulate the earliest frame where your rare card is available, or do you think you can speed up the battle by forcing a different pattern? Minimizing the amount of card-flip-animations, minimizing CPU's thinking time, minimizing cursor movements for your own move? Is any of that going to help?
y-cables are nonstandard, if your motherboard supports them you could expect
a) that the feature is documented / advertised
b) that a suitable y-cable is either included or available directly from the mobo-vendor, because they aren't standardized either.
You could check whether Pin 6 carries any voltage (if you have the equipment). Otherwise you just may have to buy the cable and try.
The End saves 30 seconds against Diablo.
Should it be used anywhere else? Any other limit break executes faster, so it's only useful if you'd need several attacks otherwise.
Remaining Bosses on Disc 1 that can be fought with Selphie:
- President Deling -> Elixir (The End doesn't work against the undead, anyway)
Disc two:
- Robot after the missile base -> Irvine is fast enough
- Raijin, then Fujin and Raijin -> wimps.
- Seifer, again -> on par with his groupies.
- Edea -> should be treated like a lady: renzo.
Disc three:
- undead something -> elixir
- Doc Odine -> Ze doctor iz not your enemy. Bummer.
- Fujin and Raijin -> still wimps.
- security robot -> scrap metal.
no dumbass, that was a renzo!
Disc four:
- Adel with Rinoa-Breastplate: surprisingly, Rinoa would survive that (remember, The End doesn't work against the undead!). It's slower though.
- Several Adel-forms: unless you can skip some forms with The End, it's way too slow.
- Ultimecia's guard dog: no limits available
- Ultimecia: hmm.. maybe against the second or the last form? That would be somewhat anticlimactic..
Just deploying a hard drive image is not an option, right?
Quick googling suggest that all you need to do is:
- create an additional windows partition on the USB stick
- copy contents of installation CD over there
- add grub entry to your boot partition to boot from windows partition
have you tried that?
I remember watching my dad play this game back in the amiga days.
The amiga version is much more beautiful, featuring colors AND filled polygons:
Though of course there's a slight lack of an emulator for that.
Maybe the PC Elite Plus version is worth looking at?
Would an "Elite Rank" TAS really be interesting? AFAIK your rank is based entirely on kill count..
Watch Section 2 part 2 closely. Around the middle, he's entering the menu for a while.
What he's doing:
- refine Curagas from Tents and Cottages
- Card Mod Gayla -> Mystery Fluid -> currently unused, probably for Meltdowns later
- Card Mod Forbidden -> Betrayal Sword -> needed later to get a weapon for Squall
- Card Mod Diablos -> 100 Black Holes -> 300x Demi -> +36 Mag for everyone
- Card Mod Quistis -> 3 Samantha Souls -> 180x Triple -> +70 Str for one char, +56 Str for another
- Card Mod Zell -> 3 Hyper Wrists -> 3x STR+60%
Thus, Laguna goes from 42 str to 124, Kiros from 51 to 160.
Compare the previous battle against a soldier: Laguna does 386 damage. In the battles on the cliff, it's ~1200 while Kiros hits above 2000.
Nice WIP! I like the little things you manage to sneak in when they don't waste time.
A few questions though:
- it looks like you're setting battle speed to ~75% instead of max. Why is that?
- why do you enter the cafe at the end of the X-ATM092 sequence? Is it to avoid the FMV of quistis blasting the tin can?
- During the dancing scene, couldn't you manipulate a critical hit when Squall steps on Rhino's feet?
As you noted, it's not going to work by "evenly stretching" the interval. You might intuitively expect that you need an even mapping to preserve densitiy, but since both sets are infinitely dense, that's not required.
A simple bijection from ]0;1] to [1;\infty[ is given by f(x) = 1/x. Add a few shift tricks (similar to p4wn3r's) to get a bijection from [0;1] to [0;\infty[.
For easy to understand mappings from the unit line to the unit square, see Space filling curves. These are pretty useful in databases when working with multi-dimensional data. For example, you can map your data to the unit line and insert them into a B+-tree - when choosing a good curve, this will preserve most of your data locality. Area queries can thus be answered efficiently by answering a small number of range queries.
So far, there seems to be an agreement that this run is very well done. If there was already a category for it, it would certainly be published.
We also agree that this run doesn't fit into an existing category and would need it's own.
So is the "GT Code" category unique and entertaining enough to replace an existing category? I don't think so. Certainly not the any% or 100% runs. I wouldn't have it obsolete the glitched low% run, either - although it has a long xray sequence, it features a pretty ingenious solution that looks a lot better than a cheat code that's easy to confuse with blatant video editing.
So should we allow an additional category for Super Metroid? Why, I love Super Metroid, so don't let me stop you. But there's more valid categories not featured here: RBO, unglitched 14% low%, GT Code, maybe GT Code 100% (ugh) .. if given the choice to add only one of these, I'd say RBO. Second choice would be 14% low%.
(AFAIR neither of those has a publishable run at this point, but that's a different matter)
FWIW, I think this site needs a good RBO and a good SM Redesign run to suitably cover everything SM related. Still hoping Saturn would submit his redesign run instead of countless runs on questionable categories ;)
It looks bad, it sounds bad and it makes that battle look cheap. Pwning bosses with actual battle tactics looks much better.
Please don't reduce the game to cutscenes and pause screens ;)
The big game sites / magazines have some specific hardware to capture video from those consoles. It's very expensive and not easily obtainable for regular consumers, though.
calculated using:
[code pretty_sequence.cpp]// g++ -lgmpxx -lgmp pretty_sequence.cpp
#include <iostream>
#include <gmpxx.h>
using namespace std;
const int n = 2011;
int main()
{
mpz_class p[n+1][3]; // p[n] = P(n,i+1)
for (int i=0;i<3;i++)
p[1] = 1;
for (int i=2;i<=n;i++)
{
p[0] = p[i-1][0] + p[i-1][1];
p[1] = p[0] + p[i-1][2];
p[2] = 2*p[i-1][1] + p[i-1][2];
mpz_class total = 2*p[0] + 2*p[1] + p[2];
cout << total << " pretty sequences of length " << i << endl;
}
return 0;
}[/code]
(There's no need to keep the whole array in memory; two rows would be enough. But there's no point in optimizing for memory when it runs without swapping.)
You choose n = 2011, so I guess you have some specific use of this sequence in mind. Which is it?
So you've actually used the same recursion I've suggested, you just looked at it from a different perspective )
You've implemented it top-down using recursion+memoization, while I implemented it bottom-up. You've also skipped the sorting, thus calling the inner loop n^2 times instead of ~(n^2)/2. But it's basically the same recursion! What I called sequence[i] is exactly your caminho(x), with prev/length being prox/numCaminho!
Your code is indeed O(n^2), which I strongly suspect to be optimal. But there's still plenty of room for minor optimization in your code
- sort the boxes first
- memoization is a good choice when you don't need all values. Since all of them are needed anyway (lines 53f), the bottom-up approach should be easier for the compiler to optimize since it avoids function calls.
- you've precalculated all nestings into a matrix. Since no value is used more than once (but some aren't used at all) and you didn't apply any tricks to speed it up, calculating a nesting when needed should be faster. On line 27, try replacing "if (g[x][i])" with "if (encaixa(i,j))" and remove g[][].
- On that note, you'll test encaixa(i,j) before checking if (caminho(i)>maior). When you remove g[][], the second check should be faster, thus it's better to switch the tests.
- if you've sorted the boxes, it's more efficient to check the highest boxes first. This improves the chances to find the largest sequence early, saving further encaixa() checks. In your code, you'd change the loop in line 27 to "for (int i=x-1; i>0; i--)". (i=x-1, not i=n-1, since the boxes are sorted)
But that's not important unless there are bonus points for speed )
Good catch on your edit2!
the secret of dynamic programming is to find a good invariant that can be extended. The "best solution to k boxes" doesn't work, but that's not what I've been doing.
length[ i] contains the best sequence of the boxes 1..i that MUST contain (thus end in) box i!
e.g. length[5] could contain the sequences (5), (1,5) or (1,3,5), but never (1,2,3,4) or (3,5,7) because neither ends with box #5.
Let's try your example, ordered already:
100 50
200 60
300 70
400 10
500 20
600 30
700 40
instead of length / prev, I'll just note the respective sequence.
First box:
only one option
sequence[1] = (1)
Second box:
Either (2) or box 2 appended to a known sequence, which would be (1, 2), which is valid. Keep the longest one.
sequence[2] = (1,2)
Third box:
Either (3), or 3 appended to one of the two already known optimal sequences. The new options are (1, 3) or (1,2,3), both valid, pick the longest.
sequence[3] = (1,2,3)
Fourth box:
Must be (4) because the other combinations are not valid
sequence[4] = (4)
Fifth box:
Either (5) or (4, 5), because (1,5), (1,2,5) and (1,2,3,5) are not valid
sequence[5] = (4,5)
Sixth box:
Either (6) or (4,5) or (4,5,6), because (1,6), (1,2,6) and (1,2,3,6) are not valid
sequence[6] = (4,5,6)
Seventh box:
sequence[7] = (4,5,6,7)
Now we have 7 sequences, each being an optimal solution to a restricted version of the problem. But our globally optimal solution has to end with one of our boxes, so one of our local solutions has to be the global solution. In this case, the longest sequence found is in sequence[7] with length 4: 4,5,6,7
I cannot vouch for the correctness of the pseudo-code above (it's untested), but the general idea does work.
I'm curious, how did you solve it without dynamic programming (or an equal recursion), and what's your upper bound on runtime complexity?
Sort the boxes by their largest dimension. That way you have the order of the longest sequence, you "just" need to find a subset that works.
Instead of checking 2^n subsets for length and validity. try dynamic programming to do it in n^2:
int length[n]; // length of the longest sequence ending on (and including) box number n
int prev[n]; // previous box in said longest sequence, -1 if sequence starts here
for (int i=0;i<n;i++)
{
// initial guess: the sequence containing only this box
length[i] = 1;
prev[i] = -1;
// find a better sequence if one exists
for (int j=0;j<i;j++)
{
if (length[j] + 1 > length[i] && nests(i, j))
{
length[i] = length[j] + 1;
prev[i] = j;
}
}
}
Now find the largest entry in the length array and follow the prev-pointers to get the sequence.
(you might get a speed-up by precalculating nests(i,j) - even though you won't ever need all of these combinations, using transitivity could avoid some nesting checks. I suppose this is only faster when using lots of dimensions.)
Luck manipulation in this game is horrible. Including enemy drops in a rupee route is a recipe for insanity, unless it's preceeded by a lot of RNG research and a LUA script. :/
Is it even possible to remind an omniscient being?
wait, jealous? Wasn't there something about that in the tenth commandment or the sixth cardinal sin or somewhere?
btw, if I happen to offend my girlfriend by some well-meant deed, there's a simple solution in a working relationship: she tells me. Then again, she could just sulk and expect me to read that one book amongst thousands that claims to solve all relationship trouble, without ever telling me which one is the correct book. I'm not sure if I'm to blame for the resulting problems.
If god is interested in a relationship with us, his communication and courtship skills sure seem sub-par.