日経ソフトウエア2021年3月号(ファミコン特集最終回)

2021年1月22日発売の雑誌「日経ソフトウエア2021年3月号」で

特集「ファミコンで動くゲームを作ろう 第3部」

連載「ゲームプログラミング質問箱 第2回」

の2件の記事を書かせて頂きました。

今回でファミコン特集は最終回です。隔月の発行なので、完結まで4か月もかかってしまいました。

これに関連して、基板のCADデータを公開しました。↓

sites.google.com

 

ファミコンソフトのソースコードは雑誌の公式サイトで配布しています。「詳細」というリンクの先にあります。ダウンロードできるのが雑誌が出てから2か月間だけいうムチャな仕様なので、早く落としたほうがいいです。

info.nikkeibp.co.jp

 

f:id:nicotakuya:20210123223726j:plain

読者プレゼント

読者プレゼントのカートリッジ基板です。実機のファミコンで動作チェック済みです。

 

f:id:nicotakuya:20201219134251j:plain

ファミコンのカートリッジ基板(日経ソフトウエア2021年3月号)

カートリッジ基板。この写真の状態が裏側です。挿し込む時、裏表を間違えないように注意しないといけません。事故が起きたら怖いので、念のためヒューズを付けてます。

この前に作った1号機はMMC1(Mapper1の特殊チップ)とバッテリバックアップRAMに対応できるように設計してありましたが、MMC1が入手できず作業が止まっています。中国製のチップは合法か不明なので怖くて買えません。

今回の雑誌掲載版(2号機)ではこれらの機能を削って、Mapper0専用にしました。サイズが6mm縮小しました。

このカートリッジ基板は通常と違ってCHR-RAMを採用しています。そのため、PRG-ROMの32KBのうちの8KBをキャラクタ用に使ってしまいます。容量をムダになってカッコ悪いのですが、作りやすさと使いやすさを優先しています。独自仕様なので、市販のゲームのROMイメージを書き込んだら動いてしまうということはありません。

 

f:id:nicotakuya:20210123220221j:plain

フラッシュメモリライター

カートリッジ基板にプログラムを書き込むためのライターです。ラズパイに接続して使います。個人的な趣味でPi STARTERを使って動かしています。
 

福場龍夫さんの話

福場龍夫さんのことを書かなきゃ、と思って、もう13年経ってしまいました。どう書いていいかわからず、手が止まってました。結果、このページになりました。

自分が福場さんと知り合った時期はハッキリ思い出せないです。その昔、電波新聞社「新しい雑誌」の会議を何度も繰り返していて、そこでお知り合いになったと思います。2006年か2007年あたりかと思います。

会議は高確率でBCLの話題で盛り上がるのですが、自分は世代が違うので、よく置いてけぼりになりました。福場さんはワイヤレス式のハンダこてとか、軍用無線機をプッシュしてました。自分が「本気の電子工作」という本を引き合いに出したら、福場さんから「それ私が作った本ですよ」との返事がきて驚きました。

 

f:id:nicotakuya:20210118171712j:plain

福場さんの名刺

福場さんから頂いた名刺がこちら。会社名も肩書もありません。白いです。相当なバイク好きだったみたいで、メールアドレスがバイクの型番になってました。

 その「新しい雑誌」の企画と並行して、「電池の本」を出すという企画がありました。2008年1~2月あたりだったと思います。

 福場さんが編集で、 私が太陽電池と充電池の電子工作のパートの記事担当ということで、何度か私の家(会社)まで来てくれました。

 

f:id:nicotakuya:20210116043726j:plain

福場さんから頂いたHP200LX

だいたいが電話してから突然やってきて、長々と雑談するというパターン。たい焼きとか肉まんとかペット入りの温かいお茶とかを「差し入れです!」と明るい笑顔で持ってくる。

「小さいコンピュータを持ってるのですが、いりますか!」という話になって、HP200LXを頂いたこともあります。わりといい歳なのに、明るい、気前がいい、ノリが学生という印象でした。

  

f:id:nicotakuya:20210116203922j:plain

人から借りっぱなしのバッ活

