「スターフォックスアサルト」謎のヘッダファイル

Posted on

 今回も蔵出しです。おおよそ3年前のネタですが気にしません。誰か書くかなーと思って放置してたんですが、やっぱり誰も書かなかったので書く事にしました。海外あたりで書かれると思ったんだけどなあ…。

スターフォックス アサルト
任天堂 (2005-02-24)
売り上げランキング: 763
おすすめ度の平均: 3.5

2 哀しいかな…
2 これホントにスターフォックス?
4 良作ですが・・・
4 一長一短といったところか
5 これは面白い

ゲームデータ内に開発用のデータが残っている?

 GameCubeにておおよそ3年くらい前に発売され色々と話題になった「スターフォックスアサルト」ですが、実はゲームデータの中にC言語用のヘッダファイル「_shottype.h」が入ってます。

 その中には

  • 同じフォルダ内に存在する「_en_shot.bin」のデータ構造を示していると思われる構造体定義
  • 構造体中の数値の意味を表すと思しき定数定義。
  • それらへの豊富なコメント

 が含まれており、少しCをかじった程度だった3年前の私†1でも容易にそれらを用いてデータ表を作る事が出来ました。その結果、おそらくこのデータは敵・味方の攻撃データを示すものと思われました。

 まずはそのデータを示します。CSV形式です。

 「アンドロフ」はきっと突っ込み待ちなんだと思います。まあそれは置いておいて。SE番号のテーブルで説明が一切無いのは最初からです。全部空白だったんだもん。また、最初のテーブルでも終盤が空白になっていますが、これはショットタイプの定義が168個あるのに対し、実際のデータは129個分しかないためです。これがどういう意味なのかは分かりません。

 ところどころの数値はゲームをやっていたときの感覚と合致するんですが、ところどころ怪しいです。ブラスターが貫通する事になっていますし、エフェクト番号なんて全然合っていません。

 しかし、チャージブラスターは二段階までは直接ダメージ、三段階目(最強)では誘爆ダメージってあたりが妙にリアルです。完全に間違いとも思えません。

 また、追尾性能の項なのですが、GameCubeのCPUであるPowerPCでは微妙にFloatの形式が違うため、そのまま16進数で表示させています。ですが、Wikipediaの記事を読んでもらえば分かるとおり、今回の表に出てくる数値はどれも殆ど0に近いです。

 その上、「ホーミング」の追尾性能の欄が0x00000000(=0.0f)だったり、そもそも出てくる数値が0x00000000と0x000000e0の二種類だけ、と怪しさ満点だったため、これ以上は追求しない事にしました。

 いまいち信憑性が怪しかったので一旦お蔵入りさせて、海外あたりで解析されるのを待ってたんです…が、全然情報が出てこなかったので、三年越しという事にはなりますが、今回掲載する事にしました。オチがなくてゴメンネ。

 これを読んだあなた。どうか真相を暴いてください。それだけが私の望みです。(お約束)

結局、このヘッダファイルは何だったのか

 単なるミスであると言う可能性はつまらないので除外しておきます。

 私の結果は実は間違いで、本当は正しいデータを取得できるのだとしたら、スタッフはネットユーザにこのデータを見つけてもらいたかった、という事に当然なるのでしょう。ですが、このデータによって対戦の幅や戦略が深まるとはあまり思えません。「ポケモン」ならともかく、アクションゲームであるこのゲームにはあまりそういった情報が必要とは思えません。しかし、スタッフがユーザに内部の情報を与えて盛り上げようとしてたのなら、ゲーム初のCGM(笑)の先駆者だったかもしれません。

 もしかすると、あえて間違ったデータとヘッダファイルを与えて、こういう感じの記事が上がってくるのを待ってたのかもしれません。

 ポケモン赤緑の「サントアンヌ号横のトラック」、金銀の「金のはっぱ」「銀のはっぱ」、「シロガネ山のレッド」、ルビーサファイアにおける「トクサネの白い岩」、レジ***の点字、ダイヤモンド・パールにおける謎の洋館のように、本質的にはあまり意味の無いデータを与え、ユーザをもてあそんでただけかもしれません。つーかポケモンその手の多すぎだろw

 ネットユーザがこういう感じで「あーでもない」「こーでもない」ってあたふたしてる姿が見たかったのかもしれませんね。この可能性が一番面白そうだな。

 いやーホント気になるんで誰か真相を暴いてください。

  • †1: でも今と比較してあんまり進歩してないかも^^;

