- 主作業は、Famicom/NES ROMダンパーと改造ポパイカートリッジを使ったYM2151実音源実験。
feature/ym2151ブランチで、YM2151制御、YM3012相当の音声復号、MDX/VGM再生、ステレオPWM出力、診断・ノイズ対策まで進めた。- 並行して、Find My互換のXIAO nRF52840ファームウェアと、M5Core2/XIAOを同時表示する地図ダッシュボードを更新した。
- Claude Codeとの共同作業として、13:25〜23:09に42コミットを作成。42件すべてに
Co-Authored-By: Claude Fable 5が記録されている。
- 時刻はすべてJST。
- 13:10頃〜17:22頃:Computer Historyの画面・操作記録を基に整理。
- 13:25〜23:09:
nes-rom-readerのGitコミット時刻とコミット内容を基に整理。 - Computer Historyに記録がない時間は、Gitで確定できる作業だけを記載し、空白時間を推測で補っていない。
- 13:10頃 — ログイン後、ローカルのFind My地図ダッシュボードを確認。
- 13:11頃 — ChromeでFamicom ROM DumperのWebSerial UIを開き、
cu.usbmodem1101へ接続。 - 13:12頃 — Mapper 0、PRG 32KB、CHR 8KBの設定でダンプ操作を開始。
- 13:13頃 — 保存ダイアログを開いてダンプ/セーブデータ保存フローを確認。
- 13:14頃 —
nes-rom-readerリポジトリを開き、基板v0.1のU674LVC245とDIR配線の調査を開始。 - 13:15頃 — EasyEDAを使わず、リポジトリ内の
.eprj2やファームウェア定義からU6 DIR、BUS_DIR、BOARD_REVを調査。 - 13:18頃 — U6 Pin 1がB→A方向へ固定されており、反転にはGNDからの切り離しとG40へのジャンパーが必要という案を検討。
- 13:20頃 — WebSerialへ再接続し、セーブデータとROMの読み出しを実行。
- 13:21頃 — SAVE CRC
D8F49994を確認。 - 13:22頃 — PRG CRC
8425EFEF、CHR CRC7F58C4F8を確認。 - 13:23頃 — YM2151をダンパー基板/カートリッジへ接続して鳴らすための新ブランチ作成をClaude Codeへ依頼。
- 13:25 —
98e832c:YM2151をカートリッジバス経由で制御する実験機能を追加。ファームv0.6、F/Y/Qコマンド、rev2ビルド環境、配線資料を実装。 - 13:30頃 — Xの通知、ホーム、
goromanのライブ検索結果、個別投稿を短時間確認。投稿操作は記録されていない。 - 13:40頃 —
feature/ym2151がmainのb757cbcから作成された新規ブランチであることを確認。 - 13:42頃 — ポパイNROMカートリッジのPRG ROM/CHR ROM ROMSELを切った構成で、YM2151を接続する配線を検討。
- 13:45頃 — YM2151のSO/SH1/SH2/φ1はデジタル出力であり、通常はYM3012などのDAC経路が必要と整理。
- 13:48頃 — NROMのROMピン、カートリッジエッジ、YM2151ピンの対応表を検討。
- 13:50頃 — ChatGPTでMapper 0/NROMのピンアサインを質問。
- 14:10頃 — iTerm2へ戻り、PRG ROMピンとカートリッジエッジ信号の配線表を確認。
- 14:20頃 — YM2151の
/CSがアクティブLowであること、ピンアサイン、YM3012をM5StampS3で代替できる可能性を検討。 - 14:30頃 —
findmy-webでXIAO nRF52840ファームウェアをUF2転送し、USBシリアル、BLE初期化、Find My ID、広告開始、LED GPIOを確認。 - 14:32頃 — M5Core2とXIAO nRF52840を同じ地図へ表示する複数アクセサリー対応を開始。
- 14:34頃 — FastAPI、React/MapLibre UI、CSS、README、テストを更新。
- 14:36頃 — Python構文確認、フロントエンドビルド、テストを実行。
- 14:38頃 — 古いAPIプロセスが残っていた問題を切り分け、再起動後に両アクセサリーの位置取得を確認。
- 14:40頃 — XIAOのLEDを「緑=正常、青=BLE活動、赤=エラー」に変更。ビルドとUF2転送を実施。
- 14:47 —
8bb0912:YM2151をアドレスバス書き込み方式へ変更。U6 DIR改造とBUS_DIR制御を不要にし、全基板リビジョンへ対応。 - 14:53 —
a5650e5:D0〜D7をCPU A0〜A7、YM2151 A0をCPU A8へ変更。PRG ROMの連続した足へ配線を集約。
- 15:00頃 —
/WR、/IC、φMをすべてROMソケット側から取れるか検討。φMだけは連続クロックが必要なため、M2/エッジ32から取る方針に決定。 - 15:07 —
e27fa86:YM2151の/WRと/ICを空きアドレス線A9/A10へ移動。カートリッジエッジへの追加配線をφMの1点へ削減。 - 15:10頃 — M5StampS3へYM2151対応ファームウェアを書き込み、
Vでfamidump v0.6を確認。 - 15:12頃 —
Yレジスタ書き込みによる音色設定と音階再生方法を確認。 - 15:15頃 — 「ドレミファソラシド」をループ再生するようClaude Codeへ依頼。
- 15:20 —
091acb4:QコマンドをC4〜C5のドレミファソラシド・ループ再生へ変更。 - 15:20 —
ba8888e:3.579545MHzのφM生成が4bit LEDCで失敗する問題を、3bit・50%デューティへ変更して修正。 - 15:22頃 — 実機で
F -> YMRDY、Q -> YMDEMODONE、V -> famidump v0.6相当の応答を確認。 - 15:26 —
d10f56c:電源投入後2秒以内にシリアル入力がなければ、自動でドレミ演奏を開始する機能を追加。 - 15:30頃 — YM2151のSOなどをアナログ回路へ直接つなげるか、YM3012配線を検索・検討。
- 15:40頃 — M5StampS3のPWM出力候補としてG44/G46とRCローパス、DCカットコンデンサ、アンプ経路を検討。
- 15:50頃 — G44/G46の物理位置と、M5StampS3ソケット上のはんだ付け候補を確認。
- 16:00頃 — YM3012相当のSO/SH1/φ1取り込みとPCM/PWM変換が未実装であることを確認し、実装開始を承認。
- 16:04 —
509d694:YM3012シミュレーションを実装。SO/SH1/φ1をCore 0で取り込み、9bit PWMとしてG46から再生。 - 16:10頃 —
Aコマンドの880Hzテスト音、G46出力、R1/R2分圧中点のはんだ位置を確認。 - 16:20 —
1644886:起動直後2秒間、G46へ880Hzテスト音を出してからYM2151自動演奏へ移る診断シーケンスを追加。 - 16:22頃 — ボード写真
IMG_9538.jpgをFinder/Previewで開き、配線位置の画像確認を依頼。 - 16:30頃 — 電源投入時のPWM確認、1µFコンデンサ、アンプ、GND、30kΩ抵抗の向きなどを確認。
- 16:31 —
deaab6d:起動時テストを880Hz単音から、G46単体のPWMドレミ1周へ変更。 - 16:40頃 — YM2151の音が出ない状況を受け、赤線、分圧抵抗、コンデンサ、アンプ、共通GNDを切り分け。
- 16:49 —
040cd1d:Dコマンドを追加。φ1/SH1/SOのエッジ数とキャプチャ統計を表示。 - 16:50頃 — M2/φM診断を強化し、ファームウェアを再ビルド、M5StampS3へ転送。
- 17:00頃 — 診断で電源、
/IC、レジスタ書き込み、SOを確認。SH1/φ1がキャプチャ入力へ届いていない状態を特定。 - 17:04 —
8bda9a4:音声PWMとφMのLEDCクロック源競合を修正。ESP-IDF APIでタイマーを明示し、実機でφMとSO出力を確認。 - 17:05頃 —
SO、SH1、φ1は接続していると伝え、物理配線と診断結果の不一致を調査。 - 17:10頃 — Pin 11周辺を疑い、はんだ付けをやり直す。
- 17:18頃 — 再はんだ付け後も同じ結果であることを確認。単純な接触不良より、YM2151 DIPピン番号の数え方や接続先の取り違えを疑う。
- 17:22頃 — Claude Codeへ追加確認を送り、Computer Historyの連続記録が終了。
- 17:29 —
0a6605f:φ1/SH1/SOの自動判別と/ICホールド診断を追加。CHR Pin 9の信号がφ1であることを実機診断。 - 17:42 —
1f97a18:起動時PWMドレミチェックを削除し、2秒待機後のYM自動演奏へ戻す。音声経路確認はAコマンドへ集約。
- 18:01 —
79e5b90:portable_mdxを取り込み、MDXから実YM2151を駆動する再生パイプラインを追加。Xストリームコマンド、1KB単位のACKフロー制御、ピッチ補正を実装。 - 18:03 —
26501bb:起動時の自動演奏を削除し、予期しない再起動を調べるためリセット理由表示を追加。 - 18:16 —
e328d55:Dedicated GPIOとフレーム検証へ移行。割り込み禁止によるIWDTクラッシュ、GPIO取りこぼし、LEDCタイマー衝突を修正。 - 18:28 —
d400a00:Ys IIエンディング2をファームへ埋め込み、電源ONで実YM2151から自動再生するスタンドアロン機能を追加。再起動原因を5Vサグと切り分け。 - 18:48 —
fc6e1dc:φMをX68000ネイティブの4MHzへ変更。以前の4MHz不動作はLEDC競合による誤診と判明。 - 18:56 —
8c9a8c7:実機検証済みの配線、YM3012シミュレーション、MDXパイプライン、既知の電源問題をdocs/ym2151.mdへ整理。
- 19:03 —
bbf5e86:内蔵曲をYs II「TO MAKE THE END OF BATTLE」へ変更。 - 19:17 —
f1fbeca:YM3012デコードをフル精度化し、1次ノイズシェーピング付き9bit PWMへ変更。採用率を約53%から97.6%へ改善。 - 19:20 —
2290ef2:mdxplay.py --tuneの既定値を4MHzへ修正し、不要な+1.92半音補正を解消。 - 19:22 —
b2cc6b2:負数左シフトの未定義動作、ノイズシェーパーのワインドアップ、クロック開始失敗処理を修正。 - 19:23 —
000a042:起動SEの音量を約20dB低減。 - 19:28 —
fc2ff2c:小さいストリームのACK待ち、φM周波数許容差検査、古いコメントとドキュメントを修正。 - 19:32 —
70b397f:VGM/VGZからYM2151コマンドを抽出するvgm2evt.pyを追加。ボスコニアン「Blast Power !」のイベント列を同梱。 - 19:46 —
1848072:シフトレジスタ書き込みをGPIO直接操作へ変更し、レジスタ書き込みを約6倍高速化。テンポのもたつきを軽減。 - 19:50 —
78f5910:SH2取り込みとL/R独立デコードを追加し、ステレオPWM出力へ拡張。 - 19:59 —
e0cbe2a:ステレオ出力をR=PPU/RD、L=/ROMSELへ確定。カートリッジ上で左右を取り出す構成に整理。
- 20:38 —
9a9ae4d:起動ごとに誤判定する自動信号判別を廃止。実測した固定割り当てへ変更。 - 20:40 —
d2362e3:Dedicated GPIOバンドルの配列順が崩れ、SHマスクがφ1を指していた問題を修正。 - 20:58 —
e46d5f5:アンプ負荷によるBrownoutを受け、Aテストトーンを小音量化し、PWM-L読み戻し診断を追加。
- 21:57 —
2fd3f66:L/R独立のデコード診断、実行時オフセット変更、生シフトレジスタ64ワードダンプを追加。左右差をアナログ経路側の問題と切り分け。
- 22:06 —
9a15c03:内蔵曲をボスコニアン「Flash Flash Flash」へ変更し、楽曲ヘッダ名を汎用化。 - 22:12 —
86b3432:不調なパッドを避け、SH2取り込み先をCHR ROM Pin 16/MD4/G8へ移動。 - 22:30 —
0761174:ステレオ時のフレーム検証窓を13〜17へ拡大。採用率を47%から約99%へ改善。 - 22:32 —
2afb275:ステレオ最終配線、SH2、PWM出力、診断コマンド、電源対策をdocs/ym2151.mdへ反映。 - 22:56 —
703850b:mdxplay.pyへ--loopオプションを追加。 - 22:58 —
732d144:L/R独立の3タップ・メディアンフィルタを追加し、EMI由来の単発スパイクノイズを除去。
- 23:05 —
37d4e01:1ビットずれフレーム補正、禁止指数e==0の破棄、ホットパス軽量化、メディアンフィルタの効果測定を追加。 - 23:09 —
ce17915:デコーダ安全性、VGMコマンド処理、元クロック自動認識、MDXループ停止処理、Ctrl-C時キーオフ、ドキュメント整合をまとめて修正。
- WebSerial ROMダンパーでSAVE/PRG/CHR読み出しとCRCを確認。
feature/ym2151ブランチを作成し、YM2151制御を実装。- U6改造不要のアドレスバス書き込み方式へ移行。
- YM3012相当のデジタル音声復号をM5StampS3へ実装。
- MDX/VGM/VGZから実YM2151を鳴らすパイプラインを構築。
- L/R独立のステレオPWM出力と診断機能を実装。
- Dedicated GPIO、フレーム検証、ノイズシェーピング、メディアンフィルタで音質を改善。
- M5Core2とXIAO nRF52840を同時表示するFind My地図UIを実装。
- XIAOのLED状態表示を緑/青/赤へ整理し、ファームウェアを転送。
- ステレオ左右差やノイズについて、RC回路、アンプ、電源経路を含む最終的な実聴・測定確認。
- アンプ負荷によるBrownout再発防止。必要に応じてアンプ電源の分離やバルクコンデンサを検討。
- 大量に取り込まれた
portable_mdx、SDL、ビルド済みオブジェクト、イベントデータについて、リポジトリ容量・ライセンス・再現ビルドの観点で整理。 - XIAOの新しいLED仕様について、最終書き込み後のシリアルログと目視確認。
- Find Myトラッカーの実消費電流測定。
- ブランチ:
feature/ym2151 - 開始地点:
b757cbc - 最初のClaude Code共同コミット:
98e832c(13:25) - 昨日の最終コミット:
ce17915(23:09) - 昨日のClaude Code共同コミット数:42