CTRPFのKeyboardについてのお話 マイナーすぎる3DS備忘録

CTRPFを作っていた時につまずいた時の話です。 何があったのか いつからかCTRPFの選択式のキーボードは、このようにデフォルトで1番目の要素が選択されるようになっていました。 自分的に嫌なのでどうにか選択をクリアできないかと思い探してみると、 それっ…

citro3dを学ぶ #1 GPUのShader命令

完全に備忘録です。#1とありますが順番になっているわけではありません。内容はバラバラです。そもそも#2をかくかどうかすらわかりません。 今回はShader命令について書いていきます。オペランドの指定の仕方などはある程度はわかることを前提とします。 目…

マルチスレッドとイベント マイナーすぎる3DS備忘録

3DSでマルチスレッディングを行う際に使用するEventについて書いていきます。 イベントの作成 Result svcCreateEvent(Handle* event, ResetType reset_type); 引数にポインタを渡して作成したイベントのハンドルを取得しましょう。ResetTypeについてはこちら…

EventのResetTypeについて マイナーすぎる3DS備忘録

ResetTypeとはlibctruで定義されているEventやTimerのリセットに使用される列挙型です。Eventのリセットに使用されるのは、 RESET_ONESHOT RESET_STICKY の2つです。今回はこの2つの違いについて書いていきます。 RESET_ONESHOT RESET_ONESHOTは、Signalが送…

3DSにおけるPortとServiceの違い マイナーすぎる3DS備忘録

3DSにはsvcSendSyncRequestというプロセス間通信に使用する関数があります。この関数ではセッションハンドルを用いて他プロセスに処理を頼んだり、情報を取得したりすることができます。このセッションハンドルは、svcConnectToPortまたはsrvGetSessionHandl…

GSPGPU_FlushDataCacheについてのメモ マイナーすぎる3DS備忘録

GSPGPUってなんかいいですよね。 そんな中の関数の1つ!GSPGPU_FlushDataCache!これの正体はただ svcFlushProcessDataCacheを呼び出すだけなんです!通りで引数が一緒な訳ですね。終わり!

ciaファイルからのromfs抽出と展開

romfsとは、ゲームソフトにおける音楽やモデルのデータなどさまざまなものが入っているファイルである。ciaファイルにはromfsの他にもう1つ、exefsというものがあるが今回は触れない。romfsの抽出、展開はよくHackingToolkit9DSなどを用いて行われることが多…

C++をよく理解してCTRPFを作ろう

C++をあまり理解せずにCTRPFを作ってる人がやりがちなことをまとめてみました。 あるある 謎の変数 バラバラな命名 Process::Write地獄 謎のoffset 謎の0x Keyboardのif地獄 キモイ命名 goto乱用 ローマ字だらけ ガッタガタのインデント 番外編 黒魔術 ある…

新版3gxにシンボル情報埋め込まれてる件

新版の3gx(Luma3DS v10以降で読み込める3gx)にはなんとデフォルトではシンボル情報が埋め込まれています。 シンボル情報とは? 簡単に言うと、関数や変数の名前、アドレスなどの情報です。 何ができる? シンボル情報を読み取るGhidraなどのリバースエンジニ…

CTRPFの関数まとめ OSD.hpp(Screenクラス)編

CTRPF関数まとめ第3回です。 今回はOSD.hpp編です。目次 OSD.hppには何がある? 使い方 Screen::GetFramebuffer Screen::DrawPixel Screen::DrawRect Screen::Draw Screen::DrawSysfont Screen::ReadPixel Screen::Fade (CTRPF v0.7.1より追加) OSD.hppには…

CTRPF関数まとめ Utils.hpp編

CTRPF関数まとめのUtils.hpp編です。Utilsクラスには、便利な関数がたくさんあります。 目次: Utils::Format Utils::ToHex Utils::ToString Utils::Random Utils::Random Utils::FilePicker Utils::DirectoryPicker Utils::OpenInHexEditor (CTRPF v0.6.0よ…

Luma3DSのビルド方法(作り方)

日本語のLuma3DSの作成方法の記事が1つも無いので、作り方を軽く紹介します。今回はv9.1をビルドしていきます。※この記事では、devkitProとPythonがインストールされていることを前提として説明していくので、まだインストールしていない方はまずこの2つをイ…

CTRPF関数まとめ File.hpp編

CTRPFの関数について少し解説していこうと思います。いつまで続くかな? 間違いがあるかもしれませんが、ご了承ください。目次: Fileクラスとは? Fileクラスの使い方 File::Create File::Rename File::Exists File::Open File::Close File::Read File::Writ…