Older But Faster

Life goes on as it has always done, and so does my testing. Occasionally, I manage to find something interesting, such as this Riva 128 which had been abandoned in a waste management center. Might as well give it a new home.

Gotta love the ridiculously small heatsink. At first I thought it was a bad patch-job by the card’s previous owner, but checking VGAMuseum proved me wrong.

I already have a Riva 128ZX, but it was disappointing. Bad results in Direct3D and even in OpenGL left me somewhat cold. Some research, however, showed that the ZX came in two flavors: slower 64-bits SDRAM and faster 128-bits SGRAM. The former was much more common, meaning that you are more likely to find it around today. For comparison, the original Riva 128 was limited to 4MB, but always SGRAM. That alone wouldn’t explain the quality issues, though, since my tests were way worse than I expected. So I thought it could be a drivers issue, and tried the same universal drivers available on the Nvidia website. Indeed, same problems. But here comes STB to the rescue.

As it turns out, this specific Riva 128 is a STB Velocity 128, a fairly common model of its time. And STB made its own drivers for the card. Which I managed to find. I forgot the website, alas, but I downloaded them already. So now they are safe for posterity. After some extensive testing, I did find one useful set: drivers 0132 give me the best Direct3D quality and speed overall.

Only one problem then: OpenGL support is not available. For that, you gotta use the newer 0166 drivers, and those have the exact same issues in D3D as the latest drivers on Nvidia’s website, if not worse. Anyway, OpenGL works well with those, so I was able to test Quake 2 and still get much better framerates than the ZX, which at this point I’m assuming is because of the latter’s SDRAM memory. Unfortunately, with just 4MB of video memory, 1024×768 is never an option. But arguably, this wasn’t the kind of card you’d have wanted to run at anything higher than 800×600 anyway.

Specs: i440BX2, Pentium 3-450mhz, 128MB PC100

I wish I was able to test the ZX with those same 0132 drivers, but there’s a hardware check: when I tried to install the drivers, it let me do it, but then refused to boot Windows 98 due to “wrong hardware”. Crafty. I had to remove the drivers from safe mode. Either way, I’m guessing the scores would have been appreciably lower, just like in Quake 2.

On the plus side, the 8MBs of the ZX give you better textures. With its smaller amount of memory, the Velocity has some trouble with distant mipmaps, as seen on the barman in Jedi Knight here. AGP texturing, if available at all, must not have been very good.

One weird thing: the newer drivers show multitexturing among the available features, although obviously the card cannot support it. With the STB drivers, this wasn’t the case. Perhaps Nvidia added it at the very end of the Riva’s life to make it more appealing to the average consumer. Or maybe the drivers will manage textures to reduce the workload for the CPU. I’m not sure.

Dithering is a sore spot. The Riva 128 shows an overly grainy image, and while noise isn’t quite as irregular as with the Radeon VE, it’s much more prevalent. At least Nvidia got better later on.

And while the STB drivers don’t have the same issues with subpixel accuracy and mipmapping, filtering is still lacking and trilinear is of course absent. So the card has its limits, to be sure. But at least this experience goes to futher show that, on older grapgics cards, drivers could make all the difference.

Now, what is my next card going to be? Maybe another trip to the waste management center tomorrow will show me the way…


My little SiS (6326) can’t be this fast…er

Remember when I tried the SiS 6326 C3 and it sucked? Well, I ultimately decided to test the C5 revision as well. I actually found one still in its box. The stuff people keep around these days… it has its drivers disc (only includes version 1.23, so pretty useless today) and even a small user manual.

Never even heard of this brand. But the side of the box implies that they might have made an Intel i752. Now that would be a rare find.

So let’s look at the facts. The C3 revision had its fair share of issues, chiefly some horrible perspective correction and warping polygons. After completing my tests, I can say that these are mostly gone here. I say mostly, because it’s still not as good as some other cards… but considering the price, it’s not that bad.

