Use embedded Linux and open-source software to build a networked audio appliance.
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.
It runs on computers based on the 32-bit Intel x86 architecture, or on 64-bit AMD processors in 32-bit mode.
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 .
WikiLeaks is currently in the news because its Afghan War logs comprise one of the largest and most controversial intelligence leaks to date.
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 ...
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.
Marvell announced the availability of an open source installer, simplifying software deployment on its Linux-based Plug Computer reference design.
July 28, 2010, 09:59 AM - Computerworld - Google on Monday patched five vulnerabilities in Chrome by issuing a new "stable" build of the browser.
| Browse in : |
All
> Documents
> Man Pages
> Games (40)
|
accel
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:
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):
The bit ordering for bitmaps is a bit weird. Please check that the digits are not mirrored or flipped.
After this screen, you`ll have to hit <Return> to continue.
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:
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.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
The test lasts about 5 seconds and some statistics are printed to stdout.
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.
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)
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>.
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.
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
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.
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.
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.
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.
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:
A brief description of each bad superflag with the flag`s code in parentheses:
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.
The following game styles are recommended starting points.
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.
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.
MrApathyCream 335 +- 10ms Gerbol 210 +- 3ms captain_macgyver 155 +- 0ms 12% lost/ooo
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
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 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
Log in to a registered callsign
Changes your password
Kicks off an impersonating player or ghost
Lists the available user groups
Lists the permissions for each group
Lists the groups that a registered user is a member of
Add a user to a group
Remove a user from a group
Reloads the user, group, and password files (for synchronization between multiple servers on the same machine)
With an argument, it deregisters another user`s callsign. Without, it removes your own registration.
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.
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.
If there is a poll active, this will cancel the poll. By default, you must be an admin to veto a poll.
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
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.
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.
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).
List the contents of the archive `foo`:
dlb tf foo
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
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.
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)
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.
Visit official homepage: http://www.frozen-bubble.org/
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.
keytest
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.
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)
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.
testlinear
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.
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)
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 [-j joystick] [[-m] video 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.
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.
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).
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 [ -d directory ] -s [ -v ] [ -p profession (role) ] [ -r race ] [ playernames ]
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.
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.
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.
In addition, SHOPTYPE is used in debugging (wizard) mode.
dgn_comp(6), lev_comp(6), recover(6)
Probably infinite.
Dungeons & Dragons is a Trademark of Wizards of the Coast, Inc.
printftest x y
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.
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)
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
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.
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)
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
Button bindings are:
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.
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)
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 [ -nowait ] [ { all | videomodes... } ]
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:
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.
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)
This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. He also wrote thise demo and it`s documentation.
testlinear
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.
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)
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
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 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.
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)
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 - X graphical user interface for chess
xboard [options]
xboard -ics -icshost hostname [options]
xboard -ncp [options]
|pxboard
cmail [options]
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.
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.
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.
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.
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.
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.
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.)
<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).
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.
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.
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.
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.
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.
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.
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.)
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.
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`).
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.
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.
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
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
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.
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 [linear]
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.
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)
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.
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.
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.
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.
The URL specified should point to the bzfls script through your web server.
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.
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.
If no arguments are given, it reads standard input.
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.
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.
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.
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.
M. Stephenson (from the level compiler by Jean-Christophe Collet).
Probably infinite.
eventtest
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.
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)
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.
fun
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.
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)
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 number
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.
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).
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.
If no arguments are given, it reads standard input.
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.
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
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.
Jean-Christophe Collet, David Cohrs.
Probably infinite. Most importantly, still needs additional bounds checking.
mach32info {info|force}
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.
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.
svgalib(7), svgalib.mach32(7), vgagl(7), libvga.config(5).
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
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.
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)
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
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:
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.
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)
Paper mail:
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.
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.
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.
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
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.
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)
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 mode
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.
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
The program does not test that the modes remain within the monitor limits.
vga_getcurrenttiming(3), vga_changecurrenttiming(3), libvga.config(5)
This man page was written by Matan Ziv-Av.
testgl
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.
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)
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.
3d
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.
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.
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)
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
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:
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.
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)
Paper mail:
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.
mkdir Sets cd Sets zic2xpm ~/ziics/SET2.*
You would then run XBoard like this:
xboard -pixmap Sets
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.