Login
Tetris 2K21
Title:Tetris 2K21
Original version:Tetris
Category:Game/Tetris
Release Date:
Language:English
Size:64K
Machine:PAL & NTSC
Code Type:Machine code
Distribution:Freeware
Game ending type:No end (highscore)
 Play Online!
Released by:Legion Of Doom (LOD)
Code by:Csabo
Additional graphics by:KiCHY
Notes:A Tetris game with NES Tetris rules. An improved version of the original (see below). V1.1 was released on 2021-12-15, followed by V1.2 on 2023-04-07.
User Rating: 9.6/10 (10 votes)
User comments: Read comments
Tetris 2K21 Title Screenshot

Tetris 2K21 Screenshot


Hall Of Fame
1Csabo189,606YAPE 1.2.1.
2Spektro188,149VICE xplus4 3.1.
3Luca183,872Played on real hardware.
4dLst78,509Yape 1.2, PC cursors of course :)
5Brazil76,554Yape 1.2.0.
6Ikemitsu74,474
7Plus4Punk65,269
8smbhax 200056,384Played on Plus4emu.
9marcos6439,620
10Gaia37,925
11SukkoPera29,548
12gerliczer27,053plus4emu 1.2.11 + gamepad.
13George26,716
14David36022,222Played on YAPE.
15Atisoft21,470YAPE 1.2.0.
16RĂ¼diger20,353
17MIK20,080Played on real hardware.
18VIPER19,269Played on MiSTer (FPGA).
19Saberman11,777
20MMS9,569
21DGS6,400Yape 1.2.0.
22C64 Masters5,711
23Mike Bailey1,731
24PARALAX649


Publications
Review: Zzap! 4/89 (Magazine/Italian) pg. 41


Effects
PartEffect nameParametersNotes
SID Support 
DIGIMUZ Support 


Author's Comments
Why this project?
I wanted to fix the out-of-tune digibass in the in-game music, it bothered me since... forever. The original conversion of the in-game music also never turns the TED channels off, which causes the lead to get stuck, and play a very long, very high, frankly ear-hurting note during the "digi only" part of the music. Once that got fixed, I was going to fix a few more issues... and this project just "ran away".

What's wrong with the Vortex release?
Ah, well. For a 1990 release, nothing! I was amazed when I first saw it! Intro! Colors! Game! Digimusic! The achievement of the guys cannot be denied, we all love them and cherish them as "the greats". As a 2021 release however... Whoo boy, where do I start. Simply put: there isn't a single part of the original that doesn't have some kind of problem. A short run-down:
- Out-of-tune digibass (as mentioned before). In addition, since the music is called from the main program (instead from interrupt), when the game has to remove 4 lines at once, the music skips one frame.
- Weird (and buggy) scoring: the game (where the goal is to complete lines) does not score completing lines at all, instead, each piece has an arbitrary, fixed score. However, even that doesn't work, due to an overflow bug, the game counts 5+5 = 11.
- Weird rules: TCFS mentioned in his interview that he didn't know anything about Formula 1 when he wrote Grand Prix Circuit. One could say that the original is a Tetris game written by someone who doesn't know the rules of Tetris :-) The game has weird rules for rotation, piece spawn, etc. For example, the long bar spawns vertically! Additionally the gameplay has other bugs: "pushing" the pieces into the left or right walls sometime cause the game to slow down. After dropping a piece, the next piece will spawn in an incorrect place (one unit too low). The game has a "stack leak": while playing, take a look at the stack ($100) in an emulator monitor. You will see that it quickly fills up with return addresses; somewhere in the game loop there's a JSR instead of a JMP.
- Wrong colors: it's obvious that the pieces have very odd color choices. Only once we look at the code does it become clear why: even though the game has a color and a luminance value stored for each piece, only the color is used for both. Therefore we end up with red ($2) at luminance 2, cyan ($3) at luminance 3, etc.
- There's no progression; the entire game is one "level". Due to how slow the pieces are falling, even a medium skilled Tetris player can play it forever (though thanks to the low scoring, it will be a sad, boring affair).
- The high score table's input routine doesn't handle key repetition properly, which makes it difficult to type.
- The high score checker has a bug: if you happen to score exactly the same as an existing entry, you will not appear in the high score list at all!

