scene.org File Archive

File download

<root>­/­parties­/­1996­/­8086compo96­/­misc/8086_com.txt

File size:
17 870 bytes (17.45K)
File date:
2007-04-15 23:36:50
Download count:
all-time: 1 330

Preview

Start.of.8086.Rules.v1.1...........................................Size:17,870

    ___________/\_ ______________      ______ _______     ______   /\______
    \__    ___/   |   \_   _____/     /  __  \\   _  \   /  __  \ /  _____/
      |    | /    ~    \    __)_      >      </  /_\  \  >      </   __  \ 
      |    | \    Y    /        \    /   --   \  \_/   \/   --   \  |__\  \
      |____|  \___|___/_________/    \________/\_______/\________/\_______/

              _______/\  ________      _____ __________/\______   
              \_   ___ \ \_____  \    /     \\______   \_____  \  
              /    \  \/  /   |   \  /  \ /  \|     ___//   |   \ 
              \     \____/    |    \/    Y    \    |   /    |    \
               \________/\_________/\____|____/____|   \_________/

               The 8086 Compo Rules Info File - October 6th, 1995
                                 -------------
  The 8086 Compo is a demo competition organized by Hornet over the internet.  
  Hornet produces DemoNews, a newsletter for the demo scene, at ftp.cdrom.com.
                  Our demo archive is located under /pub/demos.

           This document is also available on the World Wide Web at
    http://www.cdrom.com/pub/demos/hornet/8086 and has all links enabled.
     You can also download the most recent version of this document from
            ftp://ftp.cdrom.com/pub/demos/hornet/8086/8086_com.txt

    All new items added since version 1.0 have a "%" in the first column.
          This makes it easy to see what has been added or changed.


=--------------------------------------------------------------[Introduction]-=

 _____Why an 8086 Compo?

 Much like Snowman pioneered hosting Music Contest 2 and 3 over the internet,
 Hornet is now hosting a demo compo over the internet--but this compo has a
 very interesting limitation:  All entries must run on an 8086.  But why an
 8086 compo?

 Many demos and intros today are, sadly, either "object shows" or bundles of
 poorly optimized routines.  Many of the older coders in the scene long for
 the days of hard, fast, to-the-metal coding, when your only demo machine was
 an 8086 with CGA or EGA.  You *had* to code well to create anything decent;
 just look at some of the 3D games of that time, like Elite or Flight
 Simulator 1.0.  People don't write code like that anymore, prefering instead
 to use the 80387 for floating-point, or off-screen buffers for animating
 simple small objects.  It's almost like a Pentium isn't good enough anymore!

 So, to seperate the men from the boys, Hornet is hosting the first 8086
 compo.  Prizes aside, this is a *real* way to prove your raw programming
 skill and impress everybody!


