Article View: comp.windows.x
Article #24717xmris V3.00 available
From: Nathan Sidwell
Date: Fri, 08 Jan 1993 13:48
Date: Fri, 08 Jan 1993 13:48
142 lines
6734 bytes
6734 bytes
Xmris version 3.00 is now available. It has been posted to alt.sources as comp.sources.x is unavailable at the moment. If you can't get alt.sources, or any of its archives, you may obtain it from me by email with a subject "xmris request". A reply line may be in the mail to change the default reply, if you know that doesn't work. Ie reply nathan@inmos.co.uk Xmris is a video game, here is the changes file. CHANGES FROM V2.00 to V3.00 (in no particular order) > > > (F A N F A R E) < < < > > > N O W < < < > > > I N < < < > > > C O L O U R < < < Colour was fun! As I only have a b&w display and bitmap can only do 1 plane bitmaps, it was out with the squared paper and crayons. And then trips down the corridor to see if the colours look alright. All the sprite colours are user definable, so you can change them to suit your taste. Thanks are due to Stefan, for having the patience to change his colour sprites when I changed the formats (see -msit for details). Again, Imakefile and Makefile.std have changed, you'll need to do the right thing AND read the compilation file, because the compilation procedure has changed. Doesn't require memmove anymore. Now uses the Xtoolkit to do the initialize stuff. This means you get all the normal toolkit options. The control structure has been turned inside out, so there is only one control loop. This uses a recursive function definition, so looks really weird (but is still ANSI conformant). Maybe I should turn this into a big switch. The -mris and -msit flags select different sprites. The -swap flag creates better looking inverse screens. The -scores option and Xmris.scores resource have changed to -dir and Xmris.Dir, and now points to a containing directory, rather than a file. The score file names are locked into the source. The score file format has changed slightly. You can pipe the old score file through convert_score into xmris.score and then delete the old score file. You may _not_ want to do this, because the game difficulty has changed, and you might like to start the scores again from scratch. Note the different name, players using their own copy of the old xmris will then complain that the score file has vanished, and you'll be able to get them to use the new version. Option -scores now prints out the high score tables. Option -visual <visual_class> selects a non default visual. Option -private allocates a private colormap. Option -colors shows how the colours are allocated. Option -distinct <n> limits the colormap entries used. Nearly all options have an equivalent X resource. There are three high score tables, all time best, best of the day and personal best. Greg (G.J.) Boyes <BOYES@BNR.CA> had some suggestions in this area. The name is now picked up from getpwuid, not environoment var 'USER'. Your score is only put in the all time high scores, if it is above a compile time threshold (to save newbies permanent embarrassment). The score table also shows the game play time (it does not include the recap screen, and other delays). The personal best scores are either put in the score directory, or the users home directory. Scoring is scaled by the speed of the game. The game tries to determine how fast it is running, in order to not miss interrupts, and uses this dilation to scale the scores. This gives some measure of fairness when running the game on hardware which is too slow. You also get elapsed times. Correctly works as a setuid program with servers which perform user verification (such as openwindows). There is a compile time flag to select two types of file locking, the default is to use lockf(3), but, as Daniel Edward Lovinger <del+@cmu.edu> has pointed out, some distributed file systems (AFS in his instance) don't support it (NFS is ok). I've also discovered that, for some unknown reason, my lock deamon rpc.locd grows its heap unendingly, for each lock-unlock pair. Its not fun when your lockd heap takes up 10MB! This appears to be a bug in SunOS 4.1 its gone in 4.1.1. Rather than say, that's not my fault, (which it isn't), you can say you haven't got lockf, and a simple locking scheme is used which uses open(O_CREAT | O_EXCL), to create a lock file in the score directory. For this to work xmris must have create access rights to the directory (which is why you might want to make it a setuid program). You can use the pause key to cycle round the demo screens. You can use the throw key to skip game information screens and game pauses. The player has a nap, when paused, and get excited when a screen is finished. The ball is bigger. Its easier to see when you're holding it. It also gets monsters, if they pass going round a corner. Keyboard control is tightened up a bit, and you always get the cherry bonus, if you don't stop. The extra monster gets homesick after a while. Apples cannot clump together on the initial layout, they've also turned into 'active sprites' so they don't get stuck on ledges incorrectly. They also don't gratuitously align on the board matrix when falling. The xtra and drones only eat apples when they've got to the same place, rather than about 1/2 a cell away. I got a load of information from Ramon Dominguez <ramon@orion.convex.com>. I've put in some of his findings, but not others. Mainly the ball return time is deterministic and the xtra letter selection is different. Also the drone apples are 'ghosts' for a short while. And diamonds have been added. The timer interrupt has been changed. It retriggers the interrupt in the signal handler, provided the game was waiting on it. This gives more accurate timing, and prevents the game going super-fast when trying to catch up. Doesn't define the cursor, and can now generate all sprite reflections from one image (at the expense of startup time). Also the different monochrome and color sprites are compressed into one set of planes. Some other bits and bobbles have been fixed. Namely some asserts were triggered, and these have been fixed. README is derived from xmris.man, so can't get out of sync. HP/UX machines work despite pretending to be both BSD and SYSV. POSIX signal handling added. The ANSI/K&R stuff has been altered a bit. I also now (correctly) use #if __STDC__, rather than #ifdef __STDC__.
Technical Details
Message-ID:
<1993Jan8.134855.6479@wraxall.inmos.co.uk>Path:
arc1-ca.pugleaf.net!sparky!uunet!inmos!wraxall.inmos.co.uk!elberton!nathanShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!inmos!wraxall.inmos.co.uk!elberton!nathan Newsgroups: comp.windows.x From: nathan@inmos.co.uk (Nathan Sidwell) Subject: xmris V3.00 available Message-ID: <1993Jan8.134855.6479@wraxall.inmos.co.uk> X-Newsreader: TIN [version 1.1 PL8] Date: Fri, 8 Jan 93 13:48:54 GMT Lines: 142