0d824d2b59
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25683 a1c6a512-1295-4272-9138-f99709370657
320 lines
15 KiB
TeX
320 lines
15 KiB
TeX
\subsection{Goban}
|
|
\screenshot{plugins/images/ss-goban}{Goban}{The Rockbox Goban plugin}
|
|
Goban is a a plugin for playing, viewing and recording games of Go (also known
|
|
as Weiqi, Baduk, Igo and Goe). It uses standard Smart Game Format (SGF) files
|
|
for saving and loading games. You can find a short introduction to Go at
|
|
\url{http://senseis.xmp.net/?WhatIsGo} and more information about SGF files
|
|
can be read at \url{http://senseis.xmp.net/?SmartGameFormat} or the SGF
|
|
specification at \url{http://www.red-bean.com/sgf/}.\\
|
|
|
|
This plugin can load all modern SGF files (file format 3 or 4) with few problems.
|
|
It attempts to preserve SGF properties which it doesn't understand, and most common
|
|
SGF properties are handled fully. It is possible to view (and edit if you like)
|
|
Kogo's Joseki Dictionary (\url{http://waterfire.us/joseki.htm}) with this plugin,
|
|
although the load and save times can be on the order of a minute or two on
|
|
particularly slow devices. Large SGF files may stop audio playback for the duration
|
|
of the plugin's run in order to free up more memory and some very large SGF files will
|
|
not even load on devices with little available memory.\\
|
|
|
|
\note{The plugin does \emph{NOT} support SGF files with multiple games in
|
|
one file. These are rare, but if you have one don't even try it (the file will most
|
|
likely be corrupted if you save over it). You have been warned.\\}
|
|
|
|
The file \fname {"/sgf/gbn\_def.sgf"} is used by the plugin to store any unsaved
|
|
changes in the most recently loaded game. This means that if you forget to save your
|
|
changes, you should load \fname {"/sgf/gbn\_def.sgf"} immediately to offload the changes
|
|
to another file. If you load another file first then your changes will be lost
|
|
permanently. The \fname {"/sgf/gbn\_def.sgf"} file is also the file loaded if another
|
|
is not selected.\\
|
|
|
|
The information panel which displays the current move number may also contain
|
|
these markers:
|
|
|
|
\begin{table}
|
|
\begin{rbtabular}{\textwidth}{lX}%
|
|
{\textbf{Mark} & \textbf{Meaning}}{}{}
|
|
\emph{+ } & There are nodes after the current node in the SGF tree. \\
|
|
\emph{* } & There are sibling variations which can be navigated to using the %
|
|
\emph{Next Variation} menu option of the \emph{Context Menu}%
|
|
\opt{SANSA_E200_PAD,SANSA_C200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,%
|
|
RECORDER_PAD,MROBE100_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,%
|
|
IRIVER_H300_PAD,PBELL_VIBE500_PAD}{ or the %
|
|
\opt{SANSA_E200_PAD,SANSA_C200_PAD}{\ButtonRec}%
|
|
\opt{SANSA_FUZE_PAD,SANSA_CLIP_PAD}{\ButtonHome}%
|
|
\opt{RECORDER_PAD}{\ButtonOn}%
|
|
\opt{MROBE100_PAD}{\ButtonPower}%
|
|
\opt{GIGABEAT_PAD}{\ButtonA}%
|
|
\opt{GIGABEAT_S_PAD}{\ButtonPlay}%
|
|
\opt{PBELL_VIBE500_PAD}{\ButtonCancel}%
|
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonRec} button}. \\
|
|
\emph{C } & There is a comment at the current node. It can be viewed/edited using
|
|
the \emph{Add/Edit Comment} menu option of the \emph{Context Menu}. \\
|
|
\end{rbtabular}
|
|
\end{table}
|
|
|
|
\subsubsection{Controls}
|
|
\begin{table}
|
|
\begin{btnmap}{}{}
|
|
\nopt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,IRIVER_H10_PAD,COWON_D2_PAD}
|
|
{\ButtonUp}%
|
|
\opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonMenu}%
|
|
\opt{IRIVER_H10_PAD}{\ButtonScrollUp}
|
|
\opt{COWON_D2_PAD}{\TouchTopMiddle}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Move cursor up
|
|
\\
|
|
|
|
\nopt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,IRIVER_H10_PAD,COWON_D2_PAD}
|
|
{\ButtonDown}%
|
|
\opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonPlay}%
|
|
\opt{IRIVER_H10_PAD}{\ButtonScrollDown}
|
|
\opt{COWON_D2_PAD}{\TouchBottomMiddle}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Move cursor down
|
|
\\
|
|
|
|
\nopt{COWON_D2_PAD}{\ButtonLeft}
|
|
\opt{COWON_D2_PAD}{\TouchMidLeft}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Move cursor left
|
|
\opt{ONDIO_PAD}{if in \emph{board} navigation mode, or retreat one
|
|
node in the game tree if in \emph{tree} navigation mode}
|
|
\\
|
|
|
|
\nopt{COWON_D2_PAD}{\ButtonRight}
|
|
\opt{COWON_D2_PAD}{\TouchMidRight}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Move cursor right
|
|
\opt{ONDIO_PAD}{if in \emph{board} navigation mode, or advance one
|
|
node in the game tree if in \emph{tree} navigation mode}
|
|
\\
|
|
|
|
\opt{ONDIO_PAD}{
|
|
\ButtonOff
|
|
&
|
|
Toggle between \emph{board} and \emph{tree} navigation modes
|
|
\\
|
|
}
|
|
|
|
\nopt{IRIVER_H10_PAD,COWON_D2_PAD,ONDIO_PAD,RECORDER_PAD,IAUDIO_M3_PAD
|
|
,PBELL_VIBE500_PAD}{%
|
|
\ButtonSelect}%
|
|
\opt{IRIVER_H10_PAD,RECORDER_PAD,PBELL_VIBE500_PAD}{\ButtonPlay}%
|
|
\opt{ONDIO_PAD}{\ButtonMenu}
|
|
\opt{COWON_D2_PAD}{\TouchCenter}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Play a move (or use a tool if play-mode has been changed).
|
|
\\
|
|
|
|
\nopt{ONDIO_PAD}{
|
|
\opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD%
|
|
,IPOD_4G_PAD}{\ButtonScrollBack}%
|
|
\opt{SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,GIGABEAT_PAD%
|
|
,GIGABEAT_S_PAD}{\ButtonVolDown}%
|
|
\opt{IRIVER_H10_PAD}{\ButtonFF}%
|
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}%
|
|
\opt{MROBE100_PAD}{\ButtonMenu}%
|
|
\opt{IAUDIO_X5_PAD}{\ButtonPlay}%
|
|
\opt{RECORDER_PAD}{\ButtonFOne}
|
|
\opt{COWON_D2_PAD}{\TouchBottomLeft}
|
|
\opt{PBELL_VIBE500_PAD}{\ButtonOK{} + \ButtonLeft}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Retreat one node in the game tree
|
|
\\
|
|
|
|
\opt{scrollwheel}{\ButtonScrollFwd}%
|
|
\opt{SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,GIGABEAT_PAD%
|
|
,GIGABEAT_S_PAD}{\ButtonVolUp}%
|
|
\opt{IRIVER_H10_PAD}{\ButtonRew}%
|
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}%
|
|
\opt{MROBE100_PAD}{\ButtonPlay}%
|
|
\opt{IAUDIO_X5_PAD}{\ButtonRec}%
|
|
\opt{RECORDER_PAD}{\ButtonFThree}
|
|
\opt{COWON_D2_PAD}{\TouchBottomRight}
|
|
\opt{PBELL_VIBE500_PAD}{\ButtonOK{} + \ButtonRight}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Advance one node in the game tree
|
|
\\
|
|
}
|
|
|
|
\opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD%
|
|
,SANSA_C200_PAD,IRIVER_H10_PAD,IAUDIO_X5_PAD}{\ButtonPower}%
|
|
\opt{MROBE100_PAD}{\ButtonDisplay}%
|
|
\opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{Long \ButtonSelect}%
|
|
\opt{GIGABEAT_PAD,GIGABEAT_S_PAD,PBELL_VIBE500_PAD}{\ButtonMenu}%
|
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}%
|
|
\opt{RECORDER_PAD}{\ButtonFTwo}%
|
|
\opt{ONDIO_PAD}{Long \ButtonMenu}
|
|
\opt{COWON_D2_PAD}{\TouchTopLeft}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Main Menu
|
|
\\
|
|
|
|
% \nopt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,ONDIO_PAD,RECORDER_PAD}{%
|
|
\opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD%
|
|
,IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,IRIVER_H10_PAD%
|
|
,PBELL_VIBE500_PAD}{%
|
|
\nopt{IRIVER_H10_PAD,COWON_D2_PAD,PBELL_VIBE500_PAD}{Long \ButtonSelect}%
|
|
\opt{IRIVER_H10_PAD}{Long \ButtonPlay}
|
|
\opt{COWON_D2_PAD}{Long \TouchCenter}
|
|
\opt{PBELL_VIBE500_PAD}{\ButtonOK}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Context Menu
|
|
\\
|
|
}
|
|
|
|
\opt{SANSA_E200_PAD,SANSA_C200_PAD,SANSA_FUZE_PAD,RECORDER_PAD,MROBE100_PAD%
|
|
,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,SANSA_CLIP_PAD%
|
|
,PBELL_VIBE500_PAD}{%
|
|
\opt{SANSA_E200_PAD,SANSA_C200_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{%
|
|
\ButtonRec}%
|
|
\opt{SANSA_FUZE_PAD,SANSA_CLIP_PAD}{\ButtonHome}%
|
|
\opt{RECORDER_PAD}{\ButtonOn}%
|
|
\opt{MROBE100_PAD}{\ButtonPower}%
|
|
\opt{GIGABEAT_PAD}{\ButtonA}%
|
|
\opt{GIGABEAT_S_PAD}{\ButtonPlay}%
|
|
\opt{COWON_D2_PAD}{\TouchTopRight}
|
|
\opt{PBELL_VIBE500_PAD}{\ButtonCancel}
|
|
&
|
|
\opt{HAVEREMOTEKEYMAP}{
|
|
&}
|
|
Go to the next variation when at the first node in a branch
|
|
\\
|
|
}
|
|
\end{btnmap}
|
|
\end{table}
|
|
|
|
\subsubsection{Menus}
|
|
\begin {description}
|
|
\item [Main Menu. ]
|
|
The main menu for game setup and access to other menus.
|
|
\begin{description}
|
|
\item[New.] Create a new game with your choice of board size and handicaps.
|
|
\item[Save.] Save the current state of the game. It will be saved to
|
|
\fname {"/sgf/gbn\_def.sgf"} unless otherwise set.
|
|
\item[Save As.] Save to a specified file.
|
|
\item[Game Info.] View and modify the metadata of the current game.
|
|
\item[Playback Control.] Control the playback of the current playlist
|
|
and modify the volume of your player.
|
|
\item[Zoom Level.] Zoom in or out on the board. If you set the zoom level,
|
|
it will be saved and used again the next time you open this plugin.
|
|
\item[Options.] Open the Options Menu.
|
|
\item[Context Menu.] Open the Context Menu which allows you to set play
|
|
modes and other tools.
|
|
\item[Quit.] Leave the plugin. Any unsaved changes are saved to
|
|
\fname {"/sgf/gbn\_def.sgf"}.
|
|
\end{description}
|
|
\item [Game Info. ]
|
|
The menu for modifying game info (metadata) of the current game. This
|
|
information will be saved to the SGF file and can be viewed in almost all
|
|
SGF readers.
|
|
\begin{description}
|
|
\item[Basic Info.] Shows a quick view of the basic game metadata, if any
|
|
has been set (otherwise does nothing). This option does not allow
|
|
editing.
|
|
\item[Time Limit.] The time limit of the current game.
|
|
\item[Overtime.] The overtime settings of the current game.
|
|
\item[Result.] The result of the current game. This text must follow the
|
|
format specified at \url{http://www.red-bean.com/sgf/properties.html#RE}
|
|
to be read by other SGF readers. Some examples are
|
|
\emph {B+R} (Black wins by resignation),
|
|
\emph {B+5.5} (Black wins by 5.5 points),
|
|
\emph {W+T} (White wins on Time).
|
|
\item[Handicap.] The handicap of the current game.
|
|
\item[Komi.] The komi of the current game (compensation to the white
|
|
player for black having the first move).
|
|
\item[Ruleset.] The name of the ruleset in use for this game.
|
|
The \emph{NZ} and \emph{GOE} rulesets include suicide as a legal
|
|
move (for multi-stone suicide only); the rest do not.
|
|
\item[Black Player.] The name of the black player.
|
|
\item[Black Rank.] Black's rank, in dan or kyu.
|
|
\item[Black Team.] The name of black's team, if any.
|
|
\item[White Player.] The name of the white player.
|
|
\item[White Rank.] White's rank, in dan or kyu.
|
|
\item[White Team.] The name of white's team, if any.
|
|
\item[Date.] The date that this game took place. This text must follow
|
|
the format specified at \url{http://www.red-bean.com/sgf/properties.html#DT}
|
|
to be read by other SGF readers.
|
|
\item[Event.] The name of the event which this game was a part of, if any.
|
|
\item[Place.] The place that this game took place.
|
|
\item[Round.] If part of a tournament, the round number for this game.
|
|
\item[Done.] Return to the previous menu.
|
|
\end{description}
|
|
|
|
\item [Options. ]
|
|
Customize the behavior of the plugin in certain ways.
|
|
\begin{description}
|
|
\item[Show Child Variations?] Enable this to mark child variations on
|
|
he board if there are more than one. Note: variations which don't
|
|
start with a move are not visible in this way.
|
|
\item[Disable Idle Poweroff?] Enable this if you do not want the \dap{}
|
|
to turn off after a certain period of inactivity (depends on your
|
|
global Rockbox settings).
|
|
\item[Idle Autosave Time.] Set the amount of idle time to wait before
|
|
automatically saving any unsaved changes. These autosaves go to
|
|
the file \fname {"/sgf/gbn\_def.sgf"} regardless of if you have
|
|
loaded a game or used \setting{Save As} to save the game before or
|
|
not. Set to \setting{Off} to disable this functionality completely.
|
|
\item[Automatically Show Comments?] If this is enabled and you navigate
|
|
to a node containing game comments, they will automatically be
|
|
displayed.
|
|
\end{description}
|
|
|
|
\item [Context Menu. ]
|
|
The menu for choosing different play modes and tools, adding or editing
|
|
comments, adding pass moves, or switching between sibling variations.
|
|
\begin{description}
|
|
\item[Play Mode.] Play moves normally on the board. If there are child
|
|
moves from the current node, this mode will let you follow
|
|
variations by simply playing the first move in the sequence.
|
|
Unless it is following a variation, this mode will not allow you to
|
|
play illegal moves. This is the default mode before another is set
|
|
after loading a game or creating a new one.
|
|
\item[Add Black Mode.] Add black stones to the board as desired. These
|
|
stones are not moves and do not perform captures or count as ko threats.
|
|
\item[Add White Mode.] Add white stones to the board as desired. These
|
|
stones are not moves and do not perform captures or count as ko threats.
|
|
\item[Erase Stone Mode.] Remove stones from the board as desired. These
|
|
removed stones are not counted as captured, they are simply removed.
|
|
\item[Pass.] Play a single pass move. This does not change the mode of
|
|
play.
|
|
\item[Next Variation.] If the game is at the first move in a variation,
|
|
this will navigate to the next variation after the current one. This
|
|
is the only way to reach variations which start with adding or
|
|
removing stones, as you cannot follow them by "playing" the same move.
|
|
\item[Force Play Mode.] The same as Play Mode except that this mode will
|
|
allow you to play illegal moves such as retaking a ko immediately
|
|
without a ko threat, suicide on rulesets which don't allow it
|
|
(including single stone suicide), and playing a move where there
|
|
is already a stone.
|
|
\item[Mark Mode.] Add generic marks to the board, or remove them.
|
|
\item[Circle Mode.] Add circle marks to the board, or remove them.
|
|
\item[Square Mode.] Add square marks to the board, or remove them.
|
|
\item[Triangle Mode.] Add triangle marks to the board, or remove them.
|
|
\item[Label Mode.] Add one character labels to the board. Each label
|
|
starts at the letter 'a' and each subsequent application of a label
|
|
will increment the letter. To remove a label, click on it until it
|
|
cycles through the allowed letters and disappears.
|
|
\item[Add/Edit Comment.] Add or edit a comment at the current node.
|
|
\item[Done.] Go back to the previous screen.
|
|
\end{description}
|
|
\end{description}
|
|
|