KINGx - Das inoffizielle PlayStation Forum & News Portal
VLF Port von PSCrypter - Druckversion

+- KINGx - Das inoffizielle PlayStation Forum & News Portal (http://www.kingx.de/forum)
+-- Forum:    PS Vita / PSP (/forumdisplay.php?fid=1)
+--- Forum: Homebrew (/forumdisplay.php?fid=8)
+---- Forum: Development (/forumdisplay.php?fid=34)
+---- Thema: VLF Port von PSCrypter (/showthread.php?tid=34387)


VLF Port von PSCrypter - Littlefighter19 - 06.02.2011 21:09

Ich wollte zum lernen von C und zum coden, PSCrypter im VLF-Style machen, also habe ich ein wenig herum gespielt.
Wenn ich es kompilieren will, kommt aber:
Spoiler: (anzeigen)
Kann mir jemand helfen, ich habe bereits alle include dateien verglichen genauso wie die Makefiles.
Die Makefile von dem Port

Spoiler: (anzeigen)
In meiner main.c steht folgendes:
Achtung unübersichtlicher Code (anzeigen)



RE: VLF Port von PSCrypter - Cha0z - 06.02.2011 21:14

Code:
main.c:(.text+0x370): undefined reference to `pspDebugScreenPrintf'
main.c:(.text+0x4a8): undefined reference to `pspDebugScreenPrintf'
main.c:(.text+0x4d8): undefined reference to `pspDebugScreenPrintf'
main.o: In function `main_pack_pbp':
main.c:(.text+0x578): undefined reference to `pspDebugScreenPrintf'
main.c:(.text+0x608): undefined reference to `pspDebugScreenPrintf'


Diese FUNKTION gibt es in VLF NICHT! da musst du vlfGuiAddText(1,1, "text"); benutzen Smile

du kannst nihct so einfach portieren da musch du vlf gut kennen

Nun,da keiner von diesem Therad VLF kann (außer PSP_Lord und ich und Ceikor Wink) hier mal DL is NICHT mit source code da sich sonst jeder depp der nix kann des kutz c&p machen kann -.-:

mom ich upps grad


RE: VLF Port von PSCrypter - dark-awesome - 06.02.2011 21:24

Das ganze mit dem Login brauchst du ja nicht oder den dann wäre der Code viel kleiner also so:

Spoiler: (anzeigen)



RE: VLF Port von PSCrypter - PSP_Lord - 06.02.2011 21:42

Richtig, Cha0z, bei vlfGuiAddText musst du aber in zweierler Hinsicht aufpassen. 1.) Der PSP scheint es nicht zu gefallen, wenn du zwei vlfGuiAddText Objekte hast (wenn du also zwei Funktionen diesen Types aufrufst).

Außerdem musst du aufpassen, wenn du eine Remove Metode in eine Fubktion packst, die öfters aufgerufen wird. Wenn das VlfText Objekt gar nicht mehr vorhanden ist und du es dann versucht zu löschen, wird die PSP freezen.
Warum erzähl ich dir das? Ganz einfach, dieser Fehler ist nicht leicht zu finden und stellt eine Präventionsmaßnahme dar.

Beispiel code:

//variables
VlfText welcome_message

//functions

int homebrew_main(int argc, char *argv[]) {
//35: position of our text on the x-axis
//20: positon of our text on the y-axis
//"hey, welcome to my program": the text to display (can also be a pointer to a char)
welcome_message = vlfGuiAddText(35, 20, "Hey, welcome to my program =)");
....
}

/* make sure to call this function ONLY with an existing welcome_message object...
...otherwise freeze */
void finish() {
vlfGuiRemoveText(welcome_message);
...
}

-end of code

So, dieser code ist nur zu Demo Zwecken gedacht, der Aufruf der Methode "vlfGuiAddText" liefert ein Objekt vom Typ "VlfText" zurück, wir speichern diesen Rückgabewert also in eine Variable von diesem Typ (welcome_message). Mit diesem Objekt können wir nun eine ganze Menge weiterer Funktionen aufrufen, z.B. vlfGuiSetTextScrollBar(welcome_message, 180). Diese Funktion erstellt eine Scrollbar um unser VlfText Objekt, also um unseren Text.

In der vlf Sample von Dark-Alex sind viele Funktionen aufgeführt, für eine echte Dokumentation empfehle ich dir aber die vlf header Datei (vlf.h) durchzulesen.


