ゲームボーイ(GAMEBOY)ソフトのFRAM、nvSRAM化

 令和に入ってからGB、GBAのIPS画面改造が全世界に流行しています。それに伴ってゲームソフトの電池レス化の需要も増えています。

 GBソフトの電池レス化方法は主にSRAMをFRAMもしくはnvSRAMに交換することですが、ソフトによって単純な交換では効かなく、追加で回路を作り、またはICの変更が必要な場合があります。

 

 FRAM / nvSRAM

 

 FRAMの基本知識は各自wikipediaに参照してください。

 FRAMは電池無しでセーブデータを保存できるICですが、以下2つ注意点があります。

 ・寿命は書込回数でなく、読込回数としてカウントされる

 (しかし推定読込回数は10億回レベルと非常に高いので、ポケモンのような大量な読込をするソフトをいっぱいプレイしても生涯でも10億回に達するわけがなく、中古品でなければ寿命への心配は要りません。)

 ・データを連続アクセスする場合、毎回アクセスの終わりにCE(Chip Enable)をOFFし、次回のアクセスに再度ONにする必要がある。即ちSRAMのようにCEをずっとONにしてデータを連続アクセスすることができない

 →これがポケモン金銀といったソフトをFRAM化する際に、OR gate回路の追加作成が必須な理由であります。

 (FM16、FM18シリーズ限定。FM28シリーズや富士通のMB85R256ではSRAMの挙動と同じである為この制限を受けませんが、動作電圧が3.3Vである為、5V環境のGB/GBCソフトに動作させると壊れる恐れがあります。)

 

 上記2つの問題点を回避する為、nvSRAMが採用されます。

 nvSRAMは1つのセルにSRAMと不揮発性ユニット(EEPROMっぽい)が同時に含まれるICです。通電の時にデータが「不揮発性ユニット→SRAM」そしてSRAMの部分が働き、電源が切れる時にデータが「SRAM→不揮発性ユニット」で「自動保存」するという機構で、電池無しでセーブデータを保存することができます。

 SRAMとは同じ動作方式なので、ポケモン金銀等に使う場合にはOR gate回路の追加作成が不要であり、沢山のデータを読み込んでいても寿命を消耗することがありません。また、FRAM化の際に不明な故障が出るソフトには、nvSRAM化が安心安全な電池レス化手段になります。しかし、nvSRAMもnvSRAMならではの問題があります。

 ・今でも大量生産されているFRAMと違い、殆どのnvSRAMはEOL(End Of Life 品切れ)になった為、信頼できる新品の入手は極めて困難

 ・寿命は電源ON/OFF回数としてカウント、最大100万回程度でFRAMよりやや劣る

 ・電源OFFの時にデータの「自動保存」に必要な電量を保つ為、STK15C88以外のものはVCAP回路の追加作成が必須(STK15C88でもVDDにコンデンサーを付ける必要がある模様)

 ・電源OFFの時に「自動保存」ができないチップ(STK11C68、STK11C88)も存在しており、間違い購入に注意

 (これらのチップの保存手段は「手動保存」一択のみ。自分自身でCPLDを使ってフラッシュカードをデザインしない限り、「手動保存」はできません。わかりやすいフロアチャート:)

 

 一般的に使われるFRAM ICは

 ・FM16W08 (3.3V 5V 両用) 8KB

 ・FM18W08 (3.3V 5V 両用) 32KB

 ・FM1808B (5V) 32KB

 ・FM1808-70 (5V 古いモデル) 32KB

 ・FM28V020 (3.3V) 32KB

 ・FM28V100 (3.3V) 128KB

 ・FM20L08 (3.3V 古いモデル 耐圧高め) 128KB

 ・MB85R256 (3.3V GBAソフトに公式で採用されたもの) 32KB

 

 一般的に使われるnvSRAM ICは

 ・STK12C68 (5V) 8KB

 ・STK15C88 (5V) 32KB

 ・STK14CA8 (3.3V) 128KB ※耐圧が低い為非推奨

 

 また、GBソフトには、FRAM / nvSRAM化の際、VDD-CE間10kΩのプルアップ抵抗を付ける必要があります。抵抗を付けなかった場合、機種変更の時にセーブデータ全消が起こる報告があります。

 

 AliExpressなど中国からの販売品について

 

 中国には、底無しのコスト削減を拘る文化があります。

 その考え方をベースにして、日本をはじめ世界各地からジャンクを輸入し、ジャンクPCBからICを取り外して販売することを長年やっています。

 だから中国から販売するFRAM/nvSRAMは異常に安いのです。全てジャンクからサルベージされたものです。稀に大企業から処分された不要な新品の備品もありますが、ジャンクPCBから外された余命の少ない中古品がメインです。

 EOLになった品物はどこでも売らず、中国が最後の入手手段という側面もありますが、生産中の製品については中国のジャンク品より何倍の値段ですが、大人しくDigi-KeyやMouser等大企業から新品を注文するほうが賢明です。

 (参考:FM18W08 中国フリマ 160円、Digi-Key 1770円)

 

 GB・MBC1 / MBC5 / MBC6

 

 殆どのソフトはSRAMをFRAMに交換するだけで動作できます。しかし、以下のソフトは不具合の報告があります。

 ・スーパーマリオランド 6つの金貨 (OR gate 必須)

 ・Wizardry シリーズの一部 (OR gate 必須)

 ・ドラゴンクエストⅢ (中断データ不具合の報告あり、詳細不明)

 ・ときめきメモリアル POCKET カルチャー編 スポーツ編 (長時間プレイで突然にフリーズ→データ全消、電池に戻ると発生しなくなる、原因不明だがFM28V020を使っても駄目なので OR gate には関与しない模様)

 ・超GALS!寿蘭ゲームボーイウォーズ3、GBメモリカートリッジなど (128KB FRAM nvSRAM ICは全て3.3Vの為、ROMを自作PCBに引越す以外には、安心安全な電池レス化方法が存在しません)

 なお、MBC5の海外版ポケモンピカチュウも理論上OR gateは必要ですが、無しでも不具合が出なさそうです。


 GB・MBC2

 

 MBC2はSRAMMBCに内蔵される為、電池レス化にはROMをMBC1ソフトのPCBに引越しさせる必要があります。

 

 GB・MBC3

 

 MBC3は殆どポケモンの代名詞である為、OR gate回路の追加作成が必要です。

 OR gate回路は、MBC3ソフトのRTC(時計機能)と同じタイミングでCEのON/OFFをコントロールして、FRAMの連続アクセスを失敗させないようにする方法です。作り方はredditにあります。

 3.3VのFRAM(FM28V020、MB85R256等)はSRAMと同じ挙動なので、VDDを接続せずに3.3V FRAMを使う場合(この状態でのICの実際動作電圧は4.3V)にはOR gate回路の作成が不要になります。しかし、3.3V FRAMの耐圧が低い為、この状態で長時間動作すると、早期寿命終了の可能性が高いです。

 ポケモンでないMBC3のゲームについては研究がありません。

 

 GB・MBC30

 

 ポケモンクリスタルのみ。セーブデータのサイズが64KBである為、5V 128KB FRAM nvSRAMが存在しないことにより、安心安全な電池レス化方法は存在しません。

 現状、VDDを接続せず、自作アダプタでFM20L08を乗る方法が一番デメリットの少ない方法となります。

 (前述の通り、VDDを接続せずにFRAM/nvSRAMを取り付ける場合、ICの実際動作電圧は4.3Vになります。この電圧で耐圧の高いFM20L08は耐えますが、耐圧の低いFM28V100、STK14CA8は早期壊れる可能性が高いです。)

 

 GB・MBC7

 

 既にEEPROMセーブ方式である為、電池レス化の必要がありません。

 

 GBA

 

 GBAソフトは全て3.3Vの環境であり、3.3VのFRAMも全てSRAMと同じ挙動である為、そのまま交換してよい。