Page 1 of 1

MOPP & BSP stuff

Posted: Sat Jun 02, 2012 5:31 pm
by troymac1ure
So continuing on from the deleted discussion:

MOPP Header (to be reposted when I get home):

Code: Select all

        public class Header    // 48 bytes (0x30)
        {
            public float xOffset;                   // Used to shift the X value to real world coordinates?
            public float yOffset;                   // Used to shift the Y value to real world coordinates?
            public float zOffset;                   // Used to shift the Z value to real world coordinates?
            public float unknown;
            public byte[] constant1_FF00 = new byte[16];   // Always FF00 0000 0000 0000 0000 0000 0000 0000
            public uint unPaddedSize;                      // Actual size is padded to 16 bytes
            public byte[] constant2_0100 = new byte[12];   // Always 0100 0000 0000 0000 0000 0000
        }
Last night I was playing with the MOPP code and injected SHARED.MAP MOPP over ascension & coagulation. This allowed them to still load, however removing all player collision (I assume, since I just kept falling to my death) from the map. If the MOPP is screwed, the game will freeze at the mainmenu screen after the countdown. I need to do some more tests on a map where I can land on a crate or something with a banshee beside me. I would like to see if the map extents are taking from the meta or from the MOPP code itself.
I know that the MOPP has OpCodes to reference triangles, so it is obviously very closley tied to the meta data.

On a slight side note, I finished the MOPP disassembler last night as well. I'm going to add a convenience option, then I'll post it and maybe other will help to work through the unknown codes. I set it up so all the OpCodes are read from a text file, so it will be very easy to modify the OpCode outputs for testing purposes.

Re: MOPP & BSP stuff

Posted: Sat Jun 02, 2012 7:44 pm
by CaptainPoopface
Would it help your process if you set the biped to flying and had a gun that drops a bloc instead of a projectile to check for phmo collision? I wonder if you could discover more by living longer and traveling around the map.

Re: MOPP & BSP stuff

Posted: Sat Jun 02, 2012 7:57 pm
by Ogrish
Unfortunatly that wont work, back in my bsp testing days i often checked flying bipd, but if the bsp collision is broken you still fall.

I used to used bsp master to flatten and flip bsp's visual mesh which resulted in maps that load but the physical collision was sometimes broken and sometimes not touched so i would have to spawn a large mach to land on, and crates dropped from weapons fell thru map too.

Re: MOPP & BSP stuff

Posted: Sat Jun 02, 2012 11:16 pm
by troymac1ure
CaptainPoopface wrote:Would it help your process if you set the biped to flying and had a gun that drops a bloc instead of a projectile to check for phmo collision? I wonder if you could discover more by living longer and traveling around the map.
sorry, started this post @ home, then never actually posted so I missed the part where I was throwing grenades as I fell & they still bounced off the bsp.
I may try the flying thing as that would be very quick and easy to test.

Re: MOPP & BSP stuff

Posted: Sun Jun 03, 2012 10:04 pm
by troymac1ure
[quote=""darK_nova"]However in Halo 2 they utilize a bsp tree to actually divide the mesh into clusters. Then the clusters are broken up into convex subclusters of triangles. The mopps are built at the cluster level and not at the mesh level.
Since the bsp already breaks up the nonconvex cluster into convex subcluster. I beleive the mopp uses that information and uses the same planes to break up the cluster.
[/quote]

Found this on the Oblivion site I linked before. Interesting...

Re: MOPP & BSP stuff

Posted: Sun Jun 03, 2012 10:31 pm
by XZodia
How the hell do they know that?

Re: MOPP & BSP stuff

Posted: Tue Jun 05, 2012 12:38 am
by troymac1ure
Magic. Either primary or secondary...

Re: MOPP & BSP stuff

Posted: Wed Jun 06, 2012 8:28 am
by troymac1ure
So after pretty much removing the mopp code, the map loses all collision, however it seems like the map extents are still the same (I applied the SharedSP mopp to ascension, but I was not constrainted to the sharedSp map size).
Also, when going through the bsp mesh, you get a "killed by the guardians" message.
Just stuff I've found so far :?

EDIT: Also, The flying Biped thing did work, except when I flew through the mesh :wink:

Re: MOPP & BSP stuff

Posted: Wed Jun 06, 2012 9:17 am
by neodos
Have you looked into the Havok physics engine SDK, halo 2 uses that (an older version I guess) and maybe the generation method may have been altered by Bungie but if you can get a hold of a havok sdk maybe you can find something in there about how to generate MOPP.

I have been searching about it and haven't been able to find any actual explanation of how its generated, just examples of how to do get mopp it with different softwares.

Re: MOPP & BSP stuff

Posted: Wed Jun 06, 2012 1:52 pm
by DarkShallFall
troymac1ure wrote:Magic. Either primary or secondary...
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
:wonder: Adam u high?

Re: MOPP & BSP stuff

Posted: Wed Jun 06, 2012 5:26 pm
by troymac1ure
Was looking through this old topic again on Custom BSP:
http://webcache.googleusercontent.com/s ... clnk&gl=ca

and came to a realization that we are able to move player collision points slightly & still keep them intact because the mopp uses int instead of float for triangle locations. This would be like rounding the values off and allowing for some "play".