Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012

Sign in to follow this  
Followers 0
Kavawuvi

Proton Map Editor

93 posts in this topic

So mapping it out pretty much is opening a tag in a hex editor and checkin' where the pieces go?

 

Yes, but not all of the "pieces" are in Sparky's plugins. There are gaps in offsets and stuff. Some of it is likely padding, but some of it isn't.

{"name": "Acceleration Scale", "type": "float", "offset": "0x20"},
-- 4 byte gap --
{"name": "Model", "type": "dependency", "offset": "0x28"},
{"name": "Animation Graph", "type": "dependency", "offset": "0x38"},
-- 40 byte gap --
{"name": "Collision Model", "type": "dependency", "offset": "0x70"},

I could make it export HEK+ style, but with a 40 byte gap, you may miss some information. It's not worth it if many of the tags exported will just be plain broken.

Edited by 002
NeX likes this

Share this post


Link to post
Share on other sites

Members of Open Carnage never see off-site ads.

Yes, but not all of the "pieces" are in Sparky's plugins. There are gaps in offsets and stuff. Some of it is likely padding, but some of it isn't.

{"name": "Acceleration Scale", "type": "float", "offset": "0x20"},
-- 4 byte gap --
{"name": "Model", "type": "dependency", "offset": "0x28"},
{"name": "Animation Graph", "type": "dependency", "offset": "0x38"},
-- 40 byte gap --
{"name": "Collision Model", "type": "dependency", "offset": "0x70"},

I could make it export HEK+ style, but with a 40 byte gap, you may miss some information. It's not worth it if many of the tags exported will just be plain broken.

 

Which is a big issue with HEK+ right now. It tears animation tags apart half the time, especially model_animation tags for biped and vehicle graphs. So looking at what's already mapped, seeing the gaps, and then comparing it to an actual tag in CE format should fill the holes, yeah? 


KsqHutE.png

Share this post


Link to post
Share on other sites

So looking at what's already mapped, seeing the gaps, and then comparing it to an actual tag in CE format should fill the holes, yeah?

But if you already had the tag in CE format, why did you need to extract it in the first place?

This sounds like a good strategy for testing extraction and finding missing fields, though.

Share this post


Link to post
Share on other sites

well shit, I have like 40GB of tags in CE format. The issue is getting them out of a pre-compiled map. Things like models and animations I don't think can really be "recreated" based on what's viewable in the compiled tags. For instance, when trying to recreate Tucker's dynamic blood in CE, I just created new tags of the correct type and then used Phoenix as a reference open in Eschaton to follow the tag chain and fill in the fields/references with the proper values and tags.

 

I can export extracted CE tags as text format, too, for easier reading and without the need of having the HEK installed to view the info. 

 

However, it doesn't explicitly state the size or datatype of each field, which is why I figured a hex editor to map out what is where and the types/sizes of each field or reference would be necessary.

 

The only real mod work being done anymore is for CE anyway, and very few people edit pre-compiled maps for actual mods (disregarding BG sniper shoots tank shells mods), so a map editor released these days that doesn't support tag extraction in formats usable by the HEK isn't really going to be super duper useful to 99% of people working on Halo anyway.

And since I'll be done with Halo modding in general after my project is finished, likely this summer, I'm not sure if I'd spare the time to painstakingly go through and map out each tag class myself. I just don't have the time :/

 

Guess the CE community will just use Zeus /sarcasm

Edited by NeX

KsqHutE.png

Share this post


Link to post
Share on other sites

And since I'll be done with Halo modding in general after my project is finished, likely this summer, I'm not sure if I'd spare the time to painstakingly go through and map out each tag class myself. I just don't have the time :/

It'll take me a long time, months maybe, but I guess it's possible for me to manage it alone.

Share this post


Link to post
Share on other sites

Publish the source and I'll send you some pull requests! :D

 

I'm not sure how the source code would help you map out a tag. None of the mapping is in the application itself.

Share this post


Link to post
Share on other sites

I'm not sure how the source code would help you map out a tag. None of the mapping is in the application itself.

Would you rather I map out the tags in Quickbeam's format, and leave it to you to convert them?

 

I'm also interesting in attempting to add memory-modding to Proton, which definitely does require the source code.

Share this post


Link to post
Share on other sites

Would you rather I map out the tags in Quickbeam's format, and leave it to you to convert them?

I don't mind. I'd rather focus on the program rather than the plugins.

 

I'm also interesting in attempting to add memory-modding to Proton, which definitely does require the source code.

At this point of the development of Proton, every new release I push ends up with changing many aspects of how Proton works.

For example, Alpha 2 was a complete rewrite from the original alpha. One might not notice many changes, as it looks extremely similar in layout, but there is nothing alike in either program other than the name.

Alpha 3, I changed how Proton handles tag selection and removed lots of duplicate code, then completely changed how the UI works, then wrote how Proton handles plugins twice to make reflexive handling work almost exactly the same as the main struct. Alpha 4 will significantly change how reflexives work, though I wouldn't say right now in case I change my mind on how I'm implementing it, but it'll make reflexive handling a little nicer.

Point is, every version, there's a good chance I'm going to change something if not everything which is why I'm shaky right now on releasing the source code presently. I prefer to wait until I have something more complete.

NeX likes this

Share this post


Link to post
Share on other sites

I tried it out and I'm still amazed by how fast it works, or rather doesn't work, in my case. Seems quite buggy with what I work with (but then everything does). I'll keep you updated.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.