Tetris (iOS)
Tetris |
---|
Developer: EA Mobile This game has uncompiled source code. |
This game is defunct. Do note the game no longer works at all without modifications. This is most likely due to the game's servers being shut down. As a result, further official developments with the game are unlikely to happen. |
It's the classic Tetris on your phone! What more could you need? How about a Season Pass? Some DLC? How about exclusive content locked behind a Club Tetris membership?
Wait, what do you mean that's not what you wanted?
EA's Tetris was snapped away from the App Store on April 21, 2020, as the rights for mobile versions of Tetris had been transferred to N3TWORK, who's version somehow has even MORE monetization features.
Excel Spreadsheet
Download Tetris (iOS) Spreadsheet
File: tetrisiosspreadsheet.rar (77 KB) (info)
|
An Excel spreadsheet containing all of the game's text, along with some notes for the translator. The game never uses any text from this file.
Unused Text
[default] ; GENERAL DummyProperty1 = 1 DummyProperty2 = 2 DummyProperty3 = 3 ; KEYBOARD ;------------------------------------------------------------------------------- ; The Blast virtual key names can be found in header file "Key.h" ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; OS key code to Blast virtual keys. ;------------------------------------------------------------------------------- ; Maps OS key codes to Blast virtual keys for extra keys not normalized by the OS. ; Some devices provides extra-keys that do not map to any OS virtual key code. For ; example, J2ME only defines few numpad virtual keys. Some J2ME devices has full ; QWERTY keyboards and the letters do not have any OS virtual key mapping. In ; such case, Blast has to provide the correct mapping. ; ; Multiple key codes can map to the same VK. For example if the device sends ; differents key code if the modifier keys are pressed or if the keycode sent ; for the pressed state is different than the keycode sent for the release state. ; ; Format must be: keyCodeValue = virtualKeyName ; ; [devices: HTC544] ; 8234 = kLetterA ; Key code sent when key 'A' is pressed. ; 4328 = kLetterA ; Key code sent when key 'A, is released. ; 3242 = kLetterA ; Key code sent when keys 'Shift' and 'A' are pressed. ; ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; Blast virtual keys meta data for text edition and game help text. ;------------------------------------------------------------------------------- ; It is possible to embeds meta data associated with a virtual key. The meta ; data is used for text edition if the OS does not provide proper support. The ; following fields are recongnized. ; ; char: The list of character associated with the key. ; shift: The list of character associated with the key when the shift key is pressed. ; alt: The list of character associated with the key when the alt key is pressed. ; ctrl: The list of character associated with the key when the ctrl key is pressed. ; fn; The list of character associated with the key when the fn key is pressed. ; ; If a value is not defined, the field can be empty, tail values can be ommited. In the ; list, if the key represents a number, it must be first, then letters and finally ; symbols. ; ; Encode any non-ASCII characters using the 16-bits char C++ notation. (\x3AF2) ; ; Format must be: virtualKeyName = char,shift,alt,ctrl,fn ; ; The Blast virtual key names can be found in file "Key.cpp" ; ; [platforms: Win32] ; kDigit2 = 2,",\x010F ; kLetterA = a,A ; ; [devices:VX7000, VX8000, VX8100] ; kNumPad0 = 0 ; kNumpad2 = 2abc,2ABC ; ; [devices:BB8100] ; kLetterQ = qw,QW,! ; kLetterE = 1er,1ER ; kLetterT = 2ty,2TY ; kLetterU = 3ui,3UI ; kLetterO = op,OP,. ;-------------------------------------------------------------------------------
EAMCore.ini is almost entirely comprised of commented out text.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WARNING !!! ; ; ; ; If you modify the local version of this file (located in TetrisApp\dev\data\Assets\GameDesignerConstants) and submit it on P4, ; ; please inform Macaron so that he can upload the latest revision of the file on the server. ; ; ; ; Otherwise, since the game always downloads and uses the version of GameDesignerConstants.ini located on the server at game launch, ; ; it won't use the local GameDesignerConstants.ini file where local modifications are, which will be VERY misleading if someone wants to do ; ; some tests by modifying this file... ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
This warning for developers is found in GameDesignerConstants.ini.
; Put comment here to describe more exactly where is the planet identified by this ID: EX First Galaxy, Second Planet ; Put comment here to describe more exactly where is the planet identified by this ID: EX First Galaxy, Second Planet ; Put comment here to describe more exactly where is the planet identified by this ID: EX First Galaxy, Second Planet ; The 2 following fields are additive, meaning that if you enter "1" in the hour field and "120" in the minutes field, the total cooldown time will be 1h + 2h = 3 hours
In the same file, there are also a few developer comments.
Perl Script
A Perl script, stored in lang_plist_maker_script_.pl. It was likely used to split the Excel spreadsheet (see above) into multiple language files.
#!/usr/bin/perl -w #Requires Spreadsheed::ParseExcel http://search.cpan.org/~kwitknr/Spreadsheet-ParseExcel-0.2603/ParseExcel.pm INSTALL LAST #Requires Crypt::RC4 http://www.perl.org/CPAN/authors/id/S/SI/SIFUKURT/Crypt-RC4-2.02.tar.gz #Requires Digest::Perl::MD5 http://www.perl.org/CPAN/authors/id/D/DE/DELTA/Digest-Perl-MD5-1.8.tar.gz #Requires IO::Scalar http://search.cpan.org/~dskoll/IO-stringy-2.110/lib/IO/Scalar.pm #Requires OLE::Storage_Lite http://search.cpan.org/~jmcnamara/OLE-Storage_Lite-0.19/lib/OLE/Storage_Lite.pm use strict; use Switch; use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse('EBISU_Strings_with_ID.xls'); if ( !defined $workbook ) { die $parser->error(), ".\n"; } print "FILE :", $workbook->{File} , "\n"; print "COUNT :", $workbook->{SheetCount} , "\n"; print "AUTHOR:", $workbook->{Author} , "\n"; open(my $arrFileHandle, ">:utf8", "EBISU_StringExport_Array.h") or die "EBISU_StringExport_Array.h $!"; open(my $enumFileHandle, ">:utf8", "EBISU_StringExport_Defines.h") or die "EBISU_StringExport_Defines.h $!"; # Print headers for Array file. my $time = localtime(time); print $arrFileHandle "// This file was auto-generated on: ", $time; print $arrFileHandle "\n\n#ifndef __EBISU_STRINGEXPORT_ARRAY_H__\n"; print $arrFileHandle "#define __EBISU_STRINGEXPORT_ARRAY_H__\n"; print $arrFileHandle "NSString * const cKeyArray[] = {\n"; # Print header for Defines file print $enumFileHandle "// This file was auto-generated on: ", $time; print $enumFileHandle "\n\n#ifndef __EBISU_STRINGEXPORT_DEFINES_H__\n"; print $enumFileHandle "#define __EBISU_STRINGEXPORT_DEFINES_H__\n"; print $enumFileHandle "typedef enum {\n"; my @languages = (); my @fileHandles = (); my $worksheet = $workbook->{Worksheet}[0]; my $worksheetName = $worksheet->get_name(); print "--------- SHEET:", $worksheet->{Name}, "\n"; #grab the language names out of this worksheet, and initialize the plists my ( $col_min, $col_max ) = $worksheet->col_range(); my ( $row_min, $row_max ) = $worksheet->row_range(); my $itt = 0; for my $col ( $col_min .. $col_max ) { my $cell = $worksheet->get_cell( $row_min, $col ); if( !defined($cell)) { print "Undefined cell at Row: ", $row_min, " Col: ", $col, "\n"; } my $val = $cell->value(); if( $val && $val ne '' && $val ne 'String ID' && $val ne 'English Status' && $val ne 'Comments' && $val ne 'Max Length') { print "Initializing = ", $val, "\n"; $languages[$itt] = $val; my $fileName = "$val.plist"; print "Opening file, ", $fileName; open($fileHandles[$itt], ">:utf8", $fileName) or die "$fileName: $!"; my $handle = $fileHandles[$itt]; print $handle "<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE plist PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'><plist version='1.0'><dict>"; $itt++; } } print "\n"; print "Parsing worksheet: ", $worksheetName, "\n"; my $didUpdateArrayAndEnumFiles = 0; for my $col ( $col_min .. $col_max ) { my $testCell = $worksheet->get_cell( $row_min, $col ); my $colTitle = $testCell->value(); if( $colTitle && $colTitle ne '' && $colTitle ne 'String ID' && $colTitle ne 'English Status' && $colTitle ne 'Comments' && $colTitle ne 'Max Length') { my $index = 0; print "Column Title: ", $colTitle, "\n"; while($languages[$index] ne $colTitle) { #print "Language: ", $languages[$index], " ", $index, "\n"; $index++; } my $fileHandle = $fileHandles[$index]; for my $row ( ($row_min + 1) .. $row_max ) { my $keyCell = $worksheet->get_cell( $row, $col_min ); #keys must be in the leftmost column next unless $keyCell; my $valueCell = $worksheet->get_cell( $row, $col ); next unless $valueCell; my $key = $keyCell->value(); my $value = $valueCell->value(); $value =~ s/</@/g; $value =~ s/>/@/g; if($key ne '') { print $fileHandle "<key>$key</key><string>$value</string>\n"; if($didUpdateArrayAndEnumFiles == 0) { #print to array and enum files print $arrFileHandle " [$key] = @\"$key\",\n"; print $enumFileHandle " $key,\n"; } } } $didUpdateArrayAndEnumFiles = 1; } } print $arrFileHandle "};"; print $arrFileHandle "\n#endif\n"; print $enumFileHandle "} eStringKey;"; print $enumFileHandle "\n#endif\n"; for my $handle ( @fileHandles ) { print $handle "</dict></plist>"; close $handle; }
- Pages missing developer references
- Games developed by EA Mobile
- Pages missing publisher references
- Games published by Electronic Arts
- IOS games
- Pages missing date references
- Games released in 2008
- Games released in July
- Games released on July 10
- Games with uncompiled source code
- Games with hidden development-related text
- Defunct games
- Tetris series
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Defunct games
Games > Games by content > Games with hidden development-related text
Games > Games by content > Games with uncompiled source code
Games > Games by developer > Games developed by Electronic Arts > Games developed by EA Mobile
Games > Games by platform > IOS games
Games > Games by publisher > Games published by Electronic Arts
Games > Games by release date > Games released in 2008
Games > Games by release date > Games released in July
Games > Games by release date > Games released in July > Games released on July 10
Games > Games by series > Tetris series