---------------------------------------------------------------------------
- METAL GEAR SOLID PORTABLE OPS UNIT HACKING GUIDE                        -
- ([email protected])                       version 0.30b                   -
---------------------------------------------------------------------------

  [04.NOV.2009]

---------------------------------------
- - - - - - - - - - - - - - - - - - - -
- T A B L E    O F    C O N T E N T S -
-                                     -
-                                     -
- 1. INTRO                            -
- 2. GETTING STARTED                  -
- 3. HACKING UNITS/CHARACTERS         -
- 4. MODIFIERS                        -
-        > ITEMS/WEAPONS              -
-        > RANK                       -
-        > STATS                      -
-        > SKIN/CLASS                 -
- 5. CREDITS/OUTRO                    -
-                                     -
- - - - - - - - - - - - - - - - - - - -
---------------------------------------



----------------------------------------
- INTRO            - - - - - - - - - - -
----------------------------------------

This is a pretty straight forward guide to demonstrate how to hack Metal
Gear Solid: Portable Ops' memory.  This guide WILL NOT work for Portable
Ops Plus. In sections through this guide, Metal Gear solid: Portable Ops
will simply be referred as MPO.  Portable Ops Plus, when referenced, may
appear as MPO+.

It's not hacking in a conventional sense.  It DOES NOT involve illegally
modifying the UMD, or the game data in anyway.

Then how does 'hacking' this game work?

It works be hacking the memory of the game as it is running.  It does NOT
involve hacking the games save files.  However, save files produced with
this guide will work on any PSP/MPO game.  If you do not know how to tap
in to and hack the memory of the PSP while it is running, I suggest you
look elsewhere for that information, as it isn't contained in this guide.

Please do not e-mail me asking me for help regarding accessing the memory
of the PSP while it is running.

You will also need a basic understanding of hexadecimal, and the ways that
hacking memory/save files works using hex editors.  Again, look elsewhere
for that info.  There are plenty of hexidecimal and save hacking tutorials
online.  This guide lays out what addresses need to be hacked - now how
to hack in general.

Lastly, this guide is in a very premature/beta stage.  Please be patient
as updates are forth coming.



---------------------------------------------------------------------------
---------------------------------------------------------------------------


----------------------------------------
- GETTING STARTED  - - - - - - - - - - -
----------------------------------------

First, once you have the memory of MPO pulled up, you will need to search
for a text string of the characters name you wish to hack.  For example,
if you wish to hack "Jonathon" - the first prisoner you persuade in the
game, search for his name, or a part of his name, such as "Jonat".  The
more letters you search for the more defined the results will be.

Once you have found the characters name, and it's hex address, we can begin
hacking that characters stats.  Everything from character type/skin, to all
of his or her stats, to even the equipment being held can be edited.  But
the first and most vital step is locating the characters name.  It may help
to rename the unit something more unique than the 'generic' animal names
they are imprisoned with.

All hex offsets that need to be edited will be referenced from the FIRST
letter of the characters name.  For example, byte 00 is LETTER 1 of the
units name.  So, searching for and finding Jonathon, byte 00 will be the
letter "J", byte 01 will be "o", etc.  Byte 16, which occurs 16 bytes
after the first letter of the characters name is the RANK byte, and
controls the RANK of units which have rank (ie corporal, major, etc).

Right now the only byte BEFORE the characters name which I have discovered
occurs 12 bytes before the FIRST letter (byte 00) of the units name, and
is labeled as such; byte '-12' - this byte controls what appearance of the
character, allowing you to become any type of unit you wish.

Lastly, as a final example, say you've found the units name whom you wish
to hack, and you want to raise his Sniper Rifle skill from a 'B' to an 'S'
then you need to find the FIRST letter of that units name, then go foward
exactly 52 bytes/offsets, and raise the value from '01' to '03'.

You may also notice that there are essentially TWO sets of identical data
in reference to the character you wish to edit.  The first set of data,
that is, the set with the lower address value, is the data that will
actually impact the game.  The second set of data has unknown uses.  It's
possible that the second set of data is used to filter out hacked units
when importing in to MPO+.


---------------------------------------------------------------------------
---------------------------------------------------------------------------


----------------------------------------
- HACKING UNITS    - - - - - - - - - - -
----------------------------------------

This section entails hacking units.  Byte/offest 00 is the FIRST letter of
the units name.  The actual hexidecimal address for this byte will vary
from one unit to the next, so you need to search for a text string to
locate the units name.  The names are all spelled in basic ASCII, so if
you want to find 'OCTOPUS', then simply search for 'OCTOPUS'.  Once you've
found the address, byte 00 will be the letter "O", and the first letter
of the unit's name.

