2020年5月5日から2020年5月1日までの日記を表示中
2020年 5月 5日 (火)
■PC
メモリ以外のパーツも届いたので、さっそく入れ替えてみました。
CPUはRyzen 5 3600にしました。
ケースと電源は再利用。ストレージや光学ドライブもとりあえず前のままで。
マザーボードはGIGABYTEのB450M DS3H。カッコいい!
CPUを取り付けました。カッコいい!
リテールファンを取り付け。カッコいい!
ビデオカードは玄人志向のGF-GTX1650-E4GB/OC/DFです。元々使っていたGeForce GTX 750Ti搭載のやつ(写真右)と比べると、大きさのギャップが凄まじいですね・・・。
一通り組み込んで、起動することを確認。
そのまま特に何もせず、普通にWindows 10も起動しました。
ちゃんとCPUも認識されています。便利な時代になったな・・・。
その後、無事Folding@homeも動き出しました。これまでの環境 (Phenom II X6 1065T + GeForce GTX 750 Ti) の 3〜4倍くらいのスコアが出ていますね。凄い。
2020年 5月 4日 (月)
■PC
[コメントを書く]
■基板
MAME上のデバッガでCPS3のタイトルの命令を追っていたら、NOPでない2ByteのデータがなぜかNOPとして表示されていることに気が付きました。不思議に思ってソースを調べてみたら、どうも命令を判別する処理の実装が色々と怪しい感じ。NOPは本来「0009h」なんですが、実装を見ると、2Byteの命令の最上位4bitが「0000b」のときは下位6bitが「001001b」だったら無条件でNOPと判断されるようになっていました。つまり「0000_XXXX_XX00_1001b」なら何でもNOPになってしまうということ。なので、たとえば「03C9h」みたいな全然違うやつもNOPになってしまいます。
自前のツールで使っているライブラリも、元々MAMEの逆アセンブラから切り出して作ったものなので、当然同じ問題を抱えています。そしてこれを許してしまうと、既存の解析済みのプログラムをチェックする際に不正な命令を再エンコードしてしまいっている箇所を見逃してしまうことになり、非常によろしくない感じ。
というわけで、自作のツールの方でこの辺の雑な判定を修正してみたところ、先日は特に問題の見つからなかったストIII 3rd初期版の解析済みのプログラムにおいても、本来命令にはならないはずのバイナリ列 ($4858) が命令として再エンコードされてしまっているところが見つかりました (MAMEの逆アセンブラだと「SHLL8 R8」と解釈される)。
ちなみに、気になってMAMEのCPUエミュレータの実装の方も見てみたところ、こちらも逆アセンブラと同様にバイナリ列を緩く判定して処理していました。うーん、もしかして実機でもこういう風に判定しているのかな。プログラムがバグって暴走した時の挙動を正確に再現するためにこういう実装になっているみたいな・・・。
あと、MAMEの逆アセンブラのコードを検索しても何故か STC GBR,Rn が見つからず、不思議に思って調べてみたら、間違って STS GBR,Rn が割り当てられていました。CPUの方は流石に大丈夫でしたが、こっちは純粋に逆アセンブラのバグっぽいですな。
[コメントを書く]
2020年 5月 3日 (日)
■基板
CPS3の解析、今度は既存の解析結果で「データ」として認識されているところに有効な命令列が埋もれていないかを探すプログラムを書いてみたりしているんですが、初代ジョジョとかで試してみたところ、埋もれたサブルーチンが結構な数出てきました。もちろんたまたま命令として解釈できるようなものも多く混ざっていたりするんですが、明らかに関数の形になっているものも結構あり・・・。まあ、どこからも呼ばれることのない関数なんだろうとは思いますが。
しかし、こうやって静的に解析するのにも限界を感じますね。どこまでやったら完璧と言えるのか全然わかりません。というか、そもそも、ストIII 2nd以外のタイトルについては、CPUが素のSH-2なら、デコード後に命令部分だけを抽出して再エンコードしたバイナリを用意する必要もないんですよね(機械的に全部デコードするだけで良い)。・・・ああ、そうか、MAMEのソースのスゴイBIOSにcps3bootとcps3bootaの2種類があるのはそういう理由かー。
[コメントを書く]
■トワイライトプリンセスHD
ゴーストの魂を求めてさまよっていたら、いつの間にかシリーズ恒例の試練系のダンジョンに突入。何の準備もせずに入った割には粘れたんですが、最後だと思ったフロアにまだ続きがあって、そこで力尽きました。後で調べたら力尽きたのが49Fで、これが本当の最後のフロアだった模様。惜しい・・・
[コメントを書く]
2020年 5月 2日 (土)
■散髪
髪が限界に近かったので切ってきました。本当に久々に街中に出た感じw
[コメントを書く]
■PC
WindowsデスクトップPC更新用のRyzenマシンのPCパーツを注文しました。今のWindowsデスクトップPCのマザーボードやCPUを買ったのは2011年なので、実に9年ぶりの更新ということになります。よく考えると、9年前のPC + 最新OSでもあまりストレスなく使えていたのは凄い話ですね・・・。途中で主記憶をどかっと増設したのと、二次記憶をSSDに置き換えたお陰かな。
[コメントを書く]
2020年 5月1日 (金)
■基板
CPS3の解析済みのプログラムに変な箇所がないかチェックする自作のツールを、ストIII 3rdの初期版と後期版の既存の解析済みのプログラムに適用してみました。初期版についてはエラーなしでしたが、後期版では何と2箇所ほどエラーを発見。うーん、この辺も実行・参照されることがない箇所なのかな・・・。
[コメントを書く]
■CPicS2
[コメントを書く]
■REGZA
タブレットからYouTubeのライブ配信動画をREGZA Z700Xに飛ばして流しっぱなしにしていたら、REGZA側で「メモリ不足のため、コンテンツを表示できません。」なるメッセージが出て再生が切れました。メモリリークでもしてるんですかね・・・。
[コメントを書く]
2020年5月5日から2020年5月1日までの日記を表示中
[コメントを書く]