2020年5月31日から2020年5月1日までの日記を表示中

2020年 5月31日 (日)

基板

CPS3のBIOS改造、Cで書いたデコード関数と、アセンブラで書いたそれを呼び出すインタフェース部分をくっつけて、さらに既存のコードにフック処理を追加してBIOS ROMに組み込んでやったところ、無事期待通りオリジナルのCDでデコード済みのプログラムをSIMMにインストールできるようになりました。まだMAME上での話ですがw

ところで、所有されている方から某スゴイBIOSのセキュリティカートリッジの中身の写真を見せて頂いたんですが、CPUが非常に綺麗に貼り替えられていて驚きました。個人の技なのか、それともリワーク専門業者を通じてやっていたりするのか・・・。

2020年 5月30日 (土)

基板

CPS3のBIOSにデコード機能&チェックサム調整機能を追加するために、GNUのSH向けのクロス開発環境を導入してみました。ARM Linux向けのクロス開発とかはたまにやっていましたが、OSなしの環境で動かす素のバイナリ開発となると、ゲームボーイアドバンス向けのプログラムを書いたりしていた頃以来ですかね・・・。当然、それそのものの情報はないんですが、ググりまくって断片的な情報を集め、繋ぎ合わせて、何とかそれっぽいフローを構築することに成功。何となくCで書いたプログラムが、指定したアドレスに貼り付けて動くバイナリになっているように見えます。

で、早速、Cで書いたデコードルーチンをコンパイルしてみたんですが、 なぜかここで __ashlsi3みたいな、libgccに含まれていると思われる謎のローテート関数がリンクされるようになってしまいハマりました。そんな高度そうなものなんか使わずに動く処理のはずなのになぜ・・・と思ったら、コードの書き方が悪いせいで、任意ビット幅のローテート処理ができる関数としてコンパイルされているのが原因でした。使うのは2bitの左ローテートと4bitの左ローテートだけなので、それ専用の関数を作ったら、余計なものがリンクされることはなくなり期待通りのバイナリに。ふぅー。

あ、そういえば今日、Amazonで買ったSH-2 (HD6417604SF28) が届きました。

SH-2が届きました

2個買ったつもりだったんですが、合わせ買いのために一旦キャンセルしたつもりになっていたのがキャンセルできていなくて、都合4個もw。まあ、きっとあったらあったで何かの役に立つはずですねw

間違えて4個も来てしまった(汗)

2020年 5月29日 (金)

ブルーインパルス

窓から都内の方向を見ていたらギリギリ見ることが出来ました。医療関係者でも何でもないですが、何か活力貰った感じですw

2020年 5月28日 (木)

基板

CPS3、今日は特に実機を触ったりすることなく、インストール時の動作をMAME上で追ったり、BIOSを逆アセンブルした結果を眺めたりしたくらい。ちょっとBIOSをハックして、BIOS内でデコードとチェックサムの調整を行うことで、素のメディアからインストールできるようにしてみようかと思い・・・。

2020年 5月27日 (水)

基板