=-----------------------------------------------------------------[The Rules]-=

 _____The Machine

 The compo machine is a Tandy 1000 with 640K of RAM and a 20 MB hard disk.
 The Tandy, as you recall, is a 4.77MHz 8088 CPU and has CGA graphics
 (320x200x4 and 640x200x2) and CGA 80x25 16-color text mode (normal CGA text,
 which has no palettes or EGA/VGA font-changing).  (The Tandy actually has
 slightly more hardware than that, but I'll get to that later.)  You do *not*
 have to use the extra graphics or sound capabilities of the Tandy, but you'll
 get Extra points if you do.  For a list of suggestions on how to score higher
 in the compo, read the section "Programming Extras and Suggestions"; for an
 explanation of what Extra points are, read the section, "The Judging".
 Sorry, but actual EGA is not allowed--the compo machine doesn't support it,
 and that's not the point of the compo anyway.

%A Sound Blaster 1.5 (without the CMS ships, sorry) will be in the compo
%machine, and a Covox Speech Thing (actually, just a normal LPT DAC) will be
%attached to the parallel port.  So, your available sound output options are:
%Sound Blaster, Adlib/FM, PC Speaker, LPT DAC, and Tandy 3-voice sound.

 If the demo entry doesn't run on the compo machine for some reason, it will
 be tested on another 8088 (different brand of computer) running at 4.77MHz.

 Finally, you do not need to have access to an 8086 to enter the compo--but
 make sure your entry runs on one.  :-)

 _____Technical Guidlines

 All entries must be no more than 360K.  Compression is fine; a 360K .ZIP or
 .ARJ file is acceptable.  (Why 360K?  That's the size of a double density 5
 1/4" floppy disk, which is the way the earliest demos were distributed.)  The
 demo must not exceed 10 MB uncompressed, however, because that's the total
 amount of free space allowed on the hard drive, which is where your demo will
 run.

 Anything is allowed, including lookup-table tricks and precalculation, within
 reasonable time limits.  (This is probably the only compo you can enter where
 precalculation is not only allowed, but encouraged!)  If you have to
 precalculate something, it has to take less than 15 minutes and, preferably,
 display a time elapsed/time remaining display.  All precalculation must be
 done before the demo starts to avoid long pauses in the middle of the demo,
 but can be written to the hard disk for quick retrevial during the demo.  Up
 to 10 MB of hard disk storage on drive C: is allowed for storing
 precalculation.

 _____The Judging

 I (Trixter / Hornet) am the initial judge of the compo because I still have
 my Tandy 1000 as well as my *other* 4.77 MHz PC; I also have access to
 *another* working Tandy 1000, also with a hard drive, in case the compo
 machine breaks down.  However, anyone else can judge if they have access to
 a 4.77MHz PC.  Or, if you live in the Chicagoland area, you can come to my
 house to judge as well.  To become a judge, contact me at trixter@mcs.com or
 trixter@ftp.cdrom.com and I'll send you a program that verifies if your
 computer is the correct speed for judging.

 Up to 10 points will be given in the following areas:  Graphics, Sound, Code,
 and Extra.  So, the maximum score an entry can get is 40 points.  Here's how
 the categories break down:

 Graphics:	Good art and design elements get higher scores.
		Don't feel like you're limited to 320x200x4; CGA
		also has a 640x200x2 color mode that's usable for
		some high-res stuff.
 Sound:         Any sound is better than nothing; look in
		the section "Programming Extras and Suggestions"
		for more ideas on producing different types of
		music and sound.
 Programming:	Anything impressive or clever earns higher
		scores.  Pre-calculation is allowed, with some
		limitations; see above for furthur explanation.
 Extra:		The "Extra" category is a way to earn more points 
		with either clever design, a particularly advanced
		programming trick (see the section "Programming
		Extras and Suggestions"), or anything else that
		impresses the viewer.  All Extra categories start
		at 3 points, and you can actually *lose* Extra
		points if your demo is offensive, vulgar, etc.

 _____Deadline and Time Lines

%The compo starts accepting submissions on October 15th and ends accepting on
%January 31st.  The judging will be from February 1st to 7th (to allow time
%for the other judges to get their results to me).  The results will be
%released after February 10th in DemoNews and on a Web page along with all the
%entries.  The prizes will be mailed out shortly thereafter.

 _____Submitting Entries

 Submit your entries to the FTP site ftp.cdrom.com in the
 /pub/demos/incoming/code/8086/entries directory.  If your upload is bad,
 upload it again ending in ".good".  Be sure to include a text file including
 your name, email address, phone number, and mailing address (in case you win
 a prize).

 _____The Prizes

%Nobody used to do demos for money, just recognition.  But in the current
%tradition of mega-parties, over 10 prizes are offered, and are pieces of
%software (games) for the IBM PC.  The first-place winner of the compo gets
%first pick of what he wants mailed to him (mailed free of charge, of
%course); the 2nd place gets second choice, etc.  All prizes have full docs
%and boxes (i.e.  they're not pirated, they've been bought and paid for), and
%many still have registration cards.  If less than 10 people participate,
%then the distribution of the prizes will continue round-robin until they all
%are distributed.  This means that if only five people enter, they will each
%walk away with 2 prizes, etc.  Sorry, only one entry per person or group is
%allowed, and only three prizes per person will be distributed.

 The prizes offered are a wide range of games for different CPU platforms;
 this way, if you still use a 8086 or 286, these will still be of some
 benefit.  :-)  Here's a list of the prizes and the CPU recommended to play
 them:

 Name				Type				CPU Required
 ~~~~				~~~~				~~~~~~~~~~~~
 Savage Warriors 		Fighting game; CDROM		Pentium
 Evasive Action 		Action; Flight simulator	486
%Falcon 3.0			Action; Flight simulator	486
%SimEarth for Windows		God/Sim				386
 Lands of Lore 			Adventure/RPG			386
 Pinball Arcade 		Pinball; CDROM			386
 Wing Commander Academy 	Space Sim			386
 Wing Commander Privateer	Space Sim			386
 Body Blows 			Fighting			286
 Alien Breed 			Action				286
 The Last Ninja 		Adventure/Fighting		8086
 Prophecy 			Adventure/RPG			8086


=----------------------------------------------[Programming Hints/Techniques]-=

 _____Obvious Pitfalls

%A question is probably in your head right now:  "How will I know how my
%program runs on an 8086 if I don't own one?"  From a technical standpoint,
%make sure you follow the obvious rules:  Don't use any 8087 or 80286 / 80386
%instructions (if you're writing it in Turbo Pascal, make sure you turn off
%286 code generation with {$G-} and 8087 instructions with {$N-}).  Also,
%don't try to use hardware that isn't there (i.e.  Don't attempt to change
%into VGA mode or write to A000:0000 if there isn't a VGA in the system,
%etc.)

 _____Free Beta-testing

 The harder issue at hand, however, is how do determine how fast it will run
 if you don't have that slow a machine to test on.  The good news is that I
 will test anything submitted to me on the actual compo machine to make sure
 it works--in other words, I will beta-test your compo entry as many times as
 you like in order to make sure it runs okay and runs like you think it
 should.  Just make sure you get it to me as many times as necessary before
 the submission period ends.

%I am also attempting to hook up my video capture board to the compo machine.
%If this is successful, you can receive a Video for Windows file of your demo
%being tested, with either the sound of the demo, or my voice annotating what
%I'm seeing and other comments.


 _____Checking for Speed

 You might want to avoid the standard technique of creating an off-screen
 buffer and then moving the buffer to video memory, like in many demos today.
 This works on modern machines with VLB or PCI video cards, but you will
 probably not exceed 10-12 frames per second on an 8086 if you do this,
 regardless of the fact that you're only moving 16K.  (Remember, we're talking
 about the *slowest PC ever*.)  You should instead only copy part of the
 screen, or maybe only the parts that have changed.  You may also want to
 consider writing directly to the screen.  Use "dirty rectangles" to eliminate
 flicker, etc.

 As for tips on making sure it works *well*, try using a timer for movement
 and other calculations.  This way, you can get the movement correct on your
 faster PC, and you'll be sure that it moves the same way on the slower one
 (but, of course, at a much lower frame rate.  :)  You can also insert delays
 in your code if you like, with compile directives so you can "compile them
 out" when you're finished.  Try locking the screen update rate at 8 frames
 per second, to get a feeling of how it will look.

 Finally, there's nothing wrong with making the whole thing run in text mode.
 For an example of what text mode can do, look at some of the excellent
 text-mode demos I've provided on ftp.cdrom.com in the
 /pub/demos/incoming/code/8086/examples directory.


