GreatBarrier86 wrote:what makes hq2x so cpu intensive?
Also, what kind of comp does it require? Dual 3.6Ghz Pentium Ds with HT? (If they even make that)
Older patches worked on my old 300MHz laptop with a fair amount of frameskip, however. Newer releases got (a lot) slower, as already explained. My 1.4 Athlon (non-XP, non-64) runs hq2x quite nicely.
To understand why it is CPU intensive, I'll compare hq2x to advmame2x, which is the closest in spirit: Both look at surrounding pixels to find out if there's a line anywhere. If they find out that there is indeed a straight line, they draw that line "sharp". Advmamex does this via code like "if (pixel1 = pixel2) ...", so it only catches exactly equal color pixels/lines. Moreover, "if" queries are relatively slow on today's CPUs (think "branch prediction failure").
Hq2x does a similar thing, but there are three differences in the general principle and one difference in how I implemented it: 1) hq2x uses slightly different decisions when checking if there's a straight line somewhere (this is the reason for the rounded-vs-cornered look in avmame vs. hq2x); 2) it interpolates (a kind of antialiasing, in fact); 3) it doesn't check pixels for equality, but uses a fuzzy threshold, which takes some time to calculate; 4) it doesn't use "if" queries but a big lookup table that fits typical L1 caches _exactly_. (1) is irrelevant, (2) and (3) burn a lot of CPU cycles, (4) is the reason for the cache problems mentioned.
DosFreak, Hq2x does not use the video card at all. You are confusing this with OpenGL-HQ, which should look exactly the same, but runs on a (directx9-ish) video card.