Antwort schreiben  Thema schreiben 
Verfasser Nachricht
PSP_Lord
Durchstarter
**


Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010

Status: Abwesend
Danke erhalten: 133
Beitrag: #1
xPSP  [OpenSource] cheat_module für psp games

/* ACHTUNG: Code Support nur auf http://ps4dev.net.tc/ !!! */

Hier mal ein cheat_module für PSP games, welches ein Menü aufweist, um dem Benutzer die Möglichkeit zu geben, einzelne Cheats auszuwählen.

Dieses cheat_module wurde auf verschiedenen Spielen getestet und ist für das Spiel "Killzone Liberation" programmiert. Das bedeutet, es läuft, in dieser Form, auf keinem anderen Spiel. Dieses module, die Form, in der ich es release, dient nur nebensächlich zum cheaten, es soll euch zeigen, wie ihr eigene cheat modules für beliebige PSP Spiele erstellt. Es gibt also den kompletten Source Code von mir, die prx für Killzone Liberation und ein Bild, wie das Menü im Spiel aussieht.




[Download] Source code und prx

Und hier der Code für alle, die das obige file nicht downloaden können:

main.h:

Spoiler: (anzeigen)

main.c:
Spoiler: (anzeigen)

cheater.h:
Spoiler: (anzeigen)

cheater.c:
Spoiler: (anzeigen)

makefile:
Spoiler: (anzeigen)


Das Plugin natürlich nach ms0:/seplugins packen und in game.txt den Pfad reinschreiben. Viel Spass!


http://ps4dev.net.tc/ - the new german psp development site. Check it out!

Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2011 17:29 von PSP_Lord.

29.04.2011 17:13
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
-blue7 (May-22-2011), Fixie (May-16-2011), psp-elfe (Apr-30-2011), Mister_Mescudi (Apr-30-2011), D3lta (Apr-29-2011), Camaro8000 (Apr-29-2011), Relok (Apr-29-2011), BlueFreak (Apr-29-2011), dx3m (Apr-29-2011), HacKmaN (Apr-29-2011), DarXPloit_$a1 (Apr-29-2011)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #2
RE: [OpenSource] cheat_module für psp games

Sehr guter Code! Schön geschrieben und gleichzeitig effizient Smile

Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2011 17:29 von HacKmaN.

29.04.2011 17:27
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #3
xPSP  RE: [OpenSource] cheat_module für psp games

Relok :
Das ist doch c++ oder?
Ich versteh einen Teil davon aber wofür stehen diese zahlen/buchstaben Codes z.b.                 (0x27BDFF90, 0x089D6420) ?


Es ist C... und du solltest eigentlich wissen, wie das Hexdezimalsystem funktioniert, wenn du C++ kannst^^

_sw(Wert, Adresse)

(store word) schreibt einen gewünschten Wert an eine Adresse im Arbeitsspeicher.

Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2011 18:44 von HacKmaN.

29.04.2011 18:35
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Mister_Mescudi
Durchstarter
**


Beiträge: 80
Gruppe: User
Registriert seit: Mar 2011

Status: Offline
Danke erhalten: 28
Beitrag: #4
RE: [OpenSource] cheat_module für psp games

vielen dank.

GENAU SO etwas hab ich jetzt gerade gesucht Big Grin

29.04.2011 18:53
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #5
xPSP  RE: [OpenSource] cheat_module für psp games

Relok :
Hexadezimal ist auch in der Schule meine Schwäche ^^


Ist doch eigentlich einfach... das gleiche wie Dual und Dezimalsystem, nur eben mit 16 als basis, und Buchstaben, um 10-15 darzustellen...

29.04.2011 21:13
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
D3lta
Experte
****


Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010

Status: Abwesend
Danke erhalten: 205
Beitrag: #6
RE: [OpenSource] cheat_module für psp games

Danke, ich habe schon länger einen Source eines plugins gesucht ^^

Wenn man zB _sw schreibt, ist das doch ein Assembler-Befehl, oder?
Also könnte man auch _ori oder _multi schreiben, oder?

mfg D3lta


"Linux is like a tent, no windows, no gates and an apache inside."
29.04.2011 22:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #7
xPSP  RE: [OpenSource] cheat_module für psp games

D3lta :
Danke, ich habe schon länger einen Source eines plugins gesucht ^^

Wenn man zB _sw schreibt, ist das doch ein Assembler-Befehl, oder?
Also könnte man auch _ori oder _multi schreiben, oder?

mfg D3lta


_sb/_sh/_sw/_sd/_lb/_lh/_lw/_ld/ sind inline Funktionen, die in psptypes.h deklariert sind.

Code:
/* MIPS-like accessor macros. */
static __inline__ u8  _lb(u32 addr) { return *(vu8 *)addr; }
static __inline__ u16 _lh(u32 addr) { return *(vu16 *)addr; }
static __inline__ u32 _lw(u32 addr) { return *(vu32 *)addr; }
static __inline__ u64 _ld(u32 addr) { return *(vu64 *)addr; }

static __inline__ void _sb(u8 val, u32 addr) { *(vu8 *)addr = val; }
static __inline__ void _sh(u16 val, u32 addr) { *(vu16 *)addr = val; }
static __inline__ void _sw(u32 val, u32 addr) { *(vu32 *)addr = val; }
static __inline__ void _sd(u64 val, u32 addr) { *(vu64 *)addr = val; }


ori/multi/etc. so zu schreiben würde nur die Lesbarkeit senken, schreib diese lieber in C Form.

Alternativ kannst du aber auch inline Assembler benutzen...

Code:
asm volatile("nop");

30.04.2011 09:17
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
D3lta (Apr-30-2011)
D3lta
Experte
****


Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010

Status: Abwesend
Danke erhalten: 205
Beitrag: #8
xPSP  RE: [OpenSource] cheat_module für psp games

HacKmaN :

D3lta :
Danke, ich habe schon länger einen Source eines plugins gesucht ^^

Wenn man zB _sw schreibt, ist das doch ein Assembler-Befehl, oder?
Also könnte man auch _ori oder _multi schreiben, oder?

mfg D3lta


_sb/_sh/_sw/_sd/_lb/_lh/_lw/_ld/ sind inline Funktionen, die in psptypes.h deklariert sind.

Code:
/* MIPS-like accessor macros. */
static __inline__ u8  _lb(u32 addr) { return *(vu8 *)addr; }
static __inline__ u16 _lh(u32 addr) { return *(vu16 *)addr; }
static __inline__ u32 _lw(u32 addr) { return *(vu32 *)addr; }
static __inline__ u64 _ld(u32 addr) { return *(vu64 *)addr; }

static __inline__ void _sb(u8 val, u32 addr) { *(vu8 *)addr = val; }
static __inline__ void _sh(u16 val, u32 addr) { *(vu16 *)addr = val; }
static __inline__ void _sw(u32 val, u32 addr) { *(vu32 *)addr = val; }
static __inline__ void _sd(u64 val, u32 addr) { *(vu64 *)addr = val; }


ori/multi/etc. so zu schreiben würde nur die Lesbarkeit senken, schreib diese lieber in C Form.

Alternativ kannst du aber auch inline Assembler benutzen...

Code:
asm volatile("nop");


Was heißt das "volatile" bei

Code:
asm volatile("nop");

?
Und was bedeutet eig das " static?

mfg D3lta


"Linux is like a tent, no windows, no gates and an apache inside."
30.04.2011 16:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #9
xPSP  RE: [OpenSource] cheat_module für psp games

D3lta :

HacKmaN :

D3lta :
Danke, ich habe schon länger einen Source eines plugins gesucht ^^

Wenn man zB _sw schreibt, ist das doch ein Assembler-Befehl, oder?
Also könnte man auch _ori oder _multi schreiben, oder?

mfg D3lta


_sb/_sh/_sw/_sd/_lb/_lh/_lw/_ld/ sind inline Funktionen, die in psptypes.h deklariert sind.

Code:
/* MIPS-like accessor macros. */
static __inline__ u8  _lb(u32 addr) { return *(vu8 *)addr; }
static __inline__ u16 _lh(u32 addr) { return *(vu16 *)addr; }
static __inline__ u32 _lw(u32 addr) { return *(vu32 *)addr; }
static __inline__ u64 _ld(u32 addr) { return *(vu64 *)addr; }

static __inline__ void _sb(u8 val, u32 addr) { *(vu8 *)addr = val; }
static __inline__ void _sh(u16 val, u32 addr) { *(vu16 *)addr = val; }
static __inline__ void _sw(u32 val, u32 addr) { *(vu32 *)addr = val; }
static __inline__ void _sd(u64 val, u32 addr) { *(vu64 *)addr = val; }


ori/multi/etc. so zu schreiben würde nur die Lesbarkeit senken, schreib diese lieber in C Form.

Alternativ kannst du aber auch inline Assembler benutzen...

Code:
asm volatile("nop");


Was heißt das "volatile" bei

Code:
asm volatile("nop");

?
Und was bedeutet eig das " static?

mfg D3lta


Volatile bedeutet, dass der Compiler hier die Extraverbesserungen nicht anschaltet.
Bei

Code:
int i = 0;
while(i == 0);


Würde er beispielsweise eine Endlosschleife machen.

Bei

Code:
volatile int i = 0;
while(i == 0);


Würde er es dagegen stehen lassen, wie es ist.

Was static bei Funktionen bedeutet, weiß ich nicht.

30.04.2011 17:03
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
D3lta (Apr-30-2011)
PSP_Lord
Durchstarter
**


Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010

Status: Abwesend
Danke erhalten: 133
Beitrag: #10
RE: [OpenSource] cheat_module für psp games

Wenn du jetzt zwei source files hast, z.B. main.c und cheater.c und du hast folgendes in main c und cheater.c stehen:

main.c:

int foo() {
return 0;
}

cheater.c:

int foo() {
return 0;
}

dann bekomst du beim comilierenden folgende Fehler:

"multiple definition of `foo' ".

Um so einen Fehler zu vermeiden, machst du eine Funktion static, so dass du sie immer wieder "verwenden" kannst.

main.c:

static int foo() {
return 0;
}

cheater.c:

int foo() {
return 0;
}

funktioniert wunderbar.


http://ps4dev.net.tc/ - the new german psp development site. Check it out!
30.04.2011 21:46
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
D3lta (Apr-30-2011)
D3lta
Experte
****


Beiträge: 663
Gruppe: User
Registriert seit: Dec 2010

Status: Abwesend
Danke erhalten: 205
Beitrag: #11
RE: [OpenSource] cheat_module für psp games

Was bewirkt "static" dann?
Heißt das dann so etwas wie "nur in der Datei" oder so?

mfg D3lta


"Linux is like a tent, no windows, no gates and an apache inside."
30.04.2011 22:11
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Littlefighter19
Profi
****


Beiträge: 441
Gruppe: User
Registriert seit: May 2010

Status: Offline
Danke erhalten: 89
Beitrag: #12
RE: [OpenSource] cheat_module für psp games

OMG! Ich hab noch nie einen so kommentierten Quellcode gesehen Big Grin


Verlorene PSP 2000 R.I.P Hoffentlich hat sie einen würdigen Besitzer gefunden.
Spoiler: (anzeigen)
PCs are machines which never move but are always crashing

16.05.2011 20:37
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Chaosduckman
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: May 2010

Status: Offline
Danke erhalten: 43
Beitrag: #13
xPSP  RE: [OpenSource] cheat_module für psp games

Static lässt bei C eine Variable oder Funktion nur in dem Modul sichtbar sein, indem es definiert wurde.
Wenn das Schlüsselwort vor einer Variable in einer Funktion steht, so wird diese Variable für die gesammte Laufzeit im Speicher behalten und nicht wie normale lokale Variablen beim verlassen der Funktion gelöscht.

Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2011 11:04 von Chaosduckman.

14.06.2011 11:03
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang