NINTENDO 64をオーバークロックして処理落ちを軽減する

f:id:BCC:20210112115309j:plain

1996年に任天堂より発売された家庭用ゲーム機「NINTENDO 64

CPUはR4300 93.75MHz、GPU/チップセットはRCP(Reality Co-Processor) 62.5MHz、メモリはRDRAM 4MB(8MBに拡張可能)というスペックだが、採用されているCPU R4300は133MHz駆動までのものが発売されていたこともあり、実は動作クロックにマージンがあった。RCPからのベースクロック×倍率がCPUクロックとなるので、倍率を変えることでオーバークロックが行え、一部のゲームで発生する処理落ちを改善するという改造が何年も前から一部で施されているのだが、今回は自分も試しに行ってみた。

 

まずは64の分解から

f:id:BCC:20210112115327j:plain

本体上部にあるメモリー拡張スロットの蓋を外し、ターミネータパックもしくはメモリ拡張パックを本体から引き抜く。本来はターミネータパックインジェクタというものを使い抜くようだけど、無い場合は溝にマイナスドライバを差し込んでてこの原理で少しづつ動かしていこう。

 

f:id:BCC:20210112115455j:plain

スーパーファミコンスーファミJrと同様の特殊ネジが裏側の6か所にあるのでスーファミ系統を分解した際に使ったドライバーを使用して外す。

 

f:id:BCC:20210112115819j:plain

裏面のネジを外せばケースが上下に分離でき、下側にマザーボードヒートシンクが備えられている。

最初にメモリ拡張スロット上部にある薄い金属プレートを固定している黒い+ネジ(黄色の丸の箇所)を外しプレートを引き抜く、そのあと5か所のネジ(赤い丸。メモリスロット左右2本は他よりも長い)を外してメモリスロットのシールド板を外し、更にU字になっているヒートシンクを固定している10か所のネジ(緑色)を外してヒートシンクも外す。

ハードオフのジャンクコーナーに長年放置されていた機体なためか埃やシールド板に目立つ錆が点在していたが、言うまでもなく改造後に埃は全て取り払い、錆も紙やすりで削って表面をアルコールで清掃しておいた。

 

f:id:BCC:20210112120452j:plain

分解の続き

メモリスロットのシールド板とヒートシンクを外したら、今度はシールド板周りにある7か所のネジ(赤い丸。カートリッジスロット左右のネジ2本は他よりも太い)を外し、アルミ板のシールド板をマザーボードから引き剥がす。

 

f:id:BCC:20210112120745j:plain

最後はACアダプタとAVケーブル接続口にある4本のネジ(赤丸)を外せばケースからマザーボードが取り外せる。

 

f:id:BCC:20210112121004j:plain

NINTENDO 64マザーボード。放熱用のアルミ板が三か所のLSI上に貼り付けられているが、赤丸部分がCPU、黄色がRCP、紫色がメモリとなる。今回のオーバークロック改造には赤丸、つまりCPU部分の配線を変えることで可能となる。

 

f:id:BCC:20210112124314j:plain

CPUのクロック倍率は112ピンと116ピンが、それぞれ+3.3V電源かGND(-)のどちらに繋がっているかで四通りの決まり方をする。

CPU x1(62.5MHz) x1.5(93.75MHz) x2(125MHz) x3(187.5MHz)
112ピン GND +3.3V GND +3.3V
116ピン GND GND +3.3V +3.3V

標準では112ピンが+3.3V・116ピンがGNDに繋がっており倍率1.5、ベースクロックが62.5MHzなので1.5倍の93.75MHzとなる。ここの足を上げてマザーボードの回路から断線した後、目的の倍率になるよう配線を変えられるようにすればいいのだ。

f:id:BCC:20210112131218j:plain

まずはピン上げ。半田ごてで足根本の半田を加熱し、ピンの隙間にニードルやフックなど先の細い工具を差し込んで手前側に差し込む。ピンが隣接するピンとくっついても慌てずにフラックスを塗って、また加熱して丁寧にピンを曲げ直したり、余分な半田を吸い取り線で除去しよう。112・116ピンがマザー、隣接するピンと接触せずショートしていなければ下準備は完了。

