X



PSP自作ソフト開発スレ ver.13

■ このスレッドは過去ログ倉庫に格納されています
0001J416 ◆DY//wVKWks
垢版 |
2011/07/23(土) 17:56:32.98ID:E1nYKPyf
*****完全sageマターリ進行!*****

自作ソフト開発者向けスレッドです。
要望・クレクレなどは作者本人が望んだ場合以外スルーで。

前スレ
PSP自作ソフト開発スレ ver.12
http://yuzuru.2ch.net/test/read.cgi/gameurawaza/1298123458/
0410名無しさん@お腹いっぱい。
垢版 |
2011/11/16(水) 23:31:45.42ID:xYISRZUI
>>409
プラグインのstubにパッチするなら競合はしないんじゃ?
人任せにするより自分で対応できるならそっちの方がいいかなと
0411 忍法帖【Lv=6,xxxP】
垢版 |
2011/11/17(木) 00:11:25.71ID:n0b61Lfx
設定ファイルのパスを調整するためにわざわざプラグインをもう一つ作る意味がわからん
0412名無しさん@お腹いっぱい。
垢版 |
2011/11/17(木) 15:36:19.85ID:qjWjRM2k
対応してないプラグイン作者に一人一人お願いしたりアップデート毎にバイナリ弄ったりするよりかは
プラグイン一つで全てのプラグインを対応させてしまう方が楽だと思うが
意味分からんか?
0413名無しさん@お腹いっぱい。
垢版 |
2011/11/17(木) 17:29:24.90ID:yh39ZWVO
無駄にプラグイン増やすのは不具合起こすリスク上がるし得策とは思わねーわ
ms0をef0に置き換えるくらい文字数同じだから楽だろ
0415名無しさん@お腹いっぱい。
垢版 |
2011/11/17(木) 23:27:51.86ID:3Rt1ZiGG
アプリにしろプラグインにしろ、インストールする場所を変更できないのは
間違っているわけではないが、変更できるように柔軟な作りをしたほうが丁寧であると思う

さらに、PSPのシステム側で起動時のフルパスをmainやmodule_startに渡しているんだから
利用するに越したことは無いと思う
0416 忍法帖【Lv=7,xxxP】
垢版 |
2011/11/18(金) 00:55:12.96ID:M8hOrMiU
>>410
stubにパッチするプラグインが二つあったら競合するような気がするんだが?
0417名無しさん@お腹いっぱい。
垢版 |
2011/11/18(金) 11:14:30.61ID:4uVMKaGQ
ただやり方は複数あるって話でしょ。
どれもメリットデメリットがあるんだし。
一番いいのは開発者が対応することだろうけど。
0418名無しさん@お腹いっぱい。
垢版 |
2011/11/21(月) 17:23:51.83ID:4c9UZENW
dxlibpの音楽再生関数使って、プチ音なしに再生できたヤシいる?
効果音再生するたびにプチプチ言ってうざいんだがw
0421名無しさん@お腹いっぱい。
垢版 |
2011/11/28(月) 23:51:56.49ID:9RR7fDHX
PS3のダウングレードに使用するPSPプログラムを作ろうと
いろいろなサイトや実験である程度ヒントがつかめました。
具体的には3.73->3.55にダウングレードをPSPのみ本体改造なしで
できそうな感触です。

プログラミングはスキルは中の下のレベルですが開発のヒントになりそうな
情報をいただければ幸いです。
現状を幾つか分割して説明します。
0423名無しさん@お腹いっぱい。
垢版 |
2011/11/28(月) 23:59:47.75ID:9RR7fDHX
今現在基本的なソースは

int copyFile(char* from,char* to){

printf("GO!\r\n");

fd = sceIoOpen(from, PSP_O_RDONLY, 0777);


fd2 = sceIoOpen(to, PSP_O_RDWR|PSP_O_TRUNC , 0777);

long remain = 200000000;

while (size!= 0) {
size = sceIoRead(fd, buff, 131072*64);
remain = remain - size;

sceIoWrite(fd2, buff, size);
printf("Remaining: %d \r\n",remain);
}

printf("DONE!\r\n");

sceIoClose(fd);
sceIoClose(fd2);
return 0;

}

