はじめに
PCエンジンDUOのセーブデータは、内蔵のSRAMに保存されます。SRAMは、供給している電源を切ると内容が消えてしまう揮発性メモリですが、本体の電源を切ってもセーブデータが消えないように、内蔵された電池から電源を供給し続けています。
ところがこの電池(電気二重層コンデンサ、スーパーキャパシタとも呼ばれる)は、経年劣化によって容量が段々と減っていきます。容量が減るということは、電源を切ってからセーブデータを保持できる時間が短くなるということになります。最悪の場合、全く保持できなくなります。
そこで、PCエンジンDUOのメンテナンスでは、この電池を新品に交換する作業も大抵は含まれています。これによって、少なくとも2週間(製品仕様値)はセーブデータを保持することができるようになるのです。
しかしながら、電池を交換したとは言え、セーブデータを保持する期間は限られています。そこで、SRAMそのものをFRAMという不揮発性メモリに置き換えるというカスタムがあります。これを巷では「FRAMバンク化」などと呼んだりします。
FRAMとは
Ferroelectric Random Access Memoryの頭文字を取ったものです。これは強誘電体(Ferroelectric)という特殊な構造を持つRAMチップで、不揮発性メモリ(電源を切っても内容が消えないメモリ)の一種です。高速なデータ読み書き、低消費電力である一方、まだ高価なデバイスであることや、容量の大きなものを製造しづらいことから、一部のサーバー用途を除いては一般には普及していません。
PCエンジンのセーブデータ容量
PCエンジンに搭載されているSRAMの容量は2キロバイト(2048バイト)です。Webを検索するとAIの回答で16KByteと出てきますが、おそらく16KBitの間違いでしょう(笑)
FRAMのサイズ
互換性のあるFRAMの型番が判らないことや、そもそもFRAMの入手経路が特殊だったことから、なかなかFRAMバンク化のカスタマイズに踏み切れずにいました。しかし最近、AliExpressで入手できるFRAMを2種類ほど見つけました。
・FM16W08SG:64KBit(8キロバイト)
・FM1808SG:256KBit(32キロバイト)
5pcsロット売りで、64KBit品が1231円、256KBit品が1435円でした。容量は4倍ですが、単価は50円も変わりません。ならばということで、256KBit品を取り寄せてみました。つまり、32KByte ÷ 2KByte = 16バンクのカスタムが可能です。
バンクの切り替え方法
業者にカスタムを依頼すると、DIP-SWがCD-ROMドライブのフタ内部に取り付けられてくるそうです。また、別の所ではロータリースイッチによってバンク切り替えをしているようです。
色々と探してみましたが、秋月電子にあるロータリースイッチ(16ポジション)のものが良さそうでした。
ツマミが付いて2個入りで300円と、秋月電子らしい良心的な価格。さっそく取り寄せてみました。
用意するもの
まず、用意したパーツは写真の通りで、ロータリースイッチとFRAMチップです。

あとは配線などの小物は手持ちのものを使用します。AWG28のより線を2mほど用意すれば足りると思います。
SRAMの取り外し
まず、本体基板に実装されているセーブデータ用のSRAMと電池を取り外します。写真は電池を取り外したところで、SRAMは写真中央のSANYOと書かれたチップです(ロットにより別のチップのこともあり?)。

取り外しには、ホットエアーガンとIC取り外し工具/引き抜き工具を使うと簡単に取り外せます。といいますか、ホットエアーガンがあるのと無いのとでは効率や成功率に雲泥の差が出ます。

ホットエアーガンで60秒ほどICの足を温めると、IC取り外し工具でスルリと取り外すことができます。温めすぎると他の部品が飛んでしまうため要注意です。

FRAMの足ピンを加工する
元のSRAMとサイズが異なるため足ピンに互換性がないのと、バンク切り替えのロータリースイッチに接続するため、FRAMの足ピンの加工が必要です。

精密ペンチを使って以下の足ピンを水平に持ち上げます。コツは、なるべく足ピンの根元に負荷をかけないようにして(非常に折れやすいです)、90度に曲がっている足ピンを根元に合わせて真っ直ぐにする感じです。
- 1番ピン、2番ピン
- 23ピン、26番ピン、27番ピン、28番ピン
本体基板に半田付けする
浮かせた足ピン以外を本体基板に半田付けします。浮かせた足ピンが下のパットに接触しないように注意してください。また、上側にあるチップコンデンサがやや邪魔なのですが、ぎりぎりで入るのでOKとします。

ICチップへの半田付けSTEP1
ICパッドから足ピンにジャンパーを飛ばします。これは一部のピンの互換性が無いための処置です。

これを図にすると以下のようになります。28番ピンを26番ピンの下のパッドへ、27番ピンを23番ピンの下のパッドへ接続します。※塗りつぶしたピンは、ICのピンの下のパッドへ接続するピンです。

ロータリースイッチの接続
最後にロータリースイッチを配線し、バンク切り替えができるようにします。まずはロータリースイッチ側の配線をします。
速い話が、ロータリースイッチでFRAMのアドレス[A11:A14]の4ビットを0h-Fhまで切り替える回路を作ります。これにより、16バンクを実現します。
ロータリースイッチは正論理ですのでプルダウン抵抗器を半田付けします。まずはロータリースイッチをユニバーサル基板に半田付けします。下の写真のように、はさみで自在なサイズにカットできるユニバーサル基板がお勧めです。

これを5x5マスに切り取り、ロータリースイッチを半田付けします。

そして、ユニバーサル基板に以下の回路の通りになるように抵抗器(1608の表面実装抵抗器がおすすめ)を取り付けていきます。
そして次に、FRAMチップにユニバーサル基板に載せたロータリースイッチを半田付けします。ICへの半田付けは、全て浮かせた足に行います。

GNDと+5V電源は、ICの足ピンから直接取るか、ICの1番ピンのすぐ脇にある未実装の電解コンデンサーのパターンから取ると良いでしょう。
すると、FRAM側の配線は以下のようになると思います。

かなりごちゃごちゃしていますが、まずは仮組で動作確認を行い、問題が無かったら整理することにします。一連の作業の中では、ロータリースイッチの配線が一番時間がかかると思います。
そして電源ON
動作確認は、天の声バンクを使うと簡単にできます。

天の声バンクには4バンクのセーブエリアがありますので、例えばPCエンジン側のFRAMバンクの0番、1番、15番にセーブデータをコピーし、ちゃんと保存できているか確認すると良いでしょう。
ちなみに、FRAMバンクを切り替える時は、一旦電源をOFFにする必要があります。電源を切らなくても切り替えはできてしまいますが、おかしなことになる可能性があるのと、FRAMバンクの内容が壊れてしまう可能性があるため危険です。
動作確認をするには、電源を切り、天の声バンクを取り外した後、ロータリースイッチを切り替えてから再度電源を入れます。
そして、電源を入れてSELECTボタンを押し、削除メニューからセーブデータの一覧を確認します。

Yes!! セーブデータが保存されていました。他のバンクにコピーしたセーブデータも確認しましたら、想定通り保存されていました。
ロータリースイッチを筐体に取り付ける
そして仕上げに、ロータリースイッチを本体に取り付けます。私は写真のように背面にロータリースイッチを取り付けました。

ちなみにVGAコネクタは、以前の記事で紹介したRGB化のものです。
ということで…

ご覧いただきありがとうございました!
近日中にFRAM 16バンク化をしたPCエンジンDUOを出品したいと思います。
