Log In  

Cart #tetromix-3 | 2021-09-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Inspired by the PicoMino game, I decided to create my own attempt at replicating the famous Russian puzzle game.

Pretty much all the expected functionality is available, such as 1- and 2-player gameplay, preliminary sound and graphical effects, level (garbage height) and speed selection, etc.


The game provides two modes: A (endless) and B (25 lines).

In the A mode, the game continues until any of the players top out (until the game can't put a new piece on top of the playfield).
In a 2-player game, the surviving player is declared the winner.

In the B mode, the game also ends if the player eliminates 25 lines of blocks.
In a 2-player game, the player who manages to do so first is declared the winner.

When playing a 2-player game in any of the modes, elimination of more than one line will also send one fewer line of "garbage" to the other player, which will rise from the bottom of their playfield as soon as they put down a block. However, the players can defend against oncoming garbage if their current piece eliminates some lines, too. Each line removed prevents a garbage line from appearing. The amount of garbage lines the player is about to receive is shown as a blinking line saying "+1L" (or more) on top of their playfield.


left/right/down - move piece
up - drop piece immediately
O (Z or C) - rotate counterclockwise
X (X) - rotate clockwise

(You can swap the rotation directions in the options menu if you prefer.)


On the "copyleft" screen, press the following buttons in order. If you pressed them correctly, you should hear a short sound. If you made a mistake, press the ✕ button and try again. The screen stays on for 5 seconds.

LEFT, RIGHT, O, O - Use a modern style randomizer.
O, DOWN, DOWN, DOWN - Draw a "shadow" at the spot where the piece will fall.

To play at speeds 10~19, hold LEFT while selecting between 1 and 2 player modes.


  • Add any missing sound effects and two more music tracks



  • Got rid of another embarrassing bug that prevented 2-player games from starting.



Cart #tetromix-2 | 2021-09-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Got rid of a rather embarrassing bug that crashed the game whenever lines were being cleared.


Cart #tetromix-1 | 2021-09-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Switched from storing the current game board in the map to using tables. Fixed the bug where, after a finished game, the options menu is corrupted.


Cart #tetromix-0 | 2021-09-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Used PICO-8 0.2.3's new TOSTR flags to simplify handling scores. This will break high score tables, however.
  • Added an options menu, with the option to swap the rotation so that O rotates clockwise and X rotates counterclockwise instead.
  • Removed some unused code, cleaned up indentation.


Cart #22679 | 2016-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Divided score variables in two to avoid overflow
  • Set a hard cap on all scores (999999)
  • Tweaked the interface to allow for scores higher than 99999.


Cart #22388 | 2016-06-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Introduced a high score list (work in progress, may have some bugs)
  • Changed the menus to accomodate for high score lists


  • Fixed shadow display
  • Fixed the ability to play on speeds 10+ (the key combination was changed)


Cart #22086 | 2016-06-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed garbage prevention mechanics


Cart #22084 | 2016-06-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a functioning two-player mode
  • Switched from 8x8 tile blocks to 6x6 sprites
  • Increased repeat speed for horizontal movement


Cart #21347 | 2016-05-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is an experimental "pirated" cartridge with a custom label. Its actual contents are exactly the same compared to the previous version, only the label (the PNG itself) is different.


Cart #20922 | 2016-05-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Some slight bug fixes
  • Added a way to unlock higher speeds


Cart #20789 | 2016-05-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a "show shadow" secret code


Cart #20764 | 2016-05-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added a speed display
  • Added speed increases every 10 lines
  • Readjusted delays


Cart #20705 | 2016-05-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed a missing tile in the title screen.


Cart #20704 | 2016-05-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Tried to fix the second part of the first music track.


Cart #20579 | 2016-05-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed some small bugs
  • Added a better victory screen


Cart #20564 | 2016-05-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed the bug that made it impossible to use the â—¯ button to re-enter secret codes


Cart #20562 | 2016-05-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Added an alternative piece randomizer
  • Added a secret code system


Cart #20561 | 2016-05-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

  • Fixed the square piece's "NEXT" sprites
  • Added a hard drop feature


Cart #20543 | 2016-05-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#20544 2016-05-13 13:24 ( Edited 2021-09-07 07:42)

Aaack, you don't have hard drop when you press up.

After that it starts to get a lot pickier... notably that most modern implementations usually use a 'shuffled list' randomizer, so you always get all 7 pieces in a random order before you have a chance of seeing a piece again.

P#20553 2016-05-13 15:52 ( Edited 2016-05-13 19:53)

There. The current version should have both the randomizer and the hard drop. I haven't tested both extensively, but they should work.

The hard drop is available automatically. To enable the modern randomizer, see the "SECRET CODES" section.

P#20563 2016-05-14 02:48 ( Edited 2016-05-14 06:48)

It's probably one of the best I saw on pico-8, but please FIX the music, it's just sound horrible on the second part..

Anyway, good job even if it's not a finished version!

You should also add the shadow that we have on the modern rules, also on level 1, the drop speed is too quick, but that's not a big issue :)

P#20582 2016-05-14 19:14 ( Edited 2016-05-14 23:14)

Sorry for the music. I am terrible at using the tracker (and at music in general). I'll try to fix it in the next version, though.

P#20611 2016-05-15 11:50 ( Edited 2016-05-15 15:50)

No worries :) your game is good anyway and that the important part :)

