Jump to content

Welcome to Obsidian Forum Community
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Photo

Alpha Protocol Reputation Hack


  • Please log in to reply
19 replies to this topic

#1
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 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

Posted Image


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, 02 September 2010 - 07:42 PM.


#2
Karl the Unfettered

Karl the Unfettered

    (2) Evoker

  • Members
  • 84 posts
How do you get negative rep points?

#3
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 posts
honestly, I have no idea. I think my project fell a little short there.

#4
Oblarg

Oblarg

    (7) Enchanter

  • Members
  • 878 posts
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, 02 September 2010 - 09:06 PM.


#5
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 posts
yes, I've tried that. but changing the value anything else than 0,1,2,3,4,5,6,7,8,9 makes the dot change to the correspondant number, and I haven't tried if that works.

#6
Karl the Unfettered

Karl the Unfettered

    (2) Evoker

  • Members
  • 84 posts
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.

#7
Sannom

Sannom

    (9) Sorcerer

  • Members
  • 1267 posts
  • Backer

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

#8
Oblarg

Oblarg

    (7) Enchanter

  • Members
  • 878 posts

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.

#9
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 posts
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?

#10
Zoraptor

Zoraptor

    (10) Necromancer

  • Members
  • 1599 posts
For negative reps it's probably just putting in FF FF FF F# (where hash is a hex value from F [gives -1] to 6 [gives -10]) in columns 2-5 from the original post.

#11
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 posts
a-ha. and the code for 10 relation is A0.

#12
Zoraptor

Zoraptor

    (10) Necromancer

  • Members
  • 1599 posts
0A, A0 is 160.

You can check values with the built in windows calculator which has a hexadecimal mode and can do simple dec <-> hex conversions.

#13
Xor42

Xor42

    (1) Prestidigitator

  • Members
  • 8 posts
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.

#14
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 posts
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.

#15
lJustAlexl

lJustAlexl

    (0) Nub

  • Members
  • 2 posts
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.

#16
m3rr

m3rr

    (0) Nub

  • Members
  • 2 posts
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 ))

#17
dogukan

dogukan

    (1) Prestidigitator

  • Members
  • 10 posts
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, 19 January 2011 - 03:52 AM.


#18
Charles_The_Grate

Charles_The_Grate

    (0) Nub

  • Members
  • 3 posts
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

#19
Gamewinner3

Gamewinner3

    (0) Nub

  • Members
  • 1 posts
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...

#20
Sosseres

Sosseres

    Grunt of the Obsidian Order

  • Members
  • 2 posts
  • Backer
  • Kickstarter Backer

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. ^^




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users