-
Notifications
You must be signed in to change notification settings - Fork 32
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
Missing Techniques: Known Issues #12
Comments
I can give a report on missing sets, I've got about 30 or so linker complains about. |
Its not so much about not knowing which ones are missing, but rather, how to rebuild them. |
is it possible to automate the process to rebuild some of them from gamedata? |
Techsets and shaders are rather easy to automate, but techniques are an entirely different story. The source files are raw text files whereas the compiled data is binary, all of the material & shader sources, dests, consts, samplers need to be correctly determined. Even after that is sorted out you'd have to be able to determine which statemap file was associated with the given technique (yet in the game data - the statemaps are associated to materials). Overall, automating the extraction of techniques is an extremely complex process, but manually recreating over 20,000 files by hand is obviously impractical. |
Yeah I browsed through the techniques when installing the tools, I also was looking in to being able to decompile fx so we can get some necessary fx files obviously these can be remade, but for the actual feel of bo1, it would be better to have a decompiler. |
I haven't really looked into FX, but like techniques they're compiled into binary data so it's rather difficult to regenerate them. Even though it is theoretically possible, the missing materials would render many of them useless. And no effectively fully decompiling materials is nearly impossible due to the way statemaps are compiled. |
Is setup ready to read the ff's to extract data? I noticed you actually read the file headers as well, but you still use the extension byte search method, do we still not have a way to get each asset's start and ending offset? Only asking because some of the file types don't contain an extension. |
The only other option is to reverse engineer every single asset type in the fast files due to the way they are stored. The current code I'm using for techniques / techsets / shaders works similarly to Lemon or Lime but it's so experimental and is changing so frequently I haven't bothered to push it yet. |
That's what I was going to ask, can we dump each xasset from the fastfiles and work from there? In memory works too, obviously this would only needed to be done on our end as they'd just be packaged up once, no need for everyone to rip them themselves. |
I'm closing this issue as it was semi-resolved in 8f0aabc |
At the time of writing this, most features work relatively reliably. There are, however a number of issues that need to be resolved.
At present, several source files required by the material pipeline can be rebuilt from in-game data rather easily. These include:
All materials depend on a single techset, and all techsets depend on up to 130 different techniques, as seen below:
Furthermore, all techniques depend on a single vertex shader, pixel shader, and statemap, as seen below:
The issue lies in the fact that technique source are extremely difficult to rebuild from compiled game data, with statemaps being arguably even more difficult than that. As a result, it is currently unknown if these materials will ever be drawn correctly.
The text was updated successfully, but these errors were encountered: