Copper by Surprise!Productions [web]
*C*O*P*P*E*R* ~~~~~~~~~~~~~~~ Copyright (C) 1992 by Surprise! productions This file gives some informations and (technical) details about the Copper demo. Of course you don't have to read this shit, but I would apreciate if you do it anyway.... Copper requires: * About 430k of free memory. The Exe-file itself needs about 330 kilobytes (uncompressed), approx. 96kb more are needed during program execution. * A more or less 100% IBM compatible standard VGA * an Adlib, SoundBlaster, SoundBlaster Pro, Thunderboard or any other Adlib compatible Soundcard. Without a soundcard you won't hear much of the whacky sound :-( This demo is some kind of unusual for PC demos. A lot of demos achive their effects by massive usage of the CPU. But this one hardly uses the CPU, the effects are achieved by hardware functions of the VGA. A tipical example for a 'CPU-heavy' program is the fucking best PC demo ever made: Unreal by the Future Crew. On fast CPU's the demo's great. But on a slow CPU, for example a 386SX or even a 286 the action gets a bit sickening. This is because nearly everything from grafics to sound output is done by our poor and lonesome CPU. I wanted to create a demo which simulates a copper in a PC. For your information: The copper chip is one of the AMIGA's chips. Besides of the blitter, the copper is the main reason for the AMIGA's great grafics and demo capabilities. I'm not the first to simulate a copper. Quite a few coders have found out how to do it. But they only used the copper trick for changing the colors each raster line. I want to show all those coders that far more powerfull effects can be done by this mighty copper trick, even in combination with music. (By the way, 'copper' is often also called 'raster' trick on PC) To say it loud and clear: !ALL! effects occuring in this demo are hardware functions of the VGA! Believe it or not. The only problem is, that these hardware functions have to be absolutely perfectly timed. This is quite difficult, because no two CPU's run at the same speed. But! since this demo is based on Hardware effects, this demo depends very much on the VGA adaptor in your machine... If you've got an cool adaptor such as a Tseng ET4000, this demo should run perfectly on a 286. But if you've got a xy-taiwan-0%-compatible-slow-vram then it won't help much to have a 486! So don't blame the coder, blame your hardware! I can't guarantee that this demo will run on each PC! Anybody who ever has written a demo for the IBM knows, how difficult that is. And because of the difficult, complex and tricky timing and synchronisation algorthims I had to use, I guess this demo's gonna bug on quite a lot machines. But if it does work, then you'll see a great show. Copper has been tested with the following configurations: * 486, 33/16 Mhz, Tseng ET4000 * 486, 50/25 Mhz, Tseng ET4000 (8-Bit DAC's) * 386, 33 Mhz, Tseng ET3000 On some computers, even on some using a Tseng, the parts in which I used colorpages, don't run. (The computer & the music doesn't stop, only the screen stays black.) If that happens, press Escape, then the part should be skipped. Copper DOES NOT run properly under OS/2. So you really shouldn't bother trying to run it. If you still are crazy enough, and want to see 10 minutes of awfull flickering combined with bad timed music, you should at least run it as full screen session, simply because OS/2 doesn't like Chain-4-mode in a window. Now some technical details for guys, who think they could do it better: Copper runs in the undocumented VGA mode known as tweaked or chain-4 mode. Check your VGA hardware reference or e.g. 'Mental Surgery' by FC for details on how to initialize this special mode. The music routine is an optimized Adlib player by Jesper Olsen of Vibrants. It runs at 70 calls per second. It's NOT called by timer, instead it's called through vertical interrupt. (A big HI to JCH! I know, you've told me to ALLWAYS use timer, but I couldn't resist the temptation of doing it my way...) The whole program is written in 100% of Assembler (what else?). I used TASM / TLINK for assembling it. It runs in .286 mode (I used some PUSHA / POPA commands here and there...) Some details on how to program copper effects: * check bit 0 in 3BAH / 3DAH (input state #0) for horizontal retrace * change colors with usual 3C8H / 3C9H registers * use 3B4H / 3D4H, index 13H for stretching * use 3B4H / 3D4H, index 4 for wobbling * use 3C0H index 10H,14H for color pages Of course, the above is only a brief outline on how to do copper effects, but one should experiment to find new tricks. I'm sure I haven't done everything possible. If you need some help on copper, or if you wanna get in contact with me, then write to this address: Rick Dangerous / Erik Pojar Siegfriedgasse 55 A-1210 Wien AUSTRIA Phone: +43 222 25 30 423 (1500-000 CET) For membership/friendship/demo swapping contact Rick Dangerous, or one of the following: Red Scorpion Bogevej 5, Harridslev DK-8900 Randers DENMARK Phone: +45 86 44 22 44 (also Fax) We are looking for more members, especially from Austria, Germany or Denmark. Don't hesitate. Join us. Signed, Rick Dangerous / Surprise! productions late December 1992. Have fun & enjoy life! Last minute notes: We've also got a BBS in Austria: HIGHLANDER Austria +43 14093937
[ back to the prod ]