One quick look at the manual would show the line “Supports 4MB SGRAM memory configurations”. Suspicious. My model is supposed to have 8MB. And it is. Except that, as it turns out, no game will run at anything above 800×600, choking on Out Of Memory errors. Digging around the net, I discovered that some people believe the SiS 6326 can’t actually access more than 4MB. That seems to be true. It would mean everything else after that amount can’t be used as framebuffer and becomes texture memory. My tests, again, seem to corroborate this theory. Having an 8MB card is useful though, because unlike my 4MB card, it doesn’t drop any textures. And let’s face it, the 6326 is slow as a snail so you wouldn’t really wanna run on 1024×768, even in the simplest games.

I was also able to find a specific “High Angle” driver (yes, that’s the version, it doesn’t have a number) that manages to support OpenGL in Quake 2 (about as badly as you’d expect) and somehow allows 3DMark 99 to run on its default settings. Speed is just as bad as always, perhaps slightly faster than before, but not in any appreciable manner. It’s really all about the improved image quality. Still, OpenGL manages to make it even worse.

The Quake 2 demo1.dm2 hall of shame (i440BX2, P3-450mhz, 128MB PC100). I guess the Riva and i740 don’t really belong in there, but that performance drop on 1024×768 is quite ugly.

Strangely, the card seems to use the same refresh and resolution timings as the newer SiS 305, rather than those used by the previous 6326 model. Maybe some things were changed in between.

With its outstanding issues fixed, the 6326 is a little bit faster than a Rage IIc and even a bit more reliable. For 1998 however, one year after the original (buggy) 6326 was released, it was just too slow, no matter how small your budget may have been. It sure sold a lot though. I wonder how many people bought one, just to discover that it was the true successor of the graphics decelerator? Good times indeed.

This is why we don’t do 16 bits anymore

A new year arrives, and with it, new resolutions! New goals in life! nah, not really, it’s still the same as always. Somebody has to think about old graphics card, and that somebody is obviously me. I even got several more cards in the last couple months. I’m reaching a point where my collection is nearly complete, although some expensive models are obviously missing. I doubt I’ll ever find a PowerVR for cheap. Oh, why did I sell mine years ago? I’m so dumb.

One thing I’ve been noticing lately, is how every chip maker had their own approach to dithering. Back in the days, obviously, fillrate was a precious resource and 32-bits rendering was essentially out of the question for all but the simplest of games. This generally changed with new techniques like Ati’s Hyper-Z, but until that, most people aiming for a mid-end or low-end graphics card were likely going to play games on 16-bits color depth. And that meant either color banding, or some kind of dithered approach. Or maybe nothing, Matrox was pretty good at this, but a few other cards apparently weren’t.

Incoming! The orange sky is really great to see bad dithering artifacts. Not here though.

I fear WordPress compression will ruin the images, so I linked on Imgur. Just click on them for the full PNG picture.

What you see above is a fine example of 32 bits rendering (taken on a SiS 315L, but it makes no difference really). See any color banding? Any dithering? Of course you don’t. There’s 16 million colors up there after all, alpha channel not included.

But alas, that many colors aren’t easy to sustain. I guess we’ll have to settle for 65 thousand colors instead.

So you wanted a budget experience. Have a budget experience!

I suppose there is only so much you can do without MILLIONS of colors. Even so, the Kyro 1 turns in a decent effort. Dithering is visible on the upper right corner, and a bit on the ground too, but this isn’t too shabby. Ideally, if all cards looked like this, it would be great.

Now keep in mind the Kyro would easily power true colors in an old game like Incoming, but this is just science. Sorry Kyro, you get the same playing field as everybody else. And I hate that your drivers make my PC crash half the time and you can’t even run certain DOS games without fatal errors. So there.

Not all is right in Noise Land.

This second picture comes from a Radeon VE, a quite popular budget card of the time, which somehow had three TMUs even though most games never needed more than two textures at once. Fine engineering choice there. Anyway, it wasn’t the only one, because as you can see from the screenshot above, 16-bits rendering wasn’t especially nice.

The noise is evident everywhere, but especially on the metal plate and the portion of sky on the upper right. The distant mountains even show some clear color banding. I would even say this could be actually running in 256 colors, but that isn’t the case. I’ve tried with a couple different sets of drivers, and tinkered with all the options I could find in the settings panel, but to no avail.

