2007年9月27日木曜日

LuaPlayer+GPSキタ━━━━(゜∀゜)━━━━ッ!!

ついに LuaPlayer で USBGPS キタ━━━━(゜∀゜)━━━━ッ!!


なににハマってたかって,
・カーネルモードの EBOOT.PBP は BIOS1.50 以下でないと動かない.(3.30OE-B とかでは GAME150/ の下に置かないと動かない)
・usbacc.prx / usbgps.prx は BIOS3.xx でないと動かない (GAME150/ の下に置く EBOOT.PBP ではロードできない)

らしいという事が試行錯誤の末見えてきたんだけど,元々のオリジナルの LuaPlayer の構成が,

GAME150/ の下:
EBOOT.PBP (カーネル)
+-loadlib.prx (カーネル)
+-luaplayer.prx (ユーザ)


になってて,単に usbacc.prx/usbgps.prx をロードするように改造しても,↓

GAME150/ の下:
EBOOT.PBP (カーネル)
+-loadlib.prx (カーネル)
+-luaplayer.prx (ユーザ)
 +-usbacc.prx ←sceKernelLoadModule() 失敗
 +-usbgps.prx ←sceKernelLoadModule() 失敗


BIOS1.50 では usbacc.prx/usbgps.prx のロードで死亡,

EBOOT を BIOS3.xx で起動しようとしても↓

GAME/ の下:
EBOOT.PBP (カーネル) ←XMB から起動できない
+-loadlib.prx (カーネル)
+-luaplayer.prx (ユーザ)
 +-usbacc.prx
 +-usbgps.prx


という板ばさみになって,ぜんぜん前に進まなかったわけ.

そこで LuaPlayer を以下のように大改造してみた.↓

GAME/ の下:
EBOOT.PBP (ユーザ)
+-luakernel.prx (カーネル) ←元々の EBOOT の機能を prx 化したもの
+-loadlib.prx (カーネル) ←現状,sceKernelLoadModule() 失敗
+-luaplayer.prx (ユーザ)
+-usbacc.prx
+-usbgps.prx


これがビンゴ!! とりあえず USB GPS の機能は一通り使えて,無事 LuaPlayer で現在位置を取得する事が出来た.ヽ(´ー`)ノ (写真のモザイクかかってるところが,現在座標ね)

現状,loadlib.prx がロードできない (3.xx ではカーネルモードの prx の制限が厳しくなったので,luakernel.prx もロードできるようになるまで苦労したよ(゜ーÅ)ほろり),USB DISK モードが使用できない等いろいろ制限もあるが,ま,目的の「データロガーに GPS で取得した位地データも記録する」には支障がなさそうなので,よしとするか.

0 件のコメント:

コメントを投稿