TetriNET Is Back: A Faithful Web Port of the 1997 Classic

Remember TetriNET? Six players, one server, and a bottom row full of little lettered blocks that could nuke your opponent’s field. St0rmCat released TetriNET v1.13 in February 1997, for Windows 95/NT, and the original readme opened by admitting that Tetris had “been done 2 billion times before (give or take a few bil)”. Then it went on to eat countless hours of everyone’s time anyway.

Today we’re releasing our newest game: a faithful web port of TetriNET 1.13 that runs right in your browser. No install, no finding a server on EFnet, no port forwarding. Create a room, send the invite link to up to five friends, and start dropping blocks on each other.

▶ Play TetriNET now

Modern mode: a three-player game in progress. Your field on the left, your rivals on the right.

Modern mode: a three-player game in progress. Your field on the left, your rivals on the right.

Faithful means faithful

We didn’t want “a Tetris game inspired by TetriNET”. We wanted the game. So we reverse-engineered the original TETRINET.EXE (a Delphi 2 binary from 1997) and rebuilt it from the disassembly:

  • The rules, timings, randomness and network messages follow the original code. Pieces spawn the way 1.13 spawned them, gravity ticks at the same 1010-ms-minus-10-per-level rate, and even Delphi’s random number generator is reproduced.
  • The windows are generated from the original Delphi form layouts, and the original graphics, sounds and music are used.
  • The quirks stay. Every weird thing that made 1.13 feel like 1.13 is still there, on purpose. A few of our favorites:
    • The readme says levels cap at 100. The binary never checks, so they don’t.
    • Soft drop is fixed at 100 ms, so from level 92 on, pressing ↓ actually makes your piece fall slower.
    • Random Blocks Clear picks 10 random cells, empty ones included, so sometimes it clears nothing at all.
    • Clear Special Blocks doesn’t remove specials. It turns them into random colours.
    • You can attack your own teammates. We know. We kept it.

Every one of these was checked against the disassembly, and each one is documented. The list of original quirks we kept, and the handful of things we changed, lives in the project’s notes.

Two ways to play: Modern and Legacy

The same engine and the same server power two completely different interfaces, and players on either one can share a room.

Modern mode is a neon-arcade makeover: rooms with invite links, a lobby with partyline chat, the rules editor and the win list, plus effects and our own synthesized sound and music.

The lobby: players, the partyline chat and the game rules. The 1.13 defaults are one click away.

The lobby: players, the partyline chat and the game rules. The 1.13 defaults are one click away.

Legacy mode is the 1997 Windows interface, rebuilt pixel for pixel from the original forms, down to the StormCat Productions splash screen, the gray bevels and the “Attacks/Defenses” log.

Legacy mode: the original Playing Fields window, in a browser, in the same room as the modern players.

Legacy mode: the original Playing Fields window, in a browser, in the same room as the modern players.

Yes, even the splash screen asking you to mail $10 to Minnesota.

Yes, even the splash screen asking you to mail $10 to Minnesota.

What’s different

Moving a Windows game where one player hosted the server into browsers took a few changes:

  • The server is a small Node process and everyone connects over WebSockets. The message strings are the original’s.
  • The moderator (the first player, marked with * just like in 1.13) also gets the server operator’s powers: game settings, block occurrence, kicking players and resetting the win list.
  • Solo practice. You can start a game alone to warm up. It ends when you top out.
  • The server checks who’s talking. In 1.13 any client could send messages pretending to be another player. Not anymore.
  • Music. Browsers don’t come with a MIDI synth, so the original TETRINET.MID plays through a tiny synthesizer we wrote for the web.

Still on the to-do list: the ban list, theme (.tnp) switching, and letting real 1.13 clients connect over TCP. The protocol is already there.

How to play

  1. Go to tetrinet.helldoradoteam.com, pick a nickname and click Create room.
  2. Send the invite link to up to five friends.
  3. Clear lines to collect special blocks into your inventory. Press 1–6 to fire your first special at that player (your own number uses it on yourself) and D to discard it.
  4. The last player (or team) standing wins. The top three score 3, 2 and 1 points on the win list.
KeyAction
← →Move
↑ / CtrlRotate right / left
↓Faster fall
SpaceDrop
1–6Use a special on a player
DDiscard a special
TTalk

Prefer the old look? Jump straight into Legacy mode.

Huge thanks to St0rmCat for creating TetriNET back in 1997. This port exists because we loved the original. Now go find five friends and send them a Nuke Field.