DTET Rotation System
The DTET Rotation System, as the name implies, is the rotation system used in DTET, a fan game based on the TGM series. Although sometimes referred to by the abbreviation D.R.S., both the abbreviation and expanded form are informal names. The system was not given a specific name by Mihys, the author of the game.
- S, Z and I pieces have four rotation states instead of two. However, the two horizontal states are identical.
- The horizontal orientation of the I tetromino is shifted 1 cell down.
Pieces spawn horizontally in the center, (left of center for the odd width pieces) with their topmost solid block in row 20. The J, L and T spawn pointing downwards.
DTET only features two rotation buttons, each with a different direction which are not duplicated. Normally, the right rotation button rotates counter-clockwise, and the left rotation button rotates clockwise. However, due to its sophisticated button processing routine, DTET still manages to retain the facility for rapid double rotations without having to double-tap with a single finger. The button processing routine also enables other innovative features, namely: instantaneous 180° Flips, Rotation Reversal, and Failure Compensation, as well as allowing for IRS-like behavior.
For as long as a button is pressed (held down), the game will continually attempt to process it, every frame, until it succeeds in producing a rotation. Once a pressed button has produced a rotation, it must be released before it can produce any further rotations. Therefore, if a rotation fails due to an obstacle, but the rotate button is held down whilst the piece is moved away from the obstacle, the rotation will occur on the first frame on which it is possible. This has been called "Failure Compensation". Also, if a rotation is attempted during ARE and the rotate button held down until spawn, the rotation will occur on the first frame after spawn, if it is possible to do so, thereby creating an IRS-like rotation.
If after producing a rotation, a rotate button is not released, it will cause all rotations produced by the other rotate button to be reversed in sense, i.e. "Rotate Left" will produce a clockwise rotation and "Rotate Right" will produce a counter-clockwise rotation. This has been called "Rotation Reversal", and effectively allows the player to produce two successive rotations in the same sense. For example, to replicate the A, C double counter-clockwise rotation possible in the TGM series, the player would press and hold "Rotate Left", then whilst still held, press "Rotate Right".
If both buttons are pressed, and both are yet to produce a rotation, the game will continually attempt to process both buttons, every frame, potentially producing what looks like an instantaneous 180° rotation. This situation can arise if the buttons are pressed simultaneously, or if one or both buttons were pressed at an earlier frame but could not effect a rotation at that time due to some obstacle, and therefore Failure Compensation was applied. Regardless of which button was actually pressed first, DTET will attempt the processing order of "Rotate Left" followed by "Rotate Right" first, and "Rotate Right" followed by "Rotate Left" second. Note that if the first rotation is successfully processed, it will cause the subsequent rotation to be reversed. In effect, DTET is testing the following two possibilities:
- Two successive counter-clockwise rotations, the first with left kick precedence and the second with right kick precedence (see below for wall kick precendence)
- Two successive clockwise rotations, the first with right kick precedence and the second with left kick precedence.
Although any intermediate state is never rendered, it must still exist in order for the two successive rotations to be successful. When rotating J, L and T pieces, there is a third possibility that is attempted when the above two fail:
- rotate 180° with left kick precedence, bypassing any intermediate state.
Even if one of the three options can only be executed partially, DTET will always do this in preference to attempting a later option; e.g. a single counter-clockwise rotation will be performed in preference to two successive clockwise rotations. Failure Compensation will still apply to any rotate button which failed to produce a rotation.
The wall kicks in DTET are an extension of the system pioneered by Arika in TGM's rotation system. In addition to testing for wall kicks 1 cell to the left and right, DTET will also continue to test for wall kicks 1 cell down, followed by 1 cell diagonally down-left and down-right. DTET's wall kicks are sometimes described as "symmetric", the reason being that kicks left and down-left take precedence when rotating with the "Rotate Left" button, and kicks right and down-right take precedence when rotating with the "Rotate Right" button. Note that kick precendence is independent of whether the rotation is clockwise or counter-clockwise and is determined solely by the button pressed; "Rotate Right" will always have right kick precendence, and "Rotate Left" will always have left kick precendence:
|"Rotate Left"||"Rotate Right"|
|1||one space left||one space right|
|2||one space right||one space left|
|3||one space down||one space down|
|4||one space down-left||one space down-right|
|5||one space down-right||one space down-left|
Additionally, the rotation system does not employ the kick restrictions in ARS. As long as a piece is able to pass one of the kick tests, it will kick and rotate, regardless of whether or not the adjacent blocks are occupied.
This rotation system appears in Heboris Unofficial Expansion with the following differences:
- The button to perform double rotations is mapped to a separate button, instead of being executed by pressing both left and right rotation buttons. This is treated as an instantaneous 180° rotation with left kick precedence, bypassing any intermediate state, and unlike the actual rotation system in DTET, I, S and Z tetrominoes are also allowed to perform this move.
- It is possible to perform floor kicks like Ti-ARS, ACE-ARS and ACE-ARS2.
It appears as an available option in Tessellate, albeit with some inaccuracies regarding double rotation.