Přejít na obsah
  • Vytvořit účet

Mootooho kruzok mladeho programatora


mootoo

Recommended Posts

  • Odpovědi 117
  • Vytvořeno
  • Poslední odpověď

Nejvíc přispívající

Nejvíce příspěvků v jednom dni

Nejvíc přispívající

mazec, neco se naucim :D jinak, nepouzivam cygwin, ale primo Linux :D

BTW kdyz uz jsme u toho, proc potrebujes na kodeni wget ? vis na co vubec je ? neni tam (zatim teda) vubec treba....

Jinak k tomu debugu :D delat hry v debugu je docela mazec... vite na co je debug ? V tom by se aplikace spravne "normalne" poustet ani nemely :D je to pouze na odhalovani chyb... (jen tak mimochodem) :D nvm teda jak je to u PSP... ale myslim ze debug znamena ve vsech jazycich na vsech platformach to same :D ... vim ze to facha, ale je to nestandartni zpusob.. neco jako kdyby jsi mel splachovaci zachod a splachoval ho kyblem :D

Jinak ale moc diky! Aspon se trochu naucim zaklady C !!

Odkaz ke komentáři
Sdílet na ostatní stránky

tak u PSP sa debug pouziva uplne bezne

jasne, OK :D

inak dnes som urobil malu aplikaciu, ktora namiesto coldboot ukaze obrazok, este si musim nakreslit vo photoshop nejaky cool welcome message :D

pekne, ale zbytecne :D coldboot se uz upravovat da.. a do videjka si muzes dat fixni obrazek :D ale jinak pekne...

mootoo pod na icq nieco preberame s kgsws

pro konference se nejvic hodi IRC, pokud vis ctj :D ... ale nechci se plest.. jen jsem te upozornil ze existuji i lepsi veci nez ICQ...
Odkaz ke komentáři
Sdílet na ostatní stránky

PSP I/O File Manager

Príklad použitia

Author: myschoo

Predtím než začnete čítať si ešte prezrite tento súbor:

C:\cygwin\usr\local\pspdev\psp\sdk\include\pspiofilemgr.h

main.c:

/*
* 
*  File I/O Príklad
*  Autor: myschoo
*  Datum: 03.08.2007
*
*/

#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspiofilemgr.h> // potrebny pre sceIo funkcie
#include <stdio.h>
#include <pspcallbacks.h> // Callbacky mam oddelene v header súbore

PSP_MODULE_INFO("File I/O", 0, 1, 1);

#define printf pspDebugScreenPrintf

int fd;                                                  // integer pre sceIoOpen, tzv. File Descryptor - file remove - zmazanie
int fr;                                                  // integer pre sceIoOpen - file read - citanie
int fw;                                                  // integer pre sceIoOpen - file write - zapis
int dls;                                                 // integer pre sceIoRead - dls ako dlzka suboru v bytoch
int dls2;                                                // integer pre sceIoWrite - dls ako dlzka suboru v bytoch
char pamat[128];                                         // vyčlenená pamäť pre čítanie zo súboru, maximalne 127 znakov
char retazec[128] = "Tato veta bude zapisana do suboru"; // retazec znakov ktory sa zapise do suboru, maximalne 127 znakov

/* ===== Začiatok INT MAIN ===== */

