the cutting room mirror

Worms (J2ME)

Worms games are very known for their J2ME versions apart from their console releases. There have been lots of different J2ME releases of Worms games, all thanks to the success of the first version from 2003.

Unused Text#

The game has some unused strings inside the *_UTF8.txt files, and the text initializing function in i.class.

Ammo Names#

The first strings from *_UTF8.txt files correspond to the ammo names. These ammo names are never shown in the game.

English

French

Spanish

German

Italian

Bazooka

Bazooka

Bazuca

Panzerfaust

Bazooka

Mortar

Mortier

Mortero

Minenwerfer

Mortaio

Cluster Bomb

Bombe à fragmentation

Bomba de racimo

Cluster-Bombe

Bomba

Grenade

Grenade

Granada

Granate

Granata

Dynamite

Dynamite

Dinamita

Dynamit

Dinamite

Back Button#

Following the ammo names in *_UTF8.txt, there's a string for a "back" option in the menu, but an icon is used instead.

English

French

Spanish

German

Italian

Back

Retour

Atrás

Zurück

Indietro

Team Names#

At the end of *_UTF8.txt, there are strings for the team names. These strings aren't used, as a "Red team won!" / "Blue team won!" string is used instead.

English

French

Spanish

German

Italian

Red team

Equipe rouge

Equipo rojo

Rotes Team

Squadra rossa

Blue Team

Equipe bleue

Equipo azul

Blaues Team

Squadra blu

Press Joystick#

The last string from *_UTF8.txt is an unused press/move joystick string.

English

French

Spanish

German

Italian

Press joystick

Appuyer joystick

Mueve el joystick

Joystick drücken

Premi joystick

i.class#

Inside i.class, there's a text initialization function where we can see more unused strings. If we decompile the file, we can see some of the previous unused strings are loaded in-game, and then ignored, and others are not even loaded. These unused strings are:
The "Weapon" string:

English

French

Spanish

German

Italian

Weapon

Arme

Arma

Waffe

Arma

and a

Worms

String.
Here is the decompiled function from i.class:

  private void decompiled_text_initializing_function()
  {
    try
    {
      String strings_file_name;
      switch (language)
      {
      case 1:
        strings_file_name = "fr_utf8.txt";
        d_class.HUD = new Player_HUD("/player_strip_fr.png", 3);
        weapon_string = "Arme";                     //string initialized but unused!!
        break;
      case 2:
        strings_file_name = "es_utf8.txt";
        d_class.HUD = new Player_HUD("/player_strip_es.png", 3);
        weapon_string = "Arma";                     //string initialized but unused!!
        break;
      case 3:
        strings_file_name = "de_utf8.txt";
        d_class.HUD = new Player_HUD("/player_strip_de.png", 3);
        weapon_string = "Waffe";                    //string initialized but unused!!
        break;
      case 4:
        strings_file_name = "it_utf8.txt";
        d_class.HUD = new Player_HUD("/player_strip_it.png", 3);
        weapon_string = "Arma";                     //string initialized but unused!!
        break;
      default:
        strings_file_name = "en_utf8.txt";
        d_class.HUD = new Player_HUD("/player_strip_en.png", 3);
        weapon_string = "Weapon";                   //string initialized but unused!!
      }
      InputStream localInputStream = getClass().getResourceAsStream(strings_file_name);
      DataInputStream localDataInputStream = new DataInputStream(localInputStream);
      localDataInputStream.readUTF();                       //"Bazooka" is skipped!!
      localDataInputStream.readUTF();                       //"Mortar" is skipped!!
      localDataInputStream.readUTF();                       //"Cluster Bomb" is skipped!!
      localDataInputStream.readUTF();                       //"Grenade" is skipped!!
      localDataInputStream.readUTF();                       //"Dynamite" is skipped!!
      
      String str1 = "Worms";                        //"Worms" string initialized but unused!!
      String str2 = localDataInputStream.readUTF();         //"Back" string initialized but unused!!
      String str3 = localDataInputStream.readUTF();         //"Start"
      String str4 = localDataInputStream.readUTF();         //"Options"
      String str5 = localDataInputStream.readUTF();         //"Instructions"
      String str6 = localDataInputStream.readUTF();         //"About"
      exit_String = localDataInputStream.readUTF();         //"Exit"
      
      this.menu_Strings_Array[1][0] = str3;                 //"Start"
      this.menu_Strings_Array[1][1] = str4;                 //"Options"
      this.menu_Strings_Array[1][2] = str5;                 //"Instructions"
      this.menu_Strings_Array[1][3] = str6;                 //"About"
      this.menu_Strings_Array[1][4] = exit_String;              //"Exit"
      this.menu_Strings_Array[2][0] = localDataInputStream.readUTF();       //"Player vs. Player"
      this.menu_Strings_Array[2][1] = localDataInputStream.readUTF();       //"Player vs. Phone"
      this.menu_Strings_Array[3][0] = localDataInputStream.readUTF();       //"Sound"
      this.menu_Strings_Array[3][1] = localDataInputStream.readUTF();       //"Vibration"
      this.menu_Strings_Array[6][2] = localDataInputStream.readUTF();       //"Red team won!"
      this.menu_Strings_Array[6][3] = localDataInputStream.readUTF();       //"Blue team won!"
      this.menu_Strings_Array[4][0] = localDataInputStream.readUTF();       //Intructions content
      this.menu_Strings_Array[5][0] = localDataInputStream.readUTF();   //About content
      //"Red team", "Blue team" and "Press joystick" strings get unread!!
    }
    catch (Exception localException)
    {
    }
  }