From: frenchc AT cadvision DOT com (Calvin French) Newsgroups: comp.os.msdos.djgpp Subject: Allegro: Fakemode feasable? Date: 10 May 1997 05:00:11 GMT Organization: Reham Salad Lines: 60 Message-ID: <5l0vcr$2jje@elmo.cadvision.com> NNTP-Posting-Host: ts13ip195.cadvision.com Mime-Version: 1.0 Content-Type: Text/Plain; charset=US-ASCII To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Hey! I'm building a 3D lib based on the allegro 3D stuph, and my plan is to design everything for 32-bit graphics and then scale down at runtime (as neccesary) all the way to VGA Mode-X. Colorscaling is done when the double buffer is finally blitted to the screen, so with Allegro it's fairly simple to implement this trick. Now, I know basically how to build ye olde' 256-color colorcube, ala everybody else. But having played now played N64, i've decided that this sucks. Remembering a program/source I once snagged off x2 (x2ftp.oulu.fi) called FAKEMODE, I decided at the very least I can do at the least 4K colours, given a bit more thought, possibly even 16-bit, although at the cost of speed. What I would like to know is, how *much* speed? Here is the plan for each mode. 4K mode: Basically we use vga modex 320x400 (480???) with 2 hardware pages and flip them every vtrace. Each pixel requires 4 bytes to write, 2 each for green and red+blue. Pick up fakemode if you don't know how this works; this is very convincing. My screen literally *glows*... The only speed loss comes at transfering the bitmap to vram, since all the internals are full 32-bit colour. 16K mode: Basically this is the same as 4K mode with one difference. We have to use 2 palettes and set them every vtrace. Is this possible? I have no idea how expensive palette setting is, I imagine it's fairly expensive, but I really have no idea. Also this mode may not be possible because of flicker; we can't stagger pixels like we could in 4K mode, but actually we only have to copy 2 bytes per pixel and use mode 320x200, so I suppose this is really a lot different from 4K mode. If the flicker was tolerable, this would probably be feasable (if the palette can be set) 4K mode could also, alternatively be done quickly if we used 320x200 and didn't use pixel-staggering, but again the flicker could be bad. 18bit mode: This came to me a minute ago but again we are likely to have real flicker probs. We use 3 pages instead of 2, in vga modex 320x200 (or 240) and set 3 pixels on each from our constant-palette of 64 red, green and blue colours. 24bit mode: Okay, this is the super-mode. We use two pages at 640x400, stagger pixels, have a constant palette, and each pixel requires 4 bytes to set, but the flicker is bad (unlike 4K mode, which like I said before, looks positively amazing) Okay, kapeesh, yes, no, eh? Or is this another one of those "sure buddy, sure, sure, then you can do the win95 emu"-feasabilty-rated ideas? In case you're wondering, I know that truecolour cards aren't that expensive, even 3D truecolour cards are only like 160$, so maybe that really is my bestest solution. Don't worry about coding complexities, let me decide if it's worth it to code for. I'm only looking for feedback on which of the above is feasable. Now that i think of it, 16K mode isn't a great idea since we have to set the palettes *and* we get horrible flicker, which in the end can't be better than 24bit mode. In case you're wondering where I get 24bits from plain ole' VGA which is unabashedly 6bit colour resolution, I use 64 shades of grey. So, heh, anyways, I'm insane. - Calvin -