Win95GPE Status Updates

June 10th '97: For those of you still wondering, this page is far from dead. I'm currently in the middle of overhauling the entire site, the new version should be up in a week or so.

For those of you who are waiting for the source code to play AVIs with ddraw and dsound, please be patient with me. I've just started working with DirectX 5.0 and I want to make sure my stuff is compatible with it (my stuff may not even be needed if ActiveMovie is good enough).

I have however started working on an article showing how to use DrawPrimitive. DrawPrim is sheer bliss to work with compared to execute buffers. The documentation I have is pretty poor, so an easy to use step-by-step tutorial will be probably be of help to many. As soon as DirectX 5.0 comes out of beta and I'm free from the NDA I'll put the article up on this site.

April 27th '97: The player, with source code, is now up on the page. My next task is to get the MCI article on the page, and I'll probably through a few more up there while I'm at it. I'm also in the process of making even more additions to the texture mapping article. It seems many people still don't get the idea of how to map triangles. I'm also adding some stuff on cylindrical mapping (aka Zork Nemesis) and "cube mapping". I might also add a bit on spherical mapping if I get the time.

April 24th '97: The player code is now finished! Just a few more days and it'll be up on this page (I just need to add on some kind of interface that doesn't totally suck).

Last week I got hit with a nasty virus that required almost 3 days non-stop sleeping to get over. Then there was the madness at work catching up on the few days I missed. In situations like this it's my personal projects, unfortunately, that get pushed back.

I did get some work done though. For a while I was having a nasty problem with one particular mod, (bartman.mod) that was distorting really bad. I spent a few days trying a variety of mixing techniques and actually wound up with something that sounds even better than what I had before. In the end, the problem turned out to be a bug in my clipping code (for various reasons bartman.mod requires a fair amount of clipping, which is why I only heard the distortion with that mod).

Tip for this week: take a break from coding and go see the movie "Anaconda". It's cheap as all hell, the scripting is hideous, the acting's worse and the so-called CGI is laughable. In short, it's so cheesy it's actually kinda cool :)

April 14th '97: Oops! Seems I uploaded the wrong page last night, sorry 'bout that everyone. Tonight I finished off the Win95GPE MCI article, it's one of a few that cover the basics of Windows 95 programming. Won't be much use to those of you who already know Win95 sound coding, but for those of you just starting out it'll help you figure out how the mod player works (I haven't done a DirectSound port of it yet, and probably won't in the near future). I'll put the MCI article up on this page either tomorrow night or Wednesday night and see what kind of response it generates.