オーバークロックすることによって処理速度が上がり処理落ちが軽減すると記事の最初に書いたが、固定されたスペックのハードを想定して開発されたゲームでは処理速度が変わるだけで予期しない不具合も発生したりするため、問題のないゲームのみオーバークロックで動かし、不具合が生じる場合はクロックを標準に戻せるようにスイッチを取り付ける必要もある。

1倍率は標準よりも遅いので無意味、3倍率というのも用意されているが実際に動く機体はほぼないということなので1.5倍(93.75MHz)と2倍(125MHz)だけ切り替えられるようにすればいい。

f:id:BCC:20210112132733j:plain

 用意するものはトグルスイッチ 6P 2回路2接点

3本のピンが二列、計6ピンあるもので、スイッチをどちらかに倒すことで中央の端子が左右の端子を通電、それが2回路分あるというものだ。

f:id:BCC:20210116204800p:plain

回路図は上記の通り。

+3.3Vが流れているどこかのコンデンサ(C81・C131・C134等)の足にトグルスイッチ左右をコンデンサ端子両側と繋ぎ、CPU側のピンをトグルスイッチ中央に繋ぐことで切り替えられるようにしている。

f:id:BCC:20210113130102j:plain

f:id:BCC:20210113183413j:plain

配線例。

本体横にドリルで開けた穴にトグルスイッチを差し込み、手前側にスイッチを倒すと標準クロック、奥側に倒すとオーバークロック動作になるようにした。

倍率変更スイッチを取り付けたら、分解の逆の手順で本体を組み立てて完成。

なお、64の電源を入れている最中にスイッチを切り替えるとフリーズする、最悪の場合壊れる可能性もあるので、切り替える場合は絶対に電源を切った状態で行うこと。

 

それでは標準クロックとオーバークロックによる動作の違いを、割と処理落ちが激しいNINTENDO 64の名作「ゴールデンアイ 007」のデモプレイを流して比較してみた。

標準クロック(93.75MHz)ではコマ落ちだけでなくCPUの処理不足でゲーム自体がスローになっているシーンが大半だが、オーバークロック後は動作が滑らかとなり、全く同じフレームで並べて流しているはずなのにデモの終了するタイミングはほぼすべてのシーンでオーバークロック時(125MHz)の方が先に終了していることが分かる。

CPU真上にあるアルミ板表面には傷による凹凸が目立ちシールド板との隙間もありそうだったので熱伝導グリスを塗ってテストしたのだが、それでも熱暴走なのかゲームを動かして10~15分くらいするとフリーズすることがあった。CPUとアルミ板を張り付けている熱伝導シート自体も厚みがあって熱伝導率が悪そうだし、ただたんに板を貼っただけに過ぎず放熱は殆ど出来てなさそうなので、オーバークロックする場合は備え付けの熱伝導シートや金属板を取り外しフィン付きのちゃんとしたヒートシンクを薄い熱伝導テープで貼り付ける、風を送るファンを増設するといったことが必須。

※追記:その後色々試したが、どうやら発熱よりも電流不足の方がOC耐性に影響を与えるようだ。電源ユニットをどうにかして定格以上(12V:0.8A、3.3V:2.7A以上)流せる改造にした方が安定しやすい。

また、ゴールデンアイでは熱暴走を除いて動作に支障はなかったものの、他にテストした「バイオレンスキラー」ではイベントシーンで早送り状態となって音声が最後まで再生される前に次のシーンに移行したり、場面切り替わり時にゲームがリセットがかかる時があるなどの不具合が確認できた。

発熱量の増加、ゲームによっては不具合も生じてしまうといった問題も発生するが、効果のあるタイトルでは快適なゲームプレイを実現できるので、改造する技術を持ち生じる不具合に対して対処できる人にはお勧め。