找回密码
 初始化身份识别芯片
楼主: zender

[097,096,0951]粒子引擎注入与java11-23之钥

    [复制链接]

战列舰长

 楼主| 发表于 2024-2-27 10:47:04 | 显示全部楼层
Tick_Tock_Man 发表于 2024-2-26 22:32
[游戏日志]

13   [main] INFO  com.fs.starfarer.loading.LoadingUtils  - Loading JSON from [../mod ...

更新了一下,现在会强制将TimSort转换为legacyMergeSort

点评

能正常使用了,Z佬强呀  详情 回复 发表于 2024-2-27 21:23

战列舰长

发表于 2024-2-27 11:47:05 | 显示全部楼层
我懂什么情况了

战列舰长

发表于 2024-2-27 12:43:53 | 显示全部楼层
好像和他没啥关系,我把它改了一下,依旧报错
[游戏日志]

118098 [Thread-2] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  -
118098 [Thread-2] INFO  com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent  - 提高军官 aEP_FSF_SaleStation
118112 [Thread-6] INFO  sound.oo0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  - Cleaning up music with id [yijie2.ogg]
118466 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.IllegalArgumentException: Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general contract!
        at java.base/java.util.TimSort.mergeHi(TimSort.java:903)
        at java.base/java.util.TimSort.mergeAt(TimSort.java:520)
        at java.base/java.util.TimSort.mergeCollapse(TimSort.java:448)
        at java.base/java.util.TimSort.sort(TimSort.java:245)
        at java.base/java.util.Arrays.sort(Arrays.java:1515)
        at java.base/java.util.ArrayList.sort(ArrayList.java:1750)
        at java.base/java.util.Collections.sort(Collections.java:179)
        at kotlin.collections.CollectionsKt__MutableCollectionsJVMKt.sortWith(MutableCollectionsJVM.kt:42)
        at data.scripts.hullmods.aEP_Tugboat.advanceInCampaign(aEP_Tugboat.kt:56)
        at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
        at com.fs.starfarer.campaign.fleet.FleetData.sort(Unknown Source)
        at com.fs.starfarer.campaign.fleet.FleetData.sort(Unknown Source)
        at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.createFleet(FleetFactoryV3.java:468)
        at com.fs.starfarer.api.impl.campaign.submarkets.BaseSubmarketPlugin.addShips(BaseSubmarketPlugin.java:530)
        at com.fs.starfarer.api.impl.campaign.submarkets.BaseSubmarketPlugin.addShips(BaseSubmarketPlugin.java:481)
        at com.fs.starfarer.api.impl.campaign.submarkets.MilitarySubmarketPlugin.updateCargoPrePlayerInteraction(MilitarySubmarketPlugin.java:71)
        at exerelin.campaign.submarkets.Nex_MilitarySubmarketPlugin.updateCargoPrePlayerInteraction(Nex_MilitarySubmarketPlugin.java:15)
        at stelnet.board.query.provider.MarketProvider.updateSubmarkets(MarketProvider.java:71)
        at stelnet.board.query.provider.MarketProvider.updateMarket(MarketProvider.java:55)
        at stelnet.board.query.MarketUpdater.updateMarket(MarketUpdater.java:86)
        at stelnet.board.query.MarketUpdater.advance(MarketUpdater.java:47)
        at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
        at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
        at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
        at java.base/java.lang.Thread.run(Thread.java:829)
118488 [Thread-9] INFO  sound.oo0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  - Creating streaming player for music with id [nier3.ogg]
118490 [Thread-9] INFO  sound.H  - Playing music with id [nier3.ogg]
121330 [Thread-VC-6] WARN  lunalib.backend.ui.versionchecker.VersionChecker  - Failed to load master version file from URL "https://www.dropbox.com/s/y2sr59h2ptq7rir/NSKR.version?dl=1"
换了Java之后,这个老存档又能继续玩了。什么鬼情况

点评

新更新强制阻止了使用TimSort,试试看  详情 回复 发表于 2024-2-27 12:46

战列舰长

 楼主| 发表于 2024-2-27 12:46:51 | 显示全部楼层
不想起名字 发表于 2024-2-27 12:43
好像和他没啥关系,我把它改了一下,依旧报错
[游戏日志]

新更新强制阻止了使用TimSort,试试看

战列舰长

发表于 2024-2-27 12:48:15 | 显示全部楼层
就是新的更新

战列舰长

发表于 2024-2-27 12:48:53 | 显示全部楼层
fsf也最新了

战列舰长

发表于 2024-2-27 12:50:57 | 显示全部楼层
模组文件更新了?让我看看

战列舰长

发表于 2024-2-27 13:00:07 | 显示全部楼层
[游戏日志]

        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
114479 [Thread-VC-4] INFO  exerelin.utilities.versionchecker.VersionChecker  - Loading version info from remote URL https://raw.githubusercontent.co ... ain/LunaLib.version
114653 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.IllegalArgumentException: Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general contract!
        at java.base/java.util.TimSort.mergeHi(TimSort.java:903)
        at java.base/java.util.TimSort.mergeAt(TimSort.java:520)
        at java.base/java.util.TimSort.mergeCollapse(TimSort.java:448)
        at java.base/java.util.TimSort.sort(TimSort.java:245)
        at java.base/java.util.Arrays.sort(Arrays.java:1515)
        at java.base/java.util.ArrayList.sort(ArrayList.java:1750)
        at java.base/java.util.Collections.sort(Collections.java:179)
        at kotlin.collections.CollectionsKt__MutableCollectionsJVMKt.sortWith(MutableCollectionsJVM.kt:42)
        at data.scripts.hullmods.aEP_Tugboat.advanceInCampaign(aEP_Tugboat.kt:56)
        at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
        at com.fs.starfarer.campaign.fleet.FleetData.sort(Unknown Source)
        at com.fs.starfarer.campaign.fleet.FleetData.sort(Unknown Source)
        at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.createFleet(FleetFactoryV3.java:468)
        at com.fs.starfarer.api.impl.campaign.submarkets.BaseSubmarketPlugin.addShips(BaseSubmarketPlugin.java:530)
        at com.fs.starfarer.api.impl.campaign.submarkets.BaseSubmarketPlugin.addShips(BaseSubmarketPlugin.java:481)
        at com.fs.starfarer.api.impl.campaign.submarkets.MilitarySubmarketPlugin.updateCargoPrePlayerInteraction(MilitarySubmarketPlugin.java:71)
        at exerelin.campaign.submarkets.Nex_MilitarySubmarketPlugin.updateCargoPrePlayerInteraction(Nex_MilitarySubmarketPlugin.java:15)
        at stelnet.board.query.provider.MarketProvider.updateSubmarkets(MarketProvider.java:71)
        at stelnet.board.query.provider.MarketProvider.updateMarket(MarketProvider.java:55)
        at stelnet.board.query.MarketUpdater.updateMarket(MarketUpdater.java:86)
        at stelnet.board.query.MarketUpdater.advance(MarketUpdater.java:47)
        at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
        at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
        at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
        at java.base/java.lang.Thread.run(Thread.java:829)
115895 [Thread-VC-Main] WARN  exerelin.utilities.versionchecker.VersionChecker  - Failed to load vanilla update data from URL "https://raw.githubusercontent.com/LazyWizard/version-checker/master/vanilla.txt"
java.net.SocketTimeoutException: Read timed out
        at java.base/java.net.SocketInputStream.socketRead0(Native Method)
        at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
        at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:484)
        at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:478)
        at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1417)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:456)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:427)
        at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:572)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:201)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1592)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
        at java.base/java.net.URL.openStream(URL.java:1165)
        at exerelin.utilities.versionchecker.VersionChecker.getLatestSSVersion(VersionChecker.java:107)
        at exerelin.utilities.versionchecker.VersionChecker.access$400(VersionChecker.java:20)
        at exerelin.utilities.versionchecker.VersionChecker$MainTask.call(VersionChecker.java:308)
        at exerelin.utilities.versionchecker.VersionChecker$MainTask.call(VersionChecker.java:144)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
还是报错

点评

ParticleEngineInject_PreMain.jar你换了吗  详情 回复 发表于 2024-2-27 13:01

战列舰长

 楼主| 发表于 2024-2-27 13:01:16 | 显示全部楼层
不想起名字 发表于 2024-2-27 13:00
[游戏日志]

        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java ...

ParticleEngineInject_PreMain.jar你换了吗

战列舰长

发表于 2024-2-27 13:06:33 | 显示全部楼层
这次替换了没问题了应该。至少没有当场进去崩溃

战列舰长

发表于 2024-2-27 14:33:22 | 显示全部楼层
尝试java11失败,已下载复制glassfish5,graalvm java11,参数文件。启动时报错,连启动器都没显示出来。

846  [Thread-1] FATAL com.fs.starfarer.launcher.opengl.GLLauncher  - java.lang.NoSuchMethodError: 'sun.misc.Cleaner sun.nio.ch.DirectBuffer.cleaner()'
java.lang.NoSuchMethodError: 'sun.misc.Cleaner sun.nio.ch.DirectBuffer.cleaner()'
        at com.fs.graphics.TextureLoader.o00000(Unknown Source)

会是啥原因?

点评

把ParticleEngineInject_PreMain.jar换成本贴里的,PEI里的不包含java11支持  详情 回复 发表于 2024-2-27 14:56

