【Switch】SaltyNXとは?FPS・リフレッシュレート変更を支えるシステムモジュールを解説!

Switch改造

はじめに

Nintendo Switchでゲームをプレイしていて、「フレームレート(FPS)の上限を変更したい」「携帯モードとTVモードのグラフィック設定を自由に切り替えたい」「ゲームの動作状況を詳しく確認したい」と思ったことはないでしょうか。

こうした高度なカスタマイズを実現するうえで欠かせないのが、Switch向けシステムモジュールの「SaltyNX」です。

SaltyNXは、ゲームへのカスタムコード注入(コードインジェクション)を可能にするシステムモジュールです。FPSの監視や制限解除、携帯モード・TVモードのグラフィック設定切り替え、さらにはディスプレイのリフレッシュレート変更など、さまざまな拡張機能の基盤として利用されています。人気のユーティリティである「FPSLocker」や「ReverseNX-RT」も、このSaltyNXを前提として動作しています。

この記事では、SaltyNXの概要や主な機能、関連ツールとの関係、具体的な導入方法、そして使用する際の注意点について詳しく紹介します。


SaltyNXとは?

SaltyNXは、もともとshinyquagsire23氏によって開発され、現在は開発者のmasagrator氏がフォーク(派生)版として精力的に開発・公開しているNintendo Switch向けのシステムモジュールです。

実行中のゲームにカスタムコードを注入する機能を持ち、標準状態ではアクセスできないゲームの動作制御や機能拡張を可能にします。

GitHubの公式READMEでは、「一般的な市販ゲームとの幅広い互換性を重視したコード注入システム」として説明されており、特定のゲーム専用のコード注入に特化した「exlaunch」などとは異なるアプローチで開発されています。また、SaltyNXは単体でバックグラウンド動作するだけでなく、外部プラグインやパッチを一元管理するプラットフォームとしても機能します。


SaltyNXの主な特徴

masagrator氏がメンテナンスしているSaltyNXには、主に以下のような特徴・機能が備わっています。

  • NX-FPSによるゲームのパフォーマンス情報の取得
  • 対応ゲームのFPS制限解除
  • ReverseNX-RTによる携帯モード・TVモードのグラフィック設定切り替え
  • 携帯モードおよびTVモードのリフレッシュレート変更
  • 外部プラグインの読み込み
  • ゲーム内の共通関数を変更するパッチへの対応

特に重要なポイントは、SaltyNXが「FPSLocker」などの人気ツールを動かすための土台(バックエンド)になっているという点です。SaltyNXを本体に導入しておくことで、対応する各種オーバーレイや設定ツールの機能をフルに活用できるようになります。


SaltyNXの主な機能

ここからは、SaltyNXに搭載されている代表的な4つの機能について詳しく解説します。

1. NX-FPSによるFPS情報の取得・制限解除

SaltyNXには、「NX-FPS」と呼ばれるプラグイン機能が最初から統合されています。NX-FPSは、ゲームのフレームレートやパフォーマンス情報をリアルタイムに取得するほか、対応するゲームのFPS上限(30FPS制限など)を解除・変更するための仕組みを提供します。

通常、Switchのゲームは開発段階で設定されたFPS上限に従って動作しますが、SaltyNXがグラフィックスAPIなどの処理にコードを注入することで、フレームレート制御への干渉を可能にします。

ただし、すべてのゲームで自由にFPSを変更できるわけではありません。ゲームエンジンやFPSの制御方式(ダブルバッファリングの仕様やゲーム速度がFPSに依存しているケースなど)によっては、専用のパッチが必要になる場合があります。実際にユーザーがFPSを変更する際は、後述する「FPSLocker」などのフロントエンドツールから操作を行います。

2. ReverseNX-RTによる携帯モード・TVモードの切り替え

SaltyNXには、「ReverseNX-RT」に関連する機能も統合されています。

Nintendo Switchの多くのゲームは、本体をドックに挿している「TVモード」と、本体のみで遊ぶ「携帯モード」で、解像度やグラフィック品質、FPSなどの動作プロファイルを切り替えています。ReverseNX-RTを利用すると、ゲームを起動したまま、携帯モードとTVモードの動作プロファイルをリアルタイムに偽装・切り替えられます。

