Другие консоли: SONY PLAYSTATION THREE & Nintendo Wii
Регистрация: 10.03.2006
Адрес: Москва
Сообщений: 2,407
Вы сказали Спасибо: 810
Поблагодарили 2,294 раз(а) в 756 сообщениях
Сила репутации: 1
Репутация: 1508 (обеспечено прекрасное будущее)
ОК, надеюсь ты положил всё в правильную папку т.е. game371(game352 или какая у тебя там) или в game с настроенным на 3хх Кернел, иначе последствия запуска - непредсказуемы.
Походу всётаки обновиться тебе надо, до 3.71 М33-3, ну да ладно, не хочешь - как хочешь. Как обещал высылаю исходник. Извиняюсь что в таком виде, просто лень заливаьб на ф/о, а аттачменты не пашут.
#include<pspsdk.h>#include<stdio.h>#include<zlib.h>#include<malloc.h>#include<pspkernel.h>#include<pspdisplay.h>#include<pspdebug.h>#include<pspgu.h>#include<psputility_msgdialog.h>#include<psputility.h>#include<string.h>#include<psputility_osk.h>
PSP_MODULE_INFO("osk", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);
PSP_HEAP_SIZE_KB(20048);
staticunsignedint __attribute__((aligned(16))) list[262144];
//Содержимое мессадж боксаchar cdata[] = {
0x56, 0x49, 0x6E, 0x66, 0x6F, 0x20, 0x43, 0x68, 0x61, 0x6E,
0x67, 0x65, 0x72, 0x0D, 0x0A, 0xD0, 0x9D, 0xD0, 0xB0, 0xD0, 0xBF, 0xD0, 0xB8, 0xD1, 0x81, 0xD0, 0xB0,
0xD0, 0xBD, 0x20, 0x70, 0x73, 0x70, 0x6F, 0x77, 0x6E, 0x65, 0x72, 0x27, 0xD0, 0xBE, 0xD0, 0xBC,
0x20, 0xD1, 0x81, 0xD0, 0xBF, 0xD0, 0xB5, 0xD1, 0x86, 0xD0, 0xB8, 0xD0, 0xB0, 0xD0, 0xBB, 0xD1,
0x8C, 0xD0, 0xBD, 0xD0, 0xBE, 0x20, 0xD0, 0xB4, 0xD0, 0xBB, 0xD1, 0x8F, 0x0D, 0x0A, 0x68, 0x74, 0x74,
0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x70, 0x73, 0x70, 0x78, 0x2E, 0x72, 0x75, 0x20,
0x28, 0x43, 0x29, 0x32, 0x30, 0x30, 0x37
};
char fdata[28930];
gzFile fil;
int f;
void *hbuff, *fbuff;
#define BUF_WIDTH (512)#define SCR_WIDTH (480)#define SCR_HEIGHT (272)#define PIXEL_SIZE (4) /* change this if you change to another screenmode */#define FRAME_SIZE (BUF_WIDTH * SCR_HEIGHT * PIXEL_SIZE)#define ZBUF_SIZE (BUF_WIDTH SCR_HEIGHT * 2) /* zbuffer seems to be 16-bit? */intSetupCallbacks();
int done = 0;
intUnPackLoad(void){
fil=gzopen("ms0:/vshctrl.prx.gz","r");
gzread(fil,fdata,28930);
gzclose(fil);
f=sceIoOpen("ms0:/vshctrl.prx",PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
sceIoWrite(f, &fdata, 28930);
sceIoClose(f);
sceIoRemove("ms0:/vshctrl.prx.gz");
return0;
}
staticvoidConfigureDialog(SceUtilityMsgDialogParams *dialog, size_t dialog_size){
memset(dialog, 0, dialog_size);
dialog->size = dialog_size;
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE,
&dialog->language); // Prompt language
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN,
&dialog->buttonSwap); // X/O button swap
dialog->buttonSwap = 1;
dialog->unknown[0] = 0x11; // ???
dialog->unknown[1] = 0x13;
dialog->unknown[2] = 0x12;
dialog->unknown[3] = 0x10;
}
staticvoidShowMessageDialog(constchar *message){
SceUtilityMsgDialogParams dialog;
ConfigureDialog(&dialog, sizeof(dialog));
dialog.unknown[10] = 1;
strcpy(dialog.message, message);
sceUtilityMsgDialogInitStart(&dialog);
for(;;) {
sceGuStart(GU_DIRECT,list);
sceGuClearColor(0x666666);
sceGuClearDepth(0);
sceGuClear(GU_COLOR_BUFFER_BIT | GU_DEPTH_BUFFER_BIT);
sceGuFinish();
sceGuSync(0,0);
switch(sceUtilityMsgDialogGetStatus()) {
case2:
sceUtilityMsgDialogUpdate(1);
break;
case3:
sceUtilityMsgDialogShutdownStart();
break;
case0:
return;
}
sceDisplayWaitVblankStart();
sceGuSwapBuffers();
}
}
intPackPrepare(void){
fil = gzopen("ms0:/vshctrl.prx.gz","w");
gzwrite(fil,fdata,28930);
gzclose(fil);
f = sceIoOpen("ms0:/header.prx", PSP_O_RDONLY, 0777);
hbuff=malloc(0x150);
sceIoRead(f, hbuff, 0x150);
sceIoClose(f);
f = sceIoOpen("ms0:/vshctrl.prx.gz", PSP_O_RDONLY, 0777);
int size=sceIoLseek(f, 0, SEEK_END);
sceIoLseek(f, 0, SEEK_SET);
fbuff=malloc(size);
sceIoRead(f, fbuff, size);
sceIoClose(f);
f = sceIoOpen("ms0:/vshctrl1.prx",PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
sceIoWrite(f, hbuff, 0x150);
sceIoWrite(f, fbuff, size);
sceIoClose(f);
//sceKernelDelayThread(1*1000*1000);
sceIoRemove("ms0:/vshctrl.prx.gz");
sceIoRemove("ms0:/header.prx");
sceIoRemove("ms0:/vshctrl.prx");
free(hbuff);
free(fbuff);
return0;
}
intCopyrightCheck(void){
unsignedint count, sum;
sum=0;
for (count=0; count<=sizeof(cdata); count++) sum=sum+(cdata[count] xor0x5A03);
return sum;
}
intmain(int argc, char* argv[]){
SetupCallbacks();
if (CopyrightCheck()!=0x43E33) sceKernelExitGame();
//sceKernelDelayThread(3*1000*1000);// INIT GU!!!! it will not work without!!!
sceGuInit();
sceGuStart(GU_DIRECT,list);
sceGuDrawBuffer(GU_PSM_8888,(void*)0,BUF_WIDTH);
sceGuDispBuffer(SCR_WIDTH,SCR_HEIGHT,(void*)0x88000,BUF_WIDTH);
sceGuDepthBuffer((void*)0x110000,BUF_WIDTH);
sceGuOffset(2048 - (SCR_WIDTH/2),2048 - (SCR_HEIGHT/2));
sceGuViewport(2048,2048,SCR_WIDTH,SCR_HEIGHT);
sceGuDepthRange(0xc350,0x2710);
sceGuScissor(0,0,SCR_WIDTH,SCR_HEIGHT);
sceGuEnable(GU_SCISSOR_TEST);
sceGuDepthFunc(GU_GEQUAL);
sceGuEnable(GU_DEPTH_TEST);
sceGuFrontFace(GU_CW);
sceGuShadeModel(GU_FLAT);
sceGuEnable(GU_CULL_FACE);
sceGuEnable(GU_TEXTURE_2D);
sceGuEnable(GU_CLIP_PLANES);
sceGuFinish();
sceGuSync(0,0);
sceDisplayWaitVblankStart();
sceGuDisplay(GU_TRUE);
// INIT OSKunsigned short intext[128] = { '3','.','7','1',' ','M','3','3','-','3' }; // text already in the edit box on startunsigned short outtext[128] = { 0 }; // text after input//Введите новое названиеunsigned short desc[128] = { 0x412, 0x432, 0x435, 0x434, 0x438, 0x442, 0x435, 0x20, 0x43D, 0x43E, 0x432, 0x43E, 0x435, 0x20, 0x43D, 0x430, 0x437, 0x432, 0x430, 0x43D, 0x438, 0x435, 0x00 }; // de******ion// unsigned short [cpr]
ShowMessageDialog(cdata);
SceUtilityOskData data;
memset(&data, 0, sizeof(data));
data.language = 9; // Русский
data.lines = 1; // just online
data.unk_24 = 1; // set to 1
data.desc = desc;
data.intext = intext;
data.outtextlength = 128; // sizeof(outtext) / sizeof(unsigned short)
data.outtextlimit = 10; // just allow 32 chars
data.outtext = outtext;
SceUtilityOskParams osk;
memset(&osk, 0, sizeof(osk));
osk.size = sizeof(osk);
osk.language = 8;
osk.buttonswap = 1;
osk.unk_12 = 17; // What
osk.unk_16 = 19; // the
osk.unk_20 = 18; // fuck
osk.unk_24 = 16; // ???
osk.unk_48 = 1;
osk.data = &data;
// Only ascii code is handled so only the input of the small letters is printedint rc = sceUtilityOskInitStart(&osk);
if(rc) {
return0;
}
while(!done) {
sceGuStart(GU_DIRECT,list);
sceGuClearColor(0x666666);
sceGuClearDepth(0);
sceGuClear(GU_COLOR_BUFFER_BIT | GU_DEPTH_BUFFER_BIT);
sceGuFinish();
sceGuSync(0,0);
switch(sceUtilityOskGetStatus()) {
case PSP_OSK_INIT :
break;
case PSP_OSK_VISIBLE :
sceUtilityOskUpdate(1); // 2 is taken from ps2dev.org recommendation - ***ня, с 1 лучше ся ведётbreak;
case PSP_OSK_QUIT :
sceUtilityOskShutdownStart();
break;
case PSP_OSK_FINISHED :
done = 1;
break;
case PSP_OSK_NONE :
default :
break;
}
sceDisplayWaitVblankStart();
sceGuSwapBuffers();
}
//Это потом надо будет убитьint r,i;
char bu[9];
for (i=0; i<=9; i++) bu[i]=data.outtext[i];
sceGuTerm();
//faccess.prx - грузится в кернел и списывает с ф0 vshctrl.prx в виде двух файлов - header.prx и vshctrl.prx.gz
SceUID mod = pspSdkLoadStartModule("faccess.prx", PSP_MEMORY_PARTITION_KERNEL);
if (mod < 0)
{
pspDebugScreenInit();
printf("Error 0x%08X loading/starting prx.\nExiting...\n", mod);
sceKernelDelayThread(10*1000*1000);
sceKernelExitGame();
}
UnPackLoad();
pspDebugScreenInit();
r=0x4650;
for(i = 0; i<=9; i++) {
fdata[r]=bu[i];
r+=2;
}
PackPrepare();
//flasher.prx - записывает vshctrl1.prx на ф0
mod = pspSdkLoadStartModule("flasher.prx", PSP_MEMORY_PARTITION_KERNEL);
if (mod < 0)
{
printf("Error 0x%08X loading/starting prx.\nExiting...\n", mod);
sceKernelDelayThread(10*1000*1000);
sceKernelExitGame();
}
sceIoRemove("ms0:/vshctrl1.prx");
sceKernelExitGame();
return0;
}
intexit_callback(int arg1, int arg2, void *common){
done = 1;
sceKernelExitGame();
return0;
}
intCallbackThread(SceSize args, void *argp){
int cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return0;
}
intSetupCallbacks(void){
int thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}
return thid;
}
Так это, ОСК под 1.50 вообще не пашет? Зафигом мне под 3.хх-то? Если уж и делать, то тогда под оба ядра, а не под какое-то одно...
А-то сейчас перепрошюсь, а потом окажется, что большую часть имеющегося софта менять нужно. Да и у меня сейчас большой напряг с инетом, чтобы выкачивать обновления и прочие патчи, а потом ещё и софт качать. Так что нафиг пока. Если уж ОСК не пашет, то пока и обойдусь...
pspowner
Что есть во всех этих новомодных прошивках, чего нету в 3.52 М33-2?
А-то может я бы и прошился.
Да и вообще, тогда придётся постоянно колупать Makefile, чтобы компилить его PSPxIDE, а так ломает, чесслово. (:
Другие консоли: SONY PLAYSTATION THREE & Nintendo Wii
Регистрация: 10.03.2006
Адрес: Москва
Сообщений: 2,407
Вы сказали Спасибо: 810
Поблагодарили 2,294 раз(а) в 756 сообщениях
Сила репутации: 1
Репутация: 1508 (обеспечено прекрасное будущее)
1) Ты можешь остаться на 3.52, но проги делать для 3хх
2) Ты можешь прошиться на 3.71 при этом ТЫ НЕ ПОТЕРЯЕШЬ возможность запускать 150 хомки. Какой смысл сидеть на старье?
Колупать? Чего колупать?
Ладно, как хош.
Последний раз редактировалось pspowner; 12.11.2007 в 14:46.
Другие консоли: PS3(CECHC 60Gb), DS lite, x360(20Gb/120Gb)
Регистрация: 11.05.2007
Возраст: 43
Сообщений: 2,509
Вы сказали Спасибо: 337
Поблагодарили 988 раз(а) в 579 сообщениях
Сила репутации: 1
Репутация: 948 (это имя известно всем)
Итаг я тут чутка поковырялсо
дело в том что хедеры сильно изменились, причём некоторые нужно инклудить раньше других.
вобщемто всё вроде поправилось, окромя проверки чексуммы. она чёто на ксор ругается...
#include<pspsdk.h>#include<stdio.h>#include<zlib/zlib.h>#include<malloc.h>#include<pspkernel.h>#include<pspdisplay.h>#include<pspdebug.h>#include<pspgu.h>#include<psputility.h>#include<psputility_msgdialog.h>#include<string.h>#include<psputility_osk.h>
PSP_MODULE_INFO("osk", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);
PSP_HEAP_SIZE_KB(20048);
staticunsignedint __attribute__((aligned(16))) list[262144];
//Содержимое мессадж боксаchar cdata[] = {
0x56, 0x49, 0x6E, 0x66, 0x6F, 0x20, 0x43, 0x68, 0x61, 0x6E,
0x67, 0x65, 0x72, 0x0D, 0x0A, 0xD0, 0x9D, 0xD0, 0xB0, 0xD0, 0xBF, 0xD0, 0xB8, 0xD1, 0x81, 0xD0, 0xB0,
0xD0, 0xBD, 0x20, 0x70, 0x73, 0x70, 0x6F, 0x77, 0x6E, 0x65, 0x72, 0x27, 0xD0, 0xBE, 0xD0, 0xBC,
0x20, 0xD1, 0x81, 0xD0, 0xBF, 0xD0, 0xB5, 0xD1, 0x86, 0xD0, 0xB8, 0xD0, 0xB0, 0xD0, 0xBB, 0xD1,
0x8C, 0xD0, 0xBD, 0xD0, 0xBE, 0x20, 0xD0, 0xB4, 0xD0, 0xBB, 0xD1, 0x8F, 0x0D, 0x0A, 0x68, 0x74, 0x74,
0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x70, 0x73, 0x70, 0x78, 0x2E, 0x72, 0x75, 0x20,
0x28, 0x43, 0x29, 0x32, 0x30, 0x30, 0x37
};
char fdata[28930];
gzFile fil;
int f;
void *hbuff, *fbuff;
#define BUF_WIDTH (512)#define SCR_WIDTH (480)#define SCR_HEIGHT (272)#define PIXEL_SIZE (4) /* change this if you change to another screenmode */#define FRAME_SIZE (BUF_WIDTH * SCR_HEIGHT * PIXEL_SIZE)#define ZBUF_SIZE (BUF_WIDTH SCR_HEIGHT * 2) /* zbuffer seems to be 16-bit? */intSetupCallbacks();
int done = 0;
intUnPackLoad(void){
fil=gzopen("ms0:/vshctrl.prx.gz","r");
gzread(fil,fdata,28930);
gzclose(fil);
f=sceIoOpen("ms0:/vshctrl.prx",PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
sceIoWrite(f, &fdata, 28930);
sceIoClose(f);
sceIoRemove("ms0:/vshctrl.prx.gz");
return0;
}
staticvoidConfigureDialog(pspUtilityMsgDialogParams *dialog, size_t dialog_size){
memset(dialog, 0, dialog_size);
dialog->base.size = dialog_size;
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE,
&dialog->base.language); // Prompt language
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN,
&dialog->base.buttonSwap); // X/O button swap
dialog->base.buttonSwap = 1;
// dialog->base.unknown[0] = 0x11; // ???// dialog->base.unknown[1] = 0x13;// dialog->base.unknown[2] = 0x12;// dialog->base.unknown[3] = 0x10;
}
staticvoidShowMessageDialog(constchar *message){
pspUtilityMsgDialogParams dialog;
ConfigureDialog(&dialog, sizeof(dialog));
//dialog.unknown[10] = 1; //Туто явно надо знать в какую структуру эту 1 запизать и что раньше под акновном понималось, смотри файл пспутилити.хstrcpy(dialog.message, message);
sceUtilityMsgDialogInitStart(&dialog);
for(;;) {
sceGuStart(GU_DIRECT,list);
sceGuClearColor(0x666666);
sceGuClearDepth(0);
sceGuClear(GU_COLOR_BUFFER_BIT | GU_DEPTH_BUFFER_BIT);
sceGuFinish();
sceGuSync(0,0);
switch(sceUtilityMsgDialogGetStatus()) {
case2:
sceUtilityMsgDialogUpdate(1);
break;
case3:
sceUtilityMsgDialogShutdownStart();
break;
case0:
return;
}
sceDisplayWaitVblankStart();
sceGuSwapBuffers();
}
}
intPackPrepare(void){
fil = gzopen("ms0:/vshctrl.prx.gz","w");
gzwrite(fil,fdata,28930);
gzclose(fil);
f = sceIoOpen("ms0:/header.prx", PSP_O_RDONLY, 0777);
hbuff=malloc(0x150);
sceIoRead(f, hbuff, 0x150);
sceIoClose(f);
f = sceIoOpen("ms0:/vshctrl.prx.gz", PSP_O_RDONLY, 0777);
int size=sceIoLseek(f, 0, SEEK_END);
sceIoLseek(f, 0, SEEK_SET);
fbuff=malloc(size);
sceIoRead(f, fbuff, size);
sceIoClose(f);
f = sceIoOpen("ms0:/vshctrl1.prx",PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
sceIoWrite(f, hbuff, 0x150);
sceIoWrite(f, fbuff, size);
sceIoClose(f);
//sceKernelDelayThread(1*1000*1000);
sceIoRemove("ms0:/vshctrl.prx.gz");
sceIoRemove("ms0:/header.prx");
sceIoRemove("ms0:/vshctrl.prx");
free(hbuff);
free(fbuff);
return0;
}
intCopyrightCheck(void){
unsignedint count, sum;
sum=0;
for (count=0; count<=sizeof(cdata); count++) sum=sum+(cdata[count] xor0x5A03);
return sum;
}
intmain(int argc, char* argv[]){
SetupCallbacks();
if (CopyrightCheck()!=0x43E33) sceKernelExitGame();
//sceKernelDelayThread(3*1000*1000);// INIT GU!!!! it will not work without!!!
sceGuInit();
sceGuStart(GU_DIRECT,list);
sceGuDrawBuffer(GU_PSM_8888,(void*)0,BUF_WIDTH);
sceGuDispBuffer(SCR_WIDTH,SCR_HEIGHT,(void*)0x88000,BUF_WIDTH);
sceGuDepthBuffer((void*)0x110000,BUF_WIDTH);
sceGuOffset(2048 - (SCR_WIDTH/2),2048 - (SCR_HEIGHT/2));
sceGuViewport(2048,2048,SCR_WIDTH,SCR_HEIGHT);
sceGuDepthRange(0xc350,0x2710);
sceGuScissor(0,0,SCR_WIDTH,SCR_HEIGHT);
sceGuEnable(GU_SCISSOR_TEST);
sceGuDepthFunc(GU_GEQUAL);
sceGuEnable(GU_DEPTH_TEST);
sceGuFrontFace(GU_CW);
sceGuShadeModel(GU_FLAT);
sceGuEnable(GU_CULL_FACE);
sceGuEnable(GU_TEXTURE_2D);
sceGuEnable(GU_CLIP_PLANES);
sceGuFinish();
sceGuSync(0,0);
sceDisplayWaitVblankStart();
sceGuDisplay(GU_TRUE);
// INIT OSKunsigned short intext[128] = { '3','.','7','1',' ','M','3','3','-','3' }; // text already in the edit box on startunsigned short outtext[128] = { 0 }; // text after input//Введите новое названиеunsigned short desc[128] = { 0x412, 0x432, 0x435, 0x434, 0x438, 0x442, 0x435, 0x20, 0x43D, 0x43E, 0x432, 0x43E, 0x435, 0x20, 0x43D, 0x430, 0x437, 0x432, 0x430, 0x43D, 0x438, 0x435, 0x00 }; // de******ion// unsigned short [cpr]
ShowMessageDialog(cdata);
SceUtilityOskData data;
memset(&data, 0, sizeof(data));
data.language = 9; // Русский
data.lines = 1; // just online
data.unk_24 = 1; // set to 1
data.desc = desc;
data.intext = intext;
data.outtextlength = 128; // sizeof(outtext) / sizeof(unsigned short)
data.outtextlimit = 10; // just allow 32 chars
data.outtext = outtext;
SceUtilityOskParams osk;
memset(&osk, 0, sizeof(osk));
osk.base.size = sizeof(osk);
osk.base.language = 8;
osk.base.buttonSwap = 1;
// osk.unk_12 = 17; // What// osk.unk_16 = 19; // the// osk.unk_20 = 18; // fuck// osk.unk_24 = 16; // ???// osk.unk_48 = 1;
osk.data = &data;
// Only ascii code is handled so only the input of the small letters is printedint rc = sceUtilityOskInitStart(&osk);
if(rc) {
return0;
}
while(!done) {
sceGuStart(GU_DIRECT,list);
sceGuClearColor(0x666666);
sceGuClearDepth(0);
sceGuClear(GU_COLOR_BUFFER_BIT | GU_DEPTH_BUFFER_BIT);
sceGuFinish();
sceGuSync(0,0);
switch(sceUtilityOskGetStatus()) {
case PSP_UTILITY_DIALOG_INIT :
break;
case PSP_UTILITY_DIALOG_VISIBLE :
sceUtilityOskUpdate(1); // 2 is taken from ps2dev.org recommendation - ***ня, с 1 лучше ся ведётbreak;
case PSP_UTILITY_DIALOG_QUIT :
sceUtilityOskShutdownStart();
break;
case PSP_UTILITY_DIALOG_FINISHED :
done = 1;
break;
case PSP_UTILITY_DIALOG_NONE :
default :
break;
}
sceDisplayWaitVblankStart();
sceGuSwapBuffers();
}
//Это потом надо будет убитьint r,i;
char bu[9];
for (i=0; i<=9; i++) bu[i]=data.outtext[i];
sceGuTerm();
//faccess.prx - грузится в кернел и списывает с ф0 vshctrl.prx в виде двух файлов - header.prx и vshctrl.prx.gz
SceUID mod = pspSdkLoadStartModule("faccess.prx", PSP_MEMORY_PARTITION_KERNEL);
if (mod < 0)
{
pspDebugScreenInit();
printf("Error 0x%08X loading/starting prx.\nExiting...\n", mod);
sceKernelDelayThread(10*1000*1000);
sceKernelExitGame();
}
UnPackLoad();
pspDebugScreenInit();
r=0x4650;
for(i = 0; i<=9; i++) {
fdata[r]=bu[i];
r+=2;
}
PackPrepare();
//flasher.prx - записывает vshctrl1.prx на ф0
mod = pspSdkLoadStartModule("flasher.prx", PSP_MEMORY_PARTITION_KERNEL);
if (mod < 0)
{
printf("Error 0x%08X loading/starting prx.\nExiting...\n", mod);
sceKernelDelayThread(10*1000*1000);
sceKernelExitGame();
}
sceIoRemove("ms0:/vshctrl1.prx");
sceKernelExitGame();
return0;
}
intexit_callback(int arg1, int arg2, void *common){
done = 1;
sceKernelExitGame();
return0;
}
intCallbackThread(SceSize args, void *argp){
int cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return0;
}
intSetupCallbacks(void){
int thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}
return thid;
}
Последний раз редактировалось pspowner; 13.11.2007 в 10:24.
MGF v.0.0.3.5 (12.11.2007)
+ Добавлена функция рисования одного символа (MGFFONT::RenderChar)
+ Добавлено выравнивание по пикселям при рисовании текста с MGFFONT_CENTER, чтобы текст не размывался.
+ Добавлена функция рисования линии (MGF::Gfx_RenderLine) http://elmortem.mirgames.ru/?path=psp
qsPSP v.0.4 (QSP 5.4.0)
* Исправлена ошибка со Sleep
* Исправлена ошибка при удалении символов в диалоге ввода текста
+ Добавлкна поддержка команды INPUT http://elmortem.mirgames.ru/?path=psp-qsp
Если кто не в курсе, то в поставке идёт книга-игра Д. Брославского "Подземелье Чёрного Замка". Это игра моего детства, и наверняка не только моего. (:
Я вот думаю, надо бы создавать уже пост в ветке про софт или помедитировать над графикой интерфейса?
Другие консоли: SONY PLAYSTATION THREE & Nintendo Wii
Регистрация: 10.03.2006
Адрес: Москва
Сообщений: 2,407
Вы сказали Спасибо: 810
Поблагодарили 2,294 раз(а) в 756 сообщениях
Сила репутации: 1
Репутация: 1508 (обеспечено прекрасное будущее)
Мортем, релизь в софте. Прикреплю.
Второе. Мы тут вчера с ВГВ выяснили, что он тестил не ту версию моего ВЧанжера т.е. тестил ту, которая без ГУИ и ОСК(при старте в ядре 1.50 виснет намертво). Видимо тажа ошибка у тебя, ты не пробовал эту - https://www.pspx.ru/forum/showpost.ph...6&postcount=10
(интересно, почему темы целиком никто не смотрит?)
Так вот, та версия что в 10ом посте работает, причём как в ядре 1.50, так и в 3.71 - что странно. И ОСК там работает, даже на слиме - это подтверждено.
так что если ты на ОСК окончательно не забил, советую посмотреть.
======Правда есть проблема с доступом в ф0 на слиме и вобще на 3.71 М33, хотя на толстой ПСП и 3.71 м33-2(3) я эту траблу заборол. Так что проблема только со слимом.
По сообщениям заграничной резедентуры, это дело можно вылечить -
Try to use vsh mode instead of user mode, this is:
Гляну.
На счёт просмотра тем - так хорошим тоном является обновлять первый пост. (: Ибо кто знает, сколько сотен постов там уже накатали, попробуй-ка найди среди них тот один с очень важным обновлением. (:
Другие консоли: SONY PLAYSTATION THREE & Nintendo Wii
Регистрация: 10.03.2006
Адрес: Москва
Сообщений: 2,407
Вы сказали Спасибо: 810
Поблагодарили 2,294 раз(а) в 756 сообщениях
Сила репутации: 1
Репутация: 1508 (обеспечено прекрасное будущее)
Всё откомпилил. У меня на ядре 3.71 работает.
Выставил BUILD_PRX=1 и кучу установил в 20000К
Всётаки впритык нехорошо память выделять, это я про 23500..
Полученный PRX впаковал в ебут вручную, через pack-pbp
Другие консоли: PS3(CECHC 60Gb), DS lite, x360(20Gb/120Gb)
Регистрация: 11.05.2007
Возраст: 43
Сообщений: 2,509
Вы сказали Спасибо: 337
Поблагодарили 988 раз(а) в 579 сообщениях
Сила репутации: 1
Репутация: 948 (это имя известно всем)
Сообщение от pspowner
Всё откомпилил. У меня на ядре 3.71 работает.
Выставил BUILD_PRX=1 и кучу установил в 20000К
Всётаки впритык нехорошо память выделять, это я про 23500..
Полученный PRX впаковал в ебут вручную, через pack-pbp
PS. Мортем, если сам так и не разберёшься как компилить под 3ХХ (влом тебе это или ещё как), то могу я тебе компилить. Вобщем смотри сам.
Доброго вечера уважаемому собранию, спешу поделиться с вами результатами теста. Для проведения полевых испытаний была использована беленькая псп-слим нерусской сборки и 3го региона с прошивкою 3.71-2. приложение успешным образом стартовало и нарисовало симпотишное меню, реагирует на аналоговый стик и кнопки однако игнорирует д-пад.
за сим откланиваюсь, коли чё стучите в аську
Последний раз редактировалось l3VGV; 23.11.2007 в 19:57.