ニンテンドースイッチ 自分でCFWのAtmosphereをコンパイルして起動させる方法

記事の方法を試す前や質問をするまえに必ず下記リンクを見てからにしてください!
このブログについて
http://yyoossk.blogspot.jp/1970/11/blog-post_24.html


こちらではニンテンドースイッチのCFWのAtmosphereを自分でコンパイルして起動させる方法を紹介します
Atmosphereは本体のアップデートがメジャーアップデートで、多数のモジュールが更新されていれば大幅な更新は必要だが、Hekateが古いバージョンでも起動するような大したアップデートでない場合は単純にソースコードを弄って、コンパイルすれば起動できる可能性が高い

しかし、Atmosphereの開発者は、思わぬバグが発生する可能性があるとして、推奨していない
誤ってアップデートしてしまった人向けの方法ということになります
また、Mission Controlなどモジュールを変更して機能を追加するものが入っている場合は、古いバージョンを削除しないとこの方法では起動できない

devkitPro UpdaterをPCにダウンロード&インストール
Switch Developmentのみチェックを入れNext
その他はNextでOK

PCのスタートメニューからMSYS2 MinGWを起動
MSYS2 MSYSではない

一度MSYS2 MinGWを何かで使用していた場合はMSYS2自体アンインストールをおすすめします
自分の環境ではエラー

コピペは文字列を選択して右クリックからコピー、端末上で右クリックからPaste
YesかNoを聞かれる場合全てYesでyを打ち込むこと

ulimit -s 10485760
pacman -Syuu --needed --noconfirm --disable-download-timeout
をコピペしてエンター

インストールが完了するとMSYS2 MinGWが閉じるので再び起動

ulimit -s 10485760
nano /etc/pacman.conf
をコピペしてエンター
ページを一番下に
[dkp-libs]
Server = https://pkg.devkitpro.org/packages
[dkp-windows]
Server = https://pkg.devkitpro.org/packages/windows/$arch/
をコピペしてコントロールキー+X → y →エンター

pacman-key --recv BC26F752D25B92CE272E0F44F7FD5492264BB9D0 --keyserver keyserver.ubuntu.com
pacman-key --lsign BC26F752D25B92CE272E0F44F7FD5492264BB9D0
をコピペしてエンター

pacman-key -l BC26F752D25B92CE272E0F44F7FD5492264BB9D0
pacman-key -l F7FD5492264BB9D0
をコピペしてエンター

pacman -Syuu --needed --noconfirm
pacman -U https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.xz --noconfirm
をコピペしてエンター

pacman -Syuu --needed --noconfirm
をコピペしてエンター

pacman -Syuu --needed --noconfirm devkit-env
をコピペしてエンター

source /etc/profile.d/devkit-env.sh
をコピペしてエンター

pacman -S --noconfirm switch-dev devkitA64 dkp-toolchain-vars libnx switch-tools switch-mesa switch-libdrm_nouveau switch-sdl2 devkitA64 devkitARM devkitarm-rules hactool mingw-w64-x86_64-python mingw-w64-x86_64-python-lz4 mingw-w64-x86_64-python-pycryptodome switch-dev switch-glm switch-libjpeg-turbo mingw-w64-x86_64-python-pip zip git make lz4
をコピペしてエンター

git clone --recursive https://github.com/Atmosphere-NX/Atmosphere.git
cd Atmosphere
をコピペしてエンター

PCのドライブCの中のmsys64/home/ユーザー名/Atmosphereフォルダを開く

更新が必要なファイルは以下の通り
・ hos_types.hpp
Atmosphere\libraries\libstratosphere\include\stratosphere\hos
・ ams_api_version.h
Atmosphere\libraries\libvapours\include\vapours\ams
・ ams_target_firmware.h
Atmosphere\libraries\libvapours\include\vapours\ams

hos_types.hppファイルに以下を追加
バージョン20.4.0の場合
Version_20_4_0  = ::ams::TargetFirmware_20_4_0,

ams_api_version.h ファイルでは、Atmosphere のバージョンとファームウェアを変更する必要がある
Atmosphereのバージョンが、前回のバージョンが1.9.3だった場合は1.9.4とするので以下のようになる
#define ATMOSPHERE_RELEASE_VERSION_MAJOR    1
#define ATMOSPHERE_RELEASE_VERSION_MINOR    9
#define ATMOSPHERE_RELEASE_VERSION_MICRO    4
これは本体のバージョンなので、20.4.0の場合は以下のようになる
#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MAJOR 20
#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MINOR 4
#define ATMOSPHERE_SUPPORTED_HOS_VERSION_MICRO 0

ams_target_firmware.h ファイルでは、ファームウェアを追加および変更する必要がある
バージョン20.4.0の場合
#define ATMOSPHERE_TARGET_FIRMWARE_20_4_0 ATMOSPHERE_TARGET_FIRMWARE(20,  4,  0)
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_20_4_0
TargetFirmware_20_4_0  = ATMOSPHERE_TARGET_FIRMWARE_20_4_0,

端末に
make
をコピペしてエンターを押すとAtmosphereがコンパイルされる

msys64/home/ユーザー名/Atmosphere/out/nintendo_nx_arm64_armv8a/release
フォルダの中にコンパイルされたものができているはず

コメント