=----------------------------------------[Programming Extras and Suggestions]-=

 _____Hardware Programming

 There's many tricks you can use to make an 8086 or Tandy do cool things, and
 better yet, I've got examples (some with source code) of how to do them!  All
 examples can be ftp'd from ftp.cdrom.com in the
 /pub/demos/incoming/code/8086/examples directory.  Here's some of the things
 you can use to get more points during the judging:

 CGA can be "fooled" into displaying 160x100x16!  I am providing
 easy-to-understand Pascal source code that can do this in CGA, EGA, and VGA,
 so you can program and test your routines on your modern graphics card (if
 you don't have CGA or EGA).  The file is called 16colcga.zip

 The Tandy has a 3-voice sound chip (copied from the PCjr, just like the 16
 color graphics mode) that can output some fairly decent music for its age.
 The three channels can also be used together cleverly to output digitized
 sound.  Programming these natively will give you great control, but if you
 can't find the docs or don't have the time or skill, there's a package that
 I'm providing called digimidi.zip (see the location above) that will not only
 allow you to play MIDI and digtized sound on the Tandy sound chip, but other
 sound cards as well, and even on the PC speaker (yes, even a 4.77MHz PC
 speaker can play digitized sound, although it can't do much else while it's
 doing that).  (The package, incidentally, is the DigPak and MidPak drivers
 from Miles Design.  You can use these for free for non-commercial use.)

 The Tandy also has a 16-color graphics mode (320x200x16) that is only
 slightly different in memory organization than EGA; use this mode as well as
 CGA or text mode and you're guaranteed at least 2 Extra points.  This
 16-color graphics mode is the same mode as the PCjr (the Tandy is a clone of
 the PCjr, not the PC).  Sorry, but I don't have any docs on this right now.
 I seem to remember, however, that the only thing about it that's different
 from EGA is that 1) you initialize the mode differently, and 2) the memory is
 interleaved, just like CGA.  Otherwise, it's the same 4 bits-per-pixel, and
 you can't change the palette (it's the standard text palette).  Sorry, but
 actual EGA is not allowed--the compo machine doesn't support it, and that's
 not the point of the compo anyway.