今日もCPS3のカートリッジのカスタムCPUを HD6417604SF28 に貼り替えてみました。これで4つ目です。そして、ついに手持ちの HD6417604SF28 の在庫が尽きました(当時5個買っているので、本当はもう1個あるはずなんですが見当たらず。おそらくちょっと前にICトレーごと落として床にぶちまけた際にどこかへ飛んでいってしまったものと思われます・・・)。だいぶ慣れてきて、作業自体は30分もかからずに終わったんですが、なぜかまったく起動しません・・・。2時間近く、ルーペと針で不良箇所がないか探し、少しでも怪しいところは手直しするというのを繰り返したんですが、症状は一向に改善しません。うーん・・・(´・ω・`)

4個目の貼り替え

もしや別の場所に問題が?・・・と、試しにフラッシュメモリを読んでみたら正解でした。わけのわからないデータが・・・。カスタムチップを剥がした後、ちゃんとしたデータを書き込んだつもりだったんですが、書けていなかったのか、それとも何かの拍子に消えてしまったのか。で、改めて書き直したら一発で起動してくれました。うー、もっと早くフラッシュメモリを疑うんだったなぁ。というわけでジョジョの奇妙な冒険 未来への遺産についても、無事デコード済みのものを動かすことができました。

未来への遺産無事起動

2020年 5月26日 (火)

基板

今日も1つ、CPS3のカートリッジのCPUを HD6417604SF28 に貼り替えてみました。

カスタムCPU取り外し

まあ特に問題なさそうです。

貼り替え完了

ついでに別のカートリッジでFeRAMを剥がし、下のパターンを観察してみるなど。なるほど、こうなってたのかw

別のカートリッジでFeRAMの下のパターンを観察

しかし、こうもSH-2版が手軽で確実となると、HD6417604SF28 を使ったソリューションを考えるべきなのかもしれませんね。とりあえず実験ができるように、少し買い足しておこう・・・と、AliExpressで数日前に見つけた出品を開いて注文しようとしたら、何とページ自体が消滅しているではないですか (´・ω・`)。お安くて、数も潤沢だったのに、なぜこのタイミングで・・・。

Not Availableに・・・

国内だと、なぜかAmazonでAmazon販売のものが買えたりするようですが、若干お高い感じになっちゃいますね。まあでも、実験用で何個か買い足すだけならこれもありか。

2020年 5月25日 (月)

基板

昨日、HD6417604SF28に載せ替えたセキュリティカートリッジでウォーザードを動かしてみたわけですが、今日はストIII 3rd(初期版) に挑戦してみました。

前回と同様にBIOSとCDイメージを作成し、MAME上でインストール含めて問題なく動作することを確認した上で、昨日CPUを貼り替えたカートリッジにストIII 3rdのデコード済みBIOS ROMを書き込み、さらにデコード済みのプログラムが入ったCDを焼いて、後はインストールが終わるのを待てばおしまい・・・

順調に実機確認に到達したが・・・

と思いきや、ここでBIOSがCDを読み込んだタイミングでクラッシュ(映像信号が落ちる感じ)する問題が発生してしまいました。カートリッジをもう1つのSH-2版に交換しても同じ症状です。うむむ?

ひょっとして3rdはSIMMが多い関係で、カートリッジ側に改造が必要だったりするのかな? というわけで、先日確認した、オリジナルの3rdのカートリッジに施されていたジャンパを真似してつけてみましたが何も改善しませんでした。残念。

ジャンパは無関係っぽい

また、CDの焼きミスを疑ってCD自体を改めてPCでチェックしてみましたが、こちらも特に問題は見つかりませんでした。うーん、何なんだ?

とりあえず初期版がだめならきっと後期版も同じになるよねと思い、急遽 ストIII 3rd (後期版) のデコード済みプログラムの入ったCDも作って動かしてみたんですが、何とこちらは問題なくインストールが始まりました。うーんとなると、初期版固有の何かがあるのか、あるいはPCで読む分には違いがわからないレベルでCDに問題が出ているのか・・・。

というわけで、初期版のCDを改めて焼き直してみたところ、今度は普通にインストールできるようになりました。ということは最初に焼いたCDの個体に問題があったということか・・・って、やり直したら最初に焼いたCDでも普通にインストールが始まったし。ううう、結局一体何がだめだったんだ。こういうのが一番辛い。まあ、でも、ストIII 3rdも普通に動かせることがわかって一安心です。

ストIII 3rdも無事動作

2020年 5月24日 (日)

基板

これまで、約1ヶ月に渡って、オリジナルのプログラムをデコードして、命令部分のみゼロキーで再エンコードすることで、電池の切れたセキュリティカートリッジでも動作する電池切れ修理の形の確立を目指してあれこれ試行錯誤してきましたが、やはりダメですね、これ。前々からわかっていた話ではありますが、CPS2のフェニックス版と同じで、どこまでやったらオリジナルと同じといい切れるのかが全然わからない。やっぱりこれは自分が目指す修理の形じゃありませんでした。