战列舰长

 楼主| 发表于 2024-2-27 14:56:00 | 显示全部楼层
wuyi 发表于 2024-2-27 14:33
尝试java11失败,已下载复制glassfish5,graalvm java11,参数文件。启动时报错,连启动器都没显示出来。

...

把ParticleEngineInject_PreMain.jar换成本贴里的,PEI里的不包含java11支持

战列舰长

发表于 2024-2-27 16:45:49 | 显示全部楼层
我要吹爆 zender大佬!!!

java11试验成功,我的2060笔记本上稳定70帧。然后我不死心的继续升级java版本,java17上我用ZGC跑可以偶尔达到90帧,大多数时候80帧,这可是我的另一台4060笔记本没有优化时的帧数啊!!!

java21不行,alex用了个Thread.stop方法,这个函数21里没有了。

准备开生涯,继续测试稳定性。

战列舰长

发表于 2024-2-27 16:50:31 | 显示全部楼层
惨剧:新开生涯时跳出,大佬有没有简单的解决方法?报错是

1163259 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
        at com.thoughtworks.xstream.XStream.setupConverters(XStream.java:989)
        at com.thoughtworks.xstream.XStream.<init>(XStream.java:592)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Comparator java.util.TreeMap.comparator accessible: module java.base does not "opens java.util" to unnamed module @b065c63
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source)
        at java.base/java.lang.reflect.Field.checkCanSetAccessible(Unknown Source)
        at java.base/java.lang.reflect.Field.setAccessible(Unknown Source)
        at com.thoughtworks.xstream.core.util.Fields.locate(Fields.java:40)
        at com.thoughtworks.xstream.converters.collections.TreeMapConverter.<clinit>(TreeMapConverter.java:50)

战列舰长

发表于 2024-2-27 17:15:21 | 显示全部楼层
本帖最后由 wuyi 于 2024-2-27 17:32 编辑

又加了一堆opens,17上继续测

--add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.Rectangle=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED

战列舰长

请校准时钟

发表于 2024-2-27 21:23:51 | 显示全部楼层
zender 发表于 2024-2-27 10:47
更新了一下,现在会强制将TimSort转换为legacyMergeSort

能正常使用了,Z佬强呀

战列舰长

发表于 2024-2-28 10:44:24 | 显示全部楼层
悲报:试图在097和0951里使用这个补丁时,报错,错误内容一样。

Caused by: java.lang.RuntimeException: java.lang.RuntimeException: javassist.CannotCompileException: [source error] syntax error near "$1==float)zender.pat"
        at zender.patch.ParticleEngineInject_PreMain.premain(ParticleEngineInject_PreMain.java:45)
        ... 6 more
Caused by: java.lang.RuntimeException: javassist.CannotCompileException: [source error] syntax error near "$1==float)zender.pat"
        at zender.patch.CombatEnginePatcher.DoPatch(CombatEnginePatcher.java:247)
        at zender.patch.ParticleEngineInject_PreMain.premain(ParticleEngineInject_PreMain.java:43)
        ... 6 more
Caused by: javassist.CannotCompileException: [source error] syntax error near "$1==float)zender.pat"
        at javassist.CtBehavior.setBody(CtBehavior.java:474)
        at javassist.CtBehavior.setBody(CtBehavior.java:440)
        at zender.patch.CombatEnginePatcher.DoPatch(CombatEnginePatcher.java:239)
        ... 7 more
Caused by: compile error: syntax error near "$1==float)zender.pat"
        at javassist.compiler.Parser.parsePrimaryExpr(Parser.java:1272)
        at javassist.compiler.Parser.parsePostfix(Parser.java:1049)


