パスワードを忘れた? アカウント作成
16381226 story
ゲーム

テレビゲームの「隠しコマンド」、始まりはデバッグ機能の消し忘れと言われている 71

ストーリー by nagazou
長期シリーズゲームだと残ってる場合もあるけど 部門より
1980年代のファミコン時代などにはよく見られた「隠しコマンド」だが、最近ではとんと聞かなくなっている。マグミクスの記事によれば、これらは元々はセーブやパスワード機能などの実装が難しい時代に、デバック時のプレイ用として実装されていた。そうしたコマンドを消し忘れて出荷したことが「隠しコマンド」の始まりと言われているという(マグミクス)。

逆に最近は「隠しコマンド」をあまり聞かなくなった理由として、ゲームの開発規模が大きくなりセーブが当たり前に。デバック向けに無敵に改造したセーブデータを用意しておけばよい、ゲーム機の性能も向上していることからパソコンの常駐プログラムのようにデバッグ用のツールを陰で動かすこともできる、プレイスタイルの変化などから「隠しコマンド」はその役割を終えたのだろうとしている。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2022年12月14日 9時22分 (#4380233)

    セーブ出来るようになってもデバッグモードは作るもんだな。任意のところから再開したい、以外にも、フラグ類とか当たり判定の枠なんかの本来見えないものを画面に表示するとか、ステージエディタを別途作るのが大変なのでこっそり持たせておくとか、もっと色んな機能を盛り込むと便利なので。

    デバッグモードに入る裏技が見つからなくなってるのは、ゲーム内の操作では入れないようにしてあるからじゃないかな。パソコン用のゲーム開発以外でも、ゲーム機の開発環境って、開発用の機材(実機に外部から操作する用の裏口が付いたようなもの。実機とは別のハードウェアとして開発者専用に作られることもあるけど、PSPは実機のバッテリー端子にその裏口機能が付いてて、何という見事な裏技の隠し方!! みたいに賞賛されてた)とパソコンを繋いで、パソコン側で動かしたデバッガからの操作で、開発機材上で動いてる実際のゲームのプログラムを止めてステップ実行したり変数の中身を確認出来たりする。なので、グローバル変数 bool DEBUG_MODE = false; なんかを用意しておいて、デバッグモードを使いたいときはデバッガからそれをtrueに書き換えてやるだけ。

    ゲーム内でtrueに書き換える方法は無いのでデバッグモードには入れない。…たまにしばしば、メモリ書き換え系の裏技でtureにできてしまってTASとかRTAで活用されてたりもするけど。

    それが嫌ならもう一手間を掛けて、最終出荷版では const bool DEBUG_MODE = false; に書き換えるとコンパイラさんが気を効かせてデバッグモード関連の関連のソースをコンパイル時にスルーしてくれる、みたいな工夫もできる。が、自分の関わったプロジェクトではやってなかった。/* ここを消すと何故か動かない */ が起こりかねないリスクを取るほどの利点は無いという判断で。

    • by Anonymous Coward

      気を効かせるもなにも、普通にやるもんだと思ってた

      #ifdef DEBUG_MODE
                DebugMode();
      #endif

  • 私が聞いた話では、デバッグモード状態で焼いたROM(カートリッジ)でテストした後、さらにデバッグモードを消した状態でROMを焼いて、さらにそれでテストするのが大変だったから、デバッグモードは出荷時にも消す必要がないよう、「隠して残した」ということでした。
    今だったらデバッグモードのフラグが立っているものと、そうでないものを作り分けるのも楽だから、デバッグモードを隠す必要はない、と。

  • by Anonymous Coward on 2022年12月14日 18時05分 (#4380534)

    元ナムコの宇田川さんの話を
    ナムコ初のファミコンカセットのギャラクシアンのリセット何度か押すと
    『サバの女王』、『風の谷のナウシカ』の『ナウシカ・レクイエム』が流れるのは知ってると思うがあれが
    なぜ入っていたかの経緯と
    PCエンジン版の妖怪道中記のパスワードを入れるとメッセージや裏技が出るのも宇田川さんが担当しています。

    消し忘れは都合のいい言い訳かと思いますよ。
    それが黎明期の落としどころです。

    SYSTEM II のPCM音源チップものC140も宇田川さんですよ。

    1980年代ナムコの天才ハッカーが初めて語るはゲーム史に刻まれる新たなXページ|宇田川治久物語①
    https://www.youtube.com/watch?v=K2nn0OsaGD4 [youtube.com]
    1980年代ナムコの天才ハッカーが初めて語るはゲーム史に刻まれる新たなXページ|宇田川治久物語②
    https://www.youtube.com/watch?v=2ot3Udt0Ka0 [youtube.com]
    1980年代ナムコの天才ハッカーが初めて語るはゲーム史に刻まれる新たなXページ|宇田川治久物語③最終話
    https://www.youtube.com/watch?v=ahFgmuG8zjY [youtube.com]

  • by Anonymous Coward on 2022年12月14日 7時19分 (#4380193)

    という雰囲気を浸透させてから『隠しコマンド発見!』とかいう情報流して希少性で稼ぐ訳ですか。
    SNS時代ならではの広告費節約技ですね、流石です。

    • by Anonymous Coward

      忘れるか普通?とか思ってしまう。

      • by Anonymous Coward

        忘れたはちょっと考えにくいけど、
        ・当時はそこまで慣れた開発者ばかりではなかったので消すという考え自体がなかった
        ・へたにプログラムを弄ってバグが出るのを恐れた
        あたりは普通にありそうかなって思う。
        特にメモリかつかつの当時だとそこを弄ったことでメモリレイアウトが変わって、潜在バグが発現するなんてこともあっただろうし。

        • by Anonymous Coward on 2022年12月14日 11時58分 (#4380315)

          出荷用ビルドがどーしてもまともに動かなかったので、まともに動いている(ように見える)デバッグビルドで出荷せざるを得なかった、に1ガバス。

          親コメント
        • by Anonymous Coward

          >・へたにプログラムを弄ってバグが出るのを恐れた
          自分もこっちに賛成。

          広範囲に影響を与える危険があるから、外した後のデバッグも
          したいけど、外したらデバッグに時間がかかるというジレンマ。
          普通に残して置いた方が安全だし楽だろう。

          それと出火後の 出荷後に判明した不具合報告についても動作確認
          してデバッグが必用なゲームもあるからさ。そういう場合にもデバッグ
          機能はあるにこしたことはない。

          • by Anonymous Coward

            デバッグの終盤までデバッグ用のコードが残っているのがそもそもアウトなのだけれど、そうなってしまったのなら
            デバッグ関連のコードを外すのではなく、モードに突入するキーストロークのチェックルーチンを呼ばなくするだけとか
            呼んでも常に否を返すように変更するとか、それだけで済む話だなと。

            • by Anonymous Coward

              呼ばなくしただけのルーチンのデバッグはいつどうやってするんでしょうか

            • by Anonymous Coward

              当時の開発環境を知らないんだけど、バージョン管理システムとかファイル間の依存関係みてくれるビルドツールとかないと
              「だけ」の後作業大変そうだよ

              • by Anonymous Coward

                例えばこんなコードだったら

                call checkstroke
                jr nz debugmode

                call checkstroke
                nop
                nop

                こうね。
                大変とも思わないけれど。

              • by Anonymous Coward

                バイナリエディタで16進数を直書きしながらコード作ってたような時代だしね。
                該当の分岐をダミー命令で上書きすれば良いと言われればそうなのだろうけれど、いろいろ無理やりな工夫で動かしていたりするから、どう動きが変わるか読めない。(乱数代わりにコード内の無関係な番地を参照する処理があったり・・・)

              • by Anonymous Coward

                jr nz debugmodeからnop*2に変わったことによる経過クロックの違いなんてのもありましてね。

            • by Anonymous Coward

              んで漏らすんだろ。

        • by Anonymous Coward

          デバッグコマンドがパワーアップコマンド1つだけというのがそもそも疑念を抱くところ。
          ステージセレクトや難易度変更、任意のパワーアップ設定、パラメータの表示などをいろいろ盛り込むでしょ。
          そしてそれらは製品ビルドでは作動しないようにコーディングする。

          ”へたにプログラムを弄ってバグが出るのを恐れる”から、当然デバッグの後半では製品ビルドでチェックを行う。

          • by Anonymous Coward

            隠しコマンドが世に知られるきっかけのひとつなのは間違いないファミコン版ゼビウスの隠しコマンドは、コマンド入力に成功すると画面左上に0が8つ並んで方向ボタンで桁移動と0/1の切り替えを行う明らかなデバッグモード。
            そのうち一つが無敵モードで、敵の動きなどをチェックするためのものだったと思われる。

            > ステージセレクトや難易度変更、任意のパワーアップ設定、パラメータの表示などをいろいろ盛り込むでしょ。

            ファミコンだとそんなことに貴重なリソースは割きたくない。
            開発者だけが理解できればいい前提なので最低限の情報しかない。

            当時のプログラムはアセンブラで書いていただろうし、速度やコードサイズを優先しないといけないのであまり機能ごとに分離されたコードになっておらず「この行をコメントアウトすればデバッグ機能を無効化できる」とはいかないことも十分にありうる。

      • by Anonymous Coward

        ゲームの隠しコマンドはなぜ生まれ、廃れたのか│CLIP [yourclip.life]

        映画『レディ・プレイヤー1』(2018年)の終盤にそれは登場します。『ADVENTURE』(1980年発売)というゲームで、ある一連の操作、つまり原初の隠しコマンドを入れると、秘密の部屋への道が開かれ、そこに「ワーレン・ロビネット(開発者の名前)柵」が現われる

        メーカーによっては制作者の名前を出すのを許しませんでした。そのため「自分が創った!」ことを残すために、署名のように入れたと語られています。

        イースターエッグ説も

      • by Anonymous Coward

        ドラクエ3の2コンAボタン押してるとエンカウントしない裏技は消し忘れっぽいです。
        https://tumitate03.hatenablog.com/entry/2021/10/02/092936 [hatenablog.com]

        まあ何かしら意図的に残されたケースが9割とは思います。

  • by Anonymous Coward on 2022年12月14日 8時05分 (#4380201)

    コレ [youtu.be]は何をデバッグする為のものだったんだろ…

  • by Anonymous Coward on 2022年12月14日 8時18分 (#4380213)

    飽きられたのと、アクションゲーム、シューティングゲームが減ったのと、対戦・協力ゲームが増えたからだったりして。

    あとはゲーム開発者がサラリーマン化、下請け構造化したとか?

    今はネットで広がるから、裏でもなんでもなくなりそうだし

    • by Anonymous Coward

      wikiを読み込まないとクリアできないゲームはあるわけだし。
      グリッチが隠しコマンドの代わりに機能しているようには見える。

  • by Anonymous Coward on 2022年12月14日 8時28分 (#4380219)

    という表現も最近とんと聞かなくなった

    • by Anonymous Coward

      「とんとかいも」って言葉が不意に浮かんだんだが何だっけ?

    • by Anonymous Coward

      ぎゃふん

  • by Anonymous Coward on 2022年12月14日 8時37分 (#4380221)

    裏技あります(ただし有料)

    # 裏じゃない

  • by Anonymous Coward on 2022年12月14日 8時47分 (#4380223)

    ユーザー「バグだ!」
    高橋名人「裏技です!よく見つけましたね!」
    高橋名人はハドソンの広報担当だったらしいけどほんと有能

    • by Anonymous Coward

      最近のゲームであるR-TYPE FINAL2のKAGUYAという機体の黄色レーザーにも仕様なのかバグなのか分からない技があるみたいです。
      https://youtube.com/watch?v=lRAod_6-WI8&t=3m46s [youtube.com]

      • by Anonymous Coward

        こりゃ仕様でしょ。納得のいく仕様かどうかは別として。

        • by Anonymous Coward

          仕様にしては操作難易度に対して効果が微妙みたいです。
          確かにアイレムなら微妙な仕様をワザワザ入れそうなので、その判断は正しい気がしますが。

  • by Anonymous Coward on 2022年12月14日 9時42分 (#4380240)

    今の時代、隠しでもなく、”表コマンド”だろ
    PCでもCSでもそういう類のコマンドが氾濫している

    つまり、隠しコマンドが消え去ったのではなく、表に返り咲いているだけってこと

  • by Anonymous Coward on 2022年12月14日 9時48分 (#4380242)

    「CONTINUE?」(ひさの瑠珈)って漫画で
    ゲーム会社の社員が
    「今日発売のゲームでバグが見つかりました」
    で社長が
    「ゲーム雑誌に裏技として投稿しといて」

  • by Anonymous Coward on 2022年12月14日 9時50分 (#4380244)

    スカイリムなんてわざと残してる(笑)。そこでコマンド入れないと進まないクエストとかあるし。(バグなんだが延々なおさない)残してあるからこそMOD作る人が捗る面もあるしな。

    • by Anonymous Coward

      あれは残しているのではありません。バグ遭遇時の対応策として実装された機能です。

      • by Anonymous Coward

        SwitchでSkyrimをプレイしてスカイフォージの鍛冶屋が死んでしまって仰天。コンソールがないので泣く泣くそのままプレイ。
        PCでOblivionをプレイしたらコロールの鍛冶屋のおばさんが死んだ。なんで? いないと不便なんでコンソールで復活させた。

        • by Anonymous Coward

          あのシリーズは絶対死んではいけないキャラは死なないようになってるので。ましぬような目にあったら死ぬのがリアル。

    • by Anonymous Coward

      スカイリムに限らず洋ゲーはコンソールモード残してあるゲーム多いですね。

  • by Anonymous Coward on 2022年12月14日 9時53分 (#4380247)

    Access Accepted第683回:40年以上も続くゲーム業界の慣習 ~ 開発者が隠した「イースターエッグ」
    https://www.4gamer.net/games/036/G003691/20210409097/ [4gamer.net]

  • by Anonymous Coward on 2022年12月14日 10時33分 (#4380269)

    グラセフとかのチートコマンドは隠れてる。でもそれ言ったらゲームソフトの大半の機能は隠されてる。隠しコマンドを効かなくなったのはあって当たり前で公然の秘密だから。
    デバッグ要機能の消し忘れを聞かなくなったのはその辺を管理する手法が確立されたから。

  • by Anonymous Coward on 2022年12月14日 10時35分 (#4380272)

    面セレクトやサウンドテストは発売後一定期間で公開可、
    記事書くためのガチデバッグコマンドは公開不可として先に各雑誌に配ってました。
    PS2時代の話。

  • by Anonymous Coward on 2022年12月14日 11時44分 (#4380311)

    みたいに、お約束化したものもありますからねぇ。
    ※「ハドソン!ハドソン!」というとお助けが出てくるのは仕様で「コナミ!コナミ!」というと出てくるのは裏技?w

    • by Anonymous Coward

      > 「ハドソン!ハドソン!」というとお助けが出てくるのは仕様
       
      バンゲリングベイの場合は、ハドソン!と叫ぶと2P(敵側)のえげつない攻撃強化でしたね。
      もちろん音認やってるわけじゃないので、マイクに息をななめに吹きかけるのが一番効率が良かった。

  • by Anonymous Coward on 2022年12月14日 13時04分 (#4380346)

    一品物の工場納入品にも隠しコマンドがあって、工場での試験後に消すはずだったのが残ってて、たまたまその操作を作業者が行って問題を起こしたことがありました。
    その件は正直に話して丁重にあやまって事なきを得ました。同僚は黙ってノイズのせいにしろと言われましたが。
    本当に消し忘れていたのですが、普通は行わない操作で、まさかそんな操作をする変わり者がいるとは思わなかった。

    • by Anonymous Coward

      リセットコマンドはそれなりに複雑なものなら大抵の製品に入ってそうです。
      エレベーターとかは消防士用なのかすべての停止階をキャンセルするコマンドがありますし。

  • by Anonymous Coward on 2022年12月14日 13時36分 (#4380361)

    名前を特殊なものにすると何かが起こる隠しコマンドもありましたね。
    ザナドゥとかアーケード版クレイジークライマーとか。

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...