2023年8月21日から2023年8月17日までの日記を表示中

2023年 8月21日 (月)

ティアーズオブザキングダム

南の方を中心に洞窟を探して回って終わり。最近こんなのばかりですねw

基板

CPicSKが92636D-3で動かない問題、キーを書き込む際にトグルするBUSACKが何か悪さをしているのかもみたいな話があったので、汎用ロジック (74HC02) を使ってキーを書き終えるまでの間、外からはBUSACKがHに張り付いているように見えるような対策をしてみました。

キー書き込み中、PICがいじったBUSACKが漏れ出ないように対策

が、結果はNG。92636D-3 + D9K1 の組み合わせでは起動してくれませんでした。うーん、そう簡単にはいかないか。

2023年 8月20日 (日)

基板

マッスルボマーのDボード (Qサウンド基板) の電池レス化改造を戻し、CPicSKでの動作確認を行ってみます。

マッスルボマーの基板

マッスルボマーでは、メインCPUがKabukiのプログラムROMを (変なことしてないかのチェックのために) 頻繁に読みに来るという他のCPS1.5にない挙動をするため、その対策として、KabukiをZ80互換モードで動かす電池レス改造でも、復号したデータに加えて復号前のオリジナルのデータもROMに残しておき、メインCPUからアクセスがあった際には後者を見せるようにする必要があります。そんな事情もあって、2Mbitではなく4MbitのROMを使っているんですね。

復号済みのプログラムとオリジナルのプログラムが書かれた4MbitのROM

そして、ROMから復号済みのデータを出すか、復号前のデータを出すかは、Dボードやマザーボードから信号をいくつか引き出して判定することになります。まあ、そんな面倒な改造も今日で過去のものとなるわけですがw。というわけで、アドレスデコーダ用の信号を引き出すための配線を撤去します。

オリジナルのROMへのアクセスかどうかを判定するための信号取得箇所その1

オリジナルのROMへのアクセスかどうかを判定するための信号取得箇所その2

次にKABUKIのM1からプログラムROMの30番ピンへの配線を撤去し、31番ピンと合わせてHighに固定されるよう32番ピンと短絡させます (30番ピンは1Mbit ROMだとNCなので、もしかしたら31番ピンだけ処理しておけば十分なのかもしれませんが)。

プログラムROMの30番ピン・31番ピンを32番ピンと短絡

続いて、Z80互換モードになっているKABUKIを、復号機能が有効になった本来のモードに戻します。これはC12の短絡を解除して代わりにコンデンサを入れ、R33に抵抗を戻すことで、KABUKIの28番ピンをGNDから切り離して、電圧がかかるようにすればOKのはず。過去に撮った写真を見るとR33は1Ωらしいですが、さすがに手元にこの大きさのものはありません。まあ、ここは電圧がかかっていればいいはずなんで、KABUKIがメインCPUの基板と同様に1kΩを入れておくことにします。一方、C12については、オリジナルの容量は不明ですが、用途的にはパスコンだと思うので、0.1μFとかで良いと思われます。というわけで、修正してみました。0.1μFのチップコンデンサの手持ちが見つからなかったので、C12にはラジアルリードのものを取り付けていますw

KABUKIの28番ピンに電圧がかかるように修正

あとはROMをオリジナルの1Mbitのものに戻して、キーを書き込んだPICを搭載したCPicSKをCPUソケットに装着。

ROMをオリジナルの1Mbit品に戻す

KABUKIのところにはCPicSKを装着

Bボードとの干渉もありません。

Bボードとの干渉なし

いざ起動・・・動きました!やったね!CPicSKはCPS1.5でも問題なしです。

CPicSKでDボード動作

と思ったら、Dボードが初期のバージョンだと相性問題か何かがあってInfiniKeyは動かないらしいとの情報が。Dボードにバージョン違いなんてあったのか・・・。調べてみると92636D-3というのがあるようですね (今回確認したマッスルボマーのDボードは 92636D-5)。