int main() { 

SetupCallbacks();     // Nastavíme Callbacky
pspDebugScreenInit(); // Zinicializujeme obrazovku

pspDebugScreenSetBackColor(0xFF0000);
printf("Manipulacia zo subormi\nAutor prikladu: myschoo\n\n\n"); // Info

sceKernelDelayThread(2*1000*1000); // Male medzizastavky pre "cool efekt" :D

pspDebugScreenSetBackColor(0x000000);
printf("Najprv zmazeme \"subor_na_zmazanie.txt\"\n\n"); // Najprv zmazeme subor

sceKernelDelayThread(3*1000*1000);

/*
* const char *file - cesta k súboru
* int flags - vlajky :D PSP_O_RDONLY, PSP_O_WRONLY, PSP_O_CREAT atď. - určujú ako sa má súbor otvariť, prípadne či sa má vytvoriť
* SceMode mode - prístupový mód
* 
* funkcia vráti negatívny integer, ak nastala chyba a pozitívny alebo 0 ak prebehla úspešne
*
* SceUID sceIoOpen(const char *file, int flags, SceMode mode);
*/

fd = sceIoOpen("subor_na_zmazanie.txt", PSP_O_RDONLY, 0777);

if(fd<0) {                                                  // ak vráti menej ako 0
sceIoClose(fd);                                             // súbor zavrieme
printf("Subor \"subor_na_zmazanie.txt\" neexistuje!\n\n");  // vypíšeme chybovú hlášku
} else {                                                    // inak
sceIoClose(fd);                                             // súbor zavrieme
sceIoRemove("subor_na_zmazanie.txt");                       // súbor zmažeme
printf("Subor bol uspesne zmazany!\n\n");                   // vypíšeme potvrdzujúcu hlášku o úspechu
}

sceKernelDelayThread(4*1000*1000);

printf("Teraz precitame \"subor_na_citanie.txt\"\n\n");     // Teraz čítanie

sceKernelDelayThread(3*1000*1000);

fr = sceIoOpen("subor_na_citanie.txt", PSP_O_RDONLY, 0777); // otvoríme súbor ako minule

if(fr<0) {
sceIoClose(fr);                                             // tu platí všetko rovnako
printf("Subor \"subor_na_citanie.txt\" neexistuje!\n\n");
} else {

/*
* SceUID fd - file descryptor otvoreneho suboru
* void *data - pointer k buffer (u nas je to char pamat[128];)
* SceSize size - velkosť citaných dát v bytoch
* 
* funkcia vrati pocet precitanych bytov
*
* int sceIoRead(SceUID fd, void *data, SceSize size);
*/

dls = sceIoRead(fr, pamat, 127);
sceIoClose(fr);                  // zavrieme súbor
printf("Obsah suboru:\n");
printf("%s\n\n",pamat);          // vypiseme obsah suboru
}

sceKernelDelayThread(4*1000*1000);

printf("Teraz vytvorime \"subor_na_zapis.txt\"\n"); // teraz vytvorime subor a zapiseme do neho predom definovany retazec
printf("a zapiseme do neho: %s\n\n",retazec);

sceKernelDelayThread(3*1000*1000);

fw = sceIoOpen("subor_na_pisanie.txt", PSP_O_WRONLY|PSP_O_APPEND|PSP_O_CREAT, 0777);
//             otvori subor na:           ZAPIS na  KONIEC SUBORU. Ak subor neexistuje tak ho vytovri

if(fw<0) {
sceIoClose(fw);
printf("Nemozem vytvorit \"subor_na_zapis.txt\"!\n\n");
} else {

/*
* SceUID fd - file descryptor otvoreneho suboru
* void *data - pointer k buffer (u nas je to char retazec[128];)
* SceSize size - velkosť citaných dát v bytoch
*
* funkcia vrati pocet zapisanych bytov
*
* int sceIoWrite(SceUID fd, const void *data, SceSize size);
*/

dls2 = sceIoWrite(fw, retazec, 128);
sceIoClose(fw);
printf("Data boli zapisane!\n\n");
}

sceKernelDelayThread(3*1000*1000);

printf("Koniec prikladu. Stlac [HOME] pre navrat do XMB.");

sceKernelSleepThread();
return 0;
}

makefile:

TARGET = fileio
OBJS = main.o

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = File I/O

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Odkaz ke komentáři
Sdílet na ostatní stránky

abych aj ja prispel svojou troskou do mlyna tak tu je haluz co som zbuchal teraz za 20 minut, jkod je trosku mozno neprehladny je vazne robene narychlo ale momentalne sa idem venovat ramake hry HACK a na tu sa tesim ked bude hotova, len este nefim ci bude v textovom alebo v grafickom rezime to este uvidime

#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspctrl.h>
#include <stdio.h> 
#include <stdlib.h>

PSP_MODULE_INFO("HeWo", 0, 1, 1);

#define printf pspDebugScreenPrintf
#define color pspDebugScreenSetTextColor
#define backcolor pspDebugScreenSetBackColor
#define gotoXY pspDebugScreenSetXY


/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
         sceKernelExitGame();
         return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
         int cbid;

         cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
         sceKernelRegisterExitCallback(cbid);

         sceKernelSleepThreadCB();

         return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
         int thid = 0;

         thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
         if(thid >= 0) {
                   sceKernelStartThread(thid, 0, 0);
         }

         return thid;
}

SceCtrlData pad;
int bludisko[68][32];
int x,y;
int px,py;
int koniec=0;

int random(int high)
{
return (rand() % (high+1));
}


void ukazhraca(int i,int j,int pi, int pj) // ma na starosti samotne prekreslovanie hraca
{
int obr=1;
gotoXY(pi,pj);
printf(" ");
gotoXY(i,j);
printf("%c",obr);
gotoXY(0,0);
}

void inic(void)
{  
  int rnd=0;
  for(x=0;x<=67;x++)
  {
    bludisko[x][0]=219;
    bludisko[x][31]=219;  
  }
  for(y=0;y<=31;y++)
  {
    bludisko[0][y]=219;
    bludisko[67][y]=219;
  }
  for(y=1;y<=30;y++)
  { 
    for(x=1;x<=66;x++)
      {
        rnd=random(100);
        if (rnd<=15) bludisko[x][y]=219;
        if (rnd<=0)  bludisko[x][y]=188;
      }
  }
  bludisko[68][32]=0;
  bludisko[66][31]=0;
  bludisko[65][31]=0;
}

void ukazbludisko(void)
{
int i,j;
for(i=0;i<=31;i++)
{
	for(j=0;j<=67;j++)
	{
		printf("%c",bludisko[j][i]);
	}
}
ukazhraca(x,y,px,py);
}

