SOCOM Underground
FAQ













Home

About Socom Underground | SOCOM 2 info | SOCOM 2 clan =UAF= | Clans | Socom 2 UnderGround | FAQ | UnderGround Codes | Forum Links | Our forum





WHaT Is PS2 dis???????
















  1. Introduction

    First things first. Using PS2DIS to home-hack GameShark codes is NOT easy (for the most part). It helps out a lot, but still requires a fair amount of programming knowledge to get the really good codes. I will try to show you in this guide how to make the best use of it you can. You will soon see why it is almost useless for a lot of (or most) games, but also why we were so successful with GTA3.

    The FAQ assumes that you have a basic knowledge of the hexidecimal number system and some key programming concepts (functions and variables).


  2. Getting Started

    Here's what you'll need in order to use it:

    1. Download the program from http://www.geocities.com/SiliconValley/Station/8269/ps2dis/) and extract it to your harddrive. (Hanimar's (the creator of PS2DIS) site is here: http://www.geocities.com/SiliconValley/Station/8269/ps2dis/)

    2. Using the DVD drive in your computer (or a friend that has one), copy the SLUS file off of the game. If the game is in CD-ROM format (instead of DVD), a normal CD drive will work fine. The SLUS files usually have a name like "SLUS_###.##". For example, the GTA3 SLUS file is named "SLUS_200.62". Some start with SCUS, and PAL format discs have ones that start with SLES. There are other variations out there, but that should cover the majority of them.

    3. Once that file is on your harddrive, open up PS2DIS (by running the ps2dis.exe exectutable) and use File->Open to open the file you copied off the disc.

    You are now ready to start your hacking. :)

  3. Display

    This is what you should be looking at on your screen now:

    Top Part (Grey):

    This shows you the data as it appears in memory. I don't use this too often, but it gives you the addresses, hex values, and corresponding alphanumeric values of those hex bytes.

    Bottom Part (Blue):

    1st column: This is the address of the current line of code. Since the PS2 instructions are 32-bits, it only shows you every 4th address (this can be modified, as you'll see later).
    2nd column: This is the 4 bytes of data that is stored at the address in column 1.
    3rd column: This column is for labels (more about them later). This column is blank for most lines.
    4th column: This shows you the disassembled instruction that corresponds with the data in column 2 (read more about instructions in the MIPS guide).
  4. Navigation Controls

    Getting around in the DIS is fairly easy once you get used to it. You can move between lines of code using the Up and Down arrows. The Page Up and Page Down keys do exactly what you'd expect them to do. Using Ctrl+Page Up or Ctrl+Page Down will jump up or down by a large number of addresses (+/- $00001000). Also, by holding Shift while using the Up and Down arrows, you can scroll up or down while keeping an address you want highlighted. This is handy just in case you tend to lose it when you scroll.

    Occasionally, you will see a line of code where the disassembled code has an up or down arrow in it. This indicates a Jump or a Branch (more on these instructions in the MIPS guide). If you highlight that line of code and press the Right arrow, it will take you to whatever line of code that instruction was jumping or branching to. This is extremely useful in tracing sections of code to see what it does.

    If you use the Right arrow to get to a Jump or Branch's destination, you can use the Left arrow to go back to the original instruction. Be careful though, because if you use it too many times, it will take you back to the address it started at when you opened the file and you'll lose the place that you were at.

    If you know exactly what address you want to go to, you can press the G key. This will bring up a dialog where you can type in an 8-digit address and it will take you right there.

    One of my favorite features of PS2DIS is the Label Listing. Press Ctrl+G to bring it up. It will allow you to jump to any of the labeled lines in the SLUS. It is very handy for jumping directly to certain functions or variables that are labelled.

  5. Labels

    Labels are the key to whether or not PS2DIS will be extremely helpful in hacking a game. There are basically three types of labels:

    1. Labels for strings of text - These are most common. Every game I have seen has string labels in its SLUS. These are also the most useless types of labels (in most cases). Rarely will the strings give you a good idea of what a function does or where variables are stored. String labels begin and end with the double-quote character (").

    2. Labels for variables - These labels rarely appear in SLUS files. Making cheats with these labels is a relatively simple process of setting a value at that address. The hard part is knowing what value to set in order to make the cheat effective.

    3. Labels for functions - These labels also very rarely appear. These labels appear at the beginning of a section of code that represents a function. The name will often (though not always) give you a fairly good idea of the purpose of that function. These labels are helpful in making cheats that either disable functionality (e.g. Disable Water For Cars), or change which functionality is used (e.g. Boat Guns On Cars)

    As I said, most SLUS files do not contain variable or function labels. This makes it very difficult to hack games without the tools that the guys that work at GameShark have (the expensive stuff). However, GTA3 just happened to have tons of labels in it, which gave us lots of stuff to work with.

  6. The Analyzer

    This is probably the most useful tools that PS2DIS has to offer. When you invoke the Analyzer (Analyzer->Invoke Analyzer), it runs through then entire code segment and figures out all the places that each address is referenced from. This process could take a while on slower PCs, so be patient. Once it's finished, you can "mark" any line of code and cycle through all the addresses that reference that line.

    To "mark" a line of code, simply highlight the line and press the Space Bar. The selected line will turn grey instead of blue.

    To cycle through all of the "referers" for that line, press F3 to go forward and Shift+F3 to go backwards. Finding referers is usually only effective for a variable's address, the first line of a function, or the first byte in a string.

  7. Miscellaneous

    Finding Patterns - If you have a certain hex value that you want to search for, you can do that by clicking Edit->Find Patern. Click the "As Hex String" checkbox and put in what you are looking for. Remember though, that MIPS stores the data in Little Endian format (the bytes are reversed). For example, if you were trying to search for a value that would look like this in the 2nd column: "2403003d", you would want to search for the following hex string: "3d 00 03 24". It takes a while to get used to, but once you get used to it, it's easy.

    Changing Address Display - You can make the DIS display all four bytes at an address individually instead of all at once by selecting the line and pressing the B key. You can change it back by selecting the first line in the group of four and pressing the C key. This is mostly useful in finding and editing string data.

  8. Resources

    Use the resources below to learn more about the hexadecimal number system and the MIPS Assembly Language. MIPS is the assembly language that appears in PS2DIS when disassembling the SLUS files. Some of our best codes have come from modifying what the code actually does. In order to do this, you need to know how MIPS works.

    Hex Resources:

    MIPS Resources:

  9. Examples

    The examples below required the GTA3 SLUS file (SLUS_200.62). We can't put it up here for download, so if you don't have the game or a DVD drive, you need to get it from somewhere else. :\