读了下代码,可能是混淆的问题?

点评

应该是已经修好了  详情 回复 发表于 2024-2-28 14:12
因为有个用到的混淆字段的名字被混淆成与关键字一致了,javassist内置的编译器直接爆炸,我想想办法不去引用这个字段  详情 回复 发表于 2024-2-28 11:31

战列舰长

 楼主| 发表于 2024-2-28 11:31:21 | 显示全部楼层
wuyi 发表于 2024-2-28 10:44
悲报:试图在097和0951里使用这个补丁时,报错,错误内容一样。

Caused by: java.lang.RuntimeException:  ...

因为有个用到的混淆字段的名字被混淆成与关键字一致了,javassist内置的编译器直接爆炸,我想想办法不去引用这个字段

战列舰长

 楼主| 发表于 2024-2-28 14:12:06 | 显示全部楼层
wuyi 发表于 2024-2-28 10:44
悲报:试图在097和0951里使用这个补丁时,报错,错误内容一样。

Caused by: java.lang.RuntimeException:  ...

应该是已经修好了

战列舰长

发表于 2024-2-28 16:30:49 | 显示全部楼层
感谢楼主,0951 096 097都能用了

此贴该加精

点评

0951和097使用有啥注意事项没,跟我说说  详情 回复 发表于 2024-2-28 17:50

战列舰长

 楼主| 发表于 2024-2-28 17:50:56 | 显示全部楼层
本帖最后由 zender 于 2024-2-28 17:53 编辑
wuyi 发表于 2024-2-28 16:30
感谢楼主,0951 096 097都能用了

此贴该加精

0951和097使用有啥注意事项没,跟我说说
我写帖子里

点评

没啥特殊的,3个版本的使用方法一样。 这是我用的启动参数 java.exe -XX:+UseZGC -XX:CompilerThreadPriority=10 -Xverify:none -Djava.util.Arrays.useLegacyMergesort=true -Djava.library.path=native\windows  详情 回复 发表于 2024-2-29 10:09

战列舰长

发表于 2024-2-29 10:09:21 | 显示全部楼层
zender 发表于 2024-2-28 17:50
0951和097使用有啥注意事项没,跟我说说
我写帖子里

没啥特殊的,3个版本的使用方法一样。

这是我用的启动参数

java.exe -XX:+UseZGC -XX:CompilerThreadPriority=10 -Xverify:none -Djava.util.Arrays.useLegacyMergesort=true -Djava.library.path=native\windows -Xms2g -Xmx6g -Xss2m -Dcom.fs.starfarer.settings.paths.logs=. -Dcom.fs.starfarer.settings.paths.saves=../saves -Dcom.fs.starfarer.settings.paths.screenshots=../screenshots -Dcom.fs.starfarer.settings.paths.mods=../mods --add-opens=java.base/jdk.internal.vm.annotation=ALL-UNNAMED --add-opens=java.base/sun.net=ALL-UNNAMED --add-opens=java.base/sun.net.util=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/sun.net.www=ALL-UNNAMED --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=jdk.unsupported/sun.misc=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED -Xlog:gc:file=gc.log:time,tid,tags -classpath  janino.jar;commons-compiler.jar;commons-compiler-jdk.jar;starfarer.res.jar;starfarer.api.jar;starfarer_obf.jar;jogg-0.0.7.jar;jorbis-0.0.15.jar;json.jar;lwjgl.jar;lwjgl_util_applet.jar;jinput.jar;lwjgl_test.jar;log4j-1.2.9.jar;lwjgl_util.jar;fs.sound_obf.jar;fs.common_obf.jar;xstream-1.4.10.jar;javassist.jar;../glassfish5/glassfish/lib/javaee.jar  -javaagent:ParticleEngineInject_PreMain.jar com.fs.starfarer.StarfarerLauncher


另外,现在的注入修改是基于096的,能不能请z大翻一下097的游戏代码,看看里面有什么新的函数需要注入?这样097也可以保持最佳性能。

点评

翻了一遍097,没有新增粒子类型  详情 回复 发表于 2024-2-29 11:28

战列舰长

 楼主| 发表于 2024-2-29 11:28:08 | 显示全部楼层
本帖最后由 zender 于 2024-2-29 11:29 编辑
wuyi 发表于 2024-2-29 10:09
没啥特殊的,3个版本的使用方法一样。

这是我用的启动参数

