scene.org File Archive

File download

<root>­/­demos­/­groups­/­useless/u_smells.zip

File size:
1 118 131 bytes (1.07M)
File date:
2019-06-23 15:05:44
Download count:
all-time: 222

Screenshot (by pouët.net)

Screenshot

Preview

  • CONFIG.CFG 213B
  • INFO.EXE 10.20K
  • MUSIC.0 80.61K
  • MUSIC.1 365.15K
  • MUSIC.2 123.12K
  • MUSIC.3 271.25K
  • SMELLS.DAT 601.33K
  • SMELLS.EXE 24.59K
  • USELESS.NFO 11.62K

file_id.diz

          Smells Like Amiga Spirit from Useless in the year 1995...

  Useless presents you a production in where all parts are REALLY smooth and
without ANY jerks on a 486-SX33-ISA...

  0. Introducing
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  This textfile contains infos about a brand new group, who's main purpose is
to release demos. For the moment, we code in Turbo Pascal (for the
initialisation) and in Turbo assembler (for the main parts)
  We'll probably code all in assembler in the future, but our (the coders)
time is quite small for demo productions.


  1. Useless ? Who's that ??
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Now it's time for us to present.
  You probably remarked that we're french. (if not, I must tell you something:
we're french)
  As I write this words, we're only two members, whose main purpose is to
code :
  Hornet, aged 18, code, occasionnal gfx (since we haven't found a graphic
artist). Organizer, like scrollys (as you saw), real name Guillaume
Cottenceau, address : 28 rue beauregard, 17000 La Rochelle, France.
  Satanic, aged 18, code, occasionnal gfx. Specialised in music engine, real
name Yohann Magnien, address : 84 rue Marius Lacroix, Bt B2 nø47,
17000 La Rochelle, France.

  If you live near La Rochelle, are a graphic or musician artist, and would
like to enter our group, send us a representative piece of your work. You'll
just need to perform your art directly on computer. (we do not have enough
time to export it on) We can also send you any part of our code, if you think
you could learn from it.
  Please don't write our pseudos on letters or so : postmen are quite strange
guys.

  If you have released a demo that is not public-diffused, just send it to
one of us, we're very interested in the demo scene.


  2. The demonstration
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  Satanic coded an intro last year, with a mega-scrolling and 2D vector balls.
I personally worked on HD problems, and on a strategic game. We wanted to
join our effort to present you a demo.
  Both of us possess a Gravis, this wonderful soundcard : we're enjoying its
marvellous qualities (Midi standard, 32 digitized voices at the same time
(hello poor SBs!), on-board RAM,...) and for that Satanic coded a player of
MOD and S3M for Gravis UltraSound (with no ultraclicks)... Because most of
the PC users are MAD and have SBs he also coded his player for SBs, but we
don't warranty the perfect running of the demo with a SB, because of its high
CPU-time needing.

   TroubleShooting
   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
   a) Computer Speed
   Ä Ä Ä Ä Ä Ä Ä Ä Ä
   This demo is designed for my old 486 sx33 ISA (trident 89000 svga card)
We think it's an old 'n shitty PC, so we use (nearly in all the demo) ALL the
power of this machine : this means that if your computer is too slow, the progs
will not be able to show the full frame rate... and copper parts will be
horribles : the progs can't draw enough points per horizontal refresh...
(you can simulate that with a fast PC by running the demo without turbo)
   Anyway, parts like Points, RotoZoom and Falling Snow use all your CPU power
by incrementing the number of the points shown.
   The tests showed that the demo runs faster with no EMS manager in memory.
   But remember that the player uses EMS... (especially for SBs)

   b) video mode
   Ä Ä Ä Ä Ä Ä Ä
   If the auto-test searching for your VESA mode crashes the computer, or if
it doesn't detect properly your VESA version you can skip it and decide by
yourself the SVGA mode you want for the demo, by launching the demonstration
with this parameter :
  /vga or /vesa1 or /vesa2
   This will choose automatically the SVGA mode you want.
    * vga : assume VGA.
    * vesa1 : vesa with one window for the I/O accesses to the Video-RAM.
    * vesa2 : vesa with one window for the inputs/one window for the outputs.
   Note of interest : don't look too far for SVGA parts : we have only made