まあしかし、そんなレアそうなもの、きっとうちにないだろうから確認のしようがないよなぁ・・・と思いつつ念のため2個ある天地を喰らうIIの片方を開けてみたら、何と92636D-3が入っていました。凄いw

うちにも92636D-3があった

早速こちらも電池レス化改造を戻してCPicSKを搭載してみましたが、ゲームは起動してくれませんでした。なるほど、CPicSKもダメということか・・・。

電池レス化改造を戻してCPicSKを搭載したけどゲームは起動せず

何かタイミングが合ってないとかなのかな。システムが先に起動しちゃうとか。それならPICによるキー書き込み速度を上げてやれば・・・と、可能な限り高速化してみたんですが、まったく上がる気配はありませんw

ググったところ、openkey-kabukiなる起動時キー書き込み装置を作っている方による調査の話が出てきました。 ここを見るに、openkey-kabukiでも同様に起動しなかったらしいですが、D9のところのPAL (D9K1) を92636D-5に搭載されているD9K2に交換することで起動するようになったとのこと。試しにマッスルボマーからD9K2を移植してみましょう。

92636D-3のD9K1

92636D-5のD9K2

D9K2を92636D-3に移植

おおお、確かにPALを交換するとCPicSKでも起動するようになりますね。

92636D-3もD9K2を載せたらCPicSKで動いた

そして先程のページをよく読むと、BUSACKなどのキー書き込み時に動いてしまう信号が影響しているのではないかみたいなことも書かれていますね。ふーむ。

ティアーズオブザキングダム

チンクルの装備が揃いました。その後もサトリの光を頼りに洞窟を巡ったり。

ヘッドホン

WH-1000XM3のイヤーパッドがだいぶボロボロになったので、Amazonで買った互換品と交換してみました。YOCOWOCOというところのやつです。

WH-1000XM3のイヤーパッド交換キット

WH-1000XM3のイヤーパッド交換キットの中身

ここまでバラさないとだめなんですね。付属のピック的な工具で余裕でしたが。

ここまで分解する必要あり

無事交換完了。普通に使えています。臭いや皮脂とお別れできてスッキリ。

交換完了

2023年 8月19日 (土)

ティアーズオブザキングダム

盗賊ラムダの財宝を探したりしてました。

スーファミ

新たに調達したジャンクのスーファミ本体 4台が到着。動作確認や改造は今手を付けている基板関係が落ち着いてからかなw

ジャンクのスーファミ本体

基板

海外有志が解析したCPS-B-21のドキュメントや回路図を見たりしてました。若干キーについての理解が深まった (気がする) のでメモとして残しておきます。

  • MAMEのCPS1のソースで用途不明となってるCボードのレジスタ3個のうち、2個はプロテクション用で、1個は乗算器の入力をunsignedからsigned (2の補数) 扱いにするフラグ用
  • プロテクション用のレジスタの一方 (CHECK1) に16bitの値を書き込んでも、その瞬間はなにも起きないが、内部でレジスタに保持される
  • プロテクション用のレジスタのもう一方 (CHECK2) に16bitの値を書き込むと、キーに含まれるCHECK2の期待値との比較が行われる。また、同時に、過去にCHECK1に書き込んだ値についても、キーに含まれるCHECK1の期待値との比較が行われる。
  • CHECK1もしくはCHECK2で期待値との不一致があった場合、CPS-B-21は一定フレーム後に描画系の機能を停止する。外から見ると、画面がブラックアウトした状態となる (昔電池レス化で何度もはまった現象)
  • キーの期待値は、Arcade Hacker氏の解説で用途不明となっていたフィールド16bit x2に含まれる
  • 期待値との比較はCHECK2へのWriteがトリガとなるので、CHECK2へのWriteがなければ、キーの期待値が何であろうとブラックアウトは起こらない
  • CPS1 Desuiciderでは、プログラムがCHECK2と思ってWriteしているレジスタ位置に何のレジスタもマップしないようにコンフィギュレーションすることで、プログラムの改変なしにブラックアウトを回避している
    • 回路的に、CPUがWriteしてきたアドレスに何のレジスタもマップされていなければ何も起こらない
    • CHECK2などのレジスタは、プログラム中で誰も触らない、安全なアドレスに置いておく
  • 同じくArcade Hacker氏の解説で用途不明となっていた後ろの方のフィールドはラスタ割り込み関連の設定用のレジスタのアドレスを決めるもの。CPS1では使われていないっぽい
  • CPS-IDのbit 6からbit 9の4bitはReadされた回数を示す (それ以外はキーに含まれるIDの値)

と、ここでふと疑問が。昨日自分がマッスルボマーのCボードに書いたキーは、MAMEのソースから作ったキーで、プログラムがアクセスしてくるCHECK1・CHECK2のアドレスに対して、律儀に実際のCHECK1・CHECK2をマップしてあります。一方でキーには正しい期待値を入れていません。そしてマッスルボマーは、動作中にCHECK1やCHECK2に対してWriteを行います。なのにブラックアウトせずに動き続けているのはなぜなんでしょう・・・。 追記: 後日、改めてArduinoのコードをよく見てみたところ、マッスルボマーに書いたキーは、CPS1 Desuicider 由来のものではないにしても、プログラムがCHECK1やCHECK2と思ってWriteしてくるところに何のレジスタもマップしていないものになっていました。うーん、自分で作ったものだと思うけど、全然記憶にないですね・・・(汗)

2023年 8月18日 (金)

基板

電池切れして起動しなくなってしまったマッスルボマー、電池交換せずにCボードにArduinoでキーを書き込んでみたら普通に起動しました。コンデンサのお陰で、電池がなくてもそこそこの時間はキーを保持できるんですな。というかこれ、意図して試そうとしたわけでなく、完全なうっかりミスの結果です。ゲームが起動してから何か間違ったことをしたということに気が付きました。いやー、大きな事故につながるようなミスでなくて良かった・・・(汗)

電池切れしたままの状態でキーを書き込み

それでも起動

あらためて切れた電池を外してソケットを取り付けて新品の電池を装着。キーを書き込んで無事起動することが確認できました。

電池をソケット化

改めてキーを書き直して起動確認

一方、ついでに実験で使おうと思っていた別のCボード (92631C-6を電池ありに改造したもの) は、Arduinoからキーを書き込んでも全然動作してくれませんでした。まあ、元々壊れかけていたやつ (起動せず超高温に→その後縦線が出る状態になったやつ) だったんで、いつ壊れても不思議はないですね。せっかくなので、別の壊れたCボード (90631C-5) と合わせてCPS-B-21を剥がし、いつでも配線を直接観察できるようにしましたw

故障した90631C-5と92631C-6からCPS-B-21を剥がした

コネクタ

AliExpressで買ったコネクタが届きました。今度はちゃんと間違えずに40ピンを買えましたw

40ピンコネクタ届いた

2023年 8月17日 (木)

基板

なかなか手を付けられなかったCPicS2のキットの袋詰めを終わらせました。今回の出荷先はBEEPさんになります。

袋詰め完了

ティアーズオブザキングダム

パトリシアちゃんに水の実を捧げたら座標っぽい数字を教えてくれたので、行ってみたらまだやってないチャレンジが。既に条件を満たしていたので、始まると同時に終わったんですが、これはやってないチャレンジの場所を教えてくれるってことなのかな。

基板

CPS1のCボードのCPS-B-21の103番ピンに入っているリセット信号がどこから来ているのかを追ったりしていました。マザーボードのCPS-A-01の105番ピンから出たのが、BボードのE4ピンを経由して来ているっぽいですね。なるほど・・・。

コントローラー

コントローラーを欲しがるお子様向けのデコイの市販品が届きましたw。先日のXbox 360のコントローラーのジャンクで作ったデコイも結構活躍してくれていますが、ちゃんとしたのも評価してみようかと思いw

バイリンガル・ゲームコントローラー

これ、結構いい音が鳴りますね。アナログスティックが噛み心地の良い歯固めになっていないところが惜しいw

2023年8月21日から2023年8月17日までの日記を表示中

中の人情報

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

カレンダー

2023年8月
    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件のコメント

過去ログ