------------------------------------------------------------------------------ Hi MemberOfTheDemoScene, You may wonder what this is for. Either you've already discoverd that this production only runs under Windows95 or you at least now you know it. I want to write something about why and how I wrote this production. Because noone asked me anything about it until now I'm not going to call this doc a FAQ. However, I like reading FAQ's and therefore I do it in this style. It's a little bit longer than I intended to write it, however, I think it's still interesting to read. ------------------------------------------------------------------------------ Q: This fucking intro won't run on my machine. A: Well, I can give you a couple of hints but no warrrenty. There shouldn't normally be no problem to run this if you have: 1. A Pentium.. I think it'll run on a 75, but a 90 will definitely be enough. You should also have some memory. I think 16MB are enough. The Intro will run with fewer, but it wouldn't be fun to watch an intro where the databuffers are in the virtual memory. 2. Windows 95 3. DirectX 2.0 or higher 4. a soundcard with properly configured MIDI output. (Wavetable suggested, but it will run on any board.. If you use old soundblaster or compatible don't expect to enjoy the music... ) If it hangs or even don't start your windows95 configuration is fucked up and you should reinstall it. I'll spread a one disk version of DirectX at the partyplace. If you want to have the complete DirectX SDK come to my table and we'll see what I can do for you. ------------------------------------------------------------------------------ Q: This fucking intro crashes on my machine... A: There's still a bug in the Intro. Pascal wrote the entire 3d-engine and I'm unable to understand his source (his words: comments are for beginners). I wasn't able to find the bug nor I was able to find the cause. If it hangs press enter to terminate the program and start again. This bug is dedicated to pascal! However, any exception will be logged to a file called CTSERR.LOG in your root directory. It would be nice if you could send me this file. I'm still searching this bug because we have the same problems in our demo ¯Toasted®. ------------------------------------------------------------------------------ Q: Why does $eeN port the old ¯Lasse Rein B”ng® Intro to windows95? A: Well, I read a lot of stuff in the comp.sys.ibm.pc.demos newsgroup why it would be never possible to write a demo/intro under windows95. (Same applies for DEMO.GER (fido echo in germany)) The most funny sentence I read was: "Ask a windows programmer why it would be impossible". Since I earn my money writing windows95 software, I always wondered why noone tried to write an intro. After the release of DirectX 2.0 I spend a whole day downloading this stuff, reading all those documents and began coding the 1996 version. My humble oppinion about windows95: It's a nice environment to work with. There are a lot of cool programs and with the release of DirectX it's now possible to do all the stuff we do under DOS even for non win95 profis. Do you think the new generation of computer-freaks will use the command prompt to start programs, know how to tweak the configuration to make demos/intros runable? I think in the next few years only hardcore freaks will know how to do this. It's making me sad to think that our productions will be only enjoyed by such a small audience. Therefore it's nessesary to take a look at the new technology and make viewing an intro as easy as possible. This is the best way to make new folks interested into the scene. ------------------------------------------------------------------------------ Q: Win95 sucks! It eats all your processor power, restricts you, doesn't let you access your hardware, blah blah blah... A: Wow! You have to be a real windows95 specialist to know all these facts. I guess you are a great coder. Hey, I guess you write the best-selling applications. You even write books in your freetime. I'm so honoured that you spend your worthy time to read this crap. Please let me kiss your shoes... Is it really so restricted? Does it really makes everything slow? ¯ I ask you: Which programming language do you use? ¯ Visual Basic? ... I guessed it, you lamer. Think before your speak. Know what you write. Don't write such bullshit only because you've read it somewhere. Know what you're talking about. Windows95 restricts you. That's true. But there's nothing that can't be changed. You still have to know your environment. You can get all the processor power available on your system.. Use SetThreadPriority (THREAD_PRIORITY_TIME_CRITICAL) and your program will run fast as light. Even the disk-cache will freeze. Use the 16-bit Lock/Unlock functions. Shut down the whole windows stuff and make everything on your own. You can access everything this way! Write VXD-drivers and make your program enter the highest level of system-control. You can fucking do everyting you want to do. THERE IS NO RESTRICTION THAT CAN'T BE DISABLED! THERE IS NOTHING THAT CAN'T BE DONE UNDER WINDOWS95. Ok, you lamers, I never wanna read such crap about windows95 again. If you can't do something under windows95 you simply don't know enough, about it, ok? Stop writing such crap and play games. Isn't this intro proof enough? ------------------------------------------------------------------------------ Q: I looked the intro and discoverd that there are only little changes. Why did you use the old code? Are you lazy? A: The goal of this production was to show you that windows95 is a usable platform to write intros. To make it comparable to the dos version I tried to make as few changes as possible. I only changed the parts which really disturbed me (for example the ugly font). And.. yes.. I was a little bit lazy... ------------------------------------------------------------------------------ Q: I noticed, that you use MIDI-Music instead of XM. Why? A: At first MIDI is the native windows music format. I tried to rewrite the MXM-Player to work under windows but discoverd, that one thing would make it very hard: You can't write interrrupt-handlers if you don't put your code into a VXD. I was not in the mood to learn how to write VXD's, so I asked DOJ to make a nice MIDI-score. One advantage of MIDI is, that if you have a midi-driver installed you can hear the music on every soundcard in the world (or on any synthesizer if you have one). I know that the sound of the OPL-Chips is crap, but it's still better than nothing. I tested the MIDI-output on my old soundblaster pro and if you think that the sound sucks I absolutely agree to you. The OPL2/3 simply doesn't have enough voices, the instruments are terrible and the driver is buggy. If your ears hurt buy a wavetable-card or turn off your amplifier. By the way, my first version ran with a third party music-library called SEAL. SEAL is a great library. It playes lot's of music formats under DOS, extended DOS, LINUX and several Windows platforms. Unfortunately the syncing of the SEAL Library is not usable for Intros/Demos. ------------------------------------------------------------------------------ Q: Did you use Direct3D for the 3d-parts? A: No, why should I. The 3d-engine from lasse rein b”ng is a good one, and I don't know why I shouldn't use it. If you don't have hardware acceleration for 3d Direct3D is painfull slow. And the capabilities are very limited. Writing your own 3d-engine is way more flexible. ------------------------------------------------------------------------------ Q: About 400K for an intro? Isn't this a little bit too long for an Intro? A: Yes. That's true. However, if you zip the file you'll notice that the compressed version of this intro is ca. 64k in size. I don't have any executable packer for windows, and I don't feel like writing one. (to be exact, I tried to get information about the Portable Executable file-format, but unless I'm not getting a good description of it I won't start working on it). And after I decided, that I'll release this produciton even if it doesn't fit into 64k I added some more diagnostic and debugging code to make my work easier. There's still a lot of this stuff in the program (for example my private exception handler). This anser is quite a bit historic now. I've added so many stuff (the rotating 'R' animation in the vector part for example) and deleted the whole compression because time is running out for the deadline. I'll fix this later and make a smaller EXE (i swear!) By the way, there's one thing I really don't understand. Why in the heck do we have a size-limit for demos/intros executables and data-files? Wouldn't it be better to limit the size of the archive? This would take the burden of writing compressors/decompressors for data. We can read and write zips, but I noticed that many groups can't. A limited archive size would also speed up the demos because decompression still takes some time. ------------------------------------------------------------------------------ Q: Will you continue to write Windows95 Intros/Demos? A: I'm not sure. Maybe. It was fun to write this production and show some guys that Windows is not as bad as they think. However, writing DOS-stuff is still better because win95 intros break several traditional Intro-rules and I can't contribute to competitions. And of course it's more fun to write dos-intros. However, if I find enough time I'll might write another production like this. ------------------------------------------------------------------------------ Q: Will you give us any informations how to code under windows 95? A: Yes, DOJ told me, that I should release a kind of SDK which will help you over the first steps. My windows Demo system is very easy to use, but there are still some bugs in it, and there are many intro specific routines inside. After all, it'll bring you a window onto the screen, lets you change the palette and display your images just like in good old DOS. And of cause the midi-player will be included (for those who don't want to read the helpfiles!) ------------------------------------------------------------------------------ Q: The technical aspects: Was it hard or easy? A: It was a easy. After writing a simple wrapper application that does nothing but displaying a window, handling the basic functions and such stuff I plugged in the DirectX. Letting DirectX blit to the video-display is easy. It's a little bit like VBE 2.0. You can get a pointer to the video-memory (or a pointer to a off-screen buffer if you wish). Write to it and blit the data with one single call to the display. Since most video-cards support windows acceleration this is way faster than under dos (even considering the overhead of going through a DLL). There were some other problems I had to fight with. This intro contains several self-modifying code, and windows protects its code-segments against write operations. I have to thank Chris Hecker for help. He showed me how I can disable this protection. (guess what? Windows has a function for this stuff...) By the way, Chris is a cool dude.. He knows a lot of interesting things and I really enjoy reading his messages. Another aspect was the difficulty to create a fast high-resolution timer. Windows has functions for this, but the resolution of the timer depends on the system. I synced the whole intro to the playback- position of the midi-score. This is the reason why the intro won't run if you have no midi-playback device. ------------------------------------------------------------------------------ Q: Pascal has left Cubic Team. Will there be no more 'quality productions' from Cubic Team? A: God! Of cause we'll continue writing good (and maybe even better) stuff. Pascal has left us after assembly and he got good reasons to do it. After the assembly we agreed that this would be the last production we did with him. There are still some serious financial differences between us. I hope that we'll ever get our fair amount of price-fee from the 2nd place of the assembly demo-competition. Pascal is still one of the best coders I know, but code isn't everything. You can write a fucking good production with simple code. Who isn't bored watching the xxxth object-show at competitions. Isn't it refreshing to see something that's funny and really rocks? ------------------------------------------------------------------------------ Q: I'm a little bit fuzzy on the Cubic Team & $eeN thing. Who is who? A: This is a long story. Cubic Team is a demogroup founded around Pascal, DOJ and Hook. There were still some other members around I don't remember exactly. Pascal started writing the Cubic Player and they felt like doing a demo or intro. They wrote the VEX Intro and some other stuff. In november '95 Scholar and me (Submissive) joined them for the Lasse Rein B”ng project. Since it wasn't distinct wether we should join completely we still used our name $eeN. As always when you work with some cool dudes you develop some kind of friendship. We continued working with Cubic Team and released a couple of funny things at the summer encounter '96. Our greatest success was the 2nd place at the Assembly '96 demo-competition. This day it was obvious, that we'll continue to work together as long as possible. However, ¯Cubic Team and $eeN® is a well known name and we don't feel like changing it. At assembly Climax / Amable asked me why we wouldn't join Cubic Team. I told him we've more or less done, but the name will still be used. It's like the name "De Beukeler und L" (a cake-company). Cubic Team and $eeN sound's better than Cubic Team alone.. (By the way, I agree to pascal that the name Cubic Team as a demogroup name sucks, but who cares about names?). ------------------------------------------------------------------------------ Q: Wanna contact you.. How's your address/email A: SUBMiSSiVE: snailmail: Nils Pipenbrinck Havighorster Redder 17 22115 Hamburg Germany email: 100121.2450@compuserve.com Scholar snailmail Andr‚ Peters Hattinger Stieg 4 22419 Hamburg Germany email: seap2011@hp00.rz.tu-harburg.de ------------------------------------------------------------------------------ Ok, enough written. My fingers hurt, and there's still a cup of coffee in the machine. While I'm going to get me a coffee you can watch the intro again, ok? Regards, SUBMiSSiVE (Cubic Team and $eeN) (ever wondered what my name stands for?) Personal Greetings from SUBMiSSiVE (in alphabetical order): Alpha for a great time at ASM'96 (Swapping socks is fun!) Abyss for beeing a funny guy, fistfucking partner and the most organized organizer at ASM'96 Amphita Design for doing all the colors in the demo, making the cool start picture and for good talk about design-questions! Crash(Polka Brothers) for good time at the Party 5 (and 6) Climax for cool chat and nice email-contact Coma I like your style. Keep on working. DOJ for cool talk, work, and cola-drinking Dr. Dobbs Journal for beeing the only computer magazin worth it's money Fredel for having weired ideas. Hansen for having good evenings. (Du hast die Nase eines Bauern!) Holsten for having terrible hangovers after drinking. JJ my funny brother Lamers for still showing me tori, chrome-faces and ducks :) Lufthansa for beeing a good air-travel company. (No, this is not a bomb, it's a computer-monitor, and it won't explode in the plane. Trust me!) Mefis for nice chat at Summer Encounter '96 MFX for writing a good demo which name I don't know (The one with the cow). Microsoft for writing Windows95. (Hey, the GlobalRealloc-bug isn't funny. And how in the hell should I format a disk using the win32 API?) Michael Abrash for writing good but outdated books. You're one of the top ten coders for me. Mike Oldfield for making great music all the years. My Boss for being a good boss My Coffee Machine for making the worlds best coffee. My girlfriend for having good days all the years. Orange for creating a new type of demos/intros and being a trendsetter. Hey! I still don't agree to the crap pascal wrote into our intro. Have you read the excuse note in toasted? I wish you'll be a trendsetter again. Make new intros. Make OTHER Intros. Pascal for making the jump into the scene easy. for working together in the last year.. Purge for writing ¯Ich kann Euch sehen®. Damm, I love this one. It rocks. Psychic Link for making great stuff. You're one of my favorites Roberto for knowing a lot about graphics 'n stuff. Sagan for nice email-chat. Scholar for fucking long telephone-sessions Shiva for having a good time at mekka '96 Somebody for always beeing happy when receiving a letter TheDemoScene for always giving me motivation to waste my time at my computer. Always making me wonder how they did it., Always pushing the limit. Making me creative. Tran&Daredevil for writing PmodeW (the bug in 1.23 is a good one. It always makes me smile if my computer reboots :) Watcom for writing the worlds best C compiler Westwood Studios for writing Command and Conquer (one of the few games I like to play)