SVGA (plus VGA) part for the last part, Falling Snow.

   c) SoundCard
   Ä Ä Ä Ä Ä Ä
   If your computer is too slow, the demo will run awfully, but will not crash
with a GUS... but it will crash with a SB/SBP/SB16... we're sorry of that!
   By the way, the demo asks more CPU power with SBs coz the mixing is done
realtime (what pieces of shit! buy a gus!) so you need more than a 486 sx33 to
enjoy music if you've got one of those antedeluvian soundcards.
  Forcing using a soundcard can be done running the demo with the parameters :
  /c1 : gus  /c2 : sb  /c3 : sbp  /c4 : sb16
  Using /nosound is adviced for slow computers with sb.
  /m### will set mixing rate to ### (decrease sound quality on sbs)

  /loop will launch the demo endlessly (waves will pass automatically after
10 secs and Falling Snow will be cut off)

    A) Psychedelic Waves
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Hornet. Normal 12h mode.
  The "wave effect" was seen on the ACME-SNS intro, and i loved it!
  The "magnifying glass effect" was seen so many times, but not in hi-res...
  Full framerate on a 486 SX33...

    B) Floating Points
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Hornet. 13h tweaked-mode (320*200) Ray-traced gfx by Hornet.
  Tests the speed of your computer to present you a maximum of points floating
  in the air, preserving the full framerate...
  The original idea is ripped from Unreal/FC.

    C) Twister
    ÄÄÄÄÄÄÄÄÄÄ
  Coded by Satanic. Normal 13h mode. Ray-traced gfx by Satanic.
  Gives a good 3D-looking, using a shadow routine. Full framerate for sure!
  The original idea was seen on an Amiga demo.

    D) Interferences
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Satanic. Normal 13h mode. Simply pretty looking...

    E) ZigZag Coppers
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Hornet. Normal 13h mode.
  Full screen/full framerate on a 486-33-ISA!
  Quite easy, using asm and the offset register... Good looking, uh?
  The original idea was seen in Wish/Majic12, but I put more colors, coppers,
and a little scrolly. (to give enough time to our player)

    F) Interferences Again!
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Satanic. Normal 0Eh mode. Use two bit plans for the proper
interferences, and a third one for the scrolly.
  The planar modes can provide good-looking effects, isn't it?

    G) Straight Coppers
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Hornet. Normal 13h mode.
  The original idea is ripped from the "Copper Faked" demo.

    H) Spaced Vector Balls
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Satanic. 13h normal mode.
  The original idea is ripped from Second Reality/FC.
  512 8-pixeled balls at full framerate!

    I) Rotozoom
    ÄÄÄÄÄÄÄÄÄÄÄ
      a) "Zoom" in 3D
      ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
      Coded by Satanic. Normal 13h mode with two 16-colors pages.

      b) Blur-effect
      ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
      Coded by Hornet. Normal 13h mode. (Poor framerated... obliged!)
      The original idea was seen on TV and on Super NES.

      c) Main part : Rotozoom
      ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
      Coded by Satanic. Modified 13h mode : 320*100.
      Tests the speed of the computer to present you an effect at the full
      framerate!!
      Who had the original idea?


    J) End-scroller part
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Hornet. Modified 13h tweaked-mode : 320*400.
  So easy and so smooth using the two pages!!
  (the VGA modes have a 256k amount of memory)

    K) Snow part
    ÄÄÄÄÄÄÄÄÄÄÄÄ
  Coded by Hornet. VGA 12h mode (640/480/16) or SVGA VESA 101h mode
(640/480/256) 1 or 2 frames. "FINAL" logo drawn by Hornet, with DP2 - cool
with 256 colors!
  Original idea seen on the BLASTER-SOUND intro from Iguana.


    X) Music player
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  Magic Satanic spent a lot of time up-grading his player, and now he's
ready to show UMP -the interfaced player which use XMS and EMS and support
GUS, SB, SBP, SB16- and also to put his routines in this demo.
  The GUS routines are very fast and quite debugged... but since SBs are
