
2026/01/04 23:30
ストリートファイター Ⅱ: ザ・ワールドウォリアー(2021)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
「World Warrier」というタイプミスは、スプライト作業が完了した数か月後にStreet Fighter IIのサブタイトルロゴで初めて現れました。CPS‑1ハードウェアはグラフィックスROMタイルを変更できないため、リード・グラフィックデザイナーのAkiman は実行時に修正しなければなりませんでした。
サブタイトルは16回の描画コールで構成されており、使用しているタイルは0xC8–0xCFと0xD8–0xDFです。Akiman は「ier」という語尾を形成していた3つの問題のあるタイル(0xDD–0xDF)を削除し、代わりに0xCDと0xCEを使ってざっくりと「or」を作成しました。最後のタイルの『W』の右足が「l」のように見えており、「i」ではありませんでした。
この「l」を「i」に変えるため、Akiman はGuile のスプライトからタイル 0x96 を使用しました。このタイルは左下隅に1ピクセルだけが存在します。Guile のパレットのインデックス14(濃い緑)を選択しつつ、サブタイトルの青色パレット(同じインデックス14は濃い青)で描画することで、そのタイルはほぼ透明になり、1ピクセルだけが残ります。3 つの描画コマンドでこの「鉛筆」タイルを『l』に重ね、上部を切り取って点を付けることで「i」を形成しました。
修正されたサブタイトルは、その後のリリースで適切な「IOR」タイルを含めて固定され、続くサブタイトル変更(「Champion Edition」「Hyper‑fighting」)により元のタイプミスが目立たなくなりました。このケースは、ハードウェア制限をクリエイティブに回避する方法―パレット操作と実行時描画を利用して ROM を書き換えずにグラフィック問題を修正できること―を示しています。
本文
2021年12月23日 – ストリートファイター II:ザ・ワールド・ウォリアー
この記事は ストリートファイター II と CPS‑1 に関するシリーズの一部です。
読む前に、以前の記事を必ず読んでください。
失笑必至のタイプミス
私のお気に入りの逸話のひとつが、ストリートファイター II のリードグラフィックデザイナー・アキマンによる、出荷直前に発覚した問題です。
「締め切りまで残り3日、恐ろしいことを発見しました。
サブタイトルの「World Warrior」を誤って「World Warrier」と綴ってしまいました。」
— アキマン(SF2 リードグラフィックデザイナー)
(Shmuplation 翻訳)
問題を再現してみる。痛い!
問題の本質を理解するには、アーケードハードウェアがどう動作しているかを掘り下げる必要があります。
CPS‑1 はスーパートライドローイングマシンです。多数のタイルを描画できますが、それらを変更することはできません。
タイルは GFX ROM からそのまま取り出され、スクリーンへ送られます(ただし水平または垂直に反転させることは可能です)。
- GFX ROM と 68000 の命令ROM は別々に焼かれています。
- アキマンは「GFX ROM が焼かれていたが、まだ命令を変更できた」と述べています。
「この話も安全に語れるようになりましたが、本当に発見したのはすべてスプライト作業が終わってから数か月後でした。
ロゴは既に完成していたので、ここで文字を変えることはできませんでした。
『おそらく「o」の形に強制できるだろう』と考え、いろんなスプライトを重ねて試しました。結局、見た目が「o」になりました。ホッ!」
— アキマン
詳細に迫る
アキマンの解決策は興味深いですが、どうやって「e」を「o」に変えたか詳細を知りたいです。
- シート抽出ツールでテキストを見つけました。ロゴとタイプミスはシート
にあります。0x7B00 - ロゴは 16 回の描画呼び出しで、タイル
–0xC8
と0xCF
–0xD8
を使用して描かれます。0xDF
アキマンは実務的に問題を解決しました:
- 「World」の中に「or」があり、誤った「ier」を置き換えられると気付きました。
- 最後の 3 タイル (
,0xDD
,0xDE
) を削除し、代わりに0xDF
と0xCD
を挿入しました。0xCE
これでロゴは「The World Warrlor」になりましたが、借用した「W」の右脚が「i」ではなく「l」に見えるようになってしまいました。
グアイの助け
パズルの最後の部分はグアイのふくらみから得られます。
タイル
0x96 をよく見ると、左下隅に1ピクセルだけが表示されています。
- グアイパレット – インデックス 14 は暗い緑。
- ロゴパレット – インデックス 14 は暗い青。
タイル
0x96 をロゴパレットで使用すると、68000 が「ペンシルタイル」コマンドを発行できます。これは任意の場所に1ピクセルを描画できるもので、実質的には線を作成します。アキマンはこのペンシルタイルを使って、問題の「l」の上部を削り取り、上に点を付けて「i」に変えました。
「『Warrior』の i がずっと奇妙に見えていた理由が分かったでしょう?」
— アキマン
エピローグ
タイプミスは後続版の Street Fighter II で修正され、サブタイトル「World Warrior」のタイルセットには正しい「IOR」が入ります。
皮肉なことに、これらのタイルは使われませんでした。というのも、サブタイトルが「World Warrior」から「Champion Edition」、さらに「Hyper‑fighting」に変更されたためです。