というわけで、プログラムの解析のことは忘れて、今日からはプログラム中の命令部分の抽出が一切不要な方式、すなわちセキュリティカートリッジ内のCPUをカスタム品から普通のSH-2 (HD6417604SF28) に置き換えるタイプの修理に切り替えてやっていこうと思います。

まずはカスタムCPUを剥がすところから始めましょう。周辺の細かい部品をアルミホイルで保護しつつ、いつもの安物のホットエアで四辺をなぞるように温めて除去。結構綺麗にできました。

アルミホイルで保護

無事カスタムCPUの取り外しに成功

次にHD6417604SF28を貼り付けます。こちらは6年半ほど前の米国滞在中に取り寄せた新品です。ついに使うときが来たかという感じw

HD6417604SF28

ブリッジ上等でハンダを盛りまくった後、ハンダ吸い取り線で綺麗にするやり方+細かなチェックと手直しで、何とか貼り替え完了。

貼り替え完了

続いてBIOSプログラムを書き換えます。これまでの経験で、素のSH-2で動作するBIOSプログラムの作成はもはや朝飯前というか、スクリプトをちょっといじるだけw。バシッと作って焼き込んで・・・

焼き込み中

マザーボードに装着して、いざ電源ON!

マザーボードに装着

うおお、起動したぜ!成功です!

SH-2版起動成功!

それではインストールしてみましょう。デコード済みのCDイメージについても、これまでの経験のお陰で一瞬で作成が完了しました。インストール自体も無事始まりましたが、果たして・・・

インストール始まった

うおお、起動した!見事に起動しました!CPU貼り替えのところさえ何とかなれば、後は本当に簡単かつ確実です。

起動成功!

調子にのってもう1枚貼り替えてみました。

もう1枚も剥がして・・・

貼り替え

こっちは当初、全然動かなくて泣きそうだったんですが、よく見たら、以前実験の際にパターンをカットしたところを繋ぎ忘れていただけでした。修正したらあっさり動作。焦った・・・。

2枚目も無事動作

いやしかし、この方法、ハードウェア的な障壁は大きいものの、そこさえ乗り越えてしまえば、その後は簡単極まりないですね。しかもプログラム自体も非常に確実で、オリジナルと異なる余地がありません。うーん、これまでの1ヶ月の苦労は一体・・・w

最初からこうすべきだったのか・・・

ちなみに、今回貼り付けた HD6417604SF28は、割と最近、片付けている最中にICトレイごと床に落としてぶちまけてしまったせいで、足が曲がりまくったものだったりします。何とか手で戻せるだけ戻しはしましたが、それでも歪みは取り切れず、結局これのせいではんだ付けでかなり苦労をするはめになりました。

[コメントを書く]

あいる 2021/02/11(木) 14:49:14
のすけ様 はじめまして。

CP2は暗号部(命令実行部)、複合部(データ部)に分かれており、いわゆる不死鳥版は命令実行部だけ複合化することで、キー無し(0xFF)にて動くものだということをなんとなく理解してます。
CP3も同じように分かれていると考えています。

この記事でSH2の交換を交換することで「命令実行部の抽出が不要」というのは、
どういうことになるのでしょうか。
あいる 2021/02/11(木) 15:22:41
すみません、記事を何回か読み直して自己解決できました。

・前提としてC@2と違い、全部分がエンコードされており、全部分のデコードが必要。
・カスタムで動作の場合は、ゼロキーで必要な部分のみ再エンコード"が必要
・ノーマルで動作の場合は、デコードしたままで動作OK