です。やりたいことはWhile以下のソースが実行される前に
ms0:PS3/UPDATE/PS3UPDATE.PUPがPS3に何バイト転送されたかを
プラグインで計測したいのです。
0424421
垢版 |
2011/11/29(火) 00:11:09.22ID:iDa8W8aP
そして計測された値が特定の値に達した場合、既存のPUPファイルを
上書きし、3.73のファイルと3.55のファイルをすり替えて
確認シーケンスをパスしようとしています。

今のところの実験ではリカバリモードでの試しで
4つある認証のうち3つまで上記のプログラムでパスできてます。
4つめの認証は自動販売機のぼたん・つり銭同時押しなみに難しく
いくつかパターンがあります。

PS3解析に書くべきか迷ったのですが、どうか宜しくお願い致します。
0427421
垢版 |
2011/11/29(火) 01:09:00.06ID:iDa8W8aP
そこに山があるから登るように、と申しましょうか。
クソとまでは言えないと思います。100回以上確認してますが
ファイルスワップでは簡単にはいけません。

PS3のファイルすり替えに関してですが以下のようになっています。
リカバリモードを例にとると
・USBストレージを一度でもとると(他のものに効果したり)アウト
・自己バージョン以上のファイルでないとアップデータが見つからない
 あるいはファイルが壊れています、とでる。
などなど。

いまのところシステム領域をわざと破壊して(トロフィーとかは残る)
リカバリモードに入り、特定のタイミングで3.73のファイルを3.55のファイル
に上書きすることで3.73のインストール画面+アップデータをチェックしています
の画面にまでには達しています。(当然そこまででエラーが発生しますが)

要点は特定のタイミングで(今はストップウォッチで計測w)ここでいう
上書きのタイミングを手動ではなく、自動でできないか、PS3にUSBストレージ
から転送されたバイト数をカウントしてそこから上書きが開始されないか。
です。

考えられる他の手法としてはUSBストレージのファイルが読み込まれている時は
他のプロセスからアクセスを禁止できないものでしょうか?
C#とかはできそうなんですが、対応外ですし・・・
0428名無しさん@お腹いっぱい。
垢版 |
2011/11/29(火) 02:56:25.14ID:a5VXdL3Y
出来たら面白そうだなぁ
やるならとりあえずUSB関係の関数をフックして
パケットを解析するならディレイ入れてみるなりしてみると良いんじゃないかね
Remotejoyliteとか参考になるかと思ったが、使うドライバが違うんだよなたしか・・
0429421
垢版 |
2011/11/29(火) 04:10:14.20ID:iDa8W8aP
>>428
フックですか・・・これは大変だ。
参考資料とかございますか?

一応個人的にはPRXの作り方とUSB周りのイジリ方の参考ってことで
USB.prxのソースコード参考にしてます。

PS3持ってるの人間はPSPも大抵持ってるので
プログラム一つで分解なしでダウングレードできたなら
結構なことですよね。また対策されるでしょうけど。
0434名無しさん@お腹いっぱい。
垢版 |
2011/11/29(火) 22:26:39.11ID:iDa8W8aP
>>433
おお・・・ありがとうございます。

余談ですが、PS3UPDAT.PUP自体をリネームして
3.55と3.73を入れ替えるプログラム作って見ましたが
こいつはよそう通りだめでした。PS3側でファイルのポインタを
持ってしまっているのでどう名前が変わっても途中から名前が変わっても問題ない
ってことですかね。
0435名無しさん@お腹いっぱい。
垢版 |
2011/11/29(火) 22:50:39.20ID:2S3ftpFG
>>434
PS3のダウングレードについて調べてみたんだが、特殊な機器が必要みたいだぞ?
ファイルのすり替えでダウングレードできるほど甘くないのでは?
0437名無しさん@お腹いっぱい。
垢版 |
2011/11/29(火) 23:33:28.28ID:iDa8W8aP
>>434
スワップははい、当初からだめだろうと思ってました。

