「番外王魂」、或いは「論外王」(ぇ)。
ステージデータを弄っていたらとんでもない事実が発覚。
データチェックが最後のサムのみという投げやりっぷりは既に分かっていたけど、そこで当然問題になる「ビットが複数崩れてたまたまサムが合致する」ケース、これをかましてしまったら見事にハング。データを参照する時点でコケるので、そのセーブブロックは使用不能に。おいおい頼むぜリーダー(誰)。
データを消そうにも対象が選べないので、やむなく全データ初期化ですよ(苦笑)。(別に記録はどうでもいいけどさ)
今回は都合上自分でサムを書き換えたのが直接的な原因だけど、これは当然ながら「通常の利用でも起こり得るケース」なのです、はい。ココが一番の問題。世の中にはノイズまみれのサウンドデータを無理繰り読ませようと必死になるユーザもいるのですよ(というかそのデータを整形しようとしてしくじったんだよね、、)。何とか読み終えたと思えばそのままハングって、以後何度再起動しても面セレクトに入った瞬間に死ぬ状態に。これじゃ壊れたも同然だろうに、実際に起きたらどうするつもりだったのか。
よもや此処までエラーの想定が緩いとはね。CRCすら使ってないから何か怪しいよなとは思ってたけど、そのぶん処理側で予防線くらい張っていると思ったら、フォーマットチェック一切無しで展開処理で暴走して死亡とは(苦笑)。ゲイツがzip書庫の解凍でハングったら非難囂々どころじゃ済まないっしょ?
そりゃまぁ突貫で作った機能だとは言うし、それまではROM内部で閉じていた処理だからサムで済ませてたのは分かる。でもそれを外部に引っ張り出すと決めた時点で、どんなデータが突っ込まれるかは全く保証出来なくなったのだから、それ相応の対処はきちんと施すべき。それこそ暴走なんて本当の論外王。
そもそも、以前のキャラ数120を越えさせた時のあの内蔵エディタの即死っぷり、あの時は遠慮して書いておいたけど、実際ハード限界云々以前にソフトの処理の不手際が見え見えだよね(苦笑)。
この辺、前も「メタルサーガDS」で露骨なフラグバグに辛酸を舐めさせられたり、どうにも最近はエラーに対する作り手の姿勢に疑問を覚える。いやゲームに限らず、この手の業界で仕事やってるとね。エラーなんて物はある意味起きて当たり前で、そのエラーが起きた際にどうなるかを考えてこそのエラー設計だろうに、と説教を垂れたくもなる。この辺、「問題を起こして怒られる」ことはあっても、「拙い作りをしたことそのものでは怒られない」、昨今の教育問題というのも感じたり。まぁココは完全に脱線してますが。
ま、無理を押してでもサウンドロード機能を実装してくれた事で今の遊びがある、という点では感謝はしてるけどね。でも素人じゃないんだからもう少しきちんとして欲しかった。びっくりですよホント。
という訳で、現状、セーブデータを全部解析してこっちでフォーマットチェックまでしないととても人前に出せるものが作れなくなってしまった、、。