ということなのですかね。
C@2とか名称を記載してしまっているので、問題な場合には
コメントを削除して頂いて構いません。
nosuke 2021/02/13(土) 00:29:42
こんにちは、はじめまして。
はい、2個目に記載いただいたコメントの内容であっていると思います。
半年以上前の話で、すでに半分忘れていたため、僕もメモを見ながら
思い出しつつ書いていますが、2nd以外のタイトルはSIMM・BIOSともに、
全命令と全データがエンコードされています。
なので、BIOSの一部領域を除いて、機械的にデコードすることで
生のSH2で動かせるようになります。
一方で、最初から電池切れしたのと同じ状態で動作している2ndについては、
BIOSは命令とデータの両方がエンコードされていますが、SIMMの方は
命令しかエンコードされていません。なので、2ndと同じように、
電池切れした状態で他のタイトルを動かせるようにするには、
いったん命令とデータを全部デコードしたうえで、
命令部分だけ選んで2ndと同じようにゼロキーでエンコードする
必要があります。
おそらくは、カスタムチップは、エンコードされている命令のアドレス範囲と
データのアドレス範囲を個別に設定として保持できるようになっていて、
2nd以外のタイトルは、それがSIMMまで含めたアドレス範囲に設定されているものと
推測しています。
あいる 2021/02/18(木) 00:53:30
お返事が遅れ申し訳ありません。

2ndのお話まで詳しくありがとうございます。もやっとしてた箇所が理解できそうです。
BIOSまでエンコードの話が及ぶとは知りませんでした。CPS3は難しいですね…
カスタムチップからエンコードアドレス範囲を読み取れるようになれば、
完全なデコードが可能という訳ですね。期待です!

2020年 5月23日 (土)

基板

今日はウォーザードのプログラムの解析結果を精査。こちらも、データに埋もれた命令列らしきものが全部で70件くらいあったんですが、初期のものだからなのか、ストIII 3rdと比べるとレジスタの使い方とかがちょっと違う感じで判別しにくいです・・・。うむむ、もはやこれまでか。

2020年 5月22日 (金)

XAC-1

XAC-1のコンパネのクレジットボタンのところ、アクリルが膨張したのか、いつのまにか思いっきり盛り上がった状態になっていましたw

アクリルが盛り上がっているw

ネジを緩めてやったところ落ち着きを取り戻した感じですが、ビビりますな。

基板

昨日発覚した、日立のSIMMがいるとインストールがエラーになったり進まなくなったりする問題ですが、BIOSの隠し機能のSecurity Cassette Utility(NO CDの設定とかをするところをいじると使えるようになる)を有効化してSIMMのチェックをしてみたところ、Eraseが通らないせいでインストールが先に進めなくなっていることが判明しました。

とりあえず日立のフラッシュメモリの載ったSIMMをザクザク挿して、Eraseしてみたところ、プログラム用の方(SIMM1・SIMM2の位置)は普通に完了するんですが・・・

SIMM2の日立版はErase完了する

データ用(SIMM3以降)はいつまで待ってもEraseが終わりません。

SIMM3の日立版はEraseが終わらない

SIMM3に富士通版のSIMMを挿した場合、普通にEraseできました。が、SIMM4に挿した日立版のSIMMはやっぱりErase出来ません。なにこれ・・・。

日立版がEraseできない

ちなみにこの問題が起こるのは特定のマザーボードだけで、別のマザーボードだと同じ日立版のSIMMMでも普通にEraseできます。軽く見た分には、OKなマザーボードとNGなマザーボードの間に違いは見当たりませんでした。一体何が原因なのか・・・。

あと、今までストIII 3rd初期版の方で解析結果の精査みたいなことをやっていましたが、今日はこれを後期版にも展開してみたり。結構たくさんエラーっぽいのは出たんですが、流石に初期版で見慣れていたこともあってか、今回はどうにか一日で見切ることが出来ました。まあ、この活動にどれだけの意味があるのか、もはやよくわからなくなっていますが・・・。

2020年 5月21日 (木)

基板

ストIII 3rdの高速版のチェックサムは、過去に調べたやつとアルゴリズムが違っていました。よりアクセス量を減らして高速化している感じです。それでいいのかって気はしますがw

というわけで、上記に合わせてチェックサムを調整した上でCDイメージを作成し、焼き込んで実機で動作確認してみました。

実機で動作確認中

無事実機でもインストールが完了し、起動することを確認。わーい。

起動成功

が、ここでちょっと別の問題が発覚。マザーボードを変えて別のSIMMのセットに書き込もうとしたところエラーが発生しました。なんだERROR 24って・・・。

