PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

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

[edit]

CM: --
TB: --

page top

PSPの実行モジュールは、PlayStation2 の様に、ELF形式のモジュールをベースにしています。


カーネルは、ネイティブコードで書かれた3通りのファイルを実行可能。

【 実行可能なファイル形式 】

ELF - ベーシックELF形式
      ハードコードされたアドレスにリンクされる(一般的には0x8900000番地以降へ)
prx - カスタマイズされたELF形式
      メモリ中のどこにでもリロケートできる。プラグイン等が そう。
~PSP - 暗号化された実行モジュール

PSPSDK では、ELF や prx は生成できるが、~PSPへの暗号化は出来ません。

【 モジュール情報の構成 】
・モジュール名
・モジュールの属性。カーネルモジュールなど
・関数テーブル(未調査/情報求む)
・ヴァージョン

書き方

PSP_MODULE_INFO(モジュール名, モジュールの属性, ヴァージョン正数, ヴァージョン小数);
PSP_MAIN_THREAD_ATTR( メインスレッドの属性 );


書き方の説明
PSP_MODULE_INFO( )
 モジュール情報を設定するマクロ
  ・モジュール名
    英数記号での文字列(モジュールの名前 を 記述)
  ・モジュールの属性
    PSP_MODULE_KERNEL もしくは 0x1000 で カーネルモード
    PSP_MODULE_USER もしくは 0 で ユーザーモード
    0x0800 で VSH モード
    0x1006 もあります (詳細不明)
  ・ヴァージョン正数
    モジュールのヴァージョン情報(正数部分)/おまけで記述する
  ・ヴァージョン小数
    モジュールのヴァージョン情報(小数点以下部分)/おまけで記述する

PSP_MAIN_THREAD_ATTR( )
 メインスレッド(main関数を実行するスレッド)の属性を設定するマクロ
   カーネルモードなら 0 を記述
   ユーザーモードなら THREAD_ATTR_USER を記述


サンプルを書いてみる

カーネルモードのサンプル

PSP_MODULE_INFO("NICEGAME1", PSP_MODULE_KERNEL, 0, 0);
PSP_MAIN_THREAD_ATTR(0);


ユーザーモードのサンプル

PSP_MODULE_INFO("NICEGAME2", PSP_MODULE_USER, 0, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);




実行モジュールをバイナリダンプしてみた。

150.PBP
0000:0000 00 50 42 50  PBP
0000:3251 7E 50 53 50 ~PSP

330.PBP , 550.PBP
0000:0000 00 50 42 50  PBP
0000:3445 7E 50 53 50 ~PSP

某.PBP (Homebrew)
0000:0000 00 50 42 50 PBP
0000:1BFB 45 4C 46   ELF

俺作ゲーム.PBP
000000 00 50 42 50  PBP
003C6C 45 4C 46   ELF

music.prx
000000 7F 45 4C 46  ELF

ScreenShot2.prx
000000 7E 53 43 45 40 ~SCE@
000040 7E 50 53 50   ~PSP


【 参考にしたページ 】
アセンブリではじめるPSPセミナー(資料)

【 関連記事 】
PSPプログラミング EBOOT.PBPの構造を知ろう!
PSPプログラミング PSP の 1.50カーネルとか、3.xxカーネルとか についての講釈
PSPプログラミング EBOOT.PBP 生成用 Makefile 記述方法
PSPプログラミング プラグイン生成用 Makefile 記述方法

関連記事
スポンサーサイト

[edit]

CM: 0
TB: 0

page top

この記事に対するコメント

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/184-87ace54b
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-04