Opensourceinfo

Opensource for an Openmind.

OpenSource Headlines

Thanks for the advice. I just

Use embedded Linux and open-source software to build a networked audio appliance.

Benchmarking ZFS On FreeBSD vs. EXT4 & Btrfs On Linux

ZFS is often looked upon as an advanced, superior file-system and one of the strong points of the Solaris/OpenSolaris platform while most feel that only recently has Linux been able to catch-up on the file-system front with EXT4 and the still-experimental Btrfs.

openmamba 20100728

It runs on computers based on the 32-bit Intel x86 architecture, or on 64-bit AMD processors in 32-bit mode.

Even SAP is using more open source

By Source Seeker on Wed, 07/28/10 - 5:55pm. Yesterday SAP took another step into the open source world by signing on to use the Black Duck Suite .

Why WikiLeaks Is The Pirate Bay of Political Intelligence

WikiLeaks is currently in the news because its Afghan War logs comprise one of the largest and most controversial intelligence leaks to date.

Convirture goes open core with 2.0 virt tools

Convirture has unveiled a management tool for open source hypervisors. It's been clear from the beginning of the server virtualization wave that eventually the hypervisor would become commoditized and that the real action, in terms of functionality as well as in money, would come with the management tools that wrap around the hypervisor and make it ...

proxy servers

May 4, 2009 ... As an alternative to downloading the files, the HCPM/HAI Synthesis Cost Proxy Model may be obtained from the FCC's duplicating contractor, ... http://www.fcc.gov/ccb/apd/hcpm/ Patent Database Notices and Status The database servers are now capable of processing approximately 300 simultaneous searches.

Open source installer offered for Plug Computer

Marvell announced the availability of an open source installer, simplifying software deployment on its Linux-based Plug Computer reference design.

Google patches Chrome, sidesteps Windows kernel bug

July 28, 2010, 09:59 AM - Computerworld - Google on Monday patched five vulnerabilities in Chrome by issuing a new "stable" build of the browser.

Fast Easy Web Hosting

Your Say About Movies

Cigars Review

Man Pages



Games
Browse in : All > Documents > Man Pages > Games (40)
All A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Other

accel

NAME

accel - tests the new style svgalib accelerator interface  

SYNOPSIS

accel

 

DESCRIPTION

Test new-style accelerated functions (As of this writing: Ark, Cirrus, Chips & Technologies cards, and Mach32 only). For other cards the demo will not work (well it will complain about missing accelerator support). Don`t worry about this.

During the development of the Mach32 new style driver for 1.2.12, this demo was massively extended to check the Mach32 functions.

Upon startup it lists all supported SVGA modes and asks you to enter a number identifying the mode to be tested. The supported subfunctions of vga_accel(3) in this mode are listed and the demo instructs to press <Return> to start the demos.

If supported, all drawing operations are performed in the background.

Then the following tests are performed:  

Positioning tests

These tests were originally intended to check that the accelerator commands work on the proper screen locations. The screen shows 12 (4 x 3) smaller areas with red crosses in the corners. When everything is ok, the drawings should reach right in the corners of the crosses.

A given card may not support all operations listed here. In that case the resp. test area just shows the red crosses. For tests performed, the name of the test is printed below the area. The tests are (from left to right, top to bottom):

1.
A green box is drawn with vga_accel(ACCEL_FILLBOX).
2.
A cross of green lines is drawn with vga_accel(ACCEL_DRAWLINE).
3.
A linux pixmap just fitting into the crosses is drawn with vga_accel(ACCEL_PUTIMAGE).
4.
A pixmap just fitting into the crosses is drawn into the red crosses (by vgagl(5) which may or may not use the accelerator). The pixmap is then copied to a few lines/columns below. Green crosses mark the intended destination position.
5.
Works like 3. but copies to an area above the origin. The accelerator must ensure that the overlapping areas are handled non corrupting. Thus, watch that the copy operation is properly performed.
6.
A green triangle is drawn above the top/left to bottom/right diagonal by use of vga_accel(ACCEL_DRAWHLINELIST).
7.
Certain bitmaps are copied to the screen. In the corners you`ll see the digits
0
top/left, green on red.
1
top/right, red on green.
2
bottom/left, black on white.
3
bottom/right, white on black. Note that some black border, not the digit will be aligned to the red crosses.
Finally, a yellow wizard image is drawn into the center.

The bit ordering for bitmaps is a bit weird. Please check that the digits are not mirrored or flipped.

8.
This time bitmap transparency is tested by drawing wizard images onto the aforementioned linux pixmap (left to right, top to bottom) in yellow, red, green, and cyan. The background of the yellow wizard is masked out by a black border bitmap. Note that the wizard will not reach into the red corners because the bitmap has some (transparent) border.
9.
The text below this box is copied as a monochrome bitmap from the screen into the corners listed under 7. in the same colors.
10.
Two green rectangles with an edge cut out from the bottom is drawn using vga_accel(ACCEL_POLYLINE).Thereisanintendedbugwhichdrawsthecenterofthe top line twice. If supported, the lower rectangle is drawn in cyan and with the xor raster operation s.t. the buggy point is not drawn thus leaving a pin hole.
11.
vga_accel(ACCEL_POLYHLINE)isusedtodrawsomegreenlineswhichmakesthisarealook like a green box with a cut out, black M-style shape.
12.
A weird green polygon is filled in red with vga_accel(ACCEL_POLYFILLMODE) using the techniques given in vga_accel(3). This needs some offscreen memory. If VGA memory is tight in that resolution the test cannot be performed.

After this screen, you`ll have to hit <Return> to continue.  

Raster operations

Again, red cross bordered areas are drawn on the screen, this time for each of the supported raster operations. For ROP_AND and ROP_XOR the areas are filled in white first.

Three overlapping boxes A, B, C are drawn such that you see the following areas.

AAAAAAddddBBBBBB
AAAAAAddddBBBBBB
AAAAAAddddBBBBBB
AAAAeeggggffBBBB
AAAAeeggggffBBBB
AAAAeeggggffBBBB
CCCCCCCC
CCCCCCCC
CCCCCCCC

The pictures should show:

1.
Replace mode. A, B, C are red, green, blue. They just overlap, yielding d - green and e, f, g - blue.
2.
The colors mix using ROP_OR (and a nice color table). The overlapping areas become the additive color mix: d - yellow, e - magenta, f - cyan, and g - white.
3.
ROP_AND is used. The background is filled white first, s.t. there is something in video memory to and with non trivially. We have A, B, C in cyan, magenta, yellow and d, e, f, g in blue, green, red, black.
4.
ROP_XOR is used and the background filled white first too. A, B, C are red, green, blue again, but the overlapping areas d, e, f, g become blue, green, red, white.
5.
ROP_INV is used, s.t. A, B, C are all white and d, e, f, g become black, black, black, white. Note that this is not done by using ROP_XOR and drawing A, B, C in white. Instead A, B, C are drawn in the usual
 red, green, blue. However, the accelerator just inverts the memory contens.

If the accelerator supports raster operations for ACCEL_DRAWHLINELIST actually disks (well, ellipses) are drawn instead of boxes.

After this screen, you`ll have to hit <Return> to continue.

 

Replace QuixDemo

If ACCEL_DRAWLINE is supported, a Quix like bouncing series of lines in varying colors is drawn. The lines are removed from the screen by overdrawing them in black, thus erasing the dots and text on the background.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

XOR Mode QuixDemo

As before, but this time all lines are drawn in ROP_XOR mode (if ACCEL_DRAWLINE supports raster operations). Thus the background will not be destroyed this time.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

FillBox Demo

The screen is ACCEL_FILLBOX filled with a series of boxes of increasing colors. In truei/high color modes you`ll probably only see a series of varying blue tones (because these are at the beginning of the color table and there are soo many of them).

The test lasts about 5 seconds and some statistics are printed to stdout.

 

ScreenCopy Demo

Some random dots are drawn on the screen and thirds of the screen contents are moved around using ACCEL_SCREENCOPY.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

Scroll Demo

Some random dots are drawn on the screen and moved one line up with ACCEL_SCREENCOPY. In offscreen memory a new line is prepared which will be cleared by ACCEL_FILLBOXandmoveinfrombelow.Thistestrequiressomeoffscreenandwillnot be performed if video memory is very tight.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

FillBox with DrawHLineList Demo

Like the FillBox test, but no box fill is done but the screen is filled with a list of horizontal lines drawn with ACCEL_DRAWHLINELIST.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

FillBox XOR Mode Demo

Like the FillBox test, but the XOR raster operation is used.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

PutBitmap Demo

The screen is filled with bitmasks consisting of tiny vertical lines alternating in red and blue.

The test lasts about 5 seconds and some statistics are printed to stdout.

 

SOME DATAPOINTS

Here is a list of speed listings for some cards. Please keep in mind that also the calling overhead for the program is measured. This seems to be esp. true for the QuixDemo.

 

Results on a Cirrus GD5434-E with 2Mb:

640x480x256 60 Hz

FillBox: 200.3 Mpixels/s (200.3 Mbytes/s)
ScreenCopy: 51.0 Mpixels/s (51.0 Mbytes/s)
Scroll Demo: 50.5 Mpixels/s (50.5 Mbytes/s)
FillBox XOR: 83.2 Mpixels/s (83.2 Mbytes/s)
320x200x256 70 Hz

FillBox: 200.1 Mpixels/s (200.1 Mbytes/s)
ScreenCopy: 52.3 Mpixels/s (52.3 Mbytes/s)
Scroll Demo: 51.2 Mpixels/s (51.2 Mbytes/s)
FillBox XOR: 87.1 Mpixels/s (87.1 Mbytes/s)
640x480x32K 60 Hz

FillBox: 90.9 Mpixels/s (181.8 Mbytes/s)
ScreenCopy: 23.1 Mpixels/s (46.3 Mbytes/s)
Scroll Demo: 23.0 Mpixels/s (46.1 Mbytes/s)
FillBox XOR: 37.2 Mpixels/s (74.5 Mbytes/s)
640x480x16M (32-bit) 60 Hz

FillBox: 35.5 Mpixels/s (142.3 Mbytes/s)
ScreenCopy: 9.3 Mpixels/s (37.3 Mbytes/s)
Scroll Demo: 9.2 Mpixels/s (37.1 Mbytes/s)
FillBox XOR: 14.6 Mpixels/s (58.6 Mbytes/s)

 

On a Cirrus Logic 5426 VLB (50 MHz MCLK):

640x480x256 60 Hz

FillBox: 32.8 Mpixels/s (32.8 Mbytes/s)
ScreenCopy: 16.4 Mpixels/s (16.4 Mbytes/s)
Scroll Demo: 16.3 Mpixels/s (16.3 Mbytes/s)
FillBox XOR: 16.5 Mpixels/s (16.5 Mbytes/s)
640x480x32K 60 Hz

FillBox: 12.2 Mpixels/s (24.4 Mbytes/s)
ScreenCopy: 6.1 Mpixels/s (12.2 Mbytes/s)
Scroll Demo: 6.0 Mpixels/s (12.1 Mbytes/s)
FillBox XOR: 6.1 Mpixels/s (12.2 Mbytes/s)

 

Tweaked to 60 MHz MCLK:

640x480x256 60 Hz

FillBox: 42.1 Mpixels/s (42.1 Mbytes/s)
ScreenCopy: 21.0 Mpixels/s (21.0 Mbytes/s)
Scroll Demo: 20.9 Mpixels/s (20.9 Mbytes/s)
FillBox XOR: 21.1 Mpixels/s (21.1 Mbytes/s)
640x480x32K 60 Hz

FillBox: 16.7 Mpixels/s (33.5 Mbytes/s)
ScreenCopy: 8.3 Mpixels/s (16.7 Mbytes/s)
Scroll Demo: 8.3 Mpixels/s (16.7 Mbytes/s)
FillBox XOR: 8.3 Mpixels/s (16.7 Mbytes/s)
 

Results on a Mach32 EISA with 2Mb VRAM:

1280x1024x256 60 Hz
Replace QuixDemo: 12.1 Klines/s (6.7 Mpixels/s or 6.7 Mbytes/s)
Xor QuixDemo: 9.9 Klines/s (5.1 Mpixels/s or 5.1 Mbytes/s)
FillBox: 75.4 Mpixels/s (75.4 Mbytes/s)
ScreenCopy: 26.4 Mpixels/s (26.4 Mbytes/s)
Scroll Demo: 28.7 Mpixels/s (28.7 Mbytes/s)
FillBox with DrawHlineList: 73.1 Mpixels/s (73.1 Mbytes/s)
FillBox XOR: 37.9 Mpixels/s (37.9 Mbytes/s)
PutBitmap: 15.6 Mpixels/s (15.6 Mbytes/s)

1024x768x64K 72Hz
Replace QuixDemo: 12.3 Klines/s (5.2 Mpixels/s or 10.5 Mbytes/s)
Xor QuixDemo: 9.0 Klines/s (5.1 Mpixels/s or 10.3 Mbytes/s)
FillBox: 37.6 Mpixels/s (75.2 Mbytes/s)
ScreenCopy: 13.2 Mpixels/s (26.4 Mbytes/s)
Scroll Demo: 13.2 Mpixels/s (26.4 Mbytes/s)
FillBox with DrawHlineList: 37.0 Mpixels/s (74.0 Mbytes/s)
FillBox XOR: 18.9 Mpixels/s (37.8 Mbytes/s)
PutBitmap: 15.2 Mpixels/s (30.5 Mbytes/s)

You`re encouraged to send in more data. This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_accel(3), threed(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The demo and most of its documentation is due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

buildcsr

NAME

buildcsr - builds a cursor  

SYNOPSIS

buildcsr [-p name -b name -m mode -s]  

DESCRIPTION

buildcsr presents a blank screen with a cursor. One may hold down the left mouse button and draw the color1 part of the cursor on the screen. Typing 2 on the keyboard will cause color2 to be drawn. The cursor can be viewed as a cursor by typing n. To modify the cursor type o to go back to the original cursor. Pixels may be erased by clicking on them with the right mouse button. The left mouse button will draw either color1 or color2, depending on whether 1 or 2 was chosen from the keyboard last. The current color is displayed at the bottom of the screen.  

OPTIONS

-p
and
-b
followed by name will produce a cursor file with the name name.
-p
will produce a c language definition of the cursor suitable for inclusion in a program as a header file.
-b
will produce a binary cursor file which may be read into a user program at execution time.
-m
mode , a mode number will cause the program to run in mode mode. This will not make a difference in the screen representation of the cursor, but the cursor itself will be much smaller in high resolution modes. Thus, for high resolution it is wise to construct the cursor using the resolution at which it is intended to be used. Typing n will show the cursor as it will look at the resolution of the screen. If no mode is given using -m the mode will be SVGALIB_DEFAULT_MODE if that has been defined in an environment variable. If no default has been given and no -m was used, the screen mode will be mode 5, G320x200x256, which is default for this program. The hardware cursor will be used if a hardware cursor exists for the video card in use, otherwise the software cursor will be used.
-s
option will force the software cursor to be used even if a hardware cursor exists.
 

ENVIRONMENT

SVGALIB_DEFAULT_MODE
will be used if it has been defined and -m was not given. If neither of these are in effect the mode will be mode 5, G320x200x256.
 

AUTHOR

Don Secrest <secrest@uiuc.edu>  

SEE ALSO

VGA_CURSOR(3) VGA_GETDEFAULTMODE(3)

bzflag

NAME

BZFlag - a tank battle game  

SYNOPSIS

bzflag [-3dfx] [-no3dfx] [-anonymous] [-debug] [-directory directory] [-echo] [-echoAnsi] [-geometry widthxheight[{+|-}x{+|-}y]] [-latitude latitude] [-list url] [-locale locale] [-longitude longitude] [-multisample] [-mute] [-nolist] [-solo number-of-robots] [-team {automatic | red | green | blue | purple | rogue}] [-version] [-view {normal | stereo | three}] [-window] [-zbuffer {on | off}] [[callsign@]server[:port]]  

DESCRIPTION

BZFlag is a 3D multi-player tank battle game that allows users to play against each other in a networked environment. There are five teams: red, green, blue, purple and rogue (rogue tanks are black). Destroying a player on another team scores a win, while being destroyed or destroying a teammate scores a loss. Rogues have no teammates (not even other rogues), so they cannot shoot teammates and they do not have a team score.

There are three main styles of play: capture-the-flag, free-for-all, and rabbit-hunt. In capture-the-flag, each team (except rogues) has a team base and each team with at least one player has a team flag. The object is to capture an enemy team`s flag by bringing it to your team`s base. This destroys every player on the captured team, subtracts one from that team`s score, and adds one to your team`s score. In free-for-all, there are no team flags or team bases. The object is simply to get as high a score as possible. In rabbit-hunt, the lead player is chosen as the target for all other players. When the rabbit(target) is destroyed, the live player with the next highest score becomes the rabbit. The object is to remain the rabbit for as long as possible. The rabbit is marked as a white tank.  

Options

-3dfx
For Mesa users with a passthrough 3Dfx card, e.g. a Voodoo or Voodoo 2 based card. This sets the MESA_GLX_FX environment variable to use fullscreen passthrough mode. Use -geometry to use a resolution other than 640x480 on the passthrough card. You should not use this option with -window.
-no3dfx
For Mesa users with a passthrough 3Dfx card, such as Voodoo or Voodoo 2 based cards. This unsets the MESA_GLX_FX environment variable so that the passthrough card isn`t used. Use this option if MESA_GLX_FX is normally set in your environment and you don`t want bzflag to use the passthrough card. This option is only a convenience; you can achieve the same effect by unsetting MESA_GLX_FX in your environment.
-anonymous
Uses the email address anonymous instead of username@hostname.
-directory directory
Looks for data files in directory first. This defaults to a directory named data in the current directory. If not found there, the game looks for data files in the current directory, then in the default installation location /usr/share/bzflag.
-debug
Increase debugging level. Use multiple -debug options to obtain more debugging info.
-echo
Copies all message window output to the shell.
-echoAnsi
Copies all message window output to the shell preserving the ANSI color coding.
-geometry widthxheight[{+|-}x{+|-}y]
This specifies the size and, optionally, the position of the window. It can be used with or without the -window option. It may be necessary to use this on some systems when bzflag cannot correctly determine the display size.
-latitude latitude
Uses latitude when computing celestial object positions.
-list url
Look for bzfls servers using url. A built-in url is used by default (the same url is the default for bzfs). See bzfls for a description of the format of url. If url is default then the url is reset to the built-in url (the url is remembered across invocations of bzflag). Bzfls servers keep a list of bzfs servers accessible from the internet and are queried when using the Find Server menu.
-locale locale
Set the locale used to display messages, menus, hud alerts, etc.
-longitude longitude
Uses longitude when computing celestial object positions.
-multisample
Uses a multisample buffer for rendering. If multisampling isn`t available then the application will terminate.
-mute
Disables sound.
-nolist
Disables bzfls server querying. See -list.
-solo number-of-robots
When you join a game, you`ll also cause number-of-robots robots to join too. This is an experimental option and the robots are extremely stupid players. Robots are added to teams at random.
-team team-name
Chooses the player`s team. If there are no team positions available and the team-name is set to be automatic, the player will try to join as an observer.
-version
Prints the version number of the executable.
-view {normal | stereo | three}
Chooses one of three possible display options. Normal will render a single view to the entire screen. Stereo will try to allocate a stereo (in-a-window) capable buffer and then draw a single view in stereo. Your system must support stereo-in-a-window buffers and stereo goggles. Three will render the front view to the upper right quadrant of the display, a left view to the lower left quadrant, and a right view to the lower right quadrant. This is intended for systems capable of driving multiple monitors from various areas of the display surface, yielding a wrap around view. Note that setting an unsupported view option will often lead to BZFlag not running successfully. To correct this, run with -view normal.
-window
Runs the application in a window instead of full screen.
-zbuffer {on | off}
When off is chosen the game will not attempt to allocate a depth (z) buffer and will use a different rendering technique for hidden surface removal. Some systems may be capable of using a higher screen resolution if a depth buffer isn`t allocated.
[callsign@]server[:port]
Specifies the callsign you want, and the host running the bzfs server. Multiple independent games can be run on a single network, or even on different ports on a single computer. Which server and port you choose decides which game you enter. The callsign and the port is optional. If you don`t specify a port the standard server port will be used, and if you don`t specify a callsign the callsign used for the previous game is used. If that cannot be found then the callsign is the value of the BZFLAGID environment variable. If BZFLAGID is empty or undefined then bzflag will prompt for a callsign when joining a game.
 

Controls

Tanks are controlled by moving the mouse within the large yellow box in the main view. When the mouse is inside the small yellow box, the tank is motionless. The large box is the limit of the tank`s speed.

Shots are fired by pressing the left mouse button. The type of shot fired depends on what flag the tank has. Normal shots last about 3.5 seconds. Reloading also takes 3.5 seconds for normal shots.

Pressing the middle mouse button drops a flag. Nothing will happen if the tank has no flag or is not allowed to drop the flag for some reason (e.g. it`s a bad flag). Flags are picked up by driving over them. A dropped flag gets tossed straight up; it falls to the ground in about 3 seconds.

Pressing the right mouse button identifies the closest player centered in the view. If your tank has the guided missile super-flag, this will also lock the missile on target. However, the target must be carefully centered for the missile to lock.

When the server allows jumping or if the tank has the jumping flag, the Tab key jumps. Tanks can jump onto buildings, however there is no way to shoot downward (or upward) with a regular shot. The guided missile and the shock wave are two ways of destroying a tank on or from a building.