Keep in mind that "byte 0" (the first letter of the units name) may occur
at any point in a line of bytes - it is not always the first byte in a
new line.  This can add some confusion to the editing process, and is the
primary reason this guide is written the way it is.  If this doesn't make
sense to you, it will after you edit a few units.  The editor I was using
for hacking the memory only has 13 bytes per line; most common hex editors
have 16 byes a line.


------------------
EDITING STATISTICS
------------------
Editing the statistics of the unit, such as HP or stamina is as easy as
finding "byte 00" and then correctly identifying the address that needs
to be changed.  Basic statistics are easy to change.


------------------------
A WORD ON CAREERS & RANK
------------------------
In general, a soldier will only have one or two careers, and perhaps a
rank.  There are only FOUR slots available to view what careers a unit
has, as well as the rank.  However, using this guide, it is possible to
have all 16 careers concurrently.  This is a bit of a conflict, as only
four careers will show when you select a unit for management.  Note that
all careers will still function, however.


---------
MODIFIERS
---------
Many addresses/bytes will have MODIFIERS associated with them.  If you
wish to edit what sort of item a unit is currently carrying, please go
to the modifier section for ITEMS/WEAPONS and see what values you will
need to put in to make the appropriate changes and get the results you
want.

Certain item/weapon modifiers have NONE listed.  This will actually show
'NONE' displayed in the item slot instead of a blank space.  [BLANK] for
the modifiers means that no text shows up at all.


-----------------------
UNDERSTANDING THE GUIDE
-----------------------
Listed below is the information on each byte of a characters information
"block", and is referenced from the FIRST letter of the characters name,
or byte "00".  Each number listed below on the LEFT side of the guide is
the byte value corresponding to the first letter of the units name.  So,
"16" is 16 byes forward of the first letter of the units name, and has
the description listed next to it; "Rank".

Decriptions listed as [UNK] have unknown effects.


------------------------------------
BYTE NUMBER AND EFFECTS LISTED BELOW
------------------------------------

