![]() |
| |
Thread Tools Display Modes |
|
I've been reading a 36 chapter article on MIPS Assembly language and I'm on the 26th chapter now. But I would like to have something to practice with or someone. I only need a little more descriptive help with the decoding the MIPS inside the PS2DIS as far as in where the data I'm looking for is ending up. I'm mostly understanding the MIPS commands but a few a a bit weird to understand where its placing the data that I need to mod.
P.S Also if anybody has the SCUS for socom 3 or ca I would love it if you could upload it to rapid share or mega upload so I could download it. I would use my dvd and cd rom drives but they aren't working since I installed a slave drive. Thanks for any help.
__________________
Domain Names For Sale !!!
----------------------------------------------- Code Exploit.com HTML Quest.com Free Mix.info BBWT.org If you are intrested e-mail me: Subless [at] Yahoo.com |
|||||||
|
|
|||||||
|
i worked with color mods to get my adding and subtracting, mult and dividing down, and did some side codes to get others down, i just mess with stuff, i think u can learn more from first hand experience then book work, but then again i might be missing something. and the only tut i ever read was bluemans tut LOL
|
|||||||
|
Quote:
If you ever plan on writing your own "routines" in MIPS, then you must get an understanding of syntax and why you need correct syntax. The best way to get that understanding is to learn about real programming languages (I am in no way calling MIPS fake, it's just not a "programming" language). If you are using PS2DIS to disassemble the executables or a block of memory, then you don't need to worry about how to decode the data into the commands. PS2DIS does this for you. All you have to do from there is be able to understand the language. While your using PS2DIS and are trying to figure out where the functions (routines) are storing data at from a certain line, you have to read above that line. I can't tell you exactly what will be above your line, because not all functions are the same. If you understand MIPS, it's pretty self explanatory. You look above and find the lines that load or retrieve data into the variable (also referred to as "registers" in MIPS) that is being stored somewhere on the line you were originally at. You won't always be able to figure out where the data is being stored, because most of the variables in the game are temporary. Temporary data is data that will not always exist. This could be data used to create the graphics you see on your screen, text displayed, random data you're not aware of, or anything else that isn't meant to be kept. Temporary data is never stored in a constant place. The address for temporary data is typically high on RAM, normally found in 01XXXXXX and up. If you want to edit the values of temporary data to receive results you want and are sure you have the correct function that causes the effect you want to change, you have to just follow the function. The function will tell you where to store your modified data at by using the storing commands. Temporary data is always relative and not direct due to the fact that it isn't stored in a constant address. For example, if your line that is storing data uses the "Store Word" command and is storing temporary data, then it would look something like this in PS2DIS: sw XX, $AAAA(MM) The "XX" is the variable (register) that is being stored, "AAAA" is data relative to the value of "MM", the variable (register) holding the main address of the temporary data used for that function. "MM" will typically be "sp" or any of the "s" variables (registers), it could actually be any of the variables but those are the typical temporary data variables. (If you noticed, I refer to the "registers" as variables a lot. Why? Because thats all they really are, variables.) If the line you're looking at that stores data is storing the data directly to an address then it's quite easy to figure out where it stores it. Just look above the line for what is being loaded into the main address variable. If you look above, you should notice lines loading an upper half into the variable and maybe a lower half. The upper half of the data is the first 4 digits of the value. In terms of halves, data looks like this: UUUULLLL The "U"'s represent the upper half, and the "L"'s represent the lower half. The MIPS commands for loading data into the upper half of a variable is "Load Upper Immediate". The command looks like this: lui XX, $DDDD The "XX" is the variable in which the data is being loaded into, and the "DDDD" is the data. There isn't really a command designated for loading the lower half the data into the variables, but PS2DIS helps you in that area. The real command used in MIPS to load data into the lower half is "Add Immediate Unsigned". PS2DIS changes the text displayed from "addiu" to "li" to let you know its just loading the lower half of the data. The command, when you open up the line in PS2DIS, will look like this: addiu XX, XX, $DDDD The "XX" is the variable in which the data is being loaded into, and the "DDDD" is the data for the lower half. The reason why the middle variable is the same as the first is because it is storing its own contents + the lower half into itself. After you have figured out the contents of the variable that contains the address, your able to figure out where it is being stored. If your too lazy to figure all that out on your own, then you don't have to do what I just explained (it's still nice to know how to do it). PS2DIS sort of makes it easy on you. If it is a direct storage then all you have to do is go to the line that is storing the data that you want to mod and hit the right arrow key on your keyboard. It will automatically jump to the stored address. If it does not take you anywhere, then that's when you have to use the information I explained above to figure out whats going on. If it turns out that its storing temporary data, then your not going to figure out where it stores all the time. The only way you can mod that data is to mod what it stores in the function. In the sense of it being temporary data on SOCOM 3 or CA, good luck with getting that online with no ban. If none of what I said makes sense to you, then damn, at least I tried to help ;) lol. |
||||||||
![]() |
| Bookmarks |
«
Previous Thread
|
Next Thread
»
| Thread Tools | |
| Display Modes | |
|
|
















Linear Mode
