Hallo Forum,
ich schreib hier mal ein kleines tut wie man eine Subroutine schreibt.
Ich weiss zwar das es kaum einen interessieren wird aber, ich habe Langeweile und dachte ich mach mal was
Also wer kein Interesse hat, kann den thread jetzt einafch wieder verlassen.
Was sind die Vorraussetzungen?
-Interesse am coden
-Interesse MIPS zu lernen
-nicht verzweifeln wenn man was net versteht
also lätse go!
Mega Basics:
MIPS: Ist die computer Sprache (assembly language) die die PSP nutzt (MIPS- Prozessor)
Ist eine Zusammensetzung von mehreren MIPS Befehlen zur Vereinafachung
hier ist das template:
lui t0 $(ersten 4 Zahlen der Adresse)
lui t1 $(ersten 4 zahlen des Values)
addi t1 t1 $(hinteren 4 Zahlen des Values)
sw t1 $hinteren 4 Zahlen der adresse)(to)
jr ra
sieht vllt noch ein wenig verwirrend aus, hier sind die weiteren Erläuterungen:
In der PSP werden die adressen als fake adressen angegeben, das bedeutet das wir die adressen unserer codes erst in true adressing umwandeln müssen. Das macht man indem man den Calculator (windows) auf scientific (XP) oder programmer (win 7) stellt und bei beiden auf HEX stellt und nun eure Adresse plus 8800000 rechnet (true adressing)
also:
eure Adresse (von dem code den ihr habt) plus 8800000 rechnen damit ihr die true adress bekommt (spaeter werden die 8800000 wieder subtrahiert)
leider gibt es noch eine negative rule. Sobald in der adresse die hinteren 4 Zahlen groesser als 7fff sind fangen die negativen zahlen an, das bedeutet ihr müsst die vorderen 4 Zahlen der Adresse plus 1 addieren. bsp:
0x1234ffff (ffff ist groesser als 7fff also werden zu den ersten 4 Zahlen 1 addiert)
neue Adresse:
0x1235ffff
Das ist die negative rule
#beispiel
0x12345678 0x87654321
lui to $1234 die ersten 4 zahlen der adresse
lui t1 $8765 die ersten 4 zahlen des values
addi t1 t1 $4321 die letzten 4 zahlen des values werden
an die ersten 4 platziert
sw t1 $5678 das fügt das komplette value (t1)
an die komplette adresse (t0) an
jr ra befehl für ende des codes
das wars, dann habt ihr eine Halbfertige subroutine!
damit eure subroutine funktioniert braucht ihr einen hook!
So fast fertig, fehlt nur noch der hook. Also hooks werden immer j oder jals verwendet.... ihr koennt entweder euch den hook von bereits existierenden subroutines nehmen oder ihr sucht im decoder nach j oder jal. wenn ihr welche gefunden habt nopt diese (also setzt das value 00000000) wenn die PSp freezt habt ihr einen funktionierenden hook (manche werden euch nicht freezen weil diese vom game nicht genutzt werden)
klingt ein wenig kompliziert, ist es aber net.
so jetzt müsst ihr den hook nur noch anpassen, heisst, so einstellen das er zu eurer adresse springt:
Gebt in die erste Zeile (wo lui t0 steht) j $08802000 ein und kopiert den Value (da wo DATA steht).
Dieses Value setzt ihr nun hinter euren hook!
(sorry bei dem Bild habe ich vergessen die letzten zeilen anzupassen also 88 weg und 0x davor)
Fertig ist eure 1. Subroutine und damit euer Einstieg ins Fortgeschrittene Coding (also MIPS)
Das wars, bei fragen bitte melden. Also eig geb ich mir bei TUTs immer mühe
nop Areas gibt es in jedem game. Es sind einfach Berreiche die das game nicht nutzt und man daher ohne sorgen seine codes reinschreiben kann (man hat auch genügend Platz). Da der Bereich aber net genutzt wird muss man erst von einer anderen Adresse zu diesem Bereich jumpen (mithilfe einer funktionierenden J oder Jal command (aktiven))
Im Berreich 08802000 findet ihr eig in jedenm game eine riesige nop Area, deswegen wir dieser Bereich auch am häufigsten genutzt. Es gibt aber auch im 1- 3- und 4000er Berreich nop Areas, also koennt ihr euch aussuchen welche ihr nehmt.
Achtung!!
Die 1000er Berreiche sind nicht die geignetesten, weil dort (in manchen games) andere Adressen hinspringen und damit eure codes nicht funktionieren...
- Ihr habt das template falsch eingegeben
- Die werte falsch ind das template eingegeben (s. true adressing und negative rule)
- Ihr habt vergessen die adressen am ende in fake adressen umzuändern (-8800000, wenn ihr das
nicht macht wird eure psp 100 pro freezen)
so ich glaube ich hab alles gesagt was mir dazu noch einfällt. Ich weiss das dieses Thema nicht viele anspricht, aber ich freue mich natürlich über jedes LOB und über KRITIK.
mfg emkaywe
mein mentor: PSP Lord
ohne ihn hätte ich das selber nie verstanden
Also,
es freut mic, dass endlich jemand dieses Thema auf DEUTSCH anspricht.
Nun, ich möchte unbedingt coden,
weil ich eine Gewisse Neugierde verspüre, und ich sehr Spass an der PSP und am PC habe (Ich will mal Programmierer werden).
Nun, um ehrlich zu sein, ich verstehe nur Bahnhof.
Ich stelle mich blöd an, aber ich verstehe weder A, noch Z.
Es ist eine Sehr schwierige Aufgabe, mir das zu erklören, da ich neu in das Geschäft "Coding" einsteige.
Wenn du also so LIEB, Lieb, Lieb sein könntest, könntest du mir bitte dass ganz, ganz genau erklären?
also meine devise lautet eher learning by doing viel lernt man auch durch eigenes ausprobioeren. es kommt halt darauf an was du machen moechtest: der USER PSP_Lord zB ist ein echt MIPS Profi! er kennt so gut wie jeden command in und auswendig! da kann kaum einer/keiner mithalten. Ich kann nur die Begriffe die ich brauche für jokers, mark and recalls und subroutines brauche (vllt sagen dir diese begriffe noch nichts). Was ich dir anbieten kann ist das ich eventuell ein deutsches video tut machen zu einer subroutine und grundlagen zu MIPS Kentnissen. was ich dir sonst noch anbieten koenmnte wäre über skype oder icq dir alles persoehnlich zu erklären... was du brauchst
Die .bss section ist dynamisch, dort befindet sich das, was wir als "Dynamic Memory Allocation" kennen. Die nop-area von 0x08800600 - 0x08803fff ist das sogenannte scratchpad (eigentlich 0x08800000 - 0x08803fff) und ist 16 KB groß.
Das ist wirklich sehr Nett von dir, dass du mir helfen willst.
Ich möchte sehr gerne von deinem Angebot Profitieren,
doch ich möchte noch etwas agen, damit du es weisst.
Ich bin 14 Jahre ALT.
Ich hoffe, dass das nicht zu alt ist.
Weisst du, ich möchte dass Pfroffessionelle Coden erlernen,
Wie zb:
Unendl. Munition,
Unendl. Leben,
Durch wände gehen...
Das tönt zwar Kindisch, aber mir macht es sehr grossen Spass,
und ich bin so eine Ziemlicher Freak der ziemlich wenig Ahnung Hat
Also nochmals vielen Dank,
wir können uns ja mit PM absprechen von wegwn Skype usw.
Aha, Skype habe ich.
also ich werde dir viele basics beibringen koennen und dann weiter in MIPS helfen, für das spätere richtig professionelle müsste ich mich dann an meinem mentor wenden ob er dir dann weiter helfen kann alter is kein problem bin selber net viel älter,
ok ich werde dich adden dann koennen wir demnächst schon mal paar generelle sachen klären
kann man damit jetzt cheaten oder wie ?
weil ich denke mal das man das als iso abspielen wird sodass das mit exploiten oder ähnlichem wenig zu tun hat =$
Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2011 22:59 von onlinesoccer.
kann man damit jetzt cheaten oder wie ?
weil ich denke mal das man das als iso abspielen wird sodass das mit exploiten oder ähnlichem wenig zu tun hat =$
eine subroutine ist nur ein code für ein PR device... ist also fürs cheaten, ist aber keine iso oder sonst was...
Danke, gutes Video, (komme jetz ein Gaaaaaaaaaaaaanz klein wenig bessser draus)
aber wie bringe ich jetzt den code dazu, dass er das macht, was ich will?