void smrt(void)
{
   int slucka=0;
gotoXY(5,5);
printf("ZOMREL SI STUPIL SI NA PASCU");
gotoXY(5,7);
printf("aby si mohol pokracovat stlac O");
while (slucka!=1)
{
	sceCtrlReadBufferPositive(&pad, 1);
	if(pad.Buttons & PSP_CTRL_CIRCLE) slucka=1;
}
px=1;
   py=1;
x=1;
y=1;
gotoXY(0,0);
}

void vyhra(void)
{
   int slucka=0;
gotoXY(5,5);
printf("GRATULUJEME VYHRAL SI");
gotoXY(5,7);
printf("aby si mohol pokracovat stlac O");
while (slucka!=1)
{
	sceCtrlReadBufferPositive(&pad, 1);
	if(pad.Buttons & PSP_CTRL_CIRCLE) slucka=1;
}
koniec=1;
}

void kam(void)
{
sceCtrlReadBufferPositive(&pad, 1);
   if(pad.Buttons & PSP_CTRL_CROSS)  koniec=1;
   if(pad.Buttons & PSP_CTRL_RIGHT)  
{
	px=x;
	py=y;
	x++;
	if (bludisko[x][y]==219) x=px;
	if (bludisko[x][y]==188) smrt();
	ukazbludisko();
   }
   if(pad.Buttons & PSP_CTRL_LEFT)  
{
	px=x;
	py=y;
	x--;
	if (bludisko[x][y]==219) x=px;
	if (bludisko[x][y]==188) smrt();
	ukazbludisko();
}
   if(pad.Buttons & PSP_CTRL_UP)    
{
	px=x;
	py=y;
	y--;
	if (bludisko[x][y]==219) y=py;
	if (bludisko[x][y]==188) smrt();
	ukazbludisko();
}
   if(pad.Buttons & PSP_CTRL_DOWN)   
{
	px=x;
	py=y;
	y++;
	if (bludisko[x][y]==219) y=py;
	if (bludisko[x][y]==188) smrt();
	ukazbludisko();
}
if ((x==66)&(y==31)) vyhra();
}

int main() {
SetupCallbacks();
pspDebugScreenInit();
inic();
px=1;
py=1;
x=1;
y=1;
ukazbludisko();
while (koniec!=1)
{
kam();
}
sceKernelExitGame();
return 0;

Odkaz ke komentáři
Sdílet na ostatní stránky

  • 3 weeks later...
  • 3 weeks later...
Naskrolujte na "wget" a nastavte na "install". --- ale ja tam nemuzu nastavit instal ale jen 1.10.2-2 a 1.10.2-1 poradte nekdo

kdysi mi to nejak slo :), ale zkusil jsem si to jeste jednou, abych ti mohl spravne odpovedet a ted uz se k tomu vubec nedostanu .....

ale videl bych to takhle ....

u kategorie DEVEL asi s nastavenim nemas problem, takze jenom ke kategorii WEB - tu otevres a naskrolujes na WGET a nechej tam tu volbu, kde je ve sloupci CURRENT 1.10.2-2, ve sloupci NEW 1.10.2-1 a ve sloupci BIN? je zatrzitko

:thumbup:

Odkaz ke komentáři
Sdílet na ostatní stránky

kvuli vyvoji na PSP jsem jaksi nedostacoval s pouze prekladem programu, nahranim do PSP, spustenim a naslednym testovanim a vypisem debug hlaseni pomoci printf .... ;) tak jsem si zkusil nainstalovat a rozchodit PSPLINK a dale pak PSPLINKUSB .....

pomoci nej jdou veci delat mnohem lepe a rychleji .....

ptam se tedy, jestli by byl zajem abych zde popripade v jinem THREADU vytvoril TUTORIAL, ktery by se tykal tohoto mocneho nastroje?

PS: jeste bych ale do poznamky pridal, ze by se jednalo o navod na sestaveni a rozchozeni PSPLINKU ze zdrojovych kodu a ne jak tomu je v pripade "TUTORIALU RemoteJoy - PSP Obrazovka v PC" (i kdyz pouziti toho kompilovaneho z RemoteJoy by asi taky nemela byt nejak problematicka)

Odkaz ke komentáři
Sdílet na ostatní stránky

  • 1 month later...

Přidej se do diskuze

Můžete přidat přidat příspěvek a zaregistrovat se později. Pokud máte úcet, přihlašte se.

Návštěvník
Odpovědět na toto téma...

×   Vložili jste obsah s formátováním..   Odstranit formátování

  Only 75 emoji are allowed.

×   Váš odkaz byl automaticky načten a vložen..   Zobrazit jako odkaz

×   Váš předchozí obsah byl obnoven.   Vymazat obsah

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Vytvořit...

Důležitá informace

Tento web používá k poskytování služeb a k analýze návštěvnosti soubory cookies. Více informací naleznete v Zásady ochrany osobních údajů a Pravidla webu