Skip to content

Clone of the official Nintendo Tetris® for the NES console and the second entry of the Fairtris video game, this time with the ultimate challenge to glitch the game!

License

furious-programming/Fairtris-2-UC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

banner.png

Fairtris 2: The Ultimate Challenge
Copyleft (ɔ) furious programming 2024. All rights reversed.


PC clone of the official classic Nintendo Tetris® for the NES console and the successor to the Fairtris video game, intended mainly for modern desktop platforms. Ready to take on the ultimate challenge? Download the game and try yourself!



Compilation and developing

Lazarus 3.2 was used to compile and work on the code, so you should use that as well (or a newer version if available). The headers for SDL2 are in the source\sdl\ subdirectory, while the .dll libraries are in the bin\ folder, where the executable file is created after compilation. The compiled .dll libraries were downloaded from the official SDL repository. So all you need to do is just open the project in Lazarus and hit the compile button.

If you are using Free Pascal IDE or regular text editor such as Notepad++ or Vim, be sure to somehow add the SDL units path in the project settings and well... keep torturing yourself.


What is Fairtris 2?

Fairtris 2 is a video game, a clone of the 35-year-old Tetris® produced by Nintendo for the Famicom and NES consoles, designed mainly for modern desktop platforms. It is the successor to the first Fairtris video game, with refreshed graphics, newly defined functionality and introducing a number of new features that ensure even more fun.


What's new in Fairtris 2?

The first Fairtris was mainly an experiment to create the classic Tetris® as a native application for modern platforms, using all available knowledge about the structure and operation of the official Tetris® from Nintendo. I consider the experiment to be a complete success, and in the meantime, the classic Tetris® scene has moved forward significantly, drastically pushing the boundaries of what is possible.

Maxout is no feat today — currently the best players in the world know no limits, they can go so far that the classic Tetris® gives up, starts rendering game frames with glitched colors, or even crashes and goes into soft lock. The first to do this was Blue Scuti, and his achievement in the form of a game crash became an incredible sensation, which was even reported by the media around the world. Soon, others joined this elite, including Fractal and PixelAndy (as of the date of writing this document). This was the main impulse for creating the Fairtris sequel, it was time to take the next step.

Removed compatibility with Nintendo Tetris®

Fairtris 2 has been redefined, new goals have been defined. The decision has been made to discontinue compatibility support with classic Tetris® and tools such as NestrisChamps and Maxout Club. The new version should have the shape of a typical game, not an experimental tool for testing various algorithms. Everything related to compatibility with the progenitor has been removed. This is mainly about the classic theme and aspect ratio, as well as the classic, clumsy control mechanics and hard-drop, which was an experiment. Transition to level 19 no longer has any significance, and there is no killscreen at level 29, which is such a high speed of falling pieces that further play becomes practically impossible. Speedrun and qualification modes have also been removed, as well as support for setting a fixed seed for RNG.

New game design and aspect ratio

The new version of Fairtris has one, richer graphics design and the game image is rendered in 16:10 aspect ratio, which is the standard for modern LCD displays. Instead of flat characters, piece bricks and other game objects, the new version uses more colors and subtle gradients, as well as more animated elements, including the main background for all game scenes. Two-color counters for various game counters were also used, with dark gray placeholders resembling electronic displays. Now it feels more like a SNES game instead of an NES game.

game.png

Unified control mechanics

The controls have been unified, only the best mechanics have been selected, ensuring the best responsiveness and intuitive control, and adapting them to the new game goals. Instead of supporting the classic control mechanics, it is now possible to set the speed of automatic shifting of pieces, called DAS. By default, the speed is consistent with its predecessor, but more experienced players can increase it to be able to stack higher and wait longer for the longbar.

New game goal

In the first Fairtris, just like in the classic Tetris®, the goal was to collect as many points as possible and reach level 29, at which most of the time the game ended (killscreen). Fairtris 2 does not have any killscreen limitations. The maximum falling speed of the pieces has been set to that of level 19, which ensures an infinitely long gameplay. However, this still does not change the fact that playing at this speed is difficult and requires a lot of experience, so the bar is still set high.

To diversify the gameplay, support for glitched colors of pieces and stack bricks has been added, consistent with that existing in Nintendo Tetris®. These glitched colors, as in the original, are used at levels 138 to 255, which requires clearing over 1,300 lines. In the original, the pieces in some levels were black and therefore almost invisible, which made playing very difficult. Since the new version of Fairtris uses gentle gradients, also for pieces and the content of the stack, the colors can be consistent with the predecessor while not being unfair.

glitch.png

The ultimate challenge is to pass level 255, which in Nintendo Tetris® caused the level counter to overflow and return to level 0. Fairtris 2 has a special handling of such a situation and a reward for the player for achieving such an outstanding achievement. Beating level 255 results in... it's a secret — It's up to you to discover what it is!

Other improvements

The new version has dozens of minor improvements and novelties, making the game's operation and controls richer and even more convenient, ensuring a better experience. It's hard to list all differences — just everything that could be improved and added was improved and added.

Important features

  • game mechanics inspired by those from the Nintendo Tetris® video game,
  • DAS mechanics fixed and spin buffering added, making the controls fabulously responsive,
  • ability to change the speed of shifting pieces according to your preferences,
  • extended mechanics with basic wall kick and multi-spawn soft-drop,
  • capped the maximum falling speed of pieces to that consistent with level 19,
  • support for NTSC and PAL regions (60fps and 50fps respectively),
  • support for as many as SEVEN random piece generators, including the classic RNG,
  • support for glitched original color palettes of pieces, on levels 138 to 255,
  • secret after beating level 255,
  • the ability to start the game from any level up to the level 19,
  • the ability to play on a keyboard or any USB controller (with input mapping support),
  • supports window mode and exclusive video mode, for maximum performance and responsiveness,
  • support for additional meters, such as tetrises, burned, as well as gain popup,
  • stores the best results for each game region and RNG type,
  • has a pause menu with the ability to quickly restart the game and change options,
  • shows the game summary screen after each game,
  • it's light and very fast — should run smoothly even on a heavily loaded PC,
  • it is fully portable, no installation required,
  • and many more!

Table of Content

General

Game screens

Game specifics


License

Information on the license can be found in the LICENSE file. In general, this project is also completely free, you can use it for whatever purpose you want, both the entire game and parts of it. So play, share, fork, modify — do what you want, I still don't give a shit about it.


Acknowledgments and useful links

In addition to the previously gained knowledge, useful to create the first Fairtris video game, during the development of Fairtris 2 the FCEUX emulator and a modified ROM of the original Nintendo Tetris®, called TetrisGYM, were used. Many thanks to the authors of Lazarus, the SDL2 headers and the SDL library. These tools allowed for the convenient creation of the Fairtris 2 in a light and super-efficient form.

The animation of the game's main background is modeled on the one from the main menu of Chase Ace 2, developed and published by the Space Time Foam team.