The current radar range can be changed by pressing the 1, 2, or 3 keys above the alphabetic keys for low, medium, and long range, respectively. The f key toggles the flag help display, which describes the flag in the tank`s possession. Displaying help does not pause the game.

The Pause key pauses and resumes play. When paused, the tank cannot be destroyed nor can it`s shots destroy other players. The reload countdown is suspended and the radar and view are blanked when paused. A paused tank has a transparent black sphere surrounding it. Since a paused tank is invulnerable a player could cheat by pausing just before being destroyed, so there`s a brief delay before the pause takes effect. This delay is long enough to make pausing effectively useless for cheating. Pressing Pause before the pause takes effect cancels the pause request.

The Delete key initiates a self destruct sequence. You will see a countdown that can be stopped by pressing Delete once more. Otherwise, you tank will self destruct. This can be useful if your tank gets stuck and there is no other tank around to shoot you.

The list of players and scores is displayed when your tank is paused or dead. Pressing the s key toggles the score display when alive and not paused.

The b key toggles binoculars, which gives a close up view of distant objects. The The 9 key toggles Otto, the automatic pilot, on and off. t key toggles the frame rate display and the y key toggle the frame time display. The time of day can be changed with the plus and minus keys, which advance and reverse the time by 5 minutes, respectively. The time of day in the game is initialized to the system`s clock. In addition, the latitude and longitude are used to calculate the positions of celestial objects.

The Esc key shows the game menu. Use the Enter and arrow keys to navigate the menu and the Esc key to return to the previous menu or hide the main menu. The menus allow you to start a new server, join a game, leave a game and enter another, change the rendering options, change the display resolution, change the sound volume, remap the meanings of keys, browse online help, and quit the game.

The display resolution is not always available for changing. If it is, use the t key to test a selected resolution; it will be loaded for a few seconds and then the previous resolution restored. Press the Enter key to permanently select a new resolution. When you quit the game, the resolution is restored to what it was before the game started.

Options are recorded between game sessions in the .bzflag file (or .bzflag.$(HOST) if the HOST environment variable is defined) in the user`s home directory. This file has a simple name/value pair format. This file is completely rewritten by the game after each session.

You can send typed messages to other players by pressing the m or n keys. The m key will send a message to your teammates only. Rogue players cannot send these messages. The n key will send a message to all the other players. After pressing the key, just type your message and press enter or Control-D. To cancel a message, you can enter a blank message or press Delete, Escape, or Control-C. Be careful with the Escape key; pressing Escape once will cancel the message, pressing it again will show the main menu. Backspace will delete the most recently typed character. The Tab key doesn`t add a tab to the message but instead causes the tank to jump (as usual). You can also send a direct message to a single player by pressing the , or . keys. The , key will send your message to your `nemesis`, i.e. the last player who killed you or was killed by you. The . key will send a private message to another player. You can choose the recipient by using the left and right arrow keys. o toggles the quick-admin interface. Use the arrow keys to select a command, then fill in the necessary parameters  

Scoring

An individual`s score is the difference between that player`s wins and losses. A win is scored for each enemy tank destroyed. A loss is scored for each teammate destroyed and for each time the player is destroyed. The score sheet displays each player`s score and the number of wins and losses.

A team`s score is calculated differently depending on the game style. In the capture-the-flag style, the team score is the number of enemy flags captured minus the number of times the team`s flag was captured. Capturing your own flag (by taking it onto an enemy base) counts as a loss. In the free-for-all style, the team score is sum of the wins of all the players on the team minus the sum of the losses of all the players on the team. In the rabbit-hunt style, scoring is similar to free-for-all.

The score sheet also lists the number times you have destroyed or been destroyed by each other player under the Kills heading. This lets you compare your one-on-one performance against other players.  

Teleporters

The server can be configured to place teleporters in the game. A teleporter is a tall black transparent object that instantaneously moves any object (tanks and shots) passing through it to some other teleporter. The teleporter connections are fixed for the entire game. In the capture-the-flag style the connections are always the same. In the free-for-all style the connections are random and reversable (going back through where you come out puts you back where you started).

Each side of a teleporter teleports independently of the other side. However, it`s possible for each side to go to the other. This is a thru-teleporter and it`s almost as if it weren`t there. It`s also possible for a side to teleport to itself. This is a reverse-teleporter. Shooting at a reverse teleporter is likely to be self-destructive. Shooting a laser at a reverse teleporter is invariably fatal.  

Radar

The radar is displayed on the left side of the control panel. It provides a satellite view of the game. Buildings and the outer wall are light blue. Team bases are outlined squares in the team colors. Teleporters are short yellow lines. Tanks are dots the in the tank`s team color, except for rogues which are yellow. The size of a tank`s dot is a rough indication of the tank`s altitude: higher tanks have larger dots. Flags are small crosses. Team flags have the team color while super-flags are white. Shots are small white dots (except laser beams which are line segments and shock waves which are circles).

The tank always appears in the center of the radar and the radar display rotates with the tank so that forward is always up. There`s a small tick mark indicating forward. The left and right extremes of the current view are represented by a yellow V who`s tip is at the center of the radar. North is indicated by the letter N.  

Heads Up Display

The heads-up-display, or HUD, has several displays. First, there are two boxes in the center of the view. As explained above, these delimit the ranges for the mouse. These boxes are yellow when you have no flag. Otherwise they take the color of the flag you`re holding (white for superflags).

Above the larger box is a heading tape showing your current heading. North is 0, east is 90, etc. If jumping is allowed, an altitude tape appears to the right of the larger box.

Small colored diamonds or arrows may appear on the heading tape. An arrow pointing left means that a particular flag is to your left, an arrow pointing right means that the flag is to your right, and a diamond indicates the heading to the flag by its position on the heading tape. In capture-the-flag mode a marker in your team`s color is always present, showing you the direction to your team`s flag. A yellow marker shows the way to the antidote flag (when you have a bad flag and antidote flags are enabled).

At the top of the HUD are several text readouts. At the very top on the left is your callsign and score, in your team`s color. At the very top on the right is the name of the flag you`re holding (or nothing if you have no flag). In the center at the top is your current status: ready, dead, sealed, zoned, or reloading. If you have a bad flag and shaking time is enabled and your status is ready, the status displays how much time is left before the bad flag is shaken. When reloading, the time until you`re reloaded is displayed. A tank is sealed when it has the oscillation overthruster flag and any part of the tank is inside a building. A tank is zoned when it has the phantom zone flag and has passed through a teleporter. When there`s a time limit on the game, the time left in the game is displayed to the left of the status.  

Flags

Team flags are supplied by the server in the capture-the-flag style game. While at least one player is on a team, that team`s flag is in the game. When captured, the flag is returned to the team`s base. If the flag is dropped in a Bad Place, it is moved to a safety position. Bad Places are: on top of a building or on an enemy team base. The flag can be dropped on a team base only by a player from a third team; for example, when a blue player drops the red flag on the green base.

A team flag is captured when a tank takes an enemy flag onto its base or when a tank takes its flag onto an enemy base (even if there`s no one playing on that team). You must be on the ground to capture a flag.

The server can be configured to supply a fixed or random set of super-flags. These flags are white and come in many flavors. However, you cannot tell what a super-flag is until it`s picked up. There are two broad categories of super-flags: good and bad. Good super-flags may be dropped and will remain for up to 4 possessions. Bad super-flags are sticky -- in general, they cannot be dropped. The server may provide a yellow antidote flag. Driving over it will release the bad flag. The server may also allow a timeout and/or a number of wins to shake the flag. Scoring the required number of wins, surviving the required amount of time or being destroyed will automatically drop the flag. Bad flags disappear after the first possession.

Here is a brief description of each good superflag with the flag`s code in parentheses:

High Speed (V)
Boosts top speed by 50%.
Quick Turn (A)
Boosts turn rate by 50%.
Oscillation Overthruster (OO)
Let`s the tank go through buildings. You cannot back up in or into a building, nor can you shoot while inside.
Rapid Fire (F)
Increases shot speed and decreases range and reload delay.
Machine Gun (MG)
Increases shot speed and dramatically decreases range and reload delay.
Guided Missile (GM)
Shots guide themselves when locked on. The missile can be retargeted at any time during its flight (with the right mouse button). This allows the player some control over the missile`s steering.
Laser (L)
Shoots a laser, with effectively infinite speed and range. Just point and shoot. The binoculars are handy for lining up distant targets. The downside (you knew it was coming) is that the reload time is doubled.
Ricochet (R)
Shots reflect off walls. It is exceptionally easy to kill yourself with this flag.
Super Bullet (SB)
Shots can go through buildings (possibly destroying a tank with the oscillation overthruster flag) and can also destroy (phantom) zoned tanks.
Stealth (ST)
Tank becomes invisible on radar but is still visible out-the-window.
Cloaking (CL)
Tank becomes invisible out-the-window but is still visible on radar.
Invisible Bullet (IB)
Shots are invisible on radar (except your own). They are visible out-the-window. Sort of stealth for shots.
Tiny (T)
Tank becomes much smaller and harder to hit.
Narrow (N)
Tank becomes paper thin. It`s very hard (but not impossible) to hit a narrow tank from the front or back. However, the tank is as long as usual so hitting it from the side has normal difficulty.
Shield (SH)
Getting shot while in possession of this flag simply drops the flag (instead of destroying the tank). Since the flag may not disappear you may want to wait around for it to fall to the ground so you can grab it again, but, be warned, the shield flag flies for an extra long time (longer than the normal reload time).
Steamroller (SR)
Tank can destroy other tanks by driving over them (but you must get quite close).
Shock Wave (SW)
Tank doesn`t fire shells. Instead it sends out a shock wave in all directions. Any tank caught in the wave is destroyed (including tanks on or in buildings).
Phantom Zone (PZ)
Driving through a teleporter phantom zones the tank. A zoned tank cannot shoot, but can drive through buildings and cannot be destroyed except by a Super Bullet or a Shock Wave (or if the team`s flag is captured).
Genocide (G)
Destroying any tank on a team destroys every player on that team.
Jumping (JP)
Allows the tank to jump. You cannot steer while in the air.
Identify (ID)
Displays the identity of the closest flag in the vicinity.
Masquerade (MQ)
You tank looks like a teammate when viewed out of the window. Bullets, radar and targeting reveal your true identity.
Burrow {BU}
You tank burrows into the ground up to your muzzle, making you impervious to normal shots, as they sail above you. However your tank controls are sluggish, and anyone, no matter what flag they have, can crush you like.
Seer (SE)
See Stealthed, Cloaked and Masqueraded tanks as normal.
Thief (TH)
Tank is small and fast, when you shoot an opponent, he is not killed, but instead, you steal his flag.
Useless (US)
It`s useless!

A brief description of each bad superflag with the flag`s code in parentheses:

Colorblindness (CB)
Prevents tank from seeing any team information about other tanks. You have to be careful to avoid shooting teammates.
Obesity (O)
The tank becomes very large and easy to hit. It`s so big that it can`t fit through teleporters.
Left Turn Only (<-)
Prevents the tank from turning right.
Right Turn Only (->)
Prevents the tank from turning left.
Momentum (M)
Gives the tank a lot of inertia.
Blindness (B)
Blanks the out-the-window view. The radar still works. It is effectively impossible to detect any tank with Stealth; shooting a Stealth with Blindness is the stuff legends are made of.
Jamming (JM)
Disables the radar but you can still see.
Wide Angle (WA)
Gives the tank a fish eye lens that`s rather disorienting.
 

Observing

If a server is full or if you just want to watch a battle without interfering in it, you can use the observer mode. To join a server as an observer, select Observer as your tank`s team. The maximum number of observers can be restricted by the server admin, so you might still not be able to join a full server.

When in observer mode, you can freely roam the world. Using the arrow keys you can rotate the camera in every direction. Holding shift and using the arrow keys moves the camera left, right, forward or back. Pressing the up or down arrow while holding the the ALT key will change the camera`s altitude. The F9 and F10 keys change the camera`s focal lengths, giving a zoom effect. The F11 key will reset the zoom. Pressing l lets you toggle the display of tank labels.

Repeatedly pressing F8 cycles through different roaming modes: free, tracking, following, first person (driving with) and tracking team flag. In tracking mode, the camera will automatically look at a tank. You can cycle through available tanks with the F6 and F7 keys. In follow mode, the camera is positioned right behind the targeted tank, whereas you actually look from within the tank when using first person mode. The last mode, track team flag is only available in capture-the-flag games and will track the team flags. Again, use F6 and F7 to choose which flag to track. One special option that can be used with follow, tracking, and first person modes is that you can choose to do it with the winning tank. This is selected by cycling through the tanks until you see the winner option. In this mode, you will always be engaged with whomever has the best score (and is alive). The default is drive with winner mode.  

User Commands

The following commands can be executed by sending a message to all and using these strings as the message
CLIENTQUERY
Requests that all users send you there version information
SILENCE playerName
Does not display any message coming from player with playerName name
UNSILENCE playerName
Reshow messages coming from player with playerName name
 

FILES

$(HOME)/.bzflag
Stores options between game sessions. Used when HOST is not defined.
$(HOME)/.bzflag.$(HOST)
Stores options between game sessions. Used when HOST is defined.
 

SEE ALSO

bzfls(6), bzfs(6)

bzfquery

NAME

bzfquery.pl - Contact a bzflag server and print the game status  

SYNOPSIS

bzfquery.pl servername [port]

bzfs

NAME

bzfs - BZFlag game server  

SYNOPSIS

bzfs [-a velocity rotation] [-admsg message] [-autoTeam] [-b] [-badwords badwordfile] [-ban ip{,ip}*] [-banfile filename] [-c] [-conf configfile] [-cr] [-d] [-density num] [+f {good|bad|team||flag-id}[{count}]] [-f {good|bad|flag-id}] [-fb] [-filterCallsigns] [-filterChat] [-filterSimple] [-g] [-groupdb file] [-h] [-help] [-helpmsg file name] [-i interface] [-j] [-lagdrop warn-count] [-lagwarn time/ms] [-maxidle time/s] [-mp {count|[rogue-count],[red-count],[green-count],[blue-count],[purple-count],[observer-count]}] [-mps {max-score}] [-ms shots] [-mts {max-score}] [-p port] [-passdb file] [-passwd password] [-printscore] [-prohibitBots] [-public description] [-publicaddr address[:port] [-publiclist url] [-q] [+r] [-rabbit [score|killer|random] [-reportfile filename] [-reportpipe command] [-requireudp] [+s flag-count] [-s flag-count] [-sa] [-sb] [-sl id num] [-speedtol factor] [-srvmsg message] [-st time] [-sw count] [-synctime] [-t] [-tftimeout time-limit] [-time time-limit] [-timemanual] [-tk] [-tkkr percent] [-userdb file] [-vars file] [-version] [-vetoTime seconds] [-votePercentage percentage] [-votesRequired num] [-voteTime seconds] [-world world-file] [-worldsize world size]

 

DESCRIPTION

Bzfs is the server for BZFlag, and it must be running to play. It can be run on any system on the network (including a player`s system or one without graphics). Terminating the server terminates the game in progress.  

Options

-a velocity rotation
Enables inertia and sets the maximum linear and angular accelerations. The units are somewhat arbitrary so you`ll have to experiment to find suitable values. The values must be non-negative and higher values yield greater inertia.
-admsg message
Define a message which will be broadcast to all players every 15 minutes.
-autoTeam
Automatically assign players to teams when they connect so that there are an equal number of players on all available teams. Players are placed on teams that have the fewest players, otherrwise they will be placed on the weakest team. Weakest team is the team with the lowest combined kill ratio.
-b
When -c is supplied, this option randomly rotates the buildings.
-badwords badwordfile
Specify a file that contains bad words that will be used when either -filterCallsigns or -filterChat is enabled.
-ban ip{,ip}*
Prohibits connections from the listed IP addresses. Trailing 255 bytes are treated as mask bytes.
-banfile filename
Specifies the name of a file where bzfs will store the banlist. It will load the banlist from this file when it starts (if the file exists), and write the banlist back to the file when someone gets banned or unbanned. If this option isn`t given the banlist will not be saved.
-c
Enables the capture-the-flag style game. By default this allocates one team flag per team. This can be modified see +f team. By default, the free-for-all style is used.
-conf configfilename
Specifies the name of a configuration file to be used to set all of the bzfs options, rather than setting them on the command line.
-cr
Enables the capture-the-flag style game with random map. You can optionally specify a building density by providing an number (default is 5). One team flag per team is provided, but more can be added thru +f team. By default, the free-for-all style is used.
-d
Increase debugging level. More -d are used, more debugging info are obtained.
-density num
Specify density for buildings, i.e. the higher the integer number, the more buildings you will get. This applies to automatically generated maps only.
+f {good|bad|teamflag-id}[{count}]
Forces the existence of the given flag. If specified multiple times for the same flag-id, then that many flags will appear. The good argument is equivalent to specifying +f once for each kind of good flag. Same goes for the bad argument. The team argument adds a team flag to each team, assuming that the game style is capture the flag. The optional {count} parameter allows the specification of multiple flags of the same type. Note that the curly braces are required.
-f {good|bad|flag-id}
Disallows random flags of the given type. Required flags given by the +f option are still provided. The bad argument is equivalent to specifying -f once for each kind of bad flag. Same goes for good, but you probably do not want to do that.
-fb
Allow flags on box buildings.
-filterCallsigns
Turn on the filtering of callsigns and email addresses. Callsigns and addresses are compared against bad words provided via -badwords.
-filterChat
Turn on the filtering of chat messages. Messages have words provided via a -badwords file are replaced with !@#$%^&* characters.
-filterSimple
By default, all filtering is aggressive, matching much more than what is strictly listed in a -badwords file for convenience. Providing this option will make the -filterCallsigns and -filterChat comparisons exact match only.
-g
Quit after serving one game.
-groupdb file
Load groups from file
-h
Buildings are given random heights.
-help
Shows a help page and lists all the valid flag id`s.
-helpmsg file name
Create a help message accessible by /help name, which prints the contents of file. Restricted to 10 lines per help message.
-i interface
Server will listen for and respond to ``pings`` (sent via multicast) on the given interface. The server uses the first multicast enabled interface by default. Clients use this to find active servers on the network. This is also the TCP/UDP/IP address the server will listen on.
-j
Allows jumping.
-lagdrop warn-count
Kicks players after warn-count lag warnings.
-lagwarn time/ms
Send warnings to players that lag more than time.
-maxidle time/s
Kick players that did not play longer than time seconds. Pausing players are not kicked. If a player uttered a word recently, he will be kicked after thrice the given time.
-mp {count|[rogue],[red],[green],[blue],[purple],[observer]}
Sets the maximum number of players, total or per team. A single value sets the total number of players allowed. Five comma separated values set the maximum for each team. If a count is left blank then no limit is set for that team, except for the limit on the total number of players. Both forms may be provided.
-mps max-score
Sets a maximum score for individual players. The first player to reach this score is declared the winner and the game is over.
-ms shots
Allows up to shots simultaneous shots for each player. This is 1 by default.
-mts max-score
Sets a maximum score for teams. The first team to reach this score is declared the winner and the game is over.
-p port
Listen for game connections on port instead of the default port. Use -help to print the default port, or use -d debug printing.
-passdb file
Load passwords from file
-passwd password
Specify a server administrator password for use in remote administration such as /kick messages.
-printscore
Write score to stdout whenever it changes
-prohibitBots
Disallow clients from using the ROGER autopilot or from using robots.
-public description
Advertise this server on the internet with the given description. By default, a server will respond to broadcast or multicast queries, allowing clients to find servers on the local subnet or accessible through multicast routers. However, this doesn`t allow clients to find servers not accessible via multicast. The -public option causes the server to register itself with a bzfls server, which clients can query to get a list of bzfs servers.
-publicaddr address[:port]
Advertise this server with the given address and port. Only has an effect when used with -public. Normally a server advertises itself at the local address and port. Some servers are not accessible from the internet at this address (for example servers behind a firewall using bzfrelay). Use this option to specify the address and/or port that internet users should use to access this server.
-publiclist url
Advertise this server on the bzfls servers listed at url. Only has an effect when used with -public. A built-in url is used by default. The BZFlag clients use the same built-in url so, by default, clients will see public servers automatically. See bzfls for a description of the format of url.
-q
If specified, the server will not listen for nor respond to ``pings``. BZFlag sends out these pings to give the user a list of available servers. This effectively makes the server private, especially if the -p option is also used.
+r
Makes most shots ricochet. Super bullets, shock waves, and guided missiles do not.
-rabbit [score|killer|random]
Enables the rabbit-hunt style game. By default, the free-for-all style is used. You must specify the algorithm used to pick a new rabbit when the old one dies. The score algorithm uses a modified wins/(wins+losses) score and picks the top scoring player to be the new rabbit. The killer algorithm specifies a reverse tag game where whoever kills the rabbit becomes the new rabbit. The random algorithm randomly picks a new rabbit without regard to score. (The score algorithm is the original behavior.)
-reportfile filename
Write messages to the server admin written using the /report command to this file. If neither -reportfile or -reportpipe is used the /report command will be disabled.
-reportpipe command
Pipe messages to the server admin written using the /report command to this program or shell command. See -reportfile.
-requireudp
Require clients to use parallel UDP. If players fire before opening a UDP channel, kick them off the server.
+s num-flags
The server will have an extra num-flags random super flags available at all times. The -f option can be used to restrict which types of flags will be added. Required flags given by the +f option are not included in the num-flags total.
-s num-flags
The server will have up to num-flags random super flags available at any time. The -f option can be used to restrict which types of flags will be added. Required flags given by the +f option are not included in the num-flags total.
-sa
Antidote flags are provided for players with bad flags.
-sb
Allow spawns on box buildings.
-sl id num
Restrict flag id to num shots.
-speedtol factor
Override the default speed auto kick factor. The factor should not be less then 1.0. The factor is a multiplier.
-srvmsg message
Define a server welcome message.
-st time
Bad flags are automatically dropped after time seconds.
-sw count
Bad flags are automatically dropped after count wins. Capturing a team flag does not count as a win.
-synctime
Forces all clients to use the same time of day. The current time is determined by the server`s clock. This disables the + and - keys on the clients.
-t
Adds teleporters to the game.
-tftimeout time-limit
If the last player in a team leaves while someone else is carrying the team flag, the team flag will not reset until it is captured, or until the player drops it and it is left alone for some time. This option specifies the number of seconds that the flag should be left alone before it is reset. The default value is 30.
-time time-limit
Sets a time limit on the game to time-limit. The game will be stopped time-limit seconds after the first player connects.
-timemanual
When using -time, the countdown will start when the first player joins. With -timemanual, the countdown has to be started manually using the /countdown command. This is useful for matches.
-tk
Changes the default behaviour where a player dies when he kills a teammate. When using this option, he will just get a -1 score penalty for the kill but stay alive.
-tkkr percent
Kicks players whose team killing to normal kill ratio is greater than percent [1-100]. A start up grace period is given to players.
-userdb file
Load group associations from file
-vars file
Loads values for game configurable variables from file. Entries are one per line in the form: set variable value. For a list of variables that are configurable, in the the BZFlag client, send a message with /set as the text.
-version
Prints the version number of the executable.
-vetoTime seconds
Length of time in which a vote can be vetoed
-votePercentage percentage
The percentage of yes votes needed in order for the vote to be successful
-votesRequired num
The number of voters needed to hold a vote
-voteTime seconds
The length of time the players are able to vote
-world world-file
Reads a specific world layout for the game map.
-worldsize world-size
changes the size for random maps
 

Notes

The server uses nearly zero CPU time when nobody is playing, and even during a game the server uses very little CPU, so it`s not a burden on the system to leave one running and it won`t interfere with a player using the same system (except on Windows 95, which really sucks at multitasking). The server will continue to run until terminated. If a game is in progress when the server goes down, all players will be kicked off and the game will be aborted without warning. The server resets itself when all players have quit. All players must quit to reset the server when a game is over (because of a score or time limit).

The following game styles are recommended starting points.

-c [-b]
Basic capture-the-flag game. It teaches teamwork and dogfighting skills.
-s -t
Free-for-all with superflags and teleporters. Teaches players how to use superflags and teleporters for maximum effect. You may want to allow players to drop bad flags with any of -sa, -st, and -sw.

Notice that the maximum number of shots for these styles is one. Having only one shot greatly increases playability and learning speed. Multiple shots decrease the required skill level and make it virtually impossible for even a skilled player to avoid getting shot for any length of time. More experienced players will still dominate the game, but beginners will have an easier time making kills.  

Networking

Communication between the server and clients (i.e. between bzfs and bzflag) during a game is via TCP and UDP. Use the -help option to get the server`s default port. If there`s a firewall between the server and client, the firewall must accept connections from the client to this port and forward them to the server. See bzfrelay for a BZFlag firewall relay.

Clients can search for servers by sending broadcast UDP packets. But they must be on the same local area network for this to work. Clients can also find servers advertised using -public by querying bzfls servers.

Game information is relayed through the server. Some communication between clients, such as position and orientation information, is normally sent via UDP packets. Other data, like flag grab and kill messages, are sent to the server via TCP. The server then turns around and broadcasts these packets to all players. Since being in a game implies connection to the server, all players are guaranteed to get all messages sent via TCP. But the UDP packets may be discarded. If other players can see your tank in the game but it never appears to move and shots go through it, chances are high that your UDP connection is not working.

 

GENERAL SERVER COMMANDS


/lagstats Lists network delays, jitter and number of lost resp. out of order packets by player. Example:

MrApathyCream 335 +- 10ms Gerbol 210 +- 3ms captain_macgyver 155 +- 0ms 12% lost/ooo

/idlestats
Displays the idle time in seconds for each player. A player is idle when he is dead. MrApathyCream: 0s Gerbol: 80s captain_macgyver: 13s
/flaghistory
Lists what flags players have grabbed in the past. Example: MrApathyCream: (<-) (->) (O) (CB) (M) (B) (JM) (WA) Gerbol: (L) (GM) (L) (GM) (CL) (ST) (GM) (L) captain_macgyver: (SB) (SW)
/password {password}
Attempt to gain administrator status Example: /password supersecretpassword You are now an administrator!
/report {message}
Write a message to the server administrator. Example: /report I like this map!

 

SERVER ADMINISTRATIVE COMMANDS

/shutdownserver
Stop serving BZFlag on this server
/superkill
Kick all players off the server
/gameover
Ends the current game
/flag reset {unused}
Repositions flags. If unused is specified, flags carried by tanks are not effected.
/flag up
Removes all flags from the game
/flag show
Shows all flags with information Example:

0: p:-1 r:1 g:1 1:V s:1 p:159.1x43.2x0.0 1: p:2 r:1 g:1 1:SW s:1 p:209.1x143.2x10.0 2: p:-1 r:1 g:3 1:L s:1 p:-29.1x301.2x0.0

/kick {playerName}
Kick a named player off the server.Example: /kick Gerbol You were kicked off the server by MrApathyCream
/playerlist
List player names and IP addresses. Example: /playerlist [0]MrApathyCream: 35.23.65.44:4808 udp id [1]Gerbol: 130.123.1.55:4909 udp id [2]captain_macgyver: 15.32.122.51:3201 udp id
/ban {ipList} {duration} {reason}
Ban players using the specified IPs for certain length of time from using this server. Example: /ban 35.23.43.66 2 cheating bans player with specific ip for 2 minutes /ban 35.23.*.*,47.23.17.* bans all ips in this range forever /ban 36.37.2.8 2h30m "ShootMe" was abusing players bans specific ip for 2.5 hours with given reason
/banlist
List all of the IPs currently banned from this server. Example: /banlist IP Ban List ------------ 35.23.43.66 47.23.17.*
/hostban {hostpat} {duration} {reason}
Ban players using the specified hostnames for a certain length of time from using this server. Example: /hostban *.foo.com 2 cheating bans all players from foo.com for 2 minutes Note: Bzfs must be compiled to use the ADNS asynchronous resolver library in order for this feature to work.
/hostbanlist
List all of the host patterns currently banned from this server.
/countdown
Starts the countdown sequence for a timed game. Example: /countdown
/lagwarn
Dynamic change the maximum allowed lag time. Example: /lagwarn 300

 

USER MANAGEMENT

Generally, you start with empty files for the user and password databases. These are maintained by the server, and modifiable through server commands. You will want to specify a groups file that has whatever specific groups you care to have on your server. These are laid out with one line in the file per group, using the following format:

GROUP_NAME: perm1 perm2 perm3 ... permN

Group names cannot have spaces, quotes, or other special characters in them.

This would be a sample line defining a "cop" group:

COPS:KICK BAN BANLIST UNBAN INFO

The server will automatically create three groups if they are not specified in the groups file: DEFAULT, REGISTERED, and ADMIN. ADMIN has every permission possible (similar to granting admin powers via /password). REGISTERED presently allows access to the voting system`s /poll and /vote commands. DEFAULT allows /lagstats, /idlestats, /flaghistory and /report.

