29-May-2023
[ファミコン通信アダプタだけじゃなく]

ファミコンに関しては詳しくないのですが、ファミコン向けの通信アダプタに関しては野村證券/任天堂 vs マイクロコアで覇権を争っていたようですね。という訳でマイクロコアのTV-NETなるアダプタを入手してみました。アダプタをファミコンに差し込むと、TVnet Television Networkと書かれたロゴがこちらを向くようになっているようですが字が小さすぎてとても読めません…自分の年齢も年齢なので、老眼入ってきてるのかもしれませんけど。

timg_20230528_162747_412.jpg timg_20230528_162804_420.jpg timg_20230528_162836_465.jpg

という訳で分解です。カスタムチップを豊富に使った任天堂謹製の通信アダプタと違い、汎用的な部品で作ってみましたという、対照的な印象を受けます。

timg_20230528_163011_524.jpg timg_20230528_163048_029.jpg timg_20230528_163307_358.jpg timg_20230528_163328_256.jpg

繰り返しますが、ファミコンに関しては詳しくないので嘘書くかも…TV-NET MC/BS.P256-01がメインプログラムの収められたROMでμPD65013がバスコントローラみたいなもの、このコントローラに

がぶら下がっているように見えます。

漢字ROMがNEC製なのと、マイクロコアのweb page新聞・雑誌記事雑誌記事(1988〜1989)月刊マイコン1988年3月号(ICカード及び漢字搭載ファミコン用汎用通信アダプタ)などの記事を見るに、NECのJIS第一水準フォントが搭載されている可能性がありそうですが…全角数字の雰囲気は違うような気もします。

攻略対象が分かったので、あとはやることをやるだけ(ファミコン通信アダプタよりも難易度低いですし)、とはいえちょっとそれを今やっている余裕がないので将来のどこかでできたら良いですねとぶん投げます。56.5kg(22:35)

28-May-2023
[オギノパン近くの(2)]

28-Apr-2023の続き。愛川某所からこの鉄塔に架線されているのが見えたので、家族にちょっと無理を言って帰り道に寄らせてもらいました。

timg_20230528_144220_867.jpg timg_20230528_144352_762.jpg

timg_20230528_144403_521.jpg timg_20230528_144228_349.jpg

詳細に確認している時間はなかったので、これ以上の情報は得られていません。また何かの折に見に行って、路線名などが分かれば良いなと思っております。

…とはいえ、来月から所属店舗の変更があり(14-Feb-2022以来なので1年と少ししか居なかったことになる)、今までのような暮らしができなくなる可能性が高いためこまめに訪問することができるかどうかはかなり怪しいところです。

この辺りの路線は東海小倉線の絡みで割と注目されているような気がしますし、アクセスも極端に悪い訳ではありませんから(良いとは言いませんけど)、自分以外の誰かが見に行ってくれるだろうと期待しているというかどなたか後をよろしくお願いします。57.0kg(17:30)

23-May-2023
[詳細は書かないのですが]

前々から「とあるアダプタ」に付いている漢字ROMをひっぺがしてフォントデータを吸い出したいと思っていて、とあるアダプタ自体は手にしていたもののなかなかそこから先へ進むことはできず。そんな状況がもう何年も続いていたのですが、ネットの海を漂っているとデータを吸い出した方がいらっしゃるのを見つけました。

実機が手元にある以上そのデータを手にしても問題はなかろうということで、今回はそれを使って実験を行います。一応、グリフの一覧をきちんと並べた状態で眺めることができる程度までは、なんとか。

tnormal.png

最初にデータを眺めた時は、グリフのかけらが何一つ見えず途方に暮れる状態でした。この手のROMはアドレス線の繋ぎ方に細工して吸い出し対策をすることもあるという話をどこかで聞いていたので、こんなコードを書いて並べ直してみました。CPU側のアドレスを[17:0]とするなら、ROM側は[0:17]に対応するようなものです。これでそれっぽくは見えているのですが…

tsimple.png

グリフの並びがめちゃくちゃで、これをどう文字コードと対応付けるか再び途方に暮れることになりました。

一文字分のグリフをきちんと構成するためには、CPU側のアドレス[4:0]にROM側の[13:17]を対応付ける必要があります。残った部分でグリフの並びを決定しますから…CPU側の[17:5]をROM側の[0:12]に割り当てるのではダメなようなので、ROM側が[12:0]だったらどうなるかを試したところ、うまくいったという訳です。

