Cool. Also Cuchaz I am working on a program to convert your style of mapping to the format that MCP uses. So it can me used with programs like specialsource.
Cool. Also Cuchaz I am working on a program to convert your style of mapping to the format that MCP uses. So it can me used with programs like specialsource.
Okay I figured out that to convert from MCP to Enigma is a lot harder then from Enigma to MCP. Because MCP does not store the Field types. ANd enigma does.
I'm having a little bit of trouble. First I regret to admit that I've not actually tried to do anything serious with Enigma up until now, I've been using MCP to experiment with my mod ideas (since I plan to do it all in M3L anyway rather than Forge, and hope to contribute to M3L alongside my small mods if I can).
It was recently said that Enigma can now handle building for M3L (or something to that effect), which I assumed to mean that it's basically feature complete. Is this not the case? I loaded 1.8.3's jar, loaded the client mappings file, and exported the source - but it's impossible to build (Imported the code to a new Eclipse project and it reports 8672 errors, seems most or all are related to incomplete mappings).
Have I derped up or is Enigma (or the 1.8.3 mappings) not yet at the point where we can recompile Minecraft?
EDIT: By recompile I mean "Run in Eclipse", of course I'm not trying to build a hacked client or anything!
EDIT2: I apologize if there are instructions somewhere that I missed, I do recall something similar being talked about but I can't remember if it was this thread or M3L's - and because the forums thread-search feature is STILL 100% broken (grr) I really don't want to read every single page in both threads!
I'm having a little bit of trouble. First I regret to admit that I've not actually tried to do anything serious with Enigma up until now, I've been using MCP to experiment with my mod ideas (since I plan to do it all in M3L anyway rather than Forge, and hope to contribute to M3L alongside my small mods if I can).
It was recently said that Enigma can now handle building for M3L (or something to that effect), which I assumed to mean that it's basically feature complete. Is this not the case? I loaded 1.8.3's jar, loaded the client mappings file, and exported the source - but it's impossible to build (Imported the code to a new Eclipse project and it reports 8672 errors, seems most or all are related to incomplete mappings).
Have I derped up or is Enigma (or the 1.8.3 mappings) not yet at the point where we can recompile Minecraft?
EDIT: By recompile I mean "Run in Eclipse", of course I'm not trying to build a hacked client or anything!
EDIT2: I apologize if there are instructions somewhere that I missed, I do recall something similar being talked about but I can't remember if it was this thread or M3L's - and because the forums thread-search feature is STILL 100% broken (grr) I really don't want to read every single page in both threads!
Much to everyone's dismay, the point of Enigma is not to give you fully-compilable source for Minecraft. That's what MCP does. Enigma is not a replacement for MCP.
Instead, Enigma lets you assign names to obfuscated identifiers in the bytecode, and transform bytecode between the obfuscated and deobfuscated names. Enigma uses a decompiler to help you know what to rename obfuscated things to, but the end-goal of Enigma is deobfuscation, not decompilation.
Due to M3L's unique design, it only needs deobfuscated bytecode, not deobfuscated source code. This means I can entirely skip all the difficult business of getting a decompiler to give me source code that actually compiles again. Which means I'm not at all interested in spending time trying to get decompiled sources to compile.
If you want to "edit Minecraft's source code", then stick to MCP.
Much to everyone's dismay, the point of Enigma is not to give you fully-compilable source for Minecraft. That's what MCP does. Enigma is not a replacement for MCP.
Instead, Enigma lets you assign names to obfuscated identifiers in the bytecode, and transform bytecode between the obfuscated and deobfuscated names. Enigma uses a decompiler to help you know what to rename obfuscated things to, but the end-goal of Enigma is deobfuscation, not decompilation.
Due to M3L's unique design, it only needs deobfuscated bytecode, not deobfuscated source code. This means I can entirely skip all the difficult business of getting a decompiler to give me source code that actually compiles again. Which means I'm not at all interested in spending time trying to get decompiled sources to compile.
If you want to "edit Minecraft's source code", then stick to MCP.
Ok sorry, I forgot that M3L doesn't have any dependency on the ability to decompile. Seems obvious now though. I should have checked before posting sorry, I see many errors unrelated to obfuscation (like one class trying to access a protected field in another class) - forgive my haste sir!
So Enigma will likely never produce working source code (or at least not any time soon), understood. Now I see the point of Chibill's work on a converter to MCP mappings (Enigma's mapping are far better than those provided on MCPBot). I came very late to show and the few remaining classes are beyond me (except one I *think* is a packet or base class related to a new achievement or something... but I digress).
Anyway, very fair enough. I'll continue to mess around in MCP for 1.8(.0) then for my experiments. It still beats working with ASM
Ok sorry, I forgot that M3L doesn't have any dependency on the ability to decompile. Seems obvious now though. I should have checked before posting sorry, I see many errors unrelated to obfuscation (like one class trying to access a protected field in another class) - forgive my haste sir!
So Enigma will likely never produce working source code (or at least not any time soon), understood. Now I see the point of Chibill's work on a converter to MCP mappings (Enigma's mapping are far better than those provided on MCPBot). I came very late to show and the few remaining classes are beyond me (except one I *think* is a packet or base class related to a new achievement or something... but I digress).
Anyway, very fair enough. I'll continue to mess around in MCP for 1.8(.0) then for my experiments. It still beats working with ASM
You might find M3L's modding system a bit easier to use than ASM, but nothing's easier than directly editing source, of course. =)
Discounting the time I spend fixing bugs in Enigma, the whole conversion took me about an hour. Not bad. Here's a fun screenshot of the class matcher GUI that Enigma secretly has. =P
The vast majority of the classes can be automagically matched of course, but the algorithm still needs some human help to match the tricky cases.
I'll start working on converting these mappings to the new 1.9 snapshot. That might take a little longer since it's a bigger change, but hopefully not too much longer.
Cool. I am still working on soon python code to red in matches classes and output updated mcp mapings when you feed in the old mcp mapings. So yeah. Also I am working on a java based converter to convert mcp mapings to enigma and enigma to mcp style.
I am working on a converter to convert between the two. I might see about later converting it in to a PR. But for now its just sitting around as I work on other stuff.
After a lot of thought, I've added the following announcement to the OP:
Development status: Backburner'd!
Since I'm taking a break from Tall Worlds Mod, there's not much drive to keep developing M3L and Enigma, so I'm going to take a break from those projects too. The short version is, I'm one modder trying to do too many things in limited hobby time. So far the result has been I'm not getting much done on any one of these projects The donation money just isn't there to give me more hobby time, so if I want to get anything done at all, I need to become more focused.
The entire project is open source of course. Contributions are always welcome from other modders. None of this technology is disappearing any time soon, it's just going to start gathering dust.
Now I'm going to focus all of my energy into my Ships Mod and make that mod the best mod it can be. Since I'm no longer splitting my time among too many projects, I should be able to make some real progress, so look forward to some exciting new features there!
Cool. Also Cuchaz I am working on a program to convert your style of mapping to the format that MCP uses. So it can me used with programs like specialsource.
Slabs- Bring easily place able upside down slabs back to minecraft!
Cool. Go for it.
Okay. Also I am going to be making use of your mappings and building a reader for them for another project I have. ( https://github.com/CraftDevs/DeobfCraft ) And I will also finish a converter too which is being worked on at https://github.com/chibill/Enigma-MCP-Compatiblity
Edit:
Okay I figured out that to convert from MCP to Enigma is a lot harder then from Enigma to MCP. Because MCP does not store the Field types. ANd enigma does.
Slabs- Bring easily place able upside down slabs back to minecraft!
So has anything really been happening here? Also maybe go to 1.8.4???
Slabs- Bring easily place able upside down slabs back to minecraft!
Stuff happens, but slowly. Updating to 1.8.4 is on the todo list, but it's not very important since Tall Worlds doesn't support servers yet anyway.
Yeah I guess. Also I plan on have my conveter working (for the most part) by at latest May 18.
Slabs- Bring easily place able upside down slabs back to minecraft!
Hey Cuchaz/everyone,
I'm having a little bit of trouble. First I regret to admit that I've not actually tried to do anything serious with Enigma up until now, I've been using MCP to experiment with my mod ideas (since I plan to do it all in M3L anyway rather than Forge, and hope to contribute to M3L alongside my small mods if I can).
It was recently said that Enigma can now handle building for M3L (or something to that effect), which I assumed to mean that it's basically feature complete. Is this not the case? I loaded 1.8.3's jar, loaded the client mappings file, and exported the source - but it's impossible to build (Imported the code to a new Eclipse project and it reports 8672 errors, seems most or all are related to incomplete mappings).
Have I derped up or is Enigma (or the 1.8.3 mappings) not yet at the point where we can recompile Minecraft?
EDIT: By recompile I mean "Run in Eclipse", of course I'm not trying to build a hacked client or anything!
EDIT2: I apologize if there are instructions somewhere that I missed, I do recall something similar being talked about but I can't remember if it was this thread or M3L's - and because the forums thread-search feature is STILL 100% broken (grr) I really don't want to read every single page in both threads!
Much to everyone's dismay, the point of Enigma is not to give you fully-compilable source for Minecraft. That's what MCP does. Enigma is not a replacement for MCP.
Instead, Enigma lets you assign names to obfuscated identifiers in the bytecode, and transform bytecode between the obfuscated and deobfuscated names. Enigma uses a decompiler to help you know what to rename obfuscated things to, but the end-goal of Enigma is deobfuscation, not decompilation.
Due to M3L's unique design, it only needs deobfuscated bytecode, not deobfuscated source code. This means I can entirely skip all the difficult business of getting a decompiler to give me source code that actually compiles again. Which means I'm not at all interested in spending time trying to get decompiled sources to compile.
If you want to "edit Minecraft's source code", then stick to MCP.
Ok sorry, I forgot that M3L doesn't have any dependency on the ability to decompile. Seems obvious now though. I should have checked before posting sorry, I see many errors unrelated to obfuscation (like one class trying to access a protected field in another class) - forgive my haste sir!
So Enigma will likely never produce working source code (or at least not any time soon), understood. Now I see the point of Chibill's work on a converter to MCP mappings (Enigma's mapping are far better than those provided on MCPBot). I came very late to show and the few remaining classes are beyond me (except one I *think* is a packet or base class related to a new achievement or something... but I digress).
Anyway, very fair enough. I'll continue to mess around in MCP for 1.8(.0) then for my experiments. It still beats working with ASM
You might find M3L's modding system a bit easier to use than ASM, but nothing's easier than directly editing source, of course. =)
I just updated the Minecraft 1.8.3 mappings to 1.8.8. You can find them here if you're interested in those things:
https://bitbucket.org/cuchaz/minecraft-mappings/src/589655c3e5654d8c8f30e5d100a3224120a7ea24/?at=1.8.8
Discounting the time I spend fixing bugs in Enigma, the whole conversion took me about an hour. Not bad. Here's a fun screenshot of the class matcher GUI that Enigma secretly has. =P
https://twitter.com/cuchaz/status/627917931255603200
The vast majority of the classes can be automagically matched of course, but the algorithm still needs some human help to match the tricky cases.
I'll start working on converting these mappings to the new 1.9 snapshot. That might take a little longer since it's a bigger change, but hopefully not too much longer.
Cool. I might use the .matches files to port MCP mappings to 1.8.8 before MCP does.
Slabs- Bring easily place able upside down slabs back to minecraft!
Oooh, I never thought of that. Feel free! You can use the mappings for basically any purpose. The CC license is very permissive.
Yeah and even if I port them. I still would have to redo some of the patches.
Slabs- Bring easily place able upside down slabs back to minecraft!
Here are the mappings for the new Minecraft 1.9 snapshot, 15w31c!
http://www.cuchazinteractive.com/blog/minecraft-1.9-15w31c-mappings
They're not perfect, so there's probably a few mistakes. If you find any mistakes, feel free to submit PRs or push commits to fix them.
Cool. I am still working on soon python code to red in matches classes and output updated mcp mapings when you feed in the old mcp mapings. So yeah. Also I am working on a java based converter to convert mcp mapings to enigma and enigma to mcp style.
Slabs- Bring easily place able upside down slabs back to minecraft!
Is there any chance that we will see enigma supporting srg and csrg files for mappings, like MCP?
Nope. Not unless someone makes a PR for it.
I am working on a converter to convert between the two. I might see about later converting it in to a PR. But for now its just sitting around as I work on other stuff.
Slabs- Bring easily place able upside down slabs back to minecraft!
After a lot of thought, I've added the following announcement to the OP: