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