Menu

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.

Show posts Menu

Messages - Dark_Phantom

#1
Hello there!

One of my big projects recently has been to try to document some of the bonuses in BF1 and get a much clearer idea of what they do and possibly patch one of the cut bonuses, Surplus Supplies.
In my research, I was trying to figure out what Elite Training exactly does.  I don't have a complete answer, but I have a much better one than I did before, and can confirm that it does work.  The reason it is disputed is because it is tuned so low that it may seem negligible.  I posted this in the GT server but here is a more permanent and visible home for it.
The chunk of code I identified is this.  I've not ran the function all the way down to the nitty gritty but here's the gist:
Code (cpp) Select
                    /* Is Elite Training Selected? */
      if (*(char *)(&mActiveBonus + local_cc) < '\0') {
        ...
        CombatUtil::SetAISkill(4,0);
       ...
      }


If Elite Training was selected, it runs the function CombatUtil::SetAISkill(4,0).  Tracing this function down, it does some calculations which boil down to this:

team1difficulty = currentSkillLevel + 4
team2difficulty = currentSkillLevel + 0


CombatUtil::SetAIAimValues() then runs and detects the difficulty levels (set through global variables) and sets a bunch of variables like weapon spread/yaw/damping, whatever all that means other than "their aiming sucks less if the difficulty is higher".  (You can see this behavior in SPTest AI cam, the AI can be looking at you and then practically shoot sideways on lower difficulties)

This is not the only influence on AI behavior, but as far as Elite Training is concerned, this seems to be the impact, although it's quite possible that I've missed more stuff in the AIUtil/CombatUtil functionality.  The way the game calls bonuses is extremely haphazard lol.

As a requested test, I changed the value at 1841e8 in the SWBFSpy exe (which is currently 6A 04 in hex) and modified the 04 to another value.  In this case, I picked 20 in hex (which is actually 32).  The easiest way to select the bonus is to play Birth of the Rebellion and pick any map.  Your AI should perform much better than previously, and in the couple of battles I tried (on Hard!), they won the battle by themselves and it wasn't really close.

My research is mainly conducted using Ghidra.  Let me know what you think.
#2
SWBF1 Modding / Re: BFbuilder pro exe needed
April 17, 2024, 04:30:27 AM
I think you're going to have more problems past this using Wine.  I'll see what I can dig up but I don't think that is going to solve all the problems with the setup.
#3
SWBF1 Modding / Re: BFbuilder pro exe needed
April 16, 2024, 01:02:46 PM
Is there a reason you'd use this instead of the HTA?

This also has improvements over the first one (also an HTA):
https://www.swbfgamers.com/index.php?action=downloads;sa=view;down=1519
#4
Hey, I did see your comment on the video but I haven't had much chance to reply.
The Bothan Spy is available through here: http://www.secretsociety.com/forum/downloads/Psych0%20Projects/Maps/ChainIsle/
DataChainisle I believe has the Bothan Spy with a higher resolution.

That iso itself I never put out there.  It was a Jampack Demo that I will have to look up and get back to you.  Volume 13 sticks out in my mind.
If I can't find a downloadable version, I may have to try to recreate it.  I just did changes through a hex editor to remove some "hide this field" code.

Hovernaut and MTT both exist in the stock game assets but I believe the Hovernaut has collision issues.
#5
Forum News and Forum Rules / Configuration Change
March 28, 2024, 09:38:14 AM
Hello there,

I'm working to update some settings and the first changes have been made.  Two issues seem to be remedied:
1.) Initial loads of SWBFGamers result in a plaintext version of the site
2.) Images that were loaded from unsecure pages were broken.  The site now caches them and shows them to you.  This should fix a lot of broken images.

Let me know if anything seems off or is broken by this change.  Thanks.
#6
https://github.com/phantom567459/SoundFMVextractor/releases/tag/1.1

I think I have the French VO files (and German and Japanese) but have never actually tried to compile them into the main game.  It's something I can look into but I've got a lot on my plate at the moment.
#7
Welcome Center / Re: Just joined......kinda
February 23, 2024, 06:04:15 AM
I've started looking at the site again to see if I can get some of the goofy quirks ironed out.  I have probable solutions but am going to check with Led first.  One of those would be to allow unsecure image links to populate correctly, which seems to be the issue after I looked at your profile settings.
#8
The original coded limit was 12.  Assuming they use the console code, that would be the limit.

The people that Pandemic farmed the PC spawn screen out made it only support 5 because that was what was on every map.

If you break the PC Spawn Select as I've noted maybe in the Tutorials section (requires hex editing the exe), you can have up to the original designed limit of 12 with various issues that come from poor memory allocations on the screen.
#9
I got it munged but not in a way ZE can read it - only ingame.  It didn't crash after a long time of running it but I was really trying to find the source of the crash.
#10
SWBF1 Modding / Re: lua4dec - Lua 4.0 Decompiler
February 11, 2024, 01:30:51 PM
Hey Metalkiller! This is a great project. I doubt I have implemented anywhere near as much as you but if there's anything you can glean from my bad implementation of bytecode parsing, go ahead:
https://github.com/phantom567459/BF1LuaDC/blob/master/LuaDC1/Program.cs

I'll take a look in the near future and see if I can get some of the more obscure implementations documented and maybe fork your code instead to go further back in the process. I thought I tried Lua4Dec at one point but maybe I need to try again.  I know my project is a little bit different but tries to target the bytecode more directly for BF1

Thanks!
#11
Hmm, very weird. If I get some time tomorrow evening I'll toy with jt.
#12
Another option, as long as you're not using foliage, is to use BF2's munger (TerrainMunge.exe) to munge the terrain for BF1.  It sounds crazy but the BF2 version is actually not different from the first one except for foliage optimizations so you should be able to compile the original terrain file without hex editing.
(To do this quickly, rename your TerrainMunge in ToolsFL, put BF2's TerrainMunge in there, clean and munge your project.  After the project is done, you may want to swap it back because of foliage support.)
#13
Yeah as far as I know the only way to host a dedicated server is to have a physical Xbox (or possibly XEMU on your PC) to run a full version of the game and press the button in options when creating a game to run a dedicated server.
There is no specific software for it because it used Xbox Live, not Gamespy.
#14
I'm going to recommend you look at other projects first before digging too far into your quest.  LibSWBF2 is a good way to start.  For sounds and cutscenes, I have a project called SoundFMVExtractor that can rip out all sounds and cutscenes from both games.  Both are hosted on Github.

The reason there's dependencies on DirectX is the fact that the images are compiled in a DX compatible format.  It shouldn't dissuade you since there's plenty of resources but just making sure you know why.

And just to be pedantic, SWBF1 and 2 are NOT the same engine as previous Pandemic games, despite popular belief.  The same style is there but a lot of it was written anew for the BF games, and mungers were used to convert from the old MSH (TCW and others) format to the new SWBF compatible formats.  Also some of the same people working on it and some reused libraries mean there are similarities but they aren't the same.

Good luck!
#15

Basically here we can see that end_weap_tripwire does work in the retail game.  The only thing that is needed is to make sure you have the tripwire asset from the END world folder, and also the animation files (zafbin/zaabin).

You will need to edit the end_weap_tripwire.msh file in XSI or Blender to remove the collision that has been set up - it seems that breaks it in the retail version (only... strangely enough).  The munger will generate the correct collision.

That's it!  I wish the trap class got more usage in mods but 20 years later, it's probably too little, too late.

A side note: Units and vehicles both DO trigger traps.  The difference seems to be the RayTriggerMinSpeed modifier.  The only other traps in the game are the tree smashers on Endor and the also unused log trap.