Once the server is running, users can register their callsigns and admins can set their group memberships. Users can use any command that their permissions allow. Every user, registered or not, is part of the DEFAULT group. When a user identifies, they become part of the REGISTERED group.

The available permissions are as follows:

IDLESTATS /idlestats
LAGSTATS /lagstats
FLAGMOD /flag
FLAGHISTORY /flaghistory
LAGWARN /lagwarn
KICK /kick
BAN /ban /hostban
BANLIST /banlist /hostbanlist
UNBAN /unban /hostunban
COUNTDOWN /countdown
ENDGAME /endgame
SETVAR                 /set /reset

SHUTDOWNSERVER /shutdownserver
SUPERKILL /superkill
PLAYERLIST /playerlist
INFO not implemented
LISTPERMS not implemented
SHOWOTHERS not implemented
REMOVEPERMS /removegroup
SETPERMS /setgroup
SETALL use of all set/remove commands
SETPASSWORD not implemented
POLL                   /poll ban|kick

VOTE                   /vote

VETO                   /veto

REQUIREIDENTIFY user must /identify when using this callsign

/register {password}

Register your current callsign to the specified password. Passwords must be at least 3 characters long, and the callsign may not contain quotes or other non-alphanumeric/space characters

/identify {password}

Log in to a registered callsign

/setpass {password}

Changes your password

/ghost {callsign} {password}

Kicks off an impersonating player or ghost

/grouplist

Lists the available user groups

/groupperms

Lists the permissions for each group

/showgroup {callsign}

Lists the groups that a registered user is a member of

/setgroup {callsign} {group}

Add a user to a group

/removegroup {callsign} {group}

Remove a user from a group

/reload

Reloads the user, group, and password files (for synchronization between multiple servers on the same machine)

/deregister [callsign]

With an argument, it deregisters another user`s callsign. Without, it removes your own registration.

/poll ban|kick|vote|veto [...]

Interact and make requests of the bzflag voting system via the /poll command. The ban and kick subcommands request a vote to respectively ban or kick some player. The playername is expected as the next argument. The vote and veto commands behave identical to the /vote and /veto command counterparts, expecting the same arguments in following. By default, you must be registered to request and vote on a poll.

/vote yes|no

If there is a poll active, this command will place a vote in favor or in opposition to the poll. Multiple languages are supported as a vote argument in addition to "yes" and "no". By default, you must be registered to vote on a poll.

/veto

If there is a poll active, this will cancel the poll. By default, you must be an admin to veto a poll.

 

WORLDS

BZFlag worlds come in two varieties, randomly generated ones, and human designed ones. By default, bzfs uses randomly generated world unless you specify the -world command line or configuration file option. The world file specified by the -world option is a text based file that contains a list of world objects. This file can be created using programs found on sourceforge.net through cvs, or can be hand edited.

The format of this text file consists of any number of objects listed in any order. The list of world types consists of








Each object is described by placing the type on one line, the word end on a following line, and a list of attributes for that object, one per line, inbetween. Attributes may be listed in any order. Attributes have default values, and if that is good enough, the attribute need not be listed. Words are always specified in lowercase. Line comments can be specified by placing a # sign at the start of the line. For documentation purposes, you can tag each object by adding a name attribute. There is set limit to the number of times you may use box, pyramid, teleporter, link, base and weapon objects. You must only supply one world object at most.


In the following examples, the values are the defaults.

The Box object

box
name example_box
position 0.0 0.0 0.0
size 30.0 30.0 9.42
rotation 0.0
end

The Pyramid object

pyramid
name example_pyramid
position 0.0 0.0 0.0
size 8.2 8.2 10.25
rotation 0.0
end

The Teleporter object

teleporter
name example_teleporter
position 0.0 0.0 0.0
size 5.06 4.48 20.16
rotation 0.0
border 1.12
end

The Link object

link
name example_link
from 0
to 0
end

The Base object

base
name example_base
position 0.0 0.0 0.0
size 60.0 60.0 0.0
rotation 0.0
color 0
end

The World object

world
name example_world
size 800.0
flagHeight 0.0
end

The Weapon object

weapon
name example_weapon
position 0.0 0.0 0.0
rotation 0.0
initdelay 10.0
delay 10.0 3.0 5.0 3.0
type V
end

 

SEE ALSO

bzflag(6), bzfls(6), bzfrelay(6)

dlb

NAME

dlb - NetHack data librarian  

SYNOPSIS

dlb { xct } [ vfIC ] arguments... [ files... ]  

DESCRIPTION

Dlb is a file archiving tool in the spirit (and tradition) of tar for NetHack version 3.1 and higher. It is used to maintain the archive files from which NetHack reads special level files and other read-only information. Note that like tar the command and option specifiers are specified as a continuous string and are followed by any arguments required in the same order as the option specifiers.

This facility is optional and may be excluded during NetHack configuration.  

COMMANDS

The x command causes dlb to extract the contents of the archive into the current directory.

The c command causes dlb to create a new archive from files in the current directory.

The t command lists the files in the archive.  

OPTIONS AND ARGUMENTS

v           verbose output

f archive  specify the archive. Default if f not specified is
LIBFILE (usually the nhdat file in the playground).

I lfile    specify the file containing the list of files to
put in to or extract from the archive if no files are listed on the command line. Default for archive creation if no files are listed is LIBLISTFILE.

C dir      change directory. Changes directory before trying to
read any files (including the archive and the lfile).
 

EXAMPLES

Create the default archive from the default file list:
           dlb c

List the contents of the archive `foo`:
           dlb tf foo
 

AUTHOR

Kenneth Lorber  

SEE ALSO

nethack(6), tar(1)  

BUGS

Not a good tar emulation; - does not mean stdin or stdout. Should include an optional compression facility. Not all read-only files for NetHack can be read out of an archive; examining the source is the only way to know which files can be.

forktest

NAME

forktest - tests the vga_safety_fork() function.  

SYNOPSIS

forktest

 

DESCRIPTION

This is a copy of the keytest(6) demo (look there). However, it uses vga_safety_fork(3) to start a background process to restore the console in case the fore ground process crashes. It removes all automatic restore functions of svgalib. Thus, in case you kill this program with kill(1) or <Ctrl>-C, only the background process will save your system from being hosed up.

You can set a videomode to use by setting the environment variable SVGALIB_DEFAULT_MODE to a number (see vgatest for a list) or a string like G0x1x2 where you replace 0 with desired x resolution, 1 with the desired y rez, and 2 with the desired number of colors (2, 16, 256, 32K, 64K, 16M, 16M4). Again, only certain choices are available, see vgatest for a list.

In case nothing is selected, G320x200x256 is choosen.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_safety_fork(3), threed(6), accel(6), bg_test(6), eventtest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

frozen-bubble-editor

NAME

frozen-bubble-editor - a level editor for Frozen Bubble

 

SYNOPSIS

frozen-bubble-editor [OPTION]...

 

DESCRIPTION

This editor lets you manipulate level-sets, in which you can add, remove and modify levels thanks to a mouse-oriented interface (there are also many interesting keyboard shortcuts). The interface is very straightforward: click on the written planches on the left an right parts of the screen to perform the relevant actions, and on the level area to change the bubble color; use the "void" bubble (or right-click) to remove a bubble.

 

OPTIONS

-h, --help
show command-line options summary
-fs, --fullscreen
start in fullscreen mode
-lsFILENAME, --levelsetFILENAME
directly start with the specified levelset name
-lNUMB, --levelNUMB
directly start the level number NUMB
-cb, --colourblind
use special bubbles for colourblind people

 

KEY SHORTCUTS

The following key shortcuts are available during level edition:
p, h, left
previous level
n, l, right
next level
up
first level
down
last level
a
append level
i
insert level
d
delete level
]
move level right
[
move level left
j
jump to level (after j, enter level number, then Return)
o
open levelset
s
save levelset
f
toggle fullscreen
q, Escape
quit
During dialogs, you may use Return to accept and Escape to cancel.

 

AUTHOR

Written by Kim Joham and David Joham <[k|d]joham at yahoo.com>. Integration work by Guillaume Cottenceau <guillaume.cottenceau at free.fr>, plus some fixes and added features. This manual page was written by Guillaume Cottenceau.


Visit official homepage: http://www.frozen-bubble.org/

 

SEE ALSO

frozen-bubble(6)

 

COPYRIGHT

Copyright © 2002, 2003 Kim Joham and David Joham <[k|d]joham at yahoo.com>.


This is Free Software; this software is licensed under the GPL version 2, as published by the Free Software Foundation. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

intro

NAME

intro - Introduction to games  

DESCRIPTION

This chapter describes all the games and funny little programs available on the system.  

AUTHORS

Look at the header of the manual page for the author(s) and copyright conditions. Note that these can be different from page to page!

keytest

NAME

keytest - tests the svgalib raw keyboard functions  

SYNOPSIS

keytest

 

DESCRIPTION

A program to test the low-level keyboard interface. This uses basic VGA functionality (or an svga mode you specify). Works only in 256 color modes.

Cursor keys or keypad <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, and <9> move the cursor. Keypad <0> or <Enter> changes color. <Q> or <Ctrl>-C quits. (autoquit after 60 seconds).

Note that the svgalib diagonal <7>, <9>, <1>, and <3> keypad keys emulation is flawed in that it emulates the vertical/horizontal keys. If one of these is pressed too, it`s release confuses svgalib.

The top pixel line shows a blue pixel for each key which is reported to be pressed.

You can set a videomode to use by setting the environment variable SVGALIB_DEFAULT_MODE to a number (see vgatest for a list) or a string like G0x1x2 where you replace 0 with desired x resolution, 1 with the desired y rez, and 2 with the desired number of colors (2, 16, 256, 32K, 64K, 16M, 16M4). Again, only certain choices are available, see vgatest for a list.

In case nothing is selected, G320x200x256 is choosen.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

lineart

NAME

testlinear, lineart - test a linear frame buffer  

SYNOPSIS

testlinear

 

DESCRIPTION

Program to test linear addressing on Cirrus cards and on Mach32 (and other cards which may support it).

Selects 640x480x256 and tries to enable a linear frame buffer (its virtual address is printed). Fills the screen in some color, then draws pixels in random positions.

For Cirrus cards some direct hardware access is then made for highspeed screen access. Except for the last (Cirrus only) test no speeds are printed, but you are welcome to use `time` to measure it. The program draws 714400 one byte pixels plus a forced 1s delay and various rand() calls for the pixels.

The testlinear demo needs a few presses of <Return> after each minimal demo step. Even when it does not prompt for it. When it appears to be stuck, just press <Return>.

The lineart demo is the same, but it accepts a command line with an arbitrary number of modes. The modes may be either mode numbers or names, or both. For example,

lineart 11 17 G800x600x32k 22

will give a display of mode 11. If a key is pressed mode 17 will appear, followed by mode 20 and 22 as succesive keys are pressed.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

mjoytest

NAME

mjoytest - test the svgalib joystick package in graphics mode  

SYNOPSIS

mjoytest [-j joystick] [[-m] video mode]

 

DESCRIPTION

This demo program utilizes joysticks 0 and 1 in graphics mode.

If you specify a joystick number, only this is used. The demo separates the screen in two parts where you can move a cursor around with the resp. joystick. Pressing button 2 changes the color, pressing button 1 draws.

It also prints the current joystick position to the screen.

Internally the demo also shows the use of custom joystick handlers and how to recalibrate a joystick in graphics mode (press key <1> and <2> respectively.

After the demo runs and the joysticks are initialized it is possible to share the joysticks with another application (as long as it releases the joysticks upon a VC switch as well).

Pressing <Q> exits.

 

BUGS

After a vc switch the demo occasionally hangs in vga_waitevent(3) not timing out (hence the joysticks block). It is not clear if it is a conceptional problem or bug in vga_waitevent(3) or the kernel. Simply press any key to revive the demo.

 

NOTES

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.3.0.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

CAVEATS

The functions used by this demo are only available in ELF versions of svgalib. Due to backwards compatibility issues it cannot be used with shared a.out libs.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6), vgatest(6), joytest(6), joystick_init(3), joystick_close(3), joystick_update(3), joystick_sethandler(3), joystick_setdefaulthandler(3), joystick_getnumaxes(3), joystick_getnumbuttons(3), joystick_getaxis(3), joystick_getbutton(3), joystick_button1(3), joystick_getb1(3), joystick_x(3), joystick_getx(3).

 

AUTHOR

The svgalib joystick handler was mostly done by Daniel Engstr"om <daniel.engstrom@riksnett.no>. Multiple joystick, VC switching support and code to glue it into svgalib by Michael Weller <eowmob@exp-math.uni-essen.de>. Part of the code is based on code from C. Smith and Vojtech Pavlik.

nethack

NAME

nethack - Exploring The Mazes of Menace  

SYNOPSIS

nethack [ -d directory ] [ -n ] [ -p profession (role) ] [ -r race ] [ -[DX] ] [ -u playername ] [ -dec ] [ -ibm ]

nethack [ -d directory ] -s [ -v ] [ -p profession (role) ] [ -r race ] [ playernames ]  

DESCRIPTION

NetHack is a display oriented Dungeons & Dragons(tm) - like game. The standard tty display and command structure resemble rogue.

Other, more graphical display options exist if you are using either a PC, or an X11 interface.

To get started you really only need to know two commands. The command ? will give you a list of the available commands (as well as other information) and the command / will identify the things you see on the screen.

