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