by Thomas Wilburn » Jul 25, 2001 @ 12:13pm
Update: the monochrome iPAQ is giving me fits, especially when it comes to accessing video memory. All attempts to write to the pixel found by GXBeginDraw_() crash the device immediately. Doesn't matter what I write, doesn't matter what type I use for the int*, doesn't matter how much I add to the pixel as "padding." <br><br>So I'm fed up with attempting to adapt the vanilla PQ routines. Instead, I'm going to try to copy Jacco Bikker's EasyCE routines over as intact as possible. Since I know they work (or at least I assume he's tested them) this should be pretty much a foolproof last-ditch effort. If it doesn't work, well, I'm at a loss. I've tried everything I could think of, and none of it's been working so far. We'll see.<br><br>I'm not sure if this will be faster or slower than the routines used for the color version. On the one hand, EasyCE calls for me to get a new pointer to the display surface every time I go through the display loop (and I'm not messing with it until I understand it more or at least get it working). On the other hand, I'll be copying single bytes from one place to another instead of 2bytes per pixel. On the gripping hand, the current code will probably convert from the rgb565 palette to Greyscale from within the loop, which isn't expensive but still adds cpu cycles. If this works, I'll try and move as much as possible out of the display loop and see if that helps. I think it'll be playable in any case, for two reasons: first, the screen is a cheap passive-matrix, which I've found make low framerates tolerable due to their "blur" effect. It's kind of like fullscreen anti-aliasing for free. <grin> Secondly, the real meat of the rendering cycle seems to be in the polygon rendering. No matter how expensive I make it, I have trouble believing that any buffer-copy routine is going to be much of a bottleneck. Here's hoping. New update tonight if it works.<br><br>Thomas Wilburn<br>viva la 3150!