NScripter復号:「Yet Another nsdec」

Posted on

 今回は作って配布しようと思ってたはいたけれど、いつの間にか忘れていたソフトです。この機会に蔵出ししておきます。

プログラムの概要

 Yer Another nsdecは、NScripterのスクリプトファイル「nscript.dat」を復号化して、人間が読む事の出来るシナリオファイルに変換するプログラムです。

 変換は高速で、数秒以内に終了します。

 GPLライセンスなので、ソースコードも公開しています。

ダウンロード

使い方

 NScripterのシナリオファイル(nscript.dat)をnsdec.exeと同じフォルダに配置し、「復号化.bat」を実行してください。すぐに終わり、result.txtという復号した結果が現れます。

 result.txtの修正等を行った後に「暗号化.txt」を行うと今度はその修正したスクリプトを再度暗号化できます。

解説

 元々のnsdec.exeは、表示に懲りすぎているためかいかにも「解析してる」っぽい感じは出てるんですが、いかんせん遅すぎます。

 そしてその復号化処理というのが、実は0x84とxorしてるだけの簡易的なものです。ので、普通に実装すればあそこまで時間は掛からずにすぐに復号が終わります…。

 友人が去年の夏ぐらいに「次の冬コミはNScripterでギャルゲー出すぜ!」とか言い出したので、サンプルソース集めのために作りました。でも結局、前回の冬コミのアレは私がスクリプト書いてます。

 NScripterなのですが、簡単な事を行うにはすぐに書けて良いのですが、ちょっと複雑な事をしようとすると一気に大変になる印象でした。難易度が指数関数的に上がります。(指数関数って言いたいだけ)

 プログラミング初心者が「簡単にゲーム作りたい」って言って作るのには全くお勧めしないです…。普通にRuby+SDLあたりが良いんじゃないかなあ…。


「2chトリップ生成システム」を作ったよ

Posted on

 2chのトリップを検索するソフト、つまり「特定の文字列が含まれるトリップを検索してくれるソフト」はあるんですが、普通に「トリップキーからトリップを生成してくれるソフト」が無かったので作りました。需要無いから無いんだろうなあ…。

 前自分が使ってたと思うトリップを検索してみたら、数学板で使われてた。自分が書いたのか、それとも赤の他人か…。

 トリップ生成アルゴリズムに関しては、Wikipediaの情報を参考にしました。あと、文字コードはすべてShift_JISで処理するとうまくいきます。

 「適当にトリップ生成->検索」が面白いwwww

 「test」とか適当なトリップキーを使ってる人も結構居るんですね…。

 もうmod_rubyでの作り方なんて忘れてましたよ。前書いたCMSのソースがあったから良かったものの…。そんな状況から始めて、製作時間およそ1時間。おっせー。

 mod_rubyなのですが、PHPみたく$_GET[‘key’]で値を取得できないのが面倒ですね。それぐらいはシステム備え付けで良いと思うんだけどな…。ruby on railsですか?さすがにこの程度のプログラムでそれは重過ぎる…。

 WikipediaのURLに(や)や_が含まれているとどうもうまくリンク貼れないみたいです…。なんだろう?「はてな」記法用のモジュールのバグかな…。とりあえず全部エンコードしておけば貼れるみたいですが。


動物化するポストモダン―オタクから見た日本社会

Posted on
動物化するポストモダン―オタクから見た日本社会 (講談社現代新書)
東 浩紀
講談社
売り上げランキング: 5044
おすすめ度の平均: 4.0

