Texmaster

Texmaster is one of many fan games inspired by the TGM series by Arika, available for Windows, GNU/Linux and macOS. It is the most accurate TGM clone available, and it features game modes based on Tetris The Grand Master, Tetris The Absolute The Grand Master 2 PLUS, and Tetris The Grand Master 3 Terror-Instinct.

Game Modes
This game includes all of the modes in the three TGM arcade games, except Easy and Sakura from TGM3.

Novice
Mimics the Normal mode of Tetris The Absolute The Grand Master 2 PLUS, but with no item blocks present unlike the original TAP Normal mode, as they aren't programmed in Texmaster.

Normal
Mimics the gameplay of Tetris The Grand Master.

Advance
Mimics TGM+ mode from Tetris The Absolute The Grand Master 2 PLUS.

Special
Mimics Master mode from Tetris The Absolute The Grand Master 2 PLUS.

Sudden
Mimics T.A. Death mode from Tetris The Absolute The Grand Master 2 PLUS.

Doubles
Mimics Doubles mode from Tetris The Absolute The Grand Master 2 PLUS.

Special Ti
Mimics Master mode from Tetris The Grand Master 3 Terror Instinct. The difference between this and the original TGM3 Master mode is that the grade and score are always displayed in-game.

Sudden Ti
Mimics Shirase mode from Tetris The Grand Master 3 Terror Instinct. Similar to Special Ti, there is a score and grade display always available while playing. When the player does not break the level 500/1000 torikan, instead of the game ending prematurely, the credits will roll.

Custom Sounds & Graphics
Texmaster 2009 allows the user to replace the default background graphic and the default sounds. To replace the background graphics, simply move some BMP images, sized 320 x 240, into a folder called "data" within the Texmaster folder. Then, name the files like the following: bg_xx.bmp where xx is 00-09 (representing the Stage).

To replace the sound, simply move some WAV files into the aformentioned "data" folder within the Texmaster directory. In newer versions, starting with Texmaster2009-2beta3, they are in the ADPCM format. To convert a WAV file to an ADPCM file for this game, simply drag and drop the file to adpcm.exe (Included with Texmaster2009-2beta3). Afterwards, place it into the "data" folder of the game. The allowed filenames are as follows (from data/data.html):

BGM:
 * tm1_1.wav	(NORMAL 000-499)
 * tm1_2.wav	(NORMAL 500-999)
 * tm2_1.wav	(SPECIAL 000-499)		(NOVICE 000-299)
 * tm2_2.wav	(SPECIAL 500-699)	(SUDDEN 000-299	NOVICE staff roll)
 * tm2_3.wav	(SPECIAL 700-899)	(SUDDEN 300-499)
 * tm2_4.wav	(SPECIAL 900-999)	(SUDDEN 500-999)
 * tm3_1.wav	(SPECIAL Ti 000-499(speed))
 * tm3_2.wav	(SPECIAL Ti 500-799(speed))
 * tm3_3.wav	(SPECIAL Ti 800-1899(speed))	(SUDDEN Ti 000-499)
 * tm3_4.wav		(SUDDEN Ti 500-699)
 * tm3_5.wav		(SUDDEN Ti 700-999)
 * tm3_6.wav		(SUDDEN Ti 1000-1299)
 * tm1_endroll.wav	(NORMAL staff roll)
 * tm2_endroll.wav	(SPECIAL staff roll)
 * tm3_endroll.wav	(SPECIAL Ti / SUDDEN Ti staff roll)
 * tm2_menu.wav	(menu)
 * tm3_menu.wav
 * tm1_gameover.wav	(NORMAL game over)
 * tm2_gameover.wav	(NOVICE / ADVANCE / SPECIAL / SUDDEN game over)
 * tm3_gameover.wav	(SPECIAL Ti / SUDDEN Ti game over)

 Looping the music 

Texmaster has the ability to loop a BGM back to an earlier part of the song when it reaches the end. Open the bgm_special_loop.txt file within the data folder. Specify the music filename and then the number of samples after which it should loop. For example, a normal WAV file might be 44,100 Hz, or 44100 samples per second. Multiply the samples per second by the seconds of the loop point (drop the resulting decimal places).

Example file:

data/tm2_1.wav 620243

data/tm2_2.wav 0

data/tm2_3.wav 0

data/tm2_4.wav 0

Effect
 * applphouse.wav
 * break.wav
 * chime.wav	(SPECIAL Ti / SUDDEN Ti *99 chime)
 * chime2.wav	(SPECIAL SUDDEN *99 chime)
 * danger.wav
 * decision.wav
 * get_medal.wav
 * gm.wav
 * grade_up.wav
 * hold.wav
 * level_up.wav
 * line_fall.wav
 * rotates_beforehand.wav	(irs)
 * select.wav
 * tetromino_landing.wav
 * tetromino_lock.wav
 * voice_go.wav
 * voice_ready.wav
 * next_yellow.wav	(O piece)
 * next_blue.wav	(J piece)
 * next_orange.wav	(L piece)
 * next_green.wav	(Z piece)
 * next_perple.wav	(S piece)
 * next_skyblue.wav	(T piece)
 * next_red.wav	(I piece)
 * cool.wav
 * regret.wav