別のSIMMにしたらエラーに・・・

SIMMを入れ替えたりして実験しているうちに、日立のフラッシュメモリが載ったSIMMがグラフィックデータやサウンドデータの方に配置されていると、途中でインストールが進まなくなるということがわかってきました(モビちゃんは動いているので、ハングアップはしていないっぽい)。

途中でインストールが進まなくなった

日立のフラッシュメモリが載ったSIMM

うーん、どうなってんだろう。

PC

CPS3のイメージを焼くのに使っているPCの内蔵光学ドライブ、突然ImgBurnのVerifyでランダムにエラーが出るようになってしまいました (´・ω・`)。ImgBurnでWriteはできて、焼いたメディア自体は別の環境だとちゃんと読め、さらにチェックサムも合うので、書き込み自体はできてるようなんですが・・・。うーん、壊れたか。

2020年 5月20日 (水)

基板

ストIII 3rd初期版の解析が一応完了したというか、今の自分にこれ以上できることはないというところまで行き着いたので、ひとまず解析結果を元にゼロキー向けに部分的に再エンコードしたSIMMのイメージを作成し、MAME上で動かしてみました。うーん、動作はするけど、高速版のチェックサムが合いませんね。計算方法が以前調べたタイトルと違っているのかな・・・?

2020年 5月19日 (火)

基板

トライさんの通販でハイパーオリンピックinナガノとバーチャストライカーのROMキットを購入。ハイパーオリンピックinナガノ、メチャでかいですね。System GVなんでもっと小さいと思っていたんですが・・・(汗)

ハイパーオリンピックinナガノとか

1998年・・・。もう22年も前なのか。

ハイパーオリンピックinナガノ

動作ヨシ

ストIII 3rd初期版のプログラム解析の方は、ようやく一通りチェックし終えることができました。既存のゼロキー版、データの中に埋もれている関数が結構あるようです。まあ、きっと実際に呼ばれることはないものばかりなんでしょうけど・・・。

2020年 5月18日 (月)

基板

ストIII 3rd初期版で実験的に進めていたCPS3のプログラムの解析の精度向上、昨日は折れてもうやめようかと思ったんですが、どういうわけか一日経ったらやる気が戻り、再びチェックを再開しました。この先にゴールはないのはわかっているんだけど、まあ、ここまでやったなら行けるだけ行ってみようかなと。

で、しつこく1個1個見ていくうちに、新しいものが見えてきました。ひとまずレジスタの使い方をよく見ることで、関数の先頭かどうかがわかりますな。また、命令として実行された実績のあるコードとの類似性が大きなヒントになるということもわかってきました。まだまだいけるか?

2020年 5月17日 (日)

基板

これまで進めてきた解析ツールの改善やMAMEのデバッガの拡張などにより、ストIII 3rd初期版のプログラムの既存の解析結果に含まれる「データの中に埋もれた命令かもしれない部分」を70箇所程度にまで絞り込むことができたので、ここで一旦個別に見てみることにしました(100個以下なら、人手で見てもまあギリギリ何とかなるかなという考え)。

・・・うーん、何個か見た感じ、間違いなく命令(デッドコードの可能性大だけど)というのもあるけど、一方で境界に位置していて、どちらとも取れそうな微妙なものもあったりしますね。この辺、やっぱり限界があるなぁ。結局のところCPS2のフェニックス化と同じで、これは修理の手段として(自分の中では)不完全なものなんですよね・・・。何度目かわかりませんが、また折れた感じですw

スーパーマリオ3Dワールド

先日メディア不良を直してもらって以来、Wii Uのスーパーマリオ3Dワールドをちまちま遊んでいたりします。で、本日、ついに王冠エリアにまで到達しましたw。6年前に遊んだ北米版ではフラワー止まりだったので、ここから先は未知の領域ですw

2020年 5月16日 (土)

基板

昨日着手した、データとしてアクセスされた領域を記録してビットマップとして出力するMAMEのデバッガ機能、あっさり実装できてしまいました。こんなにも簡単に実現するとは・・・

しかし、前回の拡張と合わせて、実際にデモを回したり軽くプレーしたりしてプログラムのバイナリ列のアクセス状況の記録を取ってみましたが、実際にアクセスされている範囲は全体のごく一部でしかないため、得られた結果は元々静的に解析していた情報の答え合わせ程度にしかなりませんな。やはりカバレッジを上げるのは難しいか・・・。

FC AV UNIT

Familan.netさんのFC AV UNIT(の基板)が届きました。これを使ってやりたいのは、紅白ファミコンのAV化ではなく、NESRGBと組み合わせたRGB化だったりするんですがw。必要な部品を揃えないと・・・。

FC AV UNITの基板

LEGO Ninjago Movie Video Game

無料配布中のXbox OneのLEGO Ninjago Movie Gameをダウンロードしてみました。

LEGO Ninjago Movie Video Gameゲット

ちょっと遊んでみましたが、同じところが作っているだけあって結構レゴシティ アンダーカバーと似てますな。ただ、こっちの方が何でもかんでもレゴで出来ててカッコいいかもw

2020年 5月15日 (金)

基板

先日、MAMEのデバッガを拡張して、命令として実行されたところをビットマップとして出力する機能を実装したわけですが、逆に「ここは確実にデータ」という情報も大きなヒントとなるので、データとしてアクセスされたところのビットマップも合わせて取得できるようにさらに拡張してみたいと思います。見た感じ、こちらはwpsetの仕組みを流用すると割と簡単に実現できそうです。果たしてうまくいくか・・・。

2020年 5月14日 (木)

基板

昨日のストIII 3rdのカートリッジ、電圧を上げると全然起動しなくなる要因を探るべくロジックプローブを当てた始めたら、突如電圧が高い状態でもゼロキー向けのBIOSで起動するようになりました。何かロックが外れたとかなのかな。あのAMDのCPLDに何か秘密があったりするのかな・・・。

2020年 5月13日 (水)

基板

ジャンクのストIII 3rdのセキュリティカートリッジを開けてみたところ、見たことのないジャンパを発見しました。配線を見るに、CPUのリセットを制御するための信号を利用してCPUのWAIT信号を制御しているようですが・・・何を意図したものなのかはよくわからず。リセット信号のタイミングをずらすとかそういう目的なのかな?

謎のジャンパ線のついたセキュリティカートリッジ

というか、このカートリッジ、セキュリティキーは既に飛んでいると思うんですが、これを挿して起動してもなぜかぐちゃぐちゃに化けた画面すら出ないという謎の状態だったり。信号を軽く見た感じ、CPUのリセットが解除されていない?

その後、色々と試している中で、+5V線の電圧を4.6Vくらいまで下げることでリセットが解除されることが判明したんですが、今度はマザーボード側が電圧が低すぎてちゃんと動いていないっぽい感じに。うおー、どうしたらいいんだw

ワイヤレスホリパッド

ジョイコンだとアクション性の強いゲームが何かと遊びにくいので、Switch用のワイヤレスホリパッドを買ってみました。

ホリパッド購入

試しにテトリス99を数ヶ月ぶりに遊んだらいきなりテト1ゲットw

いきなりテト1取れたw

サードパーティ製の変換アダプタを経由した場合に比べて遅延も全然感じられず、なかなかいい感じです。後は耐久性ですね。

2020年 5月12日 (火)

基板

昨日から取り組み始めたMAMEのデバッガの拡張ですが、うまく既存のコードを流用することができ、大規模な追加実装をすることなしに指定のアドレス範囲内の命令として実行されたところをビットマップで抽出できるようになりました。こんなに早くできるとはちょっと驚きですw。もっと早くやるんだったなぁ。しかし、うっかりヘッダ修正をミスるとMAME全体が再コンパイルになってしまい、滅茶苦茶待たされるのは辛いですね・・・。

ところで、ソースをいじっている中で、不要な中括弧なしでif文を書いたらGCCが「エラー: this ‘if’ clause does not guard... [-Werror=misleading-indentation]」と返してきて、コンパイルがこけました。調べてみたところ、ifの後のインデントが半角スペースの並びになっているのがまずい模様。これをタブに置き換えたところ通るようになりました。こんなオプションあったとは知らなんだ・・・。

LEDバーライト

もう10年以上前から使い続けている蛍光ランプタイプの卓上照明、明るいのは良いんですが熱い上に固定場所を選ぶので、在宅ワークのしんどさの要因の1つとなっていました。そこでこれを撤去して、代わりにLEDバーライトを導入してみることに。

LEDバーライト

おお、なかなかいい感じ。ちょっと迷ったんですが、色とか明るさを変えられるタイプにして正解でした。これでまたひとつ在宅ワーク環境が快適にw

色・明るさともになかなかいい感じ

2020年 5月11日 (月)

基板

これまで静的なやり方で進めてきたCPS3のプログラムの解析ですが、限界を感じ始めたので、新たにMAME上で動かして実際に命令として実行されたところを起点としてに命令抽出範囲を広げる、動的な手法を取り入れることにしてみました。ただ、traceなどの標準的に用意されているデバッガの機能でこれを行うのは厳しそう。というわけで、まずはMAMEのデバッガを拡張して、これを支援する機能を追加するところから始めますw。目指すはメモリ空間に対応したビットマップを用意し、動作中に命令として実行されたアドレスに印をつけ、終了時にそれをファイルに書き出すような機能。うまくいくかな。

2020年 5月10日 (日)

ゼルダ無双

バイクを漕ぎながら遊ぶ次のタイトルはSwitch版のゼルダ無双(ハイラルオールスターズDX)に決定。調べてみたら丁度今日までDL版がGWセール (?) で40% Offとかだったので迷わず購入しましたw。ちなみにパッケージ版の方は既に大手には全然在庫がないっぽいですね。

ゼルダ無双 ハイラルオールスターズDX セール中

2020年 5月 9日 (土)

ゴミ

ちょっと近場に出掛けたら、途中のゴミ捨て場にファミコンの箱が・・・(´・ω・`)

