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

2010年9月23日更新

PSPSDKで作成される EBOOT.PBP ファイルの構造を、もっと詳しく調べてみました。
余計なファイルを含まない状態の EBOOT.PBP を解析して書いていますので、他の自作ソフトとはアドレスが異なる場合があります。

知っておいて欲しい事
PSPは32ビットCPUです。指定アドレスからの32ビットデータの4バイトはリトルエンディアン方式で並びます。左の値から右の値を、下位から上位、という風に解釈して下さい

つまり、下記の場合は
アドレス 00000000:AA 01 C8 22
 0x22C801AA という値が入っている、という事です


NAGAOKASTATIONさんの資料を参考にしました。
http://nagaokastation.com/psp_ebootpbp.html

先頭40バイトが EBOOT.PBPヘッダー部分
アドレス   値
00000000 00 50 42 50 "\0PBP"
00000004 00 00 01 00
00000008 (PARAM.SFO の先頭アドレスへのオフセット値:28 00 00 00)
0000000C (ICON0.PNG の先頭アドレスへのオフセット値:NULLだと C0 01 00 00)
00000010 (ICON1.PMF の先頭アドレスへのオフセット値:NULLだと C0 01 00 00)
00000014 (ICON1.PNG の先頭アドレスへのオフセット値:NULLだと C0 01 00 00)
00000018 (PIC1.PNG の先頭アドレスへのオフセット値:NULLだと C0 01 00 00)
0000001C (SND0.AT3 の先頭アドレスへのオフセット値:NULLだと C0 01 00 00)
00000020 (DATA.PSP の先頭アドレスへのオフセット値:プログラム部分 C0 01 00 00)
00000024 (DATA.PSAR の先頭アドレスへのオフセット値:大抵、ここで終わる)

次の41バイト目からは PARAM.SFO ファイルの内容です
PARAM.SFO の先頭16バイト部分の内訳は資料参考しました
アドレス  値
00000028 00 50 53 46 "\0PSF"
0000002C 01 01 00 00
00000030 ?? ?? ?? ?? ラベル(Key)が格納されている先頭アドレス
00000034 ?? ?? ?? ?? データ(Keyの値)が格納されている先頭アドレス
00000038 ?? ?? ?? ?? ラベル数(ソースコード中の関数の個数)
その後、ラベル数×16バイトの構成でデータが存在(データ長が可変します)
↓↓(16バイト の うちわけ)
:0000 ?? ?? ラベルが格納されているオフセットアドレス
:0002 ?? 0 (不明)
:0003 ?? 2:文字列(unicode)/4:数値/0:バイナリ
:0004 ?? ?? ?? ?? 実際のデータ領域
:0008 ?? ?? ?? ?? データ領域
:000C ?? ?? ?? ?? データが格納されているオフセットアドレス
 ↑↑この構成が、ラベル数の分だけ存在して、次のセクションへ

-- ↓↓この位置(000000BC)は、アドレス:00000038 の 内容値に
16をかけて計算で求める事ができます --

アドレス 値(文字列)
000000BC "BOOTABLE" 00
000000C5 "CATEGORY" 00
000000CE "DISC_ID" 00
000000D6 "DISK_VERSION" 00
000000E3 "PARENTAL_LEVEL" 00
000000F2 "PSP_SYSTEM_VER" 00
00000101 "REGION" 00
00000108 "TITLE"
0000010C 00 00 00 00 01 00 00 00
00000114 4D 47 00 00 ← "MG.."

アドレス  値
00000118 "UCJS10041" 00 00 00 00 00 00 00 ← ゲームID(16バイト)
00000128 "1.00"
0000012C 00 00 00 00
00000130 01 00 00 00 ← (視聴年齢制限レベル:0x01~0x0B)
00000134 "1.00"
00000138 00 00 00 00 00 80 00 00

ゲーム名セクション(短い場合もあります。可変長)
00000140 最長128バイトのUTF-8文字列。
000001BF 末尾は 0x00

(ICON0.PNG セクション:ファイルサイズの分だけ追加されます)
(ICON1.PMF セクション:ファイルサイズの分だけ追加されます)
(ICON1.PNG セクション:ファイルサイズの分だけ追加されます)
(PIC1.PNG セクション:ファイルサイズの分だけ追加されます)
(SND0.AT3 セクション:ファイルサイズの分だけ追加されます)

(DATA.PSP セクション:ELFセクション)
参考サイト:http://d.hatena.ne.jp/tatsu_pc/20100501/1272709062
アドレス  値
000001C0 7F 45 4C 46 マジックナンバー "\127ELF"
000001C4 01 32bitアーキテクチャ(ELFCLASS32)
000001C5 01 2の補数、リトルエンディアン(ELFDATA2LSB)
000001C6 01 ELF仕様のバージョン(EV_CURRENT)
000001C7 00 ターゲットOSとアーキテクチャ(ELFOSABI_ARM)
000001C8 00 ABIのバージョン(ELFOSABI_ARMに準拠する)
000001C9 00 00 00 以降、予約済み
000001CC 00 00 00 00 ( 〃 )
000001D0 02 00 08 00 ( 〃 )

プログラム部分展開 開始位置セクション
000011D8 暗号化されてないのでニーモニックコードが良く分かります
     メインメモリーに読み込まれる部分です

(DATA.PSARセクション)


年齢制限PSPゲームを作るなら、視聴年齢制限レベルの部分を弄ってやればイイという結論。
しかし、カスタムファームウェアって、視聴年齢制限レベルを切った状態がデフォルトなのですが(^^;;;


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

[edit]

CM: 2
TB: 0

page top

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

あの・・・

CFWのソースとか、持ってませんか?
あったらほしいのですが・・・。

tumugi #- | URL | 2010/06/23 16:46 * edit *

あるよん

Runtime error さんのファイルボードに色々あります。
CFW3.10OE-A, CFW3.40OE-A のソースコード!

右の PSP HOMEBREW開発リンクから探してチョ

猫山猫宗 #jjrqi.Ao | URL | 2010/06/23 17:29 * edit *

page top

コメントの投稿

Secret

page top

トラックバック

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

page top


h o m e |


 

2017-05