Portal 1 および 2 用の Nintendo Switch プラグイン。game.zip 以外のファイルをロードできるため、何かを変更するたびに巨大なアーカイブを再パックして送信する必要がなくなります。
Portal 2 のバージョン 1.0.3 と Portal のバージョン 1.0.2 または 1.0.3 が必要です。
リリースからダウンロード:
Portal-NXSideLoader.zip
ネットワーク パッチがない場合 (ネットワークの使用がブロックされることはありません):
- Portal2-NXSideLoader.zip
ネットワーク パッチを使用すると (任天堂のサーバーをブロックしている人のために、ゲームのネットワーク接続をブロックしてクラッシュを防ぎ、デバッグに役立ちます):
- Portal2-NoWeb-NXSideLoader.zip
atmosphere
フォルダーを SD カードのルートに置きます (はい、CFW は削除されません...)
ゲームに応じて、メイン MOD フォルダーの名前を変更します (たとえば、Portal Reloaded の場合は「portalreloaded」)。
portal
portal2_dlc3
このフォルダーを次の場所に置きます。
atmosphere/contents/01007BB017812000/romfs/nxcontent/
atmosphere/contents/0100ABD01785C000/romfs/nxcontent/
romfs フォルダー内のすべてのフォルダー名とファイル名は小文字でなければなりません。
Some mods are overwriting menu options, so you can lose access to Switch controller settings.
If after installing mod you can't save anything in options, try to delete `gameinfo.txt` from mod folder. You may also delete custom options menu.
They are stored either freely somewhere inside mod folder OR they are packed to some vpk file.
MOD には適切に最適化された CPU コードが必要です。そうしないと、Switch が動作を停止してしまいます。
適切に最適化された MOD の例:
不適切に最適化された MOD の例:
nxcontent
内のいくつかのファイルは、別の機能がプリロードされているため、サポートされない可能性があります。 rom_boot_params.txt
をロードできるように、1 つの関数に特定のサポートを追加する必要がありました。動作していないファイルがあり、それを動作させたい場合は、問題を書いてください。
ゲームは vscript をサポートしています。
この MOD ではソース コードの変更はサポートされていません。独自のフックを手動で作成する必要があります。
ゲーム開発者は、ファイルシステムとして game.zip を使用するために cstdio 全体を再設計しました。ポータル ゲームは、ほとんどのファイルを開くためにfopen_nx()
という関数を使用します。このファイルを読み取るには - fread_nx()
など。すべての関数は cstdio と相互互換性があるため、解決策は非常に簡単でした。
fopen_nx()
rom:/
で始まる正しいパスを使用して呼び出しをfopen()
にリダイレクトします。このソリューションには 2 つの問題がありました。
rom_boot_params.txt
だけだったので、このファイルを読み取る関数をフックし、SD カードからファイルをロードするように再設計しました。その後、同じ関数が bsp ファイルからのサウンド ファイルとテクスチャのロードを担当していることが判明しました。fopen_nx()
パスのロードは大文字と小文字を無視します。 + ファイルがnxcontent
フォルダー内にあるかどうかを最初にチェックすることが優先され、そうでない場合は zip のルートをチェックします。フック内では、このチェックを再実装し、HOS romfs ファイルのロードでは大文字と小文字が区別され、元のファイルはすべて小文字であるため、ファイル パスにtolower()
を使用しました。Switch-dev を使用して標準の devkitpro をインストールする必要があります。
これを使用して exef からmain.npdm
パッチを当てます。そうしないとプラグインがクラッシュします: https://github.com/skyline-dev/skyline/blob/master/scripts/patchNpdm.py
Portal 1 用にコンパイルするには、コマンドを使用します
make PORTAL="-DPORTAL"
ポータル2用
make PORTAL="-DPORTAL2"
インターネット パッチを適用すると、任天堂サーバーへのアクセスがブロックされているネットワーク経由でデバッグできるようになります。
make PORTAL="-DPORTAL2 -DPDEBUG"