ページ 1 / 1
PSPSDK ファイルを実行する関数
Posted: 2014年2月19日(水) 20:51
by ptolemy
今まで、PC用の3Dゲームを作ってきたんですが、急遽、PSPのゲーム中にskypeを起動するプラグインの開発を友人に頼まれました。
そこで、
file:[flash0:/vsh/module/
skype_main_plugin.prx
skype_ve.prx
skype_skyhost.prx
skype_plugin.prx
を実行したいのですが実行する関数が分かりません。
サンプルも確認したんですが、英語ばかりで分かりませんでした。
困っているので、ご回答お願いします。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月24日(月) 16:00
by ptolemy
一応なんとなく勘でLoadStartModuleを書いてみたんですが、普通に
LoadStartModule(パス)では、エラーが出ました。
やはりLoadStartModuleではなく他の関数でしょうか?
それか、書き方が間違っているだけなのでしょうか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月24日(月) 16:22
by softya(ソフト屋)
ここだと詳しい人がいないかも知れません。
pspSDKですので、そちらに詳しい掲示板(多分英語)で聞いたほうが良いと思います。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月24日(月) 16:31
by ptolemy
英語ですか...
他を当たってみます。
最後に質問なのですが、
http://chitoku.symphonic-net.com/psppro ... file2.html
や
openfileなどの読み書きの動作と[実行する]は、全く違うのでしょうか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月25日(火) 18:50
by ptolemy
何度も同じような質問で申し訳ないのですが、
ファイルを開く
と
ファイルを読み込む
の違いって何でしょうか?
また、中身を実行するときは、どちらを使いますか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月25日(火) 19:57
by softya(ソフト屋)
実行すると言う場合は、プログラムカウンタを書き換える作業が伴ないます。
C言語の命令なら、エントリポイントのアドレスを関数呼び出しで呼び出すことが必要です。
>ファイルを開く
ファイルリソースへのアクセス手段の準備を終える。
>ファイルを読み込む
ファイルをメモリに本当に読み込む
でしょうか。メモリに読み込まないと始まらないので読み込むと呼び出すが必要です。
【補足】
プラグインなので、理想としてはDLLの様に呼び出せないと戻れない可能性があります。
C言語系のスタートアップルーチンを通るとまずいと思うので、普通の実行ファイルとは別形式なのかな?とは思います。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月25日(火) 20:02
by FUNK
非表示エリア
この非表示エリアを表示するには、登録し、ログインする必要があります。
追記:
ソフト屋様と回答内容が被りましたので、質問者様への混乱を避ける為にハイドします。
すみませんでした。
以後気をつけます。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月25日(火) 20:37
by ptolemy
ソフト屋さん、FUNKさんありがとうございます。
では、
読み込み、呼び出すと実行と同意になるのでしょうか?
また、ここをみるかぎり読み込む関数しかないのですが、読み込むと呼び出されるんですか?
http://yutanmen.web.fc2.com/pspsdkprog/10_file/
僕は、たぶんまだ理解していないのでご回答お願いします。
また、プラグインでの実行は、やはり、かなり難易度がたかいのでしょうか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年2月25日(火) 20:42
by softya(ソフト屋)
Pspのプラグインがどう管理されているか分かりませんがリンク先の情報はプラグインではなく、ただのテキストファイルの様ですが。
> また、プラグインでの実行は、やはり、かなり難易度がたかいのでしょうか?
SDKとPSPの仕様次第です。詳しくないので分かりません。
[追記]
誤解されてそうなので。
> 読み込み、呼び出すと実行と同意になるのでしょうか?
オープン、読み込み、呼び出しの3セットで実行になる環境もありますし、もっと手間が必要な環境もあります。
PSPは、そこまで複雑ではないであろうと言う予想で書いております。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月05日(水) 01:37
by ちとく
こんにちは。
リンク先サイト管理人です。
モジュールの読み込みですが、pspSdkLoadStartModule 関数を使用してください。
http://psp.jim.sh/pspsdk-doc/group__PSPSDK.html
適切な include と Makefile の変更をお忘れなく。
P.S.
試したことはないですが、メモリ容量的に Skype 起動は厳しいような気がします。
またモジュールが読み込まれても、Skype が起動するわけではないので、詳細な調査が必要だと思います。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月05日(水) 20:49
by ptolemy
すいません。返信遅れました。
わざわざ、書き込んでいただき、ありがとうございます。
pspSdkLoadStartModuleを試してみます。
メモリですが、いろいろ試していきたいと思います。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 00:00
by ptolemy
試して見たところ、PSP側で
0x80010002 ファイルがない
と表示されました。
ファイルは、あるはずなのになぜこのように表示されるのでしょうか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 01:51
by ちとく
"flash0:/vsh/module/skype_main_plugin.prx"
の書式で間違いないですか?
2000 以降の PSP ではないので確認できませんが、パスの指定が正しくない可能性が高いと思います。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 02:42
by ちとく
それと、このフォーラムにおいてマルチポストはリンクを貼るようにとされているようです。
検索しても情報が少ないのは理解できますが、最低限のマナーは守るべきでは。
http://detail.chiebukuro.yahoo.co.jp/qa ... 2122012927
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 18:28
by ptolemy
すいません。
以後気をつけます。
誤字脱字がないか確認してみます。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 18:37
by ptolemy
また、
skype_main_plugin.prx
skype_ve.prx
skype_skyhost.prx
skype_plugin.prx
の4つを実行すればいいんですよね?
それともskype_main_plugin.prxだけでいいんですか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 18:52
by ptolemy
スペルミスでした。
プラグインではなく、ゲームとして起動させたら、フリーズでした。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月06日(木) 22:29
by ちとく
pspSdkLoadStartModule を実行するにあたり、どのパーティションを指定していますか。
pspSdkLoadStartModule(const char *filename, int mpid);
の第 2 引数です。
また、作成中のプラグイン自体の動作モードは何に設定していますか。
こちらは PSP_MODULE_INFO マクロの引数です。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月07日(金) 00:50
by ptolemy
勘違いしていました。
以前のリンクサイトの第二引数のせつめいが
Memory parition ID to use to load the module int.
とあり、特に翻訳などをしなかったので、
http://yutanmen.web.fc2.com/pspsdkprog/10_file/
のように
0777にしていました。
___
http://plum2170.blog11.fc2.com/blog-entry-31.html
のサイトを参考にしているので、
PSP_MODULE_KERNEL, 1, 1
です。
リンク多くてすみません。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月07日(金) 18:06
by ptolemy
一つ聞きたいんですが、
ゲーム中にskype通話
と
PSPでskypeチャット
では、どちらの方が作りやすいと思いますか?
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月07日(金) 19:45
by ちとく
■ pspSdkLoadStartModule について
第 1 引数に指定されたパスのモジュールを、第 2 引数に指定されたメモリパーティションに読み込む関数です。
http://chitoku.symphonic-net.com/psppro ... -mem2.html
パーティション 1 あるいは 4 を使用するといいと思います。
失敗した場合は前回同様エラーコードを添えてください。
■ Skype について
Skype は API を提供していません。
したがって、第三者が Skype に対してソフトウェアを介さずに通信を行うことはできないので、
PSPでskypeチャット
は不可能だと思われます。(PSP の Skype モジュールにチャット機能がない可能性が高い)
■ PSP のプラグインについて
以前申し上げたとおりメモリ容量の関係上、PSP でゲームを起動している間にメディア関連の操作を行うのはほぼ不可能です。
ゲーム中に MP3 を再生するプラグインなどありますが、その動作が不安定だったり使用できない場合があったりするのはこのためです。
ゲーム中にskype通話
でも厳しいような気がします。(理由は後述)
■ メモリのパーティションについて
PSP (組み込み?) 特有の動作なので触れておきます。
PSP のメモリはパーティション分けがなされており、カーネル部分を扱うモジュールはカーネル領域のみで実行可能です。
リンク先にあるとおり、その領域は合わせてわずか 4 MB です。
Skype のモジュールがカーネルアクセスをするものなのかは調べていませんが、もしそうである場合は、カーネル領域に読み込む必要があります。
そのためにこの関数の引数にはパーティション指定があります。
あと蛇足ですが、0777 は「パーミッション」ですね^^;
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月07日(金) 23:22
by ptolemy
詳しくありがとうございます。
また、失敗したのは、フリーズなのでエラーコードが表示されませんでした。
パーティションを1にして、実行してみたら、フリーズは、せず、
ゲームを終了しますか?
だけ操作出来ました。
前にもあったように読み込みは、成功したみたいですが、起動はできませんでした。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月08日(土) 00:07
by ちとく
以前述べたとおり
モジュールが読み込まれても、Skype が起動するわけではない
ので、当該モジュールを解析するなりして、Skype を起動する呼び出しが必要になると思います。
PSP での開発は今まで様々な人の手によってファームウェアが解析され成り立ってきたものです。
API が用意されていますが、これにアクセスできるのも地道な解析の結果です。
残念ですがこれ以降は情報が皆無なのでサポートすることはできませんが頑張ってください。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月08日(土) 00:28
by ptolemy
まだ、プログラミングを始めて1年もたっていない初心者なんですが、解析とは、可能でしょうか?
物凄い知識が必要なのでしょうか?
また、簡単に大雑把にいうと解析とは、どのような感じで行うのでしょうか?
ご回答お願いします。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月08日(土) 00:43
by softya(ソフト屋)
詳しくないので傍観してましたが、アセンブラレベルでの解析が必要になる可能性が高いです。
当然ながらSkypeの起動方法も未知なので、PSPのカーネルレベルの解析も必要になるかもしれません。
つまり、ハッカーレベルの知識が必要じゃないかと言うこと何だと思います。
もし解析できてもメモリが足らない場合は実質起動出来ないかもしれませんって事も書かれているので、急いでも出来ない可能性が高い状況だと私は判断します。
Re: PSPSDK ファイルを実行する関数
Posted: 2014年3月08日(土) 01:08
by ptolemy
不可能ではないが常人では不可能ということですね。
今回は、とても参考になりました。
3Dゲームの開発に戻るか、違うPSPのプラグイン or アプリを開発したいと思います。
ご回答本当にありがとうございました。