たとえば、「携帯モードでプレイしているのに、TVモード向けの高画質・高解像度設定を強制適用する(あるいはその逆で負荷を下げる)」といった使い方が可能です。なお、ゲーム側がシステムのモード判定処理を使用している必要があり、もともとモードによる違いがないタイトルでは変化がありません。

3. リフレッシュレートのカスタマイズ

SaltyNXは、携帯モードとTVモードの両方でディスプレイのカスタムリフレッシュレートを管理する機能を備えています。

通常のSwitchではディスプレイのリフレッシュレートは60Hzに固定されていますが、SaltyNXと対応ツールを組み合わせることで、対応ディスプレイのリフレッシュレート(例:40Hz、45Hz、50Hzなど)を柔軟に変更できます。これにより、「60FPS維持は難しいが、40FPS・40Hzに固定してスタッター(カクつき)のない滑らかな映像で遊ぶ」といった高度な調整が可能になります。

具体的な設定変更は「FPSLocker」などのツールから行います。なお、リフレッシュレートの変更には本体液晶や接続先モニターとの互換性・動作上の制限があるため、対応範囲を確認したうえで設定しましょう。

4. 外部プラグイン・パッチへの対応

SaltyNXは、外部プラグイン(.elfファイル)の読み込みや、ゲーム内の共通関数を書き換えるパッチ機能にも対応しています。

パッチファイル(64bitゲーム用は .asm64、32bitゲーム用は .asm32)は、microSDカード内の以下のディレクトリに配置することで適用されます。

  • SaltySD/patches/:すべてのゲームに共通して適用するパッチ
  • SaltySD/patches/<titleid>/:特定のゲーム(タイトルIDごと)にのみ適用するパッチ

この仕組みにより、ゲームごとの個別調整だけでなく、複数タイトルで共通する処理の一括変更にも対応できます。


SaltyNXに対応した関連ツール

SaltyNXはバックグラウンドで動作するシステムモジュールのため、基本的にはほかのHomebrew(自作ソフト・オーバーレイ)と組み合わせて使用します。公式READMEでは、SaltyNXを利用する主なツールとして以下が紹介されています。

ツール名主な機能・役割
FPSLockerゲームのFPS上限変更、カスタムパッチ適用、ディスプレイのリフレッシュレート調整を行うオーバーレイ
ReverseNX-RT携帯モード・TVモードの動作プロファイルをゲーム中にリアルタイムで切り替えるオーバーレイ
Status Monitor Deux「Status Monitor Overlay」の後継となる、CPU/GPU負荷やFPSなどのハードウェア情報表示ツール
SaltyNX-ToolSaltyNX本体の各種機能・設定フラグを管理するHomebrewアプリ

なかでも「FPSLocker」は、SaltyNXの機能を最大限に活用する代表的なツールです。FPSやリフレッシュレートをゲーム中に細かく設定でき、最新版の機能を利用するにはmasagrator氏のSaltyNXフォーク版(バージョン2.1.0以上)が必要とされています。

SaltyNX-Toolについて

関連ユーティリティとして提供されている「SaltyNX-Tool」は、SaltyNXの各種機能や動作フラグをGUIで管理するためのHomebrewアプリです。

公式READMEによると、動作にはSaltyNX(masagrator氏のフォーク版)のバージョン2.1.0以上が必要で、Homebrew MenuのAppletモード(アルバムから起動するモード)でのみ使用する仕様となっています。SaltyNX本体とは別リポジトリで配布されているため、設定を細かく管理したい場合はあわせて導入してください。


SaltyNXの導入方法

ここからは、SaltyNXをNintendo Switchへ導入する手順を解説します。

必要なもの・前提条件

  • CFW導入済みのNintendo Switch
    ※SwitchへのCFW導入方法については、こちらの記事をご参照ください。
  • microSDカードを読み書きできるPC(またはUSB転送環境)

手順1:SaltyNXをダウンロードする

まず、以下のGitHubのReleasesページにアクセスします。

最新リリースの「Assets」欄から、ファイル名が SaltyNX で始まるZIPファイル をダウンロードしてください。