RE: VLF Port von PSCrypter - PSP_Lord - 06.02.2011 22:15

Der code ist zwar schon etwas kleiner, dennoch könnetst du noch weitere Sachen verändern.

Ein paar dieser include files sind überflüssig, hier die wichtigsten, die du haben solltest:

Code:
#include <pspkernel.h>
#include <stdio.h>
#include <vlf.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <pspdebug.h>


Eine zweite Sache, dei den code übersichtlicher machen würde ist, du packst den home-button callback in eine main.h und auch die includes:

Code:
#ifndef _MAIN_H
#define    _MAIN_H

//includes
#include <pspkernel.h>
#include <stdio.h>
#include <vlf.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <pspdebug.h>

/* 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;
}

#endif
/* vim: set cin et sw=4 ts=4: */


deine main.c wäre dann so:

Code:
#include "main.h"

//module attributes
PSP_MODULE_INFO("PSCRYPTERv3.0", 0, 1, 0);
PSP_MAIN_THREAD_ATTR(0);
int err = 0;


#define MAX_BUFFER_SIZE 1024*1024*5+1024*512
#define MAX_ORIGIN_FILE_SIZE 1024*1024*4

#define printf    pspDebugScreenPrintf


#include "main_crypter.h"
#include "unpack-pbp.h"
#include "pack-pbp.h"

#include "fix-realocations.h"

char *filename_list[10] = {
"name","EBOOT_signed.PBP", "param.sfo", "icon0.png", "icon1.pmf", "pic0.png", "pic1.png", "snd0.at3", "data.psp", "data.psar"
};


char *license_text =
        "PSCRYPTER v2.0 by Carlosgs.\n\n"
        "Encrypt EBOOT.PBP files directly\n"
        "from the PSP\n\n"
        "Uses the code made by 'bbtgp'\n"
        "and parts of the PSPSDK\n\n"
        "2.0 added realocation fixing by JJS\n"
        "THANK YOU!";
        

VlfPicture logo;        
        
VlfText license, do_you_agree;

int OnExit(int enter)
{
    if (enter)
        sceKernelExitGame();
    
    return VLF_EV_RET_NOTHING;
}


void OnLicenseAgreementFadeOutComplete(void *param)
{
    // Destruct old items    
    vlfGuiRemoveText(license);
    vlfGuiRemoveText(do_you_agree);
    vlfGuiCancelBottomDialog();
    
    vlfGuiCustomBottomDialog(NULL, "Exit", 1, 0, VLF_DEFAULT, OnExit);    
    
    sceIoMkdir("sign", 0777);
    
    sceIoChdir("sign");
    

    sceIoRemove("EBOOT_signed.PBP");
    sceIoRemove("param.sfo");
    sceIoRemove("icon0.png");
    sceIoRemove("icon1.pmf");
    sceIoRemove("pic0.png");
    sceIoRemove("pic1.png");
    sceIoRemove("snd0.at3");
    sceIoRemove("data.psp");
    sceIoRemove("data_unsigned.psp");
    sceIoRemove("data.psar");
    
    crypter = vlfGuiAddText(64, 65, "Unpacking EBOOT file...\n");

    err = main_unpack_pbp();
    if(err != 0)
    {
    crypter = vlfGuiAddText(64, 120, "Error while unpacking: %d\n");    

    }
    
    vlfGuiSetRectangleFade(0, VLF_TITLEBAR_HEIGHT, 480, 272-VLF_TITLEBAR_HEIGHT, VLF_FADE_MODE_IN, VLF_FADE_SPEED_SUPER_FAST, 0, NULL, NULL, 0);    
}

int OnLicenseAgreement(int enter)
{
    if (enter)
    {
        vlfGuiSetRectangleFade(0, VLF_TITLEBAR_HEIGHT, 480, 272-VLF_TITLEBAR_HEIGHT, VLF_FADE_MODE_OUT, VLF_FADE_SPEED_SUPER_FAST, 0, OnLicenseAgreementFadeOutComplete, NULL, 0);
        return VLF_EV_RET_REMOVE_HANDLERS;
    }
    
    sceKernelExitGame();
    
    return VLF_EV_RET_NOTHING;
}
        