To win the game (as opposed to merely playing to beat other people`s high scores) you must locate the Amulet of Yendor which is somewhere below the 20th level of the dungeon and get it out. Nobody has achieved this yet; anybody who does will probably go down in history as a hero among heros.

When the game ends, whether by your dying, quitting, or escaping from the caves, NetHack will give you (a fragment of) the list of top scorers. The scoring is based on many aspects of your behavior, but a rough estimate is obtained by taking the amount of gold you`ve found in the cave plus four times your (real) experience. Precious stones may be worth a lot of gold when brought to the exit. There is a 10% penalty for getting yourself killed.

The environment variable NETHACKOPTIONS can be used to initialize many run-time options. The ? command provides a description of these options and syntax. (The -dec and -ibm command line options are equivalent to the decgraphics and ibmgraphics run-time options described there, and are provided purely for convenience on systems supporting multiple types of terminals.)

Because the option list can be very long (particularly when specifying graphics characters), options may also be included in a configuration file. The default is located in your home directory and named .nethackrc on Unix systems. On other systems, the default may be different, usually NetHack.cnf. On DOS or Windows, the name is defaults.nh, while on the Macintosh or BeOS, it is NetHack Defaults. The configuration file`s location may be specified by setting NETHACKOPTIONS to a string consisting of an @ character followed by the filename.

The -u playername option supplies the answer to the question "Who are you?". It overrides any name from the options or configuration file, USER, LOGNAME, or getlogin(), which will otherwise be tried in order. If none of these provides a useful name, the player will be asked for one. Player names (in conjunction with uids) are used to identify save files, so you can have several saved games under different names. Conversely, you must use the appropriate player name to restore a saved game.

A playername suffix can be used to specify the profession, race, alignment and/or gender of the character. The full syntax of the playername that includes a suffix is "name-ppp-rrr-aaa-ggg". "ppp" are at least the first three letters of the profession (this can also be specified using a separate -p profession option). "rrr" are at least the first three letters of the character`s race (this can also be specified using a separate -r race option). "aaa" are at last the first three letters of the character`s alignment, and "ggg" are at least the first three letters of the character`s gender. Any of the parts of the suffix may be left out.

-p profession can be used to determine the character role. You can specify either the male or female name for the character role, or the first three characters of the role as an abbreviation. -p @ has been retained to explicitly request that a random role be chosen. It may need to be quoted with a backslash (@) if @ is the "kill" character (see "stty") for the terminal, in order to prevent the current input line from being cleared.

Likewise, -r race can be used to explicitly request that a race be chosen.

Leaving out any of these characteristics will result in you being prompted during the game startup for the information.

The -s option alone will print out the list of your scores on the current version. An immediately following -v reports on all versions present in the score file. The -s may also be followed by arguments -p and -r to print the scores of particular roles and races only. It may also be followed by one or more player names to print the scores of the players mentioned, by `all` to print out all scores, or by a number to print that many top scores.

The -n option suppresses printing of any news from the game administrator.

The -D or -X option will start the game in a special non-scoring discovery mode. -D will, if the player is the game administrator, start in debugging (wizard) mode instead.

The -d option, which must be the first argument if it appears, supplies a directory which is to serve as the playground. It overrides the value from NETHACKDIR, HACKDIR, or the directory specified by the game administrator during compilation (usually /usr/games/lib/nethackdir). This option is usually only useful to the game administrator. The playground must contain several auxiliary files such as help files, the list of top scorers, and a subdirectory save where games are saved.  

AUTHORS

Jay Fenlason (+ Kenny Woodland, Mike Thome and Jon Payne) wrote the original hack, very much like rogue (but full of bugs).

Andries Brouwer continuously deformed their sources into an entirely different game.

Mike Stephenson has continued the perversion of sources, adding various warped character classes and sadistic traps with the help of many strange people who reside in that place between the worlds, the Usenet Zone. A number of these miscreants are immortalized in the historical roll of dishonor and various other places.

The resulting mess is now called NetHack, to denote its development by the Usenet. Andries Brouwer has made this request for the distinction, as he may eventually release a new version of his own.  

FILES

All files are in the playground, normally /usr/games/lib/nethackdir. If DLB was defined during the compile, the data files and special levels will be inside a larger file, normally nhdat, instead of being separate files.
nethack                     The program itself.

data, oracles, rumors      Data files used by NetHack.

options, quest.dat         More data files.

help, hh                   Help data files.

cmdhelp, opthelp, wizhelp  More help data files.

*.lev                      Predefined special levels.

dungeon                    Control file for special levels.

history                    A short history of NetHack.

license                    Rules governing redistribution.

record                     The list of top scorers.

logfile                    An extended list of games

                           played.

xlock.nnn                  Description of a dungeon level.

perm                       Lock file for xlock.dd.

bonesDD.nn                 Descriptions of the ghost and

                           belongings of a deceased

                           adventurer.

save                       A subdirectory containing the

                           saved games.
 

ENVIRONMENT

USER or LOGNAME      Your login name.

HOME                Your home directory.

SHELL               Your shell.

TERM                The type of your terminal.

HACKPAGER or PAGER  Replacement for default pager.

MAIL                Mailbox file.

MAILREADER          Replacement for default reader

                    (probably /bin/mail or /usr/ucb/mail).

NETHACKDIR          Playground.

NETHACKOPTIONS      String predefining several NetHack

                    options.

In addition, SHOPTYPE is used in debugging (wizard) mode.  

SEE ALSO

dgn_comp(6), lev_comp(6), recover(6)  

BUGS

Probably infinite.

Dungeons & Dragons is a Trademark of Wizards of the Coast, Inc.

printftest

NAME

printftest - tests the vgagl gl_printf function  

SYNOPSIS

printftest x y

 

DESCRIPTION

This test utility reads keys from the keyboard and displays them on the screen at pixel position (x, y) using gl_printf(3). It must be linked with the ELF svgalib libraries.

You can set a videomode to use by setting the environment variable SVGALIB_DEFAULT_MODE to a number (see vgatest for a list) or a string like G0x1x2 where you replace 0 with desired x resolution, 1 with the desired y rez, and 2 with the desired number of colors (2, 16, 256, 32K, 64K, 16M, 16M4). Again, only certain choices are available, see vgatest for a list.

In case nothing is selected, G320x200x256 is choosen.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

scrolltest

NAME

scrolltest - tests some scrolling algorithms with svgalib  

SYNOPSIS

scrolltest

 

DESCRIPTION

Smooth scrolling demo. Uses three different techniques. Useful for testing Mode X functionality (not that I would recommend it over 320x240x256 linear). Press <Space> to cycle through the demos.

The demos works only in 320x240x256 for the first 2 tests and with 320x200x256 in the last. Demos 1 & 3 use a virtual screen buffer, mode 2 (jumpy) works on screen. This is more a skeleton if you want to write some animation program, rather than a nice demo.

Shows frames per second (multiplied by 10) for method 1 & 3. Thus works also a kind of memory speed tester

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

spin

NAME

spin - test a 6-dimension mouse or pointer device with svgalib  

SYNOPSIS

spin

 

DESCRIPTION

Another mouse test program. This is the first svgalib program to use the 6-dimensional mouse routines. It draws a wireframe spheroid on the screen which can be moved left/right, up/down, in/out, or rotated along the x, y, or z axes.

Button bindings are:

A - Decrease Sensitivity (Right Mouse Button)
B - Change color (Middle Mouse Button)
C - Increase Sensitivity (Left Mouse Button)
D - Increase Number of Sides
E - Decrease Number of Sides
F - Quit (<Ctrl>-C)
If you only have a two dimensional mouse with three or fewer buttons you will only be able to move the mouse in two dimensions (left/right and in/out) and will not be able to move up/down or spin the spheroid. Note: the initial mouse sensitivity is optimised for the Spacetec series of controllers, which are much more sensitive than the usual mouse. Increasing the sensitivity is advised for users of other types of devices.

The demo works always in mode 320x200x256. It prompts your for an integer, the number of sides the sphere has (the higher the smoother looks the spere).

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), mouse_setposition_6d(3), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

testaccel

NAME

testaccel - test the old style blitter functions and vga_ext_set()  

SYNOPSIS

testaccel [ -nowait ] [ { all | videomodes... } ]

 

DESCRIPTION

Program to test the old blitter functions in a screen mode. Checks the 8-bit wide color lookup tables on Mach32`s with type 2 DACs as well. [I think `6bpp` and `8bpp` are silly names for the 8-bit LUT thing -- bpp is bits per pixel, in the framebuffer - HH :-)]

After each test it waits for a key press except when -nowait is given.

You can specify names of modes to test on the command line or specify all to loop over all svgalib modes.

The program will run on any card, however, most of the tests can only be performed on a Mach32.

The subtest are in turn:

1 -
For each 256 color mode the program sees if it is possible to enable a special mode with 8 bits per color in the RGB lookup table. If so, for example 256 different shades of blue can be implemented. The program displays as much blue shades as possible in a shade from dark (left) to bright (right) and some text in an opposite direction on top of it. In case 56 different shades are supported, the screen is divided and shows a rough 64 shades scale (ordinary vga) on top and the smooth shade below. Right now 256 different shades are only possible on a Mach32 with RAMDAC of type 2. For modes with few pixels only, the program might fail to print the text properly and will `wrap` it around the screen edges.
2 -
Draws a bouncing `linux` logo stopping after a fixed amount of 1 pixel steps. Uses vga_bitblt(3) on the image plus a one pixel outline in border color to move the pixel around the screen. The Mach32 is very fast in this discipline.
3 -
Draws filled rectangles using vga_fillblt(3). At first a series of larger to smaller centered rectangles is drawn to fill the screen. For 256 or less color modes these will use a sequence of 256 random colors. For 32K or more color modes it will use colors 0 up too, however, you`ll usually just see a repeating series of blues (limitations of monitor/human eye, the blue`s differ not enough for the eye to see). Then a bunch of random boxes in random places is drawn overwriting each other. The Mach32 is very fast in this discipline.
4 -
Draws small fish bitmaps and then larger linux logos in random positions using vga_imageblt(3). They just overlap each other The Mach32 is poor in this discipline. If you have a linear frame buffer enabled, it is used instead to perform this function (even if the program does not use a linear frame buffer otherwise). Usually this is twice as fast for Mach32.
5 -
Use vga_hlinelistblt(3) o do some simple polygon fills: squares, circles, diamonds of random sizes, positions and colors. Again, the Mach32 is very fast in this discipline, but somehow slowed down by the imperfect prototype of this function. Again, the polygons just overlap each other.

The resp. tests will only be performed where supported by the hardware. For Mach32 this means only SVGA 256, 32K, 64K color modes. The linear frame buffer emulated vga_imageblt(3) works for all SVGA modes though.

The program prints the number of pixels drawn and the time required plus the resulting rate of pixels per second. For Mach32 the rate depends on the amount of screen accesses (2 per pixel move for vga_bitblt(3), 1 per pixel move for vga_fillblt(3) and vga_hlinelistblt(3); also twice bytes are affected for 32K, 64K color modes). On a non VRAM card you`ll also note the effect of the memory access caused by the generation of the video frames (more colors/rez/sync rates => less speed). Also, higher modes draw more pixels per call, thus less call and setup overhead.

Here are the rates for my card on an almost idle 486 EISA system which should be fairly optimal (2MB VRAM EISA Mach32) except maybe the linear frame buffer emulated imageblt which might be faster on PCI card:


Testing mode 1: G320x200x16...
Dacwidth test not applicable.
Testing mode 2: G640x200x16...
Dacwidth test not applicable.
Testing mode 3: G640x350x16...
Dacwidth test not applicable.
Testing mode 4: G640x480x16...
Dacwidth test not applicable.
Testing mode 5: G320x200x256...
Warning: Resolution too small, displayed text is
probably scrambled.

Has support for CLUT width 8 bit
Testing mode 6: G320x240x256...
Dacwidth test not applicable.
Testing mode 7: G320x400x256...
Dacwidth test not applicable.
Testing mode 8: G360x480x256...
Dacwidth test not applicable.
Testing mode 9: G640x480x2...
Dacwidth test not applicable.
Testing mode 10: G640x480x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 6.49 seconds -> 27.21 Megapels
Has FillBlt: 217884171 Pixels in 4.55 seconds -> 47.89 Megapels
Has ImageBlt: 17085000 Pixels in 3.07 seconds -> 5.57 Megapels
Has HlineLst: 20192124 Pixels in 0.57 seconds -> 35.42 Megapels
Testing mode 11: G800x600x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 6.65 seconds -> 26.56 Megapels
Has FillBlt: 343102613 Pixels in 6.23 seconds -> 55.07 Megapels
Has ImageBlt: 17085000 Pixels in 3.06 seconds -> 5.58 Megapels
Has HlineLst: 33166399 Pixels in 0.78 seconds -> 42.52 Megapels
Testing mode 12: G1024x768x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 6.88 seconds -> 25.67 Megapels
Has FillBlt: 603141286 Pixels in 9.78 seconds -> 61.67 Megapels
Has ImageBlt: 17085000 Pixels in 3.07 seconds -> 5.57 Megapels
Has HlineLst: 52958845 Pixels in 1.08 seconds -> 49.04 Megapels
Testing mode 13: G1280x1024x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 7.10 seconds -> 24.87 Megapels
Has FillBlt: 1063820849 Pixels in 16.16 seconds -> 65.83 Megapels
Has ImageBlt: 17085000 Pixels in 3.07 seconds -> 5.57 Megapels
Has HlineLst: 95798478 Pixels in 1.75 seconds -> 54.74 Megapels
Testing mode 14: G320x200x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 12.30 seconds -> 14.36 Megapels
Has FillBlt: 41317334 Pixels in 3.61 seconds -> 11.45 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 3411068 Pixels in 0.23 seconds -> 14.83 Megapels
Testing mode 15: G320x200x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 12.29 seconds -> 14.37 Megapels
Has FillBlt: 42351016 Pixels in 4.12 seconds -> 10.28 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 3561694 Pixels in 0.23 seconds -> 15.49 Megapels
Testing mode 16: G320x200x16M...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 8.83 seconds -> 1.93 Megapels
Testing mode 17: G640x480x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.38 seconds -> 13.20 Megapels
Has FillBlt: 217723964 Pixels in 7.95 seconds -> 27.39 Megapels
Has ImageBlt: 17085000 Pixels in 5.94 seconds -> 2.88 Megapels
Has HlineLst: 19579110 Pixels in 0.74 seconds -> 26.46 Megapels
Testing mode 18: G640x480x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.37 seconds -> 13.21 Megapels
Has FillBlt: 221608034 Pixels in 8.28 seconds -> 26.76 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 21048202 Pixels in 0.79 seconds -> 26.64 Megapels
Testing mode 19: G640x480x16M...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 8.82 seconds -> 1.94 Megapels
Testing mode 20: G800x600x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.97 seconds -> 12.64 Megapels
Has FillBlt: 357205415 Pixels in 12.22 seconds -> 29.23 Megapels
Has ImageBlt: 17085000 Pixels in 5.92 seconds -> 2.89 Megapels
Has HlineLst: 34391335 Pixels in 1.16 seconds -> 29.65 Megapels
Testing mode 21: G800x600x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.97 seconds -> 12.64 Megapels
Has FillBlt: 348943970 Pixels in 11.87 seconds -> 29.40 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 34510200 Pixels in 1.17 seconds -> 29.50 Megapels
Testing mode 22: G800x600x16M...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 8.83 seconds -> 1.93 Megapels
Testing mode 23: G1024x768x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 14.60 seconds -> 12.10 Megapels
Has FillBlt: 608000981 Pixels in 18.62 seconds -> 32.65 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 53767429 Pixels in 1.72 seconds -> 31.26 Megapels
Testing mode 24: G1024x768x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 14.60 seconds -> 12.10 Megapels
Has FillBlt: 601666798 Pixels in 18.80 seconds -> 32.00 Megapels
Has ImageBlt: 17085000 Pixels in 5.92 seconds -> 2.89 Megapels
Has HlineLst: 52037798 Pixels in 1.67 seconds -> 31.16 Megapels
Testing mode 32: G720x348x2...
Dacwidth test not applicable.
Testing mode 33: G320x200x16M32...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 11.60 seconds -> 1.47 Megapels
Testing mode 34: G640x480x16M32...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 11.62 seconds -> 1.47 Megapels
Testing mode 35: G800x600x16M32...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 11.62 seconds -> 1.47 Megapels

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_ext_set(3), vga_bitblt(3), vga_fillblt(3), vga_hlinelistblt(3), vga_imageblt.3 threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. He also wrote thise demo and it`s documentation.

testlinear

NAME

testlinear, lineart - test a linear frame buffer  

SYNOPSIS

testlinear

 

DESCRIPTION

Program to test linear addressing on Cirrus cards and on Mach32 (and other cards which may support it).

Selects 640x480x256 and tries to enable a linear frame buffer (its virtual address is printed). Fills the screen in some color, then draws pixels in random positions.

For Cirrus cards some direct hardware access is then made for highspeed screen access. Except for the last (Cirrus only) test no speeds are printed, but you are welcome to use `time` to measure it. The program draws 714400 one byte pixels plus a forced 1s delay and various rand() calls for the pixels.

The testlinear demo needs a few presses of <Return> after each minimal demo step. Even when it does not prompt for it. When it appears to be stuck, just press <Return>.

The lineart demo is the same, but it accepts a command line with an arbitrary number of modes. The modes may be either mode numbers or names, or both. For example,

lineart 11 17 G800x600x32k 22

will give a display of mode 11. If a key is pressed mode 17 will appear, followed by mode 20 and 22 as succesive keys are pressed.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

vgatest

NAME

vgatest - makes basic tests on any svgalib graphics mode  

SYNOPSIS

vgatest

 

DESCRIPTION

Mode test program. First the program gives a list of the supported modes, then you enter a number and vgatest displays a test pattern in that mode.

The test pattern consists of a sequence of crosses (in different colors, if the mode support has different colors) in the top left corner.

Below you see either four horizontal color bars (white, red, green, and blue with increasing intensity from left to right) or vertical stripes.

If the mode has 32K or more colors, six squares will appear on top of that, each showing some different smooth color shades

The whole pattern is enclosed in a white border around the edge of the screen.

See below for details of the test pattern in case you need to verify that it is being displayed correctly or diagnose a problem with the display.

It also shows some details from vga_getmodeinfo(3).

To terminate the display and exit the program, hit any key. If that key is `d`, vgatest dumps the values of all the SVGA registers to Standard Output, in the manner of vga_dumpregs() before exiting.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

The Test Pattern

Here are the details of the test pattern that vgatest displays.

The screen is surrounded by a white frame which is at the very edges of the screen and one pixel thick.

At the top of the screen is a set of 16 overlapping crosses, lined up horizontally 5 pixels apart. Each cross is composed of a one pixel thick line sloping down at 45 degrees and one sloping up at 45 degrees meeting in the center. The top of each of these lines is at the 11th raster line on the screen and the bottom is at the 90th, so the crosses are 80 lines high. The leftmost pixel of the crosses is in the 11th column of the screen and the rightmost is in the 165th column. The lines are in multiple colors, but each line is one color (except where it intersects another line).

Below the crosses are either 4 horizontal bands of color or vertical bars. If the mode has 2 or 16 colors, you get the vertical bars. If the mode has 256, 32K, 64K, or 16M colors, you get the horizontal bands of color.

For a 2 color mode, the vertical bars are are one pixel wide white bars, spaced 4 pixels apart all the way across the screen on a black background. The first white bar is in the 3rd column. (But don`t forget the white border described above).

For a 16 color mode, the vertical bars are one pixel wide and contiguous, filling the 3rd column from the left through the 3rd column from the right. The bars cycle through each of the 16 colors from left to right.

The vertical bars start in the 101st raster line and end in the 3rd line from the bottom of the screen.

For a higher color mode, the color bands fill the 3rd column from the left through the 3rd column from the right. (leaving a column of black and the aforementioned white border at the edges). The bands are all the same height with nothing between them. They are as large as will fit starting in the 101st line of the screen and ending at or before the 3rd line from the bottom. So depending on the number of lines on the screen, there are 1, 2, 3, or 4 black lines between the lowest bar and the white bottom border.

The hues of the bands are, from top to bottom, white, red, green, and blue. Each band goes from zero to maximal brightness from left to right.

In addition to the color bands, for a mode with 32K or more colors, six squares, 64 pixels on a side are arranged in a matrix centered on the screen, spaced 32 pixels apart. They replace any other part of the test pattern. These are actual squares only if your monitor displays square pixels in this mode, i.e. 64 columns is the same length as 64 lines. Normal monitors, properly adjusted, display square pixels for 1024 x 768 modes, but may not for other geometries.

Each square contains 4096 different colors, one pixel per color, in smooth transition. In each top square, one color component (red, green, or blue) is zero another varies linearly in the vertical direction and the other varies linearly in the Y direction. The bottom squares are the same except that one color component is maximum instead of zero.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_getmodeinfo(3), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

xboard

NAME

xboard - X graphical user interface for chess  

SYNOPSIS

xboard [options]
xboard -ics -icshost hostname [options]
xboard -ncp [options]
|pxboard
cmail [options]

 

DESCRIPTION

XBoard is a graphical chessboard that can serve as a user interface to chess engines (such as GNU Chess), the Internet Chess Servers, electronic mail correspondence chess, or your own collection of saved games.

This manual documents version 4.2.7 of XBoard.

 

MAJOR MODES

XBoard always runs in one of four major modes. You select the major mode from the command line when you start up XBoard.

xboard [options]
As an interface to GNU Chess or another chess engine running on your machine, XBoard lets you play a game against the machine, set up arbitrary positions, force variations, watch a game between two chess engines, interactively analyze your stored games or set up and analyze arbitrary positions. (Note: Not all chess engines support analysis.)
xboard -ics -icshost hostname [options]
As Internet Chess Server (ICS) interface, XBoard lets you play against other ICS users, observe games they are playing, or review games that have recently finished. Most of the ICS "wild" chess variants are supported, including bughouse.
xboard -ncp [options]
XBoard can also be used simply as an electronic chessboard to play through games. It will read and write game files and allow you to play through variations manually. You can use it to browse games off the net or review games you have saved. These features are also available in the other modes.
|pxboard
If you want to pipe games into XBoard, use the supplied shell script `pxboard`. For example, from the news reader `xrn`, find a message with one or more games in it, click the Save button, and type `|pxboard` as the file name.
cmail [options]
As an interface to electronic mail correspondence chess, XBoard works with the cmail program. See CMail below for instructions.

 

MENUS, BUTTONS, AND KEYS

To move a piece, you can drag it with the left mouse button, or you can click the left mouse button once on the piece, then once more on the destination square. To drop a new piece on a square (when applicable), press the middle or the right mouse button over the square and select from the popup menu. In cases where you can drop either a white or black piece, use the middle button (or shift+right) for white and the right button (or shift+middle) for black. When you are playing a bughouse game on an Internet Chess Server, a list of the offboard pieces that each player has available is shown in the window title after the player`s name; in addition, the piece menus show the number of pieces available of each type.

All other XBoard commands are available from the menu bar. The most frequently used commands also have shortcut keys or on-screen buttons.

When XBoard is iconized, its graphical icon is a white knight if it is White`s turn to move, a black knight if it is Black`s turn. See Iconize in Keys below if you have problems getting this feature to work.

 

File Menu

Reset
Resets XBoard and the chess engine to the beginning of a new chess game. The `r` key is a keyboard equivalent. In Internet Chess Server mode, clears the current state of XBoard, then resynchronizes with the ICS by sending a refresh command. If you want to stop playing, observing, or examining an ICS game, use an appropriate command from the Action menu, not `Reset`. See Action Menu.
Load Game
Plays a game from a record file. The `g` key is a keyboard equivalent. A popup dialog prompts you for the file name. If the file contains more than one game, a second popup dialog displays a list of games (with information drawn from their PGN tags, if any), and you can select the one you want. Alternatively, you can load the Nth game in the file directly, by typing the number `N` after the file name, separated by a space.

The game file parser will accept PGN (portable game notation), or in fact almost any file that contains moves in algebraic notation. Notation of the form `P@f7` is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN. If the file includes a PGN position (FEN tag), or an old-style XBoard position diagram bracketed by `[--` and `--]` before the first move, the game starts from that position. Text enclosed in parentheses, square brackets, or curly braces is assumed to be commentary and is displayed in a pop-up window. Any other text in the file is ignored. PGN variations (enclosed in parentheses) are treated as comments; XBoard is not able to walk variation trees. The nonstandard PGN tag [Variant "varname"] functions similarly to the -variant command-line option (see below), allowing games in certain chess variants to be loaded. There is also a heuristic to recognize chess variants from the Event tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games.

Load Next Game
Loads the next game from the last game record file you loaded. The shifted `N` key is a keyboard equivalent.
Load Previous Game
Loads the previous game from the last game record file you loaded. The shifted `P` key is a keyboard equivalent. Not available if the last game was loaded from a pipe.
Reload Same Game
Reloads the last game you loaded. Not available if the last game was loaded from a pipe.
Save Game
Appends a record of the current game to a file. A popup dialog prompts you for the file name. If the game did not begin with the standard starting position, the game file includes the starting position used. Games are saved in the PGN (portable game notation) format, unless the oldSaveStyle option is true, in which case they are saved in an older format that is specific to XBoard. Both formats are human-readable, and both can be read back by the `Load Game` command. Notation of the form `P@f7` is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN.
Copy Game
Copies a record of the current game to an internal clipboard in PGN format and sets the X selection to the game text. The game can be pasted to another application (such as a text editor or another copy of XBoard) using that application`s paste command. In many X applications, such as xterm and emacs, the middle mouse button can be used for pasting; in XBoard, you must use the Paste Game command.
Paste Game
Interprets the current X selection as a game record and loads it, as with Load Game.
Load Position
Sets up a position from a position file. A popup dialog prompts you for the file name. If the file contains more than one saved position, and you want to load the Nth one, type the number N after the file name, separated by a space. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the Save Position command writes when oldSaveStyle is turned on.
Load Next Position
Loads the next position from the last position file you loaded.
Load Previous Position
Loads the previous position from the last position file you loaded. Not available if the last position was loaded from a pipe.
Reload Same Position
Reloads the last position you loaded. Not available if the last position was loaded from a pipe.
Save Position
Appends a diagram of the current position to a file. A popup dialog prompts you for the file name. Positions are saved in FEN (Forsythe-Edwards notation) format unless the `oldSaveStyle` option is true, in which case they are saved in an older, human-readable format that is specific to XBoard. Both formats can be read back by the `Load Position` command.
Copy Position
Copies the current position to an internal clipboard in FEN format and sets the X selection to the position text. The position can be pasted to another application (such as a text editor or another copy of XBoard) using that application`s paste command. In many X applications, such as xterm and emacs, the middle mouse button can be used for pasting; in XBoard, you must use the Paste Position command.
Paste Position
Interprets the current X selection as a FEN position and loads it, as with Load Position.
Mail Move
Reload CMail Message
See CMail.
Exit
Exits from XBoard. The shifted `Q` key is a keyboard equivalent.

 

Mode Menu

Machine White
Tells the chess engine to play White.
Machine Black
Tells the chess engine to play Black.
Two Machines
Plays a game between two chess engines.
Analysis Mode
XBoard tells the chess engine to start analyzing the current game/position and shows you the analysis as you move pieces around. Note: Some chess engines do not support Analysis mode.

To set up a position to analyze, you do the following:

1. Select Edit Position from the Mode Menu

2. Set up the position. Use the middle and right buttons to bring up the white and black piece menus.

3. When you are finished, click on either the Black or White clock to tell XBoard which side moves first.

4. Select Analysis Mode from the Mode Menu to start the analysis.

Analyze File
This option lets you load a game from a file (PGN, XBoard format, etc.) and analyze it. When you select this menu item, a popup window appears and asks for a filename to load. If the file contains multiple games, another popup appears that lets you select which game you wish to analyze. After a game is loaded, use the XBoard arrow buttons to step forwards/backwards through the game and watch the analysis. Note: Some chess engines do not support Analysis mode.
ICS Client
This is the normal mode when XBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out.

To use xboard in ICS mode, run it in the foreground with the -ics option, and use the terminal you started it from to type commands and receive text responses from the chess server. See Chess Servers below for more information.

XBoard activates some special position/game editing features when you use the `examine` or `bsetup` commands on ICS and you have `ICS Client` selected on the Mode menu. First, you can issue the ICS position-editing commands with the mouse. Move pieces by dragging with mouse button 1. To drop a new piece on a square, press mouse button 2 or 3 over the square. This brings up a menu of white pieces (button 2) or black pieces (button 3). Additional menu choices let you empty the square or clear the board. Click on the White or Black clock to set the side to play. You cannot set the side to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in `bsetup` mode on FICS. In addition, the menu commands `Forward`, `Backward`, `Pause`, and `Stop Examining` have special functions in this mode; see below.

Edit Game
Allows you to make moves for both Black and White, and to change moves after backing up with the `Backward` command. The clocks do not run.

In chess engine mode, the chess engine continues to check moves for legality but does not participate in the game. You can bring the chess engine into the game by selecting `Machine White`, `Machine Black`, or `Two Machines`.

In ICS mode, the moves are not sent to the ICS: `Edit Game` takes XBoard out of ICS Client mode and lets you edit games locally. If you want to edit games on ICS in a way that other ICS users can see, use the ICS `examine` command or start an ICS match against yourself.

Edit Position
Lets you set up an arbitrary board position. Use mouse button 1 to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, press mouse button 2 or 3 over the square. This brings up a menu of white pieces (button 2) or black pieces (button 3). Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the word White or Black at the top of the screen. Selecting `Edit Position` causes XBoard to discard all remembered moves in the current game.

In ICS mode, changes made to the position by `Edit Position` are not sent to the ICS: `Edit Position` takes XBoard out of `ICS Client` mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS `examine` command, or start an ICS match against yourself. (See also the ICS Client topic above.)

Training
Training mode lets you interactively guess the moves of a game for one of the players. You guess the next move of the game by playing the move on the board. If the move played matches the next move of the game, the move is accepted and the opponent`s response is autoplayed. If the move played is incorrect, an error message is displayed. You can select this mode only while loading a game (that is, after selecting `Load Game` from the File menu). While XBoard is in `Training` mode, the navigation buttons are disabled.
Show Game List
Shows or hides the list of games generated by the last `Load Game` command.
Edit Tags
Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax:

<tag-section> ::= <tag-pair> <tag-section> <empty> <tag-pair> ::= [ <tag-name> <tag-value> ] <tag-name> ::= <identifier> <tag-value> ::= <string>

See the PGN Standard for full details. Here is an example:

[Event "Portoroz Interzonal"] [Site "Portoroz, Yugoslavia"] [Date "1958.08.16"] [Round "8"] [White "Robert J. Fischer"] [Black "Bent Larsen"] [Result "1-0"]

Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by XBoard with `?` (unknown value), or `-` (inapplicable value).

Edit Comment
Adds or modifies a comment on the current position. Comments are saved by `Save Game` and are displayed by `Load Game`, `Forward`, and `Backward`.
ICS Input Box
If this option is set in ICS mode, XBoard creates an extra window that you can use for typing in ICS commands. The input box is especially useful if you want to type in something long or do some editing on your input, because output from ICS doesn`t get mixed in with your typing as it would in the main terminal window.
Pause
Pauses updates to the board, and if you are playing against a chess engine, also pauses your clock. To continue, select `Pause` again, and the display will automatically update to the latest position. The `P` button and keyboard `p` key are equivalents.

If you select Pause when you are playing against a chess engine and it is not your move, the chess engine`s clock will continue to run and it will eventually make a move, at which point both clocks will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select Forward). This behavior is meant to simulate adjournment with a sealed move.

If you select Pause while you are observing or examining a game on a chess server, you can step backward and forward in the current history of the examined game without affecting the other observers and examiners, and without having your display jump forward to the latest position each time a move is made. Select Pause again to reconnect yourself to the current state of the game on ICS.

If you select `Pause` while you are loading a game, the game stops loading. You can load more moves manually by selecting `Forward`, or resume automatic loading by selecting `Pause` again.

 

Action Menu

Accept
Accepts a pending match offer. If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.
Decline
Declines a pending offer (match, draw, adjourn, etc.). If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.
Call Flag
Calls your opponent`s flag, claiming a win on time, or claiming a draw if you are both out of time. You can also call your opponent`s flag by clicking on his clock or by pressing the keyboard `t` key.
Draw
Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate. The `d` key is a keyboard equivalent.
Adjourn
Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent.
Abort
Asks your opponent to agree to aborting the current game, or agrees to a pending abort offer from your opponent. An aborted game ends immediately without affecting either player`s rating.
Resign
Resigns the game to your opponent. The shifted `R` key is a keyboard equivalent.
Stop Observing
Ends your participation in observing a game, by issuing the ICS observe command with no arguments. ICS mode only.
Stop Examining
Ends your participation in examining a game, by issuing the ICS unexamine command. ICS mode only.

 

Step Menu

Backward
Steps backward through a series of remembered moves. The `[<]` button and the `b` key are equivalents. In addition, pressing the Control key steps back one move, and releasing it steps forward again.

In most modes, `Backward` only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on an ICS, or loading a game. If you select `Backward` in any of these situations, you will not be allowed to make a different move. Use `Retract Move` or `Edit Game` if you want to change past moves.

If you are examining an ICS game, the behavior of `Backward` depends on whether XBoard is in Pause mode. If Pause mode is off, `Backward` issues the ICS backward command, which backs up everyone`s view of the game and allows you to make a different move. If Pause mode is on, `Backward` only backs up your local view.

Forward
Steps forward through a series of remembered moves (undoing the effect of `Backward`) or forward through a game file. The `[>]` button and the `f` key are equivalents.

If you are examining an ICS game, the behavior of Forward depends on whether XBoard is in Pause mode. If Pause mode is off, `Forward` issues the ICS forward command, which moves everyone`s view of the game forward along the current line. If Pause mode is on, `Forward` only moves your local view forward, and it will not go past the position that the game was in when you paused.

Back to Start
Jumps backward to the first remembered position in the game. The `[<<]` button and the shifted `B` key are equivalents.

In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a local chess engine, playing or observing a game on a chess server, or loading a game. If you select `Back to Start` in any of these situations, you will not be allowed to make different moves. Use `Retract Move` or `Edit Game` if you want to change past moves; or use Reset to start a new game.

If you are examining an ICS game, the behavior of @samp{Back to Start} depends on whether XBoard is in Pause mode. If Pause mode is off, `Back to Start` issues the ICS `backward 999999` command, which backs up everyone`s view of the game to the start and allows you to make different moves. If Pause mode is on, @samp{Back to Start} only backs up your local view.

Forward to End
Jumps forward to the last remembered position in the game. The `[>>]` button and the shifted `F` key are equivalents.

If you are examining an ICS game, the behavior of @samp{Forward to End} depends on whether XBoard is in Pause mode. If Pause mode is off, `Forward to End` issues the ICS `forward 999999` command, which moves everyone`s view of the game forward to the end of the current line. If Pause mode is on, `Forward to End` only moves your local view forward, and it will not go past the position that the game was in when you paused.

Revert
If you are examining an ICS game and Pause mode is off, issues the ICS command `revert`.
Truncate Game
Discards all remembered moves of the game beyond the current position. Puts XBoard into `Edit Game` mode if it was not there already.
Move Now
Forces the chess engine to move immediately. Chess engine mode only.
Retract Move
Retracts your last move. In chess engine mode, you can do this only after the chess engine has replied to your move; if the chess engine is still thinking, use `Move Now` first. In ICS mode, `Retract Move` issues the command `takeback 1` or `takeback 2` depending on whether it is your opponent`s move or yours.

 

Options Menu

Always Queen
If this option is off, XBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is true, your pawns are always promoted to queens. Your opponent can still underpromote.
Animate Dragging
If Animate Dragging is on, while you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.
Animate Moving
If Animate Moving is on, all piece moves are animated. An image of the piece is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.
Auto Comment
If this option is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move. This includes remarks made with the ICS commands `say`, `tell`, `whisper`, and `kibitz`. Limitation: remarks that you type yourself are not recognized; XBoard scans only the output from ICS, not the input you type to it.
Auto Flag
If this option is on and one player runs out of time before the other, XBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent`s flag, not yours, and the ICS may award you a draw instead of a win if you have insufficient mating material. In local chess engine mode, XBoard may call either player`s flag and will not take material into account.
Auto Flip View
If the Auto Flip View option is on when you start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.
Auto Observe
If this option is on and you add a player to your `gnotify` list on ICS, XBoard will automatically observe all of that player`s games, unless you are doing something else (such as observing or playing a game of your own) when one starts. The games are displayed from the point of view of the player on your gnotify list; that is, his pawns move from the bottom of the window towards the top. Exceptions: If both players in a game are on your gnotify list, if your ICS `highlight` variable is set to 0, or if the ICS you are using does not properly support observing from Black`s point of view, you will see the game from White`s point of view.
Auto Raise Board
If this option is on, whenever a new game begins, the chessboard window is deiconized (if necessary) and raised to the top of the stack of windows.
Auto Save
If this option is true, at the end of every game XBoard prompts you for a file name and appends a record of the game to the file you specify. Disabled if the `saveGameFile` command-line option is set, as in that case all games are saved to the specified file. See Load and Save options.
Blindfold
If this option is on, XBoard displays the board as usual but does not display pieces or move highlights. You can still move in the usual way (with the mouse or by typing moves in ICS mode), even though the pieces are invisible.
Flash Moves
If this option is on, whenever a move is completed, the moved piece flashes. The number of times to flash is set by the flashCount command-line option; it defaults to 3 if Flash Moves is first turned on from the menu.
Flip View
Inverts your view of the chess board for the duration of the current game. Starting a new game returns the board to normal. The `v` key is a keyboard equivalent.

If you are playing a game on an ICS, the board is always oriented at the start of the game so that your pawns move from the bottom of the window towards the top. Otherwise, the starting orientation is determined by the `flipView` command line option; if it is false (the default), White`s pawns move from bottom to top at the start of each game; if it is true, Black`s pawns move from bottom to top. See User interface options.

Get Move List
If this option is on, whenever XBoard receives the first board of a new ICS game (or a different game from the one it is currently displaying), it retrieves the list of past moves from the ICS. You can then review the moves with the `Forward` and `Backward` commands or save them with `Save Game`. You might want to turn off this option if you are observing several blitz games at once, to keep from wasting time and network bandwidth fetching the move lists over and over. When you turn this option on from the menu, XBoard immediately fetches the move list of the current game (if any).
Highlight Last Move
If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use Backward or Back to Start, the starting and ending squares of the last move to be unmade are highlighted.
Move Sound
If this option is on, XBoard alerts you by playing a sound after each of your opponent`s moves (or after every move if you are observing a game on the Internet Chess Server). The sound is not played after moves you make or moves read from a saved game file. By default, the sound is the terminal bell, but on some systems you can change it to a sound file using the soundMove option; see below.

If you turn on this option when using XBoard with the Internet Chess Server, you will probably want to give the `set bell 0` command to the ICS, since otherwise the ICS will ring the terminal bell after every move (not just yours). (The `.icsrc` file is a good place for this; see ICS options.)

ICS Alarm
When this option is on, an alarm sound is played when your clock counts down to the icsAlarmTime (by default, 5 seconds) in an ICS game. For games with time controls that include an increment, the alarm will sound each time the clock counts down to the icsAlarmTime. By default, the alarm sound is the terminal bell, but on some systems you can change it to a sound file using the soundIcsAlarm option; see below.
Old Save Style
If this option is off, XBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is on, a save style that is compatible with older versions of XBoard is used instead. The old position style is more human-readable than FEN; the old game style has no particular advantages.
Periodic Updates
If this option is off (or if you are using a chess engine that does not support periodic updates), the analysis window will only be updated when the analysis changes. If this option is on, the Analysis Window will be updated every two seconds.
Ponder Next Move
If this option is off, the chess engine will think only when it is on move. If the option is on, the engine will also think while waiting for you to make your move.
Popup Exit Message
If this option is on, when XBoard wants to display a message just before exiting, it brings up a modal dialog box and waits for you to click OK before exiting. If the option is off, XBoard prints the message to standard error (the terminal) and exits immediately.
Popup Move Errors
If this option is off, when you make an error in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like other errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move.
Premove
If this option is on while playing a game on an ICS, you can register your next planned move before it is your turn. Move the piece with the mouse in the ordinary way, and the starting and ending squares will be highlighted with a special color (red by default). When it is your turn, if your registered move is legal, XBoard will send it to ICS immediately; if not, it will be ignored and you can make a different move. If you change your mind about your premove, either make a different move, or double-click on any piece to cancel the move entirely.
Quiet Play
If this option is on, XBoard will automatically issue an ICS `set shout 0` command whenever you start a game and a `set shout 1` command whenever you finish one. Thus, you will not be distracted by shouts from other ICS users while playing.
Show Coords
If this option is on, XBoard displays algebraic coordinates along the board`s left and bottom edges.
Show Thinking
If this option is set, the chess engine`s notion of the score and best line of play from the current position is displayed as it is thinking. The score indicates how many pawns ahead (or if negative, behind) the chess engine thinks it is. In matches between two machines, the score is prefixed by `W` or `B` to indicate whether it is showing White`s thinking or Black`s, and only the thinking of the engine that is on move is shown.
Test Legality
If this option is on, XBoard tests whether the moves you try to make with the mouse are legal and refuses to let you make an illegal move. Moves loaded from a file with `Load Game` are also checked. If the option is off, all moves are accepted, but if a local chess engine or the ICS is active, they will still reject illegal moves. Turning off this option is useful if you are playing a chess variant with rules that XBoard does not understand. (Bughouse, suicide, and wild variants where the king may castle after starting on the d file are generally supported with Test Legality on.)

 

Help Menu

Info XBoard
Displays the XBoard documentation in info format. For this feature to work, you must have the GNU info program installed on your system, and the file `xboard.info` must either be present in the current working directory, or have been installed by the `make install` command when you built XBoard.
Man XBoard
Displays the XBoard documentation in man page format. For this feature to work, the file `xboard.6` must have been installed by the `make install` command when you built XBoard, and the directory it was placed in must be on the search path for your system`s `man` command.
Hint
Displays a move hint from the chess engine.
Book
Displays a list of possible moves from the chess engine`s opening book. The exact format depends on what chess engine you are using. With GNU Chess 4, the first column gives moves, the second column gives one possible response for each move, and the third column shows the number of lines in the book that include the move from the first column. If you select this option and nothing happens, the chess engine is out of its book or does not support this feature.
About XBoard
Shows the current XBoard version number.

 

Other Shortcut Keys

Iconize
Pressing the `i` or `c` key iconizes XBoard. The graphical icon displays a white knight if it is White`s move, or a black knight if it is Black`s move. If your X window manager displays only text icons, not graphical ones, check its documentation; there is probably a way to enable graphical icons. If you get black and white reversed, we would like to hear about it; see Problems below for instructions on how to report this problem.

You can add or remove shortcut keys using the X resources `form.translations`. Here is an example of what would go in your `.Xdefaults` file:

XBoard*form.translations: Shift<Key>?: AboutGameProc() <Key>y: AcceptProc() <Key>n: DeclineProc() <Key>i: NothingProc()

Binding a key to `NothingProc` makes it do nothing, thus removing it as a shortcut key. The XBoard commands that can be bound to keys are:

AbortProc, AboutGameProc, AboutProc, AcceptProc, AdjournProc, AlwaysQueenProc, AnalysisModeProc, AnalyzeFileProc, AnimateDraggingProc, AnimateMovingProc, AutobsProc, AutoflagProc, AutoflipProc, AutoraiseProc, AutosaveProc, BackwardProc, BlindfoldProc, BookProc, CallFlagProc, CopyGameProc, CopyPositionProc, DebugProc, DeclineProc, DrawProc, EditCommentProc, EditGameProc, EditPositionProc, EditTagsProc, EnterKeyProc, FlashMovesProc, FlipViewProc, ForwardProc, GetMoveListProc, HighlightLastMoveProc, HintProc, Iconify, IcsAlarmProc, IcsClientProc, IcsInputBoxProc, InfoProc, LoadGameProc, LoadNextGameProc, LoadNextPositionProc, LoadPositionProc, LoadPrevGameProc, LoadPrevPositionProc, LoadSelectedProc, MachineBlackProc, MachineWhiteProc, MailMoveProc, ManProc, MoveNowProc, MoveSoundProc, NothingProc, OldSaveStyleProc, PasteGameProc, PastePositionProc, PauseProc, PeriodicUpdatesProc, PonderNextMoveProc, PopupExitMessageProc, PopupMoveErrorsProc, PremoveProc, QuietPlayProc, QuitProc, ReloadCmailMsgProc, ReloadGameProc, ReloadPositionProc, RematchProc, ResetProc, ResignProc, RetractMoveProc, RevertProc, SaveGameProc, SavePositionProc, ShowCoordsProc, ShowGameListProc, ShowThinkingProc, StopExaminingProc, StopObservingProc, TestLegalityProc, ToEndProc, ToStartProc, TrainingProc, TruncateGameProc, and TwoMachinesProc.

 

OPTIONS

This section documents the command-line options to XBoard. You can set these options in two ways: by typing them on the shell command line you use to start XBoard, or by setting them as X resources (typically in your `.Xdefaults` file). Many of the options cannot be changed while XBoard is running; others set the initial state of items that can be changed with the Options menu.

Most of the options have both a long name and a short name. To turn a boolean option on or off from the command line, either give its long name followed by the value true or false (`-longOptionName true`), or give just the short name to turn the option on (`-opt`), or the short name preceded by `x` to turn the option off (`-xopt`). For options that take strings or numbers as values, you can use the long or short option names interchangeably.

Each option corresponds to an X resource with the same name, so if you like, you can set options in your `.Xdefaults` file or in a file named `XBoard` in your home directory. For options that have two names, the longer one is the name of the corresponding X resource; the short name is not recognized. To turn a boolean option on or off as an X resource, give its long name followed by the value true or false (`XBoard*longOptionName: true`).

 

Chess Engine Options