I should mention that the Radeon VE came out in 2001, so it’s not even that ancient. The Radeon SDR (which I’ve acquired recently) seems to have the same problem, too, even though it’s technically a different chip. The Rage 128, on te other hand, was better. Weird. This kind of stuff would have been unacceptable in 2000 already, so what’s up with it? No old review seems to make any mention of this problem – were they all playing in 32 bits? I find it hard to believe, especially for a budget card.

Brace yourselves, for the worst is yet to come.

But as bad as the Radeon was, it still wasn’t as bad as the SiS 315 (yes, that same card which I used to take the 32-bits picture, funny what a difference a few bits can make). Alright, so very few people actually even played games on this card, although the number of units available on eBay would easily make you think otherwise. Maybe a lot of people had them in office computers… but it’s the same thing, really.

Anyway, if anyone actually played on this card, and I doubt they were able to use 32-bits colors because of relatively measly specs for its age (simply dual pipelines, and even trilinear incurs a substantial drop in speed), then they would have been greeted by the mess you see above. Vertical lines everywhere – and color banding too? Look at the sky and weep.

Worth noting that, of the three cards on test today, the SiS 315L is the only one unable to really sustain true color rendering. It’s a a cheaper variant of the 315, which already wasn’t a speed monster in itself, Incoming already falls down to an average of 44fps in 800x600x16 (would be more without Vsync, but i couldn’t find a way to disable it and besides it’s not like you actually want tearing while playing). But even the Radeon shouldn’t be excused, since several old games only ever supported 65k colors – and from those, there’s no escaping the dithering patterns.

It wasn’t really something I ever tried to notice in my tests, but now something as evident as these two cards has come along, I can’t unsee it anymore. It will be something to notice in future cards as well.

Beneath Venus Ark, evil stirs

I don’t often talk about anime, and for a good reason: I don’t watch as much anime as I used to. Still, sometimes I do, and now there’s something I gotta say, if only to get it written down before my brain forgets.

The post below will require knowledge about Aikatsu Stars, and you should havew watched the latest episode (86). If you don’t follow it, it won’t make sense. If you do, well, it probably still won’t make sense. It’s an anime for little girls, after all. But anyway.

Girls with abnormally-colored hair do their best now and are preparing. Please watch warmly until it is ready.

The episode opens with Kirara and Aria training for the Aikatsu tournament. Except that their training consists in random exercises while wearing headbands. That’s something a gag character would do, not two of the favorites for the finals. I wouldn’t be surprised to see Ako doing it, but… oh wait, turns out she was the one who advised Kirara. Yeah, you know you are screwed when you need to rely on Ako for advice.

“Look at those poor bastards, wasting their time like that. And my hair is so much more normal than theirs”.

Rei is glancing at them from a distance, her expression one of both admiration and pity, as if to say: A for effort, girls, but you won’t get anywhere like that. So much is her pity, in fact, that she immediately calls for Elza to give them some actual advice, before they plunge down to the bottom of the ranking.

Sorry, I’ll call you back after my mom hugs me.

Elza has no time for her, though, leaving Rei reeling and confused. Maybe she can join the other two in their cheerleading lessons.

Tongue in cheek comments aside, the above seems mostly true, and it does show that Venus Ark is disintegrating from within. The entire place revolves around Elza, and without her, it won’t last long. This goes for everyone, but especially so for the three sidekicks, since they depended on Elza more than anybody else (I’m sure the others did too, but they are irrelevant to the story as of now).

Since she can’t hug Elza anymore, Kirara must now go for the next best thing.

Kirara has undergone some serious character development lately, but even so, she’s still clearly dependant on others: now that Elza is not around, she’s just clinging to Ako (both figuratively and literally, as seen above). She might have learned to stand up for herself, but it’s doubtful that she can do any serious training without Elza’s advice. Her activities with Aria¬†feel like she’s throwing everything at the wall to see what sticks.

“Sorry, Yume, my boss is moping all the time and also wants me to eat steak with her everyday, let me at least have this bit of fun”

