Author Topic: Updates for Outpost 2 1.3.7  (Read 39147 times)

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #25 on: February 07, 2018, 05:12:06 AM »
Quote
What happens if I immediately click on multiplayer again after ending a match and cleanup is in process? Or what happens if I try to create a new match while NetHelper is still initializing? I think it is a lot cleaner to handle on opening the program and on program closing as is right now. Although I'd certainly defer tp what Arklon prefers here.
Well for  now it sounds like the player would have to wait about 3 minutes after exiting multiplayer before returning to the main menu  :P

Clearly not a very workable solution.

My expectation was the cleanup code would only take a fraction of a second to run.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #26 on: February 24, 2018, 03:11:10 PM »
I uploaded 5 more scenarios today. Sort of the selfish include since they were my scenarios. I think there may be one more scenario to toss in by onehand. Besides that, the final task for me is editing the version info resource for all the existing dlls and the .exe to be part of the 1.3.7 package. Resource Hacker has been a great tool, but it only allows editing one file at a time. I'm going to look around for a bulk resource edit tool if such a thing exists. If anyone has a suggestion for such a tool, it would be appreciated.

Thanks,
Brett

Commit Message

Outpost 2: Add 5 more scenarios to the game
 
 - Added scenario Rising From the Ashes (Colony Game, Starship), by Brett208
 - Added scenario Campaign - Ply, Pursued, Ep 1 - Evac Under Fire (Colony Game), by Brett208
 - Added scenario Campaign - Ply, Pursued, Ep 2 - On the Run (Colony Game), by Brett208
 - Added scenario Campaign - Ply, Pursued, Ep 3 - Rescue Escort (Colony Game), by Brett208
 - Added scenario Rescue Escort (2P, Convoy), by Brett208 (Under Land Rush Section)

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #27 on: February 24, 2018, 08:28:16 PM »
Why would the existing DLLs need to be updated? I think that would be a bad practice to update existing DLLs for every release. I'm assuming versions strings got added to the meta data at some point?

I know in the past some meta data was updated for them. I also remember undoing a bunch of it for a release years ago.

I don't mind so much helpful additions, such as a description of the level provided by a DLL. I really want to stay away from game version numbers in those messages though.



It seems Resource Hacker can take command line arguments. Check -action for add and extract for version resources. You can probably hack something together from that.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #28 on: February 25, 2018, 01:55:54 PM »
I noticed the product version of DLLs had been updated to version 1.3.0.6. Although reviewing some more dlls, it seems all dlls' resources were not updated so it was partially done. I'm good either way, just trying to be consistent with what has been going on in previous releases.

-Brett

Revision 1100:

- Updated version strings throughout the Outpost2 executable and DLL addons.
- Added NetHelper to OP2 package.
- Updated OP2 executable icon to include a much more modern game icon.


Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #29 on: February 26, 2018, 12:11:57 AM »
For the sake a future maintainability, I would recommend stripping out such version numbers if they're not needed. Less to update for future versions. Plus, extensions are not always updated on the same cycle as the game, so it's questionable to use the game package version for them.


Minor point: To ease debugging with OllyDbg, perhaps upon release we should create a revision with the icon stripped. The change in file size invalidates the OllyDbg comments. The icon can be immediately re-added in a subsequent revision. I currently have a copy of the repo pegged at revision r915, which was the last update to the game download before the icon update in revision r1100.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #30 on: February 26, 2018, 04:05:53 PM »
Below is the current Version Info resource script for op2ext.dll as an example.

Quote
Plus, extensions are not always updated on the same cycle as the game, so it's questionable to use the game package version for them.

To be clear here, I was just planning to update the product version to 1.3.0.7 and leave the file version whatever version that particular dll/exe was on in its release cycle. So the file version would represent the individual extension's release while the product version would represent its inclusion in the overall Outpost 2 download. Again though, I was just following what I thought was already halfway happening.

If we are wanting to not update the resources each release, what do we think of removing the 2 lines referring to product version from the Resource Script? This way, there would be not question about updating them in the future. Only problem is this would probably affect OllyDbg again on Outpost2.exe. Maybe we just leave Outpost2.exe alone and change the others. I can update the PublishingReadMe to reflect this.