-tc or -timeControl minutes[:seconds]
Each player begins with his clock set to the `timeControl` period. Default: 5 minutes. The additional options `movesPerSession` and `timeIncrement` are mutually exclusive.
-mps or -movesPerSession moves
When both players have made `movesPerSession` moves, a new `timeControl` period is added to both clocks. Default: 40 moves.
-inc or -timeIncrement seconds
If this option is specified, `movesPerSession` is ignored. Instead, after each player`s move, `timeIncrement` seconds are added to his clock. Use `-inc 0` if you want to require the entire game to be played in one `timeControl` period, with no increment. Default: -1, which specifies `movesPerSession` mode.
-clock/-xclock or -clockMode true/false
Determines whether or not to display the chess clocks. If clockMode is false, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless `searchTime` is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.
-st or -searchTime minutes[:seconds]
Tells the chess engine to spend at most the given amount of time searching for each of its moves. Without this option, the chess engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to false.
-depth or -searchDepth number
Tells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the chess engine chooses its search depth based on the number of moves and amount of time remaining until the next time control. With the option, the engine will cut off its search early if it reaches the specified depth.
-thinking/-xthinking or -showThinking true/false
Sets the Show Thinking option. See Options Menu. Default: false.
-ponder/-xponder or -ponderNextMove true/false
Sets the Ponder Next Move menu option. See Options Menu. Default: true.
-mg or -matchGames n
Automatically runs an n-game match between two chess engines, with alternating colors. If the `loadGameFile` or `loadPositionFile` option is set, XBoard starts each game with the given opening moves or the given position; otherwise, the games start with the standard initial chess position. If the `saveGameFile` option is set, a move record for the match is appended to the specified file. If the `savePositionFile` option is set, the final position reached in each game of the match is appended to the specified file. When the match is over, XBoard displays the match score and exits. Default: 0 (do not run a match).
-mm/-xmm or -matchMode true/false
Setting `matchMode` to true is equivalent to setting `matchGames` to 1.
-fcp or -firstChessProgram program
Name of first chess engine. Default: `gnuchessx`.
-scp or -secondChessProgram program
Name of second chess engine, if needed. A second chess engine is started only in Two Machines (match) mode. Default: `gnuchessx`.
-fb/-xfb or -firstPlaysBlack true/false
In games between two chess engines, firstChessProgram normally plays white. If this option is true, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still alternate in subsequent games.
-fh or -firstHost host
-sh or -secondHost host
Hosts on which the chess engines are to run. The default for each is `localhost`. If you specify another host, XBoard uses `rsh` to run the chess engine there. (You can substitute a different remote shell program for rsh using the `remoteShell` option described below.)
-fd or -firstDirectory dir
-sd or -secondDirectory dir
Working directories in which the chess engines are to be run. The default is "", which means to run the chess engine in the same working directory as XBoard itself. (See the CHESSDIR environment variable.) This option is effective only when the chess engine is being run on the local host; it does not work if the engine is run remotely using the -fh or -sh option.
-initString string
-secondInitString string
The string that is sent to initialize each chess engine for a new game. Default:

new random

Setting this option from the command line is tricky, because you must type in real newline characters, including one at the very end. In most shells you can do this by entering a `` character followed by a newline. It is easier to set the option from your `.Xdefaults` file; in that case you can include the character sequence ` ` in the string, and it will be converted to a newline.

If you change this option, don`t remove the `new` command; it is required by all chess engines to start a new game.

You can remove the `random` command if you like; including it causes GNU Chess 4 to randomize its move selection slightly so that it doesn`t play the same moves in every game. Even without `random`, GNU Chess 4 randomizes its choice of moves from its opening book. Many other chess engines ignore this command entirely and always (or never) randomize.

You can also try adding other commands to the initString; see the documentation of the chess engine you are using for details.

-firstComputerString string
-secondComputerString string
The string that is sent to the chess engine if its opponent is another computer chess engine. The default is `computer `. Probably the only useful alternative is the empty string (``), which keeps the engine from knowing that it is playing another computer.
-reuse/-xreuse or -reuseFirst true/false
-reuse2/-xreuse2 or -reuseSecond true/false
If the option is false, XBoard kills off the chess engine after every game and starts it again for the next game. If the option is true (the default), XBoard starts the chess engine only once and uses it repeatedly to play multiple games. Some old chess engines may not work properly when reuse is turned on, but otherwise games will start faster if it is left on.
-firstProtocolVersion version-number
-secondProtocolVersion version-number
This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is not sent to the engine; since version 1 is a subset of version 2, nothing else changes. Other values for version-number are not supported.

 

Internet Chess Server Options

-ics/-xics or -internetChessServerMode true/false
Connect with an Internet Chess Server to play chess against its other users, observe games they are playing, or review games that have recently finished. Default: false.
-icshost or -internetChessServerHost host
The Internet host name or address of the chess server to connect to when in ICS mode. Default: `chessclub.com`. Another popular chess server to try is `freechess.org`. If your site doesn`t have a working Internet name server, try specifying the host address in numeric form. You may also need to specify the numeric address when using the icshelper option with timestamp or timeseal (see below).
-icsport or -internetChessServerPort port-number
The port number to use when connecting to a chess server in ICS mode. Default: 5000.
-icshelper or -internetChessServerHelper prog-name
An external helper program used to communicate with the chess server. You would set it to "timestamp" for ICC (chessclub.com) or "timeseal" for FICS (freechess.org), after obtaining the correct version of timestamp or timeseal for your computer. See "help timestamp" on ICC and "help timeseal" on FICS. This option is shorthand for `-useTelnet -telnetProgram program`.
-telnet/-xtelnet or -useTelnet true/false
This option is poorly named; it should be called useHelper. If set to true, it instructs XBoard to run an external program to communicate with the Internet Chess Server. The program to use is given by the telnetProgram option. If the option is false (the default), XBoard opens a TCP socket and uses its own internal implementation of the telnet protocol to communicate with the ICS. See Firewalls.
-telnetProgram prog-name
This option is poorly named; it should be called helperProgram. It gives the name of the telnet program to be used with the `gateway` and `useTelnet` options. The default is `telnet`. The telnet program is invoked with the value of `internetChessServerHost` as its first argument and the value of `internetChessServerPort` as its second argument. See Firewalls.
-gateway host-name
If this option is set to a host name, XBoard communicates with the Internet Chess Server by using `rsh` to run the `telnetProgram` on the given host, instead of using its own internal implementation of the telnet protocol. You can substitute a different remote shell program for `rsh` using the `remoteShell` option described below. See Firewalls.
-internetChessServerCommPort or -icscomm dev-name
If this option is set, XBoard communicates with the ICS through the given character I/O device instead of opening a TCP connection. Use this option if your system does not have any kind of Internet connection itself (not even a SLIP or PPP connection), but you do have dialup access (or a hardwired terminal line) to an Internet service provider from which you can telnet to the ICS.

The support for this option in XBoard is minimal. You need to set all communication parameters and tty modes before you enter XBoard.

Use a script something like this:

stty raw -echo 9600 > /dev/tty00 xboard -ics -icscomm /dev/tty00

Here replace `/dev/tty00` with the name of the device that your modem is connected to. You might have to add several more options to these stty commands. See the man pages for `stty` and `tty` if you run into problems. Also, on many systems stty works on its standard input instead of standard output, so you have to use `<` instead of `>`.

If you are using linux, try starting with the script below. Change it as necessary for your installation.

#!/bin/sh -f # configure modem and fire up XBoard # configure modem ( stty 2400 ; stty raw ; stty hupcl ; stty -clocal stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff stty -iexten ; stty -echo ) < /dev/modem xboard -ics -icscomm /dev/modem

After you start XBoard in this way, type whatever commands are necessary to dial out to your Internet provider and log in. Then telnet to ICS, using a command like `telnet chessclub.com 5000`. Important: See the paragraph below about extra echoes, in Limitations.

-icslogon or -internetChessServerLogonScript file-name
Whenever XBoard connects to the Internet Chess Server, if it finds a file with the name given in this option, it feeds the file`s contents to the ICS as commands. The default file name is `.icsrc`. Usually the first two lines of the file should be your ICS user name and password. The file can be either in $CHESSDIR, in XBoard`s working directory if CHESSDIR is not set, or in your home directory.
-msLoginDelay delay
If you experience trouble logging on to an ICS when using the `-icslogon` option, inserting some delay between characters of the logon script may help. This option adds `delay` milliseconds of delay between characters. Good values to try are 100 and 250.
-icsinput/-xicsinput or -internetChessServerInputBox true/false
Sets the ICS Input Box menu option. See Mode Menu. Default: false.
-autocomm/-xautocomm or -autoComment true/false
Sets the Auto Comment menu option. See Options Menu. Default: false.
-autoflag/-xautoflag or -autoCallFlag true/false
Sets the Auto Flag menu option. See Options Menu. Default: false.
-autobs/-xautobs or -autoObserve true/false
Sets the Auto Observe menu option. See Options Menu. Default: false.
-moves/-xmoves or -getMoveList true/false
Sets the Get Move List menu option. See Options Menu. Default: true.
-alarm/-xalarm or -icsAlarm true/false
Sets the ICS Alarm menu option. See Options Menu. Default: true.
-icsAlarmTime ms
Sets the time in milliseconds for the ICS Alarm menu option. See Options Menu. Default: 5000.
-pre/-xpre fRorfB -premove true/false
Sets the Premove menu option. See Options Menu. Default: true.
-quiet/-xquiet or -quietPlay true/false
Sets the Quiet Play menu option. See Options Menu. Default: false.
-colorizeMessages or -colorize
Setting colorizeMessages to true tells XBoard to colorize the messages received from the ICS. Colorization works only if your xterm supports ISO 6429 escape sequences for changing text colors.
-colorShout foreground,background,bold
-colorSShout foreground,background,bold
-colorChannel1 foreground,background,bold
-colorChannel foreground,background,bold
-colorKibitz foreground,background,bold
-colorTell foreground,background,bold
-colorChallege foreground,background,bold
-colorRequest foreground,background,bold
-colorSeek foreground,background,bold
-colorNormal foreground,background,bold
These options set the colors used when colorizing ICS messages. All ICS messages are grouped into one of these categories: shout, sshout, channel 1, other channel, kibitz, tell, challenge, request (including abort, adjourn, draw, pause, and takeback), or normal (all other messages).

Each foreground or background argument can be one of the following: black, red, green, yellow, blue, magenta, cyan, white, or default. Here ``default`` means the default foreground or background color of your xterm. Bold can be 1 or 0. If background is omitted, ``default`` is assumed; if bold is omitted, 0 is assumed.

Here is an example of how to set the colors in your `.Xdefaults` file. The colors shown here are the default values; you will get them if you turn `-colorize` on without specifying your own colors.

xboard*colorizeMessages: true xboard*colorShout: green xboard*colorSShout: green, black, 1 xboard*colorChannel1: cyan xboard*colorChannel: cyan, black, 1 xboard*colorKibitz: magenta, black, 1 xboard*colorTell: yellow, black, 1 xboard*colorChallenge: red, black, 1 xboard*colorRequest: red xboard*colorSeek: blue xboard*colorNormal: default

-soundProgram progname
If this option is set to a sound-playing program that is installed and working on your system, XBoard can play sound files when certain events occur, listed below. The default program name is "play". If any of the sound options is set to "$", the event rings the terminal bell by sending a ^G character to standard output, instead of playing a sound file. If an option is set to the empty string "", no sound is played for that event.
-soundShout filename
-soundSShout filename
-soundChannel filename
-soundKibitz filename
-soundTell filename
-soundChallenge filename
-soundRequest filename
-soundSeek filename
These sounds are triggered in the same way as the colorization events described above. They all default to "", no sound. They are played only if the colorizeMessages is on.
-soundMove filename
This sound is used by the Move Sound menu option. Default: "$".
-soundIcsAlarm filename
This sound is used by the ICS Alarm menu option. Default: "$".
-soundIcsWin filename
This sound is played when you win an ICS game. Default: "" (no sound).
-soundIcsLoss filename
This sound is played when you lose an ICS game. Default: "" (no sound).
-soundIcsDraw filename
This sound is played when you draw an ICS game. Default: "" (no sound).
-soundIcsUnfinished filename
This sound is played when an ICS game that you are participating in is aborted, adjourned, or otherwise ends inconclusively. Default: "" (no sound).

Here is an example of how to set the sounds in your .Xdefaults file:

xboard*soundShout: shout.wav xboard*soundSShout: sshout.wav xboard*soundChannel1: channel1.wav xboard*soundChannel: channel.wav xboard*soundKibitz: kibitz.wav xboard*soundTell: tell.wav xboard*soundChallenge: challenge.wav xboard*soundRequest: request.wav xboard*soundSeek: seek.wav xboard*soundMove: move.wav xboard*soundIcsWin: win.wav xboard*soundIcsLoss: lose.wav xboard*soundIcsDraw: draw.wav xboard*soundIcsUnfinished: unfinished.wav xboard*soundIcsAlarm: alarm.wav

 

Load and Save Options

-lgf or -loadGameFile file
-lgi or -loadGameIndex index
If the `loadGameFile` option is set, XBoard loads the specified game file at startup. The file name `-` specifies the standard input. If there is more than one game in the file, XBoard pops up a menu of the available games, with entries based on their PGN (Portable Game Notation) tags. If the `loadGameIndex` option is set to `N`, the menu is suppressed and the N th game found in the file is loaded immediately. The menu is also suppressed if `matchMode` is enabled or if the game file is a pipe; in these cases the first game in the file is loaded immediately. Use the `pxboard` shell script provided with XBoard if you want to pipe in files containing multiple games and still see the menu.
-td or -timeDelay seconds
Time delay between moves during `Load Game`. Fractional seconds are allowed; try `-td 0.4`. A time delay value of -1 tells XBoard not to step through game files automatically. Default: 1 second.
-sgf or -saveGameFile file
If this option is set, XBoard appends a record of every game played to the specified file. The file name `-` specifies the standard output.
-autosave/-xautosave or -autoSaveGames true/false
Sets the Auto Save menu option. See Options Menu. Default: false. Ignored if `saveGameFile` is set.
-lpf or -loadPositionFile file
-lpi or -loadPositionIndex index
If the `loadPositionFile` option is set, XBoard loads the specified position file at startup. The file name `-` specifies the standard input. If the `loadPositionIndex` option is set to N, the Nth position found in the file is loaded; otherwise the first position is loaded.
-spf or -savePositionFile file
If this option is set, XBoard appends the final position reached in every game played to the specified file. The file name `-` specifies the standard output.
-oldsave/-xoldsave or -oldSaveStyle true/false
Sets the Old Save Style menu option. See Options Menu. Default: false.

 

User Interface Options

-display
-geometry
-iconic
These and most other standard Xt options are accepted.
-movesound/-xmovesound or -ringBellAfterMoves true/false
Sets the Move Sound menu option. See Options Menu. Default: false. For compatibility with old XBoard versions, -bell/-xbell are also accepted as abbreviations for this option.
-exit/-xexit or -popupExitMessage true/false
Sets the Popup Exit Message menu option. See Options Menu. Default: true.
-popup/-xpopup or -popupMoveErrors true/false
Sets the Popup Move Errors menu option. See Options Menu. Default: false.
-queen/-xqueen or -alwaysPromoteToQueen true/false
Sets the Always Queen menu option. See Options Menu. Default: false.
-legal/-xlegal or -testLegality true/false
Sets the Test Legality menu option. See Options Menu. Default: true.
-size or -boardSize (sizeName | n1,n2,n3,n4,n5,n6,n7)
Determines how large the board will be, by selecting the pixel size of the pieces and setting a few related parameters. The sizeName can be one of: Titanic, giving 129x129 pixel pieces, Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, or Tiny 21x21. Pieces of all these sizes are built into XBoard. Other sizes can be used if you have them; see the pixmapDirectory and bitmapDirectory options. The default depends on the size of your screen; it is approximately the largest size that will fit without clipping.

You can select other sizes or vary other layout parameters by providing a list of comma-separated values (with no spaces) as the argument. You do not need to provide all the values; for any you omit from the end of the list, defaults are taken from the nearest built-in size. The value `n1` gives the piece size, `n2` the width of the black border between squares, `n3` the desired size for the clockFont, `n4` the desired size for the coordFont, `n5` the desired size for the default font, `n6` the smallLayout flag (0 or 1), and `n7` the tinyLayout flag (0 or 1). All dimensions are in pixels. If the border between squares is eliminated (0 width), the various highlight options will not work, as there is nowhere to draw the highlight. If smallLayout is 1 and `titleInWindow` is true, the window layout is rearranged to make more room for the title. If tinyLayout is 1, the labels on the menu bar are abbreviated to one character each and the buttons in the button bar are made narrower.

-coords/-xcoords or -showCoords true/false
Sets the Show Coords menu option. See Options Menu. Default: false. The `coordFont` option specifies what font to use.
-autoraise/-xautoraise or -autoRaiseBoard true/false
Sets the Auto Raise Board menu option. See Options Menu. Default: true.
-autoflip/-xautoflip or -autoFlipView true/false
Sets the Auto Flip View menu option. See Options Menu. Default: true.
-flip/-xflip or -flipView true/false
If Auto Flip View is not set, or if you are observing but not participating in a game, then the positioning of the board at the start of each game depends on the flipView option. If flipView is false (the default), the board is positioned so that the white pawns move from the bottom to the top; if true, the black pawns move from the bottom to the top. In any case, the Flip menu option (see Options Menu) can be used to flip the board after the game starts.
-title/-xtitle or -titleInWindow true/false
If this option is true, XBoard displays player names (for ICS games) and game file names (for `Load Game`) inside its main window. If the option is false (the default), this information is displayed only in the window banner. You probably won`t want to set this option unless the information is not showing up in the banner, as happens with a few X window managers.
-buttons/-xbuttons or -showButtonBar True/False
If this option is False, xboard omits the [<<] [<] [P] [>] [>>] button bar from the window, allowing the message line to be wider. You can still get the functions of these buttons using the menus or their keyboard shortcuts. Default: true.
-mono/-xmono or -monoMode true/false
Determines whether XBoard displays its pieces and squares with two colors (true) or four (false). You shouldn`t have to specify `monoMode`; XBoard will determine if it is necessary.
-flashCount count
-flashRate rate
-flash/-xflash
These options enable flashing of pieces when they land on their destination square. `flashCount` tells XBoard how many times to flash a piece after it lands on its destination square. `flashRate` controls the rate of flashing (flashes/sec). Abbreviations: `flash` sets flashCount to 3. `xflash` sets flashCount to 0. Defaults: flashCount=0 (no flashing), flashRate=5.
-highlight/-xhighlight or -highlightLastMove true/false
Sets the Highlight Last Move menu option. See Options Menu. Default: false.
-blind/-xblind or -blindfold true/false
Sets the Blindfold menu option. See Options Menu. Default: false.
-clockFont font
The font used for the clocks. If the option value is a pattern that does not specify the font size, XBoard tries to choose an appropriate font for the board size being used. Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.
-coordFont font
The font used for rank and file coordinate labels if `showCoords` is true. If the option value is a pattern that does not specify the font size, XBoard tries to choose an appropriate font for the board size being used. Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.
-font font
The font used for popup dialogs, menus, comments, etc. If the option value is a pattern that does not specify the font size, XBoard tries to choose an appropriate font for the board size being used. Default: -*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*.
-fontSizeTolerance tol
In the font selection algorithm, a nonscalable font will be preferred over a scalable font if the nonscalable font`s size differs by `tol` pixels or less from the desired size. A value of -1 will force a scalable font to always be used if available; a value of 0 will use a nonscalable font only if it is exactly the right size; a large value (say 1000) will force a nonscalable font to always be used if available. Default: 4.
-bm or -bitmapDirectory dir
-pixmap or -pixmapDirectory dir
These options control what piece images xboard uses. The XBoard distribution includes one set of pixmap pieces in xpm format, in the directory `pixmaps`, and one set of bitmap pieces in xbm format, in the directory `bitmaps`. Pixmap pieces give a better appearance on the screen: the white pieces have dark borders, and the black pieces have opaque internal details. With bitmaps, neither piece color has a border, and the internal details are transparent; you see the square color or other background color through them.

If XBoard is configured and compiled on a system that includes libXpm, the X pixmap library, the xpm pixmap pieces are compiled in as the default. A different xpm piece set can be selected at runtime with the `pixmapDirectory` option, or a bitmap piece set can be selected with the `bitmapDirectory` option.

If XBoard is configured and compiled on a system that does not include libXpm (or the `--disable-xpm` option is given to the configure program), the bitmap pieces are compiled in as the default. It is not possible to use xpm pieces in this case, but pixmap pieces in another format called "xim" can be used by giving the `pixmapDirectory` option. Or again, a different bitmap piece set can be selected with the `bitmapDirectory` option.

Files in the `bitmapDirectory` must be named as follows: The first character of a piece bitmap name gives the piece it represents (`p`, `n`, `b`, `r`, `q`, or `k`), the next characters give the size in pixels, the following character indicates whether the piece is solid or outline (`s` or `o`), and the extension is `.bm`. For example, a solid 80x80 knight would be named `n80s.bm`. The outline bitmaps are used only in monochrome mode. If bitmap pieces are compiled in and the bitmapDirectory is missing some files, the compiled in pieces are used instead.

If the bitmap

bg_test

NAME

bg_test - test the background mode of svgalib  

SYNOPSIS

bg_test [linear]

 

DESCRIPTION

Tests the enhanced support of recent svgalibs to draw while switched to the background. Draws a small centered white box then waits until you switch to another vc. Draws some outer box frame around it while background, which you can see when you switch back to it. For obvious reasons, your version of svgalib must have BACKGROUND support enabled (which is the default as of this writing). When finished, press any key to end bg_test.

The demo uses a G320x200x256 mode or the one you set with SVGALIB_DEFAULT_MODE.

If you specify the linear parameter the demo will use vgagl(7) and vga_setlinearaddressing(3) to test linear mode in background.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_runinbackground(3), threed(6), accel(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

bzadmin

NAME

bzadmin - a text based client for BZFlag  

SYNOPSIS

bzadmin [-help] [-hide msgtype{,msgtype}*] [-show msgtype{,msgtype}*] [-ui {curses | stdboth | stdin | stdout}] callsign@hostname:[port] [command] [command] ...  

DESCRIPTION

bzadmin is a textbased client for the game BZFlag. It can`t be used for playing, but it can be used to see when players join and leave the game, to see the chat messages, and to send messages and commands to the server.

When you start bzadmin without any command line options other than callsign and hostname a simple curses-based user interface will be started (unless you built bzadmin without curses support). This interface is divided into three rectangles; the output window (which covers almost all of the terminal), the target window, and the input window.

The output window is where messages from the server will be shown.

The target window shows the name of the player that will receive your next message, or `all` if it will be a public message. You can change target by using the left and right arrow keys.

The input window is where you type your messages. It also supports tab completion of commands and callsigns. You can clear the input window with the key combination Ctrl-U, and you can generate a /kick command for the current target with the F5 key (if the current target is a player). You can also generate a ban command for the current target with the F6 key, but this only works if you are an admin and the server has sent you that players IP address (as a response to a /playerlist command).

The curses user interface also has a simple menu system where you can edit the server variables (if you are an admin) and see a player list. If you are an admin you can also see the IP addresses in the player list, if you have sent a /playerlist command. The menu shows up when you hit the F2 key. It only covers the upper half of the screen, so you can still see what`s going on in the game. You can navigate through the menu with the up and down arrow keys, and use the enter key to select submenus and other menu items. If you hit F2 again the command prompt will regain keyboard focus, but the menu will still be visible. If you hit F2 a third time the menu will go away.  

Options

-help
Show a simple help text.
-hide msgtype{,msgtype}*
Tell bzadmin not to show these message types. The available message types are chat, join, kill, leave, pause, ping, rabbit, and spawn. By default chat, join, kill, leave, pause, and rabbit are shown.
-show msgtype{,msgtype}*
Tell bzadmin to show these message types. See -hide for a list of available message types. If a message type is listed both in -show and -hide it will not be shown.
-ui {curses | stdboth | stdin | stdout}
Select the user interface that you want. The curses interface is the default, and it is described above.
The stdin interface reads user commands from the standard in stream and sends them to the server. All server output is ignored.
The stdout interface prints all server output to the standard out stream. All user input is ignored.
The stdboth interface is a combination of stdin and stdout - it prints server output to the standard out stream, and reads user commands from the standard in stream.
callsign@hostname[:port]
Specifies the callsign that you want your client to use, and the hostname where the BZFlag server is. The port number is optional, and the default value is 5154.
command
You can specify messages and commands to send to the server on the command line. If any such commands are specified, bzadmin will exit as soon as those commands has been sent, without starting an user interface.
 

Examples

bzadmin admin@localhost:5154

Join the game on localhost, port 5154, using the callsign `admin`.
bzadmin admin@localhost `/passwd secretpass` `/ban 192.168.0.2`

Connect to the server at localhost and ban the IP 192.168.0.2.
bzadmin -ui stdout spy@bzserver.xy | grep magicword
Connect to bzserver.xy and print all server messages that contain `magicword`.
 

SEE ALSO

bzfs(6), bzflag(6)

bzfls

NAME

bzfls - BZFlag game server-list server  

SYNOPSIS

bzfls  

DESCRIPTION

Bzfls keeps a list of bzfs servers. It`s used to help BZFlag clients find available servers on the internet.

It is a script that run under the control of a web server. You have the availability of 3 bzfls script. They provide the same functionality, so use the one the best match your system.

bzfls.pl

A perl script that uses SQLite database. SQLite uses a file to mantain its memory

bzflsMy.php

A php script that uses MySQL database. For this you should run a real Database Server. On the first lines of the script you should change the username, password and database name to match one on your MySQL server.

bzflsLite.php

A php script that uses SQLite database.  

Notes

Public bzfs servers (i.e. those that used the -public option) register themselves with the bzfls server at regular intervals and update their information, such as the number of current players, as it changes. BZFlag clients query the bzfls server to provide the user a list of available servers. Working together these programs provide users an easy way to find games.

Game servers (bzfs) will also unregister themselves when they exit. However, since it`s possible for the servers to be unable to unregister themselves, bzfls will drop servers that it hasn`t heard from in a certain amount of time.

Both clients and servers use a built-in url to find a bzfls server (see URLs below). This url is maintained by the BZFlag author and is the bzfls server. Only this server is required to provide automatic server finding. You do not need to run your own bzfls under normal circumstances.

If you want a private list of servers then you can run bzfls but you must also get clients and servers to use it. BZFlag uses the -list url option to specify an alternate bzfls server. Bzfs uses -publiclist url. See URLs below for a description of the url format.  

URLs

The BZFlag family understands URLs with the standard syntax.
http://hostname[:port][path]

The URL specified should point to the bzfls script through your web server.

 

SEE ALSO

bzflag(6), bzfs(6)

bzfrelay

NAME

bzfrelay - BZFlag game server firewall relay  

SYNOPSIS

bzfrelay [-a address mask] [-d] [-f] [-h] [-p port] [-r address mask] [-s [address][:port]] address[:port]  

DESCRIPTION

Bzfrelay relays communication between bzflag and bzfs. It`s primary purpose is to provide a tunnel to bzfs through a firewall.

Because security is a prime concern on a firewall, users are encouraged to read the source code and run it with restricted permissions. Also bzfrelay rejects connections from any clients not explicitly allowed and the default is to reject all connections; you must use the options to allow some connections for bzfrelay to be useful.

In the interests of security (and because there`s no need for it) bzfrelay provides no means to escape to a shell, start executables, access the filesystem, report system resources, etc.  

Options

-a address mask
Allow addresses matching address and mask. An address src matches iff (src & mask) == (address & mask). This option may appear any number of times.
-d
Increase debugging level. This option may be specified multiple times to increase logging.
-f
Run in the foreground and log to stderr. Default is to detach from the terminal and log to syslog.
-h
Print help information and exit. The help information includes the default connect and reconnect ports.
-p port
Listen for reconnections on port instead of the default. The BZFlag protocol is broken in that it requires clients to connect to the server, get a port to reconnect to, disconnect, and reconnect on the new port (there`s no reason for this except backward compatibility). This option overrides the default reconnect port number. Packet filters on the firewall must be configured to allow TCP packets to and from this port; clients will be initiating the connection. Use -h to get the default reconnection port number.
-r address mask
Reject addresses matching address and mask. An address src matches iff (src & mask) == (address & mask). This option may appear any number of times.
-s [address][:port]
Listen for connections on port at address. The default is to use the standard bzfs port and to listen on all interfaces. Either address or port can be omitted, but not both; the default is used for the omit argument. Packet filters on the firewall must be configured to allow TCP packets to and from this port and address; clients will be initiating the connection. Use -h to get the default connection port number.
address[:port]
Relay packets to the bzfs server on port port at address. If port is not specified then the standard bzfs port is used. Packet filters on the firewall must be configured to allow packets to and from this address and port, but note that bzfrelay will be initiating these TCP connections. This argument is required.
 

Notes

Addresses are matched against -a and -r options in the order they appear on the command line. An address is accepted as soon as it matches an -a set and rejected as soon as it matches an -r set, so you must list more specific sets before more general sets. An address not matching any set is rejected.  

Examples

To allow clients from any host in the 192.0.2 net only use: "-a 192.0.2.0 255.255.255.0".

To allow clients from any host except those in the 192.0.2 subnet use: "-r 192.0.2.0 255.255.255.0 -a 0.0.0.0 0.0.0.0". To also allow host 192.0.2.1 use: "-a 192.0.2.1 255.255.255.255 -r 192.0.2.0 255.255.255.0 -a 0.0.0.0 0.0.0.0".

To allow clients from any host use: "-a 0.0.0.0 0.0.0.0". This is not recommended.  

BUGS

Bzfrelay uses IP addresses for authentication and is therefore vulnerable to address spoofing attacks.  

SEE ALSO

bzfs(6)

dgn_comp

NAME

dgn_comp - NetHack dungeon compiler  

SYNOPSIS

dgn_comp [ file ]

If no arguments are given, it reads standard input.  

DESCRIPTION

Dgn_comp is a dungeon compiler for NetHack version 3.2 and higher. It takes a description file as an argument and produces a dungeon "script" that is to be loaded by NetHack at runtime.

The purpose of this tool is to provide NetHack administrators and implementors with a convenient way to create a custom dungeon for the game, without having to recompile the entire world.  

GRAMMAR

DUNGEON: name bonesmarker ( base , rand ) [ %age ]

where name is the dungeon name, bonesmarker is a letter for marking bones files, ( base , rand ) is the number of levels, and %age is its percentage chance of being generated (if absent, 100% chance).

DESCRIPTION: tag

where tag is currently one of HELLISH, MAZELIKE, or ROGUELIKE.

ALIGNMENT | LEVALIGN: [ lawful | neutral | chaotic | unaligned ]

gives the alignment of the dungeon/level (default is unaligned).

ENTRY: level

the dungeon entry point. The dungeon connection attaches at this level of the given dungeon. If the value of level is negative, the entry level is calculated from the bottom of the dungeon, with -1 being the last level. If this line is not present in a dungeon description, the entry level defaults to 1.

PROTOFILE: name

the prototypical name for dungeon level files in this dungeon. For example, the PROTOFILE name for the dungeon Vlad`s Tower is tower.

LEVEL: name bonesmarker @ ( base , rand ) [ %age ]

where name is the level name, bonesmarker is a letter for marking bones files, ( base , rand ) is the location and %age is the generation percentage, as above.

RNDLEVEL: name bonesmarker @ ( base , rand ) [ %age ] rndlevs

where name is the level name, bonesmarker is a letter for marking bones files, ( base , rand ) is the location, %age is the generation percentage, as above, and rndlevs is the number of similar levels available to choose from.

CHAINLEVEL: name bonesmarker prev_name + ( base , rand ) [ %age ]

where name is the level name, bonesmarker is a letter for marking bones files, prev_name is the name of a level defined previously, ( base , rand ) is the offset from the level being chained from, and %age is the generation percentage.

RNDCHAINLEVEL: name bonesmarker prev_name + ( base , rand ) [ %age ] rndlevs

where name is the level name, bonesmarker is a letter for marking bones files, prev_name is the name of a level defined previously, ( base , rand ) is the offset from the level being chained from, %age is the generation percentage, and rndlevs is the number of similar levels available to choose from.

LEVELDESC: type

where type is the level type, (see DESCRIPTION, above). The type is used to override any pre-set value used to describe the entire dungeon, for this level only.

BRANCH: name @ ( base , rand ) [ stair | no_up | no_down | portal ] [ up | down ]

where name is the name of the dungeon to branch to, and ( base , rand ) is the location of the branch. The last two optional arguments are the branch type and branch direction. The type of a branch can be a two-way stair connection, a one-way stair connection, or a magic portal. A one-way stair is described by the types no_up and no_down which specify which stair direction is missing. The default branch type is stair. The direction for a stair can be either up or down; direction is not applicable to portals. The default direction is down.

CHAINBRANCH: name prev_name + ( base , rand ) [ stair | no_up | no_down | portal ] [ up | down ]

where name is the name of the dungeon to branch to, prev_name is the name of a previously defined level and ( base , rand ) is the offset from the level being chained from. The optional branch type and direction are the same as described above.  

GENERIC RULES

Each dungeon must have a unique bonesmarker , and each special level must have a bonesmarker unique within its dungeon (letters may be reused in different dungeons). If the bonesmarker has the special value "none", no bones files will be created for that level or dungeon.

The value base may be in the range of 1 to MAXLEVEL (as defined in global.h ).

The value rand may be in the range of -1 to MAXLEVEL.

If rand is -1 it will be replaced with the value (num_dunlevs(dungeon) - base) during the load process (ie. from here to the end of the dungeon).

If rand is 0 the level is located absolutely at base.

Branches don`t have a probability. Dungeons do. If a dungeon fails to be generated during load, all its levels and branches are skipped.

No level or branch may be chained from a level with a percentage generation probability. This is to prevent non-resolution during the load. In addition, no branch may be made from a dungeon with a percentage generation probability for the same reason.

As a general rule using the dungeon compiler:

If a dungeon has a protofile name associated with it (eg. tower) that file will be used.

If a special level is present, it will override the above rule and the appropriate file will be loaded.

If neither of the above are present, the standard generator will take over and make a "normal" level.

A level alignment, if present, will override the alignment of the dungeon that it exists within.  

EXAMPLE

Here is the current syntax of the dungeon compiler`s "language":

# # The dungeon description file for the "standard" original # 3.0 NetHack. # DUNGEON: "The Dungeons of Doom" "D" (25, 5) LEVEL: "rogue" "none" @ (15, 4) LEVEL: "oracle" "none" @ (5, 7) LEVEL: "bigroom" "B" @ (12, 3) 15 LEVEL: "medusa" "none" @ (20, 5) CHAINLEVEL: "castle" "medusa" + (1, 4) CHAINBRANCH: "Hell" "castle" + (0, 0) no_down BRANCH: "The Astral Plane" @ (1, 0) no_down up DUNGEON: "Hell" "H" (25, 5) DESCRIPTION: mazelike DESCRIPTION: hellish BRANCH: "Vlad`s Tower" @ (13, 5) up LEVEL: "wizard" "none" @ (15, 10) LEVEL: "fakewiz" "A" @ (5, 5) LEVEL: "fakewiz" "B" @ (10, 5) LEVEL: "fakewiz" "C" @ (15, 5) LEVEL: "fakewiz" "D" @ (20, 5) LEVEL: "fakewiz" "E" @ (25, 5) DUNGEON: "Vlad`s Tower" "T" (3, 0) PROTOFILE: "tower" DESCRIPTION: mazelike ENTRY: -1 DUNGEON: "The Astral Plane" "A" (1, 0) DESCRIPTION: mazelike PROTOFILE: "endgame"

NOTES:
Lines beginning with `#` are considered comments.
A special level must be explicitly aligned. The alignment of the dungeon it is in only applies to non-special levels within that dungeon.  

AUTHOR

M. Stephenson (from the level compiler by Jean-Christophe Collet).  

SEE ALSO

lev_comp(6), nethack(6)  

BUGS

Probably infinite.

eventtest

NAME

eventtest - test the waitevent function of svgalib  

SYNOPSIS

eventtest

 

DESCRIPTION

This is a kind of an upgraded keytest(6) and mousetest(6) demo using the vga_waitevent(3) function.

Use mouse to move cursor. <1>-<9>, <0> to set the cursor size. <Space> to change the cursor color. Left button to draw. Right button or <Q> to bailout.

The cursor goes on/off every half second by usage of a timeout passed to vga_waitevent(3). Every 5 seconds a string from a child process (the time) arrives asynchronously and is displayed by the frontend. This comes in through a pipe(2) which is monitored by vga_waitevent(2).

You can set a videomode to use by setting the environment variable SVGALIB_DEFAULT_MODE to a number (see vgatest for a list) or a string like G0x1x2 where you replace 0 with desired x resolution, 1 with the desired y rez, and 2 with the desired number of colors (2, 16, 256, 32K, 64K, 16M, 16M4). Again, only certain choices are available, see vgatest for a list.

In case nothing is selected, G320x200x256 is choosen.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_waitevent(3), threed(6), accel(6), bg_test(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The demos as well as the vga_waitevent(3) function is due to him.

frozen-bubble

NAME

frozen-bubble - arcade/reflex game

 

SYNOPSIS

frozen-bubble [OPTION]...

 

DESCRIPTION

The Frozen-Bubble game is a free software implementation of a popular arcade/reflex game. The game mainly consists of firing randomly chosen bubbles across the board. If the shoot ends up having a clump of at least 3 bubbles of the same color, they all pop. If some bubbles were sticked only on the popping clump, they fall. In 1-player mode, the goal is to pop all the bubbles on the board as quickly as possible. In 2-player mode, you have to get your opponent to "die" before you.

 

OPTIONS

-h, --help
show command-line options summary
-fs, --fullscreen
start the game in fullscreen mode
-ns, --nosound
disable music and sound effects
-nm, --nomusic
disable music (but not sound effects)
-nfx, --nosfx
disable sound effects (but not music)
--playlistDIRECTORY
use all files of the given directory as music files and play them
-sl, --slow_machine
use this option if frozen-bubble runs too slowly on your machine
-vs, --very_slow_machine
same as before, if it is not enough
-so, --solo
directly start solo (1p) game, with random levels
-di, --direct
directly start 2p game (don`t display menu)
-cr, --chain_reaction
enable chain-reaction
-lNUMB, --levelNUMB
start directly the game, at level NUMB
-cb, --colourblind
use special bubbles for colourblind people
-pmNUMB, --playermalusNUMB
add the specified malus to the left player (can be negative)

 

AUTHOR

Written by Guillaume Cottenceau <guillaume.cottenceau at free.fr>. This manual page was originally written by Josselin Mouette <josselin.mouette at ens-lyon.org>.
Visit official homepage: http://www.frozen-bubble.org/

 

SEE ALSO

frozen-bubble-editor(6)

 

COPYRIGHT

Copyright © 2000, 2001, 2002, 2003 Guillaume Cottenceau.
This is Free Software; this software is licensed under the GPL version 2, as published by the Free Software Foundation. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

fun

NAME

fun - draw pixels accumulating in clusters  

SYNOPSIS

fun

 

DESCRIPTION

Random moving pixels accumulate in clusters. Uses virtual screens for frame animation. This uses basic VGA functionality and works only in 320x200x256.

Hit <Ctrl>-C to abort. The bottom row shows all largest cluster and its size), frames drawn, and (after some time) average frames per second. Once the screen is filled, a new random setup is run.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

joytest

NAME

joytest - test the svgalib joystick package in text mode  

SYNOPSIS

joytest number

 

DESCRIPTION

This demo program tries to open the joystick with the given number and calibrates it. The user is prompted to press <Return> after which any state change of the joystick is reported until the program is killed.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.3.0.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

CAVEATS

The functions used by this demo are only available in ELF versions of svgalib. Due to backwards compatibility issues it cannot be used with shared a.out libs.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6), vgatest(6), mjoytest(6), joystick_init(3), joystick_close(3), joystick_update(3), joystick_sethandler(3), joystick_setdefaulthandler(3), joystick_getnumaxes(3), joystick_getnumbuttons(3), joystick_getaxis(3), joystick_getbutton(3), joystick_button1(3), joystick_getb1(3), joystick_x(3), joystick_getx(3).

 

AUTHOR

The svgalib joystick handler was mostly done by Daniel Engstr"om <daniel.engstrom@riksnett.no>. Multiple joystick, VC switching support and code to glue it into svgalib by Michael Weller <eowmob@exp-math.uni-essen.de>. Part of the code is based on code from C. Smith and Vojtech Pavlik.

lev_comp

NAME

lev_comp - NetHack special levels compiler  

SYNOPSIS

lev_comp [ -w ] [ files ]

If no arguments are given, it reads standard input.  

DESCRIPTION

Lev_comp is a special level compiler for NetHack version 3.2 and higher. It takes description files as arguments and produces level files that can be loaded by NetHack at runtime.

The purpose of this tool is to provide NetHack administrators and implementors with a convenient way for adding special levels to the game, or modifying existing ones, without having to recompile the entire world.

The -w option causes lev_comp to perform extra checks on the level and display extra warnings, however these warnings are sometimes superfluous, so they are not normally displayed.

 

GRAMMAR

file : /* nothing */ | levels ; levels : level | level levels ; level : maze_level | room_level ; maze_level : maze_def flags lev_init messages regions ; room_level : level_def flags lev_init messages rreg_init rooms corridors_def ; level_def : LEVEL_ID `:` string ; lev_init : /* nothing */ | LEV_INIT_ID `:` CHAR `,` CHAR `,` BOOLEAN `,` BOOLEAN `,` light_state `,` walled ; walled : BOOLEAN | RANDOM_TYPE ; flags : /* nothing */ | FLAGS_ID `:` flag_list ; flag_list : FLAG_TYPE `,` flag_list | FLAG_TYPE ; messages : /* nothing */ | message messages ; message : MESSAGE_ID `:` STRING ; rreg_init : /* nothing */ | rreg_init init_rreg ; init_rreg : RANDOM_OBJECTS_ID `:` object_list | RANDOM_MONSTERS_ID `:` monster_list ; rooms : /* Nothing - dummy room for use with INIT_MAP */ | roomlist ; roomlist : aroom | aroom roomlist ; corridors_def : random_corridors | corridors ; random_corridors: RAND_CORRIDOR_ID ; corridors : /* nothing */ | corridors corridor ; corridor : CORRIDOR_ID `:` corr_spec `,` corr_spec | CORRIDOR_ID `:` corr_spec `,` INTEGER ; corr_spec : `(` INTEGER `,` DIRECTION `,` door_pos `)` ; aroom : room_def room_details | subroom_def room_details ; subroom_def : SUBROOM_ID `:` room_type `,` light_state `,` subroom_pos `,` room_size `,` string roomfill ; room_def : ROOM_ID `:` room_type `,` light_state `,` room_pos `,` room_align `,` room_size roomfill ; roomfill : /* nothing */ | `,` BOOLEAN ; room_pos : `(` INTEGER `,` INTEGER `)` | RANDOM_TYPE ; subroom_pos : `(` INTEGER `,` INTEGER `)` | RANDOM_TYPE ; room_align : `(` h_justif `,` v_justif `)` | RANDOM_TYPE ; room_size : `(` INTEGER `,` INTEGER `)` | RANDOM_TYPE ; room_details : /* nothing */ | room_details room_detail ; room_detail : room_name | room_chance | room_door | monster_detail | object_detail | trap_detail | altar_detail | fountain_detail | sink_detail | pool_detail | gold_detail | engraving_detail | stair_detail ; room_name : NAME_ID `:` string ; room_chance : CHANCE_ID `:` INTEGER ; room_door : DOOR_ID `:` secret `,` door_state `,` door_wall `,` door_pos ; secret : BOOLEAN | RANDOM_TYPE ; door_wall : DIRECTION | RANDOM_TYPE ; door_pos : INTEGER | RANDOM_TYPE ; maze_def : MAZE_ID `:` string `,` filling ; filling : CHAR | RANDOM_TYPE ; regions : aregion | aregion regions ; aregion : map_definition reg_init map_details ; map_definition : NOMAP_ID | map_geometry MAP_ID ; map_geometry : GEOMETRY_ID `:` h_justif `,` v_justif ; h_justif : LEFT_OR_RIGHT | CENTER ; v_justif : TOP_OR_BOT | CENTER ; reg_init : /* nothing */ | reg_init init_reg ; init_reg : RANDOM_OBJECTS_ID `:` object_list | RANDOM_PLACES_ID `:` place_list | RANDOM_MONSTERS_ID `:` monster_list ; object_list : object | object `,` object_list ; monster_list : monster | monster `,` monster_list ; place_list : place | place `,` place_list ; map_details : /* nothing */ | map_details map_detail ; map_detail : monster_detail | object_detail | door_detail | trap_detail | drawbridge_detail | region_detail | stair_region | portal_region | teleprt_region | branch_region | altar_detail | fountain_detail | mazewalk_detail | wallify_detail | ladder_detail | stair_detail | gold_detail | engraving_detail | diggable_detail | passwall_detail ; monster_detail : MONSTER_ID chance `:` monster_c `,` m_name `,` coordinate monster_infos ; monster_infos : /* nothing */ | monster_infos monster_info ; monster_info : `,` string | `,` MON_ATTITUDE | `,` MON_ALERTNESS | `,` alignment | `,` MON_APPEARANCE string ; object_detail : OBJECT_ID object_desc | COBJECT_ID object_desc ; object_desc : chance `:` object_c `,` o_name `,` object_where object_infos ; object_where : coordinate | CONTAINED ; object_infos : /* nothing */ | `,` curse_state `,` monster_id `,` enchantment optional_name | `,` curse_state `,` enchantment optional_name | `,` monster_id `,` enchantment optional_name ; curse_state : RANDOM_TYPE | CURSE_TYPE ; monster_id : STRING ; enchantment : RANDOM_TYPE | INTEGER ; optional_name : /* nothing */ | `,` NONE | `,` STRING ; door_detail : DOOR_ID `:` door_state `,` coordinate ; trap_detail : TRAP_ID chance `:` trap_name `,` coordinate ; drawbridge_detail: DRAWBRIDGE_ID `:` coordinate `,` DIRECTION `,` door_state ; mazewalk_detail : MAZEWALK_ID `:` coordinate `,` DIRECTION ; wallify_detail : WALLIFY_ID ; ladder_detail : LADDER_ID `:` coordinate `,` UP_OR_DOWN ; stair_detail : STAIR_ID `:` coordinate `,` UP_OR_DOWN ; stair_region : STAIR_ID `:` lev_region `,` lev_region `,` UP_OR_DOWN ; portal_region : PORTAL_ID `:` lev_region `,` lev_region `,` string ; teleprt_region : TELEPRT_ID `:` lev_region `,` lev_region teleprt_detail ; branch_region : BRANCH_ID `:` lev_region `,` lev_region ; teleprt_detail : /* empty */ | `,` UP_OR_DOWN ; lev_region : region | LEV `(` INTEGER `,` INTEGER `,` INTEGER `,` INTEGER `)` ; fountain_detail : FOUNTAIN_ID `:` coordinate ; sink_detail : SINK_ID `:` coordinate ; pool_detail : POOL_ID `:` coordinate ; diggable_detail : NON_DIGGABLE_ID `:` region ; passwall_detail : NON_PASSWALL_ID `:` region ; region_detail : REGION_ID `:` region `,` light_state `,` room_type prefilled ; altar_detail : ALTAR_ID `:` coordinate `,` alignment `,` altar_type ; gold_detail : GOLD_ID `:` amount `,` coordinate ; engraving_detail: ENGRAVING_ID `:` coordinate `,` engraving_type `,` string ; monster_c : monster | RANDOM_TYPE | m_register ; object_c : object | RANDOM_TYPE | o_register ; m_name : string | RANDOM_TYPE ; o_name : string | RANDOM_TYPE ; trap_name : string | RANDOM_TYPE ; room_type : string | RANDOM_TYPE ; prefilled : /* empty */ | `,` FILLING | `,` FILLING `,` BOOLEAN ; coordinate : coord | p_register | RANDOM_TYPE ; door_state : DOOR_STATE | RANDOM_TYPE ; light_state : LIGHT_STATE | RANDOM_TYPE ; alignment : ALIGNMENT | a_register | RANDOM_TYPE ; altar_type : ALTAR_TYPE | RANDOM_TYPE ; p_register : P_REGISTER `[` INTEGER `]` ; o_register : O_REGISTER `[` INTEGER `]` ; m_register : M_REGISTER `[` INTEGER `]` ; a_register : A_REGISTER `[` INTEGER `]` ; place : coord ; monster : CHAR ; object : CHAR ; string : STRING ; amount : INTEGER | RANDOM_TYPE ; chance : /* empty */ | PERCENT ; engraving_type : ENGRAVING_TYPE | RANDOM_TYPE ; coord : `(` INTEGER `,` INTEGER `)` ; region : `(` INTEGER `,` INTEGER `,` INTEGER `,` INTEGER `)` ;

NOTE:
Lines beginning with `#` are considered comments.

The contents of a "MAP" description of a maze is a rectangle showing the exact level map that should be used for the given part of a maze. Each character in the map corresponds to a location on the screen. Different location types are denoted using different ASCII characters. The following characters are recognized. To give an idea of how these are used, see the EXAMPLE, below. The maximum size of a map is normally 76 columns by 21 rows.

`-` horizontal wall `|` vertical wall `+` a doorway (state is specified in a DOOR declaration) `A` open air `B` boundary room location (for bounding unwalled irregular regions) `C` cloudy air `I` ice `S` a secret door `H` a secret corridor `{` a fountain `` a throne `K` a sink (if SINKS is defined, else a room location) `}` a part of a moat or other deep water `P` a pool `L` lava `W` water (yes, different from a pool) `T` a tree `F` iron bars `#` a corridor `.` a normal room location (unlit unless lit in a REGION declaration) ` ` stone

 

EXAMPLE

Here is an example of a description file (a very simple one):

MAZE : "fortress", random GEOMETRY : center , center MAP }}}}}}}}} }}}|-|}}} }}|-.-|}} }|-...-|} }|.....|} }|-...-|} }}|-.-|}} }}}|-|}}} }}}}}}}}} ENDMAP MONSTER: `@`, "Wizard of Yendor", (4,4) OBJECT: `"`, "Amulet of Yendor", (4,4) # a hell hound flanking the Wiz on a random side RANDOM_PLACES: (4,3), (4,5), (3,4), (5,4) MONSTER: `d`, "hell hound", place[0] # a chest on another random side OBJECT: `(`, "chest", place[1] # a sack on a random side, with a diamond and maybe a ruby in it CONTAINER: `(`, "sack", place[2] OBJECT: `*`, "diamond", contained OBJECT[50%]: `*`, "ruby", contained # a random dragon somewhere MONSTER: `D`, random, random # 3 out of 4 chance for a random trap in the EAST end TRAP[75%]: random, (6,4) # an electric eel below the SOUTH end MONSTER: `;`, "electric eel", (4,8) # make the walls non-diggable NON_DIGGABLE: (0,0,8,8) TELEPORT_REGION: levregion(0,0,79,20), (0,0,8,8)

This example will produce a file named "fortress" that can be integrated into one of the numerous mazes of the game.

Note especially the final, TELEPORT_REGION specification. This says that level teleports or other non-stairway arrivals on this level can land anywhere on the level except the area of the map. This shows the use of the ``levregion`` prefix allowed in certain region specifications. Normally, regions apply only to the most recent MAP specification, but when prefixed with ``levregion``, one can refer to any area of the level, regardless of the placement of the current MAP in the level.  

AUTHOR

Jean-Christophe Collet, David Cohrs.  

SEE ALSO

dgn_comp(6), nethack(6)  

BUGS

Probably infinite. Most importantly, still needs additional bounds checking.

mach32info

NAME

mach32info - read out configuration information of a Mach32  

SYNOPSIS

mach32info {info|force}

 

DESCRIPTION

mach32info prints out almost all the info about your mach32 card from configuration registers and Mach32 EEPROM. It also measures the Mach32 clocks. A completely idle system is required when these measurements are being performed. During these measurements, the video signals will be screwed up for about 3-4 seconds.

If your monitor does not switch off when getting a video signal it can`t stand (fixed freq. monitors) better switch it off before starting mach32info. Your computer will beep when it is finished probing. You can redirect the `stdout` of mach32info to some file for viewing the results easier or mailing them.

Do not redirect `stderr` as you won`t hear the beep.

This tool is part of svgalib. Although it`s output maybe useful to debug Xfree86 Mach32 Servers, I am NOT related to Xfree86! Please do not send me (Michael Weller) any Xfree86 bug reports! Thanx in advance.

Note that this tool comes without any warranty! Use it at your own risk!

Warning, this tool does not check for VC changes etc.. Just let it run in its own virtual console as root and don`t try to fool it. Actually this is due to it not using svgalib at all but simply accessing the Mach32.

Please report any problems with running mach32info or with configuring the svgalib(7)`s Mach32 driver to Michael Weller <eowmob@exp-math.uni-essen.de>. Include the results from running this test with your report.

 

OPTIONS

info
print out the configuration information. Without info mach32info prints a usage message (looking almost like this manpage ;-)).
force
The force option disables the sanity check that tries to detect the presence of the mach32 prior to printing the information.

Do not use this option unless you are really, really sure that you have a Mach32 compatible vga card installed.

This utility is part of svgalib and can be found in the mach32/ subdirectory of the original svgalib distribution. However, it is not installed by default, s.t. it is unclear where you can find it if your svgalib was install by a linux distribution.

In case of any such problem, simply get an svgalib distribution from the net. You don`t need to install it. Just make in the mach32/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), svgalib.mach32(7), vgagl(7), libvga.config(5).

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. He also wrote the referenced utility as well as of the original documentation.

mousetest

NAME

mousetest - tests the svgalib mouse driver  

SYNOPSIS

mousetest

 

DESCRIPTION

A simple program to test mouse functionality. This uses basic VGA functionality (or an svga mode you specify, you should stick to 256 color modes).

The proper setup mouse should move the cursor (drawing spots in the current color). Left button changes color, right button (or <Ctrl>-C) aborts.

You can set a videomode to use by setting the environment variable SVGALIB_DEFAULT_MODE to a number (see vgatest for a list) or a string like G0x1x2 where you replace 0 with desired x resolution, 1 with the desired y rez, and 2 with the desired number of colors (2, 16, 256, 32K, 64K, 16M, 16M4). Again, only certain choices are available, see vgatest for a list.

In case nothing is selected, G320x200x256 is choosen.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

plane

NAME

plane - draw a 3 dimensional plane  

SYNOPSIS

plane

 

DESCRIPTION

A greyscale-shaded rendered-on-the-fly turbo-prop that you can rotate and scale however you like.

The demo prompts your for a mode to be used and several details. Just follow the instructions on the screen and make your selections.

Once the program runs you can use the following keys:

<Q> and <A>, <Z> and <X>, <O> and <P>
to rotate the plane around the space axes.
<T> and <V>, <F> and <G>, <W> and <S>
to move up, down, north, south, east, west. (world view only)
<Space>
to toggle rendering vs. wire frame.
<W> and <S>
to scale in non-world view compilation -- see plane.h
<1> and <2>
to change rotation increment.
<3> through <9>
to change surface density.
<R>
to change shading method.
<C>
to quit the program.
<I>
to reset the rotation to the startup values.

This demo is part of svgalib and can be found in the threeDkit/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the threeDkit/ subdirectory. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), triangle(3), striangle(3), wtriangle(3), swtriangle(3), trisetcolorlookup(3), trigetcolorlookup(3), trisetdrawpoint(3), threedkit(7), vgatest(6), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The demos, the initial documentation and the whole threedkit stuff was done by Paul Sheer <psheer@icon.co.za>.

Paper mail:

Paul Sheer
P O BOX 890507
Lyndhurst
Johannesburg 2106
South Africa

Donations (by check or postal order) will be appreciated and will encourage further development of this software. However this is strictly on a voluntary basis where this software falls under the GNU LIBRARY GENERAL PUBLIC LICENSE.

recover

NAME

recover - recover a NetHack game interrupted by disaster  

SYNOPSIS

recover [ -d directory ] base1 base2 ...  

DESCRIPTION

Occasionally, a NetHack game will be interrupted by disaster when the game or the system crashes. Prior to NetHack v3.1, these games were lost because various information like the player`s inventory was kept only in memory. Now, all pertinent information can be written out to disk, so such games can be recovered at the point of the last level change.

The base options tell recover which files to process. Each base option specifies recovery of a separate game.

The -d option, which must be the first argument if it appears, supplies a directory which is the NetHack playground. It overrides the value from NETHACKDIR, HACKDIR, or the directory specified by the game administrator during compilation (usually /usr/games/lib/nethackdir).

For recovery to be possible, nethack must have been compiled with the INSURANCE option, and the run-time option checkpoint must also have been on. NetHack normally writes out files for levels as the player leaves them, so they will be ready for return visits. When checkpointing, NetHack also writes out the level entered and the current game state on every level change. This naturally slows level changes down somewhat.

The level file names are of the form base.nn, where nn is an internal bookkeeping number for the level. The file base.0 is used for game identity, locking, and, when checkpointing, for the game state. Various OSes use different strategies for constructing the base name. Microcomputers use the character name, possibly truncated and modified to be a legal filename on that system. Multi-user systems use the (modified) character name prefixed by a user number to avoid conflicts, or "xlock" if the number of concurrent players is being limited. It may be necessary to look in the playground to find the correct base name of the interrupted game. recover will transform these level files into a save file of the same name as nethack would have used.

Since recover must be able to read and delete files from the playground and create files in the save directory, it has interesting interactions with game security. Giving ordinary players access to recover through setuid or setgid is tantamount to leaving the playground world-writable, with respect to both cheating and messing up other players. For a single-user system, this of course does not change anything, so some of the microcomputer ports install recover by default.

For a multi-user system, the game administrator may want to arrange for all .0 files in the playground to be fed to recover when the host machine boots, and handle game crashes individually. If the user population is sufficiently trustworthy, recover can be installed with the same permissions the nethack executable has. In either case, recover is easily compiled from the distribution utility directory.  

NOTES

Like nethack itself, recover will overwrite existing savefiles of the same name. Savefiles created by recover are uncompressed; they may be compressed afterwards if desired, but even a compression-using nethack will find them in the uncompressed form.  

SEE ALSO

nethack(6)  

BUGS

recover makes no attempt to find out if a base name specifies a game in progress. If multiple machines share a playground, this would be impossible to determine.

recover should be taught to use the nethack playground locking mechanism to avoid conflicts.

speedtest

NAME

speedtest - tests the speed of memory access under svgalib  

SYNOPSIS

speedtest

 

DESCRIPTION

Video memory speed tester. Selects the given mode and makes linear screen accesses. Prints the overall run time of the test and deduces the speed with which the CPU can transfer data to the cards memory.

The demo gives a list of modes supported and prompts your for an integer indentifying the mode to test.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

svidtune

NAME

svidtune - tunes svgalib modes  

SYNOPSIS

svidtune mode

 

DESCRIPTION

mode is an svgalib mode number for the mode to be tuned. The number of colours is irrelevant, but the mode must be supported by the hardware.

svidtune displays the mode timing parameters, and a rectangle around the screen. You can then adjust the parameters to have the display tuned properly.

Please note that modelines (and this program) only affects display when the driver uses the timing.c interface. Specifically, it has no affect on the VESA driver.

 

KEYS

l,r,d,u move the displayed portion of the screen left, right, down or up.

w,n increase or decrease the screens horizontal size.

s,o increase or decrease the screens vertical size.

p print the current modeline to the standard error.

P print the current modeline to the config file, so it will be used by svgalib from now on.

q quit

 

BUGS

The program does not test that the modes remain within the monitor limits.

 

SEE ALSO

vga_getcurrenttiming(3), vga_changecurrenttiming(3), libvga.config(5)

 

AUTHOR

This man page was written by Matan Ziv-Av.

testgl

NAME

testgl - test the vgagl library  

SYNOPSIS

testgl

 

DESCRIPTION

Demo program for vgagl(7) framebuffer library. Runs in any mode preset from the environment.

First draws pixels in random locations, then random boxes, then random lines and finally some bit image in random locations (all just over the previous drawings).

Then the test is repeated clipping the screen output to a smaller screen portion (using a vgagl(7) function). Finally a (lousy) `rotating` linux logo is shown in the top left quadrant and then is drawn over the whole screen. Depending on internal development state of svgalib, it may use an accelerator for some of the functions.

You can set a videomode to use by setting the environment variable SVGALIB_DEFAULT_MODE to a number (see vgatest for a list) or a string like G0x1x2 where you replace 0 with desired x resolution, 1 with the desired y rez, and 2 with the desired number of colors (2, 16, 256, 32K, 64K, 16M, 16M4). Again, only certain choices are available, see vgatest for a list.

In case nothing is selected, G320x200x256 is choosen.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

threed

NAME

threed - The svgalib 3d demo  

SYNOPSIS

3d

 

DESCRIPTION

Well, the 3d demo...

I, Michael, the current svgalib maintainer, do not have any source for it.

Thus, you may experience weird problems with new svgalib versions and you need installed a.out libc and svgalib versions. Also the demo is known to be buggy in several aspects. Thus, do not panic if it appears not to work for you.

If it works in a certain mode for you be happy and play around with it. For example, with recent svgalibs, 3d is unable to initialize the mouse if not started directly in a linux console for unknown reasons.

Otherwise: Don`t worry at all.

 

Here`s the author`s (Harm`s) info about it:

There`s also a 3d demo binary included in this directory. It has been in a similar state for several months now, but I`m planning to get some work done (although it probably won`t be the amazing multi-player networked 3D lightsource-shaded real-time VGA virtual reality simulation). I`ll release the source code at some point (when it has some degree of flexibility). I`m sorry that there`s no scene description file; it will come. So now you know you can do this kind of thing in Linux. And it`s practically 100% C code.

You can set the graphics mode to be used with the SVGALIB_DEFAULT_MODE environment variable (e.g. G640x480x256). All linear 256 color, 32K color and 16M color modes are supported, with page flipping used if available. Planar 256 color VGA modes also work. This should do 800x600 full screen 3D animation at near 10 fps with a good system. Request: Please report if page flipping goes wrong on a particular chipset (e.g. ET4000, Trident) in 320x200x256. Also 32-bit pixel truecolor modes don`t work correctly, this will be fixed. The user interface is somewhat primitive at this point:

- Use the mouse to rotate.
- Left button accelerates, right decelerates.
- Press <W> to move upwards, <S> to go down again.
- Use <R> and <F> to control the zoom factor.
- <q> or <Ctrl>-C exits.

Note that the light source rotates quickly at an infinite distance. This is not something that will easily occur naturally (as far as I know)...

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

BUGS

Countless.
In addition, source is still not available. Sorry, I just don`t have it.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The demo and most of it`s documentation is due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.

wrapdemo

NAME

wrapdemo - demonstrates surface wrapping of pixmaps  

SYNOPSIS

wrapdemo

 

DESCRIPTION

Demonstrates surface wrapping of pixmaps by wrapping a picture or Susanna Rubens around a 3-dimensional ball.

The demo prompts your for a mode to be used and several details. Just follow the instructions on the screen and make your selections.

Once the program runs you can use the following keys:

<Q> and <A>, <Z> and <X>, <O> and <P>
to rotate the plane around the space axes.
<T> and <V>, <F> and <G>, <W> and <S>
to move up, down, north, south, east, west. (world view only)
<Space>
to toggle rendering vs. wire frame.
<W> and <S>
to scale in non-world view compilation -- see plane.h
<1> and <2>
to change rotation increment.
<3> through <9>
to change surface density.
<R>
to change shading method.
<C>
to quit the program.
<I>
to reset the rotation to the startup values.

This demo is part of svgalib and can be found in the threeDkit/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won`t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don`t need to install it. Just make in the threeDkit/ subdirectory. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), triangle(3), striangle(3), wtriangle(3), swtriangle(3), trisetcolorlookup(3), trigetcolorlookup(3), trisetdrawpoint(3), threedkit(7), vgatest(6), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), plane(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. The demos, the initial documentation and the whole threedkit stuff was done by Paul Sheer <psheer@icon.co.za>.

Paper mail:

Paul Sheer
P O BOX 890507
Lyndhurst
Johannesburg 2106
South Africa

Donations (by check or postal order) will be appreciated and will encourage further development of this software. However this is strictly on a voluntary basis where this software falls under the GNU LIBRARY GENERAL PUBLIC LICENSE.

zic2xpm

NAME

zic2xpm - Tool to convert ZIICS chess pieces into XBoard (XPM/XIM) pieces.  

SYNOPSIS

zic2xpm file1 [file2 ...]  

DESCRIPTION

zic2xpm converts one or more ZIICS piece files into a format that can be used by XBoard. If you give more than one filename, be aware that multiple sets of the same size cannot exist in one directory. Multiple sets of different sizes can exist in a single directory.  

EXAMPLE

If you wanted to make a directory containing the sets SET2.V32, SET2.V40, SET2.V50, and SET2.V56, all of which are located in ~/ziics, you could do:

mkdir Sets cd Sets zic2xpm ~/ziics/SET2.*

You would then run XBoard like this:

xboard -pixmap Sets

 

BUGS

Please report any bugs to frankm@hiwaay.net  

SEE ALSO

.BRxboard(6).  

AUTHOR

Frank McIngvale (frankm@hiwaay.net)  

COPYING

Copyright (C) 1996 Free Software Foundation, Inc.

NOTICE: The piece images distributed with ZIICS are copyrighted works of their original creators. Images converted with zic2xpm may not be redistributed without the permission of the copyright holders. Do not contact the authors of zic2xpm or of ZIICS itself to request permission.

NOTICE: The format of the ZIICS piece file was gleaned from SHOWSETS.PAS, a part of ZIICS. Thanks to Andy McFarland (Zek on ICC) for making this source available! ZIICS is a completely separate and copyrighted work of Andy McFarland. Use and distribution of ZIICS falls under the ZIICS license, NOT the GNU General Public License.

NOTICE: The format of the VGA imageblocks was determined by experimentation, and without access to any of Borland Inc.`s BGI library source code.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. However, the above notices MUST BE RETAINED in any copy that you redistribute or modify.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.


Please review our Privacy Policy
and Terms of Use .