We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Phineas and Ferb: New Inventions

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Phineas and Ferb: New Inventions

Also known as: финес и Ферб: новые изобретения/Phineas i Ferb: Novye Izobreteniya (RU)
Developer: PIPE Studio
Publisher: Disney Interactive Studios
Platform: Windows
Released internationally: February 10, 2012


DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.
RegionIcon.png This game has regional differences.


This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.
Notes: The game's files are still in the early stages of being parsed through and more hidden information will likely be revealed.

Phineas and Ferb: New Inventions is a game available on Steam for Windows, rendering it the only official Phineas and Ferb game currently available on Steam. New Inventions was developed by a Russian company and only translated to Russian, Polish, and Czech, letting it fly under the radar of the mostly English-speaking Phineas and Ferb fanbase. There is evidence, however, that an English translation was planned.

The game is mostly controlled by XML files, making it easy to pick apart.

It may have been released in December 2012 rather than February 2012.

Unfinished English Translation

The game begins with a language select menu, which is defined by sc_lang_menu.xml in the main resources folder /res/. Triggers are in this XML to load a button for English translation, but the line to create the button has been removed. Additionally, code exists in the obj.h file to load the English button image. Therefore, the single line of code to define the button, as well as the English translated resources, is all that is needed to recreate the English language option.

The following five lines are commented out in the file sc_lang_menu.xml, showing the original order of the languages.

<BUTTON id="BtnExit" visible="1" active="1" x="365" y="128" offset="0" texture="PIC_LANG_EXIT" tex_selected="PIC_LANG_EXIT_SEL" tex_pressed="PIC_LANG_EXIT_ACT" press="SND_CMN_PRESS" select="SND_CMN_SELECT" cursor="1" />
<BUTTON id="ru" texture="PIC_LANG_BUTTON_RU" tex_pressed="PIC_LANG_BUTTON_RU_PRS" tex_selected="PIC_LANG_BUTTON_RU_SLCT" active="1" visible="1" x="107" y="296" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />
<BUTTON id="en" texture="PIC_LANG_BUTTON_EN" tex_pressed="PIC_LANG_BUTTON_EN_PRS" tex_selected="PIC_LANG_BUTTON_EN_SLCT" active="1" visible="1" x="107" y="359" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />
<BUTTON id="pl" texture="PIC_LANG_BUTTON_PL" tex_pressed="PIC_LANG_BUTTON_PL_PRS" tex_selected="PIC_LANG_BUTTON_PL_SLCT" active="1" visible="1" x="107" y="420" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />
<BUTTON id="cz" texture="PIC_LANG_BUTTON_CZ" tex_pressed="PIC_LANG_BUTTON_CZ_PRS" tex_selected="PIC_LANG_BUTTON_CZ_SLCT" active="1" visible="1" x="107" y="482" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />

The used lines look like this

<BUTTON id="BtnExit" visible="1" active="1" x="365" y="128" offset="0" texture="PIC_LANG_EXIT" tex_selected="PIC_LANG_EXIT_SEL" tex_pressed="PIC_LANG_EXIT_ACT" press="SND_CMN_PRESS" select="SND_CMN_SELECT" cursor="1" />
<BUTTON id="ru" texture="PIC_LANG_BUTTON_RU" tex_pressed="PIC_LANG_BUTTON_RU_PRS" tex_selected="PIC_LANG_BUTTON_RU_SLCT" active="1" visible="1" x="107" y="300" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />
<BUTTON id="pl" texture="PIC_LANG_BUTTON_PL" tex_pressed="PIC_LANG_BUTTON_PL_PRS" tex_selected="PIC_LANG_BUTTON_PL_SLCT" active="1" visible="1" x="107" y="375" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />
<BUTTON id="cz" texture="PIC_LANG_BUTTON_CZ" tex_pressed="PIC_LANG_BUTTON_CZ_PRS" tex_selected="PIC_LANG_BUTTON_CZ_SLCT" active="1" visible="1" x="107" y="450" offset="0" press="SND_CMN_PRESS" select="SND_CMN_SELECT" />

