2026年9月、第8回「Nokia 3310 Game Jam」が閉幕し、物理ピンボールゲーム『Trick Shot II』が全51作品の頂点に輝いた。大半の参加者がWebブラウザ上のエミュレータ向けに作品を提出する中、開発者のHoani Bryson氏は物理ハードウェアそのものに踏み込んだ。2000年代初頭に出荷されたノキア3310の実機を入手して内部回路をすべて取り払い、Raspberry Pi Picoを搭載した特注基板を純正筐体へと組み込んだのである。
これは、往年のフィーチャーフォンに対する「心臓移植手術」とも言える試みだ。Go言語で書かれたクロスプラットフォームエンジンを開発し、マイクロコントローラのベアメタル上でレトロなドットマトリクス液晶ディスプレイと圧電ブザーを直接制御。名機のボディに懐かしい緑色のバックライトが再び灯り、物理ボタンが小気味よいクリック音を響かせる。オープンソースのツールチェーンとマイクロコントローラの計算力によって、往年のハードウェアが持つ手触りを忠実に残しながら、内部の魂を最新仕様へと生まれ変わらせた。
20センチのプラスチック定規で測り出した特注基板
ノキア3310を分解すると、高度に集積された専用チップセットが姿を現す。純正基板にはベースバンドプロセッサや電源管理ユニットが凝縮されているが、公開されている技術マニュアルは皆無に近い。ドキュメントのない純正インターフェースのリバースエンジニアリングを諦めたHoani氏は、内部基板をまるごと撤去し、純正筐体にぴったり収まる専用の換装基板を一から設計する道を選んだ。
基板の外形寸法や各部の穴位置の特定は極めてシビアだった。三次元測定機や高精度ノギスを持っていなかった同氏は、手元にあった20センチのプラスチック定規を手に取り、ミリ単位の目盛りを肉眼で見比べながら基板の外枠をトレースした。キーパッドの接点、バックライト用の穴、筐体のツメが噛み合うスリットまで、すべて手作業の測定から割り出された。Game Jam開幕のわずか3日前に届いた試作基板を手作業でハンダ付けした瞬間、過酷な機械的公差の壁が立ちはだかった。
インダストリアルデザインにおいて、コンマ数ミリの誤差は命取りになる。ノキア3310の純正基板の厚さは厳密に1.0mmだったが、初回発注時に選んだのは業界標準の1.6mm厚だった。このわずか0.6mmの余分な厚みが原因で筐体のツメが噛み合わず、カバーの端が浮き上がって閉じなくなってしまったのだ。
さらに測定誤差により、基板外周の固定用突起がプラスチック製の内装フレームと干渉した。Hoani氏は保護メガネをかけ、ハンドグラインダーで基板の突起を削り落とすことで、初版プロトタイプの組み立てをどうにか完了させた。その後の改訂版では標準の厚さ1.0mmへと戻され、筐体は寸分の狂いもなくぴったりと閉じるようになった。
内部の電気的接続には、純正同様の弾性圧着構造が採用されている。バッテリー端子、液晶ディスプレイの接点、ブザー、振動モーターに至るまで、すべてが筐体を閉じたときの圧力によって基板表面の銅箔パッドに押し当てられる。そのため、基板表面は完全にフラットに保つ必要があり、突起のある電子部品の実装は厳禁とされた。
キーパッドのバックライト問題を解決するため、LEDはすべて基板の背面に裏向きでハンダ付けされた。基板に開けた直径2mmの貫通孔を通じて、光を表面側へと届ける仕組みだ。基板上の部品の高さは2mm以内に制限され、唯一アンテナが収まっていた上部キャビティ周辺にのみ、わずかな高さの余裕が残されていた。
図:ノキア3310純正の緑色基板と、手作業でハンダ付けされたRaspberry Pi Pico搭載の特注基板の比較。出典:Hoani.net(Hoani Bryson氏のブログ)。
正方形ではないピクセルが迫った物理エンジンの再構築
ノキア3310に搭載されているPCD8544モノクロ液晶ディスプレイは、工業デザインの歴史的名品だ。画面解像度はわずか84x48ピクセルで、表示エリアは幅約30.5mm、高さ約21.5mm。1ピクセルの物理サイズは0.363mm×0.448mmとなっており、ピクセルのアスペクト比はおよそ4対5である。この非正方形ピクセルが、2次元物理シミュレーションの実装において大きな障壁となった。
通常の正方形グリッドを前提に描画すると、真円のピンボールが画面上で縦長の楕円に歪んでしまう。ボールが見た目通りの真円を維持できるよう、物理エンジン内部の座標系を根本から再構築する必要があった。内部では水平方向5ピクセルと垂直方向4ピクセルが同一の実寸法に対応するようマッピングを施し、物理演算層とピクセル描画配列を完全に分離。これにより、実機のドットマトリクス画面上でもボールの衝突や跳ね返りの軌道が自然なプロポーションを取り戻した。
また、往年の液晶ディスプレイは物理的な応答速度が極めて遅い。PCD8544のリフレッシュレート自体は67Hzに達するものの、液晶分子の配向変化には目立つ遅延が存在する。ピクセルが消灯から点灯へ切り替わるのに約50ミリ秒、点灯から消灯へ戻るには125ミリ秒もの時間を要する。
高速で移動するピンボールは、画面上で濃い残像を引きずってしまう。当初は残像を利用してフレームごとにピクセルを交互に点滅させ、中間階調(グレースケール)を表現しようとしたが、実機で試すと激しいちらつきや横方向のバンディングが発生。液晶パネル自体の応答の遅さが、高周波の明滅による階調表現を阻んだ。
そこで光学的なハードウェアの限界をソフトウェアアルゴリズムで補うアプローチへと舵を切った。時間軸での高速点滅を諦め、空間軸上での規則正しいディザリング(空間ディザ)を採用したのだ。8x8のバイエル行列(Bayer matrix)によるしきい値テーブルを導入し、0〜64段階の明度情報をドットパターンの疎密へと変換。タイトル画面のグラフィックやボールの軌道は、粗いドットでありながら滑らかな階調表現を獲得した。
図:特注基板表面のフラットなキーパッド銅箔接点と、貫通したバックライト用ホール。出典:Hoani.net(ハードウェア分解ガイド)。
デュアルターゲット構成でGo言語をマイコン上で駆動
ソフトウェアエンジニアリングにおける最大の焦点は、デスクトップ上のエミュレータと組み込み実機の双方で共通して動作するゲームエンジンの構築だった。Hoani氏は「3310_engine」と名付けた専用フレームワークを開発し、Go言語の条件付きコンパイル(Build Tags)機能を活用してビルド構成を2系統に分岐させた。単一のゲームロジックから、まったく異なる2つのターゲットバイナリをシームレスに生成できるようにしたのである。
組み込み環境向けのビルドにはTinyGoコンパイラを採用。Raspberry Pi Picoに搭載されたRP2040デュアルコアマイコン上で、プログラムはOSを介さないベアメタルファームウェアとして動作する。複雑なOSスケジューリングのオーバーヘッドが存在しないため、メインループ内で一定のフレームレートを正確に維持できる。各フレームごとにマトリクスキーパッドのスキャン、物理演算の更新、オーディオ処理、画面バッファの転送を順次処理し、16個の物理ボタンの状態変化をマイクロ秒単位の精度で取り込む。
マイコンの内蔵メモリは徹底的に節約する必要があった。RP2040のオンチップSRAMはわずか264KBしかなく、圧縮画像を解凍するだけでスタック領域が枯渇してしまう。そのため画像デコーダは一切組み込まず、フラッシュメモリからの直接読み出し方式を全面的に採用した。グラフィック素材はコンパイル時に非圧縮のPBMビットマップ形式へと変換して読み出し専用メモリに焼き込み、実行時には解凍処理を挟まず直接VRAMバッファへと転送される。
さらに、単音の圧電ブザーもサウンド設計に特有の制約をもたらした。ノキア3310には圧電サウンダーが1つしかなく、通常の重音伴奏を鳴らすことはできない。PWM(パルス幅変調)による方形波駆動を採用し、デューティ比を0〜50%の間で制御。しかしC3未満の低い音域では共振が得られず頼りない異音となってしまうため、オーディオエンジンにはメロディを共振しやすい周波数帯へ自動転調する単音トランスポーズツールが組み込まれた。
実機換装が突きつける「レトロカルチャーの計算力ギャップ」
Raspberry Pi PicoのRP2040は、133MHz動作のデュアルコアプロセッサと2MBの外部フラッシュメモリを備える。一方、2000年当時のノキア3310純正プロセッサの動作クロックは十数MHz程度、メモリ容量に至ってはキロバイト単位だ。両者の計算能力には文字通り桁違いの開きがある。この性能ギャップは、ハードウェア改造コミュニティの間で今なお議論を呼んでいる。
純粋主義に立つ愛好家たちは、純正基板を捨て去る行為はレトロハードウェアが持つ歴史的真正性を損なうと指摘する。現代のARMチップを載せるのは単なる外装モッディング(Case Mod)に近く、コンピュータの歴史的保存とは呼べないという立場だ。古いチップが抱える制約やクロックのゆらぎこそが、当時の製品が持っていた本来の個性であり、現代の高性能マイコンで古い外殻を利用するのは本質的に「抜け殻への寄生」に過ぎないという批判もある。
対して実機改造を支持する開発者たちは、別の現実的な視点を提示する。当時のチップに関するドキュメントは乏しく、開発環境もとっくに失われている。純正チップのリバースエンジニアリングに固執すれば、多くのレトロ機器は直せないまま引き出しの電子ゴミとして眠り続けることになる。特注のオープンソース基板は筐体の寿命を延ばし、現代の開発者が触れられるインターフェースをもたらす。オープンソースの設計データがあれば誰でも基板を発注でき、古い名機を今日の開発者コミュニティへと接続し直すことができるのだ。
この意見の相違は、レトロカルチャーが遂げた深層の変化を物語っている。過去の機械を博物館のショーケースに飾るように無傷のまま保存することだけが、レトロの楽しみ方ではなくなった。クラシックなインダストリアルデザインと現代のオープンソースエコシステムが融合したとき、レトロハードウェアは新たな創作のためのマテリアルへと姿を変えるのである。
図:改造を施したノキア3310実機上で動作する『Trick Shot II』。出典:Hackaday(Jenny List氏によるレポート)。
物理ボタンのクリック感が宿す「ミレニアム時代のインタラクション」
ブラウザ上のエミュレータと手のひらに収まるガラケー実機の決定的な違いは、操作に対する「触覚的な確実性」にある。スマートフォンのタッチスクリーンでキーを叩いても、指先が触れるのはツルツルとした平らなガラスだけだ。ストロークや跳ね返りのない操作感では、筋肉の記憶が呼び覚まされることはない。
ノキア3310のシリコンキーパッドと金属ドームスイッチは、明確な入力の手応えを指先に返す。親指にかかる心地よい抵抗感と、筐体そのものが持つ適度な重量感は、タッチパネルでは決して得られない没入感を生み出す。この触覚に根ざした物理的フィードバックは、どれほど優れたソフトウェアエミュレータであっても再現できない。
オープンソース基板と高性能マイコンの普及は、ハードウェアハッキングの敷居を劇的に引き下げた。高価なリバースエンジニアリング機器がなくても、個人の週末の趣味として基板設計からドライバ開発までの全工程を完結できる時代が到来したのだ。現代の計算力で名機の内側に新たな魂を宿らせる試みは、かつての工業デザインが指先に残した温もりを、未来へと確かに受け継いでいる。
参考文献:
- Hackaday 報道:Taking A Nokia 3310 Game Jam To The N’th Degree
- Hoani 技術ブログ:Multiplatform Engine for Nokia Jam 3310
- Hoani 分解ガイド:Nokia 3310 Hardware Teardown