空のボードとプログラマ
2026-09-13、較正 ROM ができた日、そのチップが届く前にベンチで撮影した。各ボードが何であるかは自身のシルクスクリーンから読んだもので、それが cal.nes にとって何を意味するかを書く。cal.nes は NROM イメージで、プログラム 32 KiB とタイル 8 KiB (build-the-cal-cart.md)。ここにあるものは、まだ半田付けもプログラム書き込みもされていない。それが calibration-plan.md にある C0 の、開いたままの半分だ。
ディスクリートマッパーのボードと、マッパー 30 のボード

NES CART PCB, DISCRETE MAPPER BOARD, v3.3 と刻まれたボードが二枚。CHR ROM と PRG ROM のフットプリント、CIC、三つのロジック部品 (74'02、74'161、74'32) で、それぞれの行にはどのマッパー用かが記されている (AxROM、UxROM、"all but NROM")、H と V の記された ミラーリングのジャンパ、そしてボードが受け取るマッパー一族を表す文字の列 (B、C、G、N、U)。較正カートリッジにはこのボードを使う (オーナーのビルド仕様、2026-09-14): NROM はロジック部品を一つも実装しなくてよいので、U5 から U7 は空のまま。ROM の位置は二つ、CHR が U3、PRG が U4 で、どちらも SST39SF040 (512 KiB の 5 V パラレルフラッシュ)、イメージを敷き詰めて埋める (tools/nesprep.py、チュートリアルの第 8 節)。このコンソールのロックアウトは無効化済みなので、CIC の位置 U2 は空のまま。H/V のジャンパはファイルのミラーリングビットに従って垂直で、このボードではそれは H と記されたパッドだ (文字は逆で、言葉は逆ではない: cal-cart-build.md。ほかのジャンパもすべて、両面とも、そこにある)。
その二枚の間にあるのは NES CART PCB, MAPPER 30, v1.2 と刻まれたボードで、74HC139、74HC377、74HC32 を載せ、CHR RAM のフットプリントには 8 KB、16 KB、32 KB と記されている。この ROM 用ではない。マッパー 30 はフラッシュと CHR RAM のボードだ。
SxROM のボード

NES CART PCB (SxROM), v3.1: MMC1 と AX5904 と記された MMC1 の位置、WRAM のフットプリント、セーブ RAM 用の CR2032 ホルダ、CHR と PRG の ROM、そして CIC。ゲームのボードで、テストのボードではない。較正 ROM をこれで動かすならマッパーのレジスタを書かねばならないが、あの ROM はそれをしない。
プログラマ用の EPROM アダプタ

mousebitelabs.com の v3.2 のアダプタ。TL866 系プログラマのソケットに挿し、42 ピン (27C322、27C160、27C800) と 40 ピン (27C400) の EPROM を受ける。EPROM はソケットの下寄りに置くよう指示が書かれ、A20、A19、A18 のスイッチには ON と OFF の位置が記されている。あれらはバンク切り替えのボード用の大きな部品だ。このカートリッジが使う SST39SF040 は 32 ピンの DIP で、アダプタ無しでプログラマ自身のソケットに収まる。
プログラマ

XGecu Pro (TL866 一族。TL866II Plus として認識される、実測 2026-09-30) に 40 ピンの ZIF ソケット、USB ケーブル、付属のジャンパ線二本。tools/nesprep.py が cal.nes から作る二つのイメージを ROM に書き込むのは、これだ。
まだ分かっていないこと
- チップそのもの: 2026-09-30 にベンチに届き、その晩に一つ目を書き込んだ。
そこからの組み立ては
cal-cart-build.mdにあり、それ以後に撮った部品の 名前もそこにある。 - 完成したカートリッジをリーダーで吸い出したもの。その本体の crc32 は
21091B99でなければならない (実測 2026-09-13、書き出したファイルの上で)。
ビルド時に nes-bench/docs/cart-blanks.md から取り込まれる。リポジトリが唯一の写しだ。報告書は独自の作業用語をいくつか使っている: 報告書で使われる言葉。