To retrigger the English language option in Lang.exe, in sc_lang_menu.xml, uncomment the former five lines and comment the latter four lines. The following images illustrate how the language menu probably looked before the English translation was scrapped.

Prototype Final
Phineas-and-Ferb-New-Inventions Lang-Menu-Proto.png Phineas-and-Ferb-New-Inventions Lang-Menu-Final.png

Logs

In the sc_333_data folder in the resources folder, there is a mysterious file named gamelog.txt. It appears to contain debug output of some form, but the timestamps are dated to mid-2012, after the game's February 2012 release. The first log entry reads:

Время старта: 15.05.2012 18:20:29
Уровень №: 1
Победа!
Время финиша: 15.05.2012 18:20:53

Which roughly translates to:

Start time: 15.05.2012 18:20:29
Level #: 1
Winning!
Finish Time: 05/15/2012 18:20:53

Similarly, there exist Log.txt files in the 00000312, 00000322, and 00000341 main resource folders. These all follow a similar format to gamelog.txt, with the most different being 00000312's, the first entry of which is reproduced below:

Время запуска сцены: 11:33:14  21.02.2012
Уровень №: 1
Выиграли.
  10040=988/1000/10*1000+160 (Очки за уровень = Оставшееся время / Начальное время / 10 * параметр Time_score + очки за прохождение)
  3=10040/1000           (Кол-во звезд = Очки за уровень/Параметр Star_score)
Время окончания сцены:   11:33:38  21.02.2012

Which roughly translates to:

Stage Start Time: 11:33:14 21.02.2012
Level #: 1
Won.
  10040=988/1000/10*1000+160 (Level Score = Time Remaining / Start Time / 10 * parameter Time_score + points for passing)
  3=10040/1000 (Amount of stars = Points per level / Parameter Star_score)
Score End Time: 11:33:38 21.02.2012

