2011年04月01日


広告


NP2 for PSP Ver0.38 リリース

そんな訳で、1年以上プログラミングから遠ざかっていたので腕が鈍っていないか心配ですが、NP2 for PSP Ver0.38、NP21 for PSP Ver0.38をリリースします。

ver0.38
・スリープモード対応
・ソフトキーボードのキー入力が早すぎたのを修正(Ver0.37高速化でエンバグ)
・menuの[Reset with HELP key]でシステムセットアップメニューに
入れなくなっていたのを修正(Ver0.37高速化でエンバグ)
NP2 for PSP v0.38バイナリ
NP21 for PSP v0.38バイナリ
NP2/NP21 for PSP v0.38ソース

Ver0.37からのソース差分は以下な感じ

Index: psp/taskmng.c
===================================================================
--- psp/taskmng.c (revision 57)
+++ psp/taskmng.c (working copy)
@@ -637,6 +637,7 @@
// リセット後、しばらくHELPキーを押す
if (help_key_sending > 0) {
keystat_senddata(0x3f);
+ sceDisplayWaitVblankStart();
if (--help_key_sending == 0) {
keystat_senddata(0x3f | 0x80);
}
@@ -743,6 +744,7 @@
}

if (mouse_mode == pc98skbd) {
+ sceDisplayWaitVblankStart();
redraw |= skbd_mode(beingdown, beingup, button_down, &psppad);
goto done; //ソフトキーボードモードならここで終了
}
Index: psp/np2.c
===================================================================
--- psp/np2.c (revision 57)
+++ psp/np2.c (working copy)
@@ -155,7 +155,7 @@
}
}

-int exit_callback(void)
+int exit_callback(int arg1, int arg2, void *common)
{
exit_proc();

@@ -163,20 +163,25 @@
return 0;
}

-void power_callback(int unknown, int pwrflags)
+volatile int suspending = 0;
+
+int power_callback(int unknown, int pwrflags, void *common)
{
- int cbid;
- char *p;
+ if (pwrflags &
+ (PSP_POWER_CB_POWER_SWITCH | PSP_POWER_CB_SUSPENDING)) {
+ suspending = 1;
+ sceKernelSignalSema(exit_sem,1); // unlock
+ }

- if(pwrflags & PSP_POWER_CB_POWER_SWITCH){
- exit_proc();
+ if (pwrflags & PSP_POWER_CB_RESUME_COMPLETE) {
+ sceKernelWaitSema(exit_sem, 1, 0); // lock
+ suspending = 0;
}

- cbid = sceKernelCreateCallback("Power Callback", power_callback, NULL);
- scePowerRegisterCallback(0, cbid);
+ return 0;
}

-int CallbackThread(void *arg)
+int CallbackThread(SceSize args, void *argp)
{
int cbid;

@@ -314,6 +319,10 @@
sceKernelWaitSema(exit_sem, 1, 0); // lock

while(taskmng_isavail()) {
+ if (suspending == 1) {
+ sceDisplayWaitVblankStart();
+ continue;
+ }
taskmng_rol();
if (menuvram) {
// menuを出している時は、emulationを停止する
@@ -376,7 +385,7 @@
}

sceKernelSignalSema(exit_sem,1); // unlock
- exit_callback();
+ exit_callback(0, 0, 0);

np2main_err5:
pccore_term();


pc98マウスモード時の△□ボタンはまだ効きません。実装忘れた...
スリープモードは、PSP-2000/5.50 GEN-D3とPSP go/6.20TN-Dにて確認しています。




posted by ひっそりぃ at 2011/04/01 14:11 | Comment(4) | TrackBack(0) | NP2 for PSP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
乙すぎる
Posted by あたり at 2011年04月03日 16:08
もう動きがないかと思ってた
更新お疲れ様です!
Posted by 亀 at 2011年04月03日 19:54
おかえりなさいいい!
お礼にアフィぽちりました。
Posted by at 2011年04月07日 10:44
こんばんは。
snesの方にも手を出していますが、NP2も忘れていませんので、よろしくお願いしますです。
Posted by ひっそりぃ at 2011年04月07日 22:27
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック