Tetris Zone

From TetrisWiki
Revision as of 08:30, 19 May 2020 by NikkiS37 (talk | contribs)
Jump to navigation Jump to search
Tetris Zone
Tetris Zone icon
Developer(s)Blue Planet Software
Publisher(s)Blue Planet Software
Platform(s)Windows, Mac OS X
Release
  • WW: February 22, 2007
Gameplay info
Next pieces3
Playfield size10 × 20
Hold pieceYes, with IHS
Hard dropYes
Rotation systemSRS

Tetris Zone was an official Tetris game for Mac OS X and was released as an Universal Binary (for Intel- and PPC-Macs). A Windows version is also available. In 2014, the official website was merged with Tetris (tetris.com).

Gameplay

Tetris Zone features the standard Guideline ruleset for gameplay, with several minor differences compared to other modern Tetris games:

  • IRS and IHS are available.
  • ARE is present in all modes except Sprint.
  • T-Spin Triples are classified as normal Triple line clears instead.

Modes

Marathon

Standard variable-goal Marathon mode. Clear 15 levels to complete the stage.

Challenge

A longer and more complex variant of Ultra mode. The player is given 10 minutes to score as many points as possible; however, the mode also uses the variable-goal level system. Each level must be completed within 2 minutes; when the timer runs out per level, the goal counter resets. The game ends after playing 10 minutes or reaching Level 31.

Sprint

Standard 40 lines time attack mode.

Master

Fixed-goal Marathon mode with 20G gravity throughout; the player must clear 200 lines to complete the stage. ARE, lock delay, and line clear delay decreases per level.

"bpr" File Hacking

In PC version, inside the "rsrc/GFX" and "rsrc/TPF" directory, you'll see many "bpr" files. These files are encrypted in very simple format. The following simple C source code encrypts/decrypts these files.

/* A simple C source code that encrypts and decrypts bpr file */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    
/* Globals */
unsigned char *fileBuf; // File buffer
unsigned long fileSize; // File size
    
/* Prototypes */
int main(int argc, char *argv[]);
int loadFile(char *filename);
    
/* Main function */
int main(int argc, char *argv[]) {
    int i;
    FILE *fp;
    
    // Show usage
    if(argc < 3) {
        printf("Usage: %s [In] [Out]\n", argv[0]);
        return 1;
    }
    
    // Load a file
    if(!loadFile(argv[1])) {
        printf("Couldn't load from %s\n", argv[1]);
        return 2;
    }
    
    // Encrypt/Decrypt
    for(i = 0; i < fileSize; i++) {
        fileBuf[i] = 0xFF - fileBuf[i];
    }
    
    // Write
    fp = fopen(argv[2], "wb");
    if(!fp) {
        printf("Couldn't write to %s\n", argv[2]);
        return 3;
    }
    fwrite(fileBuf, fileSize, 1, fp);
    fclose(fp);
    
    // Done
    printf("Done\n");
    
    return 0;
}
    
/* Load a file */
int loadFile(char *filename) {
    FILE *fp;
    
    // Open
    fp = fopen(filename, "rb");
    if(!fp) return 0; // Fail
    
    // Get size
    fseek(fp, 0, SEEK_END);
    fileSize = ftell(fp);
    fseek(fp, 0, SEEK_SET);
    
    // Allocate
    fileBuf = (unsigned char *)malloc(fileSize);
    
    // Read
    fread(fileBuf, fileSize, 1, fp);
    
    // Close
    fclose(fp);
    
    // Done
    return 1;
}

GFX subdirectory contains all graphics, and they are stored in BMP format.

TPF subdirectory contains "TPF" files for all four modes. This game uses TPF file to define some game mechanisms. TPF resembles to "TWS" (Tetris Worlds Script) file, but it comes in almost already-compiled format so only runtime-scripts are in raw text.

External links