<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://www23.atwiki.jp/amorphophallus/">
    <title>FAT, SLIM, SLIM and LITE</title>
    <link>http://www23.atwiki.jp/amorphophallus/</link>
    <description>FAT, SLIM, SLIM and LITE</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-07-10T21:57:58+09:00</dc:date>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/2.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/46.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/1.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/45.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/44.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/43.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/42.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/41.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/40.html" />
                <rdf:li rdf:resource="http://www23.atwiki.jp/amorphophallus/pages/38.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/2.html">
    <title>メニュー</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/2.html</link>
    <description>
      Since from 2009/04/13
#javascript(){{
&lt;!-- ninja-accesscounter.com --&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ct1.ninja-accesscounter.com/sc/0001023&quot;&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href=&quot;http://ct1.ninja-accesscounter.com/gg/0001023&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&quot;http://ct1.ninja-accesscounter.com/ll/0001023&quot; border=&quot;0&quot; alt=&quot;Accesscounter&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span id=&quot;NINCT1SPAN0001023&quot; style=&quot;font-size:9px&quot;&gt;&lt;a href=&quot;http://ct1.ninja-accesscounter.com/gg/0001023&quot;&gt;Ninja Counter&lt;/a&gt;&lt;/span&gt;&lt;/noscript&gt;
&lt;!-- /ninja-accesscounter.com --&gt;
}}
&amp;link_rss()
**Homebrew資料
-[[アセンブリではじめるPSPセミナー]]

**フォーラムの記事
&amp;treemenu2(title=TIFFエクスプロイトからGS終了まで,flag=ex,none){[[TIFF exploit 2009/04/12&gt;TIFF exploit]]|[[TIFF exploit 2009/04/13&gt;TIFF exploitその後]]|[[TIFF exploitの手法についてのTip&gt;TIFF exploitの手順について]]|[[Kernel access 2009/04/14]]|[[フォーラムの反応 2009/04/15&gt;フォーラムの反応]]|[[HEN for PSP3Kの動き 2009/04/17&gt;HEN for 3Kについての動き]]|[[フォーラムの雑談ネタ 2009/04/19&gt;フォーラムのネタ 2009/04/19]]|[[Davee氏のコメント 2009/04/20]]|[[FAQ 2009/04/20]]|[[Davee氏も切れた 2009/04/20]]|[[Fanjita氏の背中 2009/04/21]]}
&amp;treemenu2(title=TIFF HENビデオからHENリリースまで,flag=ex,none){[[コンセプトビデオ for HEN 2009/04/29&gt;コンセプトビデオ for HEN]]|[[PRE-IPLボソリ 2009/04/30&gt;PRE-IPLクラックについてボソリと一言]]|[[HEN進捗 2009/05/02&gt;HEN進捗]]|[[PSNの扱いについて 2009/05/03&gt;PSNの扱いについて]][[HEN進捗 2009/05/04]]|[[コンセプトビデオ その2 2009/05/05&gt;コンセプトビデオ その2]]|[[HENのセルフアップデート機能 2009/05/05&gt;HENのセルフアップデート機能]]|[[HENリリース 2009/05/06&gt;HENリリース]]}
&amp;treemenu2(title=HENリリース後から2009/06/02まで,flag=ex){[[フォーラムの雑談 2009/05/08]]|[[フォーラムの雑談 2009/05/09]]|[[フォーラムの雑談 2009/05/11]]|[[次のリリースの概要 2009/05/15&gt;次のリリースの概要]]|[[フォーラムの雑談 2009/05/20&gt;雑談 2009/05/20]]|[[ISOローダー for ChickHEN 2009/05/27&gt;ISOローダー for ChickHEN]]|[[wololo氏の疑問 2009/05/28&gt;wololo氏の疑問]]|[[フォーラムの雑談 2009/05/28]]|[[IRCの雑談 2009/05/28]]|[[IRCの雑談 2009/06/02]]}
&amp;treemenu2(title=5.03GEN-A for HENから){[[Custom Firmware 5.03GEN-A for HEN 2009/06/06&gt;Custom Firmware 5.03GEN-A for HEN]]|[[CFWEnabler 3.01リリース 2009/06/07]]|[[5.51ファームウェア公開 2009/06/12&gt;5.51ファームウェア公開]]|[[Medal Of Honor Heroesのエクスプロイト 2009/07/10&gt;Medal Of Honor Heroesのエクスプロイト]]}
----
**更新履歴
#recent(3){}
|今別件の翻訳にかかっていてしばらく更新が途絶える|

#javascript(){{
&lt;!-- ninjalyzer --&gt;
&lt;br&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://nx01.ninjalyzer.com/js/00000301/nx01.ninjalyzer.com/&quot;&gt;&lt;/script&gt;&lt;noscript&gt;&lt;img src=&quot;http://nx01.ninjalyzer.com/mobile/?00000301&quot; /&gt;&lt;/noscript&gt;
}}    </description>
    <dc:date>2009-07-10T21:57:58+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/46.html">
    <title>Medal Of Honor Heroesのエクスプロイト</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/46.html</link>
    <description>
      *Medal Of Honor Heroesのエクスプロイト
