2008-03-30
■ Glasopal

リプレイの乱数合わせはかなり難しいことが分かった.リプレイ時とレコード時で譜面が同一でなければならないので,プレイオプションだけではなく,BMSの条件分岐も再現させる必要がある.しかし,nazoの実装では,レコードデータのロードがBMSファイルロードの後に来ているので,このままではBMSの条件分岐を再現することは出来ない.
つまり,BMSファイルロードの前に,レコードデータをロードさせるようにパッチを当てることになるのだが,レコードデータの正当性確認に,BMSファイルに記述された値から計算される数値を用いているので,ただ単にロードの順序を入れ換えるというわけにはいかないのだ.正当性確認に巡回冗長検査やハッシュ関数を用いれば上手く解決できそうだが,これだと,過去のリプレイファイルと互換性がなくなってしまう.できれば,出入力ファイルの互換性はなくしたくないのだが……
ジュークリスト検索のショートカット追従も難しい.元のルーチンに変更を加えずにやろうと思ったら,どこぞのmとか,aとか,bとか,iとか付くゲームのESLフレームワークみたいに,ファイルシステムを摸するレイヤを挟まないといけない.はっきり言って,そこまでやるより,検索ルーチンをすべて書き換えてしまった方が早いし,低コストだ.NTFSのジャンクション(≒シンボリックリンク)機能を使えば,nazoが特別な対策を取らなくても,カンタンに追従出来るのだが,有名所のアーカイバはこれを正しくパックできるほど賢く出来ていない.また,Win9x系で使われることも想定すると,ジャンクションに頼ることは出来ないだろう.
最後に,報告を戴いている件について.実は,更新内容に記述されていないパッチが幾つか存在します.パッチの具体的な内容は,「サウンドファイル読込の成功に関係なく,サウンドオブジェクトの読み込みフラグを強制的に更新する」と,「ピクチャファイルの読み込みに失敗したとき,黒で塗りつぶした16×16のオフスクリーンサーフェスを返す」の二つです.これらは,オプションに非依存で常に適用されるようになっています.どのオプション状態で不具合が起きるかを確かめてもらおうとしたのは,そのためです.
そして,オプションに関係ないという報告を戴いたことで,前述の非文書化パッチが原因である可能性が高いことが分かりました.後日,原因と思われるパッチについて,無効化ないし修正を行い,検証版としてupしたいと思います.
2008-03-15
makafusi
Glasopal、12版のパッチをあてようとしたら『差分データを確認できません』と言われました。なんてことだ。
結構昔からこのパッチを愛用させていただいておるのですが、
それに伴ってReadmeをもう一度読んだら、知らぬ間に素晴らしき機能が付いていた。あちゃー、オプションって自分で設定するのか。これは気がつかなかった。
h0shu
差分データ云々のエラーについては,完全に此方の不手際です.すみません.
オプションについては,それぞれ完全な動作保証が出来ないので,デフォルト無効にしています.
quastion
私もGlasopalで差分データのエラーが出たのですが、この対処方法は今のところないということでしょうか?
Q
私もGlasopalで差分データのエラーが出たのですが、この対処方法は今のところないということでしょうか?
makafusi
h0shuさん、どうもありがとうございました。
genkianamei
はじめまして!
昨日再配布されたパッチをあててみたところちゃんと作動したのですが、
そのままプレイして曲が終わってリザルトが出るところらへんでいつもフリーズしてしまいます。。
恐らく俺のPCの問題なのでしょうがこの対処法みたいなものはないのでしょうか?
もしよかったら教えてくださいm(__)m
h0shu
オプションを付けなくてもフリーズするのか,それとも特定のオプションを付けるとフリーズするのか,それを教えてくださると,原因の切り分けが出来るかも知れません.
KOZiRO
初めての書き込み失礼いたします。
genkianameiさんの現象と同じことがわたしのPCでも起こりました。
少し調べてみたのですが、わたしの環境ではオプションを付けても付けなくてもフリーズします。
正確に言うと、フリーズとは少し違う(問題が発生したため〜、が出ます)ようです。
クリア、非クリア際の歓声やブーイング、スコアのカウントの音は出ています。
カウントの音は出っぱなしになって止まることがありませんでした。
原因の切り分けになるか分かりませんが、報告いたします。長文、失礼いたしました。
kisama
物凄く今更ですが気付いたので報告
私もgenkianameiさんとKOZiROさんと同様の現象が起きていたのですが
自作のリザルトの都合上res_clr.bmpとres_fal.bmpを消してたのが原因みたいでした
スキンを変えたくない場合は黒で塗りつぶしたres_clr.bmpとres_fal.bmpを
用意すれば解決するかもしれません
2008-03-14
■ call/cc と参照透過性は両立できるか

