PSP自作ソフト開発スレ ver.10
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2009/09/20(日) 23:37:20ID:VMGMes0b自作ソフト開発者向けスレッドです。
要望・クレクレなどは作者本人が望んだ場合以外スルーで。
前スレ
PSP自作ソフト開発スレ ver.9
http://schiphol.2ch.net/test/read.cgi/gameurawaza/1231340677/
0238名無しさん@お腹いっぱい。
2009/12/10(木) 12:58:26ID:HyUO1YBOそれはただprxをビルドするだけのサンプルなので
prx側をアプリからロードして使う際に使用する関数一覧ファイル
(*.S)のエクスポートはされません
そのファイルを用意する方法が分からなくて
0239名無しさん@お腹いっぱい。
2009/12/10(木) 13:04:13ID:UGwfOpNl夕方くらいまででよければ昔やったのがあるはずなので
教えれるけど
最近使ってないので仕様変わってなければいいけど
0240名無しさん@お腹いっぱい。
2009/12/10(木) 13:07:37ID:HyUO1YBO助かります
時間はそちらの都合がつく時で構いません
お願いします
0241名無しさん@お腹いっぱい。
2009/12/10(木) 18:46:13ID:gSjZmJpx//ネットで転がってるサンプルだとprx内部でスレッドを起動してるのもあるけど
//そうじゃなくても動いた
#include <pspkernel.h>
#include <stdlib.h>
PSP_MODULE_INFO("TestPRX", PSP_MODULE_USER, 1, 0);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
void TestMain(void)
{
return;
}
int module_start(SceSize args, void *argp)
{
return 0;
}
int module_stop(void)
{
return 0;
}
0242名無しさん@お腹いっぱい。
2009/12/10(木) 18:51:16ID:gSjZmJpx//インデントなしにそのまま貼り付ければOK
//カーネルモード関連の機能を使いたい場合は
//#でコメントにしてある方を使ってください。
//以下を拡張子expで保存してください
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0, 0x8000)
PSP_EXPORT_FUNC_HASH(module_start)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_END
# カーネルメモリに読み込む場合
#PSP_EXPORT_START(TestPRX, 0, 0x4001)
# ユーザーメモリに読み込む場合
PSP_EXPORT_START(TestPRX, 0, 0x0001)
PSP_EXPORT_FUNC(TestMain)
PSP_EXPORT_END
PSP_END_EXPORTS
0243名無しさん@お腹いっぱい。
2009/12/10(木) 18:53:35ID:gSjZmJpx//prx本体のソース名称はmain.cということになってますので
//自分の好きなように直してください。
//
TARGET = TestPRX
OBJS = main.o
INCDIR =
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
BUILD_PRX = 1
#これがSを出力するために必要
PRX_EXPORTS = $(TARGET).exp
LIBDIR =
#PSP_FW_VERSION=390
LDFLAGS = -mno-crt0 -nostartfiles
LIBS =
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
0244名無しさん@お腹いっぱい。
2009/12/10(木) 18:56:09ID:gSjZmJpx//module_startとmodule_stopは入れなくてOKです。
//モジュール関連の関数で呼びます。
void TestMain(void);
0245名無しさん@お腹いっぱい。
2009/12/10(木) 18:56:49ID:gSjZmJpx//ヘッダーは通常の手続きと同じです。
//module_startとmodule_stopは入れなくてOKです。
//prx関連の関数で呼びます。
void TestMain(void);
0246名無しさん@お腹いっぱい。
2009/12/10(木) 18:59:42ID:gSjZmJpxmakefile
TestMain.exp
TestMain.h
これだけあればOKです
0247名無しさん@お腹いっぱい。
2009/12/10(木) 22:32:14ID:qxRb0Pir>>241-246
詳しくありがとうございます
しかしprxビルドと同時にSファイルは
エクスポートされませんでした
>>246はロードされる側のprxをビルドする際に
必要なファイルですよね?
それなら言われてる通りですが
prxを使う側の場合はSファイルもないと
それらのファイルだけではビルド時に
リンク失敗してしまいます
0248名無しさん@お腹いっぱい。
2009/12/11(金) 00:22:18ID:EeloYRHl2つ目の修正はpsp-build-exportsの前はTABでいいのでインデント
を必ずいれてください。
LIBS =
↓
LIBS = -lpspsdk
include $(PSPSDK)/lib/build.mak
↓
include $(PSPSDK)/lib/build.mak
all:
psp-build-exports -s $(PRX_EXPORTS)
0249名無しさん@お腹いっぱい。
2009/12/11(金) 14:32:48ID:GJFVZHiL無事、Sファイルが作成されました
最後まで丁寧にありがとうございます
0250名無しさん@お腹いっぱい。
2009/12/11(金) 17:35:51ID:y+YZK8+I0251名無しさん@お腹いっぱい。
2009/12/11(金) 18:17:13ID:y+YZK8+Inop
0x4c25ea72
二つの命令(?)が出てきた。二つ目をMIPSのオペコード表に照らし合わせるとMove to Loになるんだが・・・
意味がわからんorz
0252名無しさん@お腹いっぱい。
2009/12/11(金) 19:52:49ID:WrjWqkzNどっち使っても読み込めるし
PSPSDKに同梱しないのはCFWが追加した機能だからと予想
0253名無しさん@お腹いっぱい。
2009/12/11(金) 20:43:15ID:y+YZK8+I…もしかしてsceでもできる?
0254名無しさん@お腹いっぱい。
2009/12/11(金) 22:50:45ID:WrjWqkzNsceで読み込んでるけど普通に使えてるなぁ
kuで呼び出してる他人のソースをsceに書き直しても普通に動いてた記憶が
0255名無しさん@お腹いっぱい。
2009/12/11(金) 23:37:04ID:y+YZK8+I参考になるソース教えてくれると助かる。お願いします。
0256名無しさん@お腹いっぱい。
2009/12/11(金) 23:59:02ID:WrjWqkzNモジュールを読み込んで実行する処理をまとめたpsp〜系の奴を主に使ってる
なんか俺違う話してるのかな…
0257名無しさん@お腹いっぱい。
2009/12/12(土) 00:53:05ID:QSYSHAfn0258名無しさん@お腹いっぱい。
2009/12/12(土) 11:11:03ID:QSYSHAfnfixupimportはユーザーモードで弾かれるから違うだろうし・・・
0259名無しさん@お腹いっぱい。
2009/12/12(土) 12:21:05ID:cbMC3at6プラグイン化することに興味が出てきて出来る範囲でやってみたのですが、
ロードは出来てるもののプラグイン上から関数を呼び出すと値が正しく返ってきません
その際のファイルです
ttp://www.dotup.org/uploda/www.dotup.org448652.zip.html
簡単で構わないので間違っているところがありましたら教えて下さい
0260名無しさん@お腹いっぱい。
2009/12/12(土) 12:39:57ID:QSYSHAfnまさかと思って戻り値じゃなくてポインタ渡しで値を取得したら普通に値が帰ってきました。
WrjWqkzN氏、こんなアフォにつきあってくれてありがとうございました。
0261名無しさん@お腹いっぱい。
2009/12/12(土) 12:46:52ID:Jq60wD1H結合してなさそうだな
prxの場合動的に読み込みするのでSファイルでどういうエントリが
あるか教える必要があるんだがそれを組み込まなければ正常に
動かないよ
0262名無しさん@お腹いっぱい。
2009/12/12(土) 12:50:20ID:cbMC3at6Sファイルはprx側(include/prx)をmakeすると作成されます
その後、prxをロードする側のメインアプリをmakeすれば
そのSファイルを取り込んでコンパイル完了します
0263名無しさん@お腹いっぱい。
2009/12/12(土) 12:56:30ID:Jq60wD1H0264名無しさん@お腹いっぱい。
2009/12/12(土) 13:01:22ID:Jq60wD1HsceKernelLoadModuleは使ってないな
pspSdkLoadStartModuleでやってる
使い方はほぼ一緒だけど以前みたときは中でいろいろやってたな
0265名無しさん@お腹いっぱい。
2009/12/12(土) 13:02:32ID:Jq60wD1HloadResult = sceKernelLoadModule(path, 0, NULL);
↓
loadResult = pspSdkLoadStartModule(path, PSP_MEMORY_PARTITION_USER);
とかかな
0266名無しさん@お腹いっぱい。
2009/12/12(土) 13:07:46ID:cbMC3at6そのファイルがそうです
>>265
その方法でprxをロードさせて試してみます
0267名無しさん@お腹いっぱい。
2009/12/12(土) 13:25:15ID:cbMC3at6pspSdkLoadStartModule("ms0:/TestPRX.prx", PSP_MEMORY_PARTITION_KERNEL);
に変えてやってみましたが
プラグイン上のaddTest関数(2つの引数をただ足した値を返す)を呼び出した際
ret = addTest(2,7);
//実行結果
printf("addTest(2,7) = %d\n",ret);
としたとき 2+7 の 9 はなく、まったく違った値が返ってきます
0268名無しさん@お腹いっぱい。
2009/12/12(土) 14:09:11ID:Jq60wD1HPSP_EXPORT_FUNC_HASH(addTest)
↓
PSP_EXPORT_FUNC(addTest)
かなあ
0269名無しさん@お腹いっぱい。
2009/12/12(土) 14:29:02ID:cbMC3at6前調べた時に PSP_EXPORT_FUNC は
結局 PSP_EXPORT_FUNC_HASH を呼び出してるので
動作に変化はなかったです
0270名無しさん@お腹いっぱい。
2009/12/12(土) 14:34:59ID:Jq60wD1HLIBDIR下あたりに
LDFLAGS = -mno-crt0 -nostartfiles
LIBS = -lpspsdk
0271名無しさん@お腹いっぱい。
2009/12/12(土) 14:44:03ID:cI7LvUlB作る前に他人のコードを色々見てましたが
prx側の各関数の書き方はどれも普通に書いてる物がほとんどなので
アドレス渡しとかしなくても動くはずなのですが、上手くいかないです
0272名無しさん@お腹いっぱい。
2009/12/12(土) 14:50:43ID:ihgLYVOIint LoadStartModule(char *module, int partition)
{
SceUID mod = kuKernelLoadModule(module, 0, NULL);
if (mod < 0)
return mod;
return sceKernelStartModule(mod, 0, NULL, NULL, NULL);
}
0273名無しさん@お腹いっぱい。
2009/12/12(土) 15:21:48ID:Jq60wD1H0274名無しさん@お腹いっぱい。
2009/12/12(土) 15:35:02ID:cI7LvUlB質問してるのは私だけだと思います
関数から値が正常に返ってこない原因が
なんとか分かればいいのですが
0275名無しさん@お腹いっぱい。
2009/12/12(土) 15:38:14ID:Jq60wD1H確認してみては?
0276名無しさん@お腹いっぱい。
2009/12/12(土) 15:44:44ID:cI7LvUlB実はユーザーモードの方は先日試してダメで
カーネルモードに変えたのが今の状態です
>>259のファイルを皆さんの環境でビルドした物を動作させた場合は
addTest(2,7) を呼び出すとちゃんと 9 と返ってきますか?
0277名無しさん@お腹いっぱい。
2009/12/12(土) 15:48:06ID:cI7LvUlBinclude/prx/ 内のプラグイン側を先にmakeして
その後、メインの方をmakeして下さい
あとはEBOOT.PBP を適当なディレクトリに入れてGAME へコピー
TestPRX.prx はMSのルートへコピーすれば実行出来るはずです
0278名無しさん@お腹いっぱい。
2009/12/12(土) 16:02:35ID:Jq60wD1H関係なさそうだけど気になったのは自作関数が最後にあったことかな
module_startの前に持ってきてはどうかな?
0279名無しさん@お腹いっぱい。
2009/12/12(土) 16:22:50ID:9gu7xibbfixupimportとか俺には何かわからない別の話をしてるかと思ってたが
俺の勘違いじゃないようで安心したw
結局kuはなんだったんだ…
>>265
それだと後のsceKernelStartModuleで二重に読み込むことになる
というか呼び出し側に問題はない
addTestの戻り値をよく見てみ
どうみてもPSPのエラーコードで、ライブラリがリンクされてねえぞって言ってる
というわけでprx側のMakefile見てみたが色々おかしい
もう一度SDKに付いてるサンプルを元に書き直してみ
0280名無しさん@お腹いっぱい。
2009/12/12(土) 16:32:07ID:FVlJxpCzそこまで指摘しないといけないのかねw
先生にネット全体で検索するようにお願いすれば
海外のサイトとかでいっぱいでてくるんだけどなw
0281名無しさん@お腹いっぱい。
2009/12/12(土) 16:33:31ID:FVlJxpCz俺はID:Jq60wD1Hね
今借り物のマシンでメインの方は故障中で開発環境入れれないので
テストできないのでできる人やってあげてくれ
0282名無しさん@お腹いっぱい。
2009/12/12(土) 16:38:12ID:9gu7xibb検索してわかるなら最初からやってろよ…
0283名無しさん@お腹いっぱい。
2009/12/12(土) 16:46:45ID:FVlJxpCzこっちでぐぐるとゴミが大量に引っかかるので
PSP_EXPORT_FUNC
こっちで検索がいいな
この辺とかそのまんまprxの作り方と起動かけるアプリのサンプルが載ってる
http://forums.ps2dev.org/viewtopic.php?p=64110&sid=8c1ff281b8d5ea4f1f5e8fce2bc35d4b
0284名無しさん@お腹いっぱい。
2009/12/13(日) 20:04:48ID:BezMxPl2その辺の情報も欲しいな
0285名無しさん@お腹いっぱい。
2009/12/13(日) 20:59:16ID:HO5s6cZ4普通に9が返って来たよ
0286QSYSHAfn
2009/12/14(月) 00:48:38ID:KfDMvN/g0287名無しさん@お腹いっぱい。
2009/12/14(月) 10:36:50ID:0MH/5tzbプラグイン起動時に何もさせない場合に
int module_start(SceSize args, void *argp)
{
return 0;
}
こうすると確かにビルド失敗するね
なんでも良いから適当な命令入れると通るけど謎だ
0288名無しさん@お腹いっぱい。
2009/12/14(月) 10:43:25ID:qE7oyJuomakeに
LDFLAGS = -mno-crt0 -nostartfiles
入れておけば問題なかったような
0289名無しさん@お腹いっぱい。
2009/12/14(月) 10:56:22ID:KfDMvN/gたぶんそれコンパイラの最適化が悪さしてると思う
0290名無しさん@お腹いっぱい。
2009/12/14(月) 11:00:15ID:0MH/5tzbあ、それと上でも言ってる人いるけどカーネルモードで
USE_KERNEL_LIBC=1
にすると、リンクされるのが最小ライブラリになるから
float とか扱えなくなって困る・・・・
0291名無しさん@お腹いっぱい。
2009/12/14(月) 11:03:02ID:qE7oyJuo0292名無しさん@お腹いっぱい。
2009/12/14(月) 11:14:50ID:0MH/5tzbカーネルだと最上級の権限得られてるから
Hackしてるなぁと言う爽快感、みたいな
呼び出す側がカーネルモードの場合はファイル構成がおかしくない限り
ユーザーモードのprxは確実に呼び出せる?
それなら必要な部分はラッパー関数をユーザーモードのprxで作っておいて
呼び出すのが一番いいのかな
0293名無しさん@お腹いっぱい。
2009/12/14(月) 11:15:49ID:KfDMvN/g0294名無しさん@お腹いっぱい。
2009/12/14(月) 11:17:33ID:qE7oyJuo確か
# カーネルメモリに読み込む場合
#PSP_EXPORT_START(TestPRX, 0, 0x4001)
これで作ったprxはユーザーモードのprxはアプリと普通に
やり取りできたはずなんだよね
>>293
思想は確かにあるが仕様上できないことがあるのに思想(キリで
先に進まなければ意味ないと思うけどw
0295名無しさん@お腹いっぱい。
2009/12/14(月) 11:18:16ID:qE7oyJuoこれで作ったprxはユーザーモードのprxやアプリと普通に
0296名無しさん@お腹いっぱい。
2009/12/14(月) 11:25:33ID:KfDMvN/gそだねw
さて、prx周りの疑問が解けた事だし色々作るかな
#000000がちょうどprxに関わりそうな事を言っているので(偶然か?)試してみる
0297名無しさん@お腹いっぱい。
2009/12/14(月) 11:27:48ID:qE7oyJuo本人でしょ
先日質問がここであったときに久々に調べてたら
MyLib.oとprxが一致したのであそこの人だと思ってたけど
0298名無しさん@お腹いっぱい。
2009/12/14(月) 11:30:33ID:qE7oyJuo0299名無しさん@お腹いっぱい。
2009/12/14(月) 11:31:00ID:0MH/5tzb悩みが全て解消された、ありがと
ちょっとユーザーモードでラッパー関数作ってくる
0300名無しさん@お腹いっぱい。
2009/12/14(月) 11:32:35ID:KfDMvN/g俺はDXLP使ってるからRSSでチェックしてるだけ
0301名無しさん@お腹いっぱい。
2009/12/14(月) 11:34:28ID:0MH/5tzb内容としては簡単な物なのだけど続けて聞いても良い?
0302名無しさん@お腹いっぱい。
2009/12/14(月) 11:36:20ID:qE7oyJuo0303名無しさん@お腹いっぱい。
2009/12/14(月) 11:46:03ID:KfDMvN/gでもCWCが提示する値と1%ぐらいずれるw
適当に初期化してpspDebugProfilerGetRegsとpspDebugProfilerClearを交互に呼んで、CPUのサイクル数をシステムのサイクル数で割ったんだが・・・
他に何か必要な要素があるのかな
prx関連あんまり把握してなかったのでここ数日のログに助けられました^^
なので、>>296さんの仰る通り偶然というわけでもないです。
0305名無しさん@お腹いっぱい。
2009/12/14(月) 11:48:55ID:0MH/5tzb存在しないフォルダを作る処理で階層が深い場合は一気に作れないから
自分なりに作ってみたのだけど、これよりも無駄がないスマートな方法あるかな?
使い方としては CreateDir("ms0:/Test/Sub/"); のような感じです
void CreateDir(const char* dir)
{
char path[256],*p ,*sp = (char*)dir;
int fd;
// ms0:/ の後ろまで飛ばす
*p = strstr(dir,"/");
p++;
// ms0:/ 以降にあるフォルダの階層をだどる
while(*p && (p = strstr(p,"/")) != NULL)
{
// パスを作る
strcpy(path,dir);
path[p-sp] = '\0';
//フォルダが存在するかどうか
fd = sceIoDopen(path,);
if (fd < 0)
{
//存在しない、フォルダ作成
sceIoMkdir(path, 0777);
}
sceIoDclose(fd);
p++;
}
}
0306名無しさん@お腹いっぱい。
2009/12/14(月) 11:51:43ID:0MH/5tzb× fd = sceIoDopen(path,);
○ fd = sceIoDopen(path);
0307名無しさん@お腹いっぱい。
2009/12/14(月) 11:52:22ID:qE7oyJuo前提条件として自前で順番にフォルダを作る必要がある・・・ということにして
あとPSPの開発環境で再現してる標準関数でできたりはしない?
私も微妙にずれます。が、1%程度なら問題ないと思います
プロファイラの値を同時に使っている所為かもしれないですね
0309名無しさん@お腹いっぱい。
2009/12/14(月) 11:54:50ID:qq3gww8YそのCPU使用率の算出コード、参考にしたいです
公開とかされませんか?
0310名無しさん@お腹いっぱい。
2009/12/14(月) 12:03:55ID:KfDMvN/gお世話になってるぜ
原因それかもしれない。検証・・・できない気がするが
>>309
おk
module_startでpspDebugProfilerEnableとpspDebugProfilerClearを呼ぶ。
CpuUsageRateとかいう関数作る。内部はこんな感じ
pspDebugProfilerGetRegs(®s);
pspDebugProfilerClear():
return 100 * regs.cpuck / regs.systemck;
で、グローバル変数としてstatic PspDebugProfilerRegs regs;とか宣言すればいい
module_stopでpspDebugProfilerDisableを呼ぶようにすればモジュール開放時にプロファイラが止まってくれる
0311名無しさん@お腹いっぱい。
2009/12/14(月) 12:08:14ID:KfDMvN/gモジュールを読み込んだ瞬間からプロファイラの機能が有効になる
CpuUsageRateが呼ばれる度に、前回の呼び出し(またはモジュールを読み込んだ瞬間)から今回の呼び出しまでの平均CPU使用率が出る。
モジュールを開放した時点でプロファイラの機能が無効化される
バグ
二重に読み込むと何が起こるかわからん。バグというより仕様だなこれは
0312名無しさん@お腹いっぱい。
2009/12/14(月) 12:08:40ID:qq3gww8Y助かりました、自分でも試してみます
0313名無しさん@お腹いっぱい。
2009/12/14(月) 12:10:39ID:qE7oyJuo>二重に読み込むと何が起こるかわからん。バグというより仕様だなこれは
中で二重読み込みを防止するための管理とかしてないのかね?w
0314名無しさん@お腹いっぱい。
2009/12/14(月) 12:17:18ID:KfDMvN/gまぁ同じprxを二重にロードするなんて普通起きないと思うが・・・
0315名無しさん@お腹いっぱい。
2009/12/14(月) 12:20:55ID:qE7oyJuoprx側というより関数側ね
prx側はまあ自分で面倒みろって話だけどさw
0316名無しさん@お腹いっぱい。
2009/12/15(火) 10:40:13ID:+yBFUqqH生データをそのままセーブ、ロードも可能
おまけにGameKeyのDump機能付き
こんなプラグインを作ったのだが需要ある?
まだBeta段階だから機能は最低限のしかない
いずれはメニュー表示や、さらに独自暗号化してるデータに対して
各自がスクリプトでデータ処理出来るような機能も付けるつもり
0317名無しさん@お腹いっぱい。
2009/12/15(火) 11:11:20ID:7RL9GCLh0318名無しさん@お腹いっぱい。
2009/12/15(火) 11:56:51ID:X6qrx4ZJ0319名無しさん@お腹いっぱい。
2009/12/15(火) 12:01:33ID:vC5Aes/1先日のスレの伸びに驚いたくらい
0320名無しさん@お腹いっぱい。
2009/12/15(火) 12:12:15ID:X6qrx4ZJあとはこの辺で名前を出さずに色々やっている人がゴロゴロと
0321名無しさん@お腹いっぱい。
2009/12/15(火) 14:47:07ID:NZpcYFHc0322名無しさん@お腹いっぱい。
2009/12/15(火) 15:38:33ID:8wTdzokl最小限のリンクで済むように(ファイルサイズを小さく)するにはどうすれば良い?
0323名無しさん@お腹いっぱい。
2009/12/15(火) 17:11:52ID:uEQlmyTB0324名無しさん@お腹いっぱい。
2009/12/15(火) 17:33:38ID:LHRt/u06うpよろしく
0325名無しさん@お腹いっぱい。
2009/12/15(火) 18:19:29ID:86/pxb1n>GameKeyのDump機能付き
これの方が重要w
できればソース公開していただきたい・・・
0326名無しさん@お腹いっぱい。
2009/12/15(火) 18:25:54ID:YWAw6ZHWar d hoge.a fuga.o
0327名無しさん@お腹いっぱい。
2009/12/15(火) 18:49:30ID:1eKuIvhF>>316の人、さりげなく凄い発言してるw
自分も是非そのプラグイン欲しい
0328名無しさん@お腹いっぱい。
2009/12/15(火) 19:27:34ID:X6qrx4ZJそれ意味ない
0329名無しさん@お腹いっぱい。
2009/12/15(火) 22:24:59ID:X3g8+oRY初歩的な質問ばっかりでそれは無いわw
外部の技術者がたまに何か投下するぐらいだろ
それとも皮肉で言ったのか
>>320
憂煉はDXLPとか作ってるが、猫山とかでたらめ記事しか書いて無いじゃん
0330名無しさん@お腹いっぱい。
2009/12/16(水) 09:56:59ID:u5p2bC9W>>327
一応は需要あるみたいかな
今まだ調整中だけど今日中には配布出来そう
ちなみにまだBeta段階
ソースコードはライセンスをどうするかとか
その他も色々面倒なので公開する予定ないです
0331299
2009/12/16(水) 13:06:24ID:ePYIr0iC色々やってみたのだけど上手くいかないです
カーネルモードだと正常にロードされます
ユーザーモードのprxをロードしようとすると
//pspSdkLoadStartModule 、 カーネルエリアに読込を試みる
pspSdkLoadStartModule(user_prx,PSP_MEMORY_PARTITION_KERNEL);
戻り値: 0x80020132 (SCE_KERNEL_ERROR_PARTITION_MISMATCH)
//pspSdkLoadStartModule 、 ユーザーエリアに読込を試みる
pspSdkLoadStartModule(user_prx,PSP_MEMORY_PARTITION_USER);
戻り値: 0x80020132 (SCE_KERNEL_ERROR_ILLEGAL_LIBRARY )
mod = sceKernelLoadModule(user_prx, 0, NULL);
sceKernelStartModule(mod, 0, NULL, 0, NULL);
戻り値: エラーコードではない値
となり、最後はエラーコードではないもののロードされていません
ロードする側(EBOOT.PBP)、ロードされる側(prx)のソースです
ttp://www1.axfc.net/uploader/Sc/so/64477.zip
自分ではもうお手上げなので、何か分かる方いましたら教えて下さい
0332名無しさん@お腹いっぱい。
2009/12/16(水) 13:13:44ID:Ws/KbU9Y属性と呼んでいいのかわからんがユーザーモードで利用するか
カーネルモードで利用するかを変えた場合は
Sの中身が変わってる可能性あるので当然Sを取り込む側も
再度makeしなおさないとだめじゃないかな?
prxの属性は変えずに関数の中だけいじったとかなら
prx側の再度makeでOKだったと思うけど
0333名無しさん@お腹いっぱい。
2009/12/16(水) 13:16:33ID:ePYIr0iCそれはユーザーモード属性のままでカーネルモードのが動作したので
そう書いてあるだけで、実際は毎回Sファイルに合わせてEBOOT側もmakeし直してます
それでもロード出来なくて
0334名無しさん@お腹いっぱい。
2009/12/16(水) 13:21:53ID:XPJJnMmi0335名無しさん@お腹いっぱい。
2009/12/16(水) 13:22:37ID:Ws/KbU9Yとかも関係なかったっけ?
0336名無しさん@お腹いっぱい。
2009/12/16(水) 13:30:42ID:ePYIr0iCCFWが1.50のカーネルも含んでないといけないということですか?
ユーザーモードのprxロードについて参考になる資料を
"Google Code" や "PS2DEV Forum" のPSPスレッドで探してはみたものの
カーネルモードの解説ばかりで…
最新のCFW 5.50 GEN にて
>>331のコードを修正してユーザーモードの user.prx が
EBOOT.PBP側からロード出来た方がいました
どうかアドバイスを
0337名無しさん@お腹いっぱい。
2009/12/16(水) 14:02:35ID:Ws/KbU9Y動かない動かない騒ぐ割に動いてる物はこうだよと指摘されてるところ
はあわせて見るとかしないのかな?
PSP_EXPORT_FUNCのところは指摘されてるだろうに
■ このスレッドは過去ログ倉庫に格納されています