BetterFps

BetterFps

91M Downloads

Improve the patching system by using binary patches

Guichaguri opened this issue ยท 1 comments

commented

It should fix conflicts between BetterFps and Forge (#19)

Library

  • Javaxdelta: A Java implementation of xdelta. Forge uses it, but a file can only be patched once.
  • Badiff: Entirely implemented in Java. Seems fast and the same file can be patched twice without any problems

Patching

ForgeGradle's Patcher plugin

Forge uses it. But I have to figure out how it works

Create our own gradle task

It will take more time, but it's easier to maintain

Use a external tool to create the patches

This is the last option, it should work but it's not pratical
This will probably use a MCP environment

commented

Binary Patches are out of scope, since it may cause a lot of conflicts with other tweakers. Solving a conflict with more conflicts is definitely not optimal.

Mixins are awesome, but also out of scope for now, since it has some limitations and the generated code is also not optimal.

The best thing is to improve our ASM code in a creative way that needs to deal with:

  • Mappings depending on the environment (Obfuscated, MCP and CraftBukkit)
  • Partially patching methods to prevent conflicts
  • Tools to decrease the amount of ASM code and make it easy to use