BSDHacks
Хаки, чтобы Minecraft работал лучше на FreeBSD и с несовпадающими версиями LWJGL. Вероятно, также помогает с другими BSD?
- Загрузчики
- NilLoader
- Скачиваний на Modrinth
- 85
- Подписчиков на Modrinth
- 3
- версия
- 1
- Обновлён
- 10 сентября 202610 сент.
- Опубликован
- в 2026
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
BSDHacks
Хаки, чтобы Minecraft работал лучше на FreeBSD и с несовпадающими версиями LWJGL. (Наверное, поможет и с другими BSD?)
Текущие исправления
Sodium крашит игру при запуске из-за несовпадающей версии LWJGL
[main/ERROR]: The game failed to start because the currently active LWJGL version is not compatible.
Installed version: 3.4.3-snapshot
Required version: 3.3.1
It appears you are using Prism Launcher to start the game. You can likely fix this problem by opening your instance settings and navigating to the Versionsection in the sidebar.
For more information, please see: https://link.caffeinemc.net/help/sodium/runtime-issue/lwjgl3/gh-2561Исправляется установкой -Dsodium.checks.issue2561=false во время premain.
(~1.20.1) Vorbis-аудио не воспроизводится
Это вызвано внутренним NoSuchMethodError на STBVorbisInfo.mallocStack, который проглатывается той странной асинхронной хренью на CompletableFuture, которую делает Mojang. LWJGL удалил эти методы после довольно долгого периода устаревания. Методы mallocStack динамически пропатчиваются обратно во все классы, которые по форме должны их иметь.
(~1.20.1) Иконки миров не работают
[IO-Worker-35/ERROR]: Caught exception in thread Thread[IO-Worker-35,10,main]
java.lang.NoSuchMethodError: 'int org.lwjgl.stb.STBImageResize.nstbir_resize_uint8(long, int, int, int, long, int, int, int, int)'
at net.minecraft.class_1011.method_4300([NativeImage.resizeSubRectTo]:630)
at net.minecraft.class_757.method_3181([GameRenderer.method_3181]:1024)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.lang.Thread.run(Thread.java:840)У nstbir_resize_uint8 был неправильный тип возвращаемого значения, и его изменили на long. Кроме того, все методы без суффикса были удалены. Сломанный вариант этого метода пропатчивается обратно, делегируя к nstbir_resize_uint8_srgb.
(~1.21.1) Бесполезные ошибки инициализации GLFW
Вместо настоящей ошибки GLFW будет отображаться какой-то вариант следующего исключения:
java.lang.NoSuchMethodError: 'boolean org.lwjgl.util.tinyfd.TinyFileDialogs.tinyfd_messageBox(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence, boolean)'Тип возвращаемого значения изменили с boolean на int. Старый метод пропатчивается обратно.
(~1.20.1) Бесполезные ошибки инициализации GLFW 2
java.lang.IllegalStateException: Failed to initialize GLFW, errors: GLFW error during init: [0x1000E]63553497619776
at knot//com.mojang.blaze3d.platform.GLX._initGlfw(GLX.java:75)
at knot//com.mojang.blaze3d.systems.RenderSystem.initBackendSystem(RenderSystem.java:847)
at knot//net.minecraft.class_310.<init>(class_310.java:483)
at knot//net.minecraft.client.main.Main.main(Main.java:211)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:514)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:72)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:115)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)Ванилла выводит сырое значение указателя на сообщение об ошибке GLFW вместо того, чтобы перейти по нему и прочитать строку. Код пропатчен на использование MemoryUtil.memUTF8.
Известные неисправленные проблемы
(Flywheel 1.21.1) Случайные SIGSEGV/SIGBUS после входа в мир
Пока нет идей о причине. Установка бэкенда Flywheel на flywheel:off работает, но это не идеально. Использование Epsilon GC тоже исправляет...? Ничто, что реально использует Flywheel, не должно рендериться или даже быть установленным, чтобы игра крашилась.
Частые вопросы
Как установить BSDHacks?
Установите NilLoader под свою версию Minecraft, скачайте BSDHacks под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть BSDHacks?
У BSDHacks есть сборки для Minecraft 1.17, 1.18–26.2.
Нужен ли BSDHacks на сервере?
Ставится только в игру; на сервер ставить не нужно