void StartSample()
{
    license = vlfGuiAddText(100, 40, license_text);            
    vlfGuiSetTextScrollBar(license,  90);
    
    do_you_agree = vlfGuiAddText(120, 210, "Are you ready?");
    vlfGuiBottomDialog(VLF_DI_CANCEL, VLF_DI_ENTER, 1, 0, VLF_DEFAULT, OnLicenseAgreement);  
    vlfGuiSetRectangleFade(0, VLF_TITLEBAR_HEIGHT, 480, 272-VLF_TITLEBAR_HEIGHT, VLF_FADE_MODE_IN, VLF_FADE_SPEED_SUPER_FAST, 0, NULL, NULL, 0);
}

int menu_sel(int sel)
{
    switch (sel)
    {
        case 0:            
            StartSample();    
            vlfGuiRemovePicture(logo);        
        return VLF_EV_RET_REMOVE_HANDLERS | VLF_EV_RET_REMOVE_OBJECTS;
        
        case 1:
            sceKernelExitGame();
                    
        case 2:
            sceKernelExitGame();
        break;
    }
    
    return VLF_EV_RET_NOTHING;
}

int app_main(int argc, char *argv[])
{

    char *items[] = { "Start Crypter", "Exit", "Exit2" };
    
    vlfGuiSystemSetup(1, 1, 1);        
    vlfGuiLateralMenu(3, items, 0, menu_sel, 100);
    
    logo = vlfGuiAddPictureFile("logo.png", 95, 80); // png's are now supported
    
    
    while (1)
    {
        vlfGuiDrawFrame();
    }
    
    return 0;
}




RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 14:49

?? Wieso kommt jetzt eigentlich undefined reference, wie kann man das beheben?


RE: VLF Port von PSCrypter - Ceikor - 08.02.2011 15:17

Mal ehrlich leute, warum lernt ihr nicht zuerst richtig C/C++? Faulheit?!

Und nun zum Topic, wozu das ganze. Du wirst es eh nicht auf eine OFW zum laufen bingen weil du dort noch keine Module laden kannst.

Hierrüber könnt ich mich stunden lang kaput lachen:

char *items[] = { "Start Crypter", "Exit", "Exit2" };

Zu guter letzt drücke dich bitter etwas klarer aus.
Wenn das eine frage im bezug auf deinem ersten Post ist, lese. Cha0z hat dir die antwort gegeben und wenn du damit nichts anfangen kannst bist du falsch hier.


RE: VLF Port von PSCrypter - Cha0z - 08.02.2011 16:14

Ceikor :
Mal ehrlich leute, warum lernt ihr nicht zuerst richtig C/C++? Faulheit?!

Und nun zum Topic, wozu das ganze. Du wirst es eh nicht auf eine OFW zum laufen bingen weil du dort noch keine Module laden kannst.

Hierrüber könnt ich mich stunden lang kaput lachen:

char *items[] = { "Start Crypter", "Exit", "Exit2" };

Zu guter letzt drücke dich bitter etwas klarer aus.
Wenn das eine frage im bezug auf deinem ersten Post ist, lese. Cha0z hat dir die antwort gegeben und wenn du damit nichts anfangen kannst bist du falsch hier.


Gut gesagt! Exit 2 Big Grin des eine spiel ^^

@LF: LoL, einfach nur LoL...

Ey lest mal mein ersten Post da ich upps grad muss noch was anderes machen


RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 16:19

@Ceikor (anzeigen)
Ausserdem, tut mir Leid, anscheinend hatte ich nicht genügend analysiert, bevor ich geschrieben hab. Ich weiß jetzt, dass ich in den Includes, alle printf funktionen passend mit ersetzen muss.
Kann geclosed werden.


RE: VLF Port von PSCrypter - Fixie - 08.02.2011 16:41

Ceikor :
Mal ehrlich leute, warum lernt ihr nicht zuerst richtig C/C++? Faulheit?!

Und nun zum Topic, wozu das ganze. Du wirst es eh nicht auf eine OFW zum laufen bingen weil du dort noch keine Module laden kannst.

Hierrüber könnt ich mich stunden lang kaput lachen:

char *items[] = { "Start Crypter", "Exit", "Exit2" };

Zu guter letzt drücke dich bitter etwas klarer aus.
Wenn das eine frage im bezug auf deinem ersten Post ist, lese. Cha0z hat dir die antwort gegeben und wenn du damit nichts anfangen kannst bist du falsch hier.

Fühlst dich jetzt obercool weil du ihm in C-Sprache fertig gemacht hast?
Statt einfach die Finger von der Tastatur zu lassen.


RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 16:44