雑談中、何かの拍子で、福場さんが「バックアップ活用テクニックという本を出していた」という話になって、自分が「ここにありますよ」とバッ活(人から借りっぱなしのやつ)を見せたら、「なんで持っているんですか!?」と驚いてくれたことがあります。この時の福場さんの心底嬉しそうな顔を覚えてます。 初代編集長だったのは後で知りました。

そして、2008年の2月ごろだったと思うのですが、事件が起きます。自分は電池の本の原稿を半分くらいを送っていた状態でした。福場さんが家まで打ち合わせに来てくれていました。自分がいつもどおり雑談でもしようかと思ったところで、福場さんが「あ、ごめんなさい」といって、会話が中断。

それから、福場さんが「朝から具合が悪くて。今日はすぐ帰ります。いやー、寝違えちゃってー、、、」と言いつつ、帰りました。この時、自分は、ああ具合が悪かったのか、というくらいの反応でした。その後、人づてに聞いたのは、福場さんがご病気で倒れられたということ。この件は思い出すことを拒否したり、思い出したりの繰り返しです。

あの時の福場さんはどうだったのか? 「寝違えちゃって」と重々しく言いながら首に手を当てている様子とか、いつもと全く違っていた場の雰囲気、深刻で暗い表情が、今も目に浮かびます。あの時の「寝違えた」というのは間違いだった。きっかけが自分の仕事だったと思うと、やりきれない。

福場さんたちと何度か会議を重ねていた「新しい雑誌」は、5か月くらい後に出来上がりました。「電子工作マガジン」です。

あと、「電池の本」の企画は編集を替えて、2008年の12月ごろに再開しましたが、自分の書いた原稿と作品は全部ボツになりました。

あとで、人づてに聞いた話では、その昔、福場さんは元は電波新聞社に居たが、いろいろあって三才ブックスに転職したとのこと。「いろいろあった」部分は触れませんが、移るきっかけは、BCLの神様的な存在だった山田耕嗣さんの紹介だったとのこと。

あの件以来、福場さんの業績はもっと知られるべきだ、と心に留めていました。 

偶然気が付いたのが、1994年発行の「バックアップ活用テクニック総集編パート2」「バッ活 創刊ウラ話」 という記事。これにバッ活の思い出話が4ページほど載っています。記事を書いたのは誌面で大々々活躍していた丹治佐一.さん(名前の最後に点を付ける)。バッ活は8年間で全38冊が発行されました。重要なのが、以下のくだり、、、

ここでバラしてしまいますが、編集F氏(現在では三才ブックスの中でとても偉い人になってしまった)と筆者とは、別の出版社からの付き合いで、現在(94年)で16年ほどにもなります。筆者の仲間と一緒に遊んでいる内に、 筆者と同じ町内に引っ越してきてしまったというほど、仕事を離れてのプライベートでの付き合いも多く、遊んでいるのか仕事をしているのか、時にわからなくなってしまいます。バカ話から生まれた企画も数多くあります。

ここで書かれている「F氏」とは福場さんのことで、「別の出版社」とは電波新聞社のこと。「偉い人」とは編集長よりも上のポストになっているという意味です。

丹治さんは秋葉原マイコンショップ「X1」に入り浸っていたところをスカウトされて、「ラジオの製作」の1979年6月号の特集でデビューしています。「16年」を「16年目」と解釈すると1979年になるので、掲載時期と一致します。これが、福場さんが電波新聞社で「ラジオの製作」の編集をやっていたという証拠になる、はず。

1980年当時、三才ブックスは雑誌「ラジオライフ」を出していました。ラジオライフは普通の雑誌でしたが、90年代あたりで盗聴とか偽造ネタを扱い始めてどんどんアングラ化します。今も売ってます。

以下のページで福場さんを確認できます。「ラジオライフ1981年11月号」の編集後記、、、