简单翻了一遍097,没有新增粒子类型

等097汉化出了我再细看看

海鲜水手

战列巨擘

论坛元老见习机师学院教员

发表于 2024-2-29 11:50:51 | 显示全部楼层
本帖最后由 lili 于 2024-2-29 12:15 编辑

简单对比了下j23和pe注入的效果


j23取胜了
(还是很感谢帖主的研究和开发,没想捧一踩一
叠甲:这只是简单的测试,不能全面说明问题)

同样的,两者都会对游戏战斗体验作出一定程度的优化,在低部署不激烈的情况下基本都能120帧
以下是跑分战役,打了比较多的mod,跑了20分钟目测的平均帧数,场面几乎都是900部署
(注:average fps没表现当前的帧数,他是全程平均的,所以以目测为准)






再次叠甲:当然,以上结果只是一个简单的测试,还没进行生涯的体验
PE注入会导致一些原版的爆炸消失,而且PE注入安装还是有点麻烦
相比J23:
1.下载j23,直接放游戏目录下,不用替换原有的jre
2.把mod放目录里,把特制的vmparams放目录里,不替换原有的vmparams
3.运行bat,启动

PE注入
1.下载PE,下载PE注入,下载j11,下载javaee
2.替换原有的jre,替换原有的vmparams,新建glassfish5文件夹,把PE注入里的jar放进starsector-core
3.运行starsector.exe,启动
我觉得可以简化一下





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

点评

PEI 可以支持到 j17,你可以测下 j17 + ZGC (-XX:+UseZGC)组合下的表现 j11默认的G1GC还是太慢了 j23用的是ShenandoahGC,是和ZGC同一个世代。j23最大的问题是,没有汉化  详情 回复 发表于 2024-2-29 12:16
有一说一,mod列表里要把pei打开才会替换原版的粒子系统,不开的话就只有java11支持  详情 回复 发表于 2024-2-29 11:54

战列舰长

 楼主| 发表于 2024-2-29 11:54:17 | 显示全部楼层
本帖最后由 zender 于 2024-2-29 12:00 编辑
lili 发表于 2024-2-29 11:50
简单对比了下j23和pe注入的效果

有一说一,mod列表里要把pei打开才会替换原版的粒子系统,不开的话就只有java11支持

最新版已经取消了粒子削减(考虑到pe中粒子数量没有上限设置的),建议更新下再测


pei本身应该是和java23兼容的,不过pei的agent要放在java23的后面

点评

这当然是基于我启用了pei和pe的情况,这点我不至于混淆  详情 回复 发表于 2024-2-29 12:02

海鲜水手

战列巨擘

论坛元老见习机师学院教员

发表于 2024-2-29 12:02:14 | 显示全部楼层
本帖最后由 lili 于 2024-2-29 12:14 编辑
zender 发表于 2024-2-29 11:54
有一说一,mod列表里要把pei打开才会替换原版的粒子系统,不开的话就只有java11支持

最新版已经取消了粒 ...

这当然是基于我启用了pei和pe的情况,这点我不至于混淆

帖子最新的我看还是三天前上传的?在哪里下载最新的?

作为对比,不启用pei的情况下帧数跑分战役刚开始就被击败到50了,证明我上面的测试pei是生效的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

点评

最新是昨天下午更新的,就本贴  详情 回复 发表于 2024-2-29 12:16

战列舰长

发表于 2024-2-29 12:16:19 | 显示全部楼层
lili 发表于 2024-2-29 11:50
简单对比了下j23和pe注入的效果

PEI 可以支持到 j17,你可以测下 j17 + ZGC (-XX:+UseZGC)组合下的表现

j11默认的G1GC还是太慢了

j23用的是ShenandoahGC,是和ZGC同一个世代的GC。

j23最大的问题是,会吞汉化

点评

有时间帮忙测测今天更新的能不能支持java23  详情 回复 发表于 2024-2-29 13:27
甚至g1gc也关掉了  详情 回复 发表于 2024-2-29 12:18
汉化反而不是问题,因为议长已经和mikohime取得联系,汉化的解决方案已经协调解决,详情可以qq私聊议长  详情 回复 发表于 2024-2-29 12:17

战列舰长

 楼主| 发表于 2024-2-29 12:16:44 | 显示全部楼层
lili 发表于 2024-2-29 12:02
这当然是基于我启用了pei和pe的情况,这点我不至于混淆

