Skip to content

Latest commit

 

History

History
144 lines (96 loc) · 6.91 KB

File metadata and controls

144 lines (96 loc) · 6.91 KB

TCPGecko Plugin

English

TCPGecko Plugin は、開発、デバッグ、メモリ調査、チートコード運用のために TCP Gecko 互換サーバーを提供する Wii U Aroma プラグインです。サーバーは TCP ポート 7331 で待ち受けます。

Warning

TCPGecko には強力なメモリ操作・コード実行コマンドがあります。信頼できるローカルネットワークで、調査する権限のあるソフトウェアとハードウェアだけを対象に使用してください。

主な機能

  • ポート 7331 の TCP Gecko 互換サーバー
  • ユーザーメモリ/カーネルメモリの読み書きコマンド
  • General/Latest のコードハンドラーモード
  • SD カード上の .gctu チート読込と、クライアント送信コードとの任意の結合
  • ブレークポイント、スレッド、スタックトレース、シンボル、メモリ検索、リモート呼出しコマンド
  • スクリーンショットとファイル操作
  • raw assembly の永続実行
  • WUPS 設定メニューからのサーバー有効化とスレッド優先度設定

不正なアドレスやコードを低レベルコマンドへ渡すと、実行中タイトルまたは本体がクラッシュする場合があります。テスト前に作業内容を保存してください。

必要環境

Wii U

Aroma と各モジュールは互換性のある組合せを使用してください。通常、現在の Aroma パッケージには必要な実行時モジュールが含まれます。

ビルド

推奨ビルドでは Docker Desktop または Linux コンテナ互換の Docker が必要です。ネイティブビルドには devkitPro/devkitPPC、WUT、WiiUPluginSystem、libwupsbackend、libnotifications、および Makefile に記載された portlibs が必要です。

インストール

  1. プロジェクトをビルドするか、信頼できるリリースから TCPGeckoPlugin.wps を入手します。

  2. 次の場所へコピーします。

    sd:/wiiu/environments/aroma/plugins/TCPGeckoPlugin.wps
    
  3. Aroma を起動するか、プラグインを再読込します。

  4. Aroma/WUPS のプラグイン設定メニューで TCPGecko の設定を変更します。

  5. 互換クライアントから Wii U のローカル IP アドレス、ポート 7331 へ接続します。

標準以外の Aroma 環境を使う場合は、パス中の aroma をその環境のディレクトリ名へ置き換えてください。

設定項目

設定 内容
Enable TCPGecko TCPGecko サービスを開始/停止します。変更前にクライアントを切断してください。
Code Handler General または Latest の内蔵コードハンドラーを選択します。
Enable SD cheats 現在のタイトルに対応する SD カード上の .gctu を読み込みます。
Combine SD and client cheat codes クライアントが互換コードを送信した際に SD コードを追加します。
Serialize assembly execution 永続 assembly 実行の既存排他動作を有効にします。
TCPGecko thread priority Low、Normal、High、Real-time を選択します。Real-time は慎重に使用してください。

SD チートファイルは次の配置を使用します。

sd:/codes/<16桁のタイトルID>.gctu

タイトル ID は 16 桁の大文字 16 進数で記述し、拡張子を .gctu にします。

Docker ビルド

リポジトリのルートで実行します。

docker build --tag tcpgecko-plugin-builder .
docker run --rm --volume "${PWD}:/project" tcpgecko-plugin-builder make -j2

リポジトリのルートに次のファイルが生成されます。

  • TCPGeckoPlugin.wps — Aroma にインストールするプラグイン
  • TCPGeckoPlugin.elf — 開発・シンボル調査用の ELF 成果物

ログを有効にしてビルドする場合:

docker run --rm --volume "${PWD}:/project" tcpgecko-plugin-builder make DEBUG=1 -j2

詳細ログを有効にする場合:

docker run --rm --volume "${PWD}:/project" tcpgecko-plugin-builder make DEBUG=VERBOSE -j2

ビルドモードを切り替える前に、生成物を別コマンドでクリーンします。

docker run --rm --volume "${PWD}:/project" tcpgecko-plugin-builder make clean

これらのコマンドは PowerShell と POSIX 形式のシェルの両方で使用できます。Windows では Docker Desktop を Linux コンテナモードにしてください。

ネイティブビルド

依存関係をインストールし、DEVKITPRO を設定した後に実行します。

make -j2

Makefile は Docker ビルドと同じ DEBUG=1DEBUG=VERBOSE オプションに対応します。

プロジェクト構成

src/main.cpp                 プラグイン情報、ライフサイクル、設定、ストレージ
src/tcpgecko/                TCP Gecko プロトコルとコードハンドラー実装
src/tcpgecko/libs/           Wii U のFS、パッチ、サウンド、システム補助コード
src/utils/                   ログ、例外、スレッド、汎用ユーティリティ
Dockerfile                   再現可能な devkitPPC/WUPS ビルド環境
Makefile                     ソース一覧、コンパイル設定、リンク依存

コントリビューション

変更は目的を絞って読みやすくし、既存の著作権表示を維持してください。変更を提出する前に次を確認します。

  1. クリーンな通常ビルドを実行する。
  2. ログまたは診断を変更した場合は、クリーンな DEBUG=1 ビルドも実行する。
  3. git diff --check を実行する。
  4. Wii U またはエミュレーター上の実行検証と、ビルドだけの検証を分けて記載する。

クレジット

本プロジェクトは BullyWiiPlaza/tcpgecko からフォークし、Katope が Aroma プラグイン向けに移植したものです。また、TCP Gecko および Wii U homebrew のコントリビューターによるコードを含みます。個別ソースファイルにある著作権・ライセンス表示も適用されます。

ライセンス

このプロジェクトは、フォーク元と同じ GNU General Public License v3.0 で配布します。追加の表示を含むファイルには、その表示も適用されます。全文は LICENSE を確認してください。

このプロジェクトは任天堂による提携・承認を受けたものではありません。