「ボク、新入社員のFです。」というわけで、汗をかきながら 編集後記を書いています。ところで、今月号の業務無線特集はいかがでしたか?!アマチュア無線のことしか知らなかったボクにとって、未知の電波との遭遇ともいえる業務無線の世界には、 驚きと冒険の連続です。特集を読まれた読者の皆さんが、ボクと同じ驚きを実体験していただければ幸いです。11月号より編集部員の一人となりましたのも無線というすばらしい趣味を持 つ者同志の縁といえましょう。全力をつくし、楽しい記事、耳よりな記事を編集していくつもりです。皆さまの応援のほど、よろしくお願いします。(F)

この新入社員「F」が福場さん。この時はイニシャルですが、1982年12月号から実名になります。1981年11月号(10月売り)ということは、入社時期は1981年9月あたりでしょうか?

編集後記の一番左上に福場さんが載るのが1983年9月号。これ以降、編集長になったと思います。それを裏付けるのが、ラジオライフ1985年1月号」の編集後記、、、

編集長が替わります。一昨年の夏この仕事につき、1年以上にたちます。短すぎるのではと思われるかも知れませんが、 RLのモットー”いつもフレッシュな情報を提供する”ためには、若返りも不可欠!!私よりン歳も若い甕岡部員へのタッチは次号からです。若々しく充実した記事をこれまで以上に楽しんで頂けると思います。つきましては、ご指導、ご鞭撻の程、お願いいたします。(福場

知らない間に編集長になって、もう交替のお知らせです。この後、バッ活の編集長になります

 

以上のことから、福場さんのお仕事をまとめてみました。

*抜けている部分はあとで足して、 間違いがあったら直したいと思います。

 

・~ 1981年?月:「ラジオの製作」の編集

・1981年9月あたり?~1984年末:「ラジオライフ」編集/編集長

・(1981年11月号~1983年8月号)「ラジオライフ」編集

・(1983年9月号~1985年1月号)「ラジオライフ」編集長

1984年11月発行:「魅惑の軍用無線機」編集。

・1985年7月15日発行~:「バックアップ活用テクニック1」編集長

 

あと、検索したら出てきた情報が、以下の通りです。

・1989年:「PC-9801(&PC-286)活用テクニック」編集。
・?:「PC-9801(&PC-286)活用テクニック2」編集。
・1990年:「PC-9801(&PC-98NOTE)活用テクニック3」編集。
・1990年:「PC-9801(&PC-98NOTE)活用テクニック4」編集。
・?:「PC-9801(&386NOTE A)活用テクニック5」編集。

・2006年:「本気の電子工作」編集、「インターネットをトラブルゼロでいつも快適に使う本」著者

 ・2007年:「新スピーカーの完全自作2」著者、「最新LED活用工作ガイド」著者

 

個人的に一番知りたいのは、ラ製付録だったベーマガ(1981年5月号~)に福場さんが関わっていたかどうかですが、どうなのでしょう?

福場さんの業績はもっと知られるべきだと思います。

 

 

 

イーロン・マスクさんの自作ゲーム

昔、イーロン・マスクさんが自作のゲームを雑誌に投稿したことがある。

5年前に出版された「Elon Musk:Tesla,SpaceX,and the Quest for a Fantastic Future」という本に書かれていて、世間ではよく知られているみたいです。

検索しても一杯出てきます。

archive.org

これによると、13歳の時(1984年)、「PC and Office Technology」という雑誌にゲームのソースが掲載されたとのこと。こんなゲームで遊んでいた少年がのちに億万長者になった、というのが夢がありすぎです

機種はスペクトラビデオの「SV-318」または「SV-328」。どちらか知りませんが、裕福だったので、おそらくSV-328ですね。イーロン・マスクさんはアメリカの大学に進むまで南アフリカにお住まいでしたが、そこでもSV-328は売っていたようです。

ソースを見ると、スプライトの命令があったり、ものすごく「MSX-BASIC」っぽいのですが、MSXではありません。

SV-328はMSXの原型になったパソコンです。

  

www.samdal.com

これによると、本体の製造はBondwellが担当。これは、設計も担当していたということでしょうか。Bondwellは自社ブランドのパソコンもいくつか出していて、1994年くらいまでは会社が存在していたようです。

BASICはマイクロソフト製。当時はBIOSもBASICも一体になっていました。BIOSの仕様はMSXとの完全な互換性はありません。

f:id:nicotakuya:20210114044010p:plain

openMSXはSV-328にも対応している(ROMが必要)

MSXエミュレータ「openMSX」の画面です。SV-328のROMがあったら動かせるみたいですが、持ってないので諦めました。

あと、上記のページに「1984年にスペクトラビデオがマイクロソフトにSV-328のハードウェア技術をライセンス供給(売った)」と書かれてます。MSXのハードがゼロから立ち上げたものではなく、他社製品の流用だったという事実。MS-DOS誕生の歴史みたいなことになってます。

時系列はこんな感じでしょうか。

・1983年1月 「SV-318」発表

・1983年6月 「SV-328」発表

・1983年6月 MSXの仕様を公開

1984年(?)  SV-328のハードのライセンス供給 

1984年後半 「SVI-728」発売(完全なMSX互換機)

このどこかで西和彦さんが「SV-328をMSXに使おう」と思い立つはずなのですが、どのタイミングでしょうか。MSX用にカスタマイズする時間が必要なので、SV-328の開発途中から計画していたことになります。

ライセンス供給が1984年だと、MSX発表の1983年とタイミングが合いません。記載のミスなのか、先走って計画を進めていたかのどちらかになります。

あと、SV-318はキーボードの形状がPC-6001とよく似てます。右側にあるジョイスティックは別ですが。スペックも似てるし、かなりPC-6001を意識して設計したのだと思います。

MSXって、PC-6001とスロットの仕様が同じだったり、ところどころPC-6001をパクってる感じが気になってましたが、 ここに来てその印象がさらに強まりました。

 

20年前のスマートフォンの話

今からおよそ20年前、2000年に開催された「21世紀 夢の技術展」というイベントを紹介します。もう誰も覚えてないと思いますが。会場だった東京ビッグサイトに、ソニーAIBOとか、ホンダの「P3」とか、21世紀を支えるであろう華々しい技術が展示してありました。

「まあ、よくある展示会でしょ」と思うかもしれませんが、これは開催期間が17日間(2000年7月21日〜8月6日)もありました。もうちょっとした博覧会です。なぜここまで気合が入っていたのか、よくわかりません。

  

f:id:nicotakuya:20210113020746p:plain

見学する森首相(2000年撮影)

当時、自分は会場を取材をしたのですが、目の前に総理大臣(当時)の森喜朗さんが現れてビックリしました。これがその時の写真です。この取材の様子はベーマガ2000年10月号に載ってます。載る雑誌を間違えたような内容なので、読まなくていいです。

ちなみに、この約4か月後に「インターネット博覧会インパク)」という政府主導のオンラインイベントが開催されます。そのポスターを飾ったのが森首相でした。「オンラインイベント」というと聞こえはいいですが、Webページが置いてあるだけで、得体の知れない企画でした。インパクの記者発表会で、なぜか有田焼のマウスパッドをもらって、それはベーマガの読者プレゼントになりました。

 