Gut gesagt godzilla, leider hatte er zwar Recht gehabt, dass Co$mo Recht hatte (wie peinlich), ich hatte es nur bereits probiert gehabt. Anscheinend hatte ich make clean vergessen.


RE: VLF Port von PSCrypter - Cha0z - 08.02.2011 17:01

Noch NICHT closen!

Erst uppe ich dann... Tongue

BIN FERTIG! muss nur noch ein sample hinzufügen Tongue


RE: VLF Port von PSCrypter - Ceikor - 08.02.2011 17:07

@killagodzilla: Dir gehst gut ja? Geh zu Mutti heulen^^ Ich habe hier niemanden fertig gemacht, ich habe nur klip und klar gesagt was los ist, wenn ihr damit nicht zurecht kommt heult los, ich werd euch nicht daran hindern^^ und noch was das war OT Wink und auf mir immer rumhacken wenn ich OT werde *lol* Kinder Kinder^^

EDIT: Und ja killagodzilla ich find mich jetzt ober cool, wenn du das so siehst Tongue ist immer schön wenn andere wissen wie andere sich gerade fühlen^^ frag mich immer wie ihr das macht. Ihr habt ein Talent Wink

@Littlefighter19: Ja ok dennoch fand ich diesen eintrag lustig^^ hab halt mein eigenen Humor^^
Nächstes mal erst aktualisieren und dann Posten Wink und warum es sowenig Coder gibt, daran bin ich nicht schuld sondern eher Noobs (die es leider hier zu viele gibt) die nur Copy/Past veranstalten und nur source codes haben wollen, das solltet ihr euch mal klar machen.

@Cha0z: Was willst du uppen??


RE: VLF Port von PSCrypter - Cha0z - 08.02.2011 17:11

Ceikor :
@killagodzilla: Dir gehst gut ja? Geh zu Mutti heulen^^ Ich habe hier niemanden fertig gemacht, ich habe nur klip und klar gesagt was los ist, wenn ihr damit nicht zurecht kommt heult los, ich werd euch nicht daran hindern^^ und noch was das war OT Wink und auf mir immer rumhacken wenn ich OT werde *lol* Kinder Kinder^^

@Littlefighter19: Ja ok dennoch fand ich diesen eintrag lustig^^ hab halt mein eigenen Humor^^
Nächstes mal erst aktualisieren und dann Posten Wink

@Cha0z: Was willst du uppen??


PSCrypter v2.0 VLF Port by Cha0z


RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 17:14

Ich bin schon fertig
Ich kann auch den source uppen.


RE: VLF Port von PSCrypter - Cha0z - 08.02.2011 17:17

Littlefighter19 :
Ich bin schon fertig
Ich kann auch den source uppen.


Ja, gerne... Ich hab soooooo viele Fehler bei dir gefunden, dass die PSP beim crypten zerfetzt...


RE: VLF Port von PSCrypter - sankt_g. - 08.02.2011 17:21

@Ceikor: Was bzw. wer gibt dir denn das Recht "klip und klar zu sagen was los ist"?


RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 17:21

-.- Du hast den source gar nicht. Wie willst du des wissen. Naja, dann werd ich ihn nie uploaden.
Ausserdem ist der source nun sauberer.


RE: VLF Port von PSCrypter - Ceikor - 08.02.2011 17:22

@sankt_g.: Ganz einfach: Die Meinungsfreiheit. Solltet ihr euch mal durch den Kopf gehen lassen Wink

Aber wie dem auch sei ich habe bereits mit Alex gesprochen und es werden verschärfte Regel eingeführt die den Dev-Bereich betreffen, das habt ihr euch selbst zu zuschreiben^^


RE: VLF Port von PSCrypter - sankt_g. - 08.02.2011 17:23

Die gibt es, das ist wahr. Du hast aber nicht deine Meinung vertreten, sondern versucht zu bestimmen.

Das hat dann nichtsmehr mit Demokratie zu tun, sondern fällt eher in den Bereich Diktatur.


RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 17:25

Wie verschärfte Regeln... das man nicht mehr um Hilfe bitten darf? Wie gesagt, ich bin fertig, kann geclosed werden.
@Co$mo deinen Port kannst du auch in nem anderen Thread hochladen.
@Ceikor Du hakst doch tatsächlich auf den Anfänger herum.


RE: VLF Port von PSCrypter - Ceikor - 08.02.2011 17:27