This suggests a potential star scoring method for the minigames (312 corresponds to Level 1's minigame), which was not present in the final version of the game, as only the quizzes give star scores.

There is also a log.txt (note the lack of capitalization) in the main 00000313 resource folder. It has a much more terse format than the other four log files, with just one line per entry. The first and tenth lines are reproduced below as examples:

level001: Fri May 25   Start:19:05:14 - End:19:05:46    Win!!!
level004: Tue Jul 03   Start:13:00:09 - End:13:00:16    Loss

The levels range from 1 to 10. Given that 313 is the scene ID of the hovercar minigame, it is highly likely that these indicate completion of each level in that minigame. However, they do not go in sequential order, indicating that a developer tool may have been used to skip between levels. There also appears to be an error in the 57th-59th lines, where the level text is slightly corrupted:

vel001НН: Thu Jul 05   Start:11:11:32 - End:11:11:53    Win!!!
vel001НН: Thu Jul 05   Start:11:13:55 - End:11:14:05    Win!!!
vel001НН: Thu Jul 05   Start:11:16:58 - End:11:17:08    Win!!!

(Note that the Нs are Cyrillic characters, not Latin Hs.)

Music

The game contains a fairly high-quality WAV of Perry's extended theme song in English (approximately equivalent to this version), which is not used in-game. It is possible that it would have been used if English was activated, but it is in the unlocalized resources and there are no localized versions.

Unused Translation Strings

In the translation files of the game, a number of strings exist which are not believed to be used in the final game. Some of these appear to relate to the debug menu, but others were likely cut late in development. For example, STR_340_WHIZBANG_MESS was split into two strings, STR_340_WHIZBANG_MESS_1 and STR_340_WHIZBANG_MESS_2, and the original STR_340_WHIZBANG_MESS was removed for Russian but not Polish or Czech. Other strings which are only in the Polish/Czech versions:

STR_SC311_PTR_SHOW_RESULT1
STR_SC311_PTR_SHOW_RESULT2
STR_SC311_PTR_SHOW_RESULT3
SND_332_ENTRANCE
STR_332_TYPE_1_QUEST_3
STR_332_TYPE_3_ANSWER_5
STR_332_TYPE_3_ANSWER_6
STR_332_TYPE_3_ANSWER_7
STR_332_TYPE_3_ANSWER_8
STR_332_TYPE_3_ANSWER_9
STR_332_TYPE_3_ANSWER_10
STR_SC334_AFTER_TIME

Additionally, SND_332_ENTRANCE is listed in the XML files as having a corresponding voice line, 0135.wav, but this audio file is nonexistent.

An unknown number of other strings are likely unused in the game. As there are over one thousand translatable strings in the game, not each has been check to validate its use, but these are likely to be among them:

STR_PRC_FLY_LIVES
STR_322_NOT_TAKE_PLACE
STR_SLIDERS_CARS

Unused Voice Lines

A number of voice lines are believed to go unused in the game. Some can be confirmed by checking the relevant XML files. The following voice lines have been confirmed to be unused, noted with asset numbers and corresponding translation IDs where available:

311/397
311/398
311/399
311/400
311/414
334/234 (STR_SC334_LUSE1)
334/227 (STR_SC334_PHINEAS_WOW)
334/228 (STR_SC334_FERB_WOW)
502/467 (STR_FINDPART_FIND_2)

311/397-400 are each individual sentences which would have been combined by playing one of 311/398-400 after 311/397. Instead, each pair of sentences was given a single audio file in the final game, named like 311/397_0398. 311/414 is very similar, but not identical, to 313/417. 502/467 appears to be unused due to a typo causing 502/466 to be referenced twice rather than each of 502/466 and 502/567 once.

Debug Menu

Significant evidence of a debug menu exists, including an sc_debug.xml file which would define its properties and functions, and several debug strings. It is not yet known if or how it can be re-activated. It would appear to allow the user to skip to any of the main sections in the game, the main menu, or the credits, with each option having a button.

Debug Strings

The following strings are seen in texts.xml inside /res_ru/, /res_cz/, and /res_pl/. They are translated into all three languages.

Text ID			Russian			Czech		Polish
STR_DEBUG_MAIN		ГЛАВНОЕ МЕНЮ		HLAVNÍ NABÍDKA	MENU GŁÓWNE
STR_DEBUG_CHOOSE_LVL	Выберите уровень:	Vyber siúroveň:	Wybierz poziom:
STR_DEBUG_CHAPTER_1	Глава 1			Kapitola 1	Część 1
STR_DEBUG_CHAPTER_2	Глава 2			Kapitola 2	Część 2
STR_DEBUG_CHAPTER_3	Глава 3			Kapitola 3	Część 3
STR_DEBUG_THEORY	ТЕОРИЯ			TEORIE		TEORIA
STR_DEBUG_PRACTICE	ПРАКТИКА		PRAXE		PRAKTYKA
STR_DEBUG_MG_1		МИ_1			MI_1		MI_1
STR_DEBUG_BMG_1		БМИ_1			BMI_1		BMI_1
STR_DEBUG_EDITOR	РЕДАКТОР		EDITOR		EDYTOR
STR_DEBUG_MG_2		МИ_2			MI_2		MI_2
STR_DEBUG_BMG_2		БМИ_2			BMI_2		BMI_2
STR_DEBUG_MG_3_1	МИ_3_1			MI_3_1		MI_3_1
STR_DEBUG_MG_3_2	МИ_3_2			MI_3_2		MI_3_2
STR_DEBUG_BMG_3		БМИ_3			BMI_3		BMI_3

Translation Errors

The following errors are known in the original translations:

  • In Polish, pressing "4" on the keypad (the correct answer) for one Rollercoaster question can display a "3" instead, but the answer is accepted as correct. The affected string is STR_332_TYPE_4_ANSWER_4 (the instances of "4" in the string name are coincidental)
    Hmmm...
    To do:
    Which question?
  • In Czech and Polish, strings STR_332_TYPE_2_PART_3_1_02 and STR_332_TYPE_2_PART_3_2_01 are switched. As a result, in Rollercoaster, for the "There were x passengers, y boys/girls were found"-type questions, there is a 50% chance that the game will refer to boys instead of girls or vice versa when asking "How many boys/girls are missing?" in those languages.