テレビゲームの「隠しコマンド」、始まりはデバッグ機能の消し忘れと言われている 71
ストーリー by nagazou
長期シリーズゲームだと残ってる場合もあるけど 部門より
長期シリーズゲームだと残ってる場合もあるけど 部門より
1980年代のファミコン時代などにはよく見られた「隠しコマンド」だが、最近ではとんと聞かなくなっている。マグミクスの記事によれば、これらは元々はセーブやパスワード機能などの実装が難しい時代に、デバック時のプレイ用として実装されていた。そうしたコマンドを消し忘れて出荷したことが「隠しコマンド」の始まりと言われているという(マグミクス)。
逆に最近は「隠しコマンド」をあまり聞かなくなった理由として、ゲームの開発規模が大きくなりセーブが当たり前に。デバック向けに無敵に改造したセーブデータを用意しておけばよい、ゲーム機の性能も向上していることからパソコンの常駐プログラムのようにデバッグ用のツールを陰で動かすこともできる、プレイスタイルの変化などから「隠しコマンド」はその役割を終えたのだろうとしている。
逆に最近は「隠しコマンド」をあまり聞かなくなった理由として、ゲームの開発規模が大きくなりセーブが当たり前に。デバック向けに無敵に改造したセーブデータを用意しておけばよい、ゲーム機の性能も向上していることからパソコンの常駐プログラムのようにデバッグ用のツールを陰で動かすこともできる、プレイスタイルの変化などから「隠しコマンド」はその役割を終えたのだろうとしている。
デバッグモードの役割 (スコア:2, 参考になる)
セーブ出来るようになってもデバッグモードは作るもんだな。任意のところから再開したい、以外にも、フラグ類とか当たり判定の枠なんかの本来見えないものを画面に表示するとか、ステージエディタを別途作るのが大変なのでこっそり持たせておくとか、もっと色んな機能を盛り込むと便利なので。
デバッグモードに入る裏技が見つからなくなってるのは、ゲーム内の操作では入れないようにしてあるからじゃないかな。パソコン用のゲーム開発以外でも、ゲーム機の開発環境って、開発用の機材(実機に外部から操作する用の裏口が付いたようなもの。実機とは別のハードウェアとして開発者専用に作られることもあるけど、PSPは実機のバッテリー端子にその裏口機能が付いてて、何という見事な裏技の隠し方!! みたいに賞賛されてた)とパソコンを繋いで、パソコン側で動かしたデバッガからの操作で、開発機材上で動いてる実際のゲームのプログラムを止めてステップ実行したり変数の中身を確認出来たりする。なので、グローバル変数 bool DEBUG_MODE = false; なんかを用意しておいて、デバッグモードを使いたいときはデバッガからそれをtrueに書き換えてやるだけ。
ゲーム内でtrueに書き換える方法は無いのでデバッグモードには入れない。…たまにしばしば、メモリ書き換え系の裏技でtureにできてしまってTASとかRTAで活用されてたりもするけど。
それが嫌ならもう一手間を掛けて、最終出荷版では const bool DEBUG_MODE = false; に書き換えるとコンパイラさんが気を効かせてデバッグモード関連の関連のソースをコンパイル時にスルーしてくれる、みたいな工夫もできる。が、自分の関わったプロジェクトではやってなかった。/* ここを消すと何故か動かない */ が起こりかねないリスクを取るほどの利点は無いという判断で。
Re: (スコア:0)
気を効かせるもなにも、普通にやるもんだと思ってた
#ifdef DEBUG_MODE
DebugMode();
#endif
昔のゲームはROMに焼く手間があったのでデバッグモードを「隠して残した」とか (スコア:1)
私が聞いた話では、デバッグモード状態で焼いたROM(カートリッジ)でテストした後、さらにデバッグモードを消した状態でROMを焼いて、さらにそれでテストするのが大変だったから、デバッグモードは出荷時にも消す必要がないよう、「隠して残した」ということでした。
今だったらデバッグモードのフラグが立っているものと、そうでないものを作り分けるのも楽だから、デバッグモードを隠す必要はない、と。
この手のお話のまとめになります。 (スコア:1)
元ナムコの宇田川さんの話を
ナムコ初のファミコンカセットのギャラクシアンのリセット何度か押すと
『サバの女王』、『風の谷のナウシカ』の『ナウシカ・レクイエム』が流れるのは知ってると思うがあれが
なぜ入っていたかの経緯と
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]
>「隠しコマンド」はその役割を終えたのだろう (スコア:0)
という雰囲気を浸透させてから『隠しコマンド発見!』とかいう情報流して希少性で稼ぐ訳ですか。
SNS時代ならではの広告費節約技ですね、流石です。
Re: (スコア:0)
忘れるか普通?とか思ってしまう。
Re: (スコア:0)
忘れたはちょっと考えにくいけど、
・当時はそこまで慣れた開発者ばかりではなかったので消すという考え自体がなかった
・へたにプログラムを弄ってバグが出るのを恐れた
あたりは普通にありそうかなって思う。
特にメモリかつかつの当時だとそこを弄ったことでメモリレイアウトが変わって、潜在バグが発現するなんてこともあっただろうし。
Re:>「隠しコマンド」はその役割を終えたのだろう (スコア:1)
出荷用ビルドがどーしてもまともに動かなかったので、まともに動いている(ように見える)デバッグビルドで出荷せざるを得なかった、に1ガバス。
Re: (スコア:0)
>・へたにプログラムを弄ってバグが出るのを恐れた
自分もこっちに賛成。
広範囲に影響を与える危険があるから、外した後のデバッグも
したいけど、外したらデバッグに時間がかかるというジレンマ。
普通に残して置いた方が安全だし楽だろう。
それと
出火後の出荷後に判明した不具合報告についても動作確認してデバッグが必用なゲームもあるからさ。そういう場合にもデバッグ
機能はあるにこしたことはない。
Re: (スコア:0)
デバッグの終盤までデバッグ用のコードが残っているのがそもそもアウトなのだけれど、そうなってしまったのなら
デバッグ関連のコードを外すのではなく、モードに突入するキーストロークのチェックルーチンを呼ばなくするだけとか
呼んでも常に否を返すように変更するとか、それだけで済む話だなと。
Re: (スコア:0)
呼ばなくしただけのルーチンのデバッグはいつどうやってするんでしょうか
Re: (スコア:0)
当時の開発環境を知らないんだけど、バージョン管理システムとかファイル間の依存関係みてくれるビルドツールとかないと
「だけ」の後作業大変そうだよ
Re: (スコア:0)
例えばこんなコードだったら
call checkstroke
jr nz debugmode
call checkstroke
nop
nop
こうね。
大変とも思わないけれど。
Re: (スコア:0)
バイナリエディタで16進数を直書きしながらコード作ってたような時代だしね。
該当の分岐をダミー命令で上書きすれば良いと言われればそうなのだろうけれど、いろいろ無理やりな工夫で動かしていたりするから、どう動きが変わるか読めない。(乱数代わりにコード内の無関係な番地を参照する処理があったり・・・)
Re: (スコア:0)
jr nz debugmodeからnop*2に変わったことによる経過クロックの違いなんてのもありましてね。
Re: (スコア:0)
んで漏らすんだろ。
Re: (スコア:0)
デバッグコマンドがパワーアップコマンド1つだけというのがそもそも疑念を抱くところ。
ステージセレクトや難易度変更、任意のパワーアップ設定、パラメータの表示などをいろいろ盛り込むでしょ。
そしてそれらは製品ビルドでは作動しないようにコーディングする。
”へたにプログラムを弄ってバグが出るのを恐れる”から、当然デバッグの後半では製品ビルドでチェックを行う。
Re: (スコア:0)
隠しコマンドが世に知られるきっかけのひとつなのは間違いないファミコン版ゼビウスの隠しコマンドは、コマンド入力に成功すると画面左上に0が8つ並んで方向ボタンで桁移動と0/1の切り替えを行う明らかなデバッグモード。
そのうち一つが無敵モードで、敵の動きなどをチェックするためのものだったと思われる。
> ステージセレクトや難易度変更、任意のパワーアップ設定、パラメータの表示などをいろいろ盛り込むでしょ。
ファミコンだとそんなことに貴重なリソースは割きたくない。
開発者だけが理解できればいい前提なので最低限の情報しかない。
当時のプログラムはアセンブラで書いていただろうし、速度やコードサイズを優先しないといけないのであまり機能ごとに分離されたコードになっておらず「この行をコメントアウトすればデバッグ機能を無効化できる」とはいかないことも十分にありうる。
Re: (スコア:0)
ゲームの隠しコマンドはなぜ生まれ、廃れたのか│CLIP [yourclip.life]
イースターエッグ説も
Re: (スコア:0)
ドラクエ3の2コンAボタン押してるとエンカウントしない裏技は消し忘れっぽいです。
https://tumitate03.hatenablog.com/entry/2021/10/02/092936 [hatenablog.com]
まあ何かしら意図的に残されたケースが9割とは思います。
となると (スコア:0)
コレ [youtu.be]は何をデバッグする為のものだったんだろ…
飽きられた (スコア:0)
飽きられたのと、アクションゲーム、シューティングゲームが減ったのと、対戦・協力ゲームが増えたからだったりして。
あとはゲーム開発者がサラリーマン化、下請け構造化したとか?
今はネットで広がるから、裏でもなんでもなくなりそうだし
Re: (スコア:0)
wikiを読み込まないとクリアできないゲームはあるわけだし。
グリッチが隠しコマンドの代わりに機能しているようには見える。
とんと聞かなくなって (スコア:0)
という表現も最近とんと聞かなくなった
Re: (スコア:0)
「とんとかいも」って言葉が不意に浮かんだんだが何だっけ?
Re:とんと聞かなくなって (スコア:1)
IMEをカナにして「system」と打ち込むば疑問は解けると信じる
#はにりいと
Re: (スコア:0)
モニカニ ミラ トントカイモ ミラ
MITI NO SYSTEM NO
まで思い出した
Re: (スコア:0)
ベーマガではスナミ族と言われていたな
Re: (スコア:0)
ぎゃふん
DLC (スコア:0)
裏技あります(ただし有料)
# 裏じゃない
バグ?仕様です (スコア:0)
ユーザー「バグだ!」
高橋名人「裏技です!よく見つけましたね!」
高橋名人はハドソンの広報担当だったらしいけどほんと有能
Re: (スコア:0)
最近のゲームであるR-TYPE FINAL2のKAGUYAという機体の黄色レーザーにも仕様なのかバグなのか分からない技があるみたいです。
https://youtube.com/watch?v=lRAod_6-WI8&t=3m46s [youtube.com]
Re: (スコア:0)
こりゃ仕様でしょ。納得のいく仕様かどうかは別として。
Re: (スコア:0)
仕様にしては操作難易度に対して効果が微妙みたいです。
確かにアイレムなら微妙な仕様をワザワザ入れそうなので、その判断は正しい気がしますが。
いわゆるチートのことだな (スコア:0)
今の時代、隠しでもなく、”表コマンド”だろ
PCでもCSでもそういう類のコマンドが氾濫している
つまり、隠しコマンドが消え去ったのではなく、表に返り咲いているだけってこと
裏技 (スコア:0)
「CONTINUE?」(ひさの瑠珈)って漫画で
ゲーム会社の社員が
「今日発売のゲームでバグが見つかりました」
で社長が
「ゲーム雑誌に裏技として投稿しといて」
Re:裏技 (スコア:2)
#
#ところで、誰か、現実世界のデバッグ用隠しコマンド知りませんか?
#
コンソール画面がそれでは (スコア:0)
スカイリムなんてわざと残してる(笑)。そこでコマンド入れないと進まないクエストとかあるし。(バグなんだが延々なおさない)残してあるからこそMOD作る人が捗る面もあるしな。
Re: (スコア:0)
あれは残しているのではありません。バグ遭遇時の対応策として実装された機能です。
Re: (スコア:0)
SwitchでSkyrimをプレイしてスカイフォージの鍛冶屋が死んでしまって仰天。コンソールがないので泣く泣くそのままプレイ。
PCでOblivionをプレイしたらコロールの鍛冶屋のおばさんが死んだ。なんで? いないと不便なんでコンソールで復活させた。
Re: (スコア:0)
あのシリーズは絶対死んではいけないキャラは死なないようになってるので。ましぬような目にあったら死ぬのがリアル。
Re: (スコア:0)
スカイリムに限らず洋ゲーはコンソールモード残してあるゲーム多いですね。
参考 イースターエッグの意味とその歴史 (スコア:0)
Access Accepted第683回:40年以上も続くゲーム業界の慣習 ~ 開発者が隠した「イースターエッグ」
https://www.4gamer.net/games/036/G003691/20210409097/ [4gamer.net]
そもそも何を持って隠しているとするのか (スコア:0)
グラセフとかのチートコマンドは隠れてる。でもそれ言ったらゲームソフトの大半の機能は隠されてる。隠しコマンドを効かなくなったのはあって当たり前で公然の秘密だから。
デバッグ要機能の消し忘れを聞かなくなったのはその辺を管理する手法が確立されたから。
販促として入れてました (スコア:0)
面セレクトやサウンドテストは発売後一定期間で公開可、
記事書くためのガチデバッグコマンドは公開不可として先に各雑誌に配ってました。
PS2時代の話。
↑↑↓↓←→←→BA (スコア:0)
みたいに、お約束化したものもありますからねぇ。
※「ハドソン!ハドソン!」というとお助けが出てくるのは仕様で「コナミ!コナミ!」というと出てくるのは裏技?w
Re: (スコア:0)
> 「ハドソン!ハドソン!」というとお助けが出てくるのは仕様
バンゲリングベイの場合は、ハドソン!と叫ぶと2P(敵側)のえげつない攻撃強化でしたね。
もちろん音認やってるわけじゃないので、マイクに息をななめに吹きかけるのが一番効率が良かった。
工業製品にも (スコア:0)
一品物の工場納入品にも隠しコマンドがあって、工場での試験後に消すはずだったのが残ってて、たまたまその操作を作業者が行って問題を起こしたことがありました。
その件は正直に話して丁重にあやまって事なきを得ました。同僚は黙ってノイズのせいにしろと言われましたが。
本当に消し忘れていたのですが、普通は行わない操作で、まさかそんな操作をする変わり者がいるとは思わなかった。
Re: (スコア:0)
リセットコマンドはそれなりに複雑なものなら大抵の製品に入ってそうです。
エレベーターとかは消防士用なのかすべての停止階をキャンセルするコマンドがありますし。
ネームエントリー (スコア:0)
名前を特殊なものにすると何かが起こる隠しコマンドもありましたね。
ザナドゥとかアーケード版クレイジークライマーとか。