過去のDGはドングルとかが必要ですが、3.56以降のDGについては
おっしゃるとおりプログスキート等ハンダ付けをする何れにしても
PS3を解体しないといけないのですが、そこにあえて>>436さんが
おっしゃっているように安価・容易なPSPでDGに挑戦してみるか、が
趣旨です。場合によっては脱線してマイコンいじりだすかもw
0438名無しさん@お腹いっぱい。
垢版 |
2011/11/30(水) 00:18:12.57ID:DByAaual
海外のハッカーでもできなかったPSPのUSBドングル化が日本人の手によって実現するのか。
もしかして>>437はスーパーハッカーなのか!?
0439名無しさん@お腹いっぱい。
垢版 |
2011/11/30(水) 03:08:22.30ID:KQ2bpXgG
どう見ても釣りだろ
もしくは知ったか
PS3UPDAT.PUPがダイレクトリードなのかポインタリードなのかさえ分かってないし
たとえUSBドライバを改変できたとしてもデバイスID自体変えることが出来ないから海外勢が諦めたんだぞ
libusbからドングルをスニファしてみ
某ハッカーが公開してたマジックキーとスニファしたパケット内のマジックキー同じだと思う?
0444名無しさん@お腹いっぱい。
垢版 |
2011/12/01(木) 23:33:24.53ID:IFVA5r6t
>>443
ありがとうございます。なかなか情報が見つからないので困っていました。

ところでkernel modeとはどういったものでしょうか?
CFWの状態であればkernel modeだと認識しているのですが合っていますでしょうか?
0445名無しさん@お腹いっぱい。
垢版 |
2011/12/02(金) 00:25:54.64ID:qX39PZC5
>>444
KernelModeってのはカーネルメモリーに読み込まれたコードが実行されるれること。
これに対し、ユーザーメモリーからはUserModeと呼ばれる。
0449名無しさん@お腹いっぱい。
垢版 |
2011/12/02(金) 21:43:28.07ID:FiWCmqey
>>445->>447
皆さんありがとうございます
wikiにも詳しい解説がありましたのでそちらも参考にしました

