CPUクロック変更

以前にPSPの動作クロックは実は222MHzだったと発表された事が記憶に新しいですが
一部で関係者のブログに「ライブラリにより制限されている〜」と言った事が
書かれていたので,実は本当は333MHz出るけどライブラリが押さえているだけでは?
との憶測がありましたが、今回有志がとうとうクロック変更APIを発見して
幻だった333MHz動作が実現されることとなりました。

実際に333MHz化してみると効果は絶大です。
222MHzが333MHzになるので動作が1.5倍になるわけですから
ノーウェイトで動かしていたフリーアプリなどは見違えますw

それでは使用方法の説明に入ります。
まずはいつものように関数定義をstartup.sに記述します。

STUB_START "scePower",0x40010000,0x20005
STUB_FUNC 0x4B7766E,PowerSetCallback
STUB_FUNC 0x737486F2, scePowerSetClockFrequency
STUB_END


上記のようにscePower内に追加してください。
STUB_STARTの後ろの数字を上げるのも忘れないように!

後はソース内で
scePowerSetClockFrequency(333,333,166);
と呼ぶだけです。
実に簡単wしかし命令自体を見つける事は相当難しいと思われるので
有志の方々には尊敬してやみませんね^^


2005/06/17追記:
単体でのクロック変更や電源周りの命令もわかりました。

STUB_START "scePower",0x40010000,0xe0005
STUB_FUNC 0x04B7766E,PowerSetCallback
STUB_FUNC 0x0afD0d8b,scePowerIsBatteryExist
STUB_FUNC 0x1e490401,scePowerIsBatteryCharging
STUB_FUNC 0x27f3292c,scePowerBatteryUpdateInfo
STUB_FUNC 0x28e12023,scePowerGetBatteryTemp
STUB_FUNC 0x483ce86b,scePowerGetBatteryVolt
STUB_FUNC 0x737486F2,scePowerSetClockFrequency
STUB_FUNC 0x862ae1a6,scePowerGetBatteryElec
STUB_FUNC 0xb4432bc8,scePowerGetBatteryChargingStatus
STUB_FUNC 0xd3075926,scePowerIsLowBattery
STUB_FUNC 0x843fbf43,scePowerSetCpuClockFrequency
STUB_FUNC 0xb8d7b3fb,scePowerSetBusClockFrequency
STUB_FUNC 0xfee03a2f,scePowerGetCpuClockFrequency
STUB_FUNC 0x478fe6f5,scePowerGetBusClockFrequency

STUB_END


scePowerSetCpuClockFrequency(int); CPUクロック設定
scePowerSetBusClockFrequency(int); バスクロック設定
scePowerGetCpuClockFrequency(); CPUクロック取得(標準222)
scePowerGetBusClockFrequency(); バスクロック取得(標準111)
long scePowerGetBatteryVolt(); バッテリーの充電電圧
long scePowerIsBatteryCharging(); バッテリー接続状態(なし=マイナス,充電中=1,アダプタなし=0)
long scePowerGetBatteryTemp(); バッテリーの温度