Do we maintain notes on any of the dlls in Outpost 2 for OllyDbg, or is it just Outpost2.exe that we are concerned about?

Code: [Select]
1 VERSIONINFO
FILEVERSION 2,0,0,0
PRODUCTVERSION 1,3,0,7
FILEOS 0x40004
FILETYPE 0x2
{
BLOCK "StringFileInfo"
{
BLOCK "040904b0"
{
VALUE "CompanyName", "The Outpost Universe"
VALUE "FileDescription", "Extends Outpost 2 with new functionality"
VALUE "FileVersion", "2.0.0.0"
VALUE "InternalName", "op2ext.dll"
VALUE "LegalCopyright", "Copyright (C) 2017"
VALUE "OriginalFilename", "op2ext.dll"
VALUE "ProductName", "Outpost 2"
VALUE "ProductVersion", "1.3.0.7"
}
}

BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409 0x04B0 
}
}

Quote
Minor point: To ease debugging with OllyDbg, perhaps upon release we should create a revision with the icon stripped. The change in file size invalidates the OllyDbg comments. The icon can be immediately re-added in a subsequent revision. I currently have a copy of the repo pegged at revision r915, which was the last update to the game download before the icon update in revision r1100.

Yeah, keeping OllyDbg relevant is important. I'm guessing we would need to push the old icon back into the resource in addition to removing the new icon to make sure everything lines up properly. Then make sure it compiles exactly the same way it did on the original file. Also, if I strip the ProductVersion from Outpost2.exe, I'm guessing this would cause the same problem as changing the icon did.

Is there an alternate solution that would allow us to account for embedded resource changes when loading OllyDbg?

Hooman, if you are comfortable with it, I will just notify you when I'm ready to push the final version of the game. Then you could mess with Outpost2.exe to get OllyDbg relevant, tag the code, then restore Outpost2 in the main branch. Then we can proced with tagging the actual release version. I'm not familiar enough with OllyDbg to trust myself in the matter without some help.

Thanks,
Brett

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #31 on: February 28, 2018, 09:12:37 AM »
Yeah, I'm thinking just remove those 2 lines.

If this is for op2ext, then it should have no impact on the layout of Outpost2.exe. I don't expect the version info will create problems with OllyDbg.

I'm not sure if we have much in the way of comments for the DLLs. Maybe a bit for the shell DLL. I've never noticed issues with comments there being overwritten, but then I might not have noticed. The vast majority of the comments are for Outpost2.exe.



For now make sure the icon replacement process is documented.

I'd say worry about getting a proper release done first. After a new release is rolled out and tagged, the development branch can receive a quick rollback + redo of the icon. I suppose we could tag the rollback too, though I don't know if that's strictly necessary.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #32 on: March 02, 2018, 01:37:01 PM »
Hooman,

I attached a modified version of Outpost2.exe. It contains the original game icon (pulled from tagged release 1.3.5 of the game). Also, the product version is set as 0.0.0.0.

I am hoping that we can modify the version info digits without affecting ollyDbg as long as we are changing out one for one characters. IE moving the file version from 1.3.0.6 to 1.3.0.7. If this works, the limit of course would be we couldn't make a 1.3.0.11 version someday.

Also in the zip file is a .res containing the icon information that I used to un-update Outpost2.exe. So, if this works with Ollydbg, all one would have to do is replace the current icon using the supplied .res file and then OllyDbg comments will work again. We can place the .res file in the repository as well, although it is easy to generate using Resource Hacker.

I checked and the file size of the recompiled executable appears the same as version 1.3.0.5.

Please test against the ollyDbg comments and let me know how it goes. If it works, I can throw a note on how to reformat it in the PublishingReadMe.txt for future reference.

-Brett

----------------------
EDIT: Attachment removed since it tested correctly.
« Last Edit: March 15, 2018, 12:06:17 PM by Vagabond »

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #33 on: March 14, 2018, 10:56:21 PM »
Ok, I finally got around to testing this. It works. The OllyDbg user comments are preserved.

We can probably remove the download from your post. Based on the number of downloads, it may be causing confusion.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #34 on: March 15, 2018, 12:09:44 PM »
Hooman,

