跳到正文

Legacy OptiFabric

作者:tildejustin

OptiFabric for Legacy Fabric (1.3.1 to 1.13.2) and Ornithe (b1.7.3 to 1.14.4)

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

for mcsr: use mods.tildejustin.dev

If you’re looking for OptiFabric for 1.14 to 1.15.2 for regular Fabric instead of Ornithe, check out OptiFabric Origins

Legacy OptiFabric

OptiFabric for Legacy Fabric (1.3.1-1.13.2) and Ornithe (b1.7.3-1.14.4)

based on the work of RedLime’s OptiFabric-Pre1.14, a fork of hYdos’s OptiFabric 1.8.9 which
in turn is a derivative of modmuss’ original OptiFabric

installing

this mod requires an optifine jar in the mods folder alongside optifabric. for 1.7.2 and onwards this can be sourced
from OptiFine’s official website, and older versions these can be retrieved either
from SpeedyCube64’s Pre-1.9 Optifine Archive or on
the OptiFine history thread.

how it works

this mod uses Minecraft-Java-Edition-Speedrunning/fabric-asm, a minor derivative
of Cat Core’s Fabric-ASM/no-guava which itself is an updated version
of Chocohead’s fabric-asm. fabric asm allows more extreme asm modification and the fork used has no dependency on guava or apache
commons, which older minecraft versions don’t provide.

steps

  1. the mod looks for an optifine installer or mod jar or zip in the current mods folder
  2. if it finds an installer jar it runs the extract task in its own throwaway classloader
  3. the optifine mod jar is a set of classes that need to replace the ones that minecraft provides
  4. optifine’s replacement classes change the name of some lambda methods, so it take a good guess at the old name (using the original minecraft jar)
  5. remap optifine to intermediary
  6. move the patched classes out as they won’t do much good on the classpath twice
  7. add optifine to the classpath
  8. register the patching tweaker for every class that needs replacing
  9. replace the target class with the class that was extracted, also do some more fixes to it, and make it public (due to access issues)
  10. hope it works

notes

  • this mod does not really work in dev or named environments. In Legacy Fabric’s case the yarn builds are corrupted in some versions so this cannot work atm, feather is better but still has issues.
  • the accessWideners are created based on the output of tiny remapper’s checkPackageAccess option, but they are unlikely to ever be 100% complete. if you have a crash that has to do with and invalid access, report it and it may be able to be fixed.

class excluder

this is a kind of hidden feature that is occasionally useful to remove files when remapping the jar. to do this, it reads the optifabric-excluded-classes.json file
in .minecraft/config/ if it exists, and expects the file to contain a mapping of versions (field names) to an array of removable classes (or textures or anything else, it’s just
a filename).
an example file contents to revert the removal of the profiler for 1.3.2 light is provided below. if the optifine version you are trying to make an excluder extry for has already
been loaded before in your instance, delete its folder in the .optifine folder in .minecraft to force a recache.

{
  "OptiFine_1.3.2_L_B2": [
    "ik.class"
  ]
}

常见问题

Legacy OptiFabric 支持哪些 Minecraft 版本?

Legacy OptiFabric 支持 Minecraft Java 版 1.0–1.14.4,共 60 个版本。下载时注意选择和你游戏版本一致的文件。

Legacy OptiFabric 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 模组加载器,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅客户端。

评论

登录后评论和评分

tildejustin 的其他作品

查看全部 →