Ok wenn du mit mir diskutieren möchtest kannst du das gerne per PN tuhen, habe ich kein problem mit^^ Aber ihr solltet euch im klaren sein das das der Dev-Bereich ist und Grundkenntnisse in der Programierung vorraussetzung ist und darum wer sich nicht hinsetzt und lernt sondern gleich hier reinschreibt "ich habe mal da was Kopiert und da" hat hier nichts zu suchen, das ist fakt.

@Littlefighter19: Die Regeln werdet ihr schon noch bekommen aber min. ist die Vorraussetzung in meinen Augen "GRUNDKENNTNISSE" und die meisten Post in letzter seit waren alles C/P post mit fragen die sowas, entschuldigt den ausdruck, blöd waren, da man die sich auch selbst beantworten hätte können wenn man C/C++ gelernt hätte zB mit dem eBook "C von A bis Z" Wink


RE: VLF Port von PSCrypter - Cha0z - 08.02.2011 17:28

Littlefighter19 :
Wie verschärfte Regeln... das man nicht mehr um Hilfe bitten darf? Wie gesagt, ich bin fertig, kann geclosed werden.
@Co$mo deinen Port kannst du auch in nem anderen Thread hochladen.
@Ceikor Du hakst doch tatsächlich auf den Anfänger herum.


Von mir aus.... Ich hab noch nen Bug gefunden... D.H. meine Version heißt: 2.5 Tongue

Werde es noch diese Woche veröffentlichen, da ich morgen mit der Klasse losfahre.. Sad Jezt PSP bauen...

@Ceikor: Bin glattgenau deiner meinung!


RE: VLF Port von PSCrypter - Deutschland 1 - 08.02.2011 17:29

Cha0z :

Littlefighter19 :
Ich bin schon fertig
Ich kann auch den source uppen.


Ja, gerne... Ich hab soooooo viele Fehler bei dir gefunden, dass die PSP beim crypten zerfetzt...


Du bist ja auch so ein Oberpro,ich warte immernoch auf den OFW-Loader -.-

Ceikor :
@sankt_g.: Ganz einfach: Die Meinungsfreiheit. Solltet ihr euch mal durch den Kopf gehen lassen Wink

Aber wie dem auch sei ich habe bereits mit Alex gesprochen und es werden verschärfte Regel eingeführt die den Dev-Bereich betreffen, das habt ihr euch selbst zu zuschreiben^^

Regeln wie z.B. man darf kein Anfänger sein oder Fragen haben? Achja und Lua,das darf nicht mehr erwähnt werden,weil man ja sonst nur ein kleiner Noob ist?

Das ist keine Meinungsfreiheit,das nenne ich Noobrassismus!


RE: VLF Port von PSCrypter - Littlefighter19 - 08.02.2011 17:33

@Ceikor Ne, das wars; nichts mehr zu erwähnen.


RE: VLF Port von PSCrypter - Ceikor - 08.02.2011 17:34

@Deutschland 1: sehr geist reicht Wink aber war von dir zu erwarten^^ lese bitte mein Post weiter oben den habe ich editiert aber ihr spamt ja gleich alle los^^


@All: Littlefighter19 hat gesagt es hat sich erledigt also Spamt jetzt hier nicht weiter rum und was den Dev-Bereich angeht werdet ihr von Alex bald die News hören also wartet einfach ab.


RE: VLF Port von PSCrypter - piti_rocks - 08.02.2011 17:37

Cha0z :
@All: Meine Signatur gelesen wenn nein dann HALT DIE FRESSE. Ich mach da nur zur Info nichts mehr gescheites...

Der PSCRYPTER IS wichtig Tongue

Noobrasismus ?? -> Noch nie gehört Big Grin


verwarnt... beim nächsten mal gibts permabann... so kanns nicht weitergehen...


RE: VLF Port von PSCrypter - Cha0z - 08.02.2011 17:39

piti_rocks :

Cha0z :
@All: Meine Signatur gelesen wenn nein dann HALT DIE FRESSE. Ich mach da nur zur Info nichts mehr gescheites...

Der PSCRYPTER IS wichtig Tongue

Noobrasismus ?? -> Noch nie gehört Big Grin


verwarnt... beim nächsten mal gibts permabann... so kanns nicht weitergehen...


Nah, ist jezt kein gescheites schlimmes wort, aber lass mas... -.- Sry.

Alda wer löscht dauernd NON STOP MEINE POSTE???