2023年8月24日から2023年8月20日までの日記を表示中

2023年 8月24日 (木)

Unicode

Emacs 29.1だと、Emacs 26系でうまく機能していたeaw.elによるEAWな文字の幅設定が反映されない模様。29.1のEmacsのソースを真似して.emacs内で直接設定してみたら反映されるようになりました。どちらもchar-width-table に設定しているだけのはずなんですが、何で従来手法だと無視されるのかはよくわからず・・・。

まあしかし、これをやってもTermux内でEmacs-29.1を上げると、Unicodeの合字がある場合にカーソル位置がずれたり表示が崩れたりするのは相変わらず。ファイルを開いた時点で表示がおかしかったりするレベルです。Xでウィンドウとして開くと問題ないので、ターミナル内で動作しているときに正しく処理できない感じなんですかね。

Vimでは正しく処理できるのに・・・というところはちょっと悔しいですが (嘘)、正直普段の使い方では合字が表示できなくてもまったく問題なく、Mozcが変換候補に混ぜてきたときにuim-elの表示が崩れるのが嫌なだけなので、.emacsに以下を記載して、ターミナルで動く際は常時合字をオフにすることにしました。フォントとしては表示できるのでちょっともったいないけどw

  (if (not window-system)
	(global-auto-composition-mode 0))

この設定にしておけば、Emacs-26をTermux内で上げた場合でも問題なさそうです。

基板

CPicSKが CPS1.5の92636D-3 + D9K1の組み合わせだと正常動作しない問題、あまりに原因がわからないので、一旦従来方式の電池レス (2MbitのROMに置き換えて、Kabukiを通常のZ80として動かすやつ) に戻して、信号の観測や実験なんかを行ってみることにしました。

とはいえ、また基板ガワを改造するのは嫌なので、ポン付けで従来型の電池レス化を実現するセットを作成。ROM側は、先日マッスルボマーから外した4Mbit ROM用の基板を手直しして再利用していますw。また、Kabuki側の配線入れ替えには、CPicSKの基板に手を加えたものを使用。

ポン付けで従来型電池レス化状態にできるセットを作成

取り付け

KABUKI側に入るリセット信号については、プルダウンしつつ、基板からのリセット信号の入力との間にスライドスイッチを入れてみました。これでリセットを手動で解除する実験が可能になります。

リセットを手動解除できるように

ひとまずスライドスイッチはオンにしたままの状態で電源ON。92636D-3で普通に起動しました。

とりあえず起動

続いて一旦電源を切って、スライドスイッチをオフ (リセット信号をLow固定) にした状態で起動し、数秒後にスライドスイッチをオンにしてリセットを解除 (厳密には基板側から来ているリセット信号をKABUKIに接続) してみたところ・・・

これも問題なく起動しました。つまりリセット解除が遅いこと自体は、92636D-3での起動に何の影響もないようです。そうであるなら、むしろシステム側の起動が終わってから、信号が漏れ出ないようにした上でKABUKIをコンフィギュレーションし、その後KABUKIのリセットを解除する、という流れでも良いのかも?

2023年 8月23日 (水)

Unicode

今度はuim-elでMozcが合字 (リガチャ) を含む変換候補を出すと表示がずれてしまうということに気がついてしまいましたw。で、Emacsを29.1に上げるとX上では大丈夫そうですが、ターミナル内だとTermuxでもやっぱりだめ。Termux上でもVimだとずれることなく合字を処理できるので、Emacs固有の何かがありそうです。

ちなみに、Emacsを29.1に上げたらuim-elで使っている関数が廃止されてしまったようで、process-kill-without-query と set-face-underline-p でエラーが出るようにw。ひとまず .emacs に以下を書いておけば大丈夫そうですね。

  (when (>= emacs-major-version 27)
    (defun process-kill-without-query (process &optional flag)
      (set-process-query-on-exit-flag process nil)
      t))

  (when (>= emacs-major-version 27)
    (defun set-face-underline-p (face underline &optional frame)
      (set-face-underline face underline frame)
      t))

さて、どうしよう。正直、IMEで合字を平然と変換候補に出しちゃうのはどうなんだという気もしなくもないですが (しかも「どうぶつ」みたいな普通の単語で)、まあ今日日、まともに合字を表示できない環境の方がおかしいか・・・。

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

今日はゲルド地方を中心に洞窟巡り。

基板

92636D-3 + D9K1 の組み合わせだとCPicSKでゲームが起動しない問題、ROMボードをつけずに電源投入直後の信号変化などをロジアナで観測したりしていますが、特に新たな発見があるわけでもなく・・・。うーん。

ロジアナで観測してみたけど進展なし

ちなみに、もう一枚ある天地を喰らうIIを開けてみたところ、こちらのDボードは92636D-5でした。92636D-3が手元に合ったのは結構ラッキーだったのかも・・・。

もう一枚の天地を喰らうIIは92636D-5だった

2023年 8月22日 (火)

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

今日は北西の雪山を中心に洞窟を巡ってました。

基板

92636D-3 + D9K1 の組み合わせだとCPicSKでゲームが起動しない問題を追っています。よく考えたら、キーの書き込みでトグルさせるM1信号も、基板上で引き回されていて、別のPALの入力になっていたりするんで、これもフィルタしておかないと内部的におかしいことになるのかもしれませんな。というわけで、同じようにキー書き込み時に漏れ出ないように対策。

M1もフィルタしてみた

が、相変わらず起動してくれませんでした。もちろん、PALをD9K2に交換すると起動します。

ロジアナで信号を確認してみたところ、基板側がKABUKIのリセットを解除するよりもずっと早くPICがキーを書き終えていました。つまり、KABUKI側の立ち上がりが遅いのが問題というわけでもないということに。うーん、何だ。

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月24日から2023年8月20日までの日記を表示中

中の人情報

名前:
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件のコメント

過去ログ