-
Příspěvků
152 -
Registrace
-
Poslední návštěva
Typ obsahu
Profil
Fórum
Kalendář
Blogs
Vše od uživatele kweensey
-
To neni dokazatelne.. rekni, ze kdyz ho vycisti a pojede, tak mu ho vymenis.. ;)
-
k4relB: Je to C/C++ s knihovnama pro PSP.. Leny: Jeslti o to bude zajem, tak ano.. ;)
-
Zdravim, potom, co mootoo udelal uvod do programovani v C/PSP, rozhodl jsem se - po vzoru myschooa - zacit delat takove jednoduche tutorialy na zajimave aplikace. Napred se budu inspirovat myshooovymi tutorialy v LUA a budu ukazovat, jak je udelat v C/PSP a az mi dojdou, tak zacnu delat svoje vlastni.. Pokazde, kdyz neco noveho pribyde, tak budu aktualizovat tento prispevek a napisu do tohoto tematu. Tak doufam, ze to bude aspon k necemu a nekoho tim na chvili zabavim. kweensey ----------------------------------------------------------------------- Upozorneni: Pokud nemate ani zaklady nebo vyvojarske prostredi Cygwin, prectete si nejprve Mootooho kruzok mladeho programatora. Pokud byste meli s instalaci a nastavenim Cygwinu nejake problemy, zkuste to podle tohoto (anglickeho) navodu. ----------------------------------------------------------------------- Seznam tutorialu: * Buttons Tester * Battery Stats * Pixel Unsticker ----------------------------------------------------------------------- Buttons Tester Buttons Tester bude programek, ktery Vam rekne, jake tlacitko prave drzite.. :D Budete potrebovat nasledujici soubory: lesson_1_buttons-tester.zip Jak na to: Vytvorime si novy soubor main.c. A jdeme na to, zacneme s includama (tedy nadefinujeme knihovny, ze kterych budeme pouzivat prikazy). #include <pspkernel.h> #include <pspctrl.h> #include "graphics.h" pspkernel.h - zaklad vsech PSP programu pspctrl.h - pristup ke tlacitkum PSP graphics.h - pristup k displayi a zobrazovani (je uvedena v uvozovkach misto v hranatych zavorkach proto, ze ji mame vedle naseho programu a ne v jadru Cygwinu) Ted nadefinujeme informace o nasem programu: PSP_MODULE_INFO("Buttons Tester", 0, 1, 0); Buttons Tester - jmeno naseho programu 0 - bude bezet pod uzivatelskym rezimem 1 - verze naseho programu (v1.0) 0 - desetinne cislo verze (v1.0) Nasledujici kod je velice slozity, avsak vubec mu nemusite rozumet. int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } Tento kod obsahuje funkce, ktere budeme pouzivat. V podstate se stara o to, aby hra bezela na PSP, aby se nezasekavala a nevypinala, kdy nebudeme chtit. Doted jsme se starali o to, aby se nase hra rozjela na PSP a v poradku jela. Odted se budeme zabyvat tim, co nase hra ma delat. main() { Kazdy program tuto cast musi mit. Je to v podstate ta cast, kde je napsane, co ma program delat. Doted jsme si jenom definovali funkce, ted je budeme pouzivat. Otevrena slozena zavorka oznacuje, ze tady cast main zacina. SetupCallbacks(); Timto prikazem vyvolame ten kod, ktery se stara o stabilitu hry na PSP. Definovali jsme si ho vyse, vzpominate? ;) initGraphics(); Vyvolame grafickou knihovnu, abychom mohli pouzivat obrazky. Ted se dostavame k ovladani - tedy tlacitkum. SceCtrlData pad; Nadefinovali jsme si promennou pad, ktera v sobe bude obsahovat zmacknute tlacitko. Ted se dostavame k casti, kdy PSP nahraje nase obrazky (pozadi a ikonky tlacitek) do sve pameti a pote je bude pouzivat. Image* Background; Background = loadImage("./images/background.png"); Image* Background; - budeme nahravat obrazek pojmenovany Background Background = loadImage("./images/background.png"); - nahrat obrazek Background ze sveho umisteni (slozky images) Ted budeme delat tu samou akci, akorat nebudeme kazdou ikonku tlacitka nahravat jako novy obrazek, ale udelame skupinu obrazku nazvanou Buttons a do ni nahrajeme vsechny tlacitka a kazde bude mit svoje cislo. Image* Buttons[10]; Buttons[0] = loadImage("./images/no_button.png"); Buttons[1] = loadImage("./images/up_arrow.png"); Buttons[2] = loadImage("./images/down_arrow.png"); Buttons[3] = loadImage("./images/left_arrow.png"); Buttons[4] = loadImage("./images/right_arrow.png"); Buttons[5] = loadImage("./images/cross_button.png"); Buttons[6] = loadImage("./images/circle_button.png"); Buttons[7] = loadImage("./images/square_button.png"); Buttons[8] = loadImage("./images/triangle_button.png"); Buttons[9] = loadImage("./images/left_trigger.png"); Buttons[10] = loadImage("./images/right_trigger.png"); Image* Buttons[10]; - skupina obrazku Buttons, ktera obsahuje obrazku od 0 do 10 Buttons[0] = loadImage("./images/no_button.png"); - obrazek 0 ve skupine Buttons nahrajeme ze sveho umisteni Ted si nadefinujeme promennou button pro urcovani jednotlivych obrazku ze skupiny (pochopite potom). int button = 0; int - zkracene integer nam rika, ze se bude jednat o promennou, ktera v sobe bude uchovavat cislo button - jmeno nasi promenne = 0 - nastavime jeji pocatecni hodnotu na 0 Ted udelame smycku, ktera se bude opakovat do te doby, dokud neukoncime program. while(1) { Kdybychom ji neudelali, tak program bezi setinu sekundy a dodela kod a ukonci se, tak se budou nasledujici veci provadet porad dokola a bude to program udrzovat v chodu. Ted uz doopravdy zacina samotna cinnost naseho programu. sceCtrlReadBufferPositive(&pad, 1); Precteme tlacitko, ktere je zmacknute a ulozime do vyse definovane promenne pad. A ted zjistime, ktere tlacitko bylo stisknuto, abychom mohli urcit vhodny obrazek. if (pad.Buttons & PSP_CTRL_UP) { button = 1; } Cesky receno: Pokud je stisknuta sipka nahoru, nastav promennou button na hodnotu 1 (1 protoze je to obrazek 1 ve skupine obrazku Buttons nahravanych do pameti). A ted to budeme opakovat se vsema ostatnima tlacitkama (kazdemu priradime jeho cislo). if (pad.Buttons & PSP_CTRL_DOWN) { button = 2; } if (pad.Buttons & PSP_CTRL_LEFT) { button = 3; } if (pad.Buttons & PSP_CTRL_RIGHT) { button = 4; } if (pad.Buttons & PSP_CTRL_CROSS) { button = 5; } if (pad.Buttons & PSP_CTRL_CIRCLE) { button = 6; } if (pad.Buttons & PSP_CTRL_SQUARE) { button = 7; } if (pad.Buttons & PSP_CTRL_TRIANGLE) { button = 8; } if (pad.Buttons & PSP_CTRL_LTRIGGER) { button = 9; } if (pad.Buttons & PSP_CTRL_RTRIGGER) { button = 10; } K tomuto, si myslim, ze neni co dodat, kazdy chape, ne? :) A pokud nebude zmacknute zadne tlacitko, tak se obrazek da na 0. if (pad.Buttons == 0) { button = 0; } Taky jednoduche.. :) Doted se veci delaly a my nic nevideli. Tak jdeme na to.. :wohow: blitAlphaImageToScreen(0, 0, 480, 272, Background, 0, 0); blitAlphaImageToScreen - prikaz k zobrazeni obrazku 0, 0 - stredy (nepotrebujeme, nechame na nulach) 480, 272 - velikost naseho obrazku (stejne velky jako displej PSP, aby pokryl celou plochu) Background - jmeno obrazku (zadavali jsme ho, kdyz jsme ho nahravali do pameti, pamatujete?) 0, 0 - zacatek obrazku (udeva se levy horni roh, takze uplne do rohu) Ted udelame to same, ale s nasim obrazkem zmacknuteho tlacitka. blitAlphaImageToScreen(0, 0, 34, 34, Buttons[button], 224, 120); To same jako predtim. Stredy jsou 0, akorat velikost je jina a vykreslit na 224 a 120 (stred obrazovky). Pozastavim se u jmena. Jmeno nasich obrazku je Buttons[0-10], ze? Ale aby se vykreslil ten obrazek, ktery patri stisknutemu tlacitku, tak jsme do promenne 'button' ulozili cislo daneho obrazku a misto cisla ted dame 'button', chapete? Tim padem se misto 'button' da cislo obrazku a ten se potom vykresli. A ted uz to jenom cele vykreslime na obrazovku. flipScreen(); Kdybychom toto neudelali, tak uvidime jenom cerny display. Sice by vse fungovalo, ale nic by se nezobrazovalo. Tak a ted uz jenom pozavirame otevrene slozene zavorky (od while(1) a od main() ). } return 0; } Return 0 znamena, ze to nema vracet zadnou hodnotu. Tak a to je vse.. :) Ted uz jenom udelat Makefile a zkompilovat. Dal bych tady, jak by mel vypadat vas cely soubor main.c, ale 95% by to zkopirovalo, zkompilovalo a podepsalo se pod to a o to nestojim.. ;) Makefile: TARGET = Buttons_Tester OBJS = main.o graphics.o framebuffer.o CFLAGS = -O2 -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) LIBDIR = LIBS = -lpspgu -lpng -lz -lm LDFLAGS = EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = Buttons Tester PSPSDK=$(shell psp-config --pspsdk-path) include $(PSPSDK)/lib/build.mak A ted uz je to opravdu vse. Ted uz jenom hodit do PSP a vyzkouset. Pozor: Vsechny soubory z prilozeneho archivu musi byt ve stejne slozce, jako vas soubor main.c! Po zkompilovani dejte soubor EBOOT.PBP a celou slozku images do ms0:/PSP/GAME/Buttons Tester/ . ----------------------------------------------------------------------- Battery Stats Battery Stats bude - jak uz musi byt z nazvu jasne - program, ktery nam vypise informace o beterce.. Dneska budete potrebovat soubory z archivu lesson_2_battery-stats.zip.. Takze si udelejte novou slozku a do ni novy soubor main.c. #include <pspkernel.h> #include <pspctrl.h> #include <psppower.h> #include "graphics.h" Myslim, ze netreba vysvetlovat, kazdy chape, o co tady jde.. :) Akorat nam pribyla nova knohovna - psppower.h. PSP_MODULE_INFO("Battery Stats", 0, 1, 0); Nadefinujeme jmeno a verzi. #define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16)) Tento kod nam umozni pouzivat klasicke RGB (cervena/zelena/modra) definice barev a pak je prevede do BGR, ktere knihovna pouziva. #define colBlack RGB(0, 0, 0) Nadefinujeme si v RGB barvu naseho pisma - tedy cernou a pojmenujeme ji colBlack. int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } A callbacky.. :) int print(int x, int y, const char* text) { Vytvorime si novy prikaz print, ktery bude pracovat se tremi argimenty: x, y (pozice) a text. printTextScreen(x, y, text, colBlack); A kdyz se ten prikaz vyvola, tak vypise text na pozici x, y. V podstate je nam to k nicemu, ale - jak rika nas ucitel - programator je tvoj liny a tak si vse usnadnuje. Tento prikaz je nejenom kratsi na psani, ale take diky nemu nemusime pokazde uvadet barvu. return 0; } Uzavreme nas prikaz a protoze nechceme, aby vracel nejaky vysledek, dame return 0;. int main() { A je to zase tady - samotna cinnost programu.. ;) SetupCallbacks(); initGraphics(); SceCtrlData pad; Vyvolame callbacky, graicke rozhrani a nadefinujeme promennou pro tlacitka. char string[256]; Nadefinujeme promennou string, do ktere budeme pozdeji ukladat texty. Neni tam int, ale char, protoze se jedna o promennou, ktera bude obsahovat znaky a ne cislelnou hodnotu. V hranatych zavorkach je uvedena kvota znaku. int batteryLifeTime = 0; Znamym zpusobem nadefinujeme promennou batteryLifeTime a nastavime na 0. Image* background; background = loadImage("./images/background.png"); Nacteme pozadi ze slozky images pod nazvem background. while(1) { A nase nekonecna smycka.. :D (zdravim mootooa :)) blitAlphaImageToScreen(0, 0, 480, 272, background, 0, 0); Vykreslime pozadi. if (scePowerIsPowerOnline()) { print(17, 110, "Vnejsi energie: Ano"); } else { print(17, 110, "Vnejsi energie: Ne"); } A la "Pokud je napajeni zapnuto, vypis Vnejsi energie: Ano na souradnice 17, 90, jinak vypis na stejne souradnice Vnejsi energie: Ne." Je to vlastne uplne obycejna podminka, akorat jsme pouzili nas prikaz na vypisovani a je pouzita podminka z knihovny psppower.h. Myslim, ze nic tezkeho.. ;) if (scePowerIsBatteryExist()) { Dalsi podminka z psppower.h, tentokrat "Pokud je zasunuta baterie...". print(17, 120, "Baterie: Vlozena"); "...tak vypsat text." :) if (scePowerIsBatteryCharging()) { print(17, 130, "Nabijeni: Ano"); } else { print(17, 130, "Nabijeni: Ne"); } Stale nove podminky. Na prvni pohled to muze vypadat slozite, ale jsou to obycejne podminky - jenom nove "otazky".. ;) Jak asi kazdemu doslo, tentokrat se jedna o otazku "Dobiji se baterie?".. sprintf(string, "Uroven nabiti: %d%%", scePowerGetBatteryLifePercent()); Fukce sprintf nam umozni ulozit text, ktery obsahuje hodnoty promennych (v nasem pripade procenta nabiti baterky) do jedne promenne (u nas je to string), kterou potom pouzijeme k vypisovani. %d% bude nahrazeno hodnotou vracenou prikazem scePowerGetBatteryLifePercent. Treti % je normalni procento, ktere se za cislem napise. sprintf(string, "Uroven nabiti: %d%%", scePowerGetBatteryLifePercent()); Prikaz(promenna, do ktere se text ulozi (1), "zobrazeny text vysledek promenne (2) pokracovani textu", promenna (2)); print(17, 140, string); Vypiseme na danou pozici text ulozeny v promenne string. batteryLifeTime = scePowerGetBatteryLifeTime(); Do promenne batteryLifeTime ulozime cas, ktery jeste baterce zbyva (to zni brutalne :D). sprintf(string, "Zbyva hodin: %02d:%02d", batteryLifeTime/60, batteryLifeTime-(batteryLifeTime/60*60)); print(17, 150, string); Tohle vypada hnusne, co? :D Je to stejne jako predtim, akorat misto %d% tady mame %02d, coz zajisti, ze kdyz bude promenna mensi nez 10 (cili bude jednomistna), tak pred i bude nula (zkratka at ma porad dve cifry). Ziskany zbyvajici cas vydelime 60ti a ziskame hodiny. Abychom ziskali minuty (pouze zbyvajici - ne cely zbyvajici cas v minutach!), musime od celkoveho zbyvajiciho casu odecist 3600tinu celkoveho casu. A vypiseme. if (scePowerIsLowBattery()) { print(17, 160, "Slaba baterie: Ano"); } else { print(17, 160, "Slaba baterie: Ne"); } A zase to same.. Pokud je baterie slaba, vypis jedno, v opacnem pripade vypis druhe.. sprintf(string, "Napeti: %0.3f V", scePowerGetBatteryVolt() / 1000.0); print(17, 170, string); Ziskame hodnotu napeti, kterou vypiseme na 3 desetinna mista (%0.3f - misto d je tam f, protoze se nejedna o cele, ale desetinne cislo). Za scePowerGetBatteryVolt() je / 1000.0, aby posledni desetinnecislo byly tisiciny. sprintf(string, "Teplota: %d \"C", scePowerGetBatteryTemp()); print(17, 180, string); Ted tady po tech brutalitach mame zase uplne primitivni zjisteni teploty, kterou dostaneme v jednotkach, ktere chceme zobrazit (tedy stupne Celsia) a v celem cisle, takze klasicke %d a nijak neprevadeny prikaz/promennou scePowerGetBatteryTemp(). } else { Jinak (patrici k podmince scePowerIsBatteryExist() - tedy, je-li baterie vlozena). print(17, 120, "Baterie: Vyjmuta"); print(17, 140, "Statistiky baterie nedostupne!"); Misto "Baterie: Vlozena" se na stejnem miste (misto puvodniho textu, ne pres) vypise "Baterie: Vyjmuta" a misto zbytku se napise "Statistiky baterie nedostupne!". Jak primitivni. :D } Uzavreme podminku s vlozenou/vyjmutou baterii. :) print(17, 220, "Stiskni [X] pro ukonceni programu."); print(17, 230, "Stiskni [O] pro vypnuti PSP."); print(17, 240, "Stiskni [^] pro uspani PSP."); Vypiseme nabidku cinnosti. sceCtrlReadBufferPositive(&pad, 1); Zkontrolujeme zmacknuta tlacitka. if (pad.Buttons != 0) { "Pokud bude zmacknute nejake tlacitko (resp. pokud ne-nebude zmacknuto nic), tak..." if (pad.Buttons & PSP_CTRL_CROSS) { sceKernelExitGame(); } if (pad.Buttons & PSP_CTRL_CIRCLE) { scePowerRequestStandby(); } if (pad.Buttons & PSP_CTRL_TRIANGLE) { scePowerRequestSuspend(); } "...zkontrolovat, jestli je zmacknuty krizek (v tom pripade ukoncit hru - sceKernelExitGame();), kolecko (vypnout PSP - scePowerRequestStandby();) nebo trojuhelnik (uspat PSP - scePowerRequestSuspend();). } Uzavreme podminku s "ne-nezmacknutyma tlacitkama" . :D flipScreen(); A vykreslime vse na display. } return 0; } Uzavreme nasi nekonecnou smycku, main() nic nema vracet (return 0;) a uzavreme i ho. To je ze souboru main.c vse! :) Opet tady nebudu davat cely main.c kvuli kopirakum - chci, abyste to delali postupne a vedeli, co delate.. ;) Makefile: TARGET = Battery_Stats OBJS = main.o graphics.o framebuffer.o CFLAGS = -O2 -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) LIBDIR = LIBS = -lpspgu -lpng -lz -lm -lpsppower LDFLAGS = EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = Battery Stats PSPSDK=$(shell psp-config --pspsdk-path) include $(PSPSDK)/lib/build.mak Tak a ted uz jenom prohnat pres Cygwin a do PSP.. ;) Pozor: Opet nezapomente mit prilozene soubory i slozku ve stejne slozce jako soubor main.c a Makefile a do ms0:/PSP/GAME/Battery Stats/ patri slozka images a soubor EBOOT.PBP. ----------------------------------------------------------------------- Pixel Unsticker Jelikoz jsem se vzbudil kolem 22:00 a obvykle zacinam tutorialovy program delat hned, jak prijdu ze skoly, tak ted udelam jenom takovou oddechovku. Pixel Unsticker bude programek na opravu stuck pixelu tim, ze bude opakovat tri zakladni barvy: cervenou, zelenou a modrou. Stahnete si archiv lesson_2_pixel-unsticker.zip, kde v podstate neni nic noveho - jen knihovna graphics.h, kterou jsme pouzivali zatim ve vsech tutorialech. Takze udelejte novou slozku a novy soubor main.c.. #include <pspkernel.h> #include "graphics.h" Vzdycky se to tak delalo, dela a vzdycky bude. Soubor zacina includama. :) PSP_MODULE_INFO("Pixel Unsticker", 0, 1, 0); Pojmenujeme program a uvedeme verzi. #define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16)) Nadefinujeme RGB. #define colRed RGB(255, 0, 0) #define colGreen RGB(0, 255, 0) #define colBlue RGB(0, 0, 255) #define colBlack RGB(0, 0, 0) Predvolime si par barev, ktere budeme potrebovat. int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } Nadefinujeme callbacky. int main() { SetupCallbacks(); initGraphics(); Otevreme main(), vyvolame callbacky a inicializujeme grafickou knihovnu. char string[256] = "Pixel Unsticker by kweensey"; Udelame si promennou string o kapacite 256ti znaku, do ktere vlozime text. while(1) { A jdeme na to.. :) fillScreenRect(colRed, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); Zaplnime cervenou barvou (colRed) ctverec od zacatku displaye po konec (0, 0 - levy horni roh a SCREEN_WIDTH, SCREEN_HEIGHT je sirka a vyska displaye, tedy opacny konec). printTextScreen(134, 133, string, colBlack); Cernou barvou vypiseme doprostred obrazovky nadefinovany text. flipScreen(); Obnovime obrazovku, aby se nase prikazy projevily. sceKernelDelayThread(500*500); A na chvili pozastavime program (kdybychom to neudelali, barvy by se stridaly neuveritelnou - pro nas naprosto nevnimatelnou - rychlosti). fillScreenRect(colGreen, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); printTextScreen(134, 133, string, colBlack); flipScreen(); sceKernelDelayThread(500*500); fillScreenRect(colBlue, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); printTextScreen(134, 133, string, colBlack); flipScreen(); sceKernelDelayThread(500*500); A uplne to same udelame s nasledujicima dvema barvama. } return 0; } Uzavreme smycku i main(). A to je vse.. :) Neni to nic extra, ale vzbudil jsem se pozde a ted, kdyz finishuju, tak je presne pulnoc a to mam jeste delat referat do skoly, takze jsem rad, ze jsem udelal vubec nejaky tutos.. :D Jeste Makefile a hotovo: TARGET = Pixel_Unsticker OBJS = main.o graphics.o framebuffer.o CFLAGS = -O2 -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) LIBDIR = LIBS = -lpspgu -lpng -lz -lm LDFLAGS = EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = Pixel Unsticker PSPSDK=$(shell psp-config --pspsdk-path) include $(PSPSDK)/lib/build.mak Takze se loucim a na zitra vymyslim zase neco vetsiho..
-
Stahni si plugin Music z Iceho podpisu a v Options si ztlum hudbu a pluginem si pust svoji.. ;)
-
Všeobecná poradna mudr.Wokáčka a spol
otázky přidal příspěvek do kweensey WoKo_O v PSP Otázky a odpovědi
glinder: A jestli je tam nemas, tak si najed do Settings -> System Settings -> Format Memory Stick a ony se ti vytvori.. ;) -
Pripoj se na IP routeru a nastav si WLAN (zabezpeceni, heslo, atp.) a potom zapni WLAN Switcher na PSP, dej Settings -> Network Settings -> Infrastrcture -> [ New Connection ] -> Scan -> ( zvol to svoje ) -> ( proklikej se ke konci ) a voila.. :)
-
Nejdulezitejsi otazky a odpovedi pro novacky!!
otázky přidal příspěvek do kweensey WoKo_O v PSP Otázky a odpovědi
zacatecnik: Vsiml jsem si, ze te ve tvem topicu nevnimali a lockli to. Pokud mas na krabici u Slimaka mensi pismenko nez G, tak to pujde flashnout.. ;) -
Pokud zadas jenom soubor.koncovka, tak se ti to vytvori vedle EBOOTU. Pokud bys to chtel ale do presne lokace, musis zadat ms0:/xxx/soubor.koncovka (misto "xxx" samozrejme zadas svoji adresu).. ;)
-
Ne, zapomen na to, co jsem napsal.. #include <stdio.h> fopen ("soubor.koncovka", "w");
-
int plugin_dump_file () { SceUID fd = sceIoOpen ("ms0:/soubor.txt", PSP_O_WRONLY | SP_O_CREAT | PSP_O_TRUNC, 0777); if (fd < 0) return -1; int a = 1; int rc; rc = sceIoWrite (fd, &a, sizeof(int)); if (rc < sizeof(int)) rc = -1; else rc = 0, sceIoClose (fd); return rc; } a pak to vyvolej plugin_dump_file ();
-
Myslis treba cokoliv.txt ?
-
+ MP3 + Filmy + Solidni hry + Homebrew + Internet + To vse v prenoste, pekne designovane krabicce :) - Nic (az na cenu, ktera je pochopitelna a nemuze byt prikladana za vinu PSP) Veci jako "posklrabani" nedavam do zaporu, ptz to je uplna blbost. Kazdej si muze za to, jak si to poskrabe nebo ne.
-
Ok, dejte mi cas (min. mesic) a ja zkusim neco vymyslet a pripadne bych se toho ujmul a zorganizoval to. Mezitim mi ale piste, kdo by mel zajem prijit at vim, jestli to ma cenu. Podle zajmu bych zajistil misto a program..
-
Tak hodne stesti.. ;)
-
To pochybuju.. :) Ta samotna instalace Cygwinu trva minimalne par hodin.. :D
-
http://www.psp-programming.com/forums/index.php/topic,62.html Toto je tutorial, podle ktereho to jde (vlastni zkusenost). Je to v anglictine, ale to si myslim, ze dneska neni az takovy problem, presto mi napis, kdybys tomu nerozumel a ja ti to tady napisu cesky.
-
Nema to koncovku *.rar ? :D
-
Tutorial - Jak na Windows 95 a 3.11 i na PSP slim/phat
téma přidal příspěvek do kweensey Nil3E v PSP Software
Ano, ale nikdo netvrdil nic jineho.. ;) Je to jenom tak pro zajimavost, ale rozhodne to na chvili zabavi.. :D -
4 Leny: Ty soubory jsou LIBMPRF-DEVEL a LIBGMP-DEVEL v Math.. ;) Klikni na ne a nech tam nejvetsi cisla, co budou v nabidce (moznost Install tam neni, vypisou se tam verze) - jak jsem toto udelal, tak uz vse bylo bez problemu (samozrejme vsechno ostatni jsem delal podle navodu)..
-
Moje prvni hra, kterou jsem kdy hral na jakemkoli PlayStationu (v te dobe na PSone) byla Tekken 3. Za nejakou dobu jsem si poridil svoje PSone a jeste, jak nebylo precipovane, tak jsem si koupil originalnu Tekkena 3. Jak jsem vedel, ze si poridim PSP, tak jsem vedel, ze chci Tekkena 5 DR a to taky byla moje prvni hra.. :D Tekken je u me uz srdcovka.. :D
-
Ja jsem s tim mel kdysi taky problemy a pomohlo mi to, ze jsem musel zvolit nainstalovat jeste par komponent - jak prijdu domu, tak ti je tady napisu, ok?
-
Prepsal jsi ten *.bat ?
-
Je ta tvoje vesnice na mape? ;D
-
Ja mam Cygwin uz delsi dobu a zkousel jsem veci hlavne podle navodu z PSP Programming a super. Kolem C se motam uz delsi dobu (Pawno, GML, apod.), chvili jsem se ho ucil podle knizky, ale vsechno nakonec preslo. Napred jsem do toho sel s silenym nadsenim, ale pak jsem toho nejak nechal a zase se k tomu vratim. Programovani me vzdycky bavilo, ikdyz jsem nikdy "doopravdy" neprogramoval.. ;)
-
Tutorial - Jak na Windows 95 a 3.11 i na PSP slim/phat
téma přidal příspěvek do kweensey Nil3E v PSP Software
Windows je spusten v podstate jako hra, rozhodne to nenahrazuje firmware a po vypnuti pujde vse normalne!