fc-solve

title: fc-solve(6)

text:
# fc-solve(6)

## NAME
fc-solve - automated solver for Freecell and related Solitiare variants

## INTRODUCTION
This is Freecell Solver version 6.8.x, a program that automatically solves most layouts of Freecell, and similar Solitaire variants as well as those of Simple Simon.

Freecell Solver is distributed under the MIT/Expat License ( <http://en.wikipedia.org/wiki/MIT_License> ), a free, permissive, open-source license.

Note that the Freecell Solver source and Win32 binary distributions do not provide a graphical user-interface (GUI) and are primarily meant to be used by Solitaire researchers and software developers. If you’re looking for a suitable GUI based on Freecell Solver, see our links at:

<http://fc-solve.shlomifish.org/links.html#front_ends>

I hope you’ll enjoy using Freecell Solver, and make the best of it.

— Shlomi Fish ( <http://www.shlomifish.org/> )

## BUILDING
Read the file INSTALL.txt for information on how to do that.

## USAGE
The program is called "fc-solve". You invoke it like this:

```
fc-solve board_file
```

board_file is the filename with a valid Freecell startup board. The file is built as follows:

It has the 8 Freecell stacks.

Each stack contains its cards separated by a whitespace and terminated with a newline character( it’s important that the last stack will also be terminated with a newline !). The cards in the line are ordered from the topmost card (= the card right on the virtual table and the one with the most cards placed on it) in the left, to the bottommost card in the right (= the card with no other cards placed on it).

A card string contains the rank of the card followed by its suit. The card number is one of: A,1,2,3,4,5,6,7,8,9,T,J,Q,K. Alternatively, 10 can be used instead of T, but using that is discouraged and is only supported for backward compatibility. The card suit is one of: H,S,D,C (standing for Hearts, Spades, Diamonds and Clubs respectively).

Here is an example board: (PySol/Microsoft board No. 24)

```
4C 2C 9C 8C QS 4S 2H
5H QH 3C AC 3H 4H QD
QC 9S 6H 9H 3S KS 3D
5D 2S JC 5C JH 6D AS
2D KD TH TC TD 8D
7H JS KH TS KC 7C
AH 5S 6S AD 8H JD
7S 6C 7D 4D 8S 9D
```

Visually, it appears as this:

[Freecell Deal No. 24]

As can be seen, the four of clubs (4C), five of hearts (5H), etc. are at the bottom of the stacks and the start of the lines in the board input.

And another one: (PySol board No. 198246790)

```
KD JH 5H 7D 9H KC 9D
3H JD 5D 8H QH 7H 2D
4D 3S QC 3C 6S QS KS
TC 9S 6D 9C QD 8S TD
TS 8C 7S TH 2C AS
8D AC AH 4H JC 4C
6H 7C 4S 5S 5C JS
AD KH 6C 2H 3D 2S
```

Starting from Freecell Solver 3.14.x, a stack can also start with a leading colon (":"). This is to allow input from states as output by Freecell Solver using the -p option.

You can specify the contents of the freecells by prefixing the line with "FC:" or with "Freecells:". For example:

```
FC: 3H QC
```

will specify that the cards 3 of hearts and queen of clubs are present in the freecells. To specify an empty freecell use a "-" as its designator.

If there’s another "FC:" line, the previous line will be overridden.

You can specify the contents of the foundations by prefixing the line with "Founds:" or with "Foundations:" and then using a format as follows:

```
Founds: H-5 C-A S-0 D-K
```

Hence, the suit ID followed by a dash followed by the card number in the foundation. A suit that is not present will be assumed to be 0. Again, if there’s more than one line like that, then the previous lines will be ignored and overridden.

The program will stop processing the input as soon as it read 8 lines of standard stacks. Therefore, it is recommended that the foundations and freecells lines will come at the beginning of the file.

The program will process the board and try to solve it. If it succeeds it will output the states from the initial board to its final solution to the standard output. If it fails, it will notify it.

For information about the various command-line switches that Freecell Solver accepts, read the USAGE.txt file in this directory.

To solve Simple Simon boards append --game simple_simon right after the "fc-solve" program name.

## THE BOARD GENERATION PROGRAMS
Several programs which can generate the initial boards of various Freecell implementations can be found in the "board_gen/" sub-directory. Read the README.txt file there for details on how they can be compiled and used.

In any case, they can save you the time of inputting the board yourself.

## SOME COMPLETE EXAMPLES FOR LAYOUTS
A layout in the middle of the MS Freecell deal No. 109 solution:

```
Foundations: H-6 C-9 D-2 S-0
Freecells:  QS  3S  2S  KD
: 8H 3D
: KS QD JC
: AS 8D TD 7D JH TS 9D
: 7S 6D
: 5S
: KH QC JD TC 9H 8S 7H 6S 5D 4S
: KC QH JS TH 9S
: 4D
```

Similar, but with an empty Freecell:

```
Foundations: H-6 C-9 D-2 S-0
Freecells:  QS  3S  -  KD
: 8H 3D 2S
: KS QD JC
: AS 8D TD 7D JH TS 9D
: 7S 6D
: 5S
: KH QC JD TC 9H 8S 7H 6S 5D 4S
: KC QH JS TH 9S
: 4D
```

Likewise, only without leading colons where unnecessary:

```
Foundations: H-6 C-9 D-2 S-0
Freecells:  QS  3S  -  KD
8H 3D 2S
KS QD JC
AS 8D TD 7D JH TS 9D
7S 6D
5S
KH QC JD TC 9H 8S 7H 6S 5D 4S
KC QH JS TH 9S
4D
```

## HOW TO READ THE SOLUTIONS
The file USAGE.txt covers all of Freecell Solver’s command line options, but it may be too exhaustive for casual users. As a result, here is a shorter tutorial. First of all whenever invoking fc-solve one should add the flags -p -t -sam -sel which will make the solution easier to understand. Then, assuming the board could be successfully solved, one will be given the layouts in the solution (in the format given above) vis-a-vis with the moves as the string. Note that the indexes of the resources given in the moves are 0-based rather than the more natural 1-based notation.

## THE PROGRAMS
Most command-line switches have two versions:

•A short POSIX one which is a dash followed by a letter or a few. This option must come standalone and not clustered: -sam is not equivalent to specifying -s, -a and -m.

•A long switch which is two dashes followed by the command string. For example: --prelude, --st-name.

If command line arguments have parameters, they are followed in separate parameters - Freecell Solver won’t recognise a parameter preceded by an equal sign. --st-name=myname is invalid, while --st-name myname is OK.

### The Scope of the Options
The scope of the options is mentioned along with them. Options can be:

1.Global - affects all the soft-threads.

2.Instance-specific - affects an instance (separated by the --next-instance option below). Each instance consists of several flares.

3.Flare-specific - affects the current flare (separated by the --next-flare option below. Each flare consists of several hard threads.

4.Hard-thread-specific - affects the current hard thread (separated by the --next-hard-thread option below. Each hard thread consists of several soft threads.

5.Soft-thread-specific - affects only the current soft thread.

## GETTING HELP

### -h , --help
Global

This option displays a help text on the screen. This help gives a help display summarizing some ways to use the program and get more help.

### --version
Global

This option displays the version number of the components that make the executable (and then exits).

### --help-configs
Global

Some help on the various configurations of Freecell Solver.

### --help-options
Global

A help screen giving an overview of all available options.

### --help-real-help
Global

Explains how to change the default help screen to a different one.

### --help-short-sol
Global

How to generate shorter solutions.

### --help-summary
Global

The default help screen.

## OUTPUT OPTIONS

### -p , --parseable-output
Global

This option will display the columns in a format that can be more easily manipulated by text-processing programs such as grep or perl. Namely, The freecells will be displayed in one line, and the foundations in a separate line. Plus, Each column will be displayed horizontally, in its own line, while beginning with a :.

### -t , --display-10-as-t
Global

This option will display the 10 cards as a capital T instead of a 10. Thus, the cards will be more properly aligned.

For example, here is a command line using -p and -t:

```
$ pi-make-microsoft-freecell-board 24 | fc-solve -p -t
-=-=-=-=-=-=-=-=-=-=-=-
Foundations: H-0 C-0 D-0 S-0
Freecells:
: 4C 2C 9C 8C QS 4S 2H
: 5H QH 3C AC 3H 4H QD
: QC 9S 6H 9H 3S KS 3D
: 5D 2S JC 5C JH 6D AS
: 2D KD TH TC TD 8D
: 7H JS KH TS KC 7C
: AH 5S 6S AD 8H JD
: 7S 6C 7D 4D 8S 9D
====================
Foundations: H-0 C-0 D-0 S-A
Freecells:
: 4C 2C 9C 8C QS 4S 2H
: 5H QH 3C AC 3H 4H QD
: QC 9S 6H 9H 3S KS 3D
: 5D 2S JC 5C JH 6D
: 2D KD TH TC TD 8D
: 7H JS KH TS KC 7C
: AH 5S 6S AD 8H JD
: 7S 6C 7D 4D 8S 9D
```

### -c , --canonized-order-output
Global

Freecell Solver re-arranges the stacks and freecells in a given state according to their first card. It keeps their actual position in a separate place, but internally it uses their canonized place. Use this option, if you want Freecell Solver to display them in that order. One should be warned that that way the place of a given stack in the board will not be preserved throughout the solution.

### -m , --display-moves
Global

This option will display the moves instead of the intermediate states. Each move will be displayed in a separate line, in a format that is human-readable, but that can also be parsed and analyzed by a computer program with some effort on the programmer’s part.

For example:

```
$ pi-make-microsoft-freecell-board 24 | fc-solve -m | head -30
-=-=-=-=-=-=-=-=-=-=-=-
Move a card from stack 3 to the foundations
====================
Move a card from stack 6 to freecell 0
====================
Move a card from stack 6 to freecell 1
```

### -sn , --standard-notation
Global

This option will display the moves in standard notation in which every move consists of two characters and there are ten moves in a line. Naturally, this option will only become apparent if the display moves is specified. (it does not implicitly specify it, though).

For more information regarding standard notation refer to the following web-page:

<http://www.solitairelaboratory.com/solutioncatalog.html>

### -snx , --standard-notation-extended
Global

This option is similar to the previous one, except that when a sequence move is made to an empty stack with more than one card in the sequence, the move will be followed with "v" and the number of cards moved in hexadecimal.

### -sam , --display-states-and-moves
Global

This option will display both the intermediate states and the moves that are needed to move from one to another. The standard notation option applies to it to.

```
$ pi-make-microsoft-freecell-board 24 | fc-solve -sam -p -t | head -50
-=-=-=-=-=-=-=-=-=-=-=-
Foundations: H-0 C-0 D-0 S-0
Freecells:
: 4C 2C 9C 8C QS 4S 2H
: 5H QH 3C AC 3H 4H QD
: QC 9S 6H 9H 3S KS 3D
: 5D 2S JC 5C JH 6D AS
: 2D KD TH TC TD 8D
: 7H JS KH TS KC 7C
: AH 5S 6S AD 8H JD
: 7S 6C 7D 4D 8S 9D
====================
Move a card from stack 3 to the foundations
Foundations: H-0 C-0 D-0 S-A
Freecells:
: 4C 2C 9C 8C QS 4S 2H
: 5H QH 3C AC 3H 4H QD
: QC 9S 6H 9H 3S KS 3D
: 5D 2S JC 5C JH 6D
: 2D KD TH TC TD 8D
: 7H JS KH TS KC 7C
: AH 5S 6S AD 8H JD
: 7S 6C 7D 4D 8S 9D
====================
Move a card from stack 6 to freecell 0
Foundations: H-0 C-0 D-0 S-A
Freecells:  JD
: 4C 2C 9C 8C QS 4S 2H
: 5H QH 3C AC 3H 4H QD
: QC 9S 6H 9H 3S KS 3D
: 5D 2S JC 5C JH 6D
: 2D KD TH TC TD 8D
: 7H JS KH TS KC 7C
: AH 5S 6S AD 8H
: 7S 6C 7D 4D 8S 9D
====================
Move a card from stack 6 to freecell 1
```

### -pi , --display-parent-iter
Global

This option (assuming the -s and -i options are specified) will also display the iteration index of the state from which the current state was derived. This is especially useful for BeFS (so-called a-star) or BFS scans.

### -o [filename] , --output [filename]
Global

Outputs to a file instead of standard output. So for example:

```
$ fc-solve -o 2405.solution.txt 2405.board
```

Will put the solution to the file in 2405.board in the file 2405.solution.txt . This will also be done using:

```
$ fc-solve --output 2405.solution.txt 2405.board
```

### -sel , --show-exceeded-limits
Global

This option will display a different status message ("Iterations count exceeded.") instead of "I could not solve this game." in case the iterations count was exceeded. This is recommended because the "I could not solve this game." message can also mean that the entire game graph was fully traversed (within the limitations of the specified moves' types) and so no solution is possible.

This option is not the default, to retain compatibility with previous versions of Freecell Solver, and was added in version 3.12.0 of fc-solve.

### -hoi , --hint-on-intractable
Global

Presents the moves to the intermediate reached state, if the maximal number of iterations was reached without a conclusion (= "intractable").

This option is not the default, to retain compatibility with previous versions of Freecell Solver, and was added in version 4.20.0 of fc-solve.

## GAME VARIANTS OPTIONS

### --freecells-num [Number of Freecells]
Global

This option specifies the number of freecells which are available to the program. Freecell Solver can use any number of freecells as long as it does not exceed its maximal number.

This maximum is hard-coded into the program, and can be specified at compile-time by modifying the file config.h. See the file INSTALL (or alternatively INSTALL.html) for details.

### --stacks-num [Number of Stacks]
Global

This option specifies the number of stacks present in the board. Again, this number cannot exceed the maximal number of stacks, which can be specified in the file config.h during compile-time of Freecell Solver.

### --decks-num [Number of Decks]
Global

This options specifies how many decks are found in the board. This number cannot exceed the maximal number of decks, which can be specified by the Freecell Solver build system.

### --sequences-are-built-by {suit|alternate_color|rank}
Global

This option specifies whether a card sequence is built by suit or by alternate colour or by rank regardless of suit.

### --sequence-move {limited|unlimited}
Global

This option specifies whether the sequence move is limited by the number of freecells or vacant stacks or not.

### --empty-stacks-filled-by {kings|none|all}
Global

Specifies which cards can fill an empty stack.

### --game [game] , --preset [game] , -g [game]
Global

Specifies the type of game. Each preset implies several of the settings options above and sometimes even the moves’ order below. The default configuration is for Freecell.

Available presets:

bakers_dozen

Baker’s Dozen

bakers_game

Baker’s Game

beleaguered_castle

Beleaguered Castle

citadel

Citadel

cruel

Cruel

der_katz

Der Katzenschwanz

die_schlange

Die Schlange

eight_off

Eight Off

fan

Fan

forecell

Forecell

freecell

Freecell (default)

good_measure

Good Measure

ko_bakers_game

Kings' Only Baker’s Game

relaxed_freecell

Relaxed Freecell

relaxed_sehaven

Relaxed Seahaven Towers

seahaven

Seahaven Towers

simple_simon

Simple Simon

streets_and_alleys

Streets and Alleys

Note: in order to solve Der Katzenschwanz and Die Schlange I recommend you compile Freecell Solver with the INDIRECT_STACK_STATES option, or else it will consume much more memory. For details consult the file INSTALL.

### Examples
To solve PySol Eight Off game No. 1,000 type:

```
$ make_pysol_freecell_board.py 1000 eight_off | fc-solve -g eight_off
```

To solve PySol Baker’s Game No. 50, type:

```
$ make_pysol_freecell_board.py 50 bakers_game | fc-solve -g bakers_game
```

If you want to solve a game similar to Freecell only with sequences built by rank, and unlimited sequence move, do:

```
$ fc-solve -g freecell --sequences-are-built-by rank --sequence-move unlimited
```

## SOLVING ALGORITHM OPTIONS

### -mi [Iterations num] , --max-iters [Iterations num]
Global

This parameter limits the maximal number of states to check. This will give a rough limit on the time spent to solve a given board.

### -md [Maximal depth] , --max-depth [Maximal depth]
Not currently implemented

Freecell Solver recurses into the solution. This parameter specifies a maximal recursion depth. Generally speaking, it’s not a good idea to set it, because that way several important intermediate states may become inaccessible.

### -mss [num] , --max-stored-states [num]
Global

Limits the number of the states stored by the program in the computer’s memory. This differs from the maximal number of iterations in the sense, that it is possible that a stored state was not checked yet.

### -tmss [num] , --trim-max-stored-states [num]
Instance-wide

This also limits the number of trimmed stored states, but this time will try to trim them once the limit has been reached (which is time consuming and may cause states to be traversed again in the future).

### -to [Moves’ Order] , --tests-order [Moves Order]
Soft-thread-specific

This option specifies the order in which Freecell Solver will try the different types of moves (formerly termed "tests") that it can perform. Each move is specified by one character, and they are performed in the order in which they appear in the parameter string. You can omit moves by not including their corresponding characters in the string.

The moves along with their characters are:

Freecell Moves:

0

put top stack cards in the foundations.

1

put freecell cards in the foundations.

2

put freecell cards on top of stacks.

3

put non-top stack cards in the foundations.

4

move stack cards to different stacks.

5

move stack cards to a parent card on the same stack.

6

move sequences of cards onto free stacks.

7

put freecell cards on empty stacks.

8

move cards to a different parent.

9

empty an entire stack into the freecells.

j

put freecell cards on empty stacks and right away put cards on top.

Atomic Freecell Moves:

A

move a stack card to an empty stack.

B

move a stack card to a parent on a different stack.

C

move a stack card to a freecell.

D

move a freecell card to a parent.

E

move a freecell card to an empty stack.

Simple Simon Moves:

a

move a full sequence to the foundations.

b

move a sequence to a true parent of his.

c

move a whole stack sequence to a false parent (in order to clear the stack)

d

move a sequence to a true parent that has some cards above it.

e

move a sequence with some cards above it to a true parent.

f

move a sequence with a junk sequence above it to a true parent that has some cards above it.

g

move a whole stack sequence to a false parent which has some cards above it.

h

move a sequence to a parent on the same stack.

i

move any sequence to a false parent (using it may make the solution much slower).

Manipulating the moves order can be very helpful to the quick solution of a given board. If you found that a certain board cannot be solved in after a long time or in a certain maximal number of iterations, you should try different moves' orders. Usually, one can find a moves order that solves a board very quickly.

Note that this moves order usually makes sense only for the Soft-DFS and Random DFS scans (see the --method option below).

Also note that Freecell moves are not suitable for solving Simple Simon games and Simple Simon moves are not suitable for solving anything except Simple Simon.

Moves can be grouped together into groups using parenthesis (e.g: "(0123)") or square brackets ("[012][3456789]"). Such grouping is only relevant to the Random DFS scan (see below). A group may optionally be followed by the equal sign "=" and by an ordering specifier. If one specifies "=rand()", then the derived states will be randomised based on the seed (which is what happens if no equal sign is specified). On the other hand, if one specifies something like "=asw(5,0,5,0,0,5)", then the numbers inside the parentheses will be treated as weights for the same ordering function used by the -asw flag (see below).

If the order specifier is "=all()" then all the moves in the group will be run, even if some derived states have been yielded by earlier moves in the group. ( This was added in version 5.24.0. )

### -dto2 [Min Depth],[Moves' Order] , --depth-tests-order2 [Min Depth],[Moves' Order]
Soft-thread-specific

Sets the Moves' order starting from the minimal depth onwards. This way, if a Soft-DFS scan recurses deeply into the game, it will use a different moves' order.

Note that if you set the moves' order of a minimal depth of say 50, then it will override all the moves' order of 50 and above. As a result, it is recommended that you set the minimal depth moves order in an increasing depth.

It should be noted that the -to or --tests-order option above is equivalent to using this option with a minimal depth of 0.

Here are some examples:

```
-to 0123456789 -dto2 30,0138924567
```

This sets the moves' order to 0123456789 for all depths below 30 and to 0138924567 for all depths above it.

```
-to 0123457 -dto2 10,750123 -dto2 25,710235
```

This sets the moves' order to 0123457 for depths -9 (those below 10), to 750123 for depths 10-24, and to 710235 for the depths 25 onwards.

```
-to 0123457 -dto2 "10,[012357]=asw(1)"
```

This sorts the moves starting from 10 onward based on the asw() function.

```
-to 0123457 -dto2 "10,[012357]=rand()"
```

This randomises the moves from 10 onward.

```
-to 0123457 -dto2 "10,[012357]"
```

This does the same thing as the previous example.

Note : This option should be used instead of the older -dto option given below which mutilates the moves order parameter and is still provided for backward compatibility.

### -dto [Min Depth],[Moves' Order] , --depth-tests-order [Min Depth],[Moves' Order]
This is equivalent to specifying -dto2 [Min Depth],[Min Depth],[Moves' Order] - i.e: the "[Min Depth]," string is prefixed to the given moves order.

This option is provided for backward compatibility with older versions of Freecell Solver.

### -me [Solving Method] , --method [Solving Method]
Soft-thread-specific

This option specifies the solving method that will be used to solve the board. Currently, the following methods are available:

•a-star - A Best-First-Search scan (not "A*" as it was once thought to be)

•bfs - A Breadth-First Search (or BFS) scan

•dfs - A Depth-First Search (or DFS) scan

•random-dfs - A randomized DFS scan

•patsolve - uses the scan of patsolve.

•soft-dfs - A "soft" DFS scan

Starting from recent Freecell Solver versions there is no difference between dfs and soft-dfs. In earlier versions, use of soft-dfs is recommended. random-dfs is similar to soft-dfs only it determines to which states to recurse into randomly. Its behaviour will differ depending on the seed you supply to it. (see the "-seed" option below.)

BFS does not yield good results, and a-star has a mixed behaviour, so for the time being I recommend using Soft-DFS or Random-DFS.

The Random-DFS scan processes every moves' random group, randomizes the states that it found and recurses into them one by one. Standalone moves that do not belong to any group, are processed in a non-random manner.

### -asw [BeFS Weights] , --a-star-weight [BeFS Weights]
Soft-thread-specific

Specify weights for the a-star (= "Best-First Search") scan, assuming it is used. The parameter should be a comma-separated list of numbers, each one is proportional to the weight of its corresponding test.

The numbers are, in order:

1.The number of cards out.

2.The maximal sequence move.

3.The number of cards under sequences.

4.The length of the sequences which are found over renegade cards.

5.The depth of the board in the solution.

6.The negative of the number of cards that are not placed above their parents. To get the irreversibility depth, give equal weight to this weight and to the number of cards out.

The default weights are respectively: {0.5, 0, 0.3, 0, 0.2, 0}

### -seed [Seed Number]
Soft-thread-specific

Specifies a seed to be used by Freecell Solver’s internal random number generator. This seed may alter the behaviour and speed of the random-dfs scan.

### --set-pruning [Pruning] , -sp [Pruning]
Soft-thread-specific

This option sets the pruning algorithm for the soft thread. Current valid values are only the empty string ("") for no pruning and r:tf (short for "Run: to foundations") for Horne’s rule. See:

<https://groups.yahoo.com/neo/groups/fc-solve-discuss/conversations/topics/214>

### -opt , --optimize-solution
Flare-wide

This option instructs Freecell Solver to try and optimize the solution path so it will have a smaller number of moves.

### -opt-to [moves order] , --optimization-tests-order [moves order]
Flare-wide

This argument specifies the moves order for the optimization scan, in case it should be different than an order that contains all the moves that were used in all the normal scans.

### --reparent-states
Flare-wide

This option specifies that states that were encountered whose depth in the states graph can be improved should be reparented to the new parent. This option can possibly make solutions shorter.

### --calc-real-depth
Flare-wide

This option becomes effective only if --reparent-states is specified. What it does, is explicitly calculate the depth of the state by tracing its path to the initial state. This may make depth consideration more accurate.

### --patsolve-x-param [pos],[value]
Soft-thread-specific

Sets the patsolve’s scan X param (an integer) in position "pos" into "value".

Examples:

```
--patsolve-x-param 0,5
--patsolve-x-param 2,100
```

### --patsolve-y-param [pos],[value]
Soft-thread-specific

Sets the patsolve Y param (a floating point number) in position "pos" into "value".

Examples:

```
--patsolve-y-param 0,0.5
--patsolve-y-param 1,103.2
```

## RUNNING SEVERAL SCANS IN PARALLEL
Starting from Version 2.4.0, Freecell Solver can run several scans in parallel on the same state collection. Each scan resides in its own "Soft Thread". By specifying several soft threads on the command line one can create and run several task-switched scans. Once one of the scans reaches a solution, the solution will be displayed.

### -nst , --next-soft-thread
Hard-thread-specific

This option creates a new soft-thread and makes the following scan-specific options initialize it. For example:

```
$ fc-solve --method a-star -nst --method soft-dfs -to 0123467 myboard.txt
```

will run an BeFS scan and a Soft-DFS scan with a moves order of 0123467 on myboard.txt.

### -step [Step] , --soft-thread-step [Step]
Soft-thread-specific

This option will set the number of iterations with which to run the soft thread before switching to the next one. By specifying a larger step, one can give a certain scan a longer run-time and a higher priority.

Note: after some experimentation, we have concluded that the --prelude option normally yields better results, but -step can be used as a fallback.

### -nht , --next-hard-thread
Flare-wide

This argument lets one initialize the next hard thread. If Freecell Solver was compiled with such support, then it is possible to run each hard thread in its own system thread. Each hard-thread contains one or more soft threads.

### --st-name [soft thread name]
Soft-thread-specific

This argument sets the name used to identify the current soft thread. This name can later be used to construct the prelude (see below).

### --prelude [\i1@st1{,\i2@st2{,\i3@st3...}}]
Hard-thread-specific

Sets the prelude for the hard thread. At the beginning of the search, the hard thread plays a static sequence of iterations at each of the soft threads specified in the prelude, for the number of iterations specified.

For example, if you had three soft threads named "foo", "bar" and "rin", then the following prelude:

```
--prelude 500@foo,1590@bar,100@foo,200@rin
```

Will run 500 iterations in "foo", then 1590 in "bar", then 100 in "foo" again, and then 200 in "rin". After the prelude finishes, the hard thread would run the scans one after the other in the sequence they were defined for their step number.

### --scans-synergy {none|dead-end-marks}
Flare-wide

Specifies the synergy between the various scans, or how much they cooperate between themselves. none means they do not cooperate and only share the same memory resources. dead-end-marks means they try to mark states that they have withdrawn from, and states whose all their derived states are such, as "dead ends". This may or may not improve the speed of the solution.

### -ni , --next-instance
Global

This option allows one to run two or more separate solvers one after the other. If the first one returned an unsolvable verdict, then the second one would run and so on. One use of it is to run an atomic moves scan after a meta-moves scan, so we will always get an accurate verdict and still enjoy some of the speed benefits of the meta-moves scan.

### -nf , --next-flare
Instance-wide

Each instance contains several flares. Flares are various alternative scans, that are ran one after another, as specified in the --flares-plan below or defaulting to running only the first flare (which isn’t very useful). Out of all the flares that are successful in solving a board, Freecell Solver picks the one with the shortest solution.

### --flare-name [flare name]
Flare-wide

This is a name that identifies the flare for use in the flares' plan.

### --flares-plan [flare plan]
Instance-wide

This instance-wide parameter gives a plan for the flares as a big string. Here are some examples:

```
--flares-plan "RunIndef:FlareyFlare"
```

This plan will run the flare with the name FlareyFlare indefinitely, until it terminates. Once a RunIndef action is encountered, the rest of the plan is ignored.

```
--flares-plan "Run:500@MyFlare,Run:2000@FooFlare"
```

Runs MyFlare for 500 iterations and FooFlare for 2,000 iterations. Note that both flares will be run and won’t share any resources between them, and then the minimal solution out of both flares (or only those that finished ). If no flares finished, then Freecell Solver will run them both again for the same number of iterations each, until at least one finishes (or it ran out of the iterations' limit).

```
--flares-plan "Run:500@dfs,Run:1500@befs,CP:,Run:10000@funky"
```

This runs the flares identified by dfs and befs and then see if a solution was reached ("CP:" stands for "checkpoint"), and if so yield it. If both flares did not reach a solution yet, or failed to solve the board, it will run the flare funky for 10,000 iterations and yield its solution. And like the previous case, this solution will loop after it ended for as long as the no flare solved the board or the program did not run out of iterations.

Using checkpoints one can yield a possibly sub-optimal (as far as solution length is concerned) solution that will still solve faster than letting all the flares run.

### --flares-choice [choice]
Global

This dictates how to choose the winning flare based on if more than one yielded a solution. Possible options are:

1.--flares-choice fc_solve - the default, which picks up the solutions based on the length of the solution in Freecell Solver’s moves.

2.--flares-choice fcpro - picks up the shortest solution based on the number of Freecell Pro moves, while not considering implicit moves to the foundations using Horne’s Prune / Raymond Prune.

### -fif [factor] , --flares-iters-factor [factor]
Global

Sets a global, floating-point number, factor to multiply all the iterations counts in the flares plans. The higher it is, the longer the scans will take, but there is a greater chance more of them will succeed, and, as a result, the solution may be shorter.

As an example, the following:

```
--flares-plan "Run:500@MyFlare,Run:2000@FooFlare" --flares-iters-factor 2
```

Is equivalent to:

```
--flares-plan "Run:1000@MyFlare,Run:4000@FooFlare"
```

while:

```
--flares-plan "Run:500@MyFlare,Run:2000@FooFlare" --flares-iters-factor 0.5
```

Is equivalent to:

```
--flares-plan "Run:250@MyFlare,Run:1000@FooFlare"
```

### --cache-limit [cache limit]
Global

This is a numeric limit to the LRU cache which only matters if Freecell Solver was compiled with FCS_RCS_STATES enabled. This value should be a positive integer and the higher it is, the more quickly it is likely that Freecell Solver will run, but it will also consume more memory. (The entire point of FCS_RCS_STATES is to conserve memory).

## META-OPTIONS

### --reset
Global

This option resets the program to its initial state, losing all the configuration logic that was input to it up to that state. Afterwards, it can be set to a different configuration, again.

### --read-from-file [num_skip,]filename
Global (but context-specific).

This option will read the configuration options from a file. The format of the file is similar to that used by the UNIX Bourne Shell. (i.e: spaces denote separate arguments, double-quotes encompass arguments, backslash escapes characters).

The filename can be preceded by an optional number of the arguments to skip followed by a comma. (the default is 0)

### -l [preset] , --load-config [preset]
Global (but context-specific).

Reads the configuration specified by [preset] and configures the solver accordingly. A preset is a set of command line arguments to be analyzed in the place of this option. They are read from a set of presetrc files : one installed system-wide, the other at $HOME/.freecell-solver/presetrc and the third at the path specified by the FREECELL_SOLVER_PRESETRC environment variable. You can add more presets at any of these places. (refer to <http://groups.yahoo.com/group/fc-solve-discuss/message/403> for information about their format)

Presets that are shipped with Freecell Solver:

abra-kadabra

a meta-moves preset

amateur-star

a meta-moves preset that yields solutions faster on average than three-eighty.

blue-yonder

a meta-moves preset generated by a quota optimization algorithm.

children-playing-ball

a meta-moves and flare-based preset that tends to yield very short solution, but is very slow (solves only 3 boards per second on a Pentium 4 2.4GHz).

conspiracy-theory

a meta-moves preset that yields solutions faster on average than amateur-star.

cookie-monster

a meta-moves preset that yields solutions faster on average than one-big-family.

cool-jives

a meta-moves preset

crooked-nose

an atomic-moves preset (guarantees an accurate verdict)

enlightened-ostrich

a meta-moves preset (that depends on Freecell Solver 3.4.0 and above) that yields solutions faster on average than foss-nessy.

fools-gold

an atomic-moves preset

foss-nessy

a meta-moves preset (that depends on Freecell Solver 3.2.0 and above) that yields solutions faster on average than the-iglu-cabal.

good-intentions

runs "cool-jives" and then "fools-gold"

gooey-unknown-thing

a meta-moves preset that aims to minimise the outcome solution’s length.

hello-world

a meta-moves preset

john-galt-line

a meta-moves preset

looking-glass

a meta-moves preset that yields solutions faster on average than cookie-monster.

maliciously-obscure

a meta-moves and flare-based preset that tends to yield very short solutions (even in comparison to children-playing-ball ) but is slow.

micro-finance

a meta-moves and flare-based preset that tends to yield very short solutions (even in comparison to maliciously-obscure ) but is even slower.

micro-finance-improved

a meta-moves and flare-based preset, based on micro-finance that yields somewhat shorter solutions on average, and should not be slower.

one-big-family

a meta-moves preset that yields solutions faster on average than conspiracy-theory.

qualified-seed

a meta-moves and flare-based preset, based on micro-finance-improved that yields somewhat shorter solutions on average, and should not be slower.

qualified-seed-improved

qualified-seed with -fif 5 and --flares-choice fcpro

rin-tin-tin

a meta-moves preset

sand-stone

an atomic-moves preset that aims to minimise the outcome solution’s length.

slick-rock

run "gooey-unknown-thing" and then "sand-stone"

sentient-pearls

a meta-moves and flares based preset with short solutions. Much faster than children-playing-ball but yields less optimal solutions.

tea-for-two

a meta-moves preset optimized for two-freecells' Freecell games (although it can work on other Freecell-like games as well).

the-iglu-cabal

a meta-moves preset that yields faster solutions on average than blue-yonder.

the-last-mohican

a preset for solving Simple Simon. Yields less false negatives than the default one, but might be slower.

three-eighty

a meta-moves preset (that depends on Freecell Solver 3.4.0 and above) that yields solutions faster on average than enlightened-ostrich.

toons-for-twenty-somethings

an atomic-moves preset that solves more boards efficiently than "fools-gold".

video-editing

a meta-moves and flare-based preset, based on qualified-seed that yields shorter solutions on average, but may be somewhat slower. Named to commemorate the earlier work of Adrian Ettlinger (1925-2013) <http://en.wikipedia.org/wiki/Adrian_Ettlinger> who later contributed to Freecell Solver and to Freecell research.

yellow-brick-road

a meta-moves preset

They can be abbreviated into their lowercase acronym (i.e: "ak" or "rtt").

## RUN-TIME DISPLAY OPTIONS

### -i , --iter-output
Global

This option tells fc-solve to print the iteration number and the recursion depth of every state which is checked, to the standard output. It’s a good way to keep track of how it’s doing, but the output slows it down a bit.

### --iter-output-step [step]
Global

Prints the current iteration if -i is specified, only every [step] steps, where [step] is a positive integer. For example, if you do fc-solve -i --iter-output-step 100, you will see this:

```
Iteration: 0
Iteration: 100
Iteration: 200
Iteration: 300
```

This option has been added in Freecell Solver 4.20.0 and is useful for speeding up the runtime process, by avoiding excessive output.

### -s , --state-output
Global

This option implies -i. If specified, this option outputs the cards and formation of the board itself, for every state that is checked. "fc-solve -s" yields a nice real-time display of the progress of Freecell Solver, but you usually cannot make what is going on because it is so fast.

## SIGNAL COMBINATIONS
If you are working on a UNIX or a similar system, then you can set some run-time options in "fc-solve" by sending it some signal combinations.

If you send the fc-solve a single ABRT signal, then fc-solve will terminate the scan prematurely, and report that the iterations’s limit has been exceeded.

If you send the signal USR1, without sending any other signals before that, then fc-solve will output the present number of iterations. This method is a good way to monitor an instance that takes a long time to solve.

If you send it the signal USR2 and then USR1, then fc-solve will print the iteration number and depth on every state that it checks. It is the equivalent of specifying (or unspecifying) the option -i/--iter-output.

If you send it two USR2 signals and then USR1, then fc-solve will also print the board of every state. Again, this will only be done assuming the iteration output is turned on.

## AUTHOR
Shlomi Fish


package: freecell-solver

title: fc-solve-board_gen(6)

summary: make\-microsoft\-freecell\-board, make_pysol_freecell_board.py \-

text:
# fc-solve-board_gen(6)

## NAME
pi-make-microsoft-freecell-board, make_pysol_freecell_board.py - Programs to generate boards to be used as input to Freecell Solver.

## SYNOPSIS
pi-make-microsoft-freecell-board [-t] board-number

or for make_pysol_freecell_board.py:

make_pysol_freecell_board.py [-t] [-F] [--ms] board-number [game-string]

## DESCRIPTION
These programs are command-line programs that can generate the initial board of the games of several popular Solitaire implementations. Those boards can be in turn be input to fc-solve by means of a pipeline, or placed inside a file for safe-keeping.

make_pysol_freecell_board.py also accepts an optional third argument which indicates the game variants. This type defaults to Freecell, but is useful for generating the boards of other games. Note that using this flag still requires one to use the "--game" flag of fc-solve, if necessary.

make_pysol_freecell_board.py also accepts a flag called -F or --pysolfc that deals the PySolFC boards instead of the classic PySol ones, and one called --ms or -M that deals Microsoft Freecell/Freecell Pro deals even for higher seeds.

A common paradigm for using those programs is something like:

```
    bash:~$ pi-make-microsoft-freecell-board -t 11982 | fc-solve -l gi
```

If the "-t" option is specified, then the 10 cards are printed with "T"'s, instead of "10"'s. While fc-solve can accept either as input, it may prove useful for other solvers or solitaire implementations which do not accept "10"'s.

Here is a short description of each program:

make_pysol_freecell_board.py

A Python script that generates the boards of the various games of PySol.

pi-make-microsoft-freecell-board

A program that generates the boards of Microsoft Freecell and of the Freecell Pro implementation of Freecell.

## OPTIONS
board-number is the board number as a decimal number.

game-string is a string describing the game. Valid strings and their respective games are:

bakers_game - Baker's Game

bakers_dozen - Baker's Dozen

beleaguered_castle - Beleaguered Castle

citadel - Citadel

cruel - Cruel

der_katz - Der Katzenschwantz

die_schlange - Die Schlange

eight_off - Eight Off

fan - Fan

forecell - Forecell

freecell - Freecell (the default)

good_measure - Good Measure

ko_bakers_game - Kings' Only Baker's Game

relaxed_freecell - Relaxed Freecell

relaxed_seahaven - Relaxed Seahaven Towers

seahaven - Seahaven Towers

simple_simon - Simple Simon

streets_and_alleys - Streets and Alleys

## SEE ALSO
fc-solve (6)

gen-multiple-pysol-layouts (6)

/usr/share/doc/freecell-solver-FCS_VERSION/board_gen/README

## AUTHOR
Shlomi Fish, <http://www.shlomifish.org/> .


freecell-solver-range-parallel-solve

title: freecell-solver-range-parallel-solve(6)

summary: The Freecell Solver utility for

text:
# freecell-solver-range-parallel-solve(6)

## NAME
freecell-solver-range-parallel-solve - The Freecell Solver utility for solving a range of Microsoft Freecell/Freecell Pro Boards

## SYNOPSIS
freecell-solver-range-parallel-solve start end print_step [--binary-output-to filename] [fc-solve Arguments...]

## DESCRIPTION
freecell-solver-range-parallel-solve is a command line application that solves a range of Freecell deals of Microsoft Freecell and Freecell Pro.

start is the first board to solve; end is the last (inclusive) and print_step is the division of board numbers in which to print a status message.

Following this three mandatory parameters are several flags specific to the range solve. (refer to the OPTIONS section for more information)

Afterwards one can give it a fc-solve command line that it will use to solve each board. Refer to the fc-solve(6) man page for information about its options.

## OPTIONS
--binary-output-to sets the filename into which to output the number of iterations it took to solve each board. This file can later be used with statistical preset optimizers such as those found in the Freecell Solver version control repository.

## SEE ALSO
fc-solve(6)

## AUTHOR
Shlomi Fish, <http://www.shlomifish.org/> .


gen-multiple-pysol-layouts

title: gen-multiple-pysol-layouts(6)

summary: generate multiple PySol / MS initial

text:
# gen-multiple-pysol-layouts(6)

## NAME
gen-multiple-pysol-layouts. - generate multiple PySol / MS initial solitaire deals.

## SYNOPSIS
gen-multiple-pysol-layouts --dir=[dir] --prefix=[prefix] --suffix=[suf] [idxs...]

## DESCRIPTION
This program emits some starting PySol / Freecell Pro deals in separate files inside the target directory.

Some examples:

```
    gen-multiple-pysol-layouts --dir foo/ --prefix "" --suffix .board --ms 24 42 100
    gen-multiple-pysol-layouts --dir foo/ --prefix "" --suffix .board --ms seq 1 32000
    gen-multiple-pysol-layouts --dir foo/ --prefix "" --suffix .board --ms read /path/to/indexes-file.txt
```

Generate Black Hole solitaire <https://en.wikipedia.org/wiki/Black_Hole_%28solitaire%29> PySol FC deals:

```
    gen-multiple-pysol-layouts --game black_hole --dir foo/ --prefix "" --suffix .board seq 100000 200000
```

## OPTIONS
To be discussed.

## SEE ALSO
pi-make-microsoft-freecell-board (6), make_pysol_freecell_board.py (6).

/usr/share/doc/freecell-solver-FCS_VERSION/board_gen/README

## AUTHOR
Shlomi Fish, <http://www.shlomifish.org/> .


transpose-freecell-board.py

title: transpose-freecell-board.py(6)

summary: transpose a Freecell/etc. layout from play\-stacks

text:
# transpose-freecell-board.py(6)

## NAME
transpose-freecell-board.py - transpose a Freecell/etc. layout from play-stacks in text-columns to play-stacks in text lines.

## SYNOPSIS
transpose-freecell-board.py -o output_fn input_fn | -

## DESCRIPTION
This programs transposes a Freecell/etc. layout.

Sample input:

```
    4C 5H QC 5D 2D 7H AH 7S
    2H QH 9S 2S KD JS 5S 6C
    9C 3C 6H JC TH KH 6S 7D
    8C AC 9H 5C TC TS AD 4D
    QS 3H 3S JH TD    8H 8S
       4H KS 6D 8D    JD
       QD 3D AS       KC
          2C          9D
          4S
          7C
```

Sample output:

```
    : 4C 2H 9C 8C QS
    : 5H QH 3C AC 3H 4H QD
    : QC 9S 6H 9H 3S KS 3D 2C 4S 7C
    : 5D 2S JC 5C JH 6D AS
    : 2D KD TH TC TD 8D
    : 7H JS KH TS
    : AH 5S 6S AD 8H JD KC 9D
    : 7S 6C 7D 4D 8S
```

The columns are prefixed with a single optional "Foundations:" line followed by a single optional "Freecells:" line in fc-solve format.

## OPTIONS
-o Specify an output filename.

## SEE ALSO
fc-solve (6)

/usr/share/doc/freecell-solver-FCS_VERSION/board_gen/README

## AUTHOR
Shlomi Fish, <http://www.shlomifish.org/> .

Thanks to Manish Jain for inspiring this program.


freeciv-client

package: freeciv-client-data

title: freeciv-client(6)

summary: The clients for the Freeciv game

text:
# freeciv-client(6)

## NAME
freeciv-gtk2, freeciv-gtk3, freeciv-gtk3.22, freeciv-sdl, freeciv-sdl2, freeciv-qt, freeciv-xaw - The clients for the Freeciv game

## SYNOPSIS
freeciv-gtk2|freeciv-gtk3|freeciv-gtk3.22|freeciv-sdl|freeciv-sdl2|freeciv-qt|freeciv-xaw [ -A|--Announce protocol ] [ -a|--autoconnect ] [ -d|--debug level_number ] [ -F|--Fatal [ signal_number ] ] [ -f|--file filename ] [ -h|--help ] [ -l|--log filename ] [ -M|--Meta URL ] [ -n|--name name ] [ -p|--port port ] [ -P|--Plugin string ] [ -r|--read filename ] [ -s|--server address ] [ -S|--Sound name ] [ -t|--tiles name ] [ -v|--version ] [ -- client-specific-parameters ]

freeciv-gtk2 accepts the standard Gtk parameters following --; see the Gtk documentation. It also accepts [ -h|--help ]

freeciv-gtk3 accepts the standard Gtk parameters following --; see the Gtk documentation. It also accepts [ -g|--gtk-warnings ] [ -h|--help ] [ -r|--resolution WIDTHxHEIGHT ]

freeciv-gtk3.22 accepts the standard Gtk parameters following --; see the Gtk documentation. It also accepts

freeciv-qt accepts the standard Qt parameters following --; see the Qt documentation. It also accepts [ -h|--help ]

freeciv-sdl accepts the following parameters following --: [ -e|--eventthread ] [ -f|--fullscreen ] [ -h|--help ] [ -t|--theme string ]

freeciv-sdl2 accepts the following parameters following --: [ -f|--fullscreen ] [ -h|--help ] [ -t|--theme string ]

freeciv-xaw accepts the standard X11 toolkit parameters following --; see X(7) . It also accepts [ -h|--help ]

## DESCRIPTION
Freeciv is a free turn-based multiplayer strategy game, in which each player becomes the leader of a civilization, fighting to obtain the ultimate goal: To become the greatest civilization.

Players of Civilization II® by Microprose® should feel at home, since one aim of Freeciv is to have compatible rules.

Freeciv is maintained by an international team of coders and enthusiasts, and is easily one of the most fun and addictive network games out there!

This is the client program used to connect to a Freeciv server - see also freeciv-server(6) . freeciv-gtk2, freeciv-gtk3, freeciv-gtk3.22, freeciv-qt, freeciv-sdl, and freeciv-sdl2 can also spawn their own local server for single-player games.

This manual page only lists the command line arguments. For more details about using freeciv-gtk2, freeciv-gtk3,freeciv-gtk3.22, freeciv-sdl, freeciv-sdl2, freeciv-qt, or freeciv-xaw, see the Client Manual which can be found at the Freeciv website as well as the documentation which is part of the Freeciv distribution.

## OPTIONS
The following options are accepted by all clients. They may not be combined; that is, "-np caesar 5557" will not work, instead you would need to enter "-n caesar -p 5557". All options have a short form (single hyphen and single letter) and a long form (double hyphen and a complete word); their effects are identical.

-A protocol, --Announce protocol

Uses protocol when searching for games on a LAN. Possible values for protocol are: IPv4

IPv6

none

-a, --autoconnect

Skips the connect dialog, automatically inserting the default values. This is quite convenient when all has been set up properly.

-d level_number, --debug level_number

Sets the amount of debugging information to be logged in the file named by the -l option. Acceptable values for the level_number are: 0 for fatal messages only.

1 for fatal and error messages.

2 for fatal, error and normal messages (default).

3 for fatal, error, normal, and verbose messages.

-F [ signal_number ], --Fatal [ signal_number ]

Raise a custom signal on failed assertion. If signal_number is not specified, then the ABRT signal will be used.

-f filename, --file filename

Loads a saved game file (filename). This is for reloading previously saved games, or for starting scenarios from the command line.

-h, --help

Prints a short summary of the standard command line options.

-l filename, --log filename

Defines a log file, filename, to be produced during processing. Use the -d option to set how much is logged. By default, fatal, error, and normal messages are printed to standard output. With a log file, such messages go to the log instead. If filename already exists, it is appended to.

-M URL, --Meta URL

Specifies the URL of the metaserver to connect to. A metaserver is a place where Freeciv servers can publish their presence. Freeciv clients consult the metaserver to offer users a selection of games to join. By default, the standard metaserver run by the Freeciv maintainers will be used.

-n name, --name name

Specifies the user name (name) to use to connect to the server. This option is critical when reconnecting to a game. Please note that you might need to quote your username.

-p port, --port port

Specifies the server port to connect to. By default this is 5556, if in doubt ask the server administrator.

-P string, --Plugin string

Specifies the plugin to use for sound output. Available options for string are: none

sdl

-r filename, --read filename

Specifies a file, filename, of server commands which a server spawned by the client will automatically read and process, as if you had typed them in at the server's prompt.

-s address, --server address

Specifies the game server address to connect to. This server might easily run on the same machine as the client.

-S name, --Sound name

Specifies the sound set to use. A file called name.soundspec is searched for in the usual places (see the FILES section).

-t name, --tiles name

Specifies the map graphics ("tiles") to be used within the game. A file called name.tilespec is searched for in the usual places (see the FILES section). Currently the following tilespecs are distributed with Freeciv: • amplio2.tilespec

• cimpletoon.tilespec

• hex2t.tilespec

• isophex.tilespec

• isotrident.tilespec

• trident.tilespec

-v, --version

Prints the version number and exits.

--

All parameters following this -- will be considered as client-specific parameters.

-- -e, -- --eventthread

Initializes the event subsystem in other thread. Only available for the freeciv-sdl client under Linux or BeOS.

-- -f, -- --fullscreen

Starts the client in full screen mode. Only implemented in the freeciv-sdl and freeciv-sdl2 client.

-- -h, -- --help

Print the client-specific parameter help.

-- -r WIDTHxHEIGHT, -- --resolution WIDTHxHEIGHT

Behave as if screen resolution were WIDTHxHEIGHT. Only implemented in the freeciv-gtk3 and freeciv-gtk3.22 clients.

-- -t theme, -- --theme theme

Use a particular GUI theme. Only implemented in the freeciv-sdl and freeciv-sdl2 clients.

## EXAMPLES
freeciv-gtk3 --name "King Richard" --server io.daimi.aau.dk

Starts the GTK3 client using the name King Richard and connecting to the server at io.daimi.aau.dk.

freeciv-sdl -a -t trident

Starts the SDL client with the trident tiles and autoconnects to localhost.

## FILES
~/.freeciv/freeciv-client-rc-[version-number]

This is where your local settings will be stored.

tilespecs

These are searched for in the data path; see ENVIRONMENT.

soundspecs

These are searched for in the data path; see ENVIRONMENT.

The freeciv-modpack(6) utility can be used to locate and download additional content such as tilesets and soundsets and (for client-spawned servers only) scenarios and rulesets; it saves files under ~/.freeciv .

## ENVIRONMENT
The Freeciv client accepts these environment variables:

FREECIV_CAPS

A string containing a list of "capabilities" provided by the server. The compiled-in default should be correct for most purposes, but if you are familiar with the capability facility in the source you may use it to enforce some constraints between clients and server.

FREECIV_COMPRESSION_LEVEL

Sets the compression level for network traffic.

FREECIV_DATA_ENCODING

Sets the character encoding used for data files, savegames, and network strings). This should not normally be changed from the default of UTF-8, since that is the format of the supplied rulesets and the standard network protocol.

FREECIV_INTERNAL_ENCODING

Sets the character encoding used internally by the freeciv client. This generally needs to match the GUI toolkit, so its default depends on the specific client; most clients default to UTF-8.

FREECIV_LOCAL_ENCODING

Sets the local character encoding (used for the command line and terminal output). The default is inferred from other aspects of the environment.

FREECIV_MULTICAST_GROUP

Sets the multicast group (for the LAN tab).

FREECIV_DATA_PATH

A colon separated list of directories pointing to the freeciv data directories. By default Freeciv looks in the following directories, in order, for any data files: the current directory; the "data" subdirectory of the current directory; the subdirectory ".freeciv/2.6" in the user's home directory; and the directory where the files are placed by running "make install". If not set, FREECIV_PATH is checked before these defaults are used.

FREECIV_SAVE_PATH

A colon separated list of directories pointing to the freeciv save directories. By default Freeciv looks in the following directories, in order, for save files: the current directory; and the subdirectory ".freeciv/saves" in the user's home directory. If not set, FREECIV_PATH is checked before these defaults are used; in this case Freeciv also looks in "saves" potential subdirectories. (This does not affect where the server spawned by the client creates save game files; these are always created in ".freeciv/saves" in the user's home directory.)

FREECIV_SCENARIO_PATH

A colon separated list of directories pointing to the freeciv scenario directories. By default Freeciv looks in the following directories, in order, for scenario files: the current directory; the "data/scenarios" subdirectory of the current directory; the subdirectories ".freeciv/2.6/scenarios" and then ".freeciv/scenarios" in the user's home directory; and the directory where the files are placed by running "make install". If not set, FREECIV_PATH is checked before these defaults are used; in this case Freeciv also looks in "scenario" and "scenarios" potential subdirectories. (This does not affect where the server spawned by the client creates scenario files; these are always created in ".freeciv/scenarios" in the user's home directory.)

FREECIV_PATH

A colon separated list of directories to look for various files. This variable has no effect if FREECIV_DATA_PATH, FREECIV_SAVE_PATH and FREECIV_SCENARIO_PATH are defined together; those variables are the recommended way to override paths, with FREECIV_PATH provided only for backward compatibility with older versions of Freeciv; FREECIV_PATH will be removed in a future release. The precise search path depends on the type of file being searched for.

FREECIV_OPT

Specifies a file to contain local settings, instead of ~/.freeciv/freeciv-client-rc-[version-number].

HOME

Specifies the user's home directory.

http_proxy

Set this variable accordingly when using a proxy.

LANG or LANGUAGE

Sets the language and locale on some platforms.

LC_ALL or LC_CTYPE

Similar to LANG (see documentation for your system).

USER

Specifies the username of the current user.

## BUGS
Please report bugs to the Freeciv bug tracker .

## MORE INFO
See the Freeciv homepage .

Updates and new info is first posted there.

## AUTHORS
The Freeciv Team <freeciv-dev AT freelists.org>.

This manpage was originally put together by Florian Ernst <florian_ernst AT gmx.net> using the Client Manual and the comments in the sourcecode. It was updated by Ben Bettin <bwbettin AT gmail.com> to add new features, integrate information from the website's online documentation, and for slight formatting adjustments. Feel free to use it as you wish.

## SEE ALSO
freeciv-server(6) freeciv-modpack(6) and the Client Manual at the Freeciv homepage.


freeciv-modpack

title: freeciv-modpack(6)

text:
# freeciv-modpack(6)

## NAME
freeciv-mp-gtk2, freeciv-mp-gtk3, freeciv-mp-qt, freeciv-mp-cli - Custom content installers for the Freeciv game

## SYNOPSIS
freeciv-modpack [ -d|--debug level_number ] [ -h|--help ] [ -i|--install URL ] [ -L|--List URL ] [ -p|--prefix directory ] [ -v|--version ]

## DESCRIPTION
Freeciv is a free turn-based multiplayer strategy game, in which each player becomes the leader of a civilization, fighting to obtain the ultimate goal: To become the greatest civilization.

Players of Civilization II® by Microprose® should feel at home, since one aim of Freeciv is to have compatible rules.

Freeciv is maintained by an international team of coders and enthusiasts, and is easily one of the most fun and addictive network games out there!

This is the custom content installer program - see also freeciv-server(6) freeciv-client(6) .

This program allows users to select and download add-on content ("modpacks") for Freeciv from the Internet, either from a list maintained by the Freeciv team, or by using a URL obtained by other means. It takes care of installing the files in the correct place under the user's home directory for this version of Freeciv; it does not install anything for system-wide use.

This manual page only lists the command line arguments. For details regarding the options when using freeciv-modpack see the documentation at the Freeciv website as well as the documentation which is part of the Freeciv distribution.

## OPTIONS
All options have a short form (single hyphen and single letter) and a long form (double hyphen and a complete word); their effects are identical.

-d level_number, --debug level_number

Sets the amount of debugging information to be logged. Acceptable values for the level_number are: 0 for fatal messages only.

1 for fatal and error messages.

2 for fatal, error and normal messages (default).

3 for fatal, error, normal, and verbose messages.

-h, --help

Prints a short summary of the command line options.

-i URL, --install URL

Automatically install modpack from a given URL.

-L URL, --List URL

Gets modpack list from given URL, rather than the standard location on the Freeciv team's servers.

-p directory, --prefix directory

Installs modpacks under given directory hierarchy.

-v, --version

Prints the version number and exits.

## FILES
freeciv modpack installer installs files to the following subdirectories of the user's home directory (or another directory specified with --prefix), as appropriate:

• .freeciv/scenarios/

• .freeciv/2.6/

freeciv-mp-cli is version of the modpack installer usable from command line. By default it lists modpacks from the default list or from list specified with --List. One can then run it again by giving appropriate URL from the list for --install parameter.

## ENVIRONMENT
freeciv modpack installer accepts these environment variables:

HOME

Specifies the user's home directory.

http_proxy

Set this variable accordingly when using a proxy.

LANG or LANGUAGE

Sets the language and locale on some platforms.

LC_ALL or LC_CTYPE

Similar to LANG (see documentation for your system).

USER

Specifies the username of the current user.

## BUGS
Please report bugs to the Freeciv bug tracker .

## MORE INFO
See the Freeciv homepage .

Updates and new info is first posted there.

## AUTHORS
The Freeciv Team <freeciv-dev AT freelists.org>.

## SEE ALSO
freeciv-server(6) freeciv-client(6)


freeciv-server

package: freeciv-server-data

title: freeciv-server(6)

summary: The server for the Freeciv game

text:
# freeciv-server(6)

## NAME
freeciv-server - The server for the Freeciv game

## SYNOPSIS
freeciv-server [ -A|--Announce protocol ] [ -b|--bind address ] [ -B|--Bind-meta address ] [ -d|--debug level_number ] [ -e|--exit-on-end ] [ -F|--Fatal [ signal_number ] ] [ -f|--file filename ] [ -h|--help ] [ -i|--identity address ] [ -k|--keep ] [ -l|--log filename ] [ -M|--Metaserver address ] [ -m|--meta ] [ -p|--port port ] [ -q|--quitidle time ] [ -R|--Ranklog filename ] [ -r|--read filename ] [ -S|--Serverid id ] [ -s|--saves directory ] [ --scenarios directory ] [ -v|--version ]

Auth aware servers have additional parameters: [ -a|--auth ] [ -D|--Database file ] [ -G|--Guests ] [ -N|--Newusers ]

Servers with AI module support have an additional parameter: [ -L|--LoadAI module ]

## DESCRIPTION
Freeciv is a free turn-based multiplayer strategy game, in which each player becomes the leader of a civilization, fighting to obtain the ultimate goal: To become the greatest civilization.

Players of Civilization II® by Microprose® should feel at home, since one aim of Freeciv is to have compatible rules.

Freeciv is maintained by an international team of coders and enthusiasts, and is easily one of the most fun and addictive network games out there!

This is the server program used to establish a Freeciv server - see also freeciv-client(6) .

This manual page only lists the command line arguments. For details of the directives necessary to configure freeciv-server see the Server Manual which can be found at the Freeciv website as well as the documentation which is part of the Freeciv distribution.

## OPTIONS
The following options are accepted on the command line of the server. They may not be combined; that is, "freeciv-server -fp savegame.sav 5557" will not work, instead you would need to enter "freeciv-server -f savegame.sav -p 5557". Most options have a short form (single hyphen and single letter) and a long form (double hyphen and a complete word); their effects are identical.

-A protocol, --Announce protocol

Uses protocol when announcing game in LAN. Possible values for protocol are: IPv4

IPv6

none

-a, --auth

Enables server authentication and allows access to registered players only. Requires the --Database option to be specified.

-b address, --bind address

Sets the address on which the server will listen for clients.

-B address, --Bind-meta address

Sets the address which request to metaserver are sent from. Defaults to address given by -b option.

-d level_number, --debug level_number

Sets the amount of debugging information to be logged in the file named by the -l option. Acceptable values for the level_number are: 0 for fatal messages only.

1 for fatal and error messages.

2 for fatal, error and normal messages (default).

3 for fatal, error, normal, and verbose messages.

-D filename, --Database filename

Specifies a database configuration file for authentication. This file specifies the details of the database. See README.fcdb in the Freeciv distribution for details of its format.

-e, --exit-on-end

When a game ends, exit instead of restarting.

-F [ signal_number ], --Fatal [ signal_number ]

Raise a custom signal on failed assertion. If signal_number is not specified, then the ABRT signal will be used.

-f filename, --file filename

Loads a saved game (filename) into the server before initialization, instead of starting a new game. This is for reloading saved games, or for loading scenarios. See ENVIRONMENT for where the server looks for these files. The distribution comes with several scenarios, typically stored in /usr/local/share/freeciv/scenarios, for example:

• british-isles-85x80-v2.80.sav • earth-160x90-v2.sav

• earth-80x50-v3.sav

• europe-200x100-v2.sav

• hagworld-120x60-v1.2.sav

• iberian-peninsula-136x100-v1.0.sav

-G, --Guests

Allow guests to login as 'guest' when authentication is enabled.

-h, --help

Prints out a description of the command line options and exits.

-i address, --identity address

Reports the address to the metaserver. Then, the metaserver will use this address to redirect the users.

-L module, --LoadAI module

Loads AI module. This option can appear multiple times to load different modules.

-l filename, --log filename

Defines a log file, filename, to be produced during processing. Use the -d option to set how much is logged. By default, fatal, error, and normal messages are printed to standard output. With a log file, such messages go to the log instead. If filename already exists, it is appended to.

-M address, --Metaserver address

Specifies the address of the metaserver to send your server's information to. By default, the standard metaserver run by the Freeciv maintainers will be used.

-m, --meta

Directs the server to communicate with a metaserver, a place where Freeciv servers can publish their presence. Freeciv clients consult the metaserver to offer users a selection of games to join. By default the standard Freeciv metaserver is used. You may specify an alternate metaserver with the -M option.

-k, --keep

Usually freeciv server stops sending updates to the metaserver, when there's problems on the connection once. With this option it keeps on trying to send further updates even after it has failed to send updated status once. This option implies -m option.

-N, --Newusers

Allow new users to login and be registered in the players base if authentication is enabled.

-p port, --port port

Specifies the TCP port number to which clients will connect; players must know this number to be able to connect if they are not to use the default of 5556 decimal. You may need to use this if 5556 is not available for your use on your system, or if you would like to run multiple servers on the same system.

-q time, --quitidle time

Quits if no players are present for the specified time, in seconds, and restarts a new server.

-R filename, --Ranklog filename

Defines a log file, filename, to be produced during processing. This log contains information for player ranking.

-r filename, --read filename

Specifies a file, filename, of server commands which the server will automatically read and process, as if you had typed them in at the server's prompt. The distribution comes with a few examples, including files that set options to be similar to Civilization I® and Civilization II® . The files are named civ1.serv and civ2.serv, and are typically found at /usr/local/share/freeciv/.

-S id, --Serverid id

Sets the server id. This is used to identify a particular running game.

-s directory, --saves directory

Specifies the directory to place save game files created by the server. This is especially useful when you're running more than one server on the same system, as it inhibits your servers from clobbering other's save game files. (This does not influence where the server looks when loading save game files; see FREECIV_SAVE_PATH for that.)

--scenarios directory

Specifies the directory to place scenarios saved by the server (for instance, those created with the in-game editor). (This does not influence where the server looks when loading scenario files; see FREECIV_SCENARIO_PATH for that.)

-v, --version

Causes the server to display its version number and exit.

## EXAMPLES
freeciv-server --file oldgame.sav --port 2244

Starts a server on port 2244, loading the save game file oldgame.sav.

freeciv-server -R ranklog -l logfile -r script -f oldgame.sav.gz -p 2244

Starts a server on port 2244, loading the save game file oldgame.sav.gz. Ranking related events are written to ranklog, other logging information is written to logfile. When the server starts, it immediately executes the commands contained in script.

freeciv-server -m -a -D fc_auth.conf -q 60 -p 2244 -d 2 -l logfile -r script -s ~/saves

Starts a server on port 2244 with authentication enabled and communicates its existence to the standard Freeciv metaserver. Fatal, error, and normal messages are written to logfile. When the server starts it immediately executes the commands contained in script. Save game files are stored in the ~/saves directory. When there are no users on the server for 60 seconds, the server will restart.

## COMMANDS
You may enter commands into the server at any time, either before or during the running of a game.

Type "help" or "help help" for starters.

## FILES
The Freeciv server requires the following files in the Freeciv data directory, which is /usr/local/share/freeciv by default:

• classic/buildings.ruleset

• classic/cities.ruleset

• classic/effects.ruleset

• classic/game.ruleset

• classic/governments.ruleset

• classic/nations.ruleset

• classic/styles.ruleset

• classic/techs.ruleset

• classic/terrain.ruleset

• classic/units.ruleset

• classic/script.lua

• default/default.lua

• default/nationlist.ruleset

These are the default rule sets used for the game. Alternate sets of rules can be used by placing them in a separate directory and using the rulesetdir command to change your server's ruleset directory.

Type help rulesetdir for more information.

## ENVIRONMENT
The Freeciv server accepts these environment variables:

FREECIV_CAPS

A string containing a list of "capabilities" provided by the server. The compiled-in default should be correct for most purposes, but if you are familiar with the capability facility in the source you may use it to enforce some constraints between clients and server.

FREECIV_COMPRESSION_LEVEL

Sets the compression level for network traffic.

FREECIV_DATA_ENCODING

Sets the character encoding used for data files, savegames, and network strings). This should not normally be changed from the default of UTF-8, since that is the format of the supplied rulesets and the standard network protocol.

FREECIV_INTERNAL_ENCODING

Sets the character encoding used internally by freeciv-server; this encoding should not be visible at any interface. Defaults to UTF-8.

FREECIV_LOCAL_ENCODING

Sets the local character encoding (used for the command line and terminal output). The default is inferred from other aspects of the environment.

FREECIV_MULTICAST_GROUP

Sets the multicast group (for the LAN tab).

FREECIV_DATA_PATH

A colon separated list of directories pointing to the freeciv data directories. By default Freeciv looks in the following directories, in order, for any data files: the current directory; the "data" subdirectory of the current directory; the subdirectory ".freeciv/2.6" in the user's home directory; and the directory where the files are placed by running "make install". If not set, FREECIV_PATH is checked before these defaults are used.

FREECIV_SAVE_PATH

A colon separated list of directories pointing to the freeciv save directories. By default Freeciv looks in the following directories, in order, for save files: the current directory; and the subdirectory ".freeciv/saves" in the user's home directory. If not set, FREECIV_PATH is checked before these defaults are used; in this case Freeciv also looks in "saves" potential subdirectories. (This does not affect where the server creates save game files; see the --saves option for that.)

FREECIV_SCENARIO_PATH

A colon separated list of directories pointing to the freeciv scenario directories. By default Freeciv looks in the following directories, in order, for scenario files: the current directory; the "data/scenarios" subdirectory of the current directory; the subdirectories ".freeciv/2.6/scenarios" and then ".freeciv/scenarios" in the user's home directory; and the directory where the files are placed by running "make install". If not set, FREECIV_PATH is checked before these defaults are used; in this case Freeciv also looks in "scenario" and "scenarios" potential subdirectories. (This does not affect where the server creates scenario files; see the --scenarios option for that.)

FREECIV_PATH

A colon separated list of directories to look for various files. This variable has no effect if FREECIV_DATA_PATH, FREECIV_SAVE_PATH and FREECIV_SCENARIO_PATH are defined together; those variables are the recommended way to override paths, with FREECIV_PATH provided only for backward compatibility with older versions of Freeciv; FREECIV_PATH will be removed in a future release. The precise search path depends on the type of file being searched for.

HOME

Specifies the user's home directory.

http_proxy

Set this variable accordingly when using a proxy.

LANG or LANGUAGE

Sets the language and locale on some platforms.

LC_ALL or LC_CTYPE

Similar to LANG (see documentation for your system).

USER

Specifies the username of the current user.

## BUGS
Please report bugs to the Freeciv bug tracker .

## MORE INFO
See the Freeciv homepage .

Updates and new info is first posted there.

## AUTHORS
The Freeciv Team <freeciv-dev AT freelists.org>.

This manpage was originally put together by Florian Ernst <florian_ernst AT gmx.net> using the Server Manual and the comments in the sourcecode. It was updated by Ben Bettin <bwbettin AT gmail.com> to add new features, integrate information from the website's online documentation, and for slight formatting adjustments. Feel free to use it as you wish.

## SEE ALSO
freeciv-client(6) and the Server Manual on the Freeciv homepage.


freedink

package: freedink-engine

title: freedink(6)

text:
# freedink(6)

## NAME
FreeDink - adventure and role-playing game (engine)

## SYNOPSIS
freedink [OPTIONS]...

## DESCRIPTION
Starts the Dink Smallwood game or one of its D-Mods.

-h, --help

Display this help screen

-v, --version

Display the version

-g, --game <dir>

Specify a DMod directory

-r, --refdir <dir>

Specify base directory for dink/graphics, D-Mods, etc.

-d, --debug

Explain what is being done

-i, --noini

Do not attempt to write dinksmallwood.ini

-j, --nojoy

Do not attempt to use joystick

-s, --nosound

Do not play sound

-t, --truecolor

Allow more colours (for recent D-Mod graphics)

-w, --window

Use windowed mode instead of screen mode

-7, --v1.07

Enable v1.07 compatibility mode

-S, --software-rendering

Don't use OpenGL

## REPORTING BUGS
Report bugs to bug-freedink@gnu.org.

FreeDink is free software, and you are welcome to redistribute it under certain conditions; see the GNU GPL for details. http://gnu.org/licenses/gpl.html

There is NO WARRANTY, to the extent permitted by law.


freedinkedit

title: freedinkedit(6)

text:
# freedinkedit(6)

## NAME
FreeDink - adventure and role-playing game (editor)

## SYNOPSIS
freedinkedit [OPTIONS]...

## DESCRIPTION
Edit the Dink Smallwood game or one of its D-Mods.

-h, --help

Display this help screen

-v, --version

Display the version

-g, --game <dir>

Specify a DMod directory

-r, --refdir <dir>

Specify base directory for dink/graphics, D-Mods, etc.

-d, --debug

Explain what is being done

-i, --noini

Do not attempt to write dinksmallwood.ini

-j, --nojoy

Do not attempt to use joystick

-s, --nosound

Do not play sound

-t, --truecolor

Allow more colours (for recent D-Mod graphics)

-w, --window

Use windowed mode instead of screen mode

-7, --v1.07

Enable v1.07 compatibility mode

-S, --software-rendering

Don't use OpenGL

## REPORTING BUGS
Report bugs to bug-freedink@gnu.org.

FreeDink is free software, and you are welcome to redistribute it under certain conditions; see the GNU GPL for details. http://gnu.org/licenses/gpl.html

There is NO WARRANTY, to the extent permitted by law.


freedroid

package: freedroid

title: freedroid(6)

summary: a free Paradroid clone

text:
# freedroid(6)

## NAME
freedroid - a free Paradroid clone

## SYNOPSIS
freedroid [ options ]

## DESCRIPTION
Freedroid is a remake of the classic C64 home computer game Paradroid by Andrew Braybrook, including also various extensions.

The player takes control of the so-called 001 influence device and must clear a freighter of robots by either shooting them or seizing control over them. Seizing control is done in a small logic subgame, in which you have to connect more electrical connections within 10 seconds than your opponent.

## OPTIONS
-v or --version

Prints out Freedroid version information.

-q or --nosound

Suppress all sound output. Very useful if you don't have your sound card configured yet or don't have any sound hardware at all.

-f or --fullscreen

Work in full screen mode. Note that fullscreen or window mode can also be toggled from within the game via the options menu.

-w or --window

Start Freedroid in a window rather than using full screen mode.

-j or --sensitivity

Control joystick sensitivity. Value must lie in between [0:32]. Default is 1.

-d LEVEL or --debug=LEVEL

Control debug output of the game. Debug output will be printed to stderr, i.e. in most cases to the console you started Freedroid from. The variable LEVEL controls how much debug output you would like to have. LEVEL 0 is the default and means (almost) no debug output. LEVEL 1 prints the most important debug messages and LEVEL 2 or LEVEL 3 print (almost) all debug output, which might be quite a lot.

## HOW TO PLAY
Moving and Firing

The influence device can be moved inside the ship by either using keyboard input or joystick directions. Keyboard control can be done by either using cursor keys or the Quake and Half-life style a-w-s-d keys combination. Firing can be done by either using the crosshair and the left mouse button or by pressing a direction key and pressing space in addition or by holding a joystick direction and pressing a joystick button.

Entering Elevators and Consoles The influence device can move from one deck to another deck using the elevators of the freighter. To do this, you must step onto an elevator plate, and then either press the e key or press the middle mouse button or appropriate joystick button. Entering consoles is done in a similar way. You have to stand directly in front of a console terminal and then press the e key to activate the console. Inside the console you will have access to a small scale map of the current deck, a side elevation of the ship and to the droid database of the ship. Note however, that access to the droid database is achieved via the security clearance of the host you currently control, i.e. you will only be able to view droid data for droids that are lower or equal to the host you currently control.

The takeover subgame (Taking control of other droids) To take control of another robot, you must first enter transfer mode. This is done by either standing still and holding space bar pressed (and keeping space bar pressed afterwards) or by holing down the right mouse button or holding town appropriate joystick button. While in takeover mode, the influence device can try to initiate takeover by touching the host it wishes to control. As soon as another robot is touched while in takeover mode, takeover subgame will be initiated and control of the new host will be seized, provided that the takeover subgame is won.

Playing the takeover subgame After the takeover subgame was initiated, the two droids struggling for control will be presented. Then the player gets to decide which side of the takeover game he wants to play. The player on the left side takes the yellow color, the player on the right side takes the magenta color. Note that which side to choose may be the most important decision of the takeover subgame, cause one side may host strong tactical advantages over the other. After sides have been chosen, the takeover capsules will be placed. Each droid has a limited number of capsules to place and must try to convert the central status bar to his color. The number of capsules you have at your disposal depends on the clearance of the host you currently control. Once the takeover subgame is won, the player will have control over the new bot while the old host is destroyed. Control over the new host also means inheriting the movement properties and the weapons of this robot. Loss of takeover subgame results in the current host, if one is present, being destroyed or the influence itself being burnt out and destroyed if no host was present.

Notes on energy loss The influence device depends on hosts to control. Whether currently controlling a host or not, the influence device will always lose energy due to construction properties. When taking control of a new host, the influence device will also take control of the energy this droid had left, which will be even more the higher the bot you take control of. However, higher droids also tend to put up more resistance against the control of the influence device, resulting in faster loss of energy. Therefore it is recommended to change hosts frequently in order to keep the influence device well powered. Note that there are some refresh field, where some of the energy lost so far can be restored. But note also, that only energy loss due to collisions, explosions and enemy fire can be restored this way, while energy loss due to host resistance is permanently lost until the host is changed again.

## PROJECT HOME PAGE AND LATEST VERSIONS
The Freedroid project features a home page at freedroid.sourceforge.net. The project itself is hosted at the Sourceforge. The project summary page at http://sourceforge.net/projects/freedroid/ can be used to access download and status information. Note that home page and project summary page are shared with the FreedroidRPG development branch as well.

## FILES
~/.freedroidClassic/highscores

The high scores file of Freedroid.

~/.freedroidClassic/config The file containing all configuration setting of this user.

## ENVIRONMENT
Freedroid does currently not care about any environment variables.

## DIAGNOSTICS
Debug output can be produced by using the -d or --debug command line options as described above.

## BUGS
Freedroid can now be considered pretty stable. However we're sure that there are still some bugs here and there. If you encounter any problems or bugs, please send mail to <freedroid-discussion@lists.sourceforge.net>.

## AUTHORS
Johannes Prix, Reinhard Prix, Bastian Salmela, Lanzz.

## SEE ALSO
freedroidRPG(6),


freedroidRPG

package: freedroidrpg-data

title: freedroidRPG(6)

text:
# freedroidRPG(6)

## NAME
freedroidRPG — a futuristic immersive RPG about fighting bots

## SYNOPSIS
freedroidRPG

[-h | --help] [-v | --version] [-e | --editor] [-s | --sound | -q | --nosound] [-n | --no_open_gl | -o | --open_gl] [-f | --fullscreen | -w | --window] [-t | --system_lang] [-l | --load] [-r | --resolution] [-d | --debug]

## DESCRIPTION
FreedroidRPG tells the story of a world destroyed by a conflict between robots and their human masters. Play as Tux in a quest to save the world from the murderous rebel bots who know no mercy. You get to choose which path you wish to follow, and freedom of choice is everywhere in the game.

FreedroidRPG features a real time combat system with melee and ranged weapons, fairly similar to the proprietary game Diablo. There is an innovative system of programs that can be run in order to take control of enemy robots, alter their behavior, or improve one's characteristics. You can use over 150 different kinds of items and fight countless enemies on your way to your destiny. An advanced dialog system provides story background and immersive role playing situations.

### Gameplay
Please see the README or the tutorial in the game for more details.

### Updates
Periodically we release updated versions of FreedroidRPG with expanded plot, requested features, and other improvements. Please check the FreedroidRPG Homepage for the most updated versions of the game.

## OPTIONS
-h | --help

List command-line options.

-v | --version

Prints out FreedroidRPG version information.

-q | --nosound

Suppress sound output.

-f | --fullscreen

Work in full screen mode. Note that fullscreen or window mode can also be toggled from within the game via the options menu.

-w | --window

Start FreedroidRPG in a window rather than using full screen mode.

-n | --no_open_gl

Use SDL rendering rather than OpenGL.

-r Y | --resolution= Y

Selects a resolution to start the game in. -r 99 lists common resolutions. Resolutions can also be set in-game. You can also specify a resolution via -r800x600.

-e | --editor

Skips the main menu and opens up the level editor.

-l character-name | --load character-name

Skip the main menu and load the saved game. The parameter character-name should be saved game name.

-t | --system_lang

Starts the game in systems default language.

-d X | --debug X

Shows mostly useless debug output. Debug level (X) maybe 0-5, default is 1.

## FILES
$HOME/.freedroid_rpg/fdrpg.cfg The file containing all configuration settings of this user.

$HOME/.freedroid_rpg/*.sav.gz Saved games for the characters.

$HOME/.freedroid_rpg/*.thumbnail.png Thumbnail images of the characters.

$HOME/.freedroid_rpg/*.shp Game state for the saved games.

$HOME/.freedroid_rpg/*.bkp* Next to last saved game.

## BUGS
We make every effort to release stable versions of FreedroidRPG. However we're sure that there are still some bugs here and there. Please see the FAQ in the README for common issues. If you encounter any problems or bugs, please contact us:

### IRC
\#freedroid on irc.freenode.net

### Mailing List
freedroid-discussion@lists.sourceforge.net

### Bug tracker
FreedroidRPG Bug Tracker

## SEE ALSO
freedroid(6)

## AUTHORS
freedroidRPG was written by FreedroidRPG Development Team ⟨freedroid-discussion@lists.sourceforge.net⟩ led by Arthur Huillet. Visit us at the FreedroidRPG Homepage for updates or if you'd like to help.


frogatto

package: frogatto-gamedata

title: frogatto(6)

text:
# frogatto(6)

## NAME
frogatto - 2D platformer game starring a quixotic frog

## SYNOPSIS

```
 frogatto [ OPTIONS ]
```

## DESCRIPTION
frogatto is a platformer in the style of old arcade, Sega and Nintendo games. The world is viewed as a cross-section seen from the side, and your character walks and jumps between solid platforms whilst fighting monsters.

## OPTIONS

### --fullscreen
starts frogatto in fullscreen mode.

### --widescreen
uses widescreen mode.

### --no-sound
turns off sound.

### --no-music
turns off music.

### --fps
shows FPS.

### --no-fps
doesn't show FPS.

### --debug
prints debug informations.

### --no-debug
doesn't print debug informations.

### --textures16, --textures32
uses 16 or 32 bits per pixes textures.

## HOMEPAGE
http://www.frogatto.com/