[Vectrex/光速船]Vectrex実機で動くソフトをClaude Codeに書いてもらった話

現在MAMEを改造してVectrexエミュの描画再現度を上げるために色々頑張ってるのだが、どうにもうまく行かない。実機の写真や動画を撮って比較しても良く分からない。

実機で様々な描画パラメータを指定できるテストプログラムが欲しいなと思いClaude Codeにお願いする。Vectrexにはサービス用にキャリブレーションパターンなどを表示する「Test Cart」ってソフトがあるので、これを参考にして作ってもらう。

Claude Codeに書いてもらうのは6809アセンブラニーモニック、LWTOOLSという6809開発ツールがあるのでサクッとビルドしてクロスアセンブラの実行ファイルのパスをClaude Codeに渡すとアセンブルからROMサイズチェックを通すための4KBバウンダリに整える処理までやってくれた。

「Test Cart」の一部画面で描画パラメータを色々と変えられるソフトを作るために試行錯誤して、なんとかMAME上で動作した。これをVecMultiに書き込んで実機に持っていくも動かない、ううむ。

またClaude Codeに相談して、一個ずつ実験コードを書いて実機で検証を繰り返してなんとか実機で動作するところまで持っていけた。ここまで結構大変だったけどちゃんと動く、凄い。

作った画面は固定画面で、蛍光面での残像チェックもやっておきたいので追加で新規ソフトを作ってもらった。Claude Codeに指示したプロンプトは下記の通り

実機での蛍光面の表示残光をチェックするソフトを作りたい、案は下記の通り。プランを提案してください
・ボールが一個直線に動き、画面端にぶつかると跳ね返る。角度はさほど細かくなくてもいいが最低でも30度以下にはしたい
・軌跡をランダムにするため跳ね返り角度はある程度の乱数要素を加味
・ボタン1でボールのIntensityを調整($0f->$7fまで段階)
・ボタン2でボールのSCALEを調整($0f->$ffまで段階)
・ボタン3でボールの速度を調整
・ボタン4でボールの大きさを調整、最小でドット、それ以外は直線で構成された菱形とする
・跳ね返る時に音が欲しい
・Intensity,SCALE,Speed,Sizeの数値を表示、数値のみでOK
他に案があるか、または実現が難しい要素があればその都度相談

コレ一発で実機で動く奴が出てきた。ボールが想定よりずっとデカかったのでサイズだけ調整してもらって、それを実機で動かして撮影したのが下の動画。

Vectrex 蛍光管軌跡確認テスト

ボタン1と2でボールの輝度・描画スケールを調整、3と4で速度と大きさを調整。Claude Codeマジすごいね、パラメータによってはモニタが焼けそうなくらい眩しく光るけど動画じゃ伝わらない。

改めてVectrexの内部構造を把握したけどコレをプログラミングするのは相当しんどい。コストを抑えるには仕方がないんだけど、ベクターRAMから描画するサブプロセッサがあれば全然違っただろうに。

今回はVecMultiがあるから実機で動かすにはmicroSDにコピーするだけで楽だったけど、STARWARS基板+カラーベクターモニタでも同じような事がやりたいんだよな、でもROM交換はすごいめんどくさい。こういう時にラズパイPicoで書き込みできるROMシミュレータが便利なのだろうか、調べるか?

[備忘録]eSIMx2のMNP契約でちょっと苦労した話

現在のスマホ回線契約は物理SIMで契約しているLinksMate(ドコモ系MVNO)とeSIM契約の楽天モバイル。

ドコモは音声通話は繋がるけどパケットはもう絶望的なくらい落ちてこないし、楽天モバイルもAuローミングが停止されてあちこちから悲鳴が聞こえてくる。札幌での楽天モバイルはまだ繋がる方だけど、さらに悪化する気がする。

そんな訳で回線契約を一気に変えてしまう事を決意。まずはLinksMateからLINEMO(ソフトバンク系MVNO)にMNP。LinksMate側のMNP予約番号は昨日のうちに発行済み。

移行先はeSIMにしたのだがなんか変、どうもLinksMateのSIM設定に上書きされてる? 仕方が無いのでLinksMateの物理SIMを抜いて再設定、APNプロファイルのインストールをして繋がって一安心。

もうLINEMO一本で良い気もするけどpovo2.0を試してみたい気持ちもあるのでこちらも楽天モバイルからMNP。しかし楽天モバイルでMNP予約番号を発行するのにワンタイムパスワードが必要なのだが届かない、なんで?

困ったので楽天モバイルのチャットサービスに繋げる。その場でMNP予約番号を出してくれて有難い。povo2.0のMNP続きをするもおかしい。楽天モバイルのeSIM設定にpovo2.0のeSIM設定が上書きされてる?

嫌になってきたので一回楽天モバイルのeSIM設定を削除してpovo2.0でeSIM再発行、本人確認が必要なのでeKYCでマイナンバーカードと自撮りを撮影してしばし待つ。30分くらい待って「本人認証できませんでした」って何故。

仕方が無いので二回目の本人認証、今回は運転免許証でチャレンジ。今度は上手く行ったのでeSIMを登録するもアクティベートが終わらない。昼休みに入ったので仮眠を取ったけど全然終わらない。

調べたらAPNプロファイルが悪さをしているって話がある。LINEMOのAPNプロファイルを削除したらアクティベートが通った。なんなんだコレ。LINEMOのAPNプロファイルは再インストールしておく。

しかしアクティベートが通ったけど回線が圏外のまんま。会社借用スマホはAu回線でアンテナはバリバリに立ってるので本当に圏外って事はあるまい。結局povo2.0のチャットサポートに繋げたら「他社のAPNプロファイルを削除してください」と言われる。言われる通りにLINEMOのAPNプロファイルを削除したら圏外から復帰した! 何だコレ。

これで一安心かと思ってLINEMOのAPNプロファイルを再インストールしたら、またpovo2.0が圏外になる。悩んだ末にLINEMOのモバイル通信をOFFにしているのが悪いと推測して、LINEMOのAPNプロファイルを削除してLINEMOとpovo2.0のモバイル通信を両方ともON、そこでLINEMOのAPNプロファイルをインストールしたら今度こそ成功した模様。

再起動したらまたpovo2.0が繋がらなくなるんじゃないかと思ったが、そんなことはない模様。一応安定したか? povo2.0は180日間有効の1GBトッピング1,260円を購入しておいた。半年間の回線保持はコレで行けると。必要になったらトッピングを買い足せばいい。

「povo2.0だけで良いんと違うか?」って言われそうだけど、久々にソフトバンク系の回線を試してみたくなったのです。ベストプランVだと月30GBまで使えて3,000円弱なのでpovo2.0とあんまし変わらんし。月30GBあれば足りるのは楽天モバイルを使って分かった。

eSIMはなんか嫌われてるなとは思ったけど、eSIMそのものが悪いんじゃなくて、iOSが既存SIM設定の上書きを無条件でやっちゃうのと、APNプロファイルで複数SIMへの対応がちゃんと出来てないのが根本的な問題だと思う。

あと各通信会社で「回線が繋がったらこの番号にかけて通話を確認」ってのがあるけど、あれの番号って通信会社ごとに別々のローカルサービスなんだね。なので対応してない通信会社のサービスにかけると繋がらなかったりする。ちょっと混乱した。