Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NiSkinPartition unknowns removed #24

Merged
merged 1 commit into from
Nov 26, 2014

Conversation

ttl269
Copy link
Member

@ttl269 ttl269 commented Apr 25, 2014

@neomonkeus @skyfox69 @jonwd7 @Ghostwalker71 @throttlekitty @nexustheru @amorilia
I have found a strange additions at the end of NiSkinPartition block definition. There is notice:

<!-- related to the file posted in tracker item #3117836:
            http://sourceforge.net/tracker/?func=detail&aid=3117836&group_id=149157&atid=776343 -->

followed by 7 lines of added unknowns conditioned only for nifs Version = 10.2.0.0 and UserVersion = 1. There is also added a compound SkinPartitionUnknownItem1.
Yesterday I have got sample nifs from Blood Bowl game which are precisely of that Version and UserVersion and these unknowns causes error on nif load - these unknowns should not be there. Without these lines, nifs from Blood Bowl game are loading ok.

  • Does anybody know anything about that mentioned tracker item #3117836 on sourceforge? That link don't works for me - it requires login into SourceForge account.
  • Is it possible to get nif file(s) on which these unknowns was added to nif.xml?

For now I have uncommented them out as it is possible that these unknowns are valid for some nif versions - maybe there are only bad version/user version numbers in conditions.

Removed conditioned unknowns at end of NiSkinPartition block.
@Ghostwalker71
Copy link
Contributor

Would this be related to the recent thread on the forums... http://niftools.sourceforge.net/forum/viewtopic.php?f=10&t=5870&p=30085#p30085

@neomonkeus
Copy link
Member

Link to original support request as migrated to allura platform - https://sourceforge.net/p/niftools/bugs/93/. Will copy over the information from there as part of migration process from sf.net to github. Should hold off on merge until all information is present.

@neomonkeus
Copy link
Member

Original issue

Since the last version, NifSkope handles Empire Earth 2 nifcache files brilliantly. Unfortunately, the files from its expansion pack can't be opened; an error pops up, going like this:
""array Children much too large. 1868717941 bytes requested"" 
"failed to load block number 0 (NiNode) previous block was NiHeader" 
""infinite recursive link construct detected 0 -> 0"" 
"failed to load nif from 'C:/path to nifcache/any.nifcache'"
or this:
"failed to load block number 0 (NiNode) previous block was NiHeader" 
""infinite recursive link construct detected 0 -> 0"" 
"failed to load nif from 'C:/path to nifcache/any.nifcache'"
for all the nifcache files in the expansion pack. This applies to texcache files as well. I'm attaching several of these as examples,

@amorilia - Well, it appears that these nifs have an extra zero integer in front of every name (and perhaps in front of every string outside the header). As far as I can see, there's nothing earlier in the header to indicate this... Alphax, any clues as to how we might deal with this elegantly?
It looks as if they customized the nif format without setting the user version field...

Ok, so from my understanding of the problem. The changes were introduced because of EE2 expansion as they never updated the use version. The changes introduced into the nif.xml break compatability with 10.2.0.0 and UserVersion = 1 "versioned" nifs as seen in BB.

I would propose that we introduce this change to support as many nif versions as possible. @jonwd7 - what are your thought on an "external" nif.xml or specific versions. Not sure if it applicable to the conversion we are having regarding #3.

@ttl269
Copy link
Member Author

ttl269 commented Nov 26, 2014

@neomonkeus @skyfox69 @jonwd7 @Ghostwalker71 @throttlekitty @nexustheru @amorilia I have also found same "zero integer before any NiObject" in some 10.2.0.0 nifs. The authors modificated the nif structure without changing user versions, so it is not possible for us to handle those nifs with one nif.xml.

@neomonkeus
Copy link
Member

@ttl269 : Yes, @Ghostwalker71 linked to the forum topic in the comment previous to mine, I just collected all the information together based on the original sf.net bug report and your findings.

Personally I think that this fixes more than it breaks and the the change introduced by EEC2 mod version breaks too much compatiablilty. The pull request as is can be merged to "fix" the issue but how we handle support of EEC2 modified version or incompatible versions is something that is wider than this specific issue.

neomonkeus added a commit that referenced this pull request Nov 26, 2014
@neomonkeus neomonkeus merged commit c16c766 into niftools:develop Nov 26, 2014
@neomonkeus neomonkeus deleted the feature/NiSkinPartition-modify branch November 26, 2014 23:06
@neomonkeus neomonkeus modified the milestone: Version 0.7 Apr 12, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants