Mod Updating to 1.8 Progress Spreadsheet

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

FyberOptic

New Member
Jul 29, 2019
524
0
0
I don't think it's too early when there's people in the community who release simple ones right away. The thought was even rattling through my own mind recently to see if I can make some totally useless mod before MCP gets updated, as a challenge if nothing else. There's probably quadruple the number of classes involved now though compared to the version I took apart before myself, so I guess we'll see how well that works out.
 

xbony2

WikiWorker
Wiki Staff
FTB Mod Dev
Jul 3, 2013
914
1,353
201
America
ftb.gamepedia.com
They are.
Yeah, a lot of stuff's spawned from the depths of planet minecraft. You know, junk like this, this and this.

Actually, on the offhand, cookie-pigs sounds pretty legit. I like cookies.

Galacticraft came from PMC though. Micdoodle actually made an obsidian tools mod though xD betcha you didn't know that. It's worth making fun of people in the comments begging for an update though xD
 
  • Like
Reactions: RedBoss

FyberOptic

New Member
Jul 29, 2019
524
0
0
At this rate I don't think what I'm working on will be done before 1.8 final hits. But so far I made some tools to generate generic class, field, and method mappings, then the main tool to process the class files for remapping. It's all running on custom class file loading/saving code, too, since ASM didn't really do what I wanted, and I'd rather not need a third-party dependency. So far it's only remapping the classes, but I put a 1.8 pre1 JAR back together for testing my progress so far, and it ran with no crashes.

When I deobfuscated alpha 1.1.2 I ran into a lot of issues with the similarly named methods and classes (intentional due to the obfuscation process) and having to dig through code to figure out which was supposed to be used where. The game has thousands of more classes than it did back then, so remapping everything with generic names before decompiling is the only reasonable way to go about it this time, hence my efforts to write my own mapping tools. And it's not that I couldn't have just used MCP's tools for mapping, but the whole point is to see if I can figure out this entire process better than I did the last time, and on modern versions.

I'm sure the code will still be one more mess to straighten out even after being remapped, so I don't really know how far this project will get. But if nothing else I improved my knowledge of Java classes in the process, and got a handy class handling library, so it's already worth it.
 

FyberOptic

New Member
Jul 29, 2019
524
0
0
Not sure of the double-post rules but I just wanted to bump the thread. Maybe someone else will find something useful from my experience so far if they're trying to do the same.

I made a lot more progress than I thought towards modding the game, but there's still work to do. The gist of it is, I got my mappings generator and mapper working after dealing with inheritance hell, and was able to get the game to run stable with all classes/functions/methods remapped to generic versions (like class_0001, method_0001, etc). So then I disassembled the result of that with Fernflower. This wasn't too bad, it was mostly broken enums and missing exceptions, which I had to fix all of them manually because I'm not sure how to automate the process yet, and didn't want to cheat and look at how MCP does it.

After a while of doing that, eventually it was down to zero errors, at which point I got crashes when trying to run the recompiled game. I think this ended up being related to the Gson library. I was getting a class cast exception, which went away magically after I manually fixed the various list types in the class after reading that Gson uses reflection to scan a class to find what it needs. That's kinda scary because something that can cause such a weird error as a result of how a third-party library works could lead to a lot of problems onwards.

After getting past that error, the game now just exited immediately right before the title screen. After lots of tracing (aka spitting out a debug message from dozens of different places) I managed to manually break the part which was causing the game to exit after receiving some unknown exception. So that's a bit of a hack that will need to be fixed when I find the proper problem there.

If I try to create a world, it seems to have actually generated it, but right after the loading text finishes it immediately crashes with a class error related to a large enum I had to fix, which is obviously still pretty broken.

Overall, I would actually say that this has been a slightly smoother experience than last time. Either way, I at least tagged the title screen to have some degree of satisfaction for the night!

mc18pre1fybersmall.png
 

Qazplm601

Lord of the Tumbleweeds
Sep 21, 2013
2,754
3,282
308
Where else?
Not sure of the double-post rules but I just wanted to bump the thread. Maybe someone else will find something useful from my experience so far if they're trying to do the same.

I made a lot more progress than I thought towards modding the game, but there's still work to do. The gist of it is, I got my mappings generator and mapper working after dealing with inheritance hell, and was able to get the game to run stable with all classes/functions/methods remapped to generic versions (like class_0001, method_0001, etc). So then I disassembled the result of that with Fernflower. This wasn't too bad, it was mostly broken enums and missing exceptions, which I had to fix all of them manually because I'm not sure how to automate the process yet, and didn't want to cheat and look at how MCP does it.

After a while of doing that, eventually it was down to zero errors, at which point I got crashes when trying to run the recompiled game. I think this ended up being related to the Gson library. I was getting a class cast exception, which went away magically after I manually fixed the various list types in the class after reading that Gson uses reflection to scan a class to find what it needs. That's kinda scary because something that can cause such a weird error as a result of how a third-party library works could lead to a lot of problems onwards.

After getting past that error, the game now just exited immediately right before the title screen. After lots of tracing (aka spitting out a debug message from dozens of different places) I managed to manually break the part which was causing the game to exit after receiving some unknown exception. So that's a bit of a hack that will need to be fixed when I find the proper problem there.

If I try to create a world, it seems to have actually generated it, but right after the loading text finishes it immediately crashes with a class error related to a large enum I had to fix, which is obviously still pretty broken.

Overall, I would actually say that this has been a slightly smoother experience than last time. Either way, I at least tagged the title screen to have some degree of satisfaction for the night!

mc18pre1fybersmall.png
i knew i recognised you! i read that older one a while ago :p
 

FyberOptic

New Member
Jul 29, 2019
524
0
0
So countless hours of figuring this new mess out has started to pay off. I went ahead and started porting Hopper Ducts directly over as a JAR mod, just to see if I had a decent grasp on how everything works now.

hopperduct18test.png


It's basically written from scratch so far since they're not complicated. The ducts work exactly as they used to do, a single inventory slot, can point in any direction, etc. GUI and everything works properly. I just haven't created the model for them yet, so I'm just pointing the vanilla hopper upside down when they're pointed up.

I actually thought I would dislike this new JSON file method of specifying blockstates and models, but this is actually pretty great. I can edit the models and F3+T while the game is running to view the changes. It's going to make it really easy to hammer out a similar model to what I used to use. What's great is that I don't have to do a custom block renderer class at all now like with all prior versions.

Some of this was a real pain to figure out, but Forge will almost definitely make registering blocks, items, tile entities, blockstates, etc, hopefully far easier than it is to manually insert all of this throughout the game as I've had to do. I look forward to that.
 

KnightOwl

New Member
Jul 29, 2019
197
1
1
So todays news mentioned that 1.8 mods are in the works.. is there an updated spreadsheet that anyone has seen?