PSP自作ソフト開発スレ ver.10
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2009/09/20(日) 23:37:20ID:VMGMes0b自作ソフト開発者向けスレッドです。
要望・クレクレなどは作者本人が望んだ場合以外スルーで。
前スレ
PSP自作ソフト開発スレ ver.9
http://schiphol.2ch.net/test/read.cgi/gameurawaza/1231340677/
0178名無しさん@お腹いっぱい。
2009/11/12(木) 14:43:27ID:vV690a9+どうすれば良いのでしょうか?
0179名無しさん@お腹いっぱい。
2009/11/12(木) 18:49:18ID:GhnW2rlE○/4 + □
0180名無しさん@お腹いっぱい。
2009/11/12(木) 20:14:13ID:8qYX7VsV矩形が一つ足りないだろ
0181名無しさん@お腹いっぱい。
2009/11/13(金) 03:00:31ID:no2o2IPMMACアドレスの取得方法とかがわからないです
0182名無しさん@お腹いっぱい。
2009/11/14(土) 08:52:44ID:N+NJKuJBprx で定義した関数を EBOOT 側から使いたいのですが上手くいきません。
pspsdk の方のサンプルは、あてにならないようなのです。
何が↑のソースのどこが悪いのか教えていただけませんでしょうか?
0183名無しさん@お腹いっぱい。
2009/11/14(土) 18:19:48ID:5uSU724Rそういうのはsdkと同じように作ってから言え
0184名無しさん@お腹いっぱい。
2009/11/15(日) 04:43:29ID:fg39c9Di失礼しました。
おっしゃる通りサンプルを基準に作ってみました。
サンプル自体が2005年の物である様なので、
そのままでは起動できませんでしたので修正を入れてます。
取り合えずStartは成功しているみたいなのですが、
prx側のprintfが表示されず関数も取得出来ませんでした。
どこの部分が悪いのか教えて頂けませんでしょうか?
ttp://u6.getuploader.com/usakou/download/65/prx2.zip
0185名無しさん@お腹いっぱい。
2009/11/15(日) 16:42:50ID:FJcYPr/Pそれをロードして使うためのサンプルってほとんどないよね
0186名無しさん@お腹いっぱい。
2009/11/15(日) 21:14:38ID:f+yCHrKJおいしいとこ取りするつもりだな!?
0187名無しさん@お腹いっぱい。
2009/11/15(日) 22:43:19ID:xp3P/8B3.expファイルから.oを作成して、LoadStartModuleするだけじゃないの?
0188名無しさん@お腹いっぱい。
2009/11/16(月) 13:54:58ID:/sHXsYcUもう少し詳しくお願いします
0189名無しさん@お腹いっぱい。
2009/11/16(月) 15:55:07ID:BsxsezHU// prx 読込み
SceUID mod = kuKernelLoadModule("test.prx", 0, NULL);
sceKernelStartModule(mod, 0, NULL, NULL, NULL);
// prx 解放
sceKernelStopModule(mod, 0, NULL, NULL, NULL);
sceKernelUnloadModule(mod);
0190名無しさん@お腹いっぱい。
2009/11/16(月) 22:59:55ID:Vvrrdi7G.oじゃなくて.Sじゃね?
0191名無しさん@お腹いっぱい。
2009/11/17(火) 00:40:59ID:ExQy82960192名無しさん@お腹いっぱい。
2009/11/17(火) 03:16:03ID:yix1lLvmLoadStartModuleで読み込むだけじゃ使えんよ
0193名無しさん@お腹いっぱい。
2009/11/19(木) 00:14:51ID:r9p5DZAWだれか教えてぐださい
ユーザーモードでお願いします!
0194名無しさん@お腹いっぱい。
2009/11/19(木) 01:24:11ID:wGkCZO/Cユーザーモードでは使えない。
少しは自力で調べようとは思わないのか?
0195名無しさん@お腹いっぱい。
2009/11/19(木) 02:38:58ID:r9p5DZAW新型では、動作しないのですか?
0196名無しさん@お腹いっぱい。
2009/11/19(木) 03:08:57ID:ALt+u6sX0197名無しさん@お腹いっぱい。
2009/11/19(木) 06:43:52ID:0N2dIFZAおまえらこそ少し調べてからレスしろ
>>193
sceMp3系やsceAudiocodec系のAPIを使えば間接的ながらMediaEngineを使える
0198名無しさん@お腹いっぱい。
2009/11/19(木) 07:25:43ID:IOHWSKryこのスレでも何度か出ているけど、アドホック関連は謎のままだよなぁ
実際、アドホック使ってるソフトって、AdhocFileTransfer しかしらない
あれのソースがあればすごく見てみたいんだけど
0199名無しさん@お腹いっぱい。
2009/11/19(木) 09:30:18ID:beOln9okつFiler
0200名無しさん@お腹いっぱい。
2009/11/19(木) 20:06:09ID:b48UR1SXおそらくPS2devにあるんだろうけど
確かに
0201名無しさん@お腹いっぱい。
2009/11/19(木) 22:51:07ID:sfcrypIPNJ氏のエミュ
0202名無しさん@お腹いっぱい。
2009/11/20(金) 01:31:24ID:j9LYAZPT0203名無しさん@お腹いっぱい。
2009/11/20(金) 03:34:55ID:WHS4Ck0h0204名無しさん@お腹いっぱい。
2009/11/21(土) 03:01:41ID:49lV5BuQ俺の環境でコンパイルできて起動まで行くソースなかったんだよな
そこで面倒で投げ出したんだけど、ソースがあるよって話だったら
教えてくれればちょっと頑張って解析してみる
0205名無しさん@お腹いっぱい。
2009/11/22(日) 21:56:31ID:YdYG+Cxv0206名無しさん@お腹いっぱい。
2009/11/22(日) 21:58:15ID:4WSmP2igPSPFSDだかなんだか
0207名無しさん@お腹いっぱい。
2009/11/23(月) 08:30:46ID:csckRIBj情報ども!ググってみます!
0208名無しさん@お腹いっぱい。
2009/11/23(月) 15:23:40ID:6VxznS9xsceKernelTotalFreeMemSize();
メモリ容量得たい場合はどちらを使うのが正解でしょうか?
それとも両方のうち容量の少ない方をとかですかね?
0209名無しさん@お腹いっぱい。
2009/11/23(月) 15:27:55ID:LIByhllOttp://sceners.org/pspsdkdocs/group__SysMem.html
0210名無しさん@お腹いっぱい。
2009/11/24(火) 13:30:16ID:15KKwSCT上手く動作しないのですが、これは正常ですか?
0211名無しさん@お腹いっぱい。
2009/11/24(火) 19:04:54ID:UgRuuylyそれらの関数じゃ空きメモリの量は分からないと思うんだ
0212名無しさん@お腹いっぱい。
2009/11/24(火) 19:07:37ID:dFW+MouUPSP_HEAP_SIZE_KBを指定してない場合は取れるだけメモリを確保する動きだったような
ただしアプリ起動の際なのかアプリ起動後最初のmallocのときなのかは
検証してないけど
0213名無しさん@お腹いっぱい。
2009/11/24(火) 19:26:18ID:mOXA4c5z今どうなってるのかは知らない
0214名無しさん@お腹いっぱい。
2009/11/25(水) 22:49:27ID:l3KX0rcZ0215名無しさん@お腹いっぱい。
2009/11/26(木) 12:40:12ID:THOpsuDZプラグインへ組み込むのに最適な低消費メモリの
日本語表示ライブラリを作ってみたのだけど需要あるかな?
ttp://www.dotup.org/uploda/www.dotup.org397637.zip.html
正確に言えば全部自分で作った訳じゃないけど
0216名無しさん@お腹いっぱい。
2009/11/26(木) 16:58:02ID:KYuYuHwaある
0217名無しさん@お腹いっぱい。
2009/11/26(木) 19:28:50ID:4Ub99CVcどれぐらい変えてるかにもよるけど
0218名無しさん@お腹いっぱい。
2009/11/26(木) 20:32:24ID:nTohtB6Nやってる事は同じだがコードのソースが違う
あと、全角文字表示ライブラリの著作権表記に何故東雲フォントの著作権表記をしろと書かれていないのか常日頃から気になってるんだが
0219名無しさん@お腹いっぱい。
2009/11/26(木) 23:13:45ID:7TWCpf3n0220名無しさん@お腹いっぱい。
2009/11/27(金) 07:53:11ID:+Bba0pHH0221215
2009/11/27(金) 10:41:06ID:Rwkollfimediumgauge氏の全角表示ライブラリのソースや
東雲フォントは一切使ってません
詳しく言えばフォント描画部分はMacroFireのソースから流用しています
付属のMisakiフォントに半角カナとSJIS 13区を追加し欠落部分を付加
ELISAフォントは自分でbdfから変換
フォント描画部分も独自に改造
MacroFire作者がソースコードの利用について言及されていないので
これを公開して良いのかどうか今だ分からず
0222名無しさん@お腹いっぱい。
2009/11/27(金) 15:44:21ID:uV0XfS7Z0223名無しさん@お腹いっぱい。
2009/11/27(金) 22:21:14ID:u0pt97ptソースコード差分(差分ってレベルじゃないだろうけど)で配布とかすればええんでないの?
0224名無しさん@お腹いっぱい。
2009/11/28(土) 12:30:19ID:ipyjaUjYデータ放送のメニューやテレビリンクでPSPブラウザに移行することはできるが
2分割して同時に見れるようにしたい
0225名無しさん@お腹いっぱい。
2009/11/28(土) 14:39:36ID:OONspiRS0226名無しさん@お腹いっぱい。
2009/11/28(土) 16:55:49ID:rgGZqIGM純粋な描画だけなら気にする事はないレベルだと思う
サンプル見れば似たようなソースがあるだろうし
0227名無しさん@お腹いっぱい。
2009/11/28(土) 20:54:36ID:Mz8yXWOb0228名無しさん@お腹いっぱい。
2009/11/29(日) 23:31:38ID:WMEKci2gこれまでのプログラムがそのままじゃ動かなくなるぽいな
0229名無しさん@お腹いっぱい。
2009/11/29(日) 23:51:23ID:fUVTX+KQというかゲームの起動の仕組みが変わるんじゃなかったっけ
0230名無しさん@お腹いっぱい。
2009/12/01(火) 00:23:47ID:eyqrUVhc0231名無しさん@お腹いっぱい。
2009/12/04(金) 12:06:10ID:8PLpq3rlUSE_KERNEL_LIBS = 1
としたときに浮動小数点な変数の値を
float val = 3.5;
sprintf(buf,"Value = %f",val);
という感じで同じ変換させたいのだけど
標準ライブラリが使えないのでやり方が分かりません
どうすれば良いでしょうか?
(書き込むところを間違えてスグこちらへ書き直しました、マルチではないです)
0232名無しさん@お腹いっぱい。
2009/12/04(金) 12:16:00ID:VTuLRnBU>USE_KERNEL_LIBS = 1
久々に見たなあ
なに作ってるんだっけ?
0233名無しさん@お腹いっぱい。
2009/12/04(金) 12:19:37ID:8PLpq3rlカーネルモードのプラグインです
LIBC(カーネルモードなら推薦)を有効にすると最小限のライブラリがリンクされて
標準関数が使えなくなるから自分で実装しなくてはいけなくて
0234名無しさん@お腹いっぱい。
2009/12/04(金) 12:22:41ID:VTuLRnBUこれってアプリから呼ぶの?
それともリカバリーモードで指定するプラグイン?
まあどっちにしろ一般的な関数を呼び出したい場合は
ユーザーモードプラグインを別途作ってそっちに標準関数を実装して
ラッパーのような形で実装して呼び出せばいけたんじゃないかな
0235あぼーん
2009/12/09(水) 16:29:53ID:rkr02F9w0236名無しさん@お腹いっぱい。
2009/12/10(木) 11:53:44ID:HyUO1YBO未だ解決出来ないのでよければ教えて下さい
prxを作りその関数をメインアプリから呼び出す際は
予めそれらの関数を関連付けてビルドしておかないと
いけないというところまでは理解出来たのですが
その関連付けをするためのファイルのエクスポート方法が分かりません
(sampleで言うと psp\sdk\samples\prx\prx_loader\ にある MyLib.S ファイル)
prx側にある関数一覧を *.S ファイルとしてエクスポートするには
どんな方法がありますか?
0237名無しさん@お腹いっぱい。
2009/12/10(木) 12:44:33ID:oYNEyTfjpsp\sdk\samples\prx\testprx
に、サンプルがあるじゃないか。
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の前に持ってきてはどうかな?
■ このスレッドは過去ログ倉庫に格納されています