メモリスティック入れ替えを必要としない1.50での起動方法が公開されました。 http://putoamo.addr.com/index2.html これは、XMB用のEBOOT.PBP(従来の1枚目)のディレクトリとして /PSP/GAME/HOMEBREW%/ を使用し、実行用のEBOOT.PBP(従来の2枚目)のディレクトリとして /PSP/GAME/HOMEBREW/ を使用するものです。HOMEBREWの部分はなんでも良いわけですが、後ろの%が重要ってことです。雰囲気的には、パス名生成にsprintfみたいなのを使っていて、そこを突いたんでしょうか。
やっぱ手を動かさないとダメですねぇ。といいますか、モチベーションが足りない今日この頃。次は何をしたらいいんでしょうねぇ。
なんとなく思ったんですが、1.51でもXMBでのチェックを通れば起動はできちゃうかもしれません。1.5でのスワップと同じ方法で、1枚目のEBOOT.PBPをアップデータにしておいて、2枚目に起動したいののabosolute elfを入れて、同様に入れ替えしたらどんなもんでしょう。自分でテストしろって話もありますが。だれかやってみた人がいましたら、結果を教えてもらると。
GPUが解析されればメチャクチャ速くなるって話があるようですが、少なくともエミュレータにおいては大きな効果はないんじゃないでしょうか。非整数倍率の拡大表示などでは大きな効果がありそうですが、単に表示だけだとすごいというほどの効果はないような。逆にバッテリが早くなくなりそうだし。ある程度は速くなると思いますけどね。
GPUの解析自体は、現時点では困難というわけじゃありません。すごく面倒だけど。あと、結果を基にどんなライブラリを作るかってのは難しそう。
http://www.only4.info/psp-dev/ において1.5での自作ソフト起動方法が公開されました。これは起動時にメモリスティックを入れ替えることにより起動を可能にしたものです。これは以下の背景事情によると思われます。
という話です。なのでメモリスティックの入れ替えが必要なわけで。XMBでもロード時でも認識してくれるファイルを作ることができれば、1.5でも入れ替えしなくて読めるようになるはずですが、まだ難しいようで。
ちなみに、1.51以降ではチェックが厳しくなっているようで、別な方法を探さないとダメな模様。
現時点においてファームウエアを書き換えることは可能です。適切なプログラムを組めば、1.0,1.5ともに内蔵フラッシュメモリの全域について更新することができます。ですが大変危険なのでオススメはしません。もしそういうプログラムを作ろうとする場合、以下に注意したほうが良いでしょう。
従来のstartup.sにおいて、_start直後でgpを設定していますが、これは初期開発段階における試行錯誤の残骸です。現時点において、このgp設定がなくても動作するという報告がありますので、おそらくユーザー側で明示的に設定してやらなくても大丈夫なような雰囲気です。とりあえず動けばいい主義者なので、安全側に振ってあるところの再検討は後回しになりがちなため、まだ詳細な検討をしていません。
カーネルは.rodata.sceModuleInfoにあるgp初期値を参照しユーザー側に処理を渡す前に設定していると思われます。これも詳細に確認をしたわけではありませんので注意。単に想像です。
と書いていて思ったんですが、もしかしたらこのへんからカーネルに入り込めるかも。1つの可能性ですね。