「成分解析」 for CGI written in C

Posted on

もしかして,自分,馬鹿じゃね?(何を今更

これ,プログラミングの練習に丁度いいですね.そうですね,HelloWorldの次の次の次の次くらいに書くには丁度良いですね.

っていうか,その,ポインタで結構苦戦しました(ぉ

Javaの参照型で慣れてるつもりだったんですが,ダメダメですね.

「成分解析」 for CGI written in Cの成分解析結果 :
「成分解析」 for CGI written in Cの40%はやらしさで出来ています。
「成分解析」 for CGI written in Cの34%は柳の樹皮で出来ています。
「成分解析」 for CGI written in Cの22%は砂糖で出来ています。
「成分解析」 for CGI written in Cの2%は鍛錬で出来ています。
「成分解析」 for CGI written in Cの1%は努力で出来ています。
「成分解析」 for CGI written in Cの1%はツンデレで出来ています。

うるさいうるさいうるさい!(ぉ

(04/07追記)GETメソッドにしてみました.こっちの方が簡単なのに,なんでPOSTにしてたんだろ?掲示板とかだとPOSTの方が良いらしいんですが.つか宿題終わってねぇ(‘A`)

(04/12追記)同じパーセンテージの時に,少し結果が変わってしまうのを修正.

「成分解析」 for Java

Posted on

 「成分解析」解析結果に基づいて,JavaAppletで作っちゃいました.よって,本家と同じ結果を返します.あれ?宿題やるんじゃないの?(‘A`)

 重そうなので下においておきます.つーかさ,Javaでツール作るって結構難しいね.符号なしの型が無いからさ.Cでも本格的にお勉強しようかしら.

 なお,本家には10種類以上表示できないバグ(“あ”といれて見ればわかる.99%にしかならない)があるのですが,Java版では本来の動作をさせています.

 (04/06追記)CでCGIにも移植しました.

Read more

カブロボウォッチ 6号さん優勝

Posted on
1 鈴木さやか@6号さんBayesianRobot   2005-12-16   71   6,896,400円
2 iwatch		BayesianRobot   2005-12-19   70   6,783,500円
3 dal102		BayesianRobot   2005-12-21   68   6,614,500円
4 ぺす		BayesianRobot   2005-12-25   67   6,585,000円
5 悠之介		簡易ロボット        2006-01-01   62   6,568,100円

 というわけで,6号さんが一位でした.おめでとうございますオブジイヤー☆(w

 記念という事で続編のぱにぽにたーぼ!よろしくお願いします(w>スクエニ

 なっちんは,資産総額 5,579,100円で総資産でのランキング160 位で終了となりました・・・かも.運用期間が長いので,年率ランキングではランクが落ち,281位でした・・・かも.

 結局最終晩は昭和シェルを買いあさり,エーザイを売ろうとするものの50万円の制限が掛かってたので売れない,というので安定してしまいました・・・かも.原因は,判断基準を長期にしすぎてしまい判断がなかなか切り替わらなかったこと,売るのにも制限をかけてしまったこと(売るのに関しては最低でも一株分,とかすればよかった・・・かも.) などがある・・・かも.

 次回の5月上旬のコンテストにも参加したい・・・かも.6号さんはどうするのかなぁ・・・かも?

連絡

 宿題がヤヴァイので一週間以上はお休みします(;´Д`)

 〆切間際の修羅場は逆に落ち着く事が大事なんだよね~

Eclipse + CDT + MinGW + SDL + OpenGL

Posted on

 昨日のアイレムは凄かったですね.凝りすぎて逆につまらないかと思ったら,ウサギで吹いたw

Eclipse + CDT + MinGWでSDLをコンパイルするメモ

 EclipseのC/C++用プラグイン,CDTとWin用GCCのMinGWを使ってSDLプログラムをコムパイルするメモメモです.なんだか今日はノリノリです.

 とりあえずまずは,C-Compiler Wikiを参考にHelloWorldを表示するプログラムは作れるようになっておいてください.

SDLを導入しておく

 ダウンロードページより,MinGW用SDL開発ライブラリを手に入れておきます.ファイル名は今のところは「SDL-devel-1.2.9-mingw32.tar.gz」です.

 解凍した後,中身をどこか適当な場所にぶち込んでおきます.ライブラリ用のフォルダを作って,そこに今後はいろいろなライブラリをぶち込んでおくとすると楽です.

 なお,実行するにはSDL.dllをパスの通っているところにおく必要があります.パスを増やしすぎるとなんか認識しなくなるっぽいので,あんまり増やしたくない人はsystem32あたりに入れておいてください.

 なお,大多数のデモはSDL/SDL.hをincludeするので,include中身をすべて,include\SDLにコピーすると楽かもしれません.

OpenGLもどうせなので

 3DならOpenGlっすよね,ということで,OpenGLも導入しちゃいました.OpenGL自体はMinGWに入っているのですが,GLUTという追加ライブラリは入っていないので導入します.Windows用はこちらよりglut-3.7.6-bin.zipを落としてください.解凍したあと,「glut32.dll」はc:\WINDOWS\system32に,「glut.h」はMinGWのindlude\GLにぶち込んでおいてください.

 これでうまくいくはずですが,テストはしてないので間違ってるかもしれません(ぁ.

Eclipseの設定

 Makefileの書式をお勉強するのが面倒なのでManagedBuildを使って,とりあえず適当に書いたソースに

#include 

を付加し,これでテストしてみます.

libmingw32.a(main.o)(.text+0x106):main.c: undefined reference to `WinMain@16'

とか出てきたんで調査,調査.

結果,以下のようにすればいいっぽいです.

  • プロパティのビルド構成のCコンパイラの「ディレクトリ」でIncludeパスに”<SDLのインストール先>\include”を指定
  • 同じくCリンカの「ライブラリー」ところの「ライブラリー(-l)」に,「mingw32」「SDLmain」「SDL」を上から順に指定.順番が違うとダメっぽい.
  • ライブラリ検索パスに”<SDLのインストール先>\lib”を指定.

これでコンパイル出来るんじゃないんですかね.

 で,ところでprintfが使えなくなったんだけど,仕様的にこれで正しいの?(ぉ

 まあ,今後,SDL+CかDでゲームでも作ってみたいなぁと.Javaに比べ爆速であると期待・・・.あ,なおJava用SDLもありますので,ぜひお試し下さい.あ,そっちからやろうかな,まずはSDLに慣れるってことで.

自力でコンパイルする方法も発見

 ソースからコンパイルする方法もありました.参考までに.つーか,こっちの方が良いな.今から切り替えてくる.なお,CDTについても少し設定が変わるのでご紹介.

 MinGW用SDL_mixerのバイナリは自力でコンパイルするしかないので,この方がいいかもですよ,うん.

MSYSで自分でコンパイルする際のCDT設定

 上のサイトの通りにコンパイルしてください.なお,上のファイルの通りにしてlocal\binにインストールしちゃった人は,パスを通してください.私はしちゃいました.コンパイルしなおそうかな.CDTの設定は,次の通りです.

・コンパイラーの「その他」→「その他のフラグ」で「`sdl-config –cflags`」を追加.

・リンカーの「その他」→「リンカーフラグ」で「`sdl-config –cflags`」を追加.

ツールが自動で設定を吐いてくれるので,ずいぶんと楽にはなってますね.これで安心だ.

DS用ゲーム改造ツール ”Project-VipStar v8.00″公開

Posted on

スクリーンンショット

20060401Project-VipStar.png

▲「ポケットモンスター ダイヤ・パール(任天堂)」を改造した例

概要

 今回,DS用ゲームを改造する「Project-VipStar」のバージョン8.00を公開しました.DS用ゲームを改造して美少女ゲーム風味にし,「それなんてエロゲ?」と言われたり言われなかったりするツールです.

 このソフトは,物理的な機械を一切必要としません!使用するには,このソフトを実行した後,眠ることで夢の中で改造したゲームを遊ぶことが出来るという,コストパフォーマンス的に優れ,またゲームのしすぎで寝不足という事態も起こらない,すばらしいシステムです.システムの中核には有名なあのCompJapanテクノロジを使用し,効果は万全です.

 では改造についてご説明します.たとえば,「ポケットモンスター ダイヤ・パール(任天堂)」にこのツールを適用いたしますと,パーティ内の♀ポケモンを攻略して伝説の木の下で告白して貰ったりバトルしたりする,恋愛アクションシュミレーションRPGゲームとなる・・・かも.注意ですが,パーティ内に♂ポケモンがいないとある意味で別のゲームになります.また,バシャーモの♀は現在不具合で攻略対象キャラにはなりませんのでご注意下さい.

 なお,GBAゲームもある程度は改造できるっぽいですが,「魔法先生ネギま!プライベートレッスン だめですぅ図書館島」といった,元々のギャルゲを改造した場合にどのようなゲームになるかは,現在不明となっておりますのでぜひお手持ちのソフトでお試しください.

 しかし,どのように転んでも18禁にはならないので,お子様でもご安心して改造できます.さっきメールで来た「それでは『それなんてエロゲ?』は見当外れ」といった意見については現在検討中です.

ダウンロード

 こちらよりダウンロードできます.動作には妄想力v1.6が必要です.

Read more

東鳩2のその他のソースが見れるぞ!

Posted on

ToHeart2ほかAquaPlus/LeafのGPLゲーをいじるスレ

 GPLライセンスのライブラリを使ってしまったのでしょうがなく公開しています,という話.5本くらいのゲームのソースが入って,全部で20メガちょいです(解凍後).

 普段なかなか見れない,商用ゲームのソースが見れるという事でちょっとワクワク.まあ,「プレイヤーがデバッガー」らしい,エロゲですからじぇんじぇん期待してませんけどね.

DirectX SDKのインストール

 なんかVisualC++ Express EditionでのコンパイルにはDirectXとPlatformSDKが居るっぽいので現在ダウンロード中.DirectX SDK,300メガ以上あるんですけど.なにこれ.インストールしようとしたら,

Extracting file failed.It is most likely caused by low memory (low disk space for swapping file) or corrupted Cabinet file.

・・・残りの容量はどう考えてもあるので,どうもファイル破損みたいです.何度かダウンロードし直したら大丈夫でした.

ソースウォッチング

 ソースですが・・・なんでコメントが殆ど無いんだよ(;´Д`)

 エロゲなだけにコメントも卑猥なの・・・?

ToHeart2のGM_AvgMsg.cppを見てください.先頭の8行なんて,こうですよ,こう.


 何も無いじゃないかって?つ「ドラッグ」・・・なんのためなんだ,これw

 最初のリンク先ではスペルミスなんかも指摘されてましたが・・・絶対に自分のソースは見られたくないな,と思った瞬間でした^^;

で,さらに東鳩2ソースと格闘中 リンカが外部参照エラー

PlatformSDKとDirectXSDKを入れた後,こちらの方法でほとんどうまくいっています.

が,しかし,「afxres.h」が無いというエラーが.こちらを参考にしてください.しかし私の場合,なぜかインクルードパスとして指定しているとことに入れてもダメだったので,新しくヘッダファイルをプロジェクトに追加して作りましたです.

 すると,コンパイルはできました.コンパイルは.Warningが恐ろしいくらい出るけどな†1wwwww

 ・・・でも,リンクが出来ない^^;

ToHeart2.exe : fatal error LNK1120: 外部参照 103 が未解決です。

 らしいですよ・・・何が問題なんだろう.GetMessageAとか一般的なAPIが呼べてない・・・.

 ライブラリのパスとして,PlatformSDKとDirectXのlibのパスが指定されています.うーん,なんで?

解決 しかし,コンパイル・リンクともに正常終了

user32.lib comdlg32.lib advapi32.lib GDI32.lib shell32.lib ole32.lib

をリンカの追加オプションとして指定したところ,何とか通りました.絶対パス通ってないじゃんw

うーん,PlatformSDKのlib内にあることは確認したんですが,なぜか認識されてないようです.

まあ,通ったので良しとします.と言いたいのですが・・・なぜか強制終了して起動しない_| ̄|○

 「Microsoft Visual Studio 8\VC\include\Vector」の756行目でダメらしいです.ソース見たけど良く分からないのでパス.

結局,この3時間は何だったのか

 ちくしょう,3時間ぐらい掛かったのに,結局出来ませんでしたね.元々ゲームデータが無いから出来ないけどさ^^;

 あ,でもデータを入れたらうまくいく可能性も残ってるよな.でもその検証には製品版が・・・製品版は18禁なので買えなくて・・・結局何のためにやってるんだ,自分.コンパイルしても意味が無い・・・かも?_| ̄|○

 あ,ちなみにビルド時の合計Warning数は256でした.ぴったりですね.調整してるの?w

  • †1: 使ってない変数が多い.多分,デバッグ用コードを抜いたんだな・・・

今日の巡回

Posted on

マルチモニタは最大16個までです

 というわけで,16画面版ダライアスは任せたぞ(何

 株のトレードとかやってる人は余裕で10個ぐらい行くんだろうか・・・.

実はJavaは上位互換も下位互換も実現していない罠

 総務省によると、文部科学省以外の電子申請にはパソコンにあらかじめ、米サン・マイクロシステムズ社のJREというプログラムを導入する必要がある。パソコンの基本ソフトであるOSが違っても申請のための操作を可能にするためだ。

 しかし、JREは随時、バージョンアップされており、各省庁の申請の種類によってバージョンがばらばらになっている。

 総務省によると、新版を入れたパソコンは旧版対応の申請ができないことが多く、旧版を入れたパソコンは新版対応の申請が難しくなるという。担当者は「電子申請を始めたころ、各省庁はJREのバージョンの重要性にあまり気づいていなかった」と話す。

 サン社は「新版を導入したパソコンは、基本的に旧版対応のシステムも使えるが、システム設計によっては例外もある」と説明する。

 は?何がWrite Once, Run Anywhereなんですか?^^

 ・・・畜生,習得にどんだけ掛かったと思ってるんだYO!・・・正直かなりショックです・・・_| ̄|○

 でもなんででしょう,普通は新しいバージョンで動くだろう,普通.かなーりマイナーなAPIでも使ってるですか?基本的に昔のメソッドも互換で残してるから,随分手の込んだ事してるのか?

 なお,私の製作しているJavaソフトはたぶん1.30くらいからなら動くのでご安心ください(適当

 そんなに難しい処理はしてませんからね.まあ,ツールだしなぁ.

Bjarne Stroustrup インタビュー (?)

C++は,難しい言語にすることでそれを扱えるプログラマの給料を上げることが狙いの言語だったので,それ相応に難しく,複雑になっている,という話.これはひどい.

S: 最初はほんの冗談のつもりでね、みんながあの本を真に受けるとは思ってもみなかったんだ。脳みそが半分でもあれば、オブジェクト指向プログラミングが非直感的で、非論理的で、非効率なことくらいはわかるよね。

I: え?

S: それに「コードの再利用性」ときたら…。どこかの会社がコードを再利用したなんて話を聞いたことがある?

I: いや、実はないんだけども、でも…。

 オブジェクト指向が分かりにくいって事は無いと思う†1し,大規模なのを書こうと思ったら凄く便利なんだけど,再利用はたしかにしてないかもな(苦笑.

 なお,一応本人のサイトに回答があります.

住基ネットで情報漏れが起きました.もちろん我らのWinnyで.

既存の業務ネットワークと住基ネットとの橋渡しをするコミュニケーションサーバー(CS)や端末パソコンの不備を修正するマニュアルなども含まれていた。訴訟が提起されるなど住基ネットの情報の扱われ方への不安が出ているなか、重要情報を自宅に持ち帰った今回のケースに批判が出るのは必至だ。

 毎日新聞が入手した資料によると、「住基ネット」というフォルダーなどに約20のファイルが入っていた。住民基本台帳の個人情報は含まれていないが、中にはCS端末の操作担当者が不在の際に使うとみられるマニュアルがあった。

 ぶっちゃけどうでも良いファイルなんですが,「個人情報は正しく扱い,守る」という事を繰り返し説明して成立した制度なだけに,かなりの批判が来るでしょうな.どうなるかが結構楽しみだな.

ニセ科学について議論するシンポジウム

 シンポジウムを提案した田崎晴明・学習院大教授(統計物理学)によると、科学的に明確に否定されているのに「科学らしく」宣伝されている事柄をニセ科学と呼ぶ。検証が待たれる理論は別にして、ニセ科学は科学らしさを装った偽物という解釈だ。

 シンポジウムでは、個別の事象について「本物か偽物か」を議論することはしない。こうした事象が信じられるのはなぜか、専門家としてどう対応することが適切かを話し合う。

 社会では血液型性格診断が差別を生んだり、さまざまな「科学的効能」をうたう水や家電が高価格で売られている。田崎教授は「ニセ科学が道徳の授業で教えられた例もあり、物理学者として見過ごせない。科学的な考え方よりも『これは正しい、これはウソ』という知識として理科が教えられており、ニセ科学を見極める判断力や批判精神が育ちにくいことも問題だ」と指摘する。

 現状の中高の理科・科学は100%暗記科目なので,科学的思考が身に付くとは到底言えない.しかもパズル程度(生物Ⅰの遺伝とか)の物をテストで出せばぶーぶー文句が出るくらいですから.無理だ無理.

 個人的には,科学哲学の時間なんてどうかなぁ,と.科学的ってどういう事かを教えてくれる授業,学生として凄く欲しいです.テストは・・・授業で扱っていない問題を出して,テストは思考力を問うってのはどうよ?

 まあ,新教科を導入しなくても,国語と数学をきちんと強化すれば自ずと科学的思考は付くと思います.現在の小学校の教科書なんて,「~の気持ちを考えましょう(立場になって.つまり,想像で)」とか,調べ学習とかしょうもないのばっかりだし,中学は教科書ででしかチェック出来ない†2んですが,大して小学生と変わらないみたいですね.これは,何?教師としてはどっちが楽なんでしょうかね.総合学習は意外にやりづらいらしいですが,こっちはどうなんでしょう?

 そういえば,「ニセ科学が道徳の授業で教えられた例もあり」が凄く気になったんだがこれはどういう意味だ?あくまで非科学的な物としてですよ・・・ね・・・?

ネット著作権が「危険な方向に走っている」──レッシグ教授

 ローレンス・レッシグ・スタンフォード大学教授が見せたのは、ブッシュ大統領とブレア英首相が愛を語り合うビデオクリップだ。

 2人の会見映像をつなぎ合わせ、バックにデュエットのラブソングを流す。男性パートはブッシュ大統領の映像が、女声パートはブレア首相の映像が流れるため、まるで2人がデュエットしているよう。観客から笑いが漏れる。

 ネットユーザーが既存のコンテンツを組み合わせて作り上げた、このような“リミックスコンテンツ”は国内外に数多い。ネットならではの創作物だが、現行の著作権法では「著作権侵害」とされるものが多い。

 という訳で,「保護はすべきだが今は正直保護されすぎ.作品作るのにいちいち弁護士と相談するなんてやってられん」という主張.

 まあ,上の例が著作権法違反じゃ困りますよね,エヴァさまだっしゅ!とか魔法少女ミュウミュウなのはとかあそこらへんのMAD-VIDEOから,氏ね氏ね団のテーマのFlashまで,ネット上の動画作品はかなりの部分が著作権法違反†3・・・?うーん,なんだかなぁ.二次創作ってのも法律で保護して欲しいですね.もちろん,元の作品を貶すような作品も沢山ありますから,それらはどうかなあ,とも思いますけど・・・.

 うー,エヴァさまだっしゅ!見たくなってきた.見てきますノシ

  • †1: クラス同士を頭の中で擬人化して,それぞれのクラスの働きを考えてコーディングしてます.こうすると結構楽.
  • †2: 3流とはいえ私立なので・・・
  • †3: なんだろう?公衆送信権ですか?

劇場版・・・

Posted on

20060328-03.jpg

 劇場版灼眼のシャナが製作されるそうです.へえ,良かったですね.

20060328-02.JPG

 あれ?ナショナルから大切なお知らせだそうですよ.

20060308-01.jpg

 劇場版ナショナルも製作されるそうです.へえ,良かったですね.

 ・・・あれ?

20060328-04.jpg

 ほかにもこんなに製作が決定してますね.個人的にはゲームセンターCXが見たいものです.

 ・・・オチをつけられず困った・・・_| ̄|○

 こんばんわ,もうすぐエイプリールフールでワクワクなψ(プサイ)です.今年はIREMはどんなバカをしてくれるのかなぁ?w

 出来れば新作ソフトネタはやめて欲しいところ.一部混ぜるとか,知らない人でも楽しめるならいいんだけどね.

最近近くのゲーセンがリニューアルオープンした訳だが

 今日行って来たけど,STGが前10本ぐらいあったのにエスプガルーダ・せんこうのろんど・イバラの計3本しかありませんでした(‘A`)

 「斑鳩かシルバーガン入れたらやってやろう」と思ってたのに,これじゃさらに厳しいなぁ・・・.せんこうのろんどはNAOMIだから斑鳩もすぐに入れられるだろうに。。。

 ちなみに何にもやりませんでした^^

0で割る計算 割り算の意味

 読み物としてなかなか面白いです.「0で割れないのは決まりだ」などと教師というか給料泥棒に教わされた皆様,ぜひどうぞ.あ,派生したリンクの先の記事も結構面白いのがあるのでお見逃しなく.

ゲーム君(最後から二番目)

 やっべ超便利だね!!!111111

 なお,作者は当時,私より年上です.

グイっと一杯!(Windows95/98/Me / ゲーム)

Vectorで落としてはいけないソフトを書き殴るスレ
http://pc8.2ch.net/test/read.cgi/win/1130832668/
65 :名無し~3.EXE:2005/12/18(日) 19:08:32 ID:m8UE5CFN
ttp://www.vector.co.jp/games/soft/win95/game/se374688.html

もうゲームとかそういうレベルを超越してる。

 その通りだw

 「ゲーム君」を超えてますね,これはw

 Vectorって・・・(‘A`)

 これくらいで公開してくれるなら,もっと公開しようかな?(w

 コマンドラインのプログラムでも余裕で掲載してくれますよね?って言うか,前回のポーション期待値プログラムも公開リストに入れておこうかなw

スーパーマリオの裏技その他

 去年の9月でスーパーマリオブラザーズは20周年だそうですが,まだまだ熱いですね.バグ技も奥が深い・・・・.まあ,バグもゲームの一部である(ぉ,某ポケットモンスター初代に勝てるかは不明ですがw

 GBA版で今度やってみたいけど・・・・あの十字キーでできるかなぁ?^^;

ちらしのうら

 成分解析大人気だな,おいw

 はてなの注目URLで一位にまでなったw

「成分解析」解析結果

Posted on

今2ちゃんねるで「成分解析」というソフトがはやってるみたいですね.絶好の解析練習対象なので,やっちゃいました.

なお,解析結果が正しいとは限りません.結果は自己責任で使ってください(使う人って居るの?w

(04/04追記)Javaに移植しました.

(04/06追記)CでCGIにも移植しました.

(04/15追記)魔界の仮面弁士さんが各種移植版をまとめてくれました!感謝.

この結果を使った場合,ぜひ私に教えてください.あと情報提供元も明記してくれるとうれしいなとか思ったり.商用利用のときは必ず連絡してください.(しないと思うけどなw)

文字列の変換

まずは,文字列を合成することからはじめる.

長い文字列(Shift-JIS形式)を,4バイトの数値へ変換する.

 

返したい数値をcodeとする.

また,N=0とする.

  1. 与えられた文字列のNバイト目を取得する.これをstrとする.
  2. strを((N and 3) << 3)だけ左シフトする.
  3. codeに上の結果を足す.
  4. Nに1を足す
  5. 1に戻る

こうして,4バイトの数codeを得る.

 

種類とパーセンテージの取り出し

種類とパーセンテージを取りだす関数を用いる.この関数をランダム関数と呼ぶことにする.

ランダム関数は後に示す.

 

[残りのパーセンテージ]に100を代入する

  1. 種類の決定
    1. ランダム関数を用いて得た結果を100で割って余りを求める
    2. その余りが種類である.品物リストは最後に示す.
    3. 今までに得た品物リストと比較し,同じであったらループの最初へ戻る
  2. パーセンテージの決定
    1. ランダム関数を再度用いて得られた結果を[残りのパーセンテージ]で割った余りを求める
    2. それに1を足したものがパーセンテージである.
    3. [残りのパーセンテージ]から上で得た結果を引く.
  3. [残りのパーセンテージ]が0になったら抜ける.でなければ最初に戻る.

なお,残りのパーセンテージが50%の時は,「~の半分は~」になり,残りの種類も50%の時は「~のもう半分は~」になります.100%のときは「~はすべて~」になりますのでご注意ください.

 

ランダム関数

言葉での説明が辛いので擬似コードで書く.

引数には前回の結果を使う.

初回の引数は「文字列の変換」で得られた数値である.

unsigined int seed = 0; //グローバル変数.
		//初期化には,文字列から変換した数値を使う
unsigned int random(){
	int result;
	seed *= 214013;
	seed += 2531011; // ->次に呼び出されたときのseedに使う
	result = seed;
	result = result >> 0x10;
	result &= 0x7fff;
	return result;
}

 

ソート関数

結果を得た後,パーセンテージでソートする必要がある.これがそのソート用の関数である.

    public void sort(Element[] elt) {
        for (int i = elt.length - 1; i > 0; i--) {
            int prev = 0;
            for (int j = 1; j <= i; j++) {
                if (!(elt[prev].Parcentage <= elt[j].Parcentage)) {
                    prev = j;
                }
            }
            /*iとprevについて入れ替える*/
            swap(elt, i, prev);
        }
    }

Javaで書くとこのような感じになる.基本的にバブルソートである.すいませんセレクションソートって言うらしいです.

 

感想

この解析に二時間以上かかってます.ダメっすよね,うん.

でもまあ,最後まで解析できたということで60点くらいはあげてもいいかなぁ.

ちなみに,

ψ(プサイ)の成分解析結果 : 
ψ(プサイ)の43%は食塩で出来ています。
ψ(プサイ)の36%は血で出来ています。
ψ(プサイ)の18%は厳しさで出来ています。
ψ(プサイ)の2%は真空で出来ています。
ψ(プサイ)の1%は鉄の意志で出来ています。

どうみてもしょっぱすぎです.本当にありがとうございました(何

 

品物リスト

0x00:下心
0x01:微妙さ
0x02:優雅さ
0x03:華麗さ
0x04:かわいさ
0x05:やさしさ
0x06:やましさ
0x07:やらしさ
0x08:むなしさ
0x09:ツンデレ
0x0a:厳しさ
0x0b:世の無常さ
0x0c:ハッタリ
0x0d:ビタミン
0x0e:努力
0x0f:気合
0x10:根性
0x11:砂糖
0x12:食塩
0x13:愛
0x14:電波
0x15:毒電波
0x16:元気玉
0x17:怨念
0x18:大阪のおいしい水
0x19:明太子
0x1a:勇気
0x1b:運
0x1c:電力
0x1d:小麦粉
0x1e:汗と涙(化合物)
0x1f:覚悟
0x20:大人の都合
0x21:見栄
0x22:欲望
0x23:嘘
0x24:真空
0x25:呪詛
0x26:信念
0x27:夢
0x28:記憶
0x29:鉄の意志
0x2a:カルシウム
0x2b:魔法
0x2c:希望
0x2d:不思議
0x2e:勢い
0x2f:度胸
0x30:乙女心
0x31:罠
0x32:花崗岩
0x33:宇宙の意思
0x34:犠牲
0x35:毒物
0x36:鉛
0x37:海水
0x38:蛇の抜け殻
0x39:波動
0x3a:純金
0x3b:情報
0x3c:知識
0x3e:知恵
0x3e:魂の炎
0x3f:媚び
0x40:保存料
0x41:着色料
0x42:税金
0x43:歌
0x44:苦労
0x45:柳の樹皮
0x46:睡眠薬
0x47:スライム
0x48:アルコール
0x49:時間
0x4a:果物
0x4b:玉露
0x4c:利益
0x4d:赤い何か
0x4e:白い何か
0x4f:鍛錬
0x50:月の光
0x51:回路
0x52:野望
0x53:陰謀
0x54:雪の結晶
0x55:株
0x56:黒インク
0x57:白インク
0x58:カテキン
0x59:祝福
0x5a:気の迷い
0x5b:マイナスイオン
0x5c:濃硫酸
0x5d:ミスリル
0x5e:お菓子
0x5f:言葉
0x60:心の壁
0x61:成功の鍵
0x62:理論
0x63:血

Read more

ポケモン個々のデータのチェックサム

Posted on

 現在,たまーに,ですが,ポケモン一匹一匹のデータを解析中です.どうも色々と暗号化みたいなものがかかっている様で,なかなかうまくいきません.復号化†1ルーチンから攻めようかと思ったのですが,かなり複雑で行き詰まり(ぉ,今度は暗号化ルーチンから攻めようかと思ったら実行時間が1フレームを超えるほど処理が長く(苦笑),なかなか苦戦しています・・・.

 かと言って某ポケモンエディタを解析するんじゃなんか負けな気もするので,がんばります・・・.暗号化,復号化,どっちから攻めようかなぁ・・・.

 まずは「ダメタマゴ」にならないためにチェックサムの計算から解析する事にしました.すこしポケモンのステータス(技等)を書き換えて絞り込んだ結果,チェックサムは一匹目は030042acより2バイトっぽい事が分かりました.で,データから計算したチェックサムとここに書かれているデータを比較してるわけですが,まずはそのチェックを外してみました.そのためには以下のようにプログラムを書き換えてください.R/S専用です.

「ダメタマゴ」チェックサムのチェックをはずす(R/S専用)

0803a026:e00a(halfword)

※VBAはプログラムを書き換えられないのでメモリビューアで自力で書き換えてください.

 逆アセンブルしてみれば分かりますが,単なるジャンプ命令に変えてるだけです.

 これで適当に1バイトずついじって,どのデータが何処にあるか分かるかも・・・と思いきや,一箇所のデータがほかの場所にも相互に作用しているらしく,バグって落ちます・・・_| ̄|○

 また,チェックサムより前のデータをいじくると「ダメタマゴ」ではないけど,タマゴになったケースもありました.チェックサムはここだけなんですが,これは・・・本当にタマゴになった†2,という可能性もアリですね.

 なお,肝心のチェックサム計算方法ですが・・・復号化するときに使ったのと同じルーチンを多様して求めている,までしか今のところ分かりません^^;

 「まずは復号化ルーチンを解析してからにしろや^^」,という事でしょうか・・・.

 なお,コードは私への連絡先を示す,という条件付きで転載許可します.まあ誰も転載しないと思うけどねぇ.一応ね,一応.

  • †1: 複合化?はぁ?^^
  • †2: エラーが発生して,でなく,タマゴになるようにデータを書き換えてしまった