[a Work In Progress fork, expect history overwriting]
Find a file
2017-09-22 14:46:51 +03:00
bgm Use the key=value format for bgm.conf too 2017-03-11 23:57:03 +02:00
cotire@3d63330c99 Optional cotire support to speed up builds (disabled by default) 2017-04-20 07:44:31 +03:00
gamecontrollerdb support loading gamepad mappings; readme updates 2017-09-22 13:32:01 +03:00
gfx replaced hardrendered version text 2017-09-18 10:49:06 +02:00
models Make Stage 1 great again 2017-03-04 10:19:53 +01:00
scripts bundled documentation touch-ups, minor install fixes 2017-09-22 14:46:51 +03:00
sfx sfx: make generic_shot less irritating 2017-02-18 04:03:13 +01:00
shader ricci changes, with basic diff. balancing 2017-09-11 06:44:16 +03:00
src support loading gamepad mappings; readme updates 2017-09-22 13:32:01 +03:00
.gitignore make build work without git 2017-09-17 06:30:25 +03:00
.gitmodules Optional cotire support to speed up builds (disabled by default) 2017-04-20 07:44:31 +03:00
CMakeLists.txt bundled documentation touch-ups, minor install fixes 2017-09-22 14:46:51 +03:00
COPYING update copyright and credits 2017-09-12 04:28:15 +03:00
OSX-iconset.icns Generate a fancy .app bundle when building for OSX 2017-02-25 22:22:13 +02:00
README.md support loading gamepad mappings; readme updates 2017-09-22 13:32:01 +03:00
README_installed.txt bundled documentation touch-ups, minor install fixes 2017-09-22 14:46:51 +03:00
STORY.txt bundled documentation touch-ups, minor install fixes 2017-09-22 14:46:51 +03:00
taisei.desktop Make it mass desktop-file-validate 2017-08-19 16:19:23 +02:00
taisei.png desktop and story files added 2012-08-07 19:53:08 +02:00

Taisei

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
  • libpng >= 1.5.0
  • OpenGL >= 2.1
  • CMake >= 3.2 (build system)
  • pkg-config (build dependency)

To build and install Taisei just follow these steps.

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$yourprefix ..
make
make install

This will install game data to $prefix/share/taisei/ and build this path statically into the executable. This might be a package maintainers choice. Alternatively you may want to add -DRELATIVE=TRUE to get a relative structure like

$prefix/taisei
$prefix/data/

RELATIVE is always set when building for Windows or macOS.

Where are my replays, screenshots and settings?

Taisei stores all data in a platform-specific directory:

  • On Windows, this will probably be %APPDATA%\Roaming\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

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 utility, which comes with SDL source code.
  • 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. 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/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, SDL_GameControllerDB, and us, 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.

Background music

Currently Taisei does not include any background music. To use this feature, you should have the required audio files in the bgm/ subdirectory. BGM (as well as SFX) may be in .wav, .flac, or .ogg format; additionally you may try other formats such as .mp3, .aiff, .mod, .xm, etc. if your build of SDL2_mixer supports these formats.

Complete music pack consists of 16 bgm_*.(ogg/wav/flac) files, where * means:

    credits     BGM for credits screen
    ending      BGM for ending
    gameover    BGM for game over screen
    menu        BGM for menus (excluding in-game menu which pauses BGM)
    stageN      N=1..6, standard stage theme
    stageNboss  N=1..6, boss theme for a stage

If you want to specify stage/boss theme names to be shown during gameplay, you may do it by editing the bgm/bgm.conf file.

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