Aria just boarded Venus Ark on the premise of Elza being amazing (she’s always fangirling around Yume, so if she still boarded the ship in spite of that, it means Elza must be seriously amazing for her)… and then, not even three episodes later, Elza doesn’t care about her anymore. A darn shame. So now she’s the new girl, doing new activities in a place where she probably doesn’t know anyone. Must be bad for morale, even if underneath she’s still her chirping usual self. No surprise she tries to be around Yume as much as possible. At least Kirara has taken her under her wing. They are both in need of company now, I have no doubt their mood would be a lot darker now if they didn’t support each other.

“But Elza, you know I can’t even do 2 plus 2 if you aren’t here to hold my fingers up!”

Rei on the other hand, even around Kirara and Rei, must be feeling more lonely than anyone else. Of the three of them, she was obviously the one who relied on Elza the most. And now Elza doesn’t care. Go figure. Thinking about it, she had noticed for a while now. Her phone call must have been a last-ditch attempt to get Elza out of the dumpster by reigniting her original talent – coaching girls to become better idols. It didn’t work, and now she’s left to fend for herself. “If you think they need advice, do it yourself”. Good going, Elza, but Rei doesn’t know the first thing about giving advice to anyone.

As things stand now, the Venus Ark crew is heading down a spiral they can’t possibly recover from by themselves. Where next? Either Elza comes to her senses and takes the lead again, or Yume and co. will need to teach them to fend for themselves. Or maybe both. Anyway, I don’t care all that much about Elza, but the K/R/A trio has been growing on me and it’s annoying to see them self-destruct just because their goddess figure didn’t get enough love as a child.

There are still several episodes to go, including some Christmas and New Year ones. Feels a bit weird to have a Christmas episode on the wake of Elza going full crazy, but I suppose it was intentional. Maybe she’ll join the festivities too. And then things will get in motion again soon. At some point, the humiliation conga will start. The way she’s been written, it’s effectively guaranteed. Too bad for her.

The Baroque Survival Project: A Successful Failure

I might have been playing this game a bit too much.

The project I mentioned yesterday ended today, after a long tirad… effort. I didn’t exactly get everything I wanted from it, in fact, we could say I simply proved my old theory from 7 years ago. Nonetheless, it was a difficult process and one worth explaining, if only to understand what I was hoping to achieve and why.

I’ll assume you are familiar with Baroque at least. If not, here’s the gist of it: roguelike where you must do a bunch of things and kill some characters to proceed. The last bit is exactly what I was trying to avoid. What’s the point of saving the world (kinda, ehm) if not everybody is there to congratulate me? And so I set up to look for ways to sequence break the game, and finish it without killing anyone.

The brother doesn’t count, he’s already dead by the start of the game.

Getting into the inner workings of the story would be too long. Essentially the progression goes like this:

  1. Complete the tower once – tower goes down to 17 floors
  2. Kill Longneck to get his crystal
  3. Use Longneck’s crystal to disable the Sentry and get Your crystal
  4. Trigger a confession cutscene
  5. Give Your crystal to Eliza – tower extended to 22 floors
  6. Get the Littles’ crystal – tower extended to 24 floors
  7. Give the Littles’ crystal to Alice – tower extended to 32 floors
  8. Complete the tower again

I’m trying to avoid step 2, and that’s what I did years ago thanks to my trick – exploitation of Hungry Boxes.

The game seems to work with event flags. Since you can restart the game at any time, you could conceivably keep those crystals from the last playthrough, restart the game, and do all kinds of sequence breaking. In order to avoid that, the game doesn’t allow you to store crystals. All items, except crystals. Clever enough, but the developers didn’t count for one thing – you can use a certain box item to “eat” your crystals, then store that, and open it in the next playthrough. Guaranteed to work.

It is a trick commonly used in the PS2 remake to bring items not allowed in certain challenge dungeons, such as swords or coats, and I used it to try and break the game. Of course, the devs still won’t make it easy for you, albeit perhaps unintentionally. Let’s take a look at the process.