f:id:nicotakuya:20210112164803j:plain

山梨リニアの実物大模型(2000年撮影)

これはJR東海が展示していた「山梨リニア」の実験車両の模型です。最高時速550kmというスペックが21世紀らしい。

高度経済成長の象徴が「新幹線」でしたが、その21世紀版という感じでしょうか。リニア中央新幹線は品川~名古屋間が2027年開業を予定していますが、今現在の報道を見る限りはさらに延期しそうです。

 

f:id:nicotakuya:20210112164515j:plain

ネットワーク電子レンジ(2000年撮影)

ネットワーク電子レンジも展示されてました。今でいうところの「IoT」でしょうか。

ネットワーク家電が巨大な市場に成長すると期待されてましたが、結局、そうなりませんでした。まあ、冷静に考えたら、電子レンジはネットにつなぐ必要ないです。

あと、BSデジタルのブースも大きかったです。デジタル放送が凄い、とNHKが頑張ってました。

今はスマホやゲーム機でYoutubeを見る時代になりました。

 

f:id:nicotakuya:20210112164952j:plain

モトローラの参考出展「スマートフォン」(2000年撮影)

今にして思うと、会場の中で最も21世紀らしい展示物は、このスマートフォンだったかもしれません。これは、見た目が全然スマートフォンじゃないですが、展示してたプレートにしっかり「スマートフォン」と書かれてました。iPhone登場の約6年半前です。当時はスマートフォンのポテンシャルに誰も気が付いてませんでした。