>>448
探し方不足かもしれませんが見つかりませんでした。
ヘッダファイルとにらめっこしながら書くことにします
ありがとうございました
0450名無しさん@お腹いっぱい。
垢版 |
2011/12/05(月) 14:08:58.49ID:P6VLCa5Z
横だけど
■ ELF_UserMode形式
C:/pspsdk/psp/sdk/samples/template/elf_template
通常ELFのサンプル。「ユーザーモード。」
■ PRX_UserMode形式
C:/pspsdk/psp/sdk/samples/template/prx_template
通常PRXのサンプル。「ユーザーモード。」
■ PRX_KernelMode形式
C:/pspsdk/psp/sdk/samples/template/kprx_template
カーネルモードPRXのサンプル。「カーネルモード。」
■ ただのライブラリ(形式もへったくれもない)
C:/pspsdk/psp/sdk/samples/template/lib_template
ライブラリのサンプル。
ライブラリの場合、特別な処理は要らないと言いたいらしい。
「ユーザーモード/カーネルモード自体関係無い。」
■ 上記サンプルに無いけど、順列組み合わせでいけば、当然
通常ELFのサンプル。「カーネルモード。」
ELF_KernelMode形式 ってのも考えられるよね?
★ 初期OFW1.50では ELF_KernelMode形式 は起動出来る。
これは「1.5カーネル」とかあだなで言われる。
(この1.5とはOFW1.50の事を指す。OFW1.50で起動できた形式って意味)
初期自作ゲームでソースが公開されていないものは、
大抵「1.5カーネル」で作ってあり、現在は起動できない。
「1.5カーネル」をサポートするプラグインとか入れても(実際は)起動できなかったりする。
そこで「TimeMachine」という方法で起動する。
この方式の「EBOOT.PBP」をweb公開する場合は、
どう頑張っても起動できないpspがあるので、ソース添付するなどの配慮が必要。
★ つまりアドホックのサンプルをそのまま動かす為には、最低 2台以上のpspで
CFWのversionを下げたり「TimeMachine」を導入したりする必要がある。
■ アドホックのサンプルが要求しているのは、この「1.5カーネル」の事。
しかし、サンプルを少し書き換えて、
PRX_KernelMode形式(UserModeELF形式EBOOT.PBP + 外部_KernelMode形式PRX)でも
外部PRXの内部だけならアドホックは動作すると思われる。
CFWのversionを下げたり「TimeMachine」を導入したりする必要がないので、
現在では「アドホック」対応は、この方法が最も良いと思われる。
■ まとめると「アドホック」に対応していないのは、
「開発に2台以上pspが必須」+「めんどくさい」+「動作するpspを選ぶ」という問題点がある。
0452名無しさん@お腹いっぱい。
垢版 |
2011/12/05(月) 18:54:40.69ID:Sr0e2eJe
ソースあるんだから今のバージョンに合わせて作れば良いだけじゃん
開発中はトレースするプログラムでも作っとけよ
0453名無しさん@お腹いっぱい。
垢版 |
2011/12/05(月) 21:04:11.72ID:rTfG7VVp
誰か時刻取得の方法教えてくれないか?
ggってもなかなかでないw
0456 ◆ChitokuSdA
垢版 |
2011/12/05(月) 23:27:11.89ID:9SYH0OQ+
>>453
psprtc.h見るとわかるよ。
sceRtcGetCurrentClockLocalTimeで取得。
0457 ◆ChitokuSdA
垢版 |
2011/12/05(月) 23:28:40.71ID:9SYH0OQ+
連投スマソ。
rtc使うときはMakefileのLIBSに-lpsprtcを追記。
0459名無しさん@お腹いっぱい。
垢版 |
2011/12/06(火) 01:31:54.88ID:BTFKxPbr
PS3JIGのPRX移植版作ってみて2000以降のPSPに対応できるようになったけど
もともとも本当に成功率低いらしいですね。

ナンダッタンダオレノドリョクハ
0461名無しさん@お腹いっぱい。
垢版 |
2011/12/06(火) 02:11:11.58ID:BTFKxPbr
>>460
もともとのPS3JIGの使い方がよく分からない、サービスモードに入るものだと
考えてたんですが違うんでしょうか・・・ 環境は4.00で試してみて反応無しで
3.55だと微かに画面にデータが吐き出されるだけでした。

というレベルの人間が突っ走って作ってみたんですが、ご希望があればうpします。
0463名無しさん@お腹いっぱい。
垢版 |
2011/12/06(火) 15:39:40.58ID:3EbUAFuF
453の者ですが
皆さんのおかげで無事できました!
これからは検索の仕方にも気おつけます。。。
0468名無しさん@お腹いっぱい。
垢版 |
2011/12/09(金) 01:21:07.41ID:lk7OJDHj
もしかしてv1.50じゃないとusb\storage のサンプルってもしかしてフツーにメイクしても動かない?
0471名無しさん@お腹いっぱい。
垢版 |
2011/12/12(月) 23:34:42.28ID:3sXY9cdi
age
0472名無しさん@お腹いっぱい。
垢版 |
2011/12/18(日) 20:19:02.64ID:xONGgOE6
Vitaでエミュの動作に期待
でもVita自体PSPをエミュレートしてるわけだから
PSP以上の速度出せるのかな?
0475名無しさん@お腹いっぱい。
垢版 |
2012/01/01(日) 00:24:43.54ID:aMpE/T8n
あけましておめでとうございます
今年もよろしくお願いいたしますほしゅ
0476名無しさん@お腹いっぱい。
垢版 |
2012/01/19(木) 22:52:48.22ID:2fvjrbE6
あげ
0483名無しさん@お腹いっぱい。
垢版 |
2012/01/27(金) 02:22:21.48ID:bAMlqHAO
PSP自作ソフトプログラミング/開発wiki の過去ログを辿ってきたんですが、
psptoolchainの質問はここでおkですか?
このスレでも何度か名前の挙がっている、Wololo氏のサイトに関するものなのですが。
0485名無しさん@お腹いっぱい。
垢版 |
2012/01/27(金) 16:39:11.78ID:bAMlqHAO
http://wololo.net/wagic/2010/07/10/compiling-aquaria-on-the-psp-download-included/
またお前か! と言われかねないのですが、Wololo氏の上記ページに記されている作業を、
素人なりに自力だったり助力を得たりしつつ後追いしながらやってます