The Hungry Box is a kind of box that eats one, and only one, of your items. No other boxes can do that, so you specifically need that… except that it can only be found in the Hell Challenge Dungeon. Sounds ominous? It is. What’s worse, there are no consciousness orbs to transfer your box back, even when you do manage to get it.

I got the blues.

That’s where the Me Brand comes in. Put a Me Brand on the box, and it will be “marked”. Upon your death, which will surely happen because you have to immediately drop all your items and equipment upon getting the box (lest they get eaten and your box becomes useless), on your next life, the item will be available to pick up on the first floor of the tower. Nice. Of course, now you have to run all the way down to BF4, where the closest consciousness orb lies, without picking up any item and possibly avoiding monsters. If you can do that, you’ll have a nice Hungry Box, ready to use, stored in your collection.

That took a lot more effort than these screenshots make it appear. And it’s not over yet.

You’ll also want a Defusal Parasite. The Hungry Box has a very high chance of exploding upon opening, and I believe the game decides whether it will blow up or not upon picking it up for the first time. If the box explodes, you’ll lose the crystal inside, and you don’t want that. So look around for a Defusal parasite – which only appears at random. Sorry. Never said it was easy.

Once you have it, let the box eat your crystal, defuse it with the parasite, and store it. Done!

Some years ago, this method let me store Longneck’s crystal, so I could show it to the Sentry Angel without killing Longneck. From there, the game unfolded as usual. It also let me prove that there are some event flags in the game still – Eliza won’t accept Your crystal until Longneck has at least buried himself. So I had limited success, but it was a breakthrough nonetheless.

Then I had an idea: what if I could skip Longneck’s crystal altogether, and just use Your Crystal and the Littles’ Crystal to finish the game already?

Twice the boxes, twice the effort. Nah, not really, I just used a couple Addition Boxes to replicate my items. Putting in effort also means using your brain.

So, I got myself two Hungry Boxes, two Defusal Parasites, and the crystals I needed. And then I went about the tower again, of course after waiting for Longneck to bury himself, as I had already proven that much cannot be avoided.

Eliza created the consciousness orb with my crystal. Well, my crystal that I didn’t exactly break into the lab to get. I’m sure she’ll never know.

First signs are encouraging: Eliza will accept your crystal and extend the tower. The problem comes later, as the confession cutscene apparently cannot be triggered if you haven’t entered the lab in order to get Your crystal. That’s annoying. So I try a different approach: let’s give the Littles’ crystal to Alice before the 22nd floor.

She wanted the Littles’ crystal, but the Littles are beings made of pain. And now she feels pain and sadness. Be careful what you wish for.

She accepts it and disappears. That’s good, it’s what is supposed to happen near the end of the game, except we’re not near the end of the game. Then I reach B20F, and the Littles’ won’t let me enter their chamber. And then I arrive on B21F and the Archangel talks to me like I’m going to finish the game now.

Oh sure man, get my hopes up.

But I still only get the Painless Man cutscene, not the ending. Too bad.

So was the Baroque Survival Project a failure? A little, because I really wanted to keep everyone in good shape. But in the end, my first success might have been enough – I managed to save Longneck from death (even though he becomes a vegetable) and the Sentry Angel doesn’t really die in the story in the first place (even though he becomes a vegetable). I suppose I already met my goals years ago.

At least I now know the extent to which one can break Baroque. And a vegetable is better than a corpse anyway.

The need for Sequence Breaking

One thing leads to another, and while I wait for the next graphics card to grace my mailbox (did you know that there is not just a SiS 315 and 315E, but also a 315L? The internet apparently didn’t), I decided to return to an old project that I started but not quite finished 7 years ago.

Baroque is not a well-known game in the west. Its original Saturn/PS1 incarnation, even less so. And among those who know of it, there probably aren’t many who finished the game. And how many of those even reached 100%? The number must be in the single digits.

But even the few of us who belong to that restricted category, need to earn that status for good. And that’s why I’m going to try and sequence break the game. No one must die. Enter the Baroque Survival Project again.