(BTW, that's the last time I give up smoking right before tax time! Three weeks and counting.......)

April 13th '97: Thanks to everyone who contacted me regarding the mod-player code, and my apologies to those I haven't had a chance to respond to personally (I read and saved all requests). The response was much greater than I thought it would be, so I'll be placing the app and code on this page in another week or two. In the mean time I'll be trying to iron out a few minor effect problems that are still left. I've had a few people request that I port it over to native windows (it currently uses MFC), but I don't really have the time to do this sorry. The actual player class is well commented and pretty easy to understand though, so it should be simple enough for people to figure out. My next task is to port this over so that it mixes into a DirectSound buffer for the game creation system. If I get time I'll try and add some support for a few other formats as well.

April 4th '97: Guess I'm overdue on updating this page again, huh? As usual, work has been busier than ever. I'm getting ready for the CGDC later on this month, if anyone's going there and wants to meet up for a beer or something lemme know. Meanwhile I've been having a little play around with developing a mod player class for Win95. At the moment it's little more than a simple technology test. I wanted to see just how easy/hard it would be and what I should watch out for when I write a real class for the Win95GPE game creation system. I don't have all the effects in yet, but I am ready for some testers who know a bit about music to listen to the player for me and tell me if the quality's good enough. The technology test is fixed at 16-bit 44kHz with dynamic oversampling, surround sound and channel shift (I'd like to get a soft-clipper and some software filters in, but I may not have the time). I haven't checked the speed of it yet, but it seems fast enough and the inner loop is pretty damn tight. To my ear it sounds better than Mod4Win, but I'm not what you'd call musically inclined so I'll need some volunteers to help me out. In the mean time I need to finish putting in all the effects and also add some XM loader code.

And now for a little test: this page has been clocking about 150 hits a day, but I'm curious as to just how much attention the content gets (such as this page). If you'd like me to put the source code for the test player on this page then e-mail me and say so. It's written for MFC, but would probably port to regular C++ easily enough.If I get enough people pestering me about it, I will!

Oh yeah, I did a bunch of testing with Cosmo a few weeks ago to see if it was good enough to use now. It's not! You still can't use it with DirectDraw surfaces, so it's basically worthless (unless of course you like using GDI for everything).

March 13th '97: The game creation system is currently undergoing some major changes. After having a closer look at the architecture I decided that I may as well use threads for a few other things, particularly the video playback classes. This means that developers can either control playback themselves (handy for things like sprite animation) or tell the surface to start "playing itself" (useful for things like animated mouse cursors). I've also moved everything over to MSVC++ 5.0 and I'm looking into the feasibility of deriving new COM objects based on the DirectX objects. Whether it can be done or is even worth it remains to be seen. I also spent some time updating the articles (the new texture article appears on this page) and I wrote up a preliminary draft article explaining how to get flicker-free color and/or animated cursors using DirectDraw and DirectInput.

Feb 16th '97: Sorry for the recent lapse in status updates, I've been pretty busy with work and had to devote most of my spare time to meeting a deadline. I did get some work done though; I cleaned up some old DirectInput code and threw that into the game creation system. In order to get everything working properly I had to create a background worker thread to handle events triggered by the mouse device. This means that the system as a whole had to undergo some minor modifications in order to make it thread-safe (which isn't such a bad thing really since multi-threading can be quite useful in some games). I'm quite pleased with how well it's working, the system easily supports flicker-free color and/or animated mouse cursors (BMPs and AVIs) which are rendered independent of the main application's refresh rate. The only things I really have left to do are finish DirectInput support (ie keyboard and joystick), add some multiplayer classes and maybe support for color fonts. I intend to update current D3DIM classes to DX5 some time over the next 3 weeks or so (got some reading to do first). Oh yeah! If anyone has anything they think should be in a DirectX game creation system then I'm open to suggestions.

Jan 26th '97: Took a break this weekend and went skiing in Colorado (more specifically, Vail). The MFC/IM article will be up by the end of this coming weekend.

Jan 19th '97: Added D3D IM support to the Win95GPE game creation system. IM is sheer bliss compared to OpenGL, I always thought it would be the other way 'round. Also wrote up an article on how to use IM and how to incorporate it with MFC. I'll be putting a pre-release version of the article on this page this coming weekend when I have some more free time (been pretty busy with work and all).

Jan 12th '97: I've decided to drop OpenGL support from the Win95GPE game creation system. The HEL is just too too damn slow and even if you have accelerated hardware it's virtually impossible to integrate it with DirectDraw. Maybe Cosmo will be better, I'll have to wait and see. In the mean time I'll continue to concentrate on D3D.

Jan 5th '97: Experimented a bit with OpenGL this week, I'm hoping to incorporate it into the Win95GPE game creation system. So far it's been very dissapointing. OpenGL's HEL runs incredibly slow, even slower than I had anticipated. It does have some really cool functions though so I'll have to see if it's feasible to use them in real-time games.

Dec 29th '96: Put some more work into the Win95GPE game creation system. I now have full-screen video playing very smoothly on ddraw surfaces (twice as fast as MCI) and sound playing in dsound buffers (well almost...still got a few bugs to iron out in the sound).

Back to the Win95GPE Home Page