%4.77 MHz is slow, but you can still play a MOD on the PC speaker at about
%4000Hz, or maybe higher on a LPT DAC or Sound Blaster.  (To see this for
%yourself, get glx212.zip in the /pub/demos/incoming/code/8086/examples
%directory on ftp.cdrom.com).  If you don't have the skill for this, then try
%some other music-playing tricks: For instance, you could write a program
%that arpeggiates quickly between notes (psuedo-mixing) for output on the PC
%Speaker, using a MOD, or S3M (adlib?) file for the music.  Or, you can take
%your existing MOD playing routines and mix the song to a hard disk file and
%play it back from there.  You could forget the whole MOD thing and play an
%Adlib (FM) file, which doesn't use much more CPU time than beeping the
%speaker.  Be creative!

%The CGA 320x200x4 color mode has three palettes; try using that to your
%advantage.  Also, you might want to think about coding in 640x200x2 colors,
%as you have more resolution.  Use it to fake a 160x100x16 greyscale mode, or
%something.

 _____Programming Techniques

 There are many things you can do to get a higher score that don't involve any
 hardware programming at all:

 Make your demo run even better on a faster machine (all will be tested on a
 Pentium as well as the compo machine--but don't worry if it doesn't run on
 the Pentium, because no points will be taken off if it doesn't).  Here's an
 example:  Remember Unreal's "Apparently this is possible" part?  The faster
 a computer you have, the more circular bobs are put on the screen.  Also,
 older games (some of the first PC demos) did things like this, including
 using EGA if it was available, but falling back to CGA if it was not.

 Use a timer to display something on the screen while the next section loads,
 just like Chronologia by Cascada (for you newer 'sceners) or MegaDemo by
 Space Pigs (for us old geezers).

 Don't have any ideas?  Then convert one of your exiting demos (or someone
 else's demo) to work on a slow machine with CGA!  Higher scores may be
 awarded to faithful conversions of parts of Future Crew demos, Triton demos,
 and others (like Unreal or Crystal Dream's vector parts, etc.).  For
 instance, this message goes to members of Orange, Impact Studios, Epical,
 Xtacy, Halcyon, Capacala, Iguana, and others:  Convert your winning demos to
 8086!

 These are just a few suggestions... be creative!


=-[Closing]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 If this is starting to sound too hard, don't get discouraged!  As Charlatan
 once said, "Good code isn't good design, and good design doesn't need good
 code," so if you are having trouble with the programming, fall back on what
 most demos are lacking today--design.  Use text mode if you feel you can't
 get enough speed.  Precalculate things; remember, there's a hard drive with
 10 MB free on it at your disposal to store precalculations.  Also, if you
 want a drawing program that supports the Tandy 320x200x16 color mode,
 DeluxePaint supports it.  If you have VGA or EGA only and can't use that mode
 (or don't want to :) use the 320x200x16 EGA mode and don't change any colors,
 and you'll get the same thing, so you can compose your graphics in that mode
 on your nice fast computer.  :)

 Come on everybody--let's get back to the real basics of clever programming!
 Here's a chance to show everyone you're the best!

.......................................................End.of.8086.Rules.v1.1.