Details will come when I’m done. It’s not easy, but I made enough progress and at this point, only the hard parts are left. Wait, that’s not a good thing. Mmh… well, but I already went too far to leave now.

There’s no guarantee I will reach my ultimate goal, but even confirmation that the game can’t be broken is still a result in itself. That would be enough.

My PSP shall be put to good use in the next days. Party like it’s 2010. Glorious.

Of fill rate and pipelines and TMUs

Recently, I was able to realize one of my freams and acquire a Geforce 256 for cheap. Amzing, I know (remember to always check auctions for unmarked job lots!). And of course I went to test it right away. Surely nobody expected otherwise of me. Anyway, it has been interesting. At the very least, it made me question some things about 3DMark 99 and its fillrate test. With a few more cards under my belt, I can finally pose the most important question: “what’s up with that?”.

One word to begin: fill rate, in ye olde days, was a fairly decent indicator of a graphics card’s performance level. It got outdated as soon as shaders came out, but for anything before 2001, you’d generally get a good idea of whether a card sucked or not, by looking at its fillrate. And the maximum theoretical fillrate is equal to ROPs x core clock. For example, a card with 2 pipelines and core clocked at 90mhz, will give out a maximum fillrate of 180 MT/s. If each pipeline has more than one texture unit, you can further multiply the results for an even higher maximum fillrate, assuming the game can make good use of multitexturing. If, on the other hand, a game can only use single texturing, then having multiple TMUs doesn’t matter and you are limited to the number of pipelines. Easy (right?).

So the cards are:


And these are the results:


There are some expected results, but also some strange things in here. While I’m sure some low numbers can be explained by the antiquacy of the test (3DMark 99 came out before any Geforce!), some other numbers are not so easy to explain.

The Voodoo 3 and TNT2 were the most predictable ones. The 3dfx card only has one pipeline, but two TMUs. So the multitexturing score is almost double that of single texturing, since the card is only able to use both TMUs at the same time when MT is enabled. On the opposite side, the TNT2 can use both pipelines at the same time regardless of fillrate mode, meaning the fillrate is (nearly) maxed in single texturing already, and multitexturing brings no advantage.

The almighty Geforce 2 follows a similar pattern to the Voodoo 3: since each of its 4 pipelines has 2 texture units at its disposal, multitexturing is again almost doubled. The numbers, on the other hand, are far lower than you’d expect with this architecture and its core clock. It should be able to reach 1600MT/s, but only gets to about half that much. We’ll get back to this later.

The Geforce 256 has a much more lopsided architecture, with a whole 4 pixel pipelines but no more than one TMU for each. So the numbers here are weird. The card should not really show any difference between ST and MT, but it does. And quite a bit, in fact.

My first assumption was that, perhaps, 3DMark 99 was not made to use more than 2 render units. That would explain the low Geforce 2 numbers. But if that were so, the MT score for the 256 shouldn’t be so high, since it would only be able to use two of its TMUs Another possibility is that the software simply doesn’t use more than 4 TMUs at once. But again, in that case, the ST score for the 256 shouldn’t be so low.

I should mention another couple things: first, I remember an old test where the Radeon VE, with its fairly unique architecture (1 pipeline and 3 TMUs) was able to reach an almost triple score in multitexturing. So the program definitely can use more than two TMUs for the test. Also, I remember the Radeon 9100 reaching around 800MT/s in single texturing, which is close to the limits of its 250mhz x 4 pipelines . So I can also say the software is not limited to a certain maximum fillrate.

In light of these results, I don’t really know what to say. Maybe a few more tests, perhaps with slightly newer cards, are in order.

Edit:¬†I tested both the Radeon VE again, and the Radeon 7500 which is fairly similar (2×6), and I was wrong – the two cards only get roughly double results in multitexturing. So it would appear that the multitexturing test in 3DMark 99 can only apply two textures at the same time. To be honest, the 3 TMUs architecture of the R100 series was quite unique, and every other AGP card since has had 2 texture units per render unit at most. So there wouldn’t be much point in supporting all three (I wonder if the Radeon 7500 would have had the same framerates with 4 TMUs instead of 6).

Writing about whatever comes to mind