Jump to content

Alpha Protocol Reputation Hack


Recommended Posts

Alpha Protocol Reputation Hack // Sept. 3 2010 05:26 (GMT+3)

 

Okay, here's the thing; I played this game a lot and I said some wrong things. In life, there's no turning back from saying wrong things, but in games we got HEX editors, therefore we can change things as we wish. I wanted to change reputation points, so I went looking for a save editor. The only save editor that was released was the CheatHappens save editor, and it was "sold", not released to public. At that point, I gave the middle finger to them, refusing paying money for cheats, and started thinking of my own reputation hack. I've came up with this;

 

1- You open any xxxxx.sav file with your HEX editor. I personally use HEX Editor Neo's free version.

 

2- Now we search for the desired character's Engine name. The engine name is the name of a character that has been appointed to it by the developers. Enginenames are like this;

"nMinaTangReputation"

now, the bolded things, the "n" and the "Reputation" thingy are absolutes for an engine name. Another enginename example would be nAlbatrossReputation or nSIEReputation.

 

3- So, when you search for that value, you'll come up with something like "nMinaTangReputation........."

Let's have a closer look to those dots. As you can see, there are nine dots. The fifth dot and the nineth dot have values, the other dots are valued 00 hexadecimally, therefore useless. But their uselessness are protected by the engine, so if you try to change those values, you **** your savegame up.

 

 

Let's say the Reputation value of Mina Tang is 9. This means she's "Trusted". In your hex editor, it will look like this;

 

					  1   2   3   4   5   6   7   8   9 | The number of dots
				  .   .   .   .   .   .   .   .   .  | the dots
				  00  00  00  00  09  00  00  00  12 | the hexadecimal meaning of the dots

 

The fifth dot is hexadecimally your reputation amount. The last dot is always valued at 12. I don't know what 12 means, but it's always like that, I guess that's about the engine itself. Anyway, you can edit the fifth dot's hexadecimal value to your desired amount of reputation. 1-9 go straight and appear straight in game, but when you write 10 in the hexadecimal meaning box, it appears as 16 in game. The person you've written 10 in his/her box has the reputation value "Friendship" with you, the maximum level in the game.

 

BUG TESTS AND MUMBO JUMBO

During the test, I used the savegame of a Safehouse save just before the last mission, "Infiltrating the Alpha Protocol". Now, before editing, SIE's reputation was 0. Like I said, I've said wrong things. So I edited this to be 9. I used the safehouse door to get to the last mission, chose SIE as my handler, and voila. Everything went normal, I've got the "Size Matters II" perk in the beginning of the level, and I've seen SIE's famous "Savage Love" scene.

 

So, this is working as desired.

 

PROOF

proofofconcept.png

 

 

Legal ****: I've tested this many times, but I can't guarantee your savegame's safety entirely, due to you. So if you do something wrong, please don't come here and swear at me.

Edited by dogukan
Link to comment
Share on other sites

10 appears in game as 16 because 10 in hexadecimal is 16. If you want 10, the value should be 'c,' I believe.

Edited by Oblarg

"The universe is a yawning chasm, filled with emptiness and the puerile meanderings of sentience..." - Ulyaoth

 

"It is all that is left unsaid upon which tragedies are built." - Kreia

 

"I thought this forum was for Speculation & Discussion, not Speculation & Calling People Trolls." - lord of flies

Link to comment
Share on other sites

Scrolling through the file I found a bunch of entries which I believe are vendors, but there's no immediate way of telling how to activate them. More interesting are entries for GameStop and GameCrazy, leading me to think perhaps these items could be brought up in the game somehow, with the right data manipulation, but as I said I've no clue which arcane number-letter combinations will do this.

 

Anyone have any thoughts? It has to be some sort of numerical switch, but I have no idea what switch to flip.

Link to comment
Share on other sites

10 appears in game as 16 because 10 in hexadecimal is 16. If you want 10, the value should be 'c,' I believe.

 

'C' is for '12', 'A' is for '10' :brows: It goes like this in hexadecimal : 1, 2,3,4,5,6,7,8,9,A,B,C,D,E,F

 

Yeah, I know. I have no clue why I said 'C,' looking back.

"The universe is a yawning chasm, filled with emptiness and the puerile meanderings of sentience..." - Ulyaoth

 

"It is all that is left unsaid upon which tragedies are built." - Kreia

 

"I thought this forum was for Speculation & Discussion, not Speculation & Calling People Trolls." - lord of flies

Link to comment
Share on other sites

well, I realized that lots of things are based on those "dots" right now. skills use them too, aswell as perks. I wish we could reverse engineer the game, so we would have a total definition of what a parameter is good for. I thought this reputation hack was a real breakthrough, but now I realize it's only a small step. there are people that actually have an idea about reverse engineering / programming, I think they should take a look into the savegames. I mean, if the greedy bastards in the CH can release a save editor, so can we. plus, this is a tradition for obsidian games. every obsidian game has a save editor - why not AP?

Link to comment
Share on other sites