P#20724 2016-05-17 16:57 ( Edited 2016-05-17 20:57)

One missing thing is the sound a piece makes when it locks, it's an important feedback that allow better control, especially at high speed., the key repeat is also maybe a bit too slow

P#20782 2016-05-18 12:30 ( Edited 2016-05-18 16:30)

This is very nice. I love that music! You did a great job.

Now, if you want to get really serious and awesome with this, I present to you a document that has fueled many nights of late obsessive programming: http://tetris.wikia.com/wiki/Tetris_Guideline.

P#20788 2016-05-18 13:10 ( Edited 2016-05-18 17:10)

@Godzil: Added a sound for that, should work. I was a bit lazy with the key repeat, using the keyp() function for it, but, having checked it with the Game Boy original, it seems to fit.

@e3th: Well, I was going more for a replication of the Game Boy games, but some features from newer titles are already included (hard drop, shadow pieces, the "Random Generator").

I will keep that list in mind, but I can certainly say I won't be able to introduce every single feature in there (the screen size of the PICO-8 only allows for a 10x16 playfield, for example, and I'm not planning on switching to smaller blocks any time soon).

P#20792 2016-05-18 13:51 ( Edited 2016-05-18 17:51)

Wow huge improvements!
That's definitely the best tetris on Pico-8!

Two things to report:

  • a bug as we can't move and rotate a block at the same time, at high speed it's start to be really important
  • hard drop should give you some points, I can't remember exactly how much, but as hard dropping is risky it reward you. (so the end score is higher if you hard drop a block instead of just waiting for it to fall, there is no hard drop on the gameboy version, but I'm pretty sure that a soft drop was rewarded too)

One other thing is that my hands don't like pico's key for that game, they had the habit of the GB/DS (& WonderSwan) key layout, and I tend to harddrop instead of rotate, and the reverse, weird :D But you can't do anything for that, it's pico's fault ;)

P#20925 2016-05-20 12:54 ( Edited 2016-05-20 16:54)

The Guideline is totally a thing to keep in mind, but for an implementation on limited hardware it's not like you'll get dragged off in the night by Tetris Ninjas or anything for ignoring it. I'm pretty sure the official post-guideline J2ME phone implementations often bent it a bit for platform reasons too.

P#20940 2016-05-20 14:11 ( Edited 2016-05-20 18:11)

That custom cartridge though :P Sadly the label isn't placed in the same area as the official carts though, so it looks a little odd on the bbs.

P#21378 2016-05-26 03:22 ( Edited 2016-05-26 07:22)

This was just an experiment in trying to guess how the PICO-8 encodes cartridge data into PNGs. Looks like the experiment succeeded. The newer versions of Tetromix will use the standard cartridge picture.

I also made a simple command-line program that allows one to replace their PICO-8 cartridge images with custom PNGs of the same size: https://github.com/usrshare/pico8-customcart

P#21379 2016-05-26 03:34 ( Edited 2016-05-26 07:34)

Nice - I simply added a small load routine, which copied the sprite section of another cartridge on the screen and adds a line of text. Did the job as well.

P#21385 2016-05-26 08:00 ( Edited 2016-05-26 12:00)

ooh, that looks much better than my python solution that explodes on various PNG formats.

P#21403 2016-05-26 12:21 ( Edited 2016-05-26 16:21)

Excellent work. Love it!

P#21622 2016-05-29 11:07 ( Edited 2016-05-29 15:07)

Bug with shadow code: When shadow and blocks intersect, shadow is drawn on top.

P#22094 2016-06-02 08:49 ( Edited 2016-06-02 12:52)


P#22102 2016-06-02 11:53 ( Edited 2016-06-02 15:53)

I find the controls to be a bit confusing, I'm used to down being drop and up being rotate clockwise.

P#22136 2016-06-02 21:26 ( Edited 2016-06-03 01:26)

I recommend "Chill" from Dr. Mario as one of the alternate tracks. :D

Ivoah: That's because you're used to the old Win9x versions... this is clearly a little inspired by T3: The Grand Master (the latest notable arcade version).

P#22316 2016-06-05 01:03 ( Edited 2016-06-05 05:05)

Love the game!! You should add putting names in for high scores.

P#23877 2016-06-29 14:58 ( Edited 2016-06-29 18:58)

Pretty sure the latest version actually does.

P#24630 2016-07-05 12:08 ( Edited 2016-07-05 16:08)

[Please log in to post a comment]