wololo氏のblogより。文章に従った訳にはしてみたがGrhipshiftとの関連がいまいち理解できなかった。動画がblogのほうにあるのでそっちを見てもらいたい（動画のURLを貼れなかった）。
----
**Medal Of Honor Heroes - The coolest exploit ever
July 10, 2009
[[原文&gt;http://wololo.net/wagic/2009/07/10/medal-of-honor-heroes-the-coolest-exploit-ever/]]
知っての通りkgswsがMedal of Honor Heroesのエクスプロイトをリリースした。エクスプロイトはクールなはずが、ほとんど役に立たないしPSPが2台必要。WiFiルータ、そしてEAのサーバにアクセスしないといけない。パッチを当てないといけない。
でもフォースはkgswsと共にあり、彼はそれを1台のPSPでさらにサーバのパッチに頼らずに実現するためにアップデートした。あってもなくてもいいようなことだが、このクールなエクスプロイトはプレイヤーが自分自身を殺したときに発動するようになっている。ビジュアル的にかっこいい。

[[エクスプロイトのファイル&gt;http://upsp.ws/moh-exploit-v2.zip]]

Daveeのカーネルエクスプロイトはモジュールをいくつか必要とするが、Gripshiftではロードされなかった。これはChickHENがlibtiff XMBバグのエクスプロイトだからだが、Gripshiftエクスプロイトにはポートされなかった。Medal of Honorの場合はどうか？すでに誰かが調査していると思う。

----    </description>
    <dc:date>2009-07-10T21:55:25+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/1.html">
    <title>トップページ</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/1.html</link>
    <description>
      #image(http://www23.atwiki.jp/amorphophallus/pub/images/psp-3000.png)

&gt;MFMなんかでネタになりそうな記事を漁ってたまに嘆きスレに貼っている。英語力は高卒程度しかないんでかんべんしてくれ。MIPSのアセンブルを勉強しようと思う。

----

**リンク
[[Wagic, Magic the Gathering, and PSP homebrews&gt;http://wololo.net/wagic/2009/04/13/eggsplanations/]]
[[Dark-AleX.org&gt;http://www.dark-alex.org/]]
[[M for Mature Forums:Playstation Portable Homebrew&gt;http://forums.mformature.net/forumdisplay.php?f=12]]
[[DCEmu Forums:: The Homebrew &amp; Gaming Network&gt;http://www.dcemu.co.uk/vbulletin/forumdisplay.php?s=34bad5c37f173cf1832e575634061c8c&amp;f=82]]
[[PSP Hacks&gt;http://www.psp-hacks.com/]]
[[嘆きスレのまとめ&gt;http://tobukuro.web.fc2.com/hen.html]]

**スレ過去ログ
[[23ch.info&gt;http://www.23ch.info/schiphol/gameurawaza/]]またはトップから&quot;嘆きの穴&quot;で検索してください

----    </description>
    <dc:date>2009-06-12T15:08:10+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/45.html">
    <title>5.51ファームウェア公開</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/45.html</link>
    <description>
      *ファームウェア5.51公開
wololo氏のblogから。
[[原文&gt;http://wololo.net/wagic/2009/06/11/psp-firmware-551-available/]]
&gt;June 11, 2009
&gt;つい[[最近にも書いた&gt;http://wololo.net/wagic/2009/06/10/the-psp-go-already-hacked/]]ことだが、ファームウェア5.51がリリースされた。まだ確認はしてないのだがChickHENのカーネルエクスプロイトを封じたようだ。実はそのためだけのリリースだ。ソニーはなんでそんなに手間がかかったんだ？
&gt;Homebrewをやりたいならアップデートはしないことだ。初心者が間違えてアップデートしてしまうのはしょうがないことだが。
&gt;[[source&gt;http://blog.us.playstation.com/2009/06/10/psp-firmware-v551-update/]]
&gt;[[EBOOT&gt;http://du01.psp.update.playstation.org/update/psp/image/us/2009_0611_148d2a024741df54eacabbc79d9f3014/EBOOT.PBP]]
----    </description>
    <dc:date>2009-06-12T15:06:30+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/44.html">
    <title>Custom Firmware 5.03GEN-A for HEN</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/44.html</link>
    <description>
      *Custom Firmware 5.03GEN-A for HEN
遅ればせだが5.03 GEN for HENのreadme.txt。これ出たらスレが一気に静かになった。CFWEnabler導入後には絶対入れないようにとのこと。ChickHEN R2のみ対応。
*5.03GEN-A for HEN
[[本文&gt;http://forums.mformature.net/showthread.php?t=3897]]
&gt;このファイルは5.03GEN-A for HENの英語による簡易版readmeである。
&gt;このアプリケーションの使用には十分な注意が必要
&gt;このファイルはWWW.PSPGEN.COMで配布されている。配布は自由だがpspgenへのリンクを忘れないでもらいたい。
&gt;**手順：
&gt;1. ChickHEN R2を起動した後、USB経由でPSPをPCに繋ぐ
&gt;2. 5.03GEN-A_for_HEN.zipをデスクトップなどに解凍する
&gt;3. LAUNCH-ME.exeをダブルクリックする（これはGUIである）
&gt;4. PSP Model：PSP-2000かPSP-3000を選択する
&gt;5. Mode：FULLを選択する
&gt;6. PSP Install ： YESを選択する
&gt;7. STARTを押す
&gt;8. ファイルがPSPにコピーされる
&gt;9. USBの接続を切る
&gt;10. ChickHEN R2からメインのEBOOT.PBPを起動する（R2のみ対応！）
&gt;11. アプリケーションがロードされたらLかRボタンを押してファームウェアをフラッシュする。これをやるのは1回だけだ
&gt;12. ○ボタンを押してカスタムファームウェアをリブートする。
&gt;
&gt;**メモ：
&gt;- フラッシュにカスタムファームウェアをインストールした後、メモリスティックのルートにある&quot;files&quot;フォルダは消してもよい。安全のためメインAPPフォルダにあるflasher.prxのファイル名を変更するか削除するほうがよい。
&gt;-もし電源を切るかPSPがクラッシュした場合は、ChickHEN R2を使ってメインアプリケーションを最初からロードしなおす必要がある。電源を切らなければ（スリープモードにしていれば）カスタムファームウェアが消えることはない。
&gt;
&gt;**既知のバグ：
&gt;Configurationメニューのリカバリモードには、CPUスピードなどのオプションがある。オリジナルのリカバリに問題があって解決できていない。バグを見つけ出すのは困難。
&gt;
&gt;このアプリケーションはオリジナルファームウェアには一切触れていない。Flash0にアクセスしたり公式ファイルをいじったりするとブリックすることになる。
&gt;Flash0とカスタムテーマには絶対触れるな。
&gt;
&gt;GENyUS
&gt;
&gt;**このリリースへの謝辞：
&gt;- Dark_Alexと彼の4年に渡る奮励に
&gt;- MiriamのM33と5.02GEN-Aのリバースに
&gt;- PSPGENチームとメンバーのサポートに
----    </description>
    <dc:date>2009-06-08T20:23:50+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/43.html">
    <title>CFWEnabler 3.01リリース 2009/06/07</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/43.html</link>
    <description>
      *CFWEnabler 3.01 リリース
ほとんどタッチの差で5.03GENに先を越されたように見えたが、謝辞にGENyUSの名前が入っていたので一部GEN-Aを参考にしてるのかもしれない。(5.03GENとは別物なのでインストールには注意)
*CFWEnabler 3.01 リリース (アップデート版)
[[本文&gt;http://sceners.org/?itemid=117]]
&gt;XenogearsとBecus25はDark-AleXにてCFWEnaberの新バージョンをリリースした。
&gt;アップデート：version.txtを使ったプラグインのバグフィックス。バージョンは3.01になった。
&gt;**変更点：
&gt;- PSP 3000のサポート
&gt;- グラフィカルインターフェイスの改善
&gt;- オプションでネットワークアップデートの追加（サーバが必要）
&gt;- オプションで公式ファームのネットワークアップデートのブロック
&gt;- いくつかの新しい設定を追加
&gt;- UMDのリージョンフリー
&gt;- Pic0/Pic1を隠蔽
&gt;- version.txtのバグ修正
&gt;- レジストリハック
&gt;- CPUのクロックアップ
&gt;- いくつかのバグフィックス
----
使い方は[[これ&gt;http://www23.atwiki.jp/amorphophallus/pages/37.html]]と同じ    </description>
    <dc:date>2009-06-08T20:15:23+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/42.html">
    <title>IRCの雑談 2009/06/02</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/42.html</link>
    <description>
      *IRCの雑談
途中から話がそれてるがNANDフラッシュのドライバの話とか。nandflash.imgをマウントするアイデアはいいと思う。
SilverSpring氏はps2dev.orgでPRXのドキュメントを書いている人。
----
&gt; 16:10 ArnoldBronson &gt; Hellcat, なんで4.20のダンプがいるんだ？
&gt; 16:11 ArnoldBronson &gt; SilverSpring: PSPブートプロセスのドキュメントは書けた？
&gt; 16:11 SilverSpring &gt; まだドラフトのままだ
&gt; 16:11 Hellcat &gt; 俺がいつか3K買ったとき初期FWにダウングレードできるかどうか試すためだよ
&gt; 16:11 Hellcat &gt; ほんとの理由はな……俺がフェチだからだ:)　いつかFATに1.00とSLIMに3.60を入れてみたい
&gt; 16:11 SilverSpring &gt; ほかのが見つからねえ
&gt; 16:11 Hellcat &gt; SilverSpring: だいたい読んだけどまだ終わってないわ :D
&gt; 16:12 Hellcat &gt; 修正箇所みっけたｗウソコードの終わりくらい
&gt; 16:12 ArnoldBronson &gt; Hellcat, 俺もやりたい！ 3.60と5.00とか
&gt; 16:12 SilverSpring &gt; Hellcat, ああ　そりゃPSPDOCのやつだ。いちお把握してる今のところ
&gt; 16:13 Hellcat &gt; おもしろい　俺の言ってたネタが当たったな :)
&gt; 16:13 SilverSpring &gt; どのネタだって？
&gt; 16:13 Hellcat &gt; 理解するのが超むずいとかそんな感じのやつ
&gt; 16:13 SilverSpring &gt; そりゃ確認済みだ
&gt; 16:13 ArnoldBronson &gt; SilverSpring, M33の一部とか5.50アップデータの実行をフックして解析するのは可能なの？
&gt; 16:14 SilverSpring &gt; くそ　PSPDOCで新しいIPLエンコードのドキュメントが見つからん
&gt; 16:14 SilverSpring &gt; 解析してどんな情報が欲しいんだ？
&gt; 16:14 Hellcat &gt; “セクタの暗号化”のところのアップデータとモジュール、ハンドル、申請と更新
&gt; 16:15 ArnoldBronson &gt; モジュールのダンプとかエンコード方法とか
&gt; 16:15 ArnoldBronson &gt; なにかの手段でそういう情報を得るのは可能なの？
&gt; 16:15 SilverSpring &gt; うんたぶんね
&gt; 16:15 SilverSpring &gt; Hellcat, なんだって？
&gt; 16:16 Hellcat &gt; ArnoldBronson: いいなそれ　なにか方法を探してみるかな
&gt; 16:16 SilverSpring &gt; ああ、そりゃセクタの暗号化の章じゃないよ。ディスクレベルの暗号化のページだ。NANDレベルの話だよ
&gt; 16:17 SilverSpring &gt; あいつらセクタまで暗号化したかもしれん　ひでえやつらだ :p
&gt; 16:17 Hellcat &gt; うん　俺が考えてたネタとは違うけどそう書いてあるね　いいこと教えようか :)
&gt; 16:17 Hellcat &gt; lol
&gt; 16:17 Hellcat &gt; 2つのレイヤで暗号化 xD
&gt; 16:17 SilverSpring &gt; ああ　暗号化はNANDのドライバがやってるし　lflashドライバじゃない
&gt; 16:17 GreyShower &gt; SilverSpringの話はいつもおもしろいな　でも俺にはよく分からんわ　お前のブログみたいにな:P
&gt; 16:18 SilverSpring &gt; lflashてのは仮想ディスクでな
&gt; 16:18 ArnoldBronson &gt; PSPSDKの環境を作るのにモジュール追加せずに済むにはどのバージョンのLinuxがいい？
&gt; 16:18 SilverSpring &gt; ディスクファイルシステムとして使える
&gt; 16:18 SilverSpring &gt; FATみたいな
&gt; 16:18 ArnoldBronson &gt; 仮想って、使ってる間はってこと？
&gt; 16:18 SilverSpring &gt; いやそういう意味じゃないけど　FATはディスクファイルシステム
&gt; 16:18 Hellcat &gt; パンドラの古いアプリを使ったときFW 3.71でNANDリストアしたらブリックしたわけがそれで説明がつくな
&gt; 16:19 SilverSpring &gt; でもNANDはディスクじゃなくてな
&gt; 16:19 SilverSpring &gt; lflashのドライバはディスクをエミュレートするようになってる
&gt; 16:19 SilverSpring &gt; だからFATみたいなディスクファイルシステムとして使えるってこと
&gt; 16:19 ArnoldBronson &gt; NANDはハードウェアだろ　lflashドライバはNANDをディスクファイルシステムとしてマウントするんじゃ
&gt; 16:19 SilverSpring &gt; NANDファイルシステムには別のやり方が必要だよ
&gt; 16:20 ArnoldBronson &gt; まじで？
&gt; 16:20 SilverSpring &gt; うん
&gt; 16:20 SilverSpring &gt; でもlfashはリアルディスクじゃない
&gt; 16:20 SilverSpring &gt; あれは仮想にすぎん
&gt; 16:20 SilverSpring &gt; 俺が言ってる仮想てのはそういう意味
&gt; 16:21 ArnoldBronson &gt; NANDフラッシュのファイルシステムとマウントされた仮想ディスクファイルシステムはどう違うんだ？
&gt; 16:21 ArnoldBronson &gt; NANDファイルシステムにはなにができない？
&gt; 16:21 Hellcat &gt; たしかNANDドライバは下層で機能するはず。NandBlockReadとかその辺がやってるような
&gt; 16:21 Hellcat &gt; その上でほかのドライバはドライブとして（flash0:/とか）マウントできる　で、FATドライバもな
&gt; 16:22 SilverSpring &gt; NANDレベルにアクセスできるようになると、NANDページを読み出したりディスクレベルでアクセスできるようになる。それから仮想ディスクのセクタを読み出したりファイルレベルでアクセスできるようになる。FATのクラスタも読み出せる
&gt; 16:22 EvilSeph &gt; すげ ;)
&gt; 16:23 SilverSpring &gt; Hellcat, そのとおり
&gt; 16:24 SilverSpring &gt; んでsceIoReadでファイルにアクセスするときは
&gt; 16:24 SilverSpring &gt; どれくらいのレイヤを経由してデータにアクセスしてるか忘れないようにしないとな
&gt; 16:24 Hellcat &gt; 2つ目のレイヤはフックできるかも。真ん中へんで。TrueCryptをやるのに :D
&gt; 16:24 Hellcat &gt; （メモリスティックでだけど）
&gt; 16:25 SilverSpring &gt; つまり　sceIoRead→クラスタを集める→セクタを集める→ページを集める
&gt; 16:26 Hellcat &gt; 32個のレイヤとか xD
&gt; 16:26 Hellcat &gt; ;)
&gt; 16:26 SilverSpring &gt; あるいは　ユーザー→ファイル→ディスク→NAND→ハードウェア　とか
&gt; 16:27 Hellcat &gt; 長くて短い話だなｗ
&gt; 16:29 ArnoldBronson &gt; xD
&gt; 16:29 SilverSpring &gt; ハードウェアから先は奥が深すぎる xD
&gt; 16:29 ArnoldBronson &gt; Hellcat, homebrewでnandflash.imgのディスクイメージはマウントできないの？:D
&gt; 16:30 SilverSpring &gt; 論理ゲートが各ビットを保持する→各ゲートからトランジスタに通す　みたいな
&gt; 16:30 ArnoldBronson &gt; アップデートしてマウントした後にFWをダンプして読み込むとか xD
&gt; 16:30 SilverSpring &gt; -&gt; →シリコン上の各トランジスタにアクセスとか xD
&gt; 16:30 ArnoldBronson &gt; んむ…で、その次は？
&gt; 16:31 ArnoldBronson &gt; 陽子＋中性子＋電子　とか
&gt; 16:31 ArnoldBronson &gt; だから何なんだ!! xD
&gt; 16:31 Hellcat &gt; 次はクォークに素粒子だろ
&gt; 16:31 Hellcat &gt; ArnoldBronson: SilverSpringが教えてくれると思うけど　たぶん可能だな
&gt; 16:31 SilverSpring &gt; うん　その流れで行くと　→電子　だな
&gt; 16:31 ArnoldBronson &gt; ヒッグス粒子とボソン粒子？
&gt; 16:31 SilverSpring &gt; ボソンじゃないと思うよ
&gt; 16:32 ArnoldBronson &gt; あう :D
&gt; 16:32 SilverSpring &gt; 中性子バースト（特異点かな）
&gt; 16:32 Hellcat &gt; タキオンとバリオンにちがいない！
&gt; 16:32 ArnoldBronson &gt; ヒッグス粒子だね
&gt; 16:32 ArnoldBronson &gt; 分かった。　→42
&gt; 16:32 ArnoldBronson &gt; コレに違いない
&gt; 16:32 SilverSpring &gt; じゃあユーザーよりこっちはなんだ？
&gt; 16:32 SilverSpring &gt; 脳みそ→ニューロン　かな
&gt; 16:32 ArnoldBronson &gt; また原子レベルに戻るんじゃね？
&gt; 16:32 SilverSpring &gt; →ほかのユーザかな
&gt; 16:32 Hellcat &gt; 脳みそ……ううむ……ときどきスルーするんですけど :)
&gt; 16:33 ArnoldBronson &gt; Hellcat, あれれないｗｗｗどこだｗｗｗ
&gt; 16:33 Hellcat &gt; lol
----    </description>
    <dc:date>2009-06-03T00:31:34+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/41.html">
    <title>IRCの雑談 2009/05/28</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/41.html</link>
    <description>
      *IRCの雑談
mfm.henでの会話。ISOローダに署名つけたらどうかという話になってる。本気かどうかは分からんが
----
&gt;&gt; 22:37 Davee &gt; Snowlight: （スレに書いてた）デベロッパとハッカーは聖人じゃないってどういう意味なんだ？
&gt;&gt; 22:38 Snowlight &gt; そのままさｗ
&gt;&gt; 22:39 Davee &gt; ちがうだろ
&gt;&gt; 22:39 eldiablov &gt; ほとんどはそうだが
&gt;&gt; 22:39 Snowlight &gt; 誤解するな　お前はいいやつだよ(^^)
&gt;&gt; 22:39 Snowlight &gt; つまり「Homebrewが違法かどうか、みんながどうあれ俺は合法ではないと思うんだが」について言ってんだよ
&gt;&gt; 22:40 Davee &gt; ほとんどは合法なんだけどね
&gt;&gt; 22:40 Davee &gt; でもそう言いきるのは難しい
&gt;&gt; 22:40 Snowlight &gt; うん
&gt;&gt; 22:40 Davee &gt; 国ごとに法律が違うからね
&gt;&gt; 22:41 SilverSpring &gt; Dragoneonってポケモンタイプか
&gt;&gt; 22:41 Snowlight &gt; そう
&gt;&gt; 22:41 Snowlight &gt; どうする？ソニーが違法だと決めつけたら
&gt;&gt; 22:41 Snowlight &gt; え　どの色が？
&gt;&gt; 22:41 SilverSpring &gt; なんつーイヤなことを xD
&gt;&gt; 22:42 Fives &gt; ポケモンすごいのに );
&gt;&gt; 22:42 Davee &gt; Snowlight: もしソニーがそう考えるならね
&gt;&gt; 22:42 Snowlight &gt; だよな^^
&gt;&gt; 22:42 Davee &gt; HENはイギリスの法律に準拠してるし
&gt;&gt; 22:42 Snowlight &gt; でもあいつら気にしてないみたいだけど
&gt;&gt; 22:42 Davee &gt; Snowlight: それに答えられるのはソニーだけだろ
&gt;&gt; 22:42 Davee &gt; xD
&gt;&gt; 22:43 Davee &gt; つまりPSPのシステムがクラックされたってことは恥だろ
&gt;&gt; 22:43 Snowlight &gt; その辺については何も言わない俺ｗ
&gt;&gt; 22:43 SilverSpring &gt; ps2devがどれくらい継続されてるか考えてみろよ
&gt;&gt; 22:43 Davee &gt; ISOローダーが活躍してる間はね
&gt;&gt; 22:43 Snowlight &gt; すぐには消えないって lol
&gt;&gt; 22:43 SilverSpring &gt; 今までに（ps2devがらみで）問題が起こったことはないし
&gt;&gt; 22:44 Davee &gt; UMDフォーマットがクズだからだよ
&gt;&gt; 22:45 Snowlight &gt; うん　そのとおり
&gt;&gt; 22:45 Davee &gt; でもISOローダーがあると悪用されるし
&gt;&gt; 22:45 Snowlight &gt; フラッシュカードでリリースされたらよかったのにｗ
&gt;&gt; 22:45 Fives &gt; それいい　NDSのカードよりちっこいやつで
&gt;&gt; 22:46 eldiablov &gt; 正直、UMDはひどい
&gt;&gt; 22:46 Fives &gt; UMDスキ
&gt;&gt; 22:46 eldiablov &gt; 外側のケースが唸り声みたいなひどい音がする
&gt;&gt; 22:46 eldiablov &gt; 壊れるしムカつく
&gt;&gt; 22:46 Fives &gt; どんな使い方したら壊れるんだよ
&gt;&gt; 22:46 eldiablov &gt; 使い続けてると前面のプラスチックカバーが凹んでしまうんだよ　しまいにゃディスクが回らなくなるし
&gt;&gt; 22:46 eldiablov &gt; だから毎回そっと取り出さないといけない
&gt;&gt; 22:47 eldiablov &gt; プレイ中に凹んでしまうとゲームがクラッシュしちまう
&gt;&gt; 22:47 Fives &gt; そんな妙なことにはなったことないがな　俺のWipeoutは頻繁に起動してるけど無事だよ
&gt;&gt; 22:47 eldiablov &gt; 俺はUMD3枚でそうなったよ
&gt;&gt; 22:47 SilverSpring &gt; おおぅ初耳だぜそんなんは
&gt;&gt; 22:47 Davee &gt; 俺のGTA:LCSでもなったよ
&gt;&gt; 22:47 eldiablov &gt; 俺のLCSもだ xD
&gt;&gt; 22:47 Davee &gt; ディスクが飛び出したよ =/
&gt;&gt; 22:47 Davee &gt; xD
&gt;&gt; 22:47 eldiablov &gt; lol そうそう
&gt;&gt; 22:47 SilverSpring &gt; そりゃたぶんUMDだけの問題だろ
&gt;&gt; 22:48 Davee &gt; それからうちの犬がKillzoneを食ったし D:
&gt;&gt; 22:48 Fives &gt; 俺はLCSのUMDはダウングレーダのときに1回しか起動してないな　あれは100％メモリスティック上で動くから
&gt;&gt; 22:48 Davee &gt; Fives: うん
&gt;&gt; 22:48 Davee &gt; UMDクソだわ
&gt;&gt; 22:48 Davee &gt; でもISOローダーを作ってしまうとみんな悪用する
&gt;&gt; 22:48 Fives &gt; ああ　正直なところISOローダーには興奮するよ
&gt;&gt; 22:49 DrLame &gt; ジャンキーの娼婦みたいにか =(
&gt;&gt; 22:48 eldiablov &gt; んー　いっこだけアイデアがあるんだけど
&gt;&gt; 22:49 Fives &gt; 俺が最初のPSPを買ってからそんな事故には会ったことないわ
&gt;&gt; 22:49 Snowlight &gt; もうメモリスティックでゲームをリリースすりゃ簡単じゃね
&gt;&gt; 22:49 SilverSpring &gt; ああ　ええと　つまり　えー
&gt;&gt; 22:49 DrLame &gt; 新しいモンハンはコンボモードってのがあってメモリスティックにセーブはできるんだけどUMDとメモリスティックが両方ないと動かせないみたいな
&gt;&gt; 22:49 SilverSpring &gt; あいや　気にするな
&gt;&gt; 22:50 Fives &gt; DrLame: そりゃいい
&gt;&gt; 22:50 Davee &gt; SilverSpring: 最後まで言えよｗ
&gt;&gt; 22:50 SilverSpring &gt; lol
&gt;&gt; 22:50 DrLame &gt; lol
&gt;&gt; 22:51 SilverSpring &gt; ええとつまり言いたいのは
&gt;&gt; 22:51 SilverSpring &gt; ISOを吸うとき署名したらいいんじゃないかと
&gt;&gt; 22:51 SilverSpring &gt; PSP固有の情報を使ってな
&gt;&gt; 22:51 SilverSpring &gt; そうするとほかのPSPで動かせない
&gt;&gt; 22:51 Davee &gt; それそれ　エリーと俺もそう考えてた
&gt;&gt; 22:51 Davee &gt; xD
&gt;&gt; 22:51 DrLame &gt; なんかとてもとても簡単に回避できそうだな
&gt;&gt; 22:51 eldiablov &gt; lol
&gt;&gt; 22:51 Fives &gt; ISOをいじれなければいいんじゃ　あと自前で署名ができなければ
&gt;&gt; 22:51 eldiablov &gt; いい考えだ
&gt;&gt; 22:52 SilverSpring &gt; 前にここでESと同じことを話してた
&gt;&gt; 22:52 Davee &gt; Matheiulhが署名のロジックについていろいろ教えてくれたよ
&gt;&gt; 22:52 Davee &gt; Fives: ｽﾊﾞﾗｼｽ
&gt;&gt; 22:52 Davee &gt; でもアルゴリズムが難解でね
&gt;&gt; 22:52 SilverSpring &gt; PS3のゲームがやってるような感じで
&gt;&gt; 22:52 SilverSpring &gt; 大量のデータをHDDにセーブするみたいに
&gt;&gt; 22:52 Fives &gt; いいアイデアだと思う　CFWのリリースでなにかあったときに使えたじゃん
&gt;&gt; 22:53 SilverSpring &gt; 誰かが無駄に時間をかけてクラックすれば回避できるけど
&gt;&gt; 22:54 Fives &gt; ああ　誰かが作ってればよかったけど今となっては3K用だな　もしかしたら遅きに記して無駄になるかもしれんが
&gt;&gt; 
&gt;&gt; 22:54 Fives &gt; PSP2をハクしてその機能を追加すりゃいいと思うよ :D
&gt;&gt; 22:55 Fives &gt; PSP2はUMDないだろうし
&gt;&gt; 22:55 eldiablov &gt; そうはならんだろ
&gt;&gt; 22:55 eldiablov &gt; あいつらはUMDにゲーム用のでかいライブラリ突っ込んでるわけだし
&gt;&gt; 22:55 DrLame &gt; UMDビデオが必要ならそうするしかないな
&gt;&gt; 22:55 eldiablov &gt; あいつらはそんなことしねえよ
&gt;&gt; 22:57 SilverSpring &gt; それはほんとだ　今から実装するんじゃ遅すぎるかもしれん
&gt;&gt; 22:57 SilverSpring &gt; こんなにISOが出回るようになってしまったらね
----    </description>
    <dc:date>2009-05-30T12:10:03+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/40.html">
    <title>フォーラムの雑談 2009/05/28</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/40.html</link>
    <description>
      *フォーラムの雑談 2009/05/28
CFEnabler for 5.03 ChickHENがISOのマウントを可能にしたんで賛成派と反対派でスレが荒れてる。なによりDaveeのバイナリを無断でリバースしたということがフォーラムのコアメンバを怒らせたようだ。
ひとぉつふたぁつとか時代劇で似たようなセリフを聞いた覚えもなくもないが。
----
**2009/05/28, 12:51 AM putchukoy
[[本文&gt;http://forums.mformature.net/showpost.php?p=58455&amp;postcount=240]]
&gt;おいおいおまいら、つまらんことで叩き合うのはやめれ。こんなとこで煽りあっても不毛だろ。
&gt;最初に言っとくが、俺はCFWイネーブラには反対はしないし賛成もしない。おまいらに少し考えてもらいたいことがあるだけだ。
&gt;
&gt;つまりだ：
&gt;
&gt;ひとつ目に、叩きあいは意味をなさない。自分の主義主張を守ろうとするのはみんなを巻き込んでコミュニティの関係を悪化させることにしかならない。
&gt;
&gt;二つ、やっちまったことはやっちまったことだ。CFWイネーブラ賛同派のやつらはアンチどもに向かって自慢したりすんな。デベロッパと取り巻きのやつらは猫っかぶりだからな。それからアンチども、軽蔑したりするな。あいつらはDaveeのポリシーと彼を支持するメンツに敵対したいだけだ。
&gt;
&gt;三つ、海賊版についてだが……もうやめねえ？どっちもいい子ぶってるだけだろ。
&gt;いやまじで。だいたいマザボと3KがハックされるまではDAXはみんなに神扱いされてたろ。よく言えばみんながCFWの恩恵に預かったわけだし。3Kの時代になってからDaveeがHENを作るまで、みんなはもう一度同じシアワセを味わいたいと望んだろ。その辺はよくは知らんが。3Kのオーナーがみんなそうであるように、俺はシヤワセになれるなにかに期待してることを認めるよ。
&gt;
&gt;四つ、アンチ共はDaveeを侮辱してて、賛同派はソニーに無礼なことを書いてる。あのな、おまいらがやってるコレはただの煽りであって侮辱にしかならん。おまいらが誰かを侮辱しても一向に構わんが、おまいらのコメントがおまいら自身を侮辱しとる。
&gt;
&gt;五つ、お前がもしアンチなら使わなきゃいいだろ。お前がもし賛同派なら自分で使うだけにしてほかで宣伝して広めるな。
&gt;
&gt;六つ、3K以前の頃のことを考えろ。CFWがPSPの世界で生まれる前のことだ。もしそれに反対してたら個人でそれを手にすることはなかっただろ。もし賛成してても、誰かが配布することに反対してたらおまえ自身はそれを手にすることはなかったはずだ。言ってること分かるよな？
&gt;
&gt;七つ、もし金を出してゲームを買わないのなら、PSPにはなんで金を出すんだ？（ほかのゲーム機でも同じだ）それから、大勢が海賊版に反対してるんなら（ISOローダーを欲しがってないやつらだが）、DAXのCFWのときにはなんで今回みたいな騒動にならなかったんだ？
&gt;
&gt;八つ、そろそろ疲れてきた。
&gt;
&gt;九つ、もう本来のトピックに戻って叩きあいはやめれ。分かってると思うが、Daveeを侮辱したり、誰が厨だとかDQNだとか、ソニーがアレだとかコレだとか、HENがああだとかこうだとか。コードなんて簡単だとかどうだとか。双方とも同じことばかりで聞き飽きてんだよ！
&gt;
&gt;頼むぜオイ。おまいらが無意味な戦いをしてるのを見るのは実に嘆かわしい。俺はここじゃ新参なんだろうけどPSPの界隈じゃ新参てわけじゃない。ここんとこずっとこのありさまをROMってたが、おまいらを落ち着かせるためになにか言わないといけないような気がしてきた。
&gt;最後に感謝されるべきやつらには、ありがとよ。だから落ち着けよな？
&gt;
&gt;もし読んでくれたんならありがとよ
&gt;Putchukoy 
----
**2009/05/28, 05:50 PM shikamaru
[[本文&gt;http://forums.mformature.net/showpost.php?p=58604&amp;postcount=268]]
&gt;&gt;引用：
&gt;&gt;LOL
&gt;&gt;それだけの理由で3Kバージョンは出ないだろ。
&gt;&gt;こいつらまじでムカつく！
&gt;&gt;やってることは他人のフンドシじゃねえか
&gt;&gt;コードとモジュールを盗むのは簡単だからな！
&gt;&gt;3K内部のことはなにも分かってねえだろ
&gt;&gt;だから3Kじゃ動かせない。絶対にな
&gt;&gt;実はこれは“野郎”が作ったんじゃなくてだな、二人の“野郎ども”が作ったんだ。つまり俺が言いたいのはｱｰｯ!!
&gt;ひとつ教えてやるが、お前が言うとおりbecus25とXenogearsはド素人なんで3Kにパッチを当てられなくて頓挫してる。でもYoshihiroとMathieuが挑戦してるよ。
&gt;そいつらには人並みの技術があるんだろうかね？
----
**2009/05/28, 06:03 PM shikamaru
[[本文&gt;http://forums.mformature.net/showpost.php?p=58608&amp;postcount=272]]
&gt;で、YoshihiroとMathieuが引き継いでやってるんだけど、二人ともまともなプログラマだと思う。少なくともXenogearsよりはな。
&gt;Xenogearsはしばらくいなかったし二人ともアップデートしてない。ホントの話だけど彼らは何度も何度も失敗してる（ソースはPSPGen。フランス語は少し読める）。
&gt;過去の経緯もあって俺は3Kで動くものが出ることを期待してるんだが、YoshihiroとMathieuは以前のときと同じでちゃんとやれそうだ。彼らがちゃんと解決できればだが。
&gt;みんなが期待してるのは分かるが高望みしすぎだ。
&gt;理由のひとつは3K用CFWのモジュールが書かれていないということだ（リリースされていないMagiXiHENは別として）。だから彼らは自前で作らないといけない。3Kで動かすためにモジュールを盗むわけにはいかんからな。
&gt;それにはマジで技術が必要だし、もしかしたら3Kをひっぺがえしてスクラッチから書かないといけないかもしれん。
----
**2009/05/08, 12:06 AM MaGiXieN
[[本文&gt;http://forums.mformature.net/showpost.php?p=58803&amp;postcount=287]]
&gt;XenogearとBecus25だが、5.02GENのモジュールをお情けにすがって無断で（あんまり言いたくないが）コピペしててな。Daveeのことは考えてもいない。
&gt;先にひとこと謝っておきたいんだが、XenogearとBecus25のCFEは5.00 M33と5.02GENモジュールがベースになっててな、5.03 M33だけじゃないんだわ。コードに5.00 M33どころか5.02GENの署名すら忘れてるのはなんでだ。
&gt;たぶんだが、やつらは誰もコードを覗かないだろうと思ったか、自分たちがフランス人だから誰も気にしないとでも思ったんだろ。
&gt;5.02GEnのときマナーを無視したMiriamとPSPGenは、あれは事故なんかじゃなかった。CFEを起動したときシステム情報に5.00 M33のシグネチャが出てたからな。彼らは分かっててやったことだ。
&gt;5.00 M33のsystemctrlは5.03上では動かないし、5.02GEnが存在しなければ無理だ。CFEはたぶん今日は出ないし、中身は1つのファイルだけじゃないはずだ。
&gt;
&gt;俺は彼らが証明するのを待ってるよ。

&gt;5.03 TDPと呼ばれるCFZWは5.02 GEN-Aのmodだ（厳密には1つのモジュールを除いて中身は同じ）。5.02 GEN-Aは俺たちが考えてるよりも多く使われてると思う。実際はな。
----    </description>
    <dc:date>2009-05-29T21:58:53+09:00</dc:date>
  </item>
    <item rdf:about="http://www23.atwiki.jp/amorphophallus/pages/38.html">
    <title>アセンブリではじめるPSPセミナー</title>
    <link>http://www23.atwiki.jp/amorphophallus/pages/38.html</link>
    <description>
      *PSP Seminar from Assembly
ps2dev.orgにあるPSPデベロップチュートリアル資料の翻訳。2006年のドキュメントなのでやや古いネタだがメモリマップ以外は基本的に同じだと思う。用語や仕様などで詳しい訳が分からなかったところもあるので随時修正する予定。
http://ps2dev.org/psp/Tutorials/PSP_Seminar_from_Assembly

訳にあたってはMFMのアーノルド氏に技術的な突っ込みに答えてもらった。
Special thanks to the technical advice of Arnold Bronson

----
*裸のPSP
&amp;br()
#center(){{{
&amp;big(){TyRaNiD著}
[[ps2dev.org&gt;http://ps2dev.org/]]
&amp;b(){August 4, 2006}
}}}
&amp;br()
----
*このプレゼンテーションで扱われる内容
***テーマは以下のとおり
-C言語で書くPSP
-PSPの内部構造
-開発ツール
**以下については扱わない
-ゲーム
-Piracy
-海賊版
-Modチップ
----
*もくじ
-1. PSP Home brewの歴史
--PSPのリビジョン
-2. PSPのハードウェア
--システムコントローラ
-3. PSPソフトウェア
--Toolchain
--カーネルモジュール
--スレッドモデル
--インターフェイスプログラミング
--PSPのセキュリティ
-4. デバッグ
--デバッグツール
*PSP Home brewの歴史
#image(fig001.jpg)
至高の存在：PSP
**&amp;u(){PSP年表}
&gt;2004年12月：日本でPSPがリリースされる。FW 1.0
&gt;2005年3月：米国でリリースされる。FW 1.5
&gt;2005年4月：Nemによる最初のhomebrew“Hello World!”。FW 1.0のみ対応
&gt;2005年6月：チームPSP-DEVがFW 1.5上で動くエクスプロイトを開発（kxploit）
&gt;2005年9月：EUでPSPがリリースされる
&gt;2005年9月：LibTIFFのエクスプロイトを使ったFW 2.0用のダウングレーダー開発
&gt;2006年4月：FW 2.0以降でGTAを使ったHome brewがはじまる
&gt;2006年6月：FW 2.5と2.6のカーネルバグが発見され、ダウングレーダーを開発
**&amp;u(){ファームウェアのリビジョン}
リリースされたPSPファームウェアの歴史を少したどってみたい。いくつかはエクスプロイトの穴に対策したバグフィックスだ。
-1.0 コード実行に若干の制限が加えられた（日本のみ）
-1.5 kxploitの実行に制限はなかった（米国のみ）
-1.51と1.52 とくにハックするところはない。2.0からのダウングレード可
-2.0 ダウングレードでなければユーザーモードのみ（libTIFFのeLoader）
-2.01 バグフィックスされたリリース。2.5か2.6にアップグレード
-2.5と2.6 カーネルバグがある。カーネルモードでダウングレードが可能（GTAのeLoader）
-2.7 デベロップは難しい
**&amp;u(){自作のコードを実行する}
どのPSPファームウェアのリビジョンでコードを実行するか
-1.0と1.5 特別なEBOOT.PBPを作れば直接実行可能
-2.0 libTIFFモードからeLoaderを使う
-2.01+ グランドセフトオートUMDとeLoaderを使う
-2.7+ 今のところデベロップの方法はない
----
*PSPハードウェア
**&amp;u(){ハードウェアの仕様について}
PSPはいくつかの複雑なカスタムコンポーネントで構成されている
-MIPSシステムコントローラ（ALLEGREX）
-Media Engine（MIPS＋VME＋AVCデコーダ）
-メインメモリ 32Mバイト
-Embedded DRAM（Media Engine用）2Mバイト 
-VRAM 2Mバイト
-多用途オーディオシステム
-480×272ピクセルのフルカラースクリーン液晶（およそ1.8:1）
-13ボタン、十字キー、アナログスティックの入力
-メモリスティックデュオ用スロット
**&amp;u(){そのほかの仕様}
いくつかのハードウェアは一般的な開発にはそれほど必要ではない
-カスタマイズされた1.7Gバイト容量の光学ドライブ（UMD）
-USBコントローラと802.11bワイヤレスイーサネット
-オーディオコーデックをコントロールするためのI2Cバス
-IrDAトランシーバ
-マルチプルUARTS（IrDA、リモートコントロール、ハードウェアのデバッグ用）
-周辺コントロールのDMAコントローラ（ユーザーアプリのDMAチャンネル用を含む）
-電力とバッテリのコントローラ
-UMDドライブのATAコントローラ
**&amp;u(){ALLEGREX}
ALLEGREXはPSPのメインプロセッサの名前である
-カスタマイズされたMIPS32コア
-追加された命令セット（ビット操作、ユーザーモード割り込みコントロール、CPU停止）
-メモリマネージメント機構（MMU）（TLBキャッシュではない）
-動作クロックの変更（およそ33MHzから333MHzまで）
-オンボードの単精度32ビットFPU
-オンボードのベクタ/マトリックス演算用コプロセッサ（VFPU）
-ハードウェアによるデバッグユニット
-16KバイトスクラッチパッドRAM（使い物にならない）
-オンボードプロファイラ（キャッシュのヒット率の監視、命令の実行など）
-分離された命令とキャッシュ領域
**&amp;u(){ベクタプロセッサ}
メインCPUの3Dグラフィックの性能を補うものとしてベクタ演算用コプロセッサ（VFPU）が用意されている
-128個（8バンク×16）の32ビットレジスタ
-複数のレジスタをひとつの値のようにして、2×2、3×3、4×4で再設定できる
-列、行、マトリクス、マトリクスの置換
-1回の演算ですべてのマトリクスの乗算ができる
-頻繁に使われる三角関数と平方根の演算命令
-オンボードでの擬似ランダム値生成
**&amp;u(){VFPUレジスタ}
#image(fig002.jpg)
画像：レジスタマップ
**&amp;u(){VFPUコードの開発}
VFPUはアセンブリで書かれていて、ToolchainアセンブラはVFPUのすべての命令をサポートする。
#image(fig003.jpg)
**&amp;u(){グラフィックエンジン}
GEはPSPコアのグラフィック機能である。
-簡素化したGLのAPI風のものが基になっている
-描画はメモリ中のディスプレイリストで行われる
-フレームバッファ、テクスチャ、ディスプレイリストのための2MバイトのVRAM
-メインメモリからテクスチャとディスプレイリストを引っ張り出すためのバスマスターモード
-VRAMの中に必要なのはフレームバッファのみ
**&amp;u(){そのほかのGEの機能}
-多様なテクスチャフォーマット、CLUT（Color LookUp Table）モード、DXT圧縮
-2Dか3Dのモードで演算
-オンボード3Dのクリッピング機能
-スプラインとベジエ面の演算
-モーフィングとスキニング
-ライティングとステンシルバッファ
-アルファブレンドと論理演算
**&amp;u(){ディスプレイリスト}
画面描画はVRAMに直接アクセスできる。適度なパフォーマンスと3D描画のためにはディスプレイリストを使うとよい。
-ディスプレイリストの各エントリは32ビット幅で、8ビットのコマンド、24ビットのデータがある
-24ビットのデータは整数型で表現される。ポインタか切り捨てられた浮動小数点数が入る
-メインリストの中にサブリストを作ることができる
-カスタマイズされたvertexのタイプ、異なるサイズ（8ビットか16ビット固定のポイント、32ビット浮動小数点数）を明示的に利用できる
-それぞれのvertexのタイプに座標、色、ノーマルか太いかを含めることができる
-vertexはリストに直接明示するかインデックスをつけることができる
-浮動小数点は24ビットに変換されるときその精度を失う
**&amp;u(){ディスプレイリスト}
ディスプレイリストはGEへの転送にDMAを用いるが、これはリストを作るときに重要な分岐を得る。
-リストは&quot;Stall&quot;アドレスで作られているときに転送できる
-リストはキャッシュされていないメモリ領域に書かれるか、あるいはリストを使う前にキャッシュデータが書き戻される必要がある
-リストはFINISHコマンドで終了されなければいけない
#image(fig004.jpg)
**&amp;u(){PSPメモリマップ}
PSPのメインプロセッサがMMU（メモリマネジメントユニット）を操作していないとき、メモリセグメンテーションの機能がある
-カーネルモードとユーザーモードの仕様上、ユーザーアプリケーションがカーネルメモリに変更を加えることは防止される
-メインメモリの32Mバイトを分割し、4Mバイトのカーネル、4Mバイトの一時メモリ、24Mバイトのユーザスペースに割り当てている
-4Mバイトの一時メモリはシステムコールのみで使用される（FW 1.0の場合はいつでも使える）。
-デバイスはメモリスペースにマップされる
-仮想メモリシステムはない。カーネル権限を持っていればすべてのメモリエリアにアクセス可能
**&amp;u(){PSPメモリマップ}
いくつかのキーになるアドレスはソースコード中で見かけるかもしれない
|先頭アドレス	|サイズ	|解説|
|0x00010000 	|16K	|スクラッチパッド|
|0x04000000 	|2M		|VRAM|
|0x44000000 	|2M		|VRAM (キャッシュされない)|
|0x08800000		|24M	|メインRAM|
|0x48800000 	|24M	|メインRAM (キャッシュされない)|
|0x88000000 	|4M		|カーネルRAM|
----
*PSPソフトウェア
**&amp;u(){コンパイラ}
PSPコンパイラはPS2開発ツールにおける経験を継承する形で開発された。
-GCC 4.0.2をベースにしている
-CとC++の開発環境がある
-VFPUを含むALLEGREXの命令セットのサポート
-標準libcとstdc++関数（stdioやiostreamなど）をサポートしたNewlibのポート
-UNIXライクなシステム用として設計されており、Windows上で使うためにはCygwinかMingWが必要（DevkitPRO）
**&amp;u(){PSPDSK}
フリーのソフトウェアデベロップメントキットはPSPライブラリへのアクセスを提供する。多くのライブラリとツールを使って簡単に開発できる
-ユーザーとカーネルのライブラリはヘッダをインポートする
-リバースエンジニアリングされたlibGUとlibGUM
-シンプルなPCMオーディオライブラリ
-デバッグをサポートするためのライブラリとユーテリティ関数
-カスタムエクスポートテーブルを作るためのツール。ELFファイルのポストプロセスと実行形式をPRXにするためのコンバータ
-カスタムEBOOT.PBPのための圧縮・解凍ツール
-PSPとSDKを使うための60以上のサンプルコード
**&amp;u(){そのほかの開発環境}
今のところCとC++はPSPソフトウェア開発の主な言語である。これでソースコードを書くことに制限はない。
***そのほかのオプション：
-LUA（LUAPlayer）- PSPのためにポートされたLUA。分かりやすいインターフェイスとライブラリ
-Python - PSPのためにポートされたPythonと拡張された部分。
-Flash - FW 2.7以降のPSPで稼動する機能限定版フラッシュプレイヤー
**&amp;u(){カーネルモジュール}
PSPカーネルは多くのモジュールで構成されている。モノリシックカーネルではない。ユーザーアプリケーションはよく出来たモジュールである。
-モジュールはいつでもロードでき実行できる
-モジュールをロード後にロケーションの修正かあるいはリロケートができる
-ほかのモジュールから関数のエクスポートとインポートができる
-カーネルには、ほかのOSにあるようなプロセスという概念はない
**&amp;u(){実行形式のファイル}
PSPはELF形式のモジュールをベースにしている
カーネルはネイティブコードで書かれた3つのタイプのファイルを実行できる
-ELF - ベーシックELF形式。ハードコードされたアドレスにリンクされる（一般的には0x8900000）
-PRX - カスタマイズされたELF形式。メモリ中のどこにでもリロケートできる
-~PSP - 暗号化されたELFかPRX
PSPSDKはELFとPRXを生成できるが暗号化された~PSPは生成できない。
**&amp;u(){モジュールの情報を得る}
モジュールを正しくロードし、また実行を追跡するためには、モジュール情報のセクションが含まれていなければならない
***モジュール情報は以下の内容から成る：
-モジュール名
-モジュールの属性。カーネルモジュールなど
-関数テーブル
-バージョン
PSPSDKは十分役に立つ。ただソースコード中にPSP_MODULE_INFOと明記すればよい。
**&amp;u(){インポートとエクスポートのライブラリ}
カーネルモジュールを正しく使えるようにするために、ユーザーモードアプリケーションへライブラリセットをエクスポートできる
インポート関数はファイルに断片化されている。これはSDKが提供する手段である。
-ユーザーからカーネルへの遷移はシステムコールゲートウェイを経由する
-ユーザーからユーザーへのコールは直接ジャンプすればよい
-カーネルライブラリのために、関数名の先頭32ビットがSHA1でハッシュされており、NIDで認証されている
-かつて多くの問題を生んだ経緯があって、ユーザーライブラリからカーネルモジュールへはリンクできないようになっている
エクスポートファイルを使って自分のコードからエクスポート関数が呼べるなら、通常それは必要ない
**&amp;u(){モジュールのロード}
モジュールのロードと実行は理論的には非常にシンプルだが、注意すべき点もいくつかある。
-ユーザーモードでモジュールをロードできる場所には厳密な制限がある
-カーネルモードでライブラリにリンクしようとするのにはいくつか制限がある
-カーネルはELF形式のモジュールはロードできるが、プレーンテキストのPRXカーネルモジュールはロードできない。SDKにはこれらの制限事項へのパッチが用意されている
#image(fig005.jpg)
**&amp;u(){カーネルのリセット}
カーネルはモジュールのための最適なリソース管理をしないので、PSPをクリーンな状態にするためにカーネルをリセットする
***通常2通りの手順がある：
+1 sceKernelLoadExec - カーネルをリブートして新しく実行する
+2 sceKernelExitGame - カーネルをリブートしてXMBのメニューに戻る
**&amp;u(){システムメモリマネージャ}
おそらくこれがカーネルの最重要点である。リブート後に即ロードされる。
***以下のような感じだ：
-PSPのメモリアロケートを管理する
-メインメモリのセグメントを3つのパーテーションに分割する（カーネル/Media Engine/ユーザエリア）
-リソース管理（UIDテーブル）
-システムイベントハンドラ
-デバッグ機能の実装
*リソース管理
PSPのカーネルはシステムの状態を示すさまざまな情報を保持しており、それらは一貫したUIDテーブルで管理されている。
-UIDテーブルはツリー階層構造を保持している
-どのUIDにも名前が割り当てられており、名前は一意でなくてもよい
-どのカーネルモジュールもそれぞれのUIDタイプを明記できる
-どのエントリもUIDタイプの情報が入ったコントロールブロックを保持している
-カーネルは特定のタスクを実行するUIDをコールできる
-UIDの数値はランダムなものではなくエンコードされたアドレスである
&gt; void *cntladdr = 0x88000000 + ((uid &gt;&gt; 5) &amp; ˜ 3) ;
**&amp;u(){スレッドの概要}
PSPのスレッドモデルはかなりシンプルである。PS2で使われていたIOPカーネルのものに似ている。
-スレッドは互いに強調する
-スレッドの優先度はスケジューリングにより、数値の低いほうが優先度が高い
-少量のスレッドローカルストレージ（TLS）。CPUのK0レジスタを参照する
-VFPUを使うためにはスレッドを作成し、PSP_THREAD_ATTR_VFPU属性を設定しなければならない
**&amp;u(){スレッドの作成}
スレッドは実行の前にまず作成されなければならない。スレッドが一度作成されたら、実行できるようにUIDが与えられる。
#image(fig006.jpg)
**&amp;u(){スレッドの状態}
#image(fig007.jpg)
画像：簡単な状態遷移のダイアグラム
**&amp;u(){同期プリミティブ}
PSPのカーネルはスレッドの同期とコントロールの手段をいくつか提供する。すべての待機関数はオプションでタイムアウトが使える。
-排他制御
--	セマフォ
--	割り込みコントロール
-メッセージング
--	イベントフラグ
--	メッセージボックスとパイプ
--	コールバック
-同期メモリプール
--	変数のプール
--	固定値のプール
-タイマー
--	アラーム
--	仮想タイマー
**&amp;u(){排他制御（mutex）}
セマフォは同期されたカウンタである。PSPにはmutexタイプはないが、セマフォはそれをシミュレートできる。
-sceKernelCreateSemaとsceKernelDeleteSemaでそれぞれ生成と削除ができる
-sceKernelWaitSemaとsceKernelSignalSemaでそれぞれロックとアンロックができる
割り込みの無効化はローコストのmutexで実現できる
#image(fig008.jpg)
**&amp;u(){イベントフラグ}
イベントフラグは2つ以上のスレッド間で“イベント”をやりとりするもの
-1個のイベントフラグは32×1ビットのイベントから成る
-1個かそれ以上のビットは1回にまとめて待機する
-各ビットはオートかマニュアルでリセットモードにセットできる
#image(fig009.jpg)
**&amp;u(){コールバック}
コールバックはカーネルが特別なイベントをスレッドコンテキストに送るために使われる。スレッドはコールバックの発生に応じるか、あるいは特定のwait関数を呼ばなければならない。コールバック関数の一般的な添え字はCBである。
#image(fig010.jpg)
**&amp;u(){割り込み}
カーネルはユーザーモードで正確に割り込みするためのコールバックメカニズムを提供する
-割り込みコールバックは独立した状態のスレッドでコールされる
-呼ぶと待機状態になりそうな関数はコールしてはいけない
#image(fig011.jpg)
**&amp;u(){スレッドプログラミングのヒント}
***スレッドプログラミングを簡単にするいくつかのヒント：
-過密なループはさせず、可能ならどこかで待機状態にさせるのがよい
-スレッドの優先度は慎重に選び、割り込みのあるスレッドを優先させる
-waitシステムコールの戻り値を常にチェックする
-待機関数を呼ぶときはデッドブロックを検知するためにタイムアウト機能を使うとよい
-スレッドが削除されて終了したのならリソースに問題がある
**&amp;u(){ファイルIO}
カーネルは、有効なデバイスのファイルにアクセスするための標準的なIOサブシステムを提供する
-異なるタイプのIOデバイスを作成できる
-ファイルIOデバイスはプリフィクス（接頭辞）のついたデバイス名でアクセスできる
-デバイスの別名を設定できる
-ブロックデバイスはsceIoAssignを使ってファイルシステムデバイスにマウントできる
-POSIXに似たシステムコール（例：sceIoOpenでファイルオープン、sceIoWriteで書き込みなど）
 
ファイルIOデバイスのプリフィクスは2つの部分から成る
-デバイス名
-オプションでファイルシステムユニットの番号
***たとえばこんな感じで：
|ms0:|	 メモリスティックファイルシステム|
|host0:|	 ホストファイルシステム (PSPLinkエクステンション)|
|ﬂash0:|	 フラッシュファイルシステム|
|irda0:|	 IrDAトランシーバのキャラクタドライバ|
|tty0:|	 テキスト端末キャラクタドライバ|
**&amp;u(){グラフィックライブラリ}
VRAMにピクセルを直接描くような簡単な描画のためのライブラリ
-フレームバッファに16ビット（565, 5551, 4444）か32ビットカラーを設定できる
-sceDisplaySetFrameBufでフレームバッファを設定できる
-sceDisplayWaitVblankStartは現在のスレッドを次のvblank割り込みまで待機状態にし、同期を有効にしたりほかのスレッドが実行されるのを可能にする
#image(fig012.jpg)
**&amp;u(){グラフィックライブラリ}
libGUはPSPのハードウェアアクセラレータによる描画の主要な開発手段である。
これはリバースエンジニアリングされたオフィシャルライブラリをベースにしている。
-libGUはGraphic Engineとディスプレイハードウェアを回避するためのラッパーの役目をする
-自動的にディスプレイリストを管理しオンラインとオフラインのリストを作成できる
-フレームバッファとディスプレイの切り替えを設定できる
libGUMはlibGUでマトリクス操作を直接扱うための補助ライブラリである
-浮動小数点とVFPUによる演算
-GLのようにマトリクスのスタックを保持する
ライブラリは図形マトリクスを設定するためのユーティリティ関数を提供する。図の回転など

PSPで画面描画する方法はLibGUとlibGUMだけではない。
***ほかにも重要なライブラリが利用可能：
-PSPGLはGLスタイルのインターフェイスを持った、ハードウェアアクセラレータのためのライブラリである
-SDLは2Dグラフィックで有用なライブラリである

***ほかにもポートされた画面描画のためのライブラリがある：
-libPNGはPNGデコード用
-libJPEGはJPEGデコード用
-FreeTypeとTrueTypeFont用ライブラリもある
**&amp;u(){オーディオライブラリ}
PSPのオーディオハードウェアにはエクスポートされたライブラリがいくつかある。Media Engineとの組み合わせによりほとんどCPUを使わずにatrac3オーディオを出力できる。
-PSPSDKにはシンプルなストリーミングオーディオライブラリがある。コールバックは次のデータが要求されたときに発動する
-カーネルはatrac3デコーダは利用できる。atrac3のエンコーダは今のところWindowsのみで利用可能である
-libmadのポートとMP3と、そしてOgg/Vorbisデコードのためのlibogg/libvorbisがそれぞれ用意されている
-モジュールプレイバックのためのmikmodのポート。fmodのポートは商用のみしかない
**&amp;u(){ジョイパッド}
ジョイパッドを使うのは簡単で、直接的にではなくてもデモはしやすくデバッグもしやすい
-すべてのデジタルボタンはビットマスクにマッピングされている
-アナログスティックは2つの符号なし8ビットにマッピングされている
#image(fig013.jpg)
**&amp;u(){セキュリティ対策とは？}
PSPの開発者は非公式なコードがシステムを乗っ取るのを阻止するためにいくつかのセキュリティ対策を実装している
-ハードウェア暗号化エンジン
-連続した認証付きブートプロセス
-ゲーム中のバグを緩和するための、カーネルモードとユーザモードの分離
-カーネルはモジュールのタイプによって、ロードの可否とどこからロードされるかについての制限を与える
-実行ファイルとブートリストをカスタム暗号化/署名するラッパのフォーマット
**&amp;u(){PSPのブートプロセス}
書き換えられたカーネルがフラッシュROMからロードされることは可能なのだが、開発者は一連の認証でカーネルの書き換えを阻止しようとしている
-カーネルは暗号化されたフラッシュROMに置かれている
-カーネルのブートは以下の通り：
--1. ブートストラップがフラッシュからステージ1のIPLを復号化する
--2. ステージ1のIPLはメモリ上のステージ2ローダーを復号化する
--3. ステージ2のローダーはカーネルをフラッシュからロードして復号化する
-ステージ2のローダーはいくつかの重要なモジュールを実行前にチェックする（FW 1.5+のみ）
-スクラッチからカスタムファームウェアを作るのでない限り（デベロップは）難しい
**&amp;u(){スレッドの保護}
スレッドには特権レベルがあり、それはカーネルモードかユーザーモードのどちらで実行できるかに関わる。これはカーネルメモリをユーザーアプリケーションから保護する役割がある。
-新しいスレッドを生成するときに特権レベルを拡大することはできない
-スレッドプリミティブは自分を生成した親の権限を継承する
-同じ特権レベルにないとスレッドの列挙やスレッドプリミティブを使うことはできない
-分割されたスタックがシステムコールによって遷移されているとき、アタックやデータの漏洩を防止する
-すべてのカーネル関数は引数のポインタをスレッドの特権レベルでチェックする
**&amp;u(){ユーザアプリケーションの実行形式をロードする}
特権レベルが異なればモジュールのロードも異なる。カーネルモードではチェックが入ったりする。
***モジュールがどのようにロードされるかの例：
-1. 実行形式のチェック（ユーザーモード、カーネルモード、暗号化コード、非暗号化など）
-2. そのモードで許可されている特定デバイスからロードされたかチェック（UMDからのロードはユーザーモードでのみ可能）
-3. 実行ファイルをメモリにロード（もしくは復号化して）する
-4 モジュールを正しいタイプのスレッドで実行する（例えばカーネルモジュールはカーネルモードで）
**&amp;u(){本当にセキュアなのか？}
セキュリティの程度はその脆弱性と同じくらいだ
-PSPの脆弱性の連鎖はソフトウェアにあり、唯一の保護機能はカーネルモードにアクセスできない
-セキュリティは曖昧になってしまっている（訳注：obscurity、ダジャレだと思う）
-システムを完全にコントロールするにはPSPが実行する2つのソフトウェアの欠陥が必要である
--	1 ゲームをエクスプロイトして任意のコードを実行できる（GTAとか）。ユーザーモードコントロール。
--	2 カーネルエクスプロイトはすべてのシステムをコントロールできる（FW 2.5と2.6のLoadExecバグ）
-FW 1.0と1.5はまったくセキュリティ対策がされておらず、カーネルモードで直接ELFを実行できる。
----
*デバッグ
**&amp;u(){デバッグ}
CかC++でソースコードを書いているとmakeやデバッグ中にバグが這い出るのはまったく避けようがない
コンシューマ機器であるがゆえに本当の意味で直接デバッグできる手法はない
-例外ハンドラのデフォルトの動作はループある。そのうち電源オフになってしまう
-デバック時のテキストを即座に画面に出力する手段がない
-もちろんすべてがダメというわけじゃない。バカ高いソニーのデベロップメントキットでなくてもデバッグする方法はある。
**&amp;u(){ブラインドデバッグ}
当初、唯一の選択肢は手探り状態でデバッグすることだった。アプリケーションをビルドし、PSPにコピーして実行する。
SDKにはこのプロセスを助けるためのいくつかの機能がある（FW 1.0と1.5用）
-オンスクリーンとSIOで文字を出力する
-Basic SIOベースのGDBスタブ
-特定の例外ハンドラを追加する関数
-スタックトレースとスレッドの列挙のための関数群
厳密には正しい開発手法ではないが、すべてのアプリケーションはメモリスティックに配置されなければならない。FW 2.00以降だけかもしれないが。
**&amp;u(){PSP Inside}
開発とハッキングのためのツール。Hitmen作。
#image(fig014.jpg)
画像：PSP Insideの操作
-PSPの実行状態を表示する
-命令をリアルタイムで逆アセンブルできる
-メモリスティックかフラッシュなどから新しいモジュールをロードできる
**&amp;u(){PSPLink}
PSPLinkはPSP上でテキスト端末環境を提供する開発ツールである
***提供される機能のいくつかを示す：
-SIOとWiFiとUSBを経由して端末からアクセスできる
-USBとhost:deviceからPCのファイルシステムにアクセスできる
-あらかじめ設定されたtty（stdinとstdout、stderr）
-ソフトウェアのバグを捕まえる例外ハンドラ
-WiFiとUSB経由のリモートでGDBスタブを使いソースレベルでデバッグできる
-リアルタイムでカーネルを監視（スレッド、モジュールリスト、メモリダンプとパッチ）
**&amp;u(){例外}
回避できないクラッシュが発生する場合、PSPLinkかPSP Insideを使えばCPU例外を分離できる。この情報を元にクラッシュする場所を特定して修正できる。
-アプリケーションをビルドするときコンパイラに-gオプションを指定しておけばデバッグ情報を有効にできる
-例外の発生にはそれがなぜ起こるかの要因を示す兆候がある
-例外はEPCレジスタも出力するが、これは例外が発生したアドレスを示す
-EPCの値をpsp-addr2lineに渡すと実行形式からソースの行番号を得られる
-例外が出たら以下を試してさらにGDBを使うとよい
&gt; psp−addr2line −e program.elf 0x08900340
&gt; main.c : 68
**&amp;u(){リソースとリファレンス}
PSPプログラミングに役立ついくつかの情報源
-http://www.pspdev.org/ - Toolchainとsubversionによるアーカイブ
-http://psp.jim.sh/pspsdk-doc - PSPSDKドキュメントのオンライン版
-FreeNode IRC（irc.freenode.net）の#pspdevチャンネル - ここに来ればヘルプしてやれると思う、たぶん

----    </description>
    <dc:date>2009-05-29T20:40:56+09:00</dc:date>
  </item>
  </rdf:RDF>