Thanks for testing. Glad to hear it worked. I think this weekend I should have time to upload the resource file with some text on how to use it to restore OllyDbg comments to the SVN repository. I deleted the zip of the executable as you suggested.

I've been pretty busy on a different project plus work has been very busy as well. Once the other non Outpost project is done I'll be swinging back to this.

-Brett

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #35 on: April 01, 2018, 12:47:10 PM »
Finally updated the SVN repository to include the resource file containing the original Outpost 2 icon and a readme on what to do with it and why it exists. See below for ReadMe.

Just to verify, what we want to have happen is:
  • Tag new release of Outpost 2.
  • Update repository to include the current version of Outpost2.exe with the old icon for OllyDbg comment restoration.
  • Update the repository again to include Outpost2.exe with the new icon again for future development.

The other option would be having anyone who wishes to use OllyDbg just modify Outpost2.exe manually using the resource file. If above is what we want, I'll update PublishingReadMe.txt to include these steps. I think we are basically ready for the release besides me looking things over a few more times.

-Brett



Restoring OllyDbg Coments on Outpost 2.txt's Contents

RESTORING OLLYDBG COMMENTS ON OUTPOST2.EXE
------------------------------------------

Starting with Outpost 2 version 1.3.6, the embedded game icon was updated for a more modern feel. This breaks compatibility with important OllyDbg notes on internal Outpost 2 code. The newer icon takes up more memory than the original and keeps the notes from properly loading in OllyDbg.

However, the OllyDbg notes may still be used if the size of Outpost 2's resources are returned to match the exact same size as version 1.3.5 and earlier. This is easy to accomplish using Resource Hacker (http://www.angusj.com/resourcehacker/). Other tools may work as well, but are not tested.

To restore the Outpost 2 executable for use with the OllyDbg notes:

1. Open Outpost2.exe with OllyDbg.
2. Right click on Icon and select 'Replace Icon ...'
3. Click 'Open file with new icon...'
4. Select 'Outpost 2 Original Icon.res' and click 'Open'.
5. Click 'Replace'.
6. Clik File -> Save

A new file call Outpost2_original.exe will be created. Feel free to delete this as the original file may be retrieved from the repository at any time.

Additionally, all resource strings including the version_info must remain the exact same size as they existed in version 1.3.5 or earlier. Individual characters may be changed, such as changing 1.3.0.6 to read 1.3.0.7 but only if the length of the string remains the same.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #36 on: April 08, 2018, 03:27:02 PM »
Outpost 2 version 1.3.7 is ready!

It is currently located at: https://svn.outpostuniverse.org:8443/!/#outpost2/view/head/GameDownload/Outpost2/trunk

I have played through all the new scenarios and tested op2ext back when it was in development. Today, I ensured that op2ext is properly loading dlls and all new scenarios load properly on Windows 10 64Bit.

I don't know if anyone else wants to provide testing, which wouldn't be a bad idea. Otherwise, I don't have permissions to post on the website (and I'm not really interested in having it). Once someone posts, I'll tag the SVN repository with the new version.



Outpost 2 Version 1.3.7 Changelog:

Core Outpost 2 Updates
  • Updated op2ext.dll to version 2.0.0.
    • Allows Outpost 2 to load vol files with any name added to the game directory.
    • Allows loading .ini properties into op2ext.dll that exceed 1024 characters.
    • Provides bug fixes, security improvements, and improved error reporting to op2ext.dll.
  • Restructured vol file organization. Now art.vol, maps.vol, and tech.vol.
  • Replaced Outpost 2 specific wells (tile sets) with standard BMP files.

Scenario Updates
  • Updated tech tree dtek_e.txt so Pre Release Eden Demo can be beaten.
  • Removed Punwick Junction (four players, Last One Standing) DLL.
  • Updated survtech.txt, the tech tree used by Forsaken World (4P, SRV), by sirbomber.
  • Added scenario Bomber's Big Blast (4P, LoS), sirbomber.
  • Added scenario Hidden Treasure (4P, LoS), Flashy.
  • Added scenario Caught in the Crossfire (4P, SRV), Mcshay.
  • Added scenario Darkest Hour (4P, SRV), sirbomber.
  • Added scenario Danger Zone (5P, SRV), Flashy.
  • Added scenario Fractured Alliance (5P, SRV), by sirbomber.
  • Added scenario Judgement Day (6P, SRV), by sirbomber.
  • Added scenario Outcaster's Starship (Colony Game, Starship), by Lord of Pain, ECC, & Flashy.
  • Added scenario Rising From the Ashes (Colony Game, Starship), by Brett208
  • Added scenario Campaign - Ply, Pursued, Ep 1 - Evac Under Fire (Colony Game), by Brett208
  • Added scenario Campaign - Ply, Pursued, Ep 2 - On the Run (Colony Game), by Brett208
  • Added scenario Campaign - Ply, Pursued, Ep 3 - Rescue Escort (Colony Game), by Brett208
  • Added scenario Rescue Escort (2P, Convoy), by Brett208 (Under Land Rush Section)



OP2 Mapper Compatibility

When using the OP2Mapper with Outpost 2 version 1.3.7, you will notice the following two issues:

1. A fatal error is reporting on opening the mapper because the file OP2_ART cannot be read. Additionally maps cannot be opened without crashing the program. This is caused by relocating the file OP2_ART to art.vol. OP2Mapper can find the file properly using the steps below.

2. When opening maps, the 1 pixel per tile minimap will be readable, but the colors will be off. Saving the minimap to disk will suffer the same color problem. This problem is caused by updating the WELL files to use a standardized bitmap encoding instead of the Outpost 2 specific encoding. This problem is currently not fixable, but the mapper still functions with the visual artifact. I feel like the tradeoff is worth it, because now you can open and edit the WELL files with any image editor and change the in game tiles. Also, future programmers can access the WELL files without worrying about the custom bitmap implementation.

Make OP2Mapper.exe work with Outpost 2 version 1.3.7:
  • Open OP2Mapper.exe
  • Click View -> Options
  • Locate the following art.vol file from your Outpost 2 version 1.3.7 copy
  • Click the + sign next to 'List of additional VOLs to look at when locating files:'
  • Add the absolute path to art.vol and press okay.
  • Restart OP2Mapper and enjoy!

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1269
Re: Updates for Outpost 2 1.3.7
« Reply #37 on: April 08, 2018, 06:31:01 PM »
I've been testing some minor changes to NetHelper to maybe avoid the 3 minute long shutdown times again. What I've done should help, but I've been meaning to dig into the miniupnpc code to see if I can make a version of unforward that doesn't wait for an ACK (libnatpmp didn't need a modification in order for me to do that).

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #38 on: April 09, 2018, 02:24:54 PM »
Arklon,

Approximately how long do you need before it is ready? I think it makes more sense to delay releasing 1.3.7 until you are ready unless it is going to be a long time.

-Brett

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #39 on: April 10, 2018, 05:50:50 AM »
Good job putting this together. That was a lot of work.


I suppose I should try to give things a quick run through on Linux, though I don't expect any problems with the game.

The map editor problems had slipped my mind. Actually, I didn't even know about the OP2_ART issue. Would be nice to get things fixed, though it doesn't seem to be a show stopper.

It would be nice to include Arklon's update, though you're right about not wanting to delay a release for too long.


I'm thinking maybe a few days for review or updates, including the weekend, maybe release the following weekend? How do people feel about a target date of April 21st?

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2352
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Updates for Outpost 2 1.3.7
« Reply #40 on: April 10, 2018, 08:10:13 PM »
Sounds like a plan to me.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #41 on: April 11, 2018, 04:23:07 AM »
Hooman,

This all sounds good to me. If you see anything that isn't Wine compatible, please let me know. If it is reasonable to fix, I'd like to keep everything working via Wine.

For the map editor, as long as you specify to look for art.vol in the options, everything will work fine. I should probably throw this in the wiki under map editing section so people have a place to reference it.

I knew OP2_ART created an issue with the mapper, but I don't think I mentioned it until a couple of days ago, so that is my bust.

Part of the reason I'm maintaining OP2Utility is so that it is a viable solution for dealing with vol files in a future mapper project, for Leeor to use in his or anyone else which is probably the long term solution here.

Thanks,
-Brett

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1269
Re: Updates for Outpost 2 1.3.7
« Reply #42 on: April 18, 2018, 08:53:54 PM »
Arklon,

Approximately how long do you need before it is ready? I think it makes more sense to delay releasing 1.3.7 until you are ready unless it is going to be a long time.

-Brett

At this rate, about the combined lifespans of several universes' worth of time or so.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #43 on: April 25, 2018, 11:00:54 AM »
Well we passed the target date.

Hooman, how did it all run on Linux via Wine?

Does an admin for the site want to get it posted?

Thanks,
Brett

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #44 on: April 25, 2018, 10:30:33 PM »
Yes, I've gotten a bit behind with forum duties, though I have been very aware of the passing target date.

I suppose in the back of my mind, I'm dreading some kind of complicated release process, but really, it's just zipping up the GameDownload trunk folder from SVN, isn't it. All the rest of the checklist, you've already done.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #45 on: April 26, 2018, 12:19:15 PM »
Just to confirm, the most recent SVN update to the GameDownload trunk folder was on 2018-02-25, while your announcement about the next release being ready was made 2018-04-08. That's a little over a month gap. Were there any updates during that time period that were supposed to be included? I kind of had the sense there were some op2ext updates being worked on at some point, though checking git history on that project shows no changes since January.

I guess I had the sense the announcement was made after finishing some final feature, though perhaps it was made more after testing and a bit of time had passed to verify things?

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #46 on: April 26, 2018, 03:05:57 PM »
Hooman,

The dates you list make sense. I got distracted at the end of development on other projects. When I came back I was going to modify all the file resource version_infos to match the new release but you cautioned against that, so there were no changes. I did spend some time testing the new scenarios, but nothing came up in testing requiring committing. I was also working on testing the old icon for ollyDbg comment purposes, but that didn't require changes to the actual GameDownload trunk.

You are correct that it should just be zipping the trunk and adding it to the website. I wouldn't mind seeing some sort of changelog and ability to download older versions on our website someday.

After pushing to the website, we will need to follow up with tagging the SVN repo and pushing the OllyDbg friendly commit, etc.

Thanks,
-Brett

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Updates for Outpost 2 1.3.7
« Reply #47 on: April 29, 2018, 07:51:30 AM »
Ok, finally got this handled:
 - Quick Linux test, seems fine
 - Packaged new ZIP file
 - Virus scanned
 - Uploaded to site
 - Updated download link
 - Tagged SVN release
 - Restored old OP2 icon (for use with OllyDbg)

We still need an announcement in the News forum. Vagabond, you want to handle that? You're most familiar with the details of the update.

I guess that means we can create a new thread and start prepping for a 1.3.8 release. So far that entails restoring the new icon, and bumping the version number.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #48 on: April 30, 2018, 04:13:46 AM »
Hooman,

Thanks for the Linux test. I'll add scan for viruses to the release instructions as that is a great call. Glad you didn't find any or that would have been awkward.

I'll post the announcement shortly. I'll pull the download and make sure everything works on my Windows machine as well before posting. Just in case!

-Brett

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Updates for Outpost 2 1.3.7
« Reply #49 on: May 01, 2018, 06:19:37 AM »
Okay, I just finished restoring the release icon back on the repository. I also incremented the version number on Outpost2.exe resource version to 1.3.0.8. You can use this to distinguish a release build from a development build if the need ever arises. I also updated the release instructions to include scanning the folder for viruses before release. Thanks Hooman for fixing the typo in my ollyDbg instructions.

Restore the release icon to Outpost2.exe

 - Add the release icon as a resource file for future use (Outpost 2 New Icon.res).
 - Update Restoring OllyDbg Comments in Outpost 2.txt to include instructions for restoring the release icon.
 - Move version number of Outpost2.exe to 1.3.0.8 to allow distinguishing development builds from release builds.

Lastly, I updated the Wikipedia by moving all the custom scenarios out of custom and into their respective categories since they are now bundled with the game.

I haven't heard any complaints yet about the release, so that is a good sign...

-Brett