pouët.net

Go to bottom

MegaRay by Coders In Action











                                   M e g a R a y
                                   ─────────────












I. Introduction of CIA
──────────────────────
What is CIA ? CIA stands for Coders In Action (terribly original, I know ;-))
We are a group of BELGIAN coders (not many of them around, I'm afraid),
concentrating on demos. We collect, spread and create them.
At this moment our group mainly consists of coders, but no grafix artists.
We are hoping to change that in the near future.

How can I reach CIA ?
Well, you can call our WHQ in Antwerp. It's at Einstein BBS, +32-3-3851594

II. About this demo
───────────────────
Right. About this demo. Well, for one thing, it is BIG. And I mean GIGANTIC.
There are a few reasons for that :
- This demo is nothing but animations. Since you all know animations take a
  lot more room than, say, filled polygon 3D animations, it's quite logical
  that this demo is so BIG.
- I included a different looping sample for each anim, for the intro part AND
  for the loading-and-decoding screen. These also take a lot of room and are
  not very compressable. The animations ARE compressed, but not with a very
  good (=time consuming) algorithm for time reasons. You don't want to be
  staring at that loading screen for 3 hours every time, believe me !

System requirements for this demo :
- 286 (386 preferred)
- VGA (anything half standard will do - no fancy VGA tricks done.)
- 2 Meg internal memory, with about 600 Kbytes of free DOS mem.
- Optional but VERY preferrable : SB (Pro) or compatible

Why is there no support for XT computers ?
Get real.

Why VGA and not EGA or CGA or hercules ?
Get real.

Why, O Why 2 Meg. Well, the explanation for that is quite simple. I had this
nice toolbox for XMS memory, and I just had to use it, so I made the animations
just a tad too big to fit into the conventional memory.
No, just kidding. Each animation consists of 30 frames. Each frame measures
150 by 150 pixels. If you know that in 320x200x256 one byte equals one pixel,
it's fairly easy to calculate. I'll help : 150 * 150 * 30 = 675000 bytes.
This means that you need 675000 bytes of completely empty and free memory
to hold one unpacked animation. Since the standard avialable DOS memory can
only be a maximum of about 620 Kbytes (with a good memory manager), and I
need some room for the code and the samples as well, it's easy to see why I
need that extra meg. (I actually use a bit more than 675000 bytes for other
things as well, so you'll need about 950000 bytes of free XMS memory).

VERY IMPORTANT :
  A free lesson in memory. There are (basically) 2 kinds of memory above
  640 Kbytes. There is Extended memory and there is Expanded memory.
  Extended memory is the one people always call XMS, expanded is EMS.
  Easy, right ? Normally, without any drivers, you don't have ANY of
  those two. (unless you have actually bought one of those plug-in boards
  with EMS on ?! Don't know anybody who has one of those).
  If you install HIMEM.SYS, you suddenly get XMS memory ! Easy to use, faster
  than EMS etc.
  If you foolishly decide to install EMM386, you suddenly get EMS memory !
  Of course, you loose about half the CPU time to port and interrupt
  emulation by that driver, because it switches your processor into a
  different mode that uses interrupts and ports differently, but who cares,
  right ?
  QEMM is a different thing altogether. It combines both HIMEM.SYS and EMM386.
  This means : when an program requests XMS, QEMM will behave like HIMEM and
  give XMS. When a program requests EMS, QEMM will turn into EMM386 and give
  EMS.
  I am strongly against EMS memory, because it is a stupid standard. It takes
  a SLOW memory manager to emulate it and it's slower than XMS.
  Therefore this demo will ONLY work with XMS memory. So if yoy have EMM386
  installed, THROW IT OUT !  You must, however, have HIMEM.SYS or QEMM386
  installed. Still with me ?
  This short lesson about memory is in no sense complete. For simplicity's
  sake I left out things like UMB and HMA 'cause you don't need to know
  about those for this demo. I also simplified some things, so don't shoot
  me if you (think you) know better.

You need about 600 Kbytes of your DOS memory available. You can check this
by typing MEM at the DOS prompt. If you don't have enough, try removing some
TSR programs and make sure you have DOS loaded high. (check your DOS manual
to find out how to do that)

About raytracing :
What is raytracing ? Hmm, right. You asked for it. Here comes another lecture.
I'll keep this one short, I promise.
Basically, raytracing is your computer doing a lot of silly calculations to
make some nice pictures. It calculates rays of light (from one or more light-
sources), and how they hit different objects, thus creating a rather realistic
feel of the objects. See, simple !
It involves a lot of maths, and a lot of patience, since it is a very lengthty
process. Rendering times of a few hours are no exception for the better
pictures. Simple animations like the ones in this demo take an average of
2 minutes/frame on my 486 DX/33. (that is, with a coprocessor.)

I used a public domain raytracer called Persistance of Vision (POV). It is one
of the best around at this moment.
Another good, widely available raytracer is DKBtrace.

About the samples :
I recorded all the samples with trusty old Sound Blaster Pro.
They were all recorded at a frequency of 11000 Hz. This is a very good quality
for little space, and as long as there's no singing, the samples sound very
clear.

About the Sound Blaster support :
I have made an autodetection routine. This should correctly identify a Sound
Blaster on any of the possible ports. I haven't got around to making a working
IRQ for DMA detection routine, so you still have to enter that one manually
if the BLASTER environment string is not set.
(my parser is NOT very intelligent. If your BLASTER string has the info about
the IRQ for DMA line and the Port info in a different order than mine, it
won't work.
The correct string for my parser would be like this :
SET BLASTER=A220 I7 D1 T4
(only the 2 first fields matter)
If you haven't got an environment string called BLASTER, my autodetect will
kick in, but you'll still have to manually enter the IRQ line.

III. Technical & programming info
─────────────────────────────────
This demo was *entirely* written in Turbo Pascal 7.0.
All the animations were rendered with Persistance of Vision,
all the other grafix were made in Deluxe Paint II enhanced.
All the sample were recorded and edited with Vedit2.
All textfiles and source codes were edited with Qedit.

All routines are made by me, except the XMS toolbox. That one was done by
a guy called Yuval Tal. (freeware, can be reached through Internet :
                         nyyuval@weizmann.weizmann.ac.il or
                         yuvalt@wisdocs.weizmann.ac.il)

I made this demo on my own, because I started it before I joined CIA.
Besides, we're almost all coders and no grafix artists, so it's sometimes
easier to do it alone. I promise we'll do a MEGA demo sometime later, where
we'll all make our contributions.

This is also probably my last demo that uses pure samples. My next one will
use a mod player. With Speaker support, SB, SBPro etc.

This demo was created on the following system :
486 DX/33Mhz with 256K cache
Trident 8900 S-VGA card
S-VGA monitor
255 Meg Hard Disk (taking about 7 Meg of space)
Sound Blaster Pro

IV. Errors & bugs !
────────────────────
If you find any bugs, you can always contact me. I'm not going to release this
demo in different versions, but I can avoid making the same mistakes in the
future.
Possible errors :
- The program crashes when trying to find a SB:

  This is something that happened to me quite a few times. Some other programs
  that use the SB do something to it that makes my autodetection crash.
  A cold restart should help. (Press the big button marked RESET and try again)

- I have a SB, but the program tells me I don't !

  This means there is a bug in my autodection routine. Do a reset (cold), and
  try again. If it still goes wrong, check if you have the BLASTER environment
  string setup correctly. This string should have been set automatically
  when you installed your SB software from disk.

- The program correctly identifies a SB, but I hear no sounds !

  - check the volume on your card
  - SB Pro : check your MASTER volume and your VOICE volume (software !)
  - If all else fails, copy your own CT-VOICE.DRV into the MEGARAY directory.
    If that doesn't solve the problem, I don't know what will.

- Other errors.

  Many strange things can happen if you haven't got enough memory. For some
  strange reason my error handler does not always catch those problems in
  time. Just try freeing more memory (both conventional (DOS) and XMS).

V. What other incredibly cool demos did I make, and where can you get them.
───────────────────────────────────────────────────────────────────────────
If you really MUST know, I made the following pieces of shit :
- TEMPLE.ARJ   my very first VGA/SB demo ! (sounds : TEMPLE OF LOVE)
- CLARK.ARJ    my very second VGA/SB demo ! (sounds by Anne Clark)
- KILLER.ARJ   my third VGA/SB demo ! (sounds Cop Killer by Body Count)
- X-MAS.ARJ    Yes ! A very small and traditional X-Mas scrolly ! FM music.
- FELIX1.ARJ   A rather cool VGA/SB demo. (felix - don't you want my love)
- FELIX2.ARJ   The sequel to felix1 (Duh). (it will make me crazy)
- LAIKA.ARJ    BBS ad. for Laika's Homebase Archive BBS (no sounds-  only VGA)
- CIA-PUZ      SB/VGA scroller+starfield.
- MEGARAY.ARJ  Yes ! You guessed it ! This one !


If you're really interested, all these demos can be found on Einstein BBS !

Sorry for the size of the demo, and the size of this NFO file.

L8r,

   Purple Zebra
   1993
Go to top