質問は、上記ページ Tweaking the Makefile 項目内の、
004-newlib-1.16.0.shの再インストールで手詰まりしてまして、
どのようにしたら良いかアドバイスをもらえないか、という事でさせていただきました

エラー内容は ターミナルで psptoolchain/scripts に移動後、
sudo ./004-newlib-1.16.0.sh を行うと、最後に
/bin/bash psp-cc: ファイルが見つかりません というエラーが出てしまいます

スクリーンショット
http://www5.puny.jp/uploader/download/1327649795.png (パス2ch)

ここまでやった全作業をテキストにまとめたもの
http://www5.puny.jp/uploader/download/1327649421.txt (パス2ch)

解決方法わかる方いらっしゃいましたら、アドバイスをお願いしたいです
0486名無しさん@お腹いっぱい。
垢版 |
2012/01/27(金) 16:44:59.82ID:bAMlqHAO
ccとcppとc++は拡張子が違うだけ というような記述をネットで得たので、
cp コマンドで psp-cppなどを /binに移動し、
rename で psp-cc と改名したら、ファイルが見つからないではなく別のエラーになったので、
素人知恵ながら、この方面でいいのかな、と予測していますが、どうなのでしょうか

また、その直後の作業で、
psptoolchain/scripts/newlib-1.16.0/newlib/stdlib.h
psptoolchain/scripts/newlib-1.16.0/newlib/libc/stdlib/strtod.c
の2つを編集する必要があると思うのですが、004-newlib-1.16.0を再インストールできていないからか、
この2つが該当ディレクトリ存在していないようです

長文になってしまったので、二分割になりました
宜しくお願いします
0488名無しさん@お腹いっぱい。
垢版 |
2012/01/27(金) 16:58:13.76ID:bAMlqHAO
>>487
psp-cc: psp-cc: "-c"はプリプロセッサに対する正常なオプションではありません

リネームの必要のない /usr/local/pspdev/psp/bash/psp-cc を /bash へコピーしても同じでした
0489名無しさん@お腹いっぱい。
垢版 |
2012/01/28(土) 12:08:58.45ID:M3WbUL8F
もしubuntuを使ってるならreadme-ubuntu.txtの通りにやれば出来るはずだけど。
.profileか.bashrcにpathの記述してないとかは無いと思うけど。
0492名無しさん@お腹いっぱい。
垢版 |
2012/02/14(火) 16:06:10.41ID:KjswahHo

sceGumMatrixMode( GU_MODEL );
sceGumLoadIdentity();
sceGumRotateX( X );

sceGuDrawArray( GU_SPRITES, GU_TEXTURE_32BITF|GU_COLOR_8888|GU_VERTEX_32BITF|GU_TRANSFORM_2D, 2, 0, v );

こういった感じのコードを書いたんですけど
何故か回転してくれません(描画自体はされます)

何か回転を無効化する関数などがあるのでしょうか
原因に思い当たる節のある方が居らっしゃるようでしたら教えてください
お願いします
0494名無しさん@お腹いっぱい。
垢版 |
2012/02/15(水) 21:54:55.69ID:WdE/XQsU
>>493
その関数について調べてみたら正にそれが原因だと思われたので
早速sceGumDrawArrayに書き換えて実行してみたのですが何故か回転してくれませんでした…
とはいえ貴重かつ重要な情報ありがとうございました

GU_SPRITESやGU_DEPTH_TEST周辺の関係も調べてみます
0496名無しさん@お腹いっぱい。
垢版 |
2012/02/17(金) 23:33:53.68ID:rZ9cudkp
>>495
どうしてこんなことにも気付かないのかと落ち込みながら実行してみたのですが駄目でした。

まず初めにGU_TRANSFORM_2DからGU_TRANSFORM_3Dへの書き換えのみで
実行してみたのですが表示自体されなくなってしまいました
また深度バッファを疑い、sceGuDisable(GU_DEPTH_TEST)を加筆
vertex構造体のzが0.0fになっているのを確認し再度実行してみるも変わらず

ワールド変換の方法がいけないのかと思い
sceGumMatrixMode(GU_PROJECTION);
sceGumLoadIdentity();
sceGumOrtho(0, 480, 272, 0, -1, 1500);
を加えて再度実行してみたのですが相変わらず表示されません

他にも表示したい対象に sceGumTranslate や sceGuColor を試したのですが表示されませんでした
難しく考え過ぎでしょうか…何かもっと基本的なところに見落としがありそうな気がします

とにかく>>495さん貴重なアドバイスありがとうございました

他の見落としの可能性を探ってみます
0497名無しさん@お腹いっぱい。
垢版 |
2012/02/18(土) 00:04:05.18ID:gfjMmFYL
>>496
前やったことあるけどなぜか3DだとGU_SPRITESはうまく表示されなかった。
(やり方が間違ってたかもしれないが、3DサンプルでもGU_SPRITESは見たことない)
ほかのGU_TRIANGLESとかだと表示できたから一度試してみたら?
0498名無しさん@お腹いっぱい。
垢版 |
2012/02/18(土) 14:36:31.55ID:gjt/KxRB
>>497
はい。それらも既に試していますがやはり表示されませんでした

GU_SPRITESのサンプルはGUフォルダのspriteにあるのがそうです
GU_SPRITESはPC上のエミュレータで実行すると回転も出来るのですがPSP上だと正常に回転してくれません
PSP上では表示する時に頂点座標同士の関係が3軸それぞれに対して平行、または垂直になるように
自動補正されるのが原因のようです
0501名無しさん@お腹いっぱい。
垢版 |
2012/02/18(土) 17:04:37.61ID:gjt/KxRB
>>499
やはりそうですか
と言っても実はintraFontに回転機能を付けようとしていただけなんです
ですが一応ソースファイルを貼っておきます
http://www1.axfc.net/uploader/Sc/so/320356.zip
私には何が原因か分かりませんでした
分かる方どうか啓蒙の一言をお願いします。

>>500
アップしたソースからは削り忘れてしまいましたが
sceGuEnable(GU_CULL_FACE)は使用していないので恐らくその線は無いかと思います
0504名無しさん@お腹いっぱい。
垢版 |
2012/02/21(火) 00:21:48.51ID:vg+Njclx
>>502

while(1)
{
                libmInitBuffers(LIBM_DRAW_BLEND,PSP_DISPLAY_SETBUF_NEXTFRAME);
                libmPrintXY(0,0,0xff20C0E6,0,"TEST");
                sceDisplayWaitVblankStart();
                sceKernelDelayThread(10000);
}

これでおk
0506名無しさん@お腹いっぱい。
垢版 |
2012/02/21(火) 17:32:18.78ID:ow82SCTr
PSP_MODULE_INFO( "printf", PSP_MODULE_USER, 0, 0 );
のPSP_MODULE_USEをPSP_MODULE_KERNELに変える必要がある。

あと、delayは多いとちらつくので注意
0507名無しさん@お腹いっぱい。
垢版 |
2012/02/21(火) 17:37:10.97ID:Wq8T9PjE
>>505
libmenu付属のサンプルをいじって勉強してみるといいんじゃないかな
一から全て自分でやろうとすると打ち間違いや勘違いで動かない
0509ちとく ◆ChitokuSdA
垢版 |
2012/03/03(土) 10:30:38.45ID:1K7eU1GQ
PSPプログラミングに半年ぶりに追加しました。
時刻の取得です。世界時計を作ってみました。
ぜひご覧ください。

http://chitoku.symphonic-net.com/pspprograming/

また、エラーコード一覧も作成しましたのでこちらもぜひご覧ください。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況