In addition to the bugs, the code was just badly written. (I can't fault the authors: it's evident that they did this all from Monitor! They didn't have the comfy cross-platform development tools we have now.) In the loops where the pieces are drawn and erased, pointers which don't change are looked up each time (instead of just once, before the loop), etc. Therefore... I threw the entire code out and re-wrote the game engine from scratch.

It this a "new" game then?
Well... the entire game code is brand new, the graphics are brand new (thanks to KiCHY), and most everything else has been replaced :-) I honestly didn't quite know how to deal with this, but now it should be clear that calling "Tetris 2K21" an "improved version of the original" is an understatement :-)

Why 2K21? What happened to "Deluxe"?
Yes, I've been fixing up games and called those releases Deluxe (Major Blink, Domino, Tom Thumb). I reserve the name "Deluxe" for a possible future game. The idea for 2K21 came from Chronos (thanks!), I figured it would work for this release.

What are the rules of Tetris anyway?
It's a rabbit hole, if you want to fall down there are many wikis, including the Tetris Wiki. I had to pick one set of rules, and I picked the NES version. It was released in 1989, which is very close to the Vortex release, and this version is still used in the CTWC (Classic Tetris World Championship) today!

What's relevant for us:
Rotation system: Nintendo Rotation System (right-handed)
Lock delay, wall kick, hard-drop: Not present
DAS: PAL: 12 frames initially, 4 frames after; NTSC 16 frames initially, 6 frames after
Scoring:
1 line: 40 * (level+1)
2 lines: 100 * (level+1)
3 lines: 300 * (level+1)
4 lines: 1200 * (level+1)
In addition, each line soft-dropped is scored 1 point.
Level progression: New level every 10 lines (Even though the level number is not displayed in a separate line, since levels increase after 10 lines, it is the first two digits of the "LINES" number. E.g. if you cleared "031" lines, you are on Level 03.)
Game speed: (the table is too large to be copied here, but both PAL and NTSC per-frame speed is faithfully copied.)

Finally, here's the...
List of Changes/Improvements:
- Proper rules (taken from the NES version)
- The game is now NTSC compatible
- A C16 version, which runs on (you guessed it) 16K machines (exact same game, minus music and high score table).
- In-game music improvements:
= Digibass no longer out-of-tune
= Notes on main channels are proper length (not infinite)
= Full SID support: when a SID card is present, the music is 3 channels SID + TED digi (which sidesteps the problem that new 8580 SID chips play digi very quietly)
= DIGIMUZ support: when an AY card is present, the music is 2 channels TED + AY digi
- Improved TED conversion of the title screen and high-score musics (also SID support)
- Both joystick supported (Joystick fire remains right rotation)
- Keyboard support added (Cursor + Z/X, this is the only way to have both left/right rotation)
- Improved colors, replaced background graphics
- High score table bug fixed
- "TODAYS GREATESTS" was missing the apostrophe, since the font didn't have one, this has been added
- Fixed the keyboard repeat delay in high score input.

Big thanks to KiCHY for graphics and color design, Chronos, Gaia, gerliczer, Luca and siz for testing.

Enjoy Tetris 2K21!


V1.1
V1.1 was released on 2021-12-15. Changes:

- One bug fixed.
- Adjusted joystick sensitivity.
- You can start the game by moving the joystick left, which will cause the fire button to rotate the pieces to the left.
- You can press ">" to start the game with alternative keyboard controls, specifically for Commodore 16 users (since the cursor keys are inconvenient): Z/X to rotate, "<"/">"/"?" to move and drop.

The new version does not invalidate the current high scores, the Hall of Fame accepts either version.

Thanks to Chronos, Luca, marcos64 and siz for testing!


V1.2
V1.2 was released on 2023-04-07. Changes:

- Fixed a bug explained in this video.

Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon