This Guide Was Writen by TheEliteOne aka Xx958xX and will ONLY be posted at ww.PSPElites.DarkBB.com
Table Of Contence:
1) How a Code Works
2) Basic Coding
3) DMA
4) Porting
5) Credit and Thanks
Section 1 - How a Code Works
There are two main parts of a code, the address and the hex. The address corasponds with a function in a game and the hex is the value of that function, heres an example:
#Inf Stamina
;need stamina add on
0x002EE3D4 0x6FFFFFFF
0x002EE3D4 is the address, this corasponds with the stamina in Star Wars Renegade Squadron. The hex is 0x6FFFFFFF, thats how much stamina you have, that makes your stamina full and it never decreases because usualy when you run the hex would drop, but when you have this code on it makes it so it dosen't drop, it stays full.
There are other parts of codes like the Text/ASCII and the Dec value. These can only be seen when viewing the code in a cheat devise like NitePR or CoderPR. The Text/ASCII is used for Name Imposter Codes, you would enter the name you want to imposter in the Text collum, example:
#Blank Name Imposter
0x00658B7C 0x00000000
0x00658B80 0x00000000
0x00658B84 0x00000000
0x00658B88 0x00000000
The hex values are blank so it is a blank name imposter (Invisible Name). each line of code can change up to 4 text cherecters, so the first line is 0x00658B7C 0x00000000, thats the first four charecters of your name, the second line is the second four ect. If the thing your impostering is longer, like a room name, you would need something like this:
#Room Imposter
0x0064BBAC 0x00000000
0x0064BBB0 0x00000000
0x0064BBB4 0x00000000
0x0064BBB8 0x00000000
0x0064BBBC 0x00000000
0x0064BBC0 0x00000000
0x0064BBC4 0x00000000
The Dec value is the same thing as the Hex value but in a different format. lets take this code as an example:
#Allies Flag Cap
;controls how much points 1 flag cap gives u
;BeyondOwnage
0x00658764 0x0000FFFF
the hex is 0x0000FFFF but i you looked at it in a cheat devise the Dec value would be 0000065535. The Dec is the same as the Hex just the real thing, look at another example:
#999,999,999 Dollars
0x00A711F8 0x3B9AC9FF
The Hex is 0x3B9AC9FF, but if you looked at it in a cheat devise the Dec value would be 999,999,999.
Heres some other parts of a code:
# = This alows NitePR/CoderPR to read the cheats name
; = This marks the start of the notes, notes usualy contain credt, info about the code and important facts about the code
0x = this must be at the begining of every address and hex, this allows NitePR/CoderPR to read the actualy code
Section 2 - Basic Coding
People usualy use Exact Value Searches to find Inf Money, Ammo, Credits or any number you can think of. Heres an example guide for Inf Money in Need for Speed Pro Street:
I have $1,000 dollors, so i click on Find Exact Value in the Searcher menu and i enter 1000 in the Value.Dec collum:
Value.Hex Value.Dec Text/ASCII Value.Float
0x000003E8 0000001000 . . . . 0.000000
Search
Now click search, i got 44 results, change the amount of money you have by wining a race. Lets say i now have $1,300 dollors, now i search:
Value.Hex Value.Dec Text/ASCII Value.Float
0x00000514 0000001300 . . . . 0.000000
Search
i should get one result, thats you code. Click on it and change the Value.Dec to how much money you want, try 2000 for now, click ( ) twice and go click X on New Cheat 0, it will turn white. Exit NitePR and press the Note Key inbetween the screen and select butons. Click into the events menu and back, now you have $2,000 dollors! The reson we went into the Event menu is because we need to have the maney number not on the screen for it to update. Most games dont need this. Now you know the basic exact value searching.
In the guide the Text/ASCII would change also but im to lazy to see what it would change to.
Simple right? if your code has an address of 0x013 or higher OR your code dos not work after changing maps, dieing, ect. then your code is DMAed, refer to section 3 for help with DMA.
Text Coding
Using exact value instead of the text searcher, text codes can be found quicker and easyer. Heres a guide on how to make a name imposter for the Medal of Honor Heroes series:
Lets say my name is TheEliteOne, i would open my cheat devise and go to find exact value, then to the ASCII collum, sence each line of code can only hold 4 text charecters i can only search for the first four letters in my name, TheE, capital letters matter. now i click search. Once i am done with that i search the second four letters, lite, keep doing this untell you have your code and know it works. Type up on the computer the address and make the hex 0x00000000, then hit enter and type the address again but add 4 to the end of it, keep adding addresses untell you have 4 lines, so if my code is 0x00658B7C then my code will end up like:
#Name Imposter
0x00658B7C 0x00000000
0x00658B80 0x00000000
0x00658B84 0x00000000
0x00658B88 0x00000000
Unknown Value
Once you click on find Unknown Value i refer to that as a "Set" then once you do that you need to change something in the game so you can corectly use these 5 search modes which you will find if you go back to continue to find unknown value:
0=Same (For searches that are the same as your last search or set)
1=Different (For Searches that are different than your last search or set)
2=Greater (For Searches that are greater than your last search or set)
3=Less (For Searches that are less than your last search or set)
4=Inc By (For searches that are Increased by a exact amount sence your last search or set)
5=Dec By (For searches that are Decreased by a exact amount sence your last search or set)
It's very straight forward, try things out. And if you think you have found a code and have tested it like inf stamina for a Medal of Honor game, then wait for your stamina to fill up all the way and then add it again. This alows your code to make your stamina bar always full and not stop decreasing when it's half way down.
Section 3 - DMA
DMA Stands for Dynamic Memory Allocation, what DMA is is the game changes the address of the code everytime the game loads something like weapons you respawn with, or when it loads a new map. There are two ways to tell if your code is DMA, one is if the address is over 0x01 and the most sure way is if the code stops working once you die or change maps. To un DMA a code you must know how a un DMA code works
#Example DMA Code
0xFFFFFFFF 0xPointer
0xOffset 0xEditable Value
So the 0xFFFFFFFF tels NitePR and you that the code is a un DMAed code, the pointer is pointing to where your address changed to, the offset is how much it changed by, basicly the pointer of the pointer. The editable value is a hex value you enter yourself.
Now you basicly know how a DMA code looks like and how it works. So to un DMA your code you need to folow these steps:
1) Find your code, write it down
2) Dump te ram in slot 0
3) Change maps or die, find the code again
4) Write it down
5) Dump ram in slot 1
6) Connect your PSP to the computer and cut the ram dumps to a safe place on your computer
7) Now open SANiK's DMA hunter and it will ask you for two ram dumps
8] Choose the ram dumps 0 and 1 in that order
9) Now it asks you for addresses, enter the first address you wrote down then the second one (Without the 0x)
10) Hit enter and wait for the results
11) Now look for a symbol at the top that looks like "C/:" and click on it
12) Go down to edit and choose mark, then choose select all, then press enter
13) Now open up a blank text document and paste the results there
14) Close DMA Hunter
15) The results will look like:
Found address, ????????1, value changed from ????????2, to ????????3
16) The ????????1 is your pointer, add zeros to the front so it's 8 charecters long
17) to find the offset you need to take the ????????2 and add 8800000 to it using your calculator when it's in hex mode (go to view) this is now the real address, i will talk about this more later
18) Now subtract the code you just got by the fist code you wrote down in step 1
19) Thats your offset.
20) Now put the code together like in the example and add your own value for the second lines hex. If it dosn't work make sure you did everything write and if it still dosn't work it is duble DMAed, to unDMA duble DMA ask a coder or a 1337 because im still learning it.
Section 5 - Porting
Porting is another easy skill you might want to learn. games in a series like Syphon Filter, they have addresses that are almost the same in most casses. so lets say i have a code in MOHH1 that i want to use in MOHH2 but i dont know how to make it, i would Port it into MOHH2, Heres an example:
#InStAnT ToUcH GrEnAdE
;First person to FIND this...
;USMC HaXeR aka NCR CodeX.
;1337 Released.
;Proof of this FIND...
;RTC Flash,IguanaHak,appie,xxsnipexx,Notorious420, etc...
;Enjoy this Instant grenade as it provides a instant explosion right
;on touch, OF ANY OBJECT!
;EnJoY
0x001D2A58 0x00000000
First i need the Address in real format, copy/paste the address into the decoder, for this code it will be 10000018. Now go into MOHH2 and search 10000018, games farther in a series like mohh2 compaired to mohh1 will have a higher address, the moh1 codes address is 0x001D.. so look in the 0x002.... and on for the code, make sure to change the hex with the hex of the mohh1 code, in this case it's 0x00000000 or it wont work. You cant take full credit of the code you must say ported by (Your name)
#Instant Touch Granade
;MOHH1 Version By USMC HaXeR
;Ported by TheEliteOne [Wasnt first 2 port, Th3 Sh4dOw was]
0x0020B048 0x00000000
This guide on porting was a modded version of Th3 Sh4dOw's Guide at OHG. All Credit Goes to Him
Section 6 - Credit and Thanks:
~TheEliteOne (AKA Xx958xX)
Writing this guide
~Murderface
Posting his DMA killing guide that helped me understand DMA
~Th3 Sh4dOw
Posting a very short porting guide which i modified and edited
~Black_Wolf
For posting his final psp coding guide, it helped me understand pointers and why DMA exists
If you need any help just reply