How to convert BF2 maps to BF1

Started by Delta-1035, March 09, 2016, 01:00:56 PM

Previous topic - Next topic
Hello everyone. I'm pretty sure I asked this before, but I just can't find the thread again.

This "how to" was made once by ggctuk\gistech  but it has been removed

http://www.swbfgamers.com/index.php?topic=1012.0

Any help? I'd like to give it a try.

March 09, 2016, 01:16:10 PM #1 Last Edit: March 09, 2016, 01:19:05 PM by Led
You might try to see if Sereja (active) or Sleepkiller (not active) has any advice.  They have done some of the better ports of SWBF2 maps.

One thing I do know is that all the collision for the SWBF2 map has to go into one collision object for SWBF1

Here is some more information

http://www.swbfgamers.com/index.php?topic=1156.0

Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

March 10, 2016, 12:35:28 AM #2 Last Edit: March 10, 2016, 12:59:50 AM by Gistech
If I'm remembering right, you would have to hex-edit the SWBF2 .msh files to use the right naming convention for collision (from "p_so_name#" to "collision#"). Some of this would be harder to do as the collision names sometimes are not long enough to change - you have two options after that. You can either open the .msh up in Mod Tool and rename them there, or you can extend the namespace for each mesh part (read my tutorial here for that: http://www.swbfgamers.com/index.php?topic=8185.0 )

So far, nobody has tried to convert the actual space maps from SWBF2. Those would be the trickiest to do as space doesn't function the same way as in SWBF2. I believe Napseeker found a way round that by having a small chance of spawning on the enemy cruiser, which should help when reinforcements get low. My way of doing it would be to have the hangar CPs capturable and have the shield generators turned into destructible CPs.
In Progress:
--Star Wars: Battlefront - Anniversary Edition (formerly Star Wars: Battlefront - Legacy Edition)
--Endor: Imperial Base

On Hold:
--Star Wars Battlefront: Elite Squadron For SWBF1

I've still got the original tutorial Gistech wrote from before it was removed. If he's ok with it I can repost it for you or send via PM.

This tutorial is more detailed but apparently incomplete:
http://www.swbfgamers.com/index.php?topic=4147

I don't think it is a problem to post something from GT, but we should try to find the original link and credit the original author.
Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

If memory serves the original author was Battlebelk.
In Progress:
--Star Wars: Battlefront - Anniversary Edition (formerly Star Wars: Battlefront - Legacy Edition)
--Endor: Imperial Base

On Hold:
--Star Wars Battlefront: Elite Squadron For SWBF1

Then that would be in the link I have posted in my initial response.   :cheers:
Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

March 10, 2016, 11:19:25 AM #7 Last Edit: March 10, 2016, 11:22:07 AM by Led
here is the post saved by Phobos


Okay, here's just a quick explanation on converting BF2 maps to BF1. Make your mod (for instance, Myg1). Copy over EVERYTHING from the BF2 world folder. Open the swbf2 terrain in hexeditor and change the byte with offset 4 from 16 to 15 (in hex field) and then look down until the first terrain texure tga, select and remove byte before name of texture. The picture below is a demonstration:



We're not done yet, however, and it's not that simple. Try loading it now and you'll notice that ZeroEditor still crashes. You need to open up the .LDX file in a text editor. Below is the one for Mygeeto:


Version(1);
NextID(1);

Layer("[Base]", 0, 8)
{
   Description("");
}

Layer("SoundRegions", 3, 0)
{
   Description("");
}

Layer("Design", 1, 0)
{
   Description("");
}

Layer("Buildings", 2, 0)
{
   Description("");
}

Layer("Rubble", 4, 0)
{
   Description("");
}

Layer("Turrets", 5, 0)
{
   Description("");
}

Layer("CTF", 7, 0)
{
   Description("");
}

Layer("CP-Assault", 8, 2)
{
   Description("");
}

Layer("CP-Conquest", 10, 2)
{
   Description("");
}

Layer("Platforms", 11, 0)
{
   Description("");
}

Layer("Con-VehicleSpawns", 12, 0)
{
   Description("");
}

Layer("flags", 15, 0)
{
   Description("");
}

Layer("Shields", 6, 2)
{
   Description("");
}

Layer("SoundSpaces", 9, 0)
{
   Description("");
}

Layer("SoundEmitters", 13, 0)
{
   Description("");
}


GameMode("Common")
{
   Layer(0);
   Layer(1);
   Layer(2);
   Layer(3);
   Layer(4);
   Layer(9);
   Layer(11);
   Layer(12);
   Layer(13);
}

GameMode("CTF")
{
   Layer(5);
   Layer(7);
   Layer(15);
}

GameMode("assult")
{
   Layer(6);
   Layer(8);
}

GameMode("conquest")
{
   Layer(5);
   Layer(10);
}

GameMode("TDM")
{
   Layer(5);
   Layer(7);
}






What I've highlighted in bold is what you should delete. Delete everything that does not belong here, save and exit. Now, your terrain will open in ZeroEditor, but be careful - I've tried to use the BF2 Hintnodes but most times they crash the edito when you enter Hint Node mode. Fortunately you can delete them by going into the HNT file and wiping it clean.

That's still not the end. During the conversion, the texture placement gets screwed up, so you have to replace ALL the texturing.

BUG NOTE: Sometimes the terrain file thinks that the water layer is number 15 instead of number 1. As such when you munge you get this:



What this tells you is that the default water layer is actually layer 15 (you can change water layers in ZeroEditor by going into Water mode, and putting a number under the "Layer" field). But all your settings will be under layer 1, so you should make note of these and copy them into layer 15.

Well, I think this covers the basics of conversion. Try it out for yourself and see!
« Last Edit: November 10, 2009, 03:11:23 PM by ggctuk »


Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

Quote
What I've highlighted in bold is what you should delete. Delete everything that does not belong here, save and exit.
This is the part to delete
QuoteGameMode("Common")
{
   Layer(0);
   Layer(1);
   Layer(2);
   Layer(3);
   Layer(4);
   Layer(9);
   Layer(11);
   Layer(12);
   Layer(13);
}

GameMode("CTF")
{
   Layer(5);
   Layer(7);
   Layer(15);
}

GameMode("assult")
{
   Layer(6);
   Layer(8);
}

GameMode("conquest")
{
   Layer(5);
   Layer(10);
}

GameMode("TDM")
{
   Layer(5);
   Layer(7);
}

March 12, 2016, 02:34:13 AM #9 Last Edit: March 12, 2016, 02:42:56 AM by Delta-1035
Thanks everyone, it worked perfectly!

There's only one issue: in-game the terrain is transparent, while it looks ok on the ZE.



Any Ideas?

Please follow this link and read my post that has the blue text
http://www.swbfgamers.com/index.php?topic=1156.0

I think that means you have to repaint it when you use this method.
Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

March 12, 2016, 04:32:26 AM #11 Last Edit: March 12, 2016, 04:34:18 AM by Delta-1035
Quote from: Led on March 12, 2016, 04:01:09 AM
Please follow this link and read my post that has the blue text
http://www.swbfgamers.com/index.php?topic=1156.0

I think that means you have to repaint it when you use this method.
That's not the case, I think.

I did the repaint but the terrain is just not showing up - you can see part of the objects that should be under the terrain, like it's shown on the picture.