HMCL icon indicating copy to clipboard operation
HMCL copied to clipboard

Minecraft低版本没有声音

Open Sharll-large opened this issue 2 years ago • 25 comments

启动器版本 Launcher Version

3.5.3.228

平台 Platform

Windows 10 家庭版 64位

Java

Amazon Corretto 1.8.0_342

游戏版本 Game Version

1.0

对游戏所做的修改 Modifications Made to the Game

游戏崩溃报告 Game Crash Report

No response

启动器崩溃报告 Launcher Crash Report

No response

启动器日志文件 Launcher Log File

No response

问题描述 Problem Description

在启动较低版本的Minecraft时没有任何声音,并且控制台有一连串如下输出: image

在经过我的研究后,发现需要做如下修改: 将资源索引文件全部下载到.minecraft根目录下的 resources 文件夹中 将形如 --assetsDir xxx\.minecraft\assets\virtual\pre-1.6 的游戏参数更改为 --assetsDir xxx\.minecraft\resources

Sharll-large avatar Dec 25 '22 10:12 Sharll-large

image 你的方法好像并不兼容mc 1.5.2,mc本体并不会尝试从本地加载.ogg文件,好像只能用hosts文件修改原链接到本地,然后在本地开服务器才行

MetsukiMio avatar Dec 26 '22 03:12 MetsukiMio

我这里1.5.2也是可以的。。

Sharll-large avatar Dec 26 '22 04:12 Sharll-large

游戏内使用 F3+S或者F3+R重新加载资源试试?

wifi-left avatar Dec 26 '22 12:12 wifi-left

我这里因为各种原因,任何远古mc版本(<=1.5.2)都不会从本地加载assets,即使用F3重新加载资源

MetsukiMio avatar Dec 28 '22 04:12 MetsukiMio

我这里因为各种原因,任何远古mc版本(<=1.5.2)都不会从本地加载assets,即使用F3重新加载资源

目录权限问题吗?看看java.exe和javaw.exe以及hmcl使用的java有没有目录的访问权限呢? 顺带一提,你访问链接能直接下载文件吗?

wifi-left avatar Dec 28 '22 04:12 wifi-left

是我的错,我反编译了一下源码,发现resource文件夹位置和版本隔离有关

MetsukiMio avatar Dec 28 '22 04:12 MetsukiMio

image 主方法是这个(1.5.2):net.minecraft.client.Minecraft.m1364a(String str) (jadx反混淆过的)

MetsukiMio avatar Dec 28 '22 04:12 MetsukiMio

@ZekerZhayard 帮忙看下这个问题?

Glavo avatar Jan 06 '23 19:01 Glavo

启动器版本 Launcher Version

3.5.3.228

平台 Platform

Windows 10 家庭版 64位

Java

Amazon Corretto 1.8.0_342

游戏版本 Game Version

1.0

对游戏所做的修改 Modifications Made to the Game

游戏崩溃报告 Game Crash Report

No response

启动器崩溃报告 Launcher Crash Report

No response

启动器日志文件 Launcher Log File

No response

问题描述 Problem Description

在启动较低版本的Minecraft时没有任何声音,并且控制台有一连串如下输出: image

在经过我的研究后,发现需要做如下修改: 将资源索引文件全部下载到.minecraft根目录下的 resources 文件夹中 将形如 --assetsDir xxx\.minecraft\assets\virtual\pre-1.6 的游戏参数更改为 --assetsDir xxx\.minecraft\resources

我看到这个 http://s3.amazonaws.com/MinecraftResources 这个链接,这个下载地址已经被 MJ 给弃用了,所以是下载资源的问题?

zkitefly avatar Jul 06 '23 01:07 zkitefly

我观察了 MMC ,他的确是使用像本 issue 这样的方法来修复的

zkitefly avatar Jul 06 '23 01:07 zkitefly

开了下 PCL2 的源码,他也是这么做的

image

https://github.com/Hex-Dragon/PCL2/blob/2c2bd2d4893417d9b10e270c9cc82aceea747bbf/Plain%20Craft%20Launcher%202/Modules/Minecraft/ModMinecraft.vb#L2123-L2148

https://github.com/Hex-Dragon/PCL2/blob/2c2bd2d4893417d9b10e270c9cc82aceea747bbf/Plain%20Craft%20Launcher%202/Modules/Minecraft/ModLaunch.vb#L1583

zkitefly avatar Jul 06 '23 01:07 zkitefly

不对,PCL2也有这个问题,只有MMC没有这个问题

zkitefly avatar Jul 06 '23 02:07 zkitefly

@huanghongxun 要不修一下?

zkitefly avatar Jul 06 '23 16:07 zkitefly

找到好的解决方法了:

只要读到 assetIndex json 里面有 map_to_resources 值,下载完这个资源后就将这里的文件拷贝一份到 resource 文件夹就行了

https://github.com/HMCL-dev/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java#L447

https://github.com/HMCL-dev/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java#L46-L49

image image image image

zkitefly avatar Jul 08 '23 14:07 zkitefly

找到好的解决方法了:

只要读到 assetIndex json 里面有 map_to_resources 值,下载完这个资源后就将这里的文件拷贝一份到 resource 文件夹就行了

https://github.com/huanghongxun/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java#L447

https://github.com/huanghongxun/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java#L46-L49

image image image image

@huanghongxun 来修一下吧qwq

zkitefly avatar Jul 08 '23 15:07 zkitefly

@Glavo 来修一下吧qwq

zkitefly avatar Jul 19 '23 01:07 zkitefly

这个虫不好修…… 会导致 assets 存储逻辑混乱

burningtnt avatar Dec 01 '23 06:12 burningtnt

或许可以通过软链接的方式尝试修复?

zkitefly avatar Dec 01 '23 11:12 zkitefly

这个东西其实还有一个关键的问题,就是BMCLAPI,貌似没有这部分的缓存,如果有这部分的缓存的话,就没那么麻烦了

8MiYile avatar Jan 11 '24 13:01 8MiYile

这个东西其实还有一个关键的问题,就是BMCLAPI,貌似没有这部分的缓存,如果有这部分的缓存的话,就没那么麻烦了

?这部分的缓存就是这个 assets 啊?

zkitefly avatar Jan 11 '24 14:01 zkitefly

@zkitefly 有缓存吗?那没事了

8MiYile avatar Jan 11 '24 14:01 8MiYile

@zkitefly 有缓存吗?那没事了

缓存文件就是 pre-1.6.json 的资源

zkitefly avatar Jan 11 '24 14:01 zkitefly

我有个建议,当 index json 中含有 map_to_resources 时,下载(或拷贝)资源至该版本文件夹内的 resource 文件夹

zkitefly avatar Feb 05 '24 07:02 zkitefly

hook试试

liumingedwin avatar Feb 18 '24 08:02 liumingedwin

建议尽快修复,已经看到好多低版本没声音的例子了

https://www.bilibili.com/read/cv17798742

zkitefly avatar Mar 06 '24 14:03 zkitefly