議論の決着としては,出来ない,となった.
たとえば次のコード.
i = callcc {|c| c } # (1)
i.call(i) # (2)
このコードのフローは以下のようになる.
(1)一回目のcall/cc呼び出しと継続のiへの束縛(代入だけどそう表現する→(2)iを引数として継続を呼び出す→(1)'
二回目のcall/cc呼び出し(戻り)とcのiへの束縛→(2)'iを引数として継続を呼び出す→以下繰り返し
一度目の(1)と,二度目以降の(1)でcallccから返る値は等しい.引数は不変なので,従って参照透過性が満たされると考えられる.
では,次のように,継続に渡す値を変えるとどうだろうか?
i = callcc {|c| c } # (1)
i.call(i) if i != 1 # (2)
エラー避けのために後置ifを付けているが,これは説明について本質的な事柄ではないので,無視して構わない.さて,コードのフローは次のように変化する.
(1)一回目のcall/cc呼び出しと継続のiへの束縛→(2)1を引数として継続を呼び出す→(1)'
二回目のcall/cc呼び出し(戻り)と1のiへの束縛→(2)'スルー
先ほどと大きく違う点が1つある.それはcall/ccの戻り値だ.
一回目は継続,二回目は1となっている.引数が同じなのにもかかわらず,返り値が等しくないと言うことは,参照透過性が崩れていることを意味する.
つまり,call/ccは参照透過性を常に満たすとは限らないと言える.
交わした議論はこんな感じで決着をみたわけだけど,真の解はどうなんだろうか?
A「ただ、純粋関数型言語的にcall/ccが成り立ち得るのはってのは、むしろ教えて欲しいorz....」
B「私もどうなのか知りたい」
2008-03-11
■ 実行ファイル感染型ウイルス

みょんなことから,コンピュータウイルスに感染してしまった.調べてみると,このウイルスは Win32.Parite.B とか,W32.Pinfi と名付けられており,実行ファイルに感染感染するタイプのウイルスの一種だという.イマドキ,なかなかお目にかかれないタイプのウイルスだ.
幸いにも,症状が感染を拡大させることだけなので,被害はストレージに存在するほぼ全ての実行ファイルに取り憑かれるだけで済んだ.
ウイルスの正体が分かったところで,駆除ツール等々で根絶やしにしてもらったが,みょんなことに,いっこだけ駆除できないファイルが出てきてしまった.別にこのファイルは今でも入手可能なので,もう一度拾ってきて,上書きしてやれば済むことなのだが……
2008-03-10
■ x86でソフトウェアリブート

ローレベルハッカーなら,そんなの知ってて当たり前のことかも知れないけど……
How to Reboot Your Machine Within a MASM Application
FFFF:0000(=0FFFF0h)にジャンプすると、コールドリブートが行われる.また,40:72(=000472h)に1234hを書き込んでからジャンプすると,ウォームリブートが行われる.
しかし,プロテクトモードでは,それらのアドレスが実際のアドレスを表しているとは限らないので,そのまま使うことは出来ない.
OS,Windows,WindowsNT各システムに対応した再起動プログラムの作り方がわかりたい
上記のサイトにあるように,286以上のCPUでは,リセットでリアルモードに落としてから(たしか386以降では,MSW(CR0)を書き換えることで,ノーリセットで切り替えられた気がするけど)ジャンプする必要がある.
2008-03-05
■ 今日までのBMS

DirectShow のハンドリングが面倒すぎる.もうちょっと使いやすい方法はないのかなぁ.
○ MENDES - 8bit mix - ea7
× MENDES - 8bit mix - a7
多分本家と同一譜面.正規無理.
本来なら少なくとも★7位ありそうだが,如何せんゲージが軽過ぎる.
LRemならゲージ適正なのかも知れないけど.
○ すばらきしこのせかい - maniac
中盤ちょっと休憩.正規二重階段.
× Subversive Attack - IR -
ラスト縦連打測定器
私も以前にBrainfuckインタプリタをPrologで書いてみたことがあるので、よろしければ参考にどうぞ。
http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20071207
コードの構造が洗練されていて,すごく参考になります.
メモリ操作の実現は感動すら憶えました.配列という概念に囚われていた己が恥ずかしく思えます……(^^;
これヤった後でパチ屋に行ったら勝率上がりすぎwwwwww
http://shiofuki.navi-y.net/6XWnD7P/
ただの軍資金稼ぎのつもりでヤってたんだけど、
パチも負けねーもんだから金が余りまくりっす・・(^^;
まー金は余っても困らないからまだ続けるけどねーヽ( ・∀・)ノ
とりあえずBMWでも買うわwwwwwww
はぁ・・思い出す度にオッキくなっちゃうから一日中下半身大変だよwww
ローションべっとべとに塗られて玉舐め手コキされるって初だったんだが
予想以上に気持ちよすぎて瞬殺されちゃったwwwwww
てか意外に素股も気持ちよかったし!! 明日は僕が瞬殺してやるもんねw
http://Ji5wxjk.meshiuma.tsukimisou.net/
働かざるものヤルべし!!!ほんと働いたら負けだわ(´Д`;)
オレ真面目に会社員やってたけど、今はその頃より月の稼ぎ3倍だよ?
初めてヤった時は4万だけだったけど、今じゃ平均一回7万だかんなwww
もうアフォらしくて会社員ヤメたしwwwww 毎日ネトゲ最高wwww
http://CObMqFM.netoge.bolar.net/
俺チェック柄スカートフェチなんだ・・・(´ー`)y
スカート履いてもらったままゼックスするのはやっぱイイよね(*´Д`)
顔騎してもらった時なんか、スカートの中に顔を突っ込んでク ン ニしてるって感覚が興奮するポイントじゃね?www おいしくてたまらないんだがwwww
http://sekurosu%2eprotobem%2ecom/OedG3GQ/
しばらくお互いに愛撫し合ってたら、女が急にカバンから蜂蜜取り出してボクのティンポに塗りたくってきてパイズリ始めたからビックリしたよ(^^;
パイズリされつつ蜂蜜塗られてティンポしゃぶってもらっての繰り返しで、気持ちよすぎて気がついたら3回イったしwww 俺淡白なのにすげwwwwww
やっぱ巨乳で工口工口な女が一番だよねーヽ(゜∀゜)ノヒャッヒャッ!!
http://ene.creampie2.net/AN5I5ui/
やっぱコスしてもらってハ メ るのが一番萌えに燃えるって!!!!!!
昨日はエ○ァの新キャラコスしてもらったもんねー(*´Д`)ハァハァ
興 奮しすぎて無意識に服着せたままパ ン ツ ビリビリに破いてバック突きしまくっちゃったwwww(テヘw)
既に次はハ○ヒで決定してるしwktkが止まらんねぇぇぇwwwwwwwwww
http://kachi.strowcrue.net/Qc8NFAJ/
すんげえケ ツでかい女に当たった!!! コイツのケ ツ 技すぎすぎwwwww
ケ ツにロ -ショ ン塗りたくって、俺のティ ヌコ挟んですんげー前後すんの!!!
前後してる時にク リに当たったりマ ヌ コに入ったりして
女もアヒアヒしまくりで俺も女も絶 頂しまくりで最高ですたwwwwwww
こりゃハマるわぁ・・・・
http://yuzo.plusnote.net/ZzLox2O/
パイおパパイパパぱいいいぱいいい!!!!!!!!
なんでセ ッ ク スさせて貰えたのに5 万貰えたわけー?wwwww
てか初 体 験ゴチーーみたいなぁーwwwwwwwwww
今までこれ知らなかった俺ってアフォすぎぃーー(^▽^;;
http://koro.chuebrarin.com/ecrMpnU/
IRも普通に使えて驚きました。
なぜか、選曲時にescで終了させるとnazoBMPlay.exeがタスクに残るという不具合(タスクから終了させればいいので致命的ではないのですが)が発生しました。
os : winXPpro SP2
CPU : Athlon64 3500+
mem : 4GB
グラフィック : GF7300GT Driver 94.24
DirectX ver. 9.0c