帖子最新的我看还是三天前上传的?在哪里下载最新 ...

最新是昨天下午更新的,就本贴

点评

ok,我对比过了,我使用的就是最新  详情 回复 发表于 2024-2-29 12:19

海鲜水手

战列巨擘

论坛元老见习机师学院教员

发表于 2024-2-29 12:17:46 | 显示全部楼层
本帖最后由 lili 于 2024-2-29 12:23 编辑
wuyi 发表于 2024-2-29 12:16
PEI 可以支持到 j17,你可以测下 j17 + ZGC (-XX:+UseZGC)组合下的表现

j11默认的G1GC还是太慢了

汉化反而不是问题,因为议长已经和mikohime取得联系,汉化的解决方案已经协调解决,详情可以qq私聊议长

最大问题大概还是得开新档

战列舰长

 楼主| 发表于 2024-2-29 12:18:15 | 显示全部楼层
wuyi 发表于 2024-2-29 12:16
PEI 可以支持到 j17,你可以测下 j17 + ZGC (-XX:+UseZGC)组合下的表现

j11默认的G1GC还是太慢了

甚至g1gc也关掉了

海鲜水手

战列巨擘

论坛元老见习机师学院教员

发表于 2024-2-29 12:19:29 | 显示全部楼层
本帖最后由 lili 于 2024-2-29 12:22 编辑
zender 发表于 2024-2-29 12:16
最新是昨天下午更新的,就本贴

ok,我对比过了,我使用的就是最新

只要使用PEI就会吞掉爆炸的粒子,请指导一下是哪里出了问题



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

点评

帖子里更新了一下使用图片,可能097缺了一些  详情 回复 发表于 2024-2-29 12:28

战列舰长

 楼主| 发表于 2024-2-29 12:28:22 | 显示全部楼层
本帖最后由 zender 于 2024-2-29 12:33 编辑
lili 发表于 2024-2-29 12:19
ok,我对比过了,我使用的就是最新

只要使用PEI就会吞掉爆炸的粒子,请指导一下是哪里出了问题

帖子里更新了一下使用图片,可能097缺了一些
除此之外我就不知道了


zender_ParticleEngineInject.jar换一下,之前老版会消除持续时间非常长的粒子

战列舰长

 楼主| 发表于 2024-2-29 13:27:05 | 显示全部楼层
wuyi 发表于 2024-2-29 12:16
PEI 可以支持到 j17,你可以测下 j17 + ZGC (-XX:+UseZGC)组合下的表现

j11默认的G1GC还是太慢了

有时间帮忙测测今天更新的能不能支持java23

点评

实测23真能用,把参数放进miko_R3.txt就行,我在跑benchmark,半小时后来汇报。  详情 回复 发表于 2024-2-29 14:10

战列舰长

发表于 2024-2-29 13:47:18 | 显示全部楼层
23在loading时退出

