Amazon.co.jp

GAMES25
SSG uploader
GAMES24
FC2ブログ


games24con@yahoo.co.jp

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Switch] ペイロード作成方法

前提
Homebrew 開発環境構築
1.2を完了した環境からの手順

インストール解説
Windouws10のUbuntuを起動する
/opt/devkitpro に移動
wget で devkitARM_r47-x86_64-linux.tar.bz2 を保存する
tar で 保存したdevkitARM_r47-x86_64-linux.tar.bz2を解凍する
環境パスを通す
DEVKITARM に $DEVKITPRO/devkitARM を登録
以前の処理でDEVKITPROには/opt/devkitproが登録されている

インストール手順
cd /opt/devkitpro
sudo wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r47/devkitARM_r47-x86_64-linux.tar.bz2
sudo tar -xvjf devkitARM_r47-x86_64-linux.tar.bz2
sudo rm devkitARM_r47-x86_64-linux.tar.bz2
echo "export DEVKITARM=$DEVKITPRO/devkitARM" >> ~/.bashrc
source ~/.bashrc

ビルド方法
cd ~
git clone https://github.com/ktemkin/Atmosphere.git
cd Atmosphere/fusee
make

実行方法
Atmosphere/fusee/src/main.c を編集してから
Atmosphere/fusee/ でmake すると
Atmosphere/fusee/out/ に fusee.bin が作成される
このfusee.binを Switchで実行する
a.Windouws ならこの方法で実行する
b.UbuntuならUbuntu(仮想マシンではない)にコピーしてペイロード実行する

ソース
ディスプレイに文字列表示 呼び出し方はprintfと同じ
printk("00000000 %08x\n", 10);

押されてるボタン取得 戻り値に押されている値が返る
#include "hwinit/btn.h"
u32 res=btn_read();
#define BTN_POWER 0x1
#define BTN_VOL_DOWN 0x2
#define BTN_VOL_UP 0x4

スリープ 引数に渡したマイクロ秒だけsleepする
#include "hwinit/util.h"
sleep(1000000);//1秒スリープ

シャットダウン
#include "hwinit/max77620.h"
#define MAX77620_REG_ONOFFCNFG1 0x41
#define MAX77620_ONOFFCNFG1_PWR_OFF (1 << 1)
i2c_send_byte(I2C_5, 0x3C, MAX77620_REG_ONOFFCNFG1, MAX77620_ONOFFCNFG1_PWR_OFF);

リカバリモードで再起動
#define PMC_BASE 0x7000E400
#define APBDEV_PMC_SCRATCH0 0x50
#define _REG(base, off) *(vu32 *)((base) + (off))
#define PMC(off) _REG(PMC_BASE, off)
PMC(APBDEV_PMC_SCRATCH0) = 2; //Reboot into rcm.
PMC(0) |= 0x10;
while (1)
sleep(1);

コメントの投稿

非公開コメント


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。