手順2:ZIPファイルを展開(解凍)する

ダウンロードしたZIPファイルをPC上で展開します。展開すると、以下の2つのフォルダが出力されます。

  • atmosphere
  • SaltySD

手順3:microSDカードにコピーする

展開した2つのフォルダを、Nintendo SwitchのmicroSDカードのルートディレクトリ(一番上の階層)にコピーします。すでにAtmosphèreを導入している環境では、既存の atmosphere フォルダに統合(上書き)する形でコピーしてください。

コピー後のmicroSDカードのフォルダ構成イメージは以下のとおりです。

microSD/
├── atmosphere/
├── SaltySD/
├── Nintendo/
└── switch/

【アップデート時の注意点】

すでに古いバージョンのSaltyNXを導入しており、アップデート後に不具合が発生する場合は、一度microSDカード内の SaltySD フォルダを丸ごと削除してから、最新版の SaltySD フォルダを新規に配置してください。

手順4:Nintendo Switchを再起動する

ファイルのコピーが完了したら、microSDカードをSwitch本体に戻して電源を入れるか、再起動してください。システムモジュールのため、本体起動時に自動で読み込まれます。

なお、SaltyNX 2.1.0以降では、ゲームへのCore注入が正常に行われると、ゲーム起動時にSaltyNXのロゴとバージョンが一瞬表示される機能が追加されています。この表示が出れば、SaltyNXが正常に動作している証拠です。


SaltyNXを使用する際の注意点

SaltyNXは実行中のゲームメモリにカスタムコードを注入する高度な仕組みを持つため、使用する際には以下の点に注意が必要です。

1. 32bitゲームでは外部プラグインを利用できない

SaltyNXでは、32bitゲームに対する外部プラグインの読み込みがサポートされていません。そのため、32bitで動作する一部のタイトルでは、外部プラグインを用いた機能拡張が利用できない場合があります。

ただし、公式READMEによると「外部プラグインのみ非対応」とされているタイトルであっても、SaltyNX本体に組み込まれているその他の機能(NX-FPSやReverseNX-RTなど)は利用できると説明されています。

2. SaltyNX自体が動作しない非対応ゲームもある

一部のゲームでは、メモリ管理などの仕様によりSaltyNX自体との互換性に問題が発生することがあります。公式READMEの「Exceptions(例外)」欄では、SaltyNX全体が非対応のタイトルとして以下が挙げられています。

ゲームタイトル対象バージョン非対応の理由
The Witcher 3: Wild Hunt GOTY3.2Heap(ヒープメモリ)関連の問題のため

こうした例外タイトルではSaltyNXの機能が利用できないため、特定のゲームでうまく動作しない場合はGitHubの「Exceptions」欄を確認しておきましょう。

3. チートコード(EdiZon等)との互換性に注意

SaltyNXには、チートコードとの互換性に関する既知の問題(Known issues)があります。

公式READMEによると、アドレス指定に MAIN+offset のチェインではなく HEAP+offset 方式を使用しているチートコードは、SaltyNX環境下では正常に動作しない場合があると報告されています。SaltyNXとチートコードを併用する際は、この点に留意してください。


おわりに

今回は、Nintendo Switch向けのシステムモジュール「SaltyNX」について紹介しました。

SaltyNXは、ゲームへのカスタムコード注入を可能にする強力なシステムモジュールであり、NX-FPSによるフレームレート制御やReverseNX-RTによるモード切り替えなどの機能を内包しています。また、FPSLockerをはじめとする人気ツールの基盤としても不可欠な存在であり、Switchのゲーム環境を快適にカスタマイズするうえで非常に重要な役割を担っています。

導入自体はZIPファイルを展開してmicroSDカードにコピーするだけとシンプルですが、動作にはFW 10.0.0以上や純正のAtmosphèreが必要である点、32bitゲームのプラグイン制限、そしてチートとの相性などには十分な注意が必要です。

ゲームのFPS制限解除やリフレッシュレートの変更、動作状況のモニタリングに興味がある方は、ぜひSaltyNXと関連ツールをチェックしてみてください。

関連記事:【Switch】CFW完全ガイド|導入手順から必須ツール・活用法まで徹底解説

コメント