あと、この端末はJavaソニックのゲームが動いてる」という点をアピールしていたので、今のスマートフォンとは狙いどころがズレてるように感じます。これでゲームボーイと競っても勝てるとは思えないですよね。なぜか、業界全体がJavaに熱中していたのですが、あれは一体なんだったのか。

ドコモはiモードが大ヒットして、2001年にiアプリ開始。FOMAも開始しますが、高速通信の使い道が「テレビ電話」とか「iモーション」とか、少しずつ市場と乖離していって、最後はガラパゴスガラケー)と呼ばれてしまいます。独自規格で成功して、逆に痛い目を見るあたりはソニーショックに通じるように思えます。

こうした先人の挑戦があったおかげかもしれませんが、iPhoneがどれだけ革新的だったかがわかります。

XE-1APを自作する試み(DUALSHOCK2版)

プレステ2用パッド「DUALSHOCK2」をメガドライブに接続して、「XE-1AP」として認識させる装置です。パッド変換器と言ったほうが早いかもしれません。

XE-1APが中古ショップやオークションで高額販売されていたので、ついカッとなって自作しました。

 

f:id:nicotakuya:20210111225200j:plain

プレステ2用パッド(DUALSHOCK2)をXE-1APに偽装する

前回作った「DIY AnalogPad」は操作しづらいという致命的な欠点がありましたので、今度は操作性に優れたDUALSHOCK2を使うことにしました。DUALSHOCK2は安くて入手しやすいです。初代プレステ用アナログコントローラとか初代DUALSHOCKでも大丈夫だと思います。

f:id:nicotakuya:20210112122111j:plain

回路がシンプルになりました

これによって、ブレッドボード上のアナログスティックとボタンが不要になり、580円ほどコストダウンできました。ATmega328搭載Arduinoやプレステパッド用コネクタをうまく入手できれば、1000円未満で自作できると思います。ポートは半分も使っていないので、ATtinyに移植してもいいですね。

 

f:id:nicotakuya:20210112214228j:plain

padtestの実行結果

プログラム内にpadtestというデバッグ用の関数を入れておきました。これを呼び出すと、DUALSHOCK2との通信結果をシリアルポートに出力します。1回あたりの通信で9バイトのデータをやり取ります。

2バイト目が0x73だと、アナログモードです。

4~5バイト目がボタンの状態です。

6~9バイト目が2本のアナログスティックの位置です。

 

f:id:nicotakuya:20210111225510j:plain

MD版アフターバーナーII説明書より

ボタンの割り振りはXE-1APにできるだけ似せました。アフターバーナーIIで動作チェックしました。

・R1→A(ミサイル)

・R2→B(バルカン砲)

・L1→C

・L2→D

・SELECT→SELECT

・START→START

・右スティックY→スロットル(スピード)

・右スティックX→未使用

・左スティックX&Y→スティックX&Y(上下左右移動)

 

f:id:nicotakuya:20210111230720j:plain

アナログパッドモードで動作テスト

CとDボタンも割り当ててみましたが、この動作テストの時でしか変化を確認できません。ゲームプレイ中には押しても意味ないんですよね。

 


DIY AnalogPad(DUALSHOCK2 Version)

 

これで、XE-1APと同じような操作感が得られるようになりました。

好みの問題だと思いますが、バルカンとミサイルはL1/L2とかに割り振った方が使いやすいかもしません。R2のモゴっとした押し心地が苦手な場合は丸ボタンかバツボタンのほうがいいかも。

ソースを修正するだけで、ボタンの割り付けは簡単にカスタマイズできます。

こちらで回路図とソースを公開中です。 

sites.google.com