自分自身が実際にチップから直接吸い出したデータで作業した訳ではないという注釈が必要になりますが、もし実際のROMがこのようなアドレス線の結線を必要とするのであれば、何故このような作りになっているのかという点に非常に興味があります。文字の並び(インデックス)とグリフのデータ(データ)を示すアドレス線の順番、おそらく自分の考える普通の技術者であればインデックスもデータもまとめてCPU側[17:0]→ROM側[0:17]にするものだと思います。[17:0]→[17:0]でないのはエンディアンの問題でしょうからそれは置いとくとして。

マスクROMの内容に問題があったと仮定しても、インデックスもしくはグリフのどこかのアドレス線が入れ替わる程度で、インデックスはインデックス、データはデータで綺麗に真逆になっているというのは…何らかの「意図」があるように感じてしまいます。

さて、基本的な調査は終わったので次はFONTX2化かと考えていたのですが、なんかあんまりやりたくないなーというのが正直なところです。半角の"@"に"00"が割り当てられているのを見てしまうと、昔はともかく今の御時世でそれは許容できないかなって。56.5kg(20:45)

24-May-2023補足:Famicom Network System - NESdev Wikiを見るに(ってこれで何を対象に実験していたかバレてしまいますね)、おそらく$40b0にインデックスのbit[12]を書き込んだ後にインデックスのbit[11:0]+$5000を32回読み出してグリフのデータを得る、そんな作りになっているようです。グリフ側のアドレスはRF5C66 Mapper and Disk Drive Controllerが握っているようなので、吸い出し対策というよりは単に「分担」の違いということになるのでしょう。

25-May-2023補足:半角の"@"(0x40)→"00"の他、"^"(0x5e)→"ガ"、"_"(0x5f)→"ギ"、"‘"(0x60)→"百"、"|"(0x7c)→"千"、"〜"(0x7e)→"グ"、(0x7f)→"ゲ"、(0xa0)→"ゴ"、"「"(0xa2)→"ザ"、"」"(0xa3)→"ジ"のグリフになっているため、半角の部分は変換してもそのままでは使い物にならない感じです(不足したグリフは適宜補う必要があります)。

29-May-2023補足:一応基板の所持証明ってことで、写真上げときますね。

timg_20230528_163801_569.jpg timg_20230528_163819_767.jpg

ROM外してないのにデータ所持してんじゃねえ、っていうツッコミに対しては流石に効力無いですけど。

20-May-2023
[crust-firmwareのビルド(多分失敗編)]

02-Feb-2021の続き。SCP(System Control Processor) firmwareたる、crust-firmwareのビルド・再び、です。Debian-12(RC1)でもor1kなツールチェインが使えるので、この上で作業しています。

git clone https://github.com/crust-firmware/crust; cd crust; make CROSS_COMPILE=or1k-elf-で、masterブランチをビルドします(v0.5はビルド中にエラーが発生して止まってしまいます)。以前と比べると☆を付けた質問が増えていたり、なくなっている質問があります。また、対象が同じものでも選択肢の番号が変わっていたりするので注意が必要です。

