I wouldn't trust files downloaded from an unofficial source which violates sp614x's copyright; when I modified Optifine myself I decompiled a pre-patched jar (note that I installed Optifine manually, not using its installer, this was also for a 1.6.4 version), which mostly worked (I had to remove the installer and Forge-related classes from the decompiled sources for MCP to successfully recompile it), and adding the modified files to the original jar worked without any significant issues (I made modifications to the rendering code to fix bugs, like smooth lighting and seeing in the dark, so this would be far more invasive than disabling skins. I did find out later that MCP incorrectly decompiled the RenderBlocks class; a line of redstone dust would only render oriented in one direction (I only noticed this when I found a jungle temple) due to MCP thinking that a variable set to 0,1,2 in vanilla was a boolean so one path was never executed, so it is possible that decompiled code can have errors when it isn't what MCP expects, hence the warnings it gives when using a modified jar).
Otherwise, you may have used the wrong class; did you run updateMD5 after inserting the Optifine sources? This will ensure that MCP only reobfuscates classes that you modified (plus any classes that reference any fields or methods that changed, I thought that MCP was broken when it reobfuscated unmodified classes but I found that the game would crash if I didn't include them). It is also possible to replace Optifine's classes with (modified) vanilla classes as long as Optifine doesn't attempt to access any methods/fields in them.
Of course, the crash report itself should tell you where the error occurred (easier to see if it occurred in non-vanilla code due to the original class names being kept); to me it looks like it can't get the translated name for some reason, suggesting missing code, including that which Optifine uses to display its tooltips, which will only cause a crash when the game tries to access it (one possible reason is that MCP didn't reobfuscate the Optifine classes which were added later; I've used JD-GUI to look at some of my own modified classes and some of vanilla methods/fields weren't obfuscated, usually due to changing their signature, and this would cause issues to any external code unless it was also updated to reflect the changes. sp614x may have also increased security by obfuscating their own code (the 1.6.4 version only has obfuscated vanilla names), which MCP wouldn't know about (such code would still have obfuscated names when decompiled and deobfuscated).
- xTeal
- Registered Member
-
Member for 6 years, 2 months, and 8 days
Last active Wed, May, 26 2021 12:08:45
- 0 Followers
- 9 Total Posts
- 0 Thanks
- To post a comment, please login.
-
Jan 4, 2020TheMasterCaver posted a message on My MCP modded client doesn't work; merged with Optifine. (How to recompile Optifine?)Posted in: Modification Development
- To post a comment, please login.
1