管理人が好きなゲームの一つ「ドカポン」シリーズ。
その移植作がついに発売になりました
その名もドカポンキングダム
…は良かったのですが、なんとフリーズするバグが発生
※公式サイトより
なんと、キャラの名前にカタカナの「ソ」が入っていると、データのロード時にフリーズするそうです。
どういうバグなんだ
と思い調べていたところ、以下の記事 を発見。
なるほど。
引用しますね。
------------------------------
Shift_JISという規則における「ソ」の文字コードである。この規則において、ソは「0x835C」となる。この文字コードをさらに分解すると、0xというのは「16進数です」とあらわす接頭辞。残る数字は「83 5C」とふたつに分けて解釈される。そして、この「5C」こそが“「ソ」でゲームが止まる不具合”の犯人と見られるのだ。
プログラミング言語では、しばしば「エスケープ記号」と呼ばれる特殊な記号が使われる。その代表的な例が「¥」だ。「¥」は、プログラムの中でなにか機能をもっている文字を、なんの機能もないただの文字にする効果が与えられていたりする。つまり、プログラムソースの何気ないところに「¥」を挿入しようものなら、不具合が発生する可能性が非常に高いわけだ。そして、この「¥」の文字コードは、Shift_JIS含む多くの規則で「5C」なのである。
------------------------------
ソの後ろ半分が5Cのため、対策を打たずに使うと「¥」に解釈されて、おかしな動作となってしまいます、という推測です。
近年のプログラムではShift-JISではなくUnicodeが使用されているため、通常は起きません。
ではなぜ起きたのか。これが原因であるという前提に立つと、本作は2007年に発売されたPS2版の移植作なのですが、そのPS2版も1994年の「ドカポン3・2・1」の移植なんです。
プログラムがUnicodeに変わったのが、2002年以降くらいから。94年はShift-JIS全盛期でした。もし、移植の際に"過去のプログラムを流用していた"なら?
起き得る話ですね。
ということは、修正にはかなり時間を要します。修正方法は大きく分けて2つ。
①Unicodeで書き換える
②影響範囲を全て洗い出し修正する
どちらにしろ時間がかかることが分かります。さすがに①はやらないと思いますので、②の対策を取るとしても、全ソースコードから影響範囲の洗い出しが必要です。観点を絞り込んで洗い出すとしても、嫌になりますね
今回のバグと関連する大きなバグの対策をした暫定対策版を早急に出し、その後完全対策版の2段階、下手をすると複数段階性でのパッチリリースとなる可能性もあります。
お願い
というわけで、パッケージ版を購入された方にお願い。
修正版のカートリッジとの交換要望をメーカーに出してほしいのです。
ご存知と思いますが、ドカポンは常にレトロゲーム機でプレイすることが必要なタイトルです。
Switchはもう少し続くでしょうけど、それでもピークは過ぎています。いつかはレトロゲーム機になります。そのときに、フリーズバグ入りカートリッジを持っていたいですか、という話です。
管理人はメーカーに要望を出しました。コンパイルハートのユーザーサポート と
STINGのお問い合わせ から出せます。数が多ければメーカーも動くと思いますので、よろしくお願いします
(初版刷って、次を刷るほど売れるかどうかなのですが)
問題は、刷るかどうか、人件費、送料。
※Switchはディスクではありませんでしたね、失礼しました。
選挙と同じで、声を挙げないと動いてくれませんので、どうかご協力をなんならヘタなりに文章作りましたので、コピペでもOKです
○○と申します。
「ドカポンキングダム」の発売、おめでとうございます。発売前より楽しみにしておりました。
Twitterなどでも話題になっております、名前にカタカナのソを入力するとフリーズする件についてお願いがあり問い合わせいたしました。
当方はパッケージ版を購入したのですが、将来的なニンテンドースイッチのサービス終了などを考えると、バグ修正版のカートリッジとの交換を検討していただけないでしょうか。
発売日に購入するのはシリーズのファンが多いと思いますので、ご検討のほど、宜しくお願いいたします。