shitty and since we've got only GUS at home, the SBs routines are quite
bugged, especially when your computer is slow.

  *** We're in need of musicians!! ***

    Y) Loader
    ÄÄÄÄÄÄÄÄÄ
  Coded by Satanic.

    Z) Backgrounds
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  There are two images constructed by Moray and ray-traced by Povray, and
a picture drawn with DP2.

  *** We're in need of true graphicians!! ***


  4. Coding
  ÄÄÄÄÄÄÄÄÄ

  I had lots of problems coding powered graphic applications until I bought
"PC system programming" by Michael Tischer. He put in this book all the best
of PC, MSDOS and 80x86 User's reference manual edited by IBM, Microsoft and
Intel. It's a good way to learn the out ports, the interruptions, the
EGA/VGA card, tweaked-mode, etc...

  Some advices.

  A) In TP7 :
    a) don't modify DS in a procedure or a function if you want to get data
       informations. (simple but can be nasty) If you're in need of segment
       registers, use gs and fs in TASM with the .386 directive.
    b) when you need memory, don't write directly in the conventionnal
       memory (using the mem or move instructions) but pointers, like that :
       the mem or move instructions are more useful than using pointers
       directly, so initialize your memory with pointers, and use this memory
       addressing it with the segment where the pointer has been created :
       you can have this information doing this : "segm:=seg(p^)"

  B) In assembler, some conditionnal tests are slower than others, because
some test only one flag (jb,je,jae...) are others test more than one flag :
at least two : don't use them if you can. They are : jbe,ja,jl,jle,jg.

  C) To calculate a square root in assembler, you can use the following
tip : the limit of the suite whose U0=1 and Un+1=.5*Un+.5*x/Un is the square
root of x.
     Easy to demonstrate, because the limit of the suite is :
                           l=.5*l+.5*x/l
                <==>     l^2=.5*l^2+.5*x
                <==>  .5*l^2=.5*x
                <==>     l^2=x
                <==> l is the square root of x

  D) On Trident 8900 and compatible you can have a 128Ko video page at
0A000h-BFFFh : just send 0106h to out port 3ceh.(the graphic data controller)
However, since it isn't compatible with other video cards, you may not use
this for demo-coding.
     You can also use SVGA easily : send Eh to out port 3C4h ; then the number
of the 64k bank "xor 2" to out port 3C5h. For example in 640/480, the pixel at
x:135 ; y:267 is at the place : 267*640+135=171015. It's in the
171015 div 65536=bank nø2 (after the bank 0 and the bank 1) So send Eh to out
port 3C4h, then 2 xor 2=0 to out port 3C5h ; then finally send the number of
the color to the memory at 0A000h:(171015 mod 65536) !!

  E) Try to use the shift-by-bit instructions instead of division (when you
can) Since (for example) 2^7=128 :
       * n div 128=n shr 7
     For the rest of the entire division :
       * n mod 128 (the rest of the entire division) =n and 127
             (this uses a bit-mask)
     Fast !! (but possible only with powers of 2 : 2^1 ; 2^2 ; 2^3 ...)

  X. Personnal feelings
  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

  I want to tell you a thing : experience demos. I really think the good
demomakers are the best coders, graphic and music artists. What ? When you
see Second Reality (Future Crew), Untitled (Dust) or Show (Majic 12), even
Fishtro (Future Crew) and Crystal Dream II (Triton), and after you enjoy a
Windows trip, aren't you confused ? Yes, it's quite different... Yes, very
different...
  Thank you, really, Sammi Tammilehto, Jonne Valtonnen, Markus Stein, Maxwood,
for all the pleasure you gave to all demo-experienced PC users ; the CD-ROM
pseudo-interactive productions will have difficulties with guys like you.
  To all the people who say that pure assembler is the unique way to produce
fast routines, I only say that Doom, which ins't one of the slowest games, is
coded in C.


  NEVER forget to enjoy when you use your PC. A computer is not a TV set.

                                   Hornet, 2 Jan 1996.