the cutting room mirror

Pokémon Ruby and Sapphire

This article has a talk page!
view on tcrf.net

This page details development materials of Pokémon Ruby and Sapphire.

Documents#

Miscellaneous Findings#

Early Version Names#

A script file for Route 102 (field_c102.ev in the source code) reveals that the games were planned to have different names early on in development. This is the first route to have version exclusive Pokémon, and Game Freak likely worked on the routes in chronological order, which is why the comments were left there.

Japanese

Translation

flag_change_field_c102:
//藍バージョンの場合の処理を記述
#if ( PM_VERSION == VERSION_SAPPHIRE )

    //敵の団をセットする
    _LDVAL          OBJCHRWORK1,AQUALF1
    _LDVAL          OBJCHRWORK2,AQUALM1

//朱バージョンの場合の処理を記述
#elif ( PM_VERSION == VERSION_RUBY )
flag_change_field_c102:
//Describes processing for Indigo Version.
#if ( PM_VERSION == VERSION_SAPPHIRE )

    //Sets enemy team.
    _LDVAL          OBJCHRWORK1,AQUALF1
    _LDVAL          OBJCHRWORK2,AQUALM1

//Describes processing for Vermilion Version.
#elif ( PM_VERSION == VERSION_RUBY )

(Source: Farore, N. Onymous (translation)

Early Villain Team Names#

Script files (saveflag.h and common.ev in the source code) reveal early names for the games' evil teams.

Japanese

Translation

flag_change_field_c102:
//<pre>//#define FV_SEAMAN1_01_FIELD_C104       (FV_FLAG_START+30)  //マリン団1(ポケモン盗難事件)
_FLAG_SET  FV_EVILM1_01_CAVE_D0601         //トンネル団
//#define FV_SEAMAN1_01_FIELD_C104       (FV_FLAG_START+30)  //Team Marine 1 (Pokémon theft)
_FLAG_SET  FV_EVILM1_01_CAVE_D0601         //Team Tunnel

(Source: Farore & Wobbuu, N. Onymous (translation)

Early Method To Enter Secret Bases#

Some unused event flags (in saveflag.h) and part of the code for checking whether the player can create a secret base from their current location (in fe_base.c) reveal that the way of creating secret bases changed. Originally, the way to get inside the bases would've been with tools instead of the Secret Power (TM43) move. Rope would've been found from Route 114 and would've been used to climb the trees; shovel would've been found from Route 115 and would've been used to dig inside the caves; and lastly, the sickle would've been found from Route 119 and would've been used to enter the hedges.

Japanese

Translation

#define FE_SCOOP_01_P01_FIELD_R115       (FE_FLAG_START+11)  //スコップ入手
#define FE_ROPE_01_P01_FIELD_R114       (FE_FLAG_START+12)  //ロープ入手
#define FE_KAMA_01_P01_FIELD_R119       (FE_FLAG_START+13)  //カマ入手
   // 洞窟
    if( ATR_IsMakeScoopBaseCheck( atb ) == TRUE ){
        ListUseSetBaseNo();
        pFieldRecoverFunc = StartExtraInit;
        ExtraInit = SetFeCaveBase;
        return  TRUE;
    }
    // 木
    if( ATR_IsMakeRopeBaseCheck( atb ) == TRUE ){
        ListUseSetBaseNo();
        pFieldRecoverFunc = StartExtraInit;
        ExtraInit = SetFeTreeBase;
        return  TRUE;
    }
    // 草
    if( ATR_IsMakeKamaBaseCheck( atb ) == TRUE ){
        ListUseSetBaseNo();
        pFieldRecoverFunc = StartExtraInit;
        ExtraInit = SetFeGrassBase;
        return  TRUE;
    }
#define FE_SCOOP_01_P01_FIELD_R115       (FE_FLAG_START+11)  //Obtain Shovel
#define FE_ROPE_01_P01_FIELD_R114       (FE_FLAG_START+12)  //Obtain Rope
#define FE_KAMA_01_P01_FIELD_R119       (FE_FLAG_START+13)  //Obtain Sickle
   // Cave
    if( ATR_IsMakeScoopBaseCheck( atb ) == TRUE ){
        ListUseSetBaseNo();
        pFieldRecoverFunc = StartExtraInit;
        ExtraInit = SetFeCaveBase;
        return  TRUE;
    }
    // Tree
    if( ATR_IsMakeRopeBaseCheck( atb ) == TRUE ){
        ListUseSetBaseNo();
        pFieldRecoverFunc = StartExtraInit;
        ExtraInit = SetFeTreeBase;
        return  TRUE;
    }
    // Grass
    if( ATR_IsMakeKamaBaseCheck( atb ) == TRUE ){
        ListUseSetBaseNo();
        pFieldRecoverFunc = StartExtraInit;
        ExtraInit = SetFeGrassBase;
        return  TRUE;
    }

(Source: Farore, N. Onymous (translation), Zyxyz)

Stern's Shipyard#

Team Aqua/Magma#

The saveflag.h file has five unused event flags, with a comment revealing that the Team Aqua/Magma events of the Oceanic Museum were originally meant to take place in Stern's Shipyard.

#define FV_EVIL_ALL_FIELD_C102         (FV_FLAG_START+182) //造船所前のアクア団達
#define FV_AQUA_ALL_C102_R0501          (FV_FLAG_START+183) //造船所1階のアクア団達
#define FV_AQUAM1_01_C102_R0502         (FV_FLAG_START+184) //造船所2階のアクア団
#define FV_AQUAM1_02_C102_R0502         (FV_FLAG_START+185) //造船所2階のアクア団
#define FV_AQUABOSS_01_C102_R0502       (FV_FLAG_START+186) //造船所2階のアクア団ボス
#define FV_EVIL_ALL_FIELD_C102 (FV_FLAG_START+182) // Team Aqua in front of the shipyard
#define FV_AQUA_ALL_C102_R0501 (FV_FLAG_START+183) // Team Aqua on the first floor of the shipyard
#define FV_AQUAM1_01_C102_R0502 (FV_FLAG_START+184) // Team Aqua on the 2nd floor of the shipyard
#define FV_AQUAM1_02_C102_R0502 (FV_FLAG_START+185) // Team Aqua on the 2nd floor of the shipyard
#define FV_AQUABOSS_01_C102_R0502 (FV_FLAG_START+186) // Team Aqua boss on the 2nd floor of the shipyard

(Source: Farore, Xiartic)

Battle Summary Box Flashing Animation#

Game Freak commented out code in the battle animation WEST_FeLvUP (Special_LevelUp in the pret disassembly) which would flash the current Pokémon in battle's summary and experience bar, and play sound effect SE_W025 (SE_M_MEGA_KICK).

WEST_FeLvUP:
    SEPLAY_PAN  SE_EXPMAX,0
    ADD_TASK    LvUpGaugePaletteSet,PRI2,0
    WAIT        0
    ADD_TASK    LvUpEffColorFade,PRI5,2, 0,0
/*  WAIT_FLAG
    SEPLAY_PAN  SE_W025,0
    ADD_TASK    LvUpEffColorFade,PRI5,2, 1,5
    ADD_TASK    LvUpEffTask,PRI5,0
*/  WAIT_FLAG
    ADD_TASK    LvUpGaugePaletteRecover,PRI2,0
    SEQEND

(Source: Flametix)

Unused Trainer Dialogue#

The message file battle03.mes defines dialogue for three trainers assigned to an unknown area ("field_r999"), possibly a placeholder given the name. None of these lines are present in the final games' script. (Note that the trainers being identified by their class and a number rather than by name is standard for this sort of file.)

Trainer

Pre-battle

Translation

On defeat

Translation

Post-battle

Translation

Hiker 52

けわしい やまのなかで たよれるのは
じぶん ひとりだけ!

さあ! だいしぜんの なかで
せいせい どうどうと しょうぶ しよう!

In the rugged mountains, the only one I can rely on is myself.

Alright! Let’s have a fair and square battle in the heart of nature!

そうか‥‥

じぶん ひとり じゃなくて
ポケモンも いっしょに いたんだっけ‥‥

I see now…

I'm not all by myself.
My Pokémon are by my side too…

ポケモンと てを とりあえば
どんなに けわしい やまも のぼれるね

With the help of Pokémon,
you can climb even the steepest mountain.

Fisherman 47

きょうは さっぱり つれないなぁ‥‥

てぶらじゃ かえれない から
ぼくと ひとしょうぶ していって おくれ!

Today I haven't caught anything…

I can't go home empty-handed,
so how about battling me?

むむぅ‥‥
きょうは しおの かげんが わるい!

Grr…
The tide isn't in my favor today!

さっき にがした おおものを
つりあげて いれば‥‥

きみに かてた はず なんだけどな!

If only I had reeled in that big one I let go earlier…

I would have beaten you for sure!

Beauty 42

カレシに もらった この ポケモン

どれくらい つよいのか
たしかめ させて ちょうだい!

Let me see just how strong the Pokémon my boyfriend gave me is!

えー がっかりー!

Eh? How disappointing!

あたらしい カレシでも さがそっかなー

Maybe I should look for a new boyfriend…

(Source: Original TCRF research)

Early Hoenn Dex#

The message file for Pokédex evaluation messages (hyouka.mes) has a comment indicating that the Hoenn Dex was at one point planned to contain far fewer returning Pokémon from the previous two generations. (For reference, the final games' Dex contains 135 new Pokémon and 67 returning, for a total of 202.)

// ●図鑑評価メッセージ
// ● 新規のポケモン 134
// ● 既出のポケモン  28
// ● 合計      162(隠しポケモン2匹)
// ● Pokédex evaluation messages
// ● New Pokémon: 134
// ● Already-released Pokémon: 28
// ● Total: 162 (2 hidden Pokémon)

Because of this smaller Dex size, several of the evaluation messages from the final games are missing from the source's list (specifically, those used for counts of 130-139, 150-159, 160-169, and 190-199 Pokémon registered).

Pokédex Evaluation Rewards#

Also in hyouka.mes is a set of messages for awarding the player with items upon reaching certain evaluation benchmarks, a feature that doesn't appear in the final games.

Requirement

Item rewarded

Message (1)

Translation

Message (2)

Translation

10 Pokémon registered

Great Ball

なかなか がんばって おるな!

[playername][honorific] には
この スーパーボールを あげるよ!

You've done well!

[playername][honorific], I'll give you some Great Balls!

オダマキ『モンスターボールには
いろいろ しゅるいが あるからな

つかまえたい ポケモンによって
つかいわけるのも いいかも しれないぞ!

PROF. BIRCH: There are a number of kinds of Poké Balls.

It might be good to use different ones
depending on the Pokémon you want to catch!

30 Pokémon registered

Exp. Share

けっこう がんばって おるな!

おれいとして [playername][honorific] には
この がくしゅうそうちを あげよう!

You've really done well!

As a reward, [playername][honorific],
I'll give you this Exp. Share.

オダマキ『がくしゅうそうちを もたせた
ポケモンは たたかわなくても
けいけんちを わけて もらえるんだぞ!

PROF. BIRCH: Pokémon who are made to hold the Exp. Share
can get a share of EXP
even if they don't fight!

50 Pokémon registered

Itemfinder

とっても がんばって おるな!

そんな [playername][honorific] には
この ダウジングマシンを あげるよ!

You've really done your best!

I'll give someone like you
an Itemfinder!

オダマキ『ダウジングマシンを つかうと
みえないけれど おちている どうぐの
そんざいを たしかめ られるのだよ!

PROF. BIRCH: When you use the Itemfinder,
items that you can't see on the ground
can be detected!

Additionally, commented-out event flags for having received these items can be found in saveflag.h:

//#define FE_HYOUKA_GET_ITEM01                        (FE_FLAG_START+76)        //評価アイテム
//#define FE_HYOUKA_GET_ITEM02                        (FE_FLAG_START+77)        //評価アイテム
//#define FE_HYOUKA_GET_ITEM03                        (FE_FLAG_START+78)        //評価アイテム
//#define FE_HYOUKA_GET_ITEM01                        (FE_FLAG_START+76)        //Evaluation item
//#define FE_HYOUKA_GET_ITEM02                        (FE_FLAG_START+77)        //Evaluation item
//#define FE_HYOUKA_GET_ITEM03                        (FE_FLAG_START+78)        //Evaluation item

(Source: Original TCRF research)

Discarded Trainer Classes#

File ローカライズFIX(米).xls, a spreadsheet for the English localization, includes 5 strings for trainer classes (in tab トレーナー分類) that are marked as “deleted”, but had already been localized:

Japanese

Provided English translation

Notes

ボーダー

BOARDER

Made its way to the final game as unused data.

グラスボーダー

BOARDER

Japanese reads “Glass Boarder”.

おやこトレーナー

DAD AND SON

Japanese reads “Parent and child trainers”.

カラテだいおう

KARATE KING

N/A.

トレジャーハンター

ADVENTURER

Japanese reads “Treasure Hunter”.

Discarded Place Name#

File ローカライズFIX(米).xls, a spreadsheet for the English localization, includes a string for a place name (in tab 地名・施設名) that is marked as “deleted”, but had already been localized:

Japanese

Provided English translation

Notes

ナギサのおみせ

PACIFIC SOUVENIR

Japanese reads “Shop/restaurant by the shore”. It might have been an old name for the “Seashore House” on Route 109.