home *** CD-ROM | disk | FTP | other *** search
/ 1,000 Games / Disc2.iso / CARD / UFO105 / UFO.DOC < prev    next >
Text File  |  1996-03-29  |  47KB  |  1,041 lines

  1.  
  2.                             UFO(tm), The Card Game
  3.                            (C) 1994 Ed T. Toton III
  4.                              All Rights Reserved.
  5.                            NecroBones Software (tm)
  6.                      Special Thanks to: Jeremy A. Kusnetz
  7.  
  8.  
  9. NOTE:
  10.  
  11.   So what does UFO stand for? Well, it has been suggested that it means
  12. "Unending Flood of Obscenity", or even "Unavoidable Fall into Obscurity",
  13. but we'd like to think not. Actually, if you come up with a good idea,
  14. let me know!
  15.  
  16.  
  17.  
  18. CONTENTS:
  19.  
  20.    Contents:          Right here.
  21.    Credits:           Next thing.
  22.    Overview:          After the credits.
  23.    Important info:    A little further down.
  24.    Tech notes:        Even further.
  25.    Getting started:   Fairly far down.
  26.    Playing UFO:       Pretty far.
  27.    Customizing UFO:   Way down that-a-way.
  28.    Revision History:  Way down yander...
  29.    Title Screen GFX:  Far far away...
  30.    NecroBones:        Wooohie! Tis distant!
  31.    About the Author:  Way way way down near that end...
  32.    Legal Shtuffs*:    Way way down at the end, far far away.
  33.  
  34.    * Includes information for registering this game
  35.      and for shareware/disk vendors.
  36.  
  37.  
  38.  
  39. CREDITS:
  40.  
  41.    Title Screen:     Jeremy A. Kusnetz
  42.    Conceptual ideas: Ed T. Toton III & Jeremy A. Kusnetz
  43.    Everything else:  Ed T. Toton III
  44.  
  45.    Thank you.
  46.  
  47.  
  48.  
  49.  
  50. TRADEMARKS:
  51.  
  52.    UNO is a registered trademark of International Games, Inc
  53.    Turbo Pascal is a registered trademark of Borland International Inc.
  54.  
  55.    UFO and NECROBONES are trademarks of Ed T. Toton III.
  56.  
  57.  
  58.  
  59.  
  60. OVERVIEW:
  61.  
  62.    UFO (pronounced like UNO, but with an F) is an UNO clone. In this
  63. documentation we will assume that you already know how to play UNO, for the
  64. sake of simplicity. However, a file called UFO.TXT has been included which
  65. very briefly describes the rules.
  66.  
  67.    UFO offers you multiple computer (alien) controlled opponents, as well as
  68. a wide range of colorful VGA graphics and digital sound, in an easy to use
  69. mouse interface. I'm sure you'll agree when I say that UFO is probably one
  70. of the best computer UNO games in existence (I currently only know of two
  71. others, one of which runs in text mode, the other is much more recent).
  72.  
  73.    One thing I have noticed over the years is that many people (myself
  74. included) often yell at the computer opponents, screaching things like "Hey!
  75. No fair!" and "You cheater!" and "Gotcha!". Well, I decided it was high time
  76. the computer players started complaining and taunting back! Hence, UFO. UFO
  77. is an UNO-like game in which several alien species and robots and the like
  78. compete against you, screaming and kicking all the way. This adds an
  79. important flair to the game. As a two player UNO game, UFO works fine without
  80. the sound, but when you get into 3 or 4 players, most games lose the sense
  81. of personality in the other opponents. One of the things that makes the REAL
  82. card game fun, is skipping over players, or making them draw cards, or
  83. whatever, and seeing them whine and complain (admit it, you like nailing
  84. your friends, siblings, loved ones, and relatives, don't you?).
  85.  
  86.    So UFO breaks ground in this department. You will see on the screen a
  87. portrait of the character who is currently taking its turn (yes, you get a
  88. portrait too). Each character has 7 sound effects stored on the disk (that's
  89. what all those NSN files are), which are played at certain times, such as
  90. when the character is skipped, forced to draw, forces a draw, wins, etc.
  91. Each has it's own distinct personality. However, the character you are
  92. playing will not say anything, because we all know you will do enough
  93. talking, whining, and taunting yourself, right?
  94.  
  95.    In the near future there may be some expansion sets, as UFO is capable
  96. of using externally added aliens. Currently it can support up to 32 external
  97. aliens, later versions may support more, if enough new aliens are created.
  98. The expansion packs will include instructions on how to use them. As of the
  99. time of this writing, thirteen such external aliens exist, such as a green
  100. snorting fat toad-like creature, and a cussing red alien. The game is not
  101. intended to be used solely with the aliens provided. The reason the game
  102. only includes those four is so that the minimum requirement is met should
  103. you wish not to download everything else. Of the nine existing aliens as of
  104. this writing, four of my five favorites are included in the game (the cussing
  105. one being the fifth one, which could not be part of the original package
  106. for obvious reasons). Unfortunately I feel like I'm running out of variations
  107. of my own voice, even with all the different speed changes and distortions
  108. I can add, so hopefully I'll be able to recruit some of my friends to aid
  109. in the task of creating these aliens.
  110.  
  111.    Each alien has its own playing style. These playing styles are
  112. configurable from the "characters" menu. Simply select the "Style" button
  113. assiciated with the alien you wish to edit, and change what you like. If
  114. you would like to have the same settings later click on "Save" (the "Save"
  115. button is only functional if you have registered your copy of the game.
  116. This "Save" button is the only disabled feature to non-registered users).
  117.  
  118.  
  119.  
  120.  
  121. IMPORTANT INFO:
  122.  
  123.   VGA AND 286+ REQUIRED!!!
  124.  
  125.   (this game was personally tested on a 286, a 386, and
  126.    two 486's successfully, all with math-coprocessors)
  127.  
  128.   A 286 or better is required, though because of the digital sound, a 386
  129. or better is recommended. A 286 is fine without the digital sound however,
  130. and a 286 can be used for the sound, though the game will be sluggish. While
  131. the mouse is the recommended input device, the keyboard can also be used to
  132. play the game. There are a few things that can only be done with the keyboard
  133. (i.e. the function keys to toggle sound and call up the game options menu,
  134. and the ESC key for quick exit to DOS).
  135.  
  136.   If you are playing the game using the sound through the internal speaker,
  137. you should probably try using 4 channel mixing. It's slightly clearer on the
  138. internal speaker.
  139.  
  140.   Also note that if you are playing the game on a 286 or some other slow
  141. system, and you have a soundblaster, setting the game to run in "Adlib"
  142. mode may give you a little extra speed. The SoundBlaster (in digital mode,
  143. not FM) is the slowest device to respond of the three that are supported.
  144.  
  145.   This game may require as much as 600,000 bytes free (in dos) to load all
  146. of the digital samples for a 4-player game with all computer players
  147. (depending one which aliens are loaded). On the 'starting line-up' screen,
  148. it should show how many samples have been loaded. If the number is between
  149. 24 and 28 when you do a 4-player all-computer game, you're ok (the last 4
  150. are used fairly infrequently). If the number is less, you simply won't hear
  151. those sounds that weren't loaded. If you play a game with less aliens loaded,
  152. less sounds will be loaded. For instance, if only two computer players are
  153. playing, there will be no more than 14 samples loaded, and if there were 4
  154. players, but all set to the same character, then only 7 will be loaded.
  155.  
  156.   As implied above, UFO only loads the samples for the aliens that are
  157. playing and being controlled by the computer. So what if you change which
  158. players are human and which ones are 'alien' during the game? You will see
  159. a brief delay as the samples are removed or added as appropriate. In the
  160. lower right window on the screen, next to the word "Computer" you will see
  161. in very dark grey a number showing how many samples are currently loaded.
  162.  
  163.   If you don't have a soundcard, and have decided never to use the internal
  164. speaker for digital sound, you can save disk space by deleting SAM*.NSN (the
  165. sounds for the first 4 aliens).
  166.  
  167.  
  168.  
  169.  
  170. TECH NOTES:
  171.  
  172.   When you first run the game, it will create a new 64000 byte file. This
  173. wasn't included in the zip archive simply because it's disgustingly simple to
  174. calculate and therefore would have been a waste of space.
  175.  
  176.   This is the first game of mine to include my new digital sound daemon
  177. ("daemon" is a network buzzword that refers to a background process that
  178. basically runs itself. It is simply an alternate spelling for "demon" and
  179. is pronounced the same). Of course, this game doesn't take full advantage
  180. of it, as there is no music. I have however created a demo called
  181. "Fire and Earth" which does use the music capability, while showing off
  182. over 8 minutes of graphic effects. The demo is available for download on
  183. my BBS, listed at the end of this document.
  184.  
  185.   My sound daemon is capable of playing the music and sound effects out all
  186. of the supported devices simultaneously. It currently supports the Adlib,
  187. SoundBlaster, and internal speaker. For some reason, the Adlib seems to be
  188. rediculously quiet, so you may need to turn the volume up drastically.
  189. Originally, the internal speaker was disallowed in this game simply because
  190. it sucks rocks, and it would conflict with the beeps the game makes. However,
  191. I have since rethought this decision, and the internal speaker can now be
  192. used. But don't expect to be able to understand much of what the characters
  193. say if you use it. This isn't the fault of the software. No matter how high
  194. of a mixing rate you use, a 1-bit DAC (Digital to Analog Converter) can't
  195. do much. You have been warned!  :-)
  196.  
  197.    Technically my sound daemon can playback from 100 hz all the way up to
  198. 44,000 hz, however you can only play sound up to 20,000 hz or so when using
  199. a soundblaster in direct mode (you have to use DMA to go faster). However,
  200. the sound system really eats up CPU time, so slower rates will yield better
  201. system performance. You will have to choose a mixing rate appropriate to the
  202. speed of your computer. On my 486-33DX I can run it at 16khz with 4-channel
  203. mixing without too much of a problem (though the game does slow down).
  204.  
  205.   I have made the image system rather effecient in that the image space the
  206. game uses is about 17k for all of the cards, the UFO logo, the UFO deck on
  207. the playing screen, and the portraits for the first four aliens. Don't
  208. believe me? Take a look at UFO.IMG.
  209.  
  210.   UFO uses over 300,000 bytes before loading the alien sounds or portraits.
  211. This isn't surprising when you consider that the program is over 100,000 in
  212. size, allocates an 8k stack, 17k for images, 64k to store the desktop,
  213. 64k for the video buffer, plus it loads the "shuffle" and "click" sound
  214. effects, and that doesn't include the game data (the title screen, necrobones
  215. logo, and wind sound effect are all unloaded after use).
  216.  
  217.   UFO represents about 25 hours of work (not including, of course, the
  218. code made previously for other games, or the time I've spent playing it
  219. since its completion, or the time spent making revisions for versions
  220. after 1.00), and was written in Turbo Pascal 6.0, with truckloads of inline
  221. assembly for the graphics and sound units. The project was spread over a
  222. few weeks. Actually, the game was working quite well early on, but as
  223. usual I kept thinking of things to change/add/fix. Mostly the last week
  224. was been playtesting and making aliens.
  225.  
  226.  
  227.  
  228.  
  229. GETTING STARTED:
  230.  
  231.   When you first start the game, you will see the NecroBones logo, and then
  232. you will be taken to the main game menu. It is here that you select the
  233. parameters for the game.
  234.  
  235.   You can alter a few of the standard rules for the game, such as target
  236. score, and wild-card restrictions. It's fairly self-explanitory.
  237.  
  238.   Game strategies are very different between 2-player and 3 or more player
  239. games. The concept of the talking characters is based more on the 2-player
  240. mode, where you'll only hear the one guy speaking. With more players, you
  241. may find it a little confusing as to who says what sometimes. Unfortunately
  242. I had to sacrifice some sound quality to be able load all the samples into
  243. memory. I'm working on making more easily understood aliens. One thing you'll
  244. notice is that several of the characters say "UFO" when down to one card.
  245. This is an attempt to get some of the 'feel' back that was lost in
  246. converting UNO into a computer game.
  247.  
  248.   Most of the changes that you make in the menus will be saved when you exit
  249. the game, so that you may use the same preferences later.
  250.  
  251.  
  252.  
  253.  
  254. PLAYING UFO:
  255.  
  256.   During the game, there are a few keyboard commands you will want to know:
  257.  
  258.   F1  = Game Options
  259.   F2  = Toggle beeper sounds on/off
  260.   F3  = Toggle digital sounds on/off
  261.   F4  = "Hide" key, to hide the game from your boss.
  262.   +/- = Increase or decrease computer player delay.
  263.   ESC = Exit to DOS
  264.  
  265.   (from the game options menu you can quit back to the
  266.    menu, save the game, and change the player settings)
  267.  
  268.   Note- "OK" buttons can also be pressed by hitting the [ENTER] key.
  269.  
  270.  
  271.   During the game, at the bottom of the screen is a display that shows a
  272. bundle of useful info. On the left is a list showing how many cards each
  273. player has. The one in white is the player who's taking his/her turn. The
  274. others are light grey, and the players who aren't playing are dark grey.
  275. Also in this window is an arrow indicating the direction of the turn
  276. sequence, which is drawn in the current color of the discard pile.
  277.  
  278.   Next to that window is the discard pile, and the deck. The size of the
  279. deck will decrease as the cards are drawn, and when it runs out of cards
  280. a new deck will be inserted and shuffled. You can click here to draw a card.
  281.  
  282.   To the right of that are several buttons and another window. The Draw
  283. button can be used to draw a card, and it will turn into "Done" once a card
  284. is drawn. If you can not play anything, you will have to hit "Done" to
  285. end your turn. The "Score" button allows you to view the current scores.
  286. The other two buttons are for the autosort. Autosort will automatically
  287. sort your cards every turn (however it defaults to OFF). If Sort-by-Color
  288. is turned on, they will be sorted by color, and sorted by number within
  289. each color, otherwise the cards will be sorted only by number. If you wish
  290. to sort only once, turn the sort on and then off again.
  291.  
  292.   Above the sort settings display is the portrait for the current player.
  293. Since you will probably take longer to play your turn than the computer
  294. players, your portrait will be displayed more than the others.
  295.  
  296.   The rest of the screen is devoted to the cards. To play a card, simply
  297. click on it. If you are using the keyboard, then to play a card you must
  298. select it by moving the yellow rectangle to the card you wish to play.
  299. If a mouse is detected, the cursor will start "off screen", and you will
  300. have to move it one space to make it visible. You can use the number or
  301. cursor keys to move the cursor. All buttons can be pressed by hitting the
  302. key corresponding to the highlighted letter on the button. "OK" buttons
  303. can be pressed by hitting ENTER or SPACEBAR.
  304.  
  305.   In the Character Selection menu, you will see four character portraits on
  306. the screen with a few buttons next to each. Two of the buttons are for
  307. scrolling through the list of available aliens. The third one allows you
  308. to listen to the selected aliens set of digital samples. The game defaults
  309. to a random selection of aliens for each game. To use the set you have
  310. selected you must change the selection button to read "Current settings"
  311. instead of "Random".
  312.  
  313.  
  314.  
  315.  
  316. COMMAND-LINE PARAMETERS:
  317.  
  318.   By use of a few simple command-line parameters you can create a batch
  319. file to automatically use whatever sound settings you would like. They are
  320. as follows:
  321.  
  322.    /D# or -D#     where '#' is the number of the device.
  323.                   ex-   /D1  would set it to soundblaster.
  324.    /M# or -M#     where '#' is the number of the mixing rate
  325.                   ex-   /M4  would set it to 11000hz.
  326.    /C# or -C#     where '#' is the number of the channels
  327.                   ex-   /C1  would set it to 2 channels.
  328.  
  329.    The numbers used in the parameters correspond to the menu selections
  330. at game start-up. You will still see the sound-options menus on the screen,
  331. but the settings you entered on the command line will be entered as though
  332. you had typed them. You can use some or all of the paramters simultaneously.
  333.  
  334. Examples:
  335.  
  336.   UFO /D2 /M5
  337.         This sets UFO to Adlib and 12khz, but will still ask for channels.
  338.  
  339.   UFO /C2
  340.         This will cause UFO to use 4 channels (setting #2), and ask for
  341.         everything else.
  342.  
  343.   If you wish, you can create a batch file to use the settings you want.
  344. Two examples follow below, and in both they each assume you are creating
  345. a batch file called U.BAT, so that all you have to do to run UFO with the
  346. desired settings is type U at the dos prompt.
  347.  
  348. For each example, type in the following at the DOS prompt:
  349. (^Z = Ctrl-Z or F6 key,  <ENTER> = Enter key)
  350.  
  351. COPY CON U.BAT<ENTER>
  352. UFO /D1 /M4 /C1<ENTER>
  353. ^Z<ENTER>
  354.  
  355. This first example uses SoundBlaster, 11khz, and 2 channels.
  356.  
  357. COPY CON U.BAT<ENTER>
  358. UFO /D0<ENTER>
  359. ^Z<ENTER>
  360.  
  361. This last example runs UFO with no digital sound.
  362.  
  363.  
  364.  
  365.  
  366. CUSTOMIZING UFO:
  367.  
  368.   There are two main ways you can customize UFO, by adding aliens, and by
  369. replacing the table-top used in the game:
  370.  
  371.  
  372. ADDING PRE-CREATED ALIENS:
  373.  
  374.   Simply put them in the game directory, they'll be loaded automatically.
  375.  
  376.  
  377. CREATING ALIENS:
  378.  
  379.   For those of you with programming experience, who would like to create your
  380. own aliens, here's how they work...
  381.  
  382.   Each external alien has a POR (portrait) file. This is simply a file stored
  383. in the following format:
  384.  
  385. Item:   Size:
  386. ~~~~~~~~~~~~~~~~~~~~~~~~~
  387. len     integer (2 bytes)
  388. data    'len' bytes
  389.  
  390. The data is the bitmap, as stored by the normal BGI graphics commands [i.e.,
  391. 2 words of the x and y dimensions (minus one), then the actual image itself
  392. of size (x+1)*(y+1)].
  393.  
  394. i.e.:
  395.  data = record
  396.          x,y:word;  {4 bytes}
  397.          dat:array[0..y+1,0..x+1] of byte;
  398.         end;
  399.  len:=(x+1)*(y+1)+4;
  400.  
  401. Specifically, the bitmap is 30x45, so x=29 and y=44, and the the DAT array
  402. is therefore 1350 bytes.
  403.  
  404.   Any and all POR files (up to 32 of them anyway) found in the game directory
  405. will be loaded for use as aliens automatically.
  406.  
  407.   I have written an editor for editing and creating these portrait files,
  408. however you can only use it if you register the game. It's simple, and down
  409. and dirty, but it works. If you want to make one, and even distribute it as
  410. shareware, be my guest (that's why I explained all the file formats). Oh yeh,
  411. the filename is PEDIT.EXE, and it comes in the "UFO Utils" package.
  412.  
  413.   If you wish for the alien to have a voice, then you will need to make
  414. sound files for it. This is optional of course. If any of the sound files
  415. don't exist, they won't be loaded. So you do not have to make sound files
  416. at all, nor do you have to make all of them should you decide to make only a
  417. few.
  418.  
  419.   The original four aliens have the filename of SAMx-y.NSN where x is the
  420. non-zero-padded decimal number of the alien, and y is a number from 1 to 7
  421. defining which sound it is. In the case of external aliens, the filename is
  422. the same as that of the POR file, but with a digit of 1 through 7 attached
  423. to the end (examples: BRUNO.POR has BRUNO1.NSN, BRUNO2.NSN, etc.. And
  424. CHESHIRE.POR has CHESHIR1.NSN etc..)
  425.  
  426. Num:  Sound:
  427. ~~~~~~~~~~~~~~~~~~~~~
  428. 1     Lost with one card left
  429. 2     Has only one card left
  430. 3     Played a DRAW-2 or a Wild-DRAW-4
  431. 4     Drew a card
  432. 5     Skipped by a SKIP or a REVERSE
  433. 6     Got hit with a DRAW-2 or a Wild-DRAW-4
  434. 7     Won the hand.
  435.  
  436. The following is the data type used for the sound file:
  437.  
  438.  sample_type=record
  439.               transpose:real; {6 bytes}
  440.               len,rep:word;   {4 bytes}
  441.               name:string[8]; {9 bytes}
  442.               ID:string[3];   {4 bytes}
  443.               dummy:array[0..21] of byte; {junk space, 22 bytes}
  444.               dat:array[0..len-1] of byte;
  445.              end;
  446.  
  447.   LEN is the length, in bytes, of the data. REP indicates how many bytes
  448. of the sample to loop back upon reaching the end (a '0' means don't repeat
  449. anything). NAME is simply a string holding the filename of the sample.
  450. ID is a string set to "NSN". DUMMY is blank space, and DAT is the actual
  451. sound data in standard PCM (pulse code modulated) format (just like a WAV
  452. file). TRANSPOSE is a real (floating point) number that tells what speed
  453. to play it back at: 1.0 means 11025 hertz, 2.0 = 22050hz, etc...
  454.  
  455.   I realize that the TRANSPOSE variable is troublesome for you C programmers,
  456. but all I can say is SORRY! I didn't have portability in mind when I created
  457. my music and sound daemon. The strings are easy to overcome though. For
  458. instance, instead of loading a string[8], it would be an unsigned char for
  459. the string length, and then an array of char of size 8 following it. After
  460. reading it in, you would store it in an array of char of size 9, and put the
  461. 0 terminator at the offset in the array indicated by the first unsigned char
  462. you read in. Quite simple. Of course this discussion is probably moot, since
  463. anyone hoping to decode my mess and do their own sound and bitmap work for
  464. this game probably already have the experience necessary to figure out what
  465. I just explained with their eyes closed... Time to stop rambling...
  466.  
  467.   There is another file which can be added to your alien. It will have the
  468. same base-name as the aliens portrait file, but with the "STL" extension.
  469. This is the aliens playing style. The easiest way to make this file is to
  470. simply run the game, go to the "characters" menu, select your alien, click
  471. on the "Style" button, change what you like, and hit "Save". Please note
  472. that the 'save' button only works in registered copies of the game.
  473.  
  474. STL format:  (the file is but a copy of one of the following records)
  475.  
  476.  style_rec = record
  477.                numcards,wordcards,wildcards,colorchange:byte;
  478.                reserved:array[0..11] of byte; {16 bytes total}
  479.              end;
  480.  
  481. numcards:
  482.   0 = Doesn't care
  483.   1 = Plays low values first
  484.   2 = Plays high values first
  485. wordcards:
  486.   0 = Doesn't care
  487.   1 = Plays Reverse cards first
  488.   2 = Plays Skip cards first
  489.   3 = Plays Draw-2 cards first
  490. wildcards:
  491.   0 = Doesn't care
  492.   1 = Plays WILD cards first
  493.   2 = Plays DRAW-4 cards first
  494. colorchange:
  495.   0 = Doesn't care
  496.   1 = Prefers not to change color
  497.   2 = Prefers to change color
  498.   3 = Changes color when advantageous (when it involves a higher value card)
  499.  
  500.   All these numbers define is which cards the alien will play when given a
  501. choice. With 'wordcards=2' the alien will always choose to play a 'Skip'
  502. whenever it has to decide between a 'Skip' and one of the other word-cards.
  503. In the future some more options may be added, and that's why the "reserved"
  504. space is allocated and set to 0s. This is important. When new options are
  505. added, it will be assumed that '0' is the standard default, and you therefore
  506. should put 0's in the 'reserved' space in your aliens.
  507.  
  508.  
  509.  
  510. NOTE- Included in the "UFO Utils" is a copy of WAV2NSN which is a program
  511.       to convert WAV files to NSN files. Also included is a copy of the
  512.       source code (all of the procedures and functions are part of the
  513.       various libraries I have created for use in my games, but here just
  514.       the specific ones used were inserted directly into the program).
  515.       This is probably the easiest method of creating sounds for your aliens,
  516.       since most digital sound editors and recorders either save the sounds
  517.       as WAV files, or as a format that can be converted to WAV files.
  518.  
  519.  
  520.  
  521. USING PRE-CREATED TABLE-TOPS:
  522.  
  523.   As of this writing, no such table-tops exist yet. However, in the event
  524. that I create some, it will be as simple as copying them over the UFO.DAT
  525. file. If you tire of the new table-top, you can always go back to the
  526. normal green one by deleting UFO.DAT (or renaming it, or whatever). If
  527. no UFO.DAT is found, a new one is created when you run the game.
  528.  
  529.   I have, however, created a program called SPHERES, which will randomly
  530. generate a table-top that consists of various colored dithered shaded
  531. spheres. This program can be found in the "UFO Utils" package.
  532.  
  533.  
  534. [- Update: Some desktops can be downloaded from BBS's as UFODESK?.ZIP -]
  535.  
  536.  
  537.  
  538. CREATING TABLE-TOPS:
  539.  
  540.   Using alternate table-tops is quite easy. The table-top is stored as a
  541. file called UFO.DAT, and it is simply a copy of how the screen appears in
  542. video RAM. Below are examples of loops that could be used to put it on
  543. screen, or take a screen shot and save it to the file: (in 320x200x256,
  544. using direct access of the video RAM, as opposed to the putpixel and
  545. getpixel commands):
  546.  
  547. Procedure Load_Table_Top;
  548. var
  549.  f:file of byte;
  550.  b:byte;
  551.  x,y:integer;
  552. begin
  553.  assign(f,'UFO.DAT');
  554.  reset(f);
  555.  for y:=0 to 199 do
  556.   for x:=0 to 319 do
  557.    begin
  558.     read(f,b);
  559.     mem[$A000:x+y*320]:=b;
  560.    end;
  561.  close(f);
  562. end;
  563.  
  564. Procedure Save_Table_Top;
  565. var
  566.  f:file of byte;
  567.  x,y:integer;
  568. begin
  569.  assign(f,'UFO.DAT');
  570.  rewrite(f);
  571.  for y:=0 to 199 do
  572.   for x:=0 to 319 do
  573.    write(f,mem[$A000:x+y*320]);
  574.  close(f);
  575. end;
  576.  
  577.  Note- These two procedures do the file accessing byte by byte, which
  578.        is extremely slow. There are better ways of doing it, but I can't
  579.        explain EVERYthing here, now can I?
  580.  
  581.   The palette used by the game is UFO.PAL. It is stored as an ASCII file
  582. where each line represents a single color, starting with color 0, ending with
  583. color 255. Each line has 3 numbers, seperated by spaces. The first is the
  584. red component, the second is green, and the third is blue. The following is
  585. a procedure to load the palette:
  586.  
  587. procedure load_palette(fn:string);
  588. var
  589.  i,r,g,b:integer;
  590.  f:text;
  591. begin
  592.  assign(f,fn);
  593.  reset(f);
  594.  for i:=0 to 255 do
  595.   begin
  596.    read(f,r);
  597.    read(f,g);
  598.    readln(f,b);
  599.    setrgbpalette(i,r,g,b);
  600.   end;
  601.  close(f);
  602. end;
  603.  
  604.   The default palette is set up such that the first 16 colors are roughly the
  605. same as the normal 16 colors of any other mode. Starting with color 32, there
  606. are 7 sets of 32 colors. Each set is a scale that fades from black, up
  607. through a specific color, then up to white. These seven colors are the same
  608. as colors 1 through 7:
  609.  
  610. 1 - Blue     32 to 63
  611. 2 - Green    64 to 95
  612. 3 - Cyan     96 to 127
  613. 4 - Red     128 to 159
  614. 5 - Magenta 160 to 191
  615. 6 - Yellow  192 to 223
  616. 7 - Grey    224 to 255
  617.  
  618.   You shouldn't alter the palette, since that will throw off the colors of
  619. the buttons, the logos, and the cards, as well as the portraits. Rather,
  620. you should use this palette when creating any new table-tops. As stated
  621. above, you can always go back to the old green table-top by removing
  622. whichever one you are using.
  623.  
  624.   There is a program called PicLab that can be of immense use when converting
  625. pictures. You will have to be able to get your picture into GIF or TGA format
  626. to load it into PicLab, but once there you can convert it to a new palette,
  627. resize it, etc. If you can load the resulting image onto the screen in one
  628. of your own programs, then you can use the methods described above to save
  629. it in the format the game uses. At some point in the future I may make a
  630. program to convert PCX images, but in the meantime you'll have to use my
  631. suggestions instead.
  632.  
  633. PicLab method:
  634.  
  635.   The following is an example of a set of commands that can be used to
  636. process an image in PicLab to convert it for use in UFO:
  637. ('UFO.MAP' is the same palette as UFO.PAL but in FractInt's MAP format)
  638.  
  639. gl sample.gif
  640. unmap
  641. rescale 320 200
  642. pl ufo.map
  643. map
  644. gs sample2.gif
  645.  
  646. (at this point SAMPLE2.GIF will need to be converted as described above. To
  647. use the sample source code you will need to be able to show GIF files to the
  648. screen in your own program, or PCX or whatever you can convert the GIF to).
  649.  
  650.  
  651.  
  652.  
  653. REVISION HISTORY:
  654.  
  655.   1.01   - Chances of sound #6 (hit w/ draw) for the aliens has been
  656.            slightly increased.
  657.          - Text in the menus has been given more of a border to make
  658.            it more easily understood with the various desktops.
  659.          - The Math-Coprocessor is no longer directly accessed, since
  660.            it is possible this was causing a conflict on some systems.
  661.            (I have a feeling the coprocessor stack is
  662.            smaller on some computers than mine is)
  663.          - The "Making-Tabletop" window now displays a bar-graph of its
  664.            progress.
  665.  
  666.   1.02   - Selectable mouse cursors.
  667.          - FILE_ID.DIZ included.
  668.          - "About the Author" added to this documentation.
  669.          - The lower left window during the game now shows the names of
  670.            the players instead of just "Player#1" and so forth....
  671.  
  672.   1.03   - Documentation revisions
  673.          - Revised "score-board" at end of each hand.
  674.          - UFO can now deal with you removing aliens from the directory
  675.            that were selected in the character selection menu.
  676.          - Play-direction arrow now points in both directions
  677.            for 2-player games.
  678.          - New, more efficient, font system.
  679.          - Sound configuration is now done from a config
  680.            program instead of being asked every time you play.
  681.          - UFO now saves which players are human/alien, and whether beeps
  682.            are ON or OFF, in addition to the other configuration options.
  683.          - A new level of talk-rate, "Nearly Always".
  684.          - "Hide" key added (F4)
  685.          - Sound Daemon upgraded to allow one clear channel.
  686.  
  687.   1.04   - A bug in the text system (that put things off-center under
  688.            certain circumstances from combinations of aliens) has
  689.            been corrected.
  690.          - More minor documentation updates.
  691.  
  692.   1.05   - FILE_ID.DIZ updated this time <grin>...
  693.          - All of the players portraits are shown during the game
  694.            at all times now.
  695.          - Errors with the alien-randomizer-chooser have been
  696.            corrected, including the bug in the lock-out feature.
  697.          - Now, from the alien STYLE menu you can actually select
  698.            whether or not aliens will be locked out of the above
  699.            mentioned randomizer.
  700.  
  701.  
  702.  
  703.  
  704. WHERE'D THAT NEAT-O TITLE SCREEN COME FROM?
  705. -By Jeremy A. Kusnetz-
  706.  
  707. Did you like the title screen?  Do you wish you could incorporate
  708. some scenes like that in some of your work,  games, utilities, 
  709. presentations, or WHATEVER?  Now you CAN!  Just read on...  
  710.  
  711. You can have still frames, in any format, any resolution. 
  712. Animations in 320x200 or 640x480, in the .FLI format.
  713.  
  714. Working together, we can make anything you want, if you can think
  715. it up, it can probably be done..  Of course, it all has a price..
  716.  
  717. As of this writing, April 1994, the prices for stills range from
  718. $20 - $200 per picture, depending on it's complexity, and
  719. technical difficulty..  Animations run $30 - $300 per second of
  720. animation, again depending on difficulty..  This might sound
  721. high, but when you consider the going commercial rate for 3D
  722. animation is $5000 per second, this really is a good deal.
  723.  
  724. If this sounds interesting to you, you can contact me, Jeremy
  725. Kusnetz, at (301) 317-4969, or you can write me at:
  726.  
  727. Jeremy Kusnetz
  728. 9520 Sweet Grass Ridge
  729. Columbia MD, 21046
  730.  
  731. You can also E-Mail me Via Prodigy by mailing FVPW01E, AOL by
  732. mailing JeremyAK, and through a private BBS, the Sorcerer's
  733. Quarters (410) 290-3752 by mailing EX...
  734.  
  735. [- Update:  Sorcerer's Quarters is down -]
  736.  
  737.  
  738.  
  739. WHAT THE HELL IS NECROBONES ANYWAY?:
  740.  
  741.   Well, here's an interesting story. Here it is in a nutshell...
  742. One thing I have noticed is that people tend to download games that simply
  743. bear a name that they are familiar with from other games that they felt were
  744. enjoyable. I wanted to have a logo that would be instantly recognizable,
  745. something different and unique. Finally, in the fall of 1993 I decided that
  746. my games had reached a certain level of quality that the time had come for
  747. a name.
  748.  
  749.   In the BBS world, and in role playing games, I had often gone by the
  750. alias of Necromancer. In games and the like, I had always heavily used
  751. undead stuff (for about as long as I've been playing games, the undead
  752. were always my favorite nasty evil things).
  753.  
  754.   About eight years ago I created a small comic series (for fun) called
  755. Bones Comics (which I had continued to work on for about four years or
  756. so), and decided to merge that name with "Necromancer", resulting in
  757. "NecroBones". I wasn't sure (I'm STILL not sure) how well that name goes
  758. over with most people, but I DO know that it will stand out.
  759.  
  760.   So, what it all comes down to is this:  NecroBones is me. Period. It's
  761. a name that I put on my games (and related things) that I feel are up to
  762. a certain level of quality. If I make something that doesn't meet those
  763. standards, I won't put the name on it. I'm not going to try to use the name
  764. to sell a smaller inferior product. The whole purpose of it is for you to
  765. be able to recognize the work of mine that meets certain standards I have
  766. set for myself.
  767.  
  768.  
  769.  
  770.  
  771. ABOUT THE AUTHOR:
  772.  
  773.   Well, It's not often that I talk about myself in my documentation, but
  774. I'm sure some of you are curious (I know I'm always curious about the authors
  775. of programs I download).
  776.  
  777.   As of this writing, I'm a college student at UMBC (University of Maryland,
  778. Baltimore County), majoring in Computer Science (big surprise eh?). I've
  779. been programming as a hobby for about 6 years straight. I started out in
  780. GWbasic, and finding it too slow and restrictive I quickly moved on to
  781. QuickBasic, which I continued to program in until almost exactly 3 years ago.
  782. I again switched at that time due to speed and size limitations in the
  783. language, and have since been programming primarily in Turbo Pascal 6.0,
  784. though occasionally in C as well.
  785.  
  786.   Why haven't I switched to C altogether? Well, it's this deal with what I'm
  787. most familiar with, and the fact that I have built up a huge collection
  788. of routines for every possible situation that could take forever to convert
  789. over to C, including my digital sound system, custom file accessing routines,
  790. and my graphics library. Also, I tend to get extremely impatient, and I'm
  791. quite happy with the fact that games such as this take no more than 3 or 4
  792. seconds or so to compile on my computer in TP6. I've found pascal to be quite
  793. sufficient for writing shareware... well, at least with a little inline
  794. assembly language anyway (my graphics system, file system, and sound system
  795. are all written in assembly).
  796.  
  797.   While programming, and other general computer topics (such as anti-virus
  798. tactics, artificial life, digital music composing, etc) constitute my primary
  799. hobby, I do have others. A number of years ago I used to perform magic at
  800. childrens birthday parties, for instance. I used to be an avid Role Playing
  801. and Strategic War-Gaming fanatic as well. More recently I have gotten into
  802. some sculpting, thinking <gasp!>, and computer art.
  803.  
  804.   Meanwhile, my game programming is finally getting afloat. I'm starting
  805. to see some moderate success with my more recent games, including this one
  806. (meaning they're pulling in more than two registration checks each). I hope
  807. to continue the trend, and release more and more exciting and detailed
  808. games as time pushes forth...
  809.  
  810.   ** Job offers welcome **
  811.  
  812.  
  813. Addendum- I'm now majoring in Physical Geography, and will probably put
  814.         my computer talents towards Earth-related simulations and graphics.
  815.  
  816.  
  817.  
  818.  
  819. OTHER NECROBONES PRODUCTS:
  820.  
  821. The following is a list of some NecroBones programs as of 8/19/94:
  822.  
  823.   Dragon's Domain     - While not specifically a NecroBones product, this
  824.                         package or four games, Dragon's Domains 1 through 4,
  825.                         has been received well in certain circles. All four
  826.                         games are roughly based on the old Atari game
  827.                         ADVENTURE, but with slightly better graphics. Each
  828.                         game has graphics improvements over its predecessor.
  829.                         DragDom1 is better in graphics over Adventure only
  830.                         in the monsters and objects, while DragDom4 has
  831.                         completely bitmapped walls and such. The basic
  832.                         concept of each of these is to find your way through
  833.                         mazes, some lit, some not, and find certain objects.
  834.                         Along the way you will be presented with having to
  835.                         find the keys to the various castles, which can
  836.                         be a puzzle in itself. (sorry, no scrollie graphics,
  837.                         it's all static backgrounds). The 1-year anniversery
  838.                         package contains the entire tetralogy, plus a small
  839.                         "dragon card game" called Drahkarin.
  840.  
  841.   Skull Quest         - Skull Quest I, The Cyan Sarcophagus, and Skull Quest
  842.                         II, The Vortex, are two fairly recent games of mine.
  843.                         They are side-view action/adventure games with
  844.                         smooth scrolling parallax backgrounds, and adlib
  845.                         music and sound effects. Can you save the crypt
  846.                         (and the rest of the world)? Only time will tell.
  847.  
  848.   Stellar Conquest II - This isn't so much a sequel as it is a revision of
  849.                         SC1. It is a stretegy space wargame for 0 to 4 human
  850.                         players (2-4 human/computer). It features full color
  851.                         VGA, taking advantage of both the hi-res and
  852.                         256-color modes (256 color for menus, ship
  853.                         construction, etc, and hi-res for maps and the like).
  854.                         Players have to mine star systems with which to get
  855.                         resources to spend on more cargo ships, and weapon
  856.                         ships to fight the other players. There are many
  857.                         configurable options, and players get to design
  858.                         their own ships during gameplay.
  859.                         (I am no longer actively distributing this one,
  860.                         since SC3 is really the next reincarnation...)
  861.  
  862.   Stellar Conquest III- Like SC2, SC3 is more of a revision than a sequel.
  863.                         It is the same concept as SC2, same equations and
  864.                         numbers, etc. The interface has been greatly revised,
  865.                         and many new options are now available for the
  866.                         players. Ships can now have Jump pods, torpedo
  867.                         launchers, minelayers, and a new type of cloaking
  868.                         device. Since SC3 is basically the same game as SC2
  869.                         but with so many more options and a much better
  870.                         interface, I rarely even advertise SC2 anymore.
  871.  
  872.   Codex Arcana        - The first chapter, "Gate Crystal", has been
  873.                         completed. In this VGA/Soundblaster adventure,
  874.                         you find yourself lost in a strange land ruled
  875.                         by the elements. Can you find your way through the
  876.                         mazes, avoiding and destroying elementals, while
  877.                         surviving intense heat and cold, to reach the center
  878.                         of the map and find a way out? Only time will tell.
  879.                         As usual, digital sound, hand-drawn graphics, etc.
  880.  
  881.   Asteroid Mayhem     - Remember the old arcade game "Asteroids"? And the
  882.                         old MacIntosh game called "Crystal Quest"? Well,
  883.                         elements of both have been combined to make Asteroid
  884.                         Mayhem! Targets abound, and there's plenty to
  885.                         wantonly destroy! Shoot up the asteroids, and collect
  886.                         the gems that were inside for points! With each
  887.                         passing level more asteroids appear, and bigger
  888.                         nastier aliens come into the fray. How high of a
  889.                         score can you get? Only time will tell. Asteroid
  890.                         Mayhem has a full suite of silly digital sound
  891.                         effects, and has fast-paced scrolling animation!
  892.  
  893.  
  894.   All of these games can be downloaded from my BBS. In fact, you can download
  895. some of my older and more embarassing games as well! That's right, you can
  896. even download some of the ones I wrote in QuickBasic several years ago, such
  897. as Stellar Conquest #1!
  898.  
  899.  
  900.  
  901.  
  902. LEGAL SHTUFFS:
  903.  
  904.    This game is being distributed as "shareware", which basically means
  905. "try before you buy". You are entitled to try out this program to evaluate
  906. its use to you. If you continue to use it you are expected to pay for it,
  907. as outlined in the REGISTRATION section below. You are also encouraged to
  908. give copies of the unregistered version to your friends, and upload it to
  909. bulletin boards. The copies you distribute MUST be unmodified, and must be
  910. the unregistered version of the program. If you are a shareware disk vendor,
  911. please see the section labelled "VENDORS" below.
  912.  
  913.  
  914.  
  915.  
  916. REGISTRATION:
  917.  
  918.    This program is being distributed on the "shareware" concept. It is by
  919. no means completely free. If you think the program is of use to you, or you
  920. use it for any reasonable amount of time, please send a registration fee of
  921. $15 (US). If you think that is rediculous, then send less (or more for that
  922. matter). If you hate the program or found too many bugs, write me and tell
  923. me, and include a graphic explanation (but don't be too harsh!! Heheheh). In
  924. any event, write to:
  925.  
  926.                            Ed T. Toton III
  927.                          7101  Talisman Lane
  928.                           Columbia Md 21045
  929.                                 (USA)
  930.  
  931.   We accept cash, checks (ones that are paper, not rubber, if you catch my
  932. meaning), or money orders. Please make sure all checks and money orders
  933. are from US banks/postal-services, and all cash must be US legal tender.
  934.  
  935.   We regret to inform you that we no longer accept the following forms of
  936. payment: briefcases full of drugs, top secret documents, women, firstborn
  937. children, slaves, work animals, crates of firearms, and thumbtacks.  :-)
  938.  
  939.   Please make sure you clearly spell out your name the way you would
  940. like it to appear in the program. If you would like copies of some of my
  941. other software, please send me a blank disk to send them to you on.
  942.  
  943.   Inclusion of a self-addressed stamped envelope will greatly speed up the
  944. process of my returning a response. Please be patient.
  945.  
  946.  
  947.       And WHY should you register it?
  948.         1.  To support my continuing efforts to bring you some level of
  949.              functional programs. If I get no cash, you get no improvements
  950.              in these programs, and I won't be encouraged to make new and
  951.              better software!
  952.         2.  To get that warm glow for knowing that you supported the author 
  953.              of at least one of the many shareware programs you probably use.
  954.         3.  To find out if there is a newer version. All you need to do is 
  955.              ask! But letters with money take priority!
  956.         4.  You could be sick and demented and thus register everything you
  957.              get your hands on.
  958.         5.  It's the right thing to do.
  959.         6.  To get your very own registration number that will make that
  960.             "please register" screen at the end of the game go away. It
  961.             will also allow you to use the Portrait editor/creator, thus
  962.             allowing you to make your own aliens without writing your own
  963.             program to do so.
  964.  
  965.  
  966. ---------------------------------------------------------------------------
  967.  
  968.   This Program, Manual, and Data Files, are all protected by U.S. Copyright
  969.  Law (title 17 United States Code). Unauthorized reproduction, distribution
  970.  and/or sales may result in imprisonment of up to one year and fine up to
  971.  $10,000 (17 USC 506).  Copyright infringers may also be subject to civil
  972.  liability. If you mess with us, we'll delete you!
  973.  
  974.          The author of this program makes no warranties of any
  975.       kind, expressed or implied, as to the fitness, functionality,
  976.       effectiveness, or safety of this software and accompanying
  977.       documentation. Under no circumstances shall the author and
  978.       developer be liable for any damages incurred during or as a
  979.       result of the use of, or misuse of, or inability to use, this
  980.       software and documentation. All risk is assumed by the user,
  981.       and we hereby disclaim any implied warranties of fitness or
  982.       performance of this software. Use at your own risk.
  983.          The developer and author reserves the right to make
  984.       revisions and changes to the software and documentation without
  985.       warning at any time. Any and all changes and revisions will be
  986.       made without obligation to inform any person or persons of said
  987.       changes.
  988.  
  989. ---------------------------------------------------------------------------
  990. VENDORS:
  991.  
  992.    Recently I have altered my policies concerning shareware vendors. Now you
  993. must first obtain written permission from the author before you can
  994. distribute this program. One reason for this is so that I may try to avoid
  995. certain "unpleasant" situations, but the main reason is merely so that I
  996. may keep track of what is being distributed where, and by whom.
  997.  
  998.    To obtain permission to distribute this program, simply write to me
  999. (same address as listed above for registration), and include the following
  1000. information:
  1001.  
  1002.    (If you are distributing a previous version of this program
  1003.     and did not receive permission because it was not required,
  1004.     I will consider you *NOT* having permission to distribute)
  1005.  
  1006.    1. Your name (or company name) and address.
  1007.    2. Your policies for encouraging your customers to
  1008.       register the shareware they obtain from you.
  1009.    3. The cost the customers will pay for the program.
  1010.    4. The means of distribution (i.e. mail order, disks
  1011.       in computers stores, disks at computer shows, etc).
  1012.  
  1013.    If you do not include this information, your request will be denied.
  1014. If you do include the information, your request will most likely be granted.
  1015. I simply need to know where my programs are going, and I need to make sure
  1016. that I regulate the pricing.
  1017.  
  1018. ---------------------------------------------------------------------------
  1019.  
  1020. Disclaimer:
  1021.  
  1022.    Before installing, backup your hard-drive (what!?). The program is
  1023. harmless, but if by some chance it blows up in your face, burns down your
  1024. house, or attacks your cat with a fake pickled trout, or incurs any other
  1025. damage (to data or otherwise), I am not responsible. If you can not accept
  1026. these terms, delete this package now and don't use it.
  1027.  
  1028.  
  1029.  
  1030.  
  1031. Welp, that's all! Have fun!!!
  1032.  
  1033. For CONTACT INFORMATION see:   NBONES.DOC
  1034.  
  1035.  
  1036.  
  1037.                                                         -Ed T. Toton III
  1038.                                                           "Necromancer"
  1039.                                                       NecroBones Software.
  1040.  
  1041.