21709 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException
        at java.base/java.lang.Thread.stop(Thread.java:1659)
        at com.fs.graphics.OO0O.class(Unknown Source)
        at com.fs.starfarer.loading.ResourceLoaderState.init(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher.super(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
        at java.base/java.lang.Thread.run(Thread.java:1575)

点评

ParticleEngineInject_PreMain.jar换了吗  详情 回复 发表于 2024-2-29 13:52

战列舰长

 楼主| 发表于 2024-2-29 13:52:49 | 显示全部楼层
wuyi 发表于 2024-2-29 13:47
23在loading时退出

21709 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.Unsupporte ...

ParticleEngineInject_PreMain.jar换了吗

点评

换过了,2/28 14:07 的  详情 回复 发表于 2024-2-29 14:01

战列舰长

发表于 2024-2-29 14:00:05 | 显示全部楼层
我看了下另一个使用java21的MOD,里面大概做了这些事情:


除了修改XStream和Cleaner外,Thread也针对性的修改过了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

战列舰长

发表于 2024-2-29 14:01:14 | 显示全部楼层
zender 发表于 2024-2-29 13:52
ParticleEngineInject_PreMain.jar换了吗

换过了,2/28 14:07 的

点评

刚更新了新的  详情 回复 发表于 2024-2-29 14:03

战列舰长

 楼主| 发表于 2024-2-29 14:03:24 | 显示全部楼层
本帖最后由 zender 于 2024-2-29 14:09 编辑
wuyi 发表于 2024-2-29 14:01
换过了,2/28 14:07 的

刚更新了新的,2月29 更新1

点评

可以在jdk23上跑啦  详情 回复 发表于 2024-2-29 14:27

战列舰长

请校准时钟

发表于 2024-2-29 14:10:26 | 显示全部楼层
zender 发表于 2024-2-29 13:27
有时间帮忙测测今天更新的能不能支持java23

实测23真能用,把参数放进miko_R3.txt就行,我在跑benchmark,半小时后来汇报。

战列舰长

发表于 2024-2-29 14:27:50 | 显示全部楼层
zender 发表于 2024-2-29 14:03
刚更新了新的,2月29 更新1

可以在jdk23上跑啦

战列舰长

发表于 2024-2-29 14:31:54 | 显示全部楼层
试了一下,可以在jdk21跑了

战列舰长

请校准时钟

发表于 2024-2-29 15:19:07 | 显示全部楼层
Java 23 + PEI:



仅Java 23:



操作严格遵照添加参数后启用的方式,仅使用Java 23时从miko_R3.txt里去掉了这些参数并禁用了mod,都跑了20分钟。
Java 23能在近似的平均帧体验下维持更高的战斗规模(450对604),所以我认为目前PEI虽然可以简单支持Java 23,不过可能并没有起到期待的效果。是否可能是因为23有特别优化的原因?

晚上有时间的话用家里的电脑再跑一次试试,这台是单位的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

点评

PEI的java23没有开启更高级的gc,可以尝试开启zgc,参数如下 -XX:+UseZGC  详情 回复 发表于 2024-2-29 16:05

战列舰长

 楼主| 发表于 2024-2-29 16:05:51 | 显示全部楼层

PEI的java23没有开启更高级的gc,可以尝试开启zgc,参数如下
-XX:+UseZGC

点评

因为我是把参数直接加在miko_R3里面了,所以启动的时候使用的是miko 23包设置的Shenandoah,两次都是在Shenandoah环境下测试的。我觉得可能是我这破电脑显卡跑完了或者跑在了核显上导致的,回家我用独显直连跑一下。  详情 回复 发表于 2024-2-29 16:35

战列舰长

请校准时钟

发表于 2024-2-29 16:35:55 | 显示全部楼层
zender 发表于 2024-2-29 16:05
PEI的java23没有开启更高级的gc,可以尝试开启zgc,参数如下
-XX:+UseZGC

因为我是把参数直接加在miko_R3里面了,所以启动的时候使用的是miko 23包设置的Shenandoah,两次都是在Shenandoah环境下测试的。我觉得可能是我这破电脑显卡跑完了或者跑在了核显上导致的,回家我用独显直连跑一下。

点评

虽然但是,你用miko的可能不会加载我的注入的说 手动加了ParticleEngineInject_PreMain.jar的agent了吗  详情 回复 发表于 2024-2-29 18:02

战列舰长

 楼主| 发表于 2024-2-29 18:02:54 | 显示全部楼层
Tick_Tock_Man 发表于 2024-2-29 16:35
因为我是把参数直接加在miko_R3里面了,所以启动的时候使用的是miko 23包设置的Shenandoah,两次都是在Sh ...

虽然但是,你用miko的可能不会加载我的注入的说
手动加了ParticleEngineInject_PreMain.jar的agent了吗

点评

是按照主楼加上了的,我编辑了miko的.txt文件,然后才用.bat启动的,我晚上回家再看下。  详情 回复 发表于 2024-2-29 18:14

战列舰长

请校准时钟

发表于 2024-2-29 18:14:17 | 显示全部楼层
zender 发表于 2024-2-29 18:02
虽然但是,你用miko的可能不会加载我的注入的说
手动加了ParticleEngineInject_PreMain.jar的agent了吗 ...

是按照主楼加上了的,我编辑了miko的.txt文件,然后才用.bat启动的,我晚上回家再看下。

战列舰长

发表于 2024-2-29 18:27:34 | 显示全部楼层
[游戏日志]

13998442 [Thread-6] INFO  sound.oo0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  - Cleaning up music with id [ark6.ogg]
13998701 [Thread-9] INFO  sound.oo0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  - Creating streaming player for music with id [fubaidiaoling.ogg]
13998702 [Thread-9] INFO  sound.H  - Playing music with id [fubaidiaoling.ogg]
13998857 [Thread-2] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.combat.ShieldAPI.isOff()" because the return value of "com.fs.starfarer.api.combat.ShipAPI.getShield()" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.api.combat.ShieldAPI.isOff()" because the return value of "com.fs.starfarer.api.combat.ShipAPI.getShield()" is null
        at data.shipsystems.FM_FluxBurn.apply(FM_FluxBurn.java:34)
        at com.fs.starfarer.combat.systems.F.advance(Unknown Source)
        at com.fs.starfarer.combat.entities.Ship.advance(Unknown Source)
        at com.fs.starfarer.combat.CombatEngine.advanceInner(Unknown Source)
        at com.fs.starfarer.combat.CombatEngine.advance(Unknown Source)
        at com.fs.starfarer.combat.CombatState.traverse(Unknown Source)
        at com.fs.state.AppDriver.begin(Unknown Source)
        at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
        at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)

堂堂报错。虽然我觉得是java21锅

战列舰长

发表于 2024-2-29 19:29:58 | 显示全部楼层
没事了,是幻想工造船的问题(单独开java21也报错,java8直接未响应)

战列舰长

请校准时钟

发表于 2024-3-1 00:23:30 | 显示全部楼层
本帖最后由 Tick_Tock_Man 于 2024-3-1 10:42 编辑

回家试了一下,都跑了30分钟

Java 23 + PEI:


仅Java 23:


仅在我家庭电脑相关条件下PEI的体验更好,这是因为它能维持更好的最低帧,从而带来更平滑的战斗。虽然平均帧数低一点,但是benchmark的平均帧并不作数,前期的几十秒空旷的战场带来的超高帧数很容易使得后续的平均数计算出现不公允的现象(如果benchmark中长时间没有接战,显示平均帧甚至可能有20以上增幅,但一旦开始接战则体验根本没有改变,这是我个人认为平均帧不置信的原因之一)。我使用PEI实际几乎不怎么低于40帧,少情况下下降到35左右,但只有Java 23时,帧数上下波动大,最低时能到25。

0301 10:20编辑:
看到有朋友踩了这楼,我觉得有必要增加一些补充说明:
请不要误会我的结论,PEI是Z佬刚写出来的组件,目前还在测试阶段,在不同的硬件标准下发生任何帧数变化都有可能。相对的,miko已经前后调试Java 23包2年以上,内部测试也已经进行1年以上,其间有多少反馈和修改,我们是不得而知的。作为志愿测试者应该有相应的技量和心态,对发生的任何情况予以反馈即可。如果在不同硬件情况下,PEI和Java 23的表现出现了帧数冲突,一台电脑上PEI更优,另一台电脑却更低,我觉得这是很正常的事情,恐怕只是双方还没有更好地适配导致表现不平稳罢了。另:我的帧数很难看是因为我有184个mod正在运行,个人认为已经是比较高压环境。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

战列舰长

发表于 2024-3-1 11:57:39 | 显示全部楼层
本帖最后由 wuyi 于 2024-3-1 12:37 编辑

急报:请不要使用ZGC,改用ShenandoahGC,即-XX:+UseShenandoahGC

openJDK21.0.2 LTS(非miko用的java23 ea)+PEI,benchmark跑到战场规模450的时候,用ZGC在75-80波动,用ShenandoahGC朝着90去了。除了设置GC外,未添加其他调优参数。

话说miko版里用的也是ShenandoahGC。

请各单位测试确认。

说实话,jdk版本升级带来的影响和PEI带来的好处是不相上下的。我一开始是试用的jdk8版本的PEI,帧数从55提升到70+,那时我已经很满意了。后来又看到PEI j11的版本。我之前也测过其他人的jdk21和jdk23的MOD,但由于兼容存档,还有汉化等原因,对那两个版本并不满意,而且提升也没有足够大,也是70+的样子。也是怀着试试的心情测了PEI 11,至少兼容性和汉化都没有问题。虽然那时PEI 11提升并不大,也就是70+,但我知道最大的障碍已经跨过去了(8->11)。接下来我又试了17,还有21,z大更新非常勤快,PEI也适配到了21。23里用PEI我也试过,能用,但不推荐,毕竟java23还在ea,小版本走得很快,等出正式版了再考虑用吧。

总之,很推荐这款性能MOD,性能足够一流,也没有兼容存档和汉化问题。
*滑块验证:

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2024-4-28 01:51

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

快速回复 返回顶部 返回列表