Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - MichaelBurge

Pages: 1 [2]
16
General / Re: How to reset Abram's quest state if you've messed it up
« on: January 01, 2016, 11:40:45 pm »
Could someone better explain how to get this save editor to work for a noob like me? I've got mainfile, main.cs and the exe in the same folder as my save but the exe crashes when I try to run it.

The instructions and program are a little thin - I stopped working on it as soon as I got the questline to continue, so that post is something of a quick braindump before I forgot everything. Thanks for giving it a try.

It's a command line program, so you'll need to use a command prompt to run it. It does currently crash if you leave off its command line argument. Try these instructions:

1. Open your Windows command prompt
2. Navigate to the directory holding your Underrail save using the 'cd' command. Use 'dir' to confirm that you're in the right place: You should see a file called 'global.dat' is there.
3. Copy the Main.exe into this directory with the 'global.dat' file
4. Run this on your command prompt:
Code: [Select]
Main.exe unpack < global.dat > unpacked.dat
5. Search for Abram-related strings like 'npc_abram_saidHeWantsEmbassyInfo' in the 'unpacked.dat' file. They should be grouped somewhat close together.
6. Using the hex editor on the 'unpacked.dat' file, change the 01 byte immediately to the right of each Abram-related string to a 00. Save the file.
7. Repack the file by running the following on your command prompt:
Code: [Select]
Main.exe pack < unpacked.dat > global.dat
8. Reload your save, and then talk to Abram.

If you still have trouble getting it to work, let me know which step is giving you problems. I could try moving some of these steps into the program.

17
General / Re: Where to find Acid Vials?
« on: January 01, 2016, 11:24:41 pm »
I'll answer my own question: The chemistry department in the Institute of Tchort has them.

18
General / Where to find Acid Vials?
« on: January 01, 2016, 11:05:50 pm »
I'm doing one of the Tchort quests where you need to test a chemical pistol. I'm having trouble finding a merchant that sells acid vials, and don't have the chemistry to craft them myself. What's a good place to get acid vials?

19
General / Re: Frag Grenades overpowered?
« on: January 01, 2016, 08:52:55 pm »
I believe they're completely absorbed by a high frequency energy shield. An enemy EMP grenade or sniper are far worse. And I think that Molotovs or EMP grenades give enemies the most trouble.

You could also try wearing some armor with a high damage threshold, since each point in threshold should block 5-7 points of damage in total(one for each shrapnel).

20
General / Breaking the Faceless Barricade?
« on: January 01, 2016, 11:09:58 am »
I was able to break the Faceless barricade using AoE Enrage, a 729 capacity high frequency shield, abusing zone transitions to heal/save/recharge, and using adrenaline/morphine before entering. However, they seemed to keep coming as I killed them. I got especially suspicious when I saw a couple coming from the drill area late into the fight.

Do the Faceless at the barricade keep respawning, or can you actually free Core City from them? Even if not, is there anything good to loot if you somehow keep them all occupied?

21
General / Re: How to reset Abram's quest state if you've messed it up
« on: December 29, 2015, 09:23:55 pm »
I didn't have to make any further corrections, and was able to complete all of Jack's quests optimally. If you've made a mistake further along in the questline, I imagine that there are a different set of flags. They seem to listed in the game file in the same order that the game set them, so that may help you find them.

I never met Jack in SGS, so if you've done that quest that could also be something to look at.

22
General / You should raise Underrail's price
« on: December 29, 2015, 07:33:01 pm »
This is such a great game - I've bought a couple copies for myself and friends, and I really hope you're successful with it. I think it's underpriced right now at $14 or $15: I've paid more for games that have not been given the attention to detail and love that this clearly has. I feel people who enjoy hardcore RPGs like this - that often require you to reload many times or plan out every little fight in detail - are going to be more price-insensitive than the usual gamer since they're looking for a good game above all else.

If you raised it to at least $20 and probably even $25, I don't think you'd drive too many people off and with the extra money you could make your next game even bigger. Then you could drop it to its current price during Steam sales or similar.

In any case, thanks for the great game!

23
General / Re: How to reset Abram's quest state if you've messed it up
« on: December 29, 2015, 06:50:59 pm »
Quote
Thanks for this, i made a thread asking if anyone was able to do this, hopefully it works, but if not no big deal.

It seems to be working: I made it to the Oculus without any trouble.

24
General / How to reset Abram's quest state if you've messed it up
« on: December 29, 2015, 01:03:40 am »
I accidentally told Abram that there were dogs in the Junkyard Embassy compound, but realized too late that this would cut me off from the questline. I didn't want to redo all of my progress because of that one mistake, so I cheated by editing one of my saves. It appears to work, so I thought I'd document what I did here in case anyone else finds it useful. Be sure to save a copy of your game before attempting anything like this.

I'm not sure I actually recommend doing this, but it's here if you're desperate. I'll note that I'm writing this immediately after noticing Abram pick up the change, but I haven't gone through the entire questline yet to see if there are any issues.

1. Quests often have  a simple 'yes/no' trigger  that tracks your dialogue options, whether you've killed people, where you've been, who you've talked to, etc. These are stored in your 'global.dat' file. This files consists of a 16-byte GUID that identifies the file as being Underrail-related, an 8-byte version marker, and then the gzip'ed output of serializing some internal game data structures. So you should remove the first 24 bytes and unzip the remainder(let's call this remainder the 'Unpacked File'). You can use the 'unpack' option on my program below[1] to do this step.

2. Notice some interesting strings in the resulting file with names like "npc_abram_saidHeWantsEmbassyInfo" or "npc_abram_toldHimEmbassyHasDogs" that all look relevant, next to some binary gibberish. I believe that these are set when the dialog files("Data/Dialogs/Characters/abram.udlg") are interpreted by the Underrail engine. You should only have flags in your save that the game has actually set, since it lazily creates them as needed. Your action here should be to review the Unpacked File for Abram-related flags using any text editor.

3. Underrail treats a missing flag as equivalent to being false. Observe that the byte immediately following all quest flag names has a value of 1. It will be significantly easier to change this value to a 0 than to attempt to remove the flag entirely. Using your hex editor of choice[2], locate and change all of these bytes to 0.

4. The Unpacked File needs to be packed again in order for Underrail to read it. Gzip it, and then prepend the 24 bytes that you removed in step 1. You can use the 'pack' option on my program below[1] to do this step. Then name it 'global.dat' and replace your original 'global.dat' with it.

[1]
Binary: https://github.com/MichaelBurge/underrail-unpacker/releases

Usage:
Main.exe unpack < original_global.dat > unpacked.dat
Main.exe pack < unpacked.dat > new_global.dat

Here's an example of me building this, unpacking one of my example saves, repacking it, and then confirming that the files match. You'll want to have 'make', 'csc'(the C# compiler), and 'md5sum' in your PATH to follow along.
Code: [Select]
C:\Users\mike2_000\Desktop\repos\underrail-unpacker>make
csc.exe Main.cs
Microsoft (R) Visual C# Compiler version 12.0.21005.1
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.


>Main.exe unpack < "C:\Users\mike2_000\Documents\My Games\Underrail\Saves\a\global.dat" > unpacked.dat
>Main.exe pack < unpacked.dat > packed.dat

>md5sum "C:\Users\mike2_000\Documents\My Games\Underrail\Saves\a\global.dat" packed.dat
\e12ab7cfcdde5281b93ab502bb197dc0 *C:\\Users\\mike2_000\\Documents\\My Games\\Underrail\\Saves\\a\\global.dat
e12ab7cfcdde5281b93ab502bb197dc0 *packed.dat

[2] If you're on Windows, I used HxD to edit my Unpacked File:
http://mh-nexus.de/en/hxd/

25
Bugs / Re: Burrower Egg Crash Bug
« on: December 28, 2015, 05:03:04 pm »
I believe that this is the corresponding crash log, and that it happened on v1.0.0.5. I own the Steam version.

Code: [Select]
System.NullReferenceException: Object reference not set to an instance of an object.
   at b5f.b()
   at b5f.ny(TimeSpan A_0, TimeSpan A_1)
   at b4w.g(TimeSpan A_0, TimeSpan A_1)
   at bpy.a(TimeSpan A_0, TimeSpan A_1)
   at ako.a(akk A_0)
   at a6n.g5(akk A_0)
   at al5.g5(akk A_0)
   at d7.a(akk A_0)
   at aa2.Update(GameTime gameTime)
   at gr.Update(GameTime gameTime)
   at Microsoft.Xna.Framework.Game.Tick()
   at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
   at Microsoft.Xna.Framework.GameHost.OnIdle()
   at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
   at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
   at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at Microsoft.Xna.Framework.WindowsGameHost.Run()
   at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
   at bcm.a(String[] A_0)

26
Bugs / Port Zenith Constant Loading Bug
« on: December 28, 2015, 06:03:08 am »
There is a non-deterministic bug in Port Zenith that me and several others encountered in Port Zenith in the warehouse map that contains the shipment of shield emitters that you are supposed to steal. If you are spotted while sneaking in stealth or carrying Bob's armor and keycard(when the guards say their dialogue), often the cursor will change to the spinning hourglass loading symbol and you will be unable to advance or do anything, including reload the game.

27
Bugs / Burrower Egg Crash Bug
« on: December 28, 2015, 05:57:15 am »
Steps to replicate:

1.) In Camp Hathor, head north to the burrower's nest
2.) Let a burrower lay an egg.
3.) Kill the burrower and all spawn, but not the egg
4.) While the game is out-of-combat, charge a Cryokinesis to attack the egg
5.) If the egg hatches while the Cryokinesis projectile is heading towards it, the game will crash when it hits

28
Bugs / Zone Transition Exploit
« on: December 27, 2015, 12:26:40 am »
If you are struggling in a certain zone against certain enemies, there is a way that you can abuse the zone transitions to get a huge advantage. It goes like this:

1. Focus all of your power using every tool to kill a single enemy, but hang near a zone entrance
2. After killing the enemy, retreat into the next zone.
3. Recharge your shields, psi, health, grenades, etc.
4. Save
5. Go back into the zone with the enemies, and go to step 1 unless all enemies are dead.

This offers a couple advantages:
* They will remain with status effects when you next enter the area, so try to fear, fire, freeze, etc. them before you leave again.
* You can recharge everything you need in between each enemy
* You can save after killing each enemy
* You can apply buffs like food, morphine, adrenaline, etc. before initiating on each enemy.

And one disadavantage:
* It looks like you take a -10 penalty to initiative when you do this. I'm not sure if it's a byproduct of another mechanic or intended just for this.

Even with the disadvantage, this seems extremely powerful so I thought I'd report it in case it was unintended.

29
Suggestions / Keychain for Quest Items
« on: December 26, 2015, 06:26:04 pm »
Quest items, keys, keycards, etc. have no weight, so you can carry as many of them as you want. However, they do take up inventory slots which makes it harder to see at a glance the state of your inventory. I suggest either creating a separate tab(maybe call it your 'keychain') for quest items, allowing them to be hidden from view, or sorting them at the bottom of your inventory.

Pages: 1 [2]