I've messed with savegame editing a bit and I'll throw my 2 cents in. The game will crash if you mess with the wrong value, or add an extra byte in anywhere, so be careful and you should probably back up your save file in case you make a mistake. It's usually easier to start over than to find where you messed something up.

 

Data values are in hex, meaning a numberset going from 0 to F as was explained above. You can use the Windows calculator to freely convert between decimal and hex. The largest single value a byte can hold is FF, or 255 in decimal, and there are 4 bytes, making the maximum possible value 2^32/2, or about +/- 2 billion because the values are signed. I'll spare you more pointless detail, if you're really curious take a digital systems class.

 

Variables in the save file seem to be laid out like this:

Variable name, null byte, 4 byte data value, 4 byte data value.

 

The second data value is probably some kind of ID, as it generally increases from variable to variable and changing it crashes the game. The first data value is what the game actually reads for a given variable.

 

When editing savegame variables, only change bytes 2-5 after the name of the variable. Changing anything else will probably crash the game on loading.

In other words, the bolded range here: N_SOME_VARIABLE_NAME.00.00.00.00.01.00.00.00.12

 

Negative numbers count backwards from FF.FF.FF.FF (which is probably -1 but I'm not going to check), so -6 would be FF.FF.FF.FA or something close to that. The only value that will probably go above 255 and therefore take up more than one byte will be money; you can change to 00.FF.FF.FF which will translate to about $2,000,000, and that should be more than enough to buy everything you could ever want. Also, you can set health as high as you want and it won't go back down until you level up or change areas. Just be sure you don't accidentally set your health to a negative number or crazy stuff could happen.

 

While it's technically possible to do so, I don't recommend trying to do hex editing in notepad. Get a hex editing program; they have a million and one day to day uses. My hex editor of choice is XVI32 because it's free.

Link to comment
Share on other sites

greetings,

I appreciate your help greatly. you can fill in any details that I lack in knowledge. Although I currently don't have AP installed, I can get it soon. perhaps you could work something out with my reputation hack? like a hack compilation or something, I don't know. by the way, right now I use HXD Hex editor, it's free and has no limitations, plus it has the same features with HHD.

Link to comment
Share on other sites

Just thought this was worth mentioning. If you change a value in the core of the body of hex and it changes the character for . on the side, the game functions just fine so long as you edited in an appropriate value in the appropriate area in the body of the hex.

 

So don't stress if you change the series of periods on the right when hex editing.

Link to comment
Share on other sites

  • 3 months later...

Hello Hello

 

So Firstly Much Obliged for this , good thinking.

 

However - I can't seem to Alter Sis Reputation at all.

She doesn't come up under the same handle as everyone else.

Her "SisReputation" isn't even in the file.

 

Also - found out that if you do Alter someone to 16 (regardless who) when you loose rep you'll end up loosing 6

even when I did something they like I still Lost. I've tested this a few times.

 

Lastly - I can confirm that so long as you stick to the appropriate values you can edit the other 00 values

though only within those 9 values.

 

I was mucking around with the Game's Binaries and accidentally forced the game to use the dying sound

for every attack. Thought it was a glitch at first but was able to reproduce it lol

 

Luckily I remembered the Changes I made.

 

(( p.s. Love the Hex editor you use ))

Link to comment
Share on other sites

  • 4 weeks later...

mate,

 

sorry for the late reply. I'm glad you find it useful. the thing is, I don't know why can't you se nSISReputation parameter. have you encountered her before? the save file only keeps record of the characters you've encountered and/or spoke before.

 

cheerio,

-dogukan.

Edited by dogukan
Link to comment
Share on other sites

  • 1 year later...

I'm putting this here mostly for my own benefit so I don't have to figure it out every time I alter reputations due to reading comprehension problems.

As Zoraptor said, to change the rep to negative you have to change columns 2-4 to FF, and the fifth column to anything from FF (-1 rep) to F6 (-10 rep). Using Sis' reputation as an example, for -10 rep this would be

00 FF FF FF F6 00 00 00 12

Link to comment
Share on other sites

  • 1 month later...

i know this topic is quite old, but i fell into this and my interest was drawn. so i investigated and am writing a simple java-based savegame editor at the moment.

what i found out so far: there are some variables that have 3 byte of data (e.g. fFastestInfiltration), giving the hint of floating-point data. also, there are many variables starting with a 'b' - i think those are boolean. hope i can implement that :-)

 

if some of you are interested, reply to this...

Link to comment
Share on other sites

  • 3 months later...

i know this topic is quite old, but i fell into this and my interest was drawn. so i investigated and am writing a simple java-based savegame editor at the moment.

what i found out so far: there are some variables that have 3 byte of data (e.g. fFastestInfiltration), giving the hint of floating-point data. also, there are many variables starting with a 'b' - i think those are boolean. hope i can implement that :-)

 

if some of you are interested, reply to this...

 

It does seem interesting. Though if I did have to choose I would take something that fixed the broken hacking mini game. ^^

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...