146 lines
4.7 KiB
ReStructuredText
146 lines
4.7 KiB
ReStructuredText
Taisei
|
||
======
|
||
|
||
.. contents::
|
||
|
||
Introduction
|
||
------------
|
||
|
||
Taisei is an open clone of the Tōhō Project series. Tōhō is a one-man
|
||
project of shoot-em-up games set in an isolated world full of Japanese
|
||
folklore.
|
||
|
||
Installation
|
||
------------
|
||
|
||
Dependencies
|
||
^^^^^^^^^^^^
|
||
|
||
- SDL2 >= 2.0.5, SDL2_ttf, SDL2_mixer
|
||
- zlib
|
||
- libzip >= 1.0
|
||
- libpng >= 1.5.0
|
||
- OpenGL >= 2.1
|
||
|
||
Build-only dependencies
|
||
^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
- meson >= 0.39.0 (build system)
|
||
- Python >= 3.4
|
||
- pkg-config
|
||
- docutils (optional, for documentation)
|
||
|
||
To build and install Taisei just follow these steps.
|
||
|
||
::
|
||
|
||
mkdir build
|
||
cd build
|
||
meson --prefix=$yourprefix ..
|
||
ninja
|
||
ninja install
|
||
|
||
This will install game data to ``$prefix/share/taisei/`` and build this
|
||
path *statically* into the executable. This might be a package
|
||
maintainer’s choice. Alternatively you may want to add
|
||
``-Dinstall_relative=true`` to get a relative structure like
|
||
|
||
::
|
||
|
||
$prefix/taisei
|
||
$prefix/data/
|
||
|
||
``install_relative`` is always set when building for Windows.
|
||
|
||
Where are my replays, screenshots and settings?
|
||
-----------------------------------------------
|
||
|
||
Taisei stores all data in a platform-specific directory:
|
||
|
||
- On **Windows**, this will probably be ``%APPDATA%\taisei``
|
||
- On **macOS**, it's ``$HOME/Library/Application Support/taisei``
|
||
- On **Linux**, **\*BSD**, and most other **Unix**-like systems, it's
|
||
``$XDG_DATA_HOME/taisei`` or ``$HOME/.local/share/taisei``
|
||
|
||
This is referred to as the **Storage Directory**. You can set the
|
||
environment variable ``TAISEI_STORAGE_PATH`` to override this behaviour.
|
||
|
||
Game controller support
|
||
-----------------------
|
||
|
||
Taisei uses SDL2's unified GameController API. This allows us to
|
||
correctly support any device that SDL recognizes by default, while
|
||
treating all of them the same way. This also means that if your device
|
||
is not supported by SDL, you will not be able to use it unless you
|
||
provide a custom mapping. If your controller is listed in the settings
|
||
menu, then you're fine. If not, read on.
|
||
|
||
An example mapping string looks like this:
|
||
|
||
::
|
||
|
||
03000000ba2200002010000001010000,Jess Technology USB Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,
|
||
|
||
There are a few ways to generate a custom mapping:
|
||
|
||
- You can use the
|
||
`controllermap <https://aur.archlinux.org/packages/controllermap>`__
|
||
utility, which `comes with SDL source
|
||
code <https://hg.libsdl.org/SDL/file/68a767ae3a88/test/controllermap.c>`__.
|
||
- If you use Steam, you can configure your controller there. Then you
|
||
can add Taisei as a non-Steam game; run it from Steam and everything
|
||
should *just work™*. In case you don't want to do that, find
|
||
``config/config.vdf`` in your Steam installation directory, and look
|
||
for the ``SDL_GamepadBind`` variable. It contains a list of SDL
|
||
mappings separated by line breaks.
|
||
- You can also try the `SDL2 Gamepad Tool by General
|
||
Arcade <http://www.generalarcade.com/gamepadtool/>`__. This program
|
||
is free to use, but not open source.
|
||
- Finally, you can try to write a mapping by hand. You will probably
|
||
have to refer to the SDL documentation. See
|
||
`gamecontrollerdb.txt <misc/gamecontrollerdb/gamecontrollerdb.txt>`__
|
||
for some more examples.
|
||
|
||
Once you have your mapping, there are two ways to make Taisei use it:
|
||
|
||
- Create a file named ``gamecontrollerdb.txt`` where your config,
|
||
replays and screenshots are, and put each mapping on a new line.
|
||
- Put your mappings in the environment variable
|
||
``SDL_GAMECONTROLLERCONFIG``, also separated by line breaks. Other
|
||
games that use the GameController API will also pick them up.
|
||
|
||
When you're done, please consider contributing your mappings to
|
||
`SDL <https://libsdl.org/>`__,
|
||
`SDL_GameControllerDB <https://github.com/gabomdq/SDL_GameControllerDB>`__,
|
||
and `us <https://github.com/taisei-project/SDL_GameControllerDB>`__, so
|
||
that other people can benefit from your work.
|
||
|
||
Also note that we currently only handle input from analog axes and
|
||
digital buttons. Hats, analog buttons, and anything more exotic will not
|
||
work, unless remapped.
|
||
|
||
Troubleshooting
|
||
---------------
|
||
|
||
Sound problems (Linux)
|
||
^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
If your sound becomes glitchy, and you encounter lot of console messages
|
||
like:
|
||
|
||
::
|
||
|
||
ALSA lib pcm.c:7234:(snd_pcm_recover) underrun occurred
|
||
|
||
it seems like you possibly have broken ALSA configuration. This may be
|
||
fixed by playing with parameter values of ``pcm.dmixer.slave`` option
|
||
group in ``/etc/asound.conf`` or wherever you have your ALSA
|
||
configuration. Commenting ``period_time``, ``period_size``,
|
||
``buffer_size``, ``rate`` may give you the first approach to what to do.
|
||
|
||
Contact
|
||
-------
|
||
|
||
http://taisei-project.org/
|
||
|
||
#taisei-project on Freenode
|