4 やや飛躍はあるが
5 マーケティング関係者は必読の書
4 「面白い見方」をしていると思う
3 あまり心を打つものがないというか、、、
5 様々なサブカル系理論の元

 二ヶ月くらいかけてチマチマ読みました。なかなか面白かったです。この手の話はやはり哲学畑の人の書いた本が面白い。

 ちょっと出てくる作品が古いですね。出版が2001年なのでしょうがないのですが…。オリジナルとコピーの区別が消滅し、二次創作が栄えるという話があって、エヴァンゲリオンの製作会社がパロディ的な作品を幾つも出している†1事に言及しているのですが、これ今だったら間違いなく「魔法少女リリカルなのは」だと思うんですよ。

 エヴァのパロディ的作品も確かに「オリジナルとコピーの区別が消滅」しているとは思うのですが、「魔法少女リリカルなのは」はもはや原作の「とらハ」と肩を並べるどころか、原作より人気があります。また、「リリカルおもちゃ箱」、アニメ第一期、第二期、第三期で雰囲気がほぼ代わり、「オリジナル」という概念すらも存在していない気がします。

 あとはデータベース消費、つまりは萌え要素を組み合わせて無数のキャラを作って消費しているという話も出てきて、実例として「デ・ジ・キャラット」が出てくるのですが、これは今だとやはり「初音ミク」な気がします。特に物語も設定も無い、絵と声しか無いのにここまで消費活動が盛んなのは、やはりバックにお約束というか、萌え要素やシチュエーションのデータベースがあるからではないかと。

 後半で出てきた「この世の果てで恋を唄う少女YU-NO」がとっても気になります。すごく面白そう。エロゲーだけど。どうせなら完全ノーカットのPC-98版がやりたいな~。

 第二冊目の「ゲーム的リアリズムの誕生」も買いました。またちまちま読んでみようと思います。「ひぐらしのなく頃に」も言及しているらしいので、ちょっと期待。

  • †1: 近くのゲーセンで魔女っ子コスのフィギュア見つけた。ちょっと欲しかったけど、14歳という年齢を理由に自粛しました。(ぇ

「さきゅばす」2万件弱のDLありがとうってええええ

Posted on

 マイナーバージョンアップなのにも関わらず多数のダウンロードありがとうございます!!

20080419-01.png

 ってえええええええええ!!2ミリオン†12万件弱っすかw

 これバグじゃないの!?

 4.5MB × 2万件≒90GB…。自宅サーバだったらまた止められてるなw

 バグじゃなかったら何の影響なんだろう?

 「さきゅばす」の開発者、緊急募集中です!

 ぶっちゃけ開発するときに動画系の知識はあんまり要らない†2ので気楽にどうぞ。

 詳しくは公式サイトで。

2008/04/25:追記

 その後は一日数百件の「常識的な範囲」に落ち着いた模様。やっぱバグかイタズラ?

 今回の犯人は私じゃないですからねー!(ぉ

  • †1: 詳しくはカブトボーグ51話を!
  • †2: 私もよくわからない^^;

「さきゅばす」 ver1.22リリースしました

Posted on

 GPLにしたので、とりあえずGPLなリリースをしとこうかな、と。

 さすがに、そろそろ開発降りたいんだぜ。あとはフロントエンド更新するだけです。

「さきゅばす」の公式サイトは移動しました

 こちらに移動しました。

バージョンアップ通告について

 ここでバージョンアップを通告するのはあと何回も無いと思ってください。

 その代わり、リリースページのRSSを取得するようにしてください。

ソフトの概要

 ニコニコ動画の動画を、コメント付きの動画として保存します。従来は「カハマルカの瞳」などのキャプチャソフトを使うのが定石でしたが、この方式では高いスペックのPCを要求し、フレームレートも低くなりがちです。

 このソフトはそうした弱点を克服し、低スペックなPCでもコマ落ちなしで綺麗に変換することが出来ます。

 変換にはffmpegを用い、iPodやPSP向けのmp4動画などを作成することも可能です。

ダウンロード

 こちらの公式サイトよりお願いします。

リリースメモ

 GPLになってはじめてのリリースです。このバージョンより、ソースも同時配布となります。

 ユーザ側から見ると、今回は前回とあまり変更はありません。せいぜいFFmpegが新しくなったことぐらいでしょうか。

更新履歴

  • 同梱のFFmpegを新しくしました。
  • ニコニコ動画の仕様変更への対応
  • バグの修正
  • FFmpegの変更にともなう各種修正
  • オープンソース以降に伴うUIその他もろもろの変更。

スクリーンショット

20080418-01.png

 チャージ三回、フリーエントリー、ノーオプションバトル!!

 というわけで、カブトボーグ見ました。狂気そのものだなwww

 毎回でてくる使い捨てヒロインがかなりかわいいのも良いですね。個人的にはシルクハット被ってる子が一番好みでした。シルクハットいいよねー!!

 であと某「Fateは文学」テンプレート的には「カブトボーグVxVはポストモダニズム」らしいよwwなんでww

 ソーカル事件から「でたらめ」ってことかな?

Fateは文学           狼と香辛料は経済
Airは芸術            なのはは友情
CLANNADは人生       こじかは葛藤
リトバスは筋肉          極上生徒会はモラトリアム
鳥の詩は国歌         ハルヒは感性
SchoolDaysは神話      ARIAは現実
君が望む永遠は哲学     すももは楽園
攻殻は政治            Myself;Yourselfは月9
うたわれるものは日本史A  アイマスはわが娘
ひぐらしは論理学       初音ミクは真実の光
EVAは聖典           00は教科書
神霊狩は音楽          true tearsは真実
Kanonは奇跡          H2Oは格差社会
ゼロの使い魔は国旗     D.C.~ダ・カーポ~は純愛
ムリョウは日常         efは旋律
まなびストレートは青春   みなみけは食事
砂糖菓子の弾丸は撃ちぬけないは社会派ミステリ
落語天女おゆいは伝統芸能  カブトボーグV×Vはポストモダニズム
らき☆すたは日常       シャニティアは英雄憚 
バンブーブレードは竹刀   シゴフミはキラメキ

まだ再現できてない点

  • 静止画だけの動画でたまにガクガクになる。ffmpeg本体に手を入れないとだめっぽい。しかも大手術・・・。
    • libavfilterのFPSフィルタでどうにかなる?

トラックバック/コメントSPAMの対策をしたよ

Posted on

 受験なのにコメント欄のSPAMを手動で削除するとか出来るわけないだろ常識的に考えて…

 ということで、(マシンパワー的に)安上がりだけど効果のある方法を考えてやってみました。

 今のところ来てません。どれくらいもつかな…。コメント/トラックバックの公開前の手動確認などは行っておらず、直ちに公開されるので、SPAMコメント/トラックバックが来てたら…そういう事だと思ってください^^;

スクリプト名変更

 出来れば呼び出されたくすらないので†1、スクリプトファイルの名前を書き換えてしまいます。

  • mt-comments.cgi → mt-comment.cgi
  • mt-tb.cgi → mt-trackbacks.cgi

 に書き換えた場合、mt-config.cgiの以下の部分を書き換えてください。

# AdminScript mt.pl
#ここの部分のコメントを外し、書き換えた後のスクリプト名に変更する。
CommentScript mt-comment.cgi
TrackbackScript mt-trackbacks.cgi
# SearchScript mt-search.pl
# XMLRPCScript mt-xmlrpc.pl
# ViewScript mt-view.pl
# AtomScript mt-atom.pl
# UpgradeScript mt-upgrade.pl

 これで完了です。

コメント対策

 「さきゅばす」公式サイトの掲示板でも行っている、「今年何年?」認証です。日本語が読めないと駄目なのが痛いところですが、ほとんどSPAM以外に外国語コメントは来たことがないのでまあこれで良いでしょう。

 「個別エントリ」、「コメントの一覧」、「コメントプレビュー」のテンプレートのメール欄の下に、西暦の入力欄を作成します。

<p>
<label for="comment-code">今年は西暦何年?(SPAM対策です): </label>
<input id="comment-code" name="code" size="30" />年
</p>

 次に、認証のためのコードを少し追加します。lib/MT/App/Comment.pmを以下を参考にして追加してください。

sub post {
my $app = shift;
my $q = $app->{query};
return $app->error($app->translate("Invalid request"))
if $app->request_method() ne 'POST';
#追加開始
my $code = $q->param('code') || '';
$code =~ s/^\s+|\s+$//g;
if ($code eq '') {
return $app->handle_error("今年は西暦何年か答えてください。");
}
my @code_localtime = localtime(time);
my $code_true_code = 1900 + @code_localtime[5];
if ($code ne $code_true_code) {
return $app->handle_error("今年は西暦$code年じゃないですよ。");
}
#追加おわり

 保存する際、自分のBlogの文字コードと同じ文字コードで保存してください。ちなみにこのサイトの場合はUTF-8です。

 どこかのページを再構築して実際にためしてみてくださいね。

トラックバック対策

 トラックバックも同じように「今年何年?」で認証するのは無理なので、メールと同じ感じでいいかなーと。。。

 そのため、必ずスクリプト名は変更してください。

 まずはページの上の方にコメントとしてついているRDFのトラックバック欄を書き換えます。

 lib/MT/Template/ContextHandlers.pmを以下を参考にして書き換えてください。

sub _hdlr_entry_tb_data {
my($ctx, $args) = @_;
my $e = $ctx->stash('entry')
or return $ctx->_no_entry_error('MTEntryTrackbackData');
require MT::Trackback;
my $tb = MT::Trackback->load({ entry_id => $e->id })
or return '';
return '' if $tb->is_disabled;
my $cfg = MT::ConfigMgr->instance;
my $path = _hdlr_cgi_path($ctx);
#ここを書き換え
$path .= $cfg->TrackbackScript . '<DELETE THIS>/' . $tb->id;

 テンプレートの「エントリ・アーカイブ」のトラックバックURLのところを

<p>このエントリーのトラックバックURL: <br />
<$MTCGIPath$><DELETE THIS><$MTTrackbackScript$>/<$MTEntryID$></p>

 みたいな感じに書き換えてください。

 自動処理で数多くのBlogを同時に狙ってくるようなタイプのSPAMerには効果があるはずです。個別で狙われたら意味がほとんどありませんが、狙われたら狙われたで人気がある証拠ですので、喜んでください(えー

  • †1: コメント/トラックバックのCGIは重いから

「さきゅばす」オープンソース化!

Posted on

 というわけで、ついにGPLで公開することにしました。

SourceForgeのプロジェクトになりました。

 次のバージョンまでの開発はこちらで行い、後は基本的に放置します。引き継いでくれる方がいらしたら公式ウェブサイトに詳しく書いてありますのでご覧ください。

ソースコードを公表しています。

 ffmpegの拡張部分のソースが飛んだため(えー)、コンパイルして元の環境を再現することは出来ませんが、現在の1.21のそれ以外の部分のソースコードを公開しています。

 次のバージョン以降はまた別の方法でffmpegを拡張するので、現在のvhookライブラリのソースを元に何かするのはあまり得策とはいえません。ご了承ください。

誰でも編集できる領域もあります。

 公式サイトはWikiで構築しています。基本的にはプロジェクトのメンバーしか更新できませんが、ページ名が「Users/」で始まる領域は誰でも編集する事ができます。

 ドキュメンテーションやユーザ間の相互互助などにご利用ください。

掲示板について

 Wikiでどうにかなる気がするので、そっちに移行します。SPAMが最近うざいし…。

 過去ログを見られるようにはします。

アップローダについて

 次バージョンより、ffmpegは更新されます。その際、オプションファイルの書き方などが一部異なるのですが、その関係でアップローダのファイルは一回すべて削除させていただきます。

 大丈夫です、すでにアップロードされている分は私が修正して次バージョンのデフォルトに入れます^^;


「妖精現実」バックアップの公開を開始しました

Posted on

 私が色々な意味で影響を受けたウェブサイト「妖精現実」のバックアップをクリエイティブコモンズ・パブリックドメインのライセンスに基づいて公開します。

 現在大本のサイトの方は負荷削減のために記事一覧が微妙に扱いに困るXML形式でしか提供されていないため、ひとまずこちらのバックアップからさらにバックアップを取りました。

 どうしようかな…変換スクリプト書いてhtmlに変換するかな…。

 2002年の12月前後に発見して当時延々と見てましたねー。viとemacsにはまって延々と使い方覚えてたのが懐かしい。

 え、今ですか?せいぜい設定ファイルを書き換えるときにviを少し使うぐらいですかね…。常用してるエディタはTerapadです。結局GUI世代なので…CUIも強力だけど、常用するにはちょっとキツイ^^;

 コンピュータ関連だけでなく、

  • 現ls、元黒衣鯖人氏の「偽春菜」の記事や
  • 今何かと話題の著作権の話題
  • 色々な社会問題に対する姿勢(個別の社会問題だけでなく、それらに対するメタな姿勢)

などなど、面白い記事の枚挙に暇がありません。

 動画系と宗教系は濃すぎてついていけないのでスルー(

 ところでこのサイト何人で記事書いてるんだ?水沢ミオン氏は確定っぽいんだけど、ほかにも居ないか?

 どっかのBlogで「~さんも書いたらしいですね」みたいな話を読んだ気が…。どこだっけ?

オフトピ:「さきゅばす」

 多少時間が掛かりそうです。新バージョン完成前にSourceForgeのスペース確保しておこうかな?


「コメットさん☆」の舞台、鎌倉に行ってきたよ!

Posted on

何を思ったのか、04/02に行ってきました。流石に周りの人間に「コメットさん☆の舞台探訪」とか言うとアレなので、「鎌倉の日常が見たくて」とかなんとかごまかしました。どっちが変人扱い度(?)が高かったかはわかりません。

秋葉原の近くの某予備校に行ってまして、ちょっくら掲載が遅れました。秋葉原といえば「おとぎ銃士 赤ずきん」の一話でもちらっと出てましたね。場所が一発で分かったww

モデルになったポイントなどの情報は、すべてインターネット上のファンのページからのものです。凄い時代になったものです…。

記事が非常に長く、写真も非常に多いため、「続きを読む」にしました。その前にひとまず、エイプリールフールのオチを付けておきます。

オフトピ:「ニコニコ現実(リアル)」の末路

先日サービスを開始させて頂きました「ニコニコ現実(リアル)」ですが、4/2 00:00より接続できない状態が続いております。

障害からの回復に全力を注いでおりましたが、デバッグ時に自分に付けられたコメントを見たエンジニアが疑心暗鬼に陥り全員即日退社してしまったため、障害からの回復は困難となってしまいました。

そのため、誠に申し訳ありませんが「ニコニコ現実(リアル)」はサービス終了とさせていただきます。短い間でしたが、ありがとうございました。

「ニコニコ現実(リアル)」の考察

やっぱ現実の自分に不特定多数から匿名でコメントを寄せられるなんて怖すぎです。しかもシステムの関係上自分の近くにいた人間しかコメントできないってことは、ネガティブなコメントを付けたのも身近な人間であるはず。インターネットよりも怖い。疑心暗鬼というレベルじゃない…。

作品やハンドルネームといった間接的な媒体の無い、人間へ対するダイレクトな中傷であるため、ショックも強いと思われます。

Continue reading »