Platform selection
5. H6 (PLATFORM_H6)
HDMI CEC (CEC) ☆
n (default)
CIR (infrared) receiver (CIR)
n (default)
OSC24M clock source
1. DCXO (OSC24M_SRC_DCXO) (default)
I2C controller pin selection
1. None (I2C_PINS_NONE) (default) もしくは 2. PL0/PL1 (I2C_PINS_PL0_PL1)
Multi-function driver for X-Powers PMICs (MFD_AXP20X)
y
X-Powers PMIC variant
3. AXP805 (MFD_AXP805) (default)
GPIO-controlled CPU power supply (REGULATOR_GPIO_CPU)
n (default)
GPIO-controlled DRAM power supply (REGULATOR_GPIO_DRAM)
n (default)
GPIO-controlled VCC-PLL power supply (REGULATOR_GPIO_VCC_PLL) ☆
n (default)
GPIO-controlled VDD-SYS power supply (REGULATOR_GPIO_VDD_SYS)
n (default)
Silergy SY8106A voltage regulator (REGULATOR_SY8106A) ※I2C_PINS_NONE選択時は存在せず
n (default)
Serial input/output support (SERIAL)
y (default)
Device
1. UART0 (SERIAL_DEV_UART0) (default)
Watchdog timer ☆
1. Watchdog (R_WDOG) (WATCHDOG_SUN6I_A31_WDT)
Use PMIC for full hardware shutdown (PMIC_SHUTDOWN)
y (default)
Enable runtime assertion checking (ASSERT)
y (default)
Verbose logging of assertion failures (ASSERT_VERBOSE)
n (default)
Allow compiling a firmware that does not run (COMPILE_TEST)
n (default)
Compile the firmware with debug info (DEBUG_INFO)
y (default)
Print additional debug-level log messages (DEBUG_LOG)
n (default)
Provide an interactive debug monitor while off/asleep (DEBUG_MONITOR)
n (default)
Print average latency after each state transition (DEBUG_PRINT_LATENCY)
n (default)
Print the contents of Special Purpose Registers at boot (DEBUG_PRINT_SPRS)
n (default)
Record steps of the suspend/resume process in the RTC (DEBUG_RECORD_STEPS) ☆
n (default)
Verify DRAM contents after controller resume (DEBUG_VERIFY_DRAM) ☆
n (default)

大半はデフォルトのままで、必要なもののみ設定を変更しますが…Orange Pi One Plus(Allwinner H6)の場合はDevice Treeに定義されるPMICの接続がu-boot 2022.04まではI2C2022.10以降はRSBになっているので、これに合わせておく必要がありそうです。

質問回答後にビルドが始まり、得られたcrust/build/scp/scp.binをU-bootに組み込めば良いはずなのですが…組み込んでしまうとu-bootのresetコマンドで「System reset not supported on this platform」と表示されてリセットに失敗します。何かが足りていない可能性がありそうです。56.7kg(20:35)

14-May-2023
[イマドキのU-bootは]

どうもU-boot 2023.01以降はこんな風にして

SCP(crust-firmware)の所在を明記しないとビルドできなくなっています。とはいえ、buildrootのorangepi_zero_plus2_defconfigにあるようにSCP=/dev/nullが認められるので、SCPが必須になったという訳ではないようです。

久々にOrange Pi One Plus(Allwinner H6)を取り出してごそごそやっているんですが、以前動いていたはずなのにおっかしいなーという状況がいくつかあって、困惑しているところです。電源を切らずに再起動するとEthernet PHYを見失うのは、もうOrange Pi系はそういうもんだと認識するしかなさそうです(GPIO PD14によるリセットも試していますが、効果無いです)。56.1kg(22:30)

07-May-2023
[OCPL(Open Creation Public License)とは何だったのか]

http://www.opencreation.org/のweb archive(07-Fev-2006)を当たるのが適当なのだろうか。現状、web archiveを通さずに見られる話は

これくらい…あとはOTO-NETAの検索結果OCPL00000の世界(web archive)、湯島レコード運営ブログ(web archive)、OpenCreation Movement(OCM)メンバーの一人である中川一郎氏のnote辺りが参考になるのかどうか。

OCMの活動が2000年5月頃より始まり、Creative Commonsの設立が2001年1月(とWikipediaに記されている)…これらを見るに、大体同じような時期に似たような(?)試みが始まったことに対し、何故このような結果になったのかということに興味がある。56.2kg(17:20)

03-May-2023
[これは分からん…]

IPAフォントの古いもの(v002まで、IPAexフォントとは異なります)はビットマップフォントを持っていたよねということでどうやってインストールしたものか…と考えていたのですが、mixfont-mplus-ipaのportsにIPAフォント(v001)が含まれているようなのでこれをインストールしてみました。あとは、.Xdefaultsを適当に設定してこんな感じ。

IPAゴシックの場合:

20230503g.png

IPA明朝の場合:

20230503m.png

まったく区別が付かなかったのでスクリーンショットのxwdファイルをdiffしてみましたが…これが違うというのです。どうも"g"のグリフが違うようなのですが、それ以外に何か違いがあるのでしょうか?

とりあえず、小夏フォントの他にIPAゴシック/明朝という選択肢があることが分かったのでしばらくの間はこれらで何とかできそうです。55.8kg(21:45)