[##] - [DESCRIPTION]

- - - - - - - - - - - - - - - - - - -

-16 - Unit Number
-15 - Generic/Unique Identifier
-12 - Skin/Class (See Notes)
-08 - Unit Type Identifier
-04 - Unknown, however:  0x01 is the regular offeset.
                        0x02 makes the unit disappear from manage.
                        0x03 causes the unit to be "disabled".
-15 - Generic/Unique Unit

00 - Unit Name [1st  letter]
01 - Unit Name [2nd  letter]
02 - Unit Name [3rd  letter]
03 - Unit Name [4th  letter]
04 - Unit Name [5th  letter]
05 - Unit Name [6th  letter]
06 - Unit Name [7th  letter]
07 - Unit Name [8th  letter]
08 - Unit Name [9th  letter]
09 - Unit Name [10th letter]
10 - Unit Name [11th letter]
11 - Unit Name [12th letter]
12 - Unit Name [13th letter]
13 - Unit Name [14th letter]
14 - Unit Name [15th letter]
15 - [UNK]
16 - Rank  (See Notes)
17 - [UNK]
18 - [UNK]
19 - [UNK]
20 - Current HP #1
21 - Current HP #2
22 - [UNK]
23 - [UNK]
24 - Max HP #1
25 - Max HP #2
26 - [UNK]
27 - [UNK]
28 - Current Stamina #1
29 - Current Stamina #2
30 - [UNK]
31 - [UNK]
32 - Max Stamina #1
33 - Max Stamina #2
34 - [UNK]
35 - [UNK]
36 - Sense Skill
37 - [UNK]
38 - [UNK]
39 - [UNK]
40 - [UNK]
41 - [UNK]
42 - [UNK]
43 - [UNK]
44 - Career Modifier #1
45 - Career Modifier #2
46 - [UNK]
47 - [UNK]
48 - Pistol Rank
49 - Submachine gun Rank
50 - Assault rifle Rank
51 - Shotgun Rank
52 - Sniper Rank
53 - Heavy Weapons Rank
54 - CQC/Knife Rank
55 - Throwing Weapons
56 - Traps
57 - Technical Skill
58 - Medical Skill
59 - [UNK]
60 - Top Item Modifier      (See Notes)
61 - Top Item Type          (See Notes)
62 - Right Item Modifier    (See Notes)
63 - Right Item Type        (See Notes)
64 - Bottom Item Modifier   (See Notes)
65 - Bottom Item Type       (See Notes)
66 - Left Item Modifier     (See Notes)
67 - Left Item Type         (See Notes)
68 - [UNK]
69 - [UNK]
70 - [UNK]
71 - [UNK]
72 - [UNK]
73 - [UNK]
74 - [UNK]
75 - [UNK]
76 - Times Deployed
(more research needed)

---------
N O T E S
---------

The Skin/Class modifier changes the physical appearance of the
unit, including the gender.  This is the ONLY way to obtain
certain types of units like Naked Snake, Roy, and the camoflauge
lynx soldiers that are normally only available in the Japanese
version of the game.  ALWAYS remember that this byte occurs BEFORE
the first letter of the units name.

The 'Rank' modifier seems to only work on certain units, such as
the common Lynx soldiers and male and female officers, who will
be Private 1st Class, corporal, major, etc.  Units which don't
have a rank to begin with, like doctors, will have information
stored in the rank byte, but it will not display on their screen.
More info is needed to figure out why this is.

Item Placement as per memory goes as follows:

       TOP  ITEM                   1
LEFT ITEM      RIGHT ITEM       4     2
      BOTTOM ITEM                  3



---------------------------------------------------------------------------
---------------------------------------------------------------------------




----------------------------------------
- MODIFIERS      - - - - - - - - - - - -
----------------------------------------

Modifiers are the values, in hexidecimal format, that you put in to the
addresses listed for the specific bytes above.


----------------------
ITEM/WEAPON MODIFIERS:
----------------------

-----------------------------------------------------------------------
- NOTE : The item/weapon modifier slots are two byte modifiers.  It's -
-        easiest explained that the first byte controls WHAT item you -
-        are actually receiving.  Changing the second byte to a 40    -
-        changes the weapon into an item.  00 is for weapons, 40 is   -
-        for items.                                                   -
-----------------------------------------------------------------------

0000 - NO ITEM
0100 - Knife
0200 - Spetsnaz Knife
0300 - Mk.22
0400 - M1911A1
0500 - S.A.A.
0600 - Scorpion
0700 - Uzi
0800 - M16A1
0900 - XM177e2
0A00 - AK-47
0B00 - M37 Shotgun
0C00 - M870 Shotgun
0D00 - M63
0E00 - SVD
0F00 - MOSIN N
1000 - RPG-7
1100 - M110
1200 - Laser Rifle (Sp.)
1300 - Machete (Sp.)
1400 - NONE (Sp.)   <-- Can not be removed.
1500 - Grenade
1600 - Stun Grenade
1700 - Chaff Grenade
1800 - Smoke Grenade
1900 - LN G (Sp.)
1A00 - TNT
1B00 - Time Bomb
1C00 - Claymore
1D00 - Magazine
1E00 - Shield
1F00 - GA-KO
2000 - Bowie Knife (Sp.)
2100-2800 - NONE
(more research needed?)


0140 - Medical Kit S
0240 - Medical Kit L
0340 - Ration S
0440 - Ration L
0540 - Pentazemin
0640 - Binoculars
0740 - Thermal Goggles
0840 - NVG
0940 - Mine Detector
0A40 - Body Armor
0B40 - Cardboard Box
0C40 - Key B
0D40 - Key C
0E40 - Key D
0F40 - Key A
1040 - Key E
1140 - Secret Doc
1240 - Blueprints
1340 - Bandana
1440 - Stealth (disappears in game)
1540 - [BLANK]
1640 - [BLANK]
1740 - [BLANK]
1840 - [BLANK]
1940 - [BLANK]
1A40 - [BLANK]
1B40 - 9MM-T ammo
1C40 - 9mm ammo
1D40 - .32 ACP ammo
1E40 - .45LC ammo
1F40 - .45ACP Ammo
2040 - 5.56 Ammo
2140 - 7.62X39mm ammo
2240 - 7.62x54R ammo
2340 - 7.62mm T ammo
2440 - 12 gauge
2540 - HEAT Ammo
2640 - MK22SPR
2740 - MK22SPR
2840 - XM177SPR
2940 - MAC10SPR
2A40-3040 - NONE
(more research needed?)


---------------
RANK MODIFIERS:
---------------
00-REMOVE RANK
01-Private 1st Class
02-Corporal
03-Sergeant
04-Senior Lieutenant
05-Captain
06-Major
07-[JAPANESE WRITING]
08-[Causes game to freeze]


---------------------
STAT CLASS MODIFIERS:
---------------------
00-C
01-B
02-A
03-S


---------------------
SKIN/CLASS MODIFIERS:
---------------------
00: Snake
01: Null
02: Eva
03: Para-Medic
04: Ocelot
05: Major Zero
06: Raikov
07: Gene
08: Python
09: Ursula
0A: Elisa
0B: Teliko
0C: Venus
0D: Cunningham
0E: Signit
0F: Sokolov
10: Roy Campbell
11: LYNX (Sleeves up, no vest.  Jonathon only?)
12: Naked Snake
13: GA-KO
14: LYNX (Sleeves up, no vest - identical to 11)
15: LYNX (Sleeves down, no vest)
16: LYNX (Sleeves up, vest w/ ammo)
17: LYNX (Sleeves down, vest w/ammo)
18: FOX Unit 1
19: FOX Unit 2
1A: FOX Unit 3
1B: Female Soldier 1
1C: Female Soldier 2
1D: Female Soldier 3
1E: Scientist 1
1F: Scientist 2
20: Scientist 3
21: Nurse 1
22: Nurse 2
23: Nurse 3
24: Technician 1
25: Technician 2
26: Technician 3
27: Officer 1
28: Officer 2
29: Officer 3
2A: Government Official
2B: Ocelot Unit
2C: KGB
2D: GRU
2E: LYNX - Biccamera (white, black, purple)
2F: LYNX - Yodobashi (yellow, tan, black)
30: LYNX - Sakuraya (purple, white, red)
31: LYNX - Ubook (green, olive, white + logo)
32: LYNX - Wondergoo (blue, navy, green)
33: LYNX - Sofmap (light blue, white + duck logo)
34: LYNX - Joshin (white + red logo)
35: LYNX - Nestage (white + red, blue, & yellow logos)
36: [CRASHES GAME WHEN SELECTED]



--------------------
CAREER MODIFIERS #1:
--------------------

NOTE : Career modifiers exist as a SINGLE byte, however, each 'side'
      of the byte controls a function.  The second alphanumeric will
      control arms specialist, engineer, elite engineer, and chemist
      only, while the first alphanumeric will control the paths of
      doctor, nutritionist, surveyor, and spy.

      To that end, if you want a Chemist, Doctor, and Nutritionist
      you would put the value '38'.


00: Blank

0x: None
1x: Doctor
3x: Doctor + Nutritionist
4x: Surveyor
5x: Surveyor + Doctor
6x: Surveyor + Nutritionist
7x: Surveyor + Doctor + Nutritionist
8x: Spy
9x: Spy + Doctor
Ax: Spy + Nutritionist
Bx: Spy + Doctor + Nutritionist
Cx: Spy + Surveyor
Dx: Spy + Surveyor + Doctor
Ex: Spy + Surveyor + Nutritionist
Fx: Spy + Surveyor + Doctor + Nutritionist

x0: None
x1: Arms Specialist
x2: Elite Engineer
x3: Elite Engineer + Arms Specialist
x4: Engineer
x5: Engineer + Arms Specialist
x6: Engineer + Elite Engineer
x7: Engineer + Arms Specialist + Elite Engineer
x8: Chemist
x9: Chemist + Arms Specialist
xA: Chemist + Elite Engineer
xB: Chemist + Arms Specialist + Elite Engineer
xC: Chemist + Engineer
xD: Chemist + Engineer + Arms Specialist
xE: Chemist + Engineer + Elite Engineer
xF: Chemist + Engineer + Elite Engineer + Arms Specialist



--------------------
CAREER MODIFIERS #2:
--------------------

00: Blank

x0: None
x1: Arms Dealer
x2: Politician
x3: Arms Dealer + Politician
x4: Athlete
x5: Athlete + Arms Dealer
x6: Athlete + Politician
x7: Athlete + Arms Dealer + Politician
x8: Quarterback
x9: Quarterback + Arms Dealer
xA: Quarterback + Politician
xB: Quarterback + Arms Dealer + Politician
xC: Quarterback + Athlete
xD: Quarterback + Athlete + Arms Dealer
xE: Quarterback + Athlete + Politician
xF: Quarterback + Athlete + Arms Dealer + Politician

0x: None
1x: Artist
2x: Scout
3x: Scout + Artist
4x: Rescuer
5x: Rescuer + Artist
6x: Rescuer + Scout
7x: Rescuer + Scout + Artist
8x: Gambler
9x: Gambler + Artist
Ax: Gambler + Scout
Bx: Gambler + Scout + Artist
Cx: Gambler + Rescuer
Dx: Gambler + Rescuer + Artist
Ex: Gambler + Rescuer + Scout
Fx: Gambler + Rescuer + Scout + Artist




---------------------------------------------------------------------------
---------------------------------------------------------------------------


--------------------
CREDITS
--------------------

([email protected]) - creator/editor

Metal Gear is a trademark of Konami Corporation ©1987, 2007, 2009.
Metal Gear Solid: Portable Ops © Konami 2006.

Metal Gear Solid: Portable Ops Unit Hacking Guide © S. M. Thomas 2009



---------------------------------------------------------------------------
---------------------------------------------------------------------------