ファミコンの箱が捨てられていた

Amazon

今回、32bit Windowsマシンの方は、玉突きでCPU・マザーボード・メモリがごそっと置き換わったわけですが、それでもLinuxデスクトップ時代から続く、起動に失敗する現象が発生しました。こりゃもうアレしかないなってことでAmazonでポチった電源が今日届いたんですが・・・

電源が届いたけど・・・

珍しく化粧箱に宛名とかが直接貼られた状態で届きましたw。Amazon販売でもこういうことあるのね。電源だから笑って許せるけど、ゲーム機本体とかでやらないでね・・・。

トワイライトプリンセスHD

トワプリHD、ついにハイラル城に突入し、ガノンを倒して終わってしまいました。面白かったなー。次は何をやろう。スカイウォードソードかな。でもこれ、Wiiリモコンで遊ぶタイトルなんで、バイクを漕ぎながら遊ぶには不向きっぽいんですよね・・・。うーん。

2020年 5月 8日 (金)

基板

昨日に続き、今日もCPS3のゼロキー版の命令抽出精度を上げるべく解析ツールを改善。さらにノイズが減ってくれました。しかし、やっぱり進みはするけど終わりはあるのかという疑問がつきまといますな、この活動・・・。

2020年 5月 7日 (木)

休み終わり

連休が終わってしまいましたなぁ。相変わらず在宅ワークは続いていますが・・・。

基板

CPS3のゼロキー版の命令抽出精度を上げるべく改良を進めている解析ツールを改善。ちょっとノイズ(命令候補として抽出されてしまうデータ列)が減ってくれました。

2020年 5月 6日 (水)

トワイライトプリンセスHD

トワイライトプリンセスHD、シナリオが(多分)ハイラル城を残すのみとなったので、ここ数日はミニゲームとかゴースト討伐とかハートのかけら集めとかを進めていました。が、もうハートも最大になっていて、ゴーストも全部倒しちゃったので、残すはハンコ集めくらい。大妖精のいる洞窟をもう1回やるのもしんどいし、そろそろ終わりかな・・・

PC

昨日、特に何もせず移行に成功したかと思えたWindows 10ですが、やっぱり何もしないのはまずかったらしく、再アクティベーションを求められました。一瞬焦りましたが、元のWindows 7のプロダクトキーを入力したら無事パス。ふぅ。

プロダクトキーの入力を求められて結構焦るなど

あと、メインのデスクトップWindows PCのRyzen化に伴い、64bit Windows 10マシンから外したパーツを32bit Windowsが入っているマシンに玉突きで導入してみました。元々ChipMaxのためだけの環境ですが、せっかくなのでGeForce GTX 750TiでもFolding@homeを動かそうかと思ったら、なぜかGPUが計算リソースとして表示されません。うーん、NVIDIAが32bit版 Windowsのサポートを終了した関係で新し目のドライバが入らず、そのせいで動いていないのかな? 別途Linuxでも入れれば動きそうですが、新しいマシンに比べるとパフォーマンス的に全然大したことないから、無理してFolding@homeを動かさなくてもいいか・・・。

というか、GeForce GTX 750Tiのカードを挿してしまうと、PCIのスロットにパラレルポートの拡張カードが挿さらなくなっちゃうんですよね(厳密に言うと挿さるんだけど、ビデオカードのファンやヒートシンクとの間隔が2〜3mmみたいな距離になってしまう)。パラレルポートはマザーボード上のコネクタから取ればいいかなぁ・・・と思ったら、手持ちのパラレルポート引き出し用のアダプタは、ケーブル長が短くてケースの拡張カードスロットまで届かないという別の問題が判明。仕方がないので3.5インチベイのカバーを外してそこから引き出しましたが、これはかっこ悪い・・・w

マザーボードからパラレルポートがケース背面に届かないので正面から引き出し

2020年 5月 5日 (火)

PC

メモリ以外のパーツも届いたので、さっそく入れ替えてみました。

残りのパーツ到着

CPUはRyzen 5 3600にしました。

Ryzen 5 3600

ケースと電源は再利用。ストレージや光学ドライブもとりあえず前のままで。

ケースや電源、ストレージは前のまま

マザーボードはGIGABYTEのB450M DS3H。カッコいい!

マザーボードはB450M DS3H

CPUを取り付けました。カッコいい!

CPU取り付けた

リテールファンを取り付け。カッコいい!

ファン取り付けた

ビデオカードは玄人志向のGF-GTX1650-E4GB/OC/DFです。元々使っていたGeForce GTX 750Ti搭載のやつ(写真右)と比べると、大きさのギャップが凄まじいですね・・・。

ビデオカードの大きさの違いが凄い

一通り組み込んで、起動することを確認。

起動を確認

そのまま特に何もせず、普通にWindows 10も起動しました。

Windows 10も起動

ちゃんとCPUも認識されています。便利な時代になったな・・・。

CPUも無事認識

その後、無事Folding@homeも動き出しました。これまでの環境 (Phenom II X6 1065T + GeForce GTX 750 Ti) の 3〜4倍くらいのスコアが出ていますね。凄い。

Folding@home始動

2020年 5月 4日 (月)

PC

先に注文しておいたDDR4のメモリだけ着荷w。とりあえず16GBです。それなりのブランドでちょっと高性能なやつだとは思うんですが、何故かこれより下のクラスの製品よりもちょっとお安かったり。

メモリが着荷

基板

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

CPicS2の袋詰め作業実施中。去年はこの時期、袋詰めしまくってたなぁ。

CPicS2袋詰め

REGZA

タブレットからYouTubeのライブ配信動画をREGZA Z700Xに飛ばして流しっぱなしにしていたら、REGZA側で「メモリ不足のため、コンテンツを表示できません。」なるメッセージが出て再生が切れました。メモリリークでもしてるんですかね・・・。

2020年5月31日から2020年5月1日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2020年5月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