绿巨人粉碎(IMG限制调整器)

绿巨人粉碎(IMG限制调整器)

GTA 4 模组太久以来一直被 .img 文件限制所束缚。HULK SMASH 这些限制!FusionFix 即将真正超载!

HULK SMASH 1.5

HULK SMASH 1.5

一个用于 GTA IV 和 Episodes from Liberty City 的流式加载限制调整器。

好吧,各位。我有一份需要 24/7 随时待命的全职工作,还有一个比我小 60 岁的儿子(没错,你没看错,我能说什么呢?我依然宝刀未老!),他目前有睡眠问题,这意味着当爹的也有睡眠问题(已经想不起上次睡整觉是什么时候了),再加上一个父亲必须做的所有其他事情,所以我用于测试这个模组的时间很有限,请把它当作BETA版看待。不过,我自己确实做了一些测试,在一些快速的折磨测试中,我能够加载远超 255 个映像限制(使用 1080)并且仍然能够正常游玩游戏(即——地图上没有巨大的空洞)。我会使用 Zolika 的修改器在地图上以极远的距离快速传送,也曾经在加载了超过 300 个映像文件的情况下开车从地图的一端到另一端,它都能正常工作。我还安装了一些当时流行的模组,包括 Reality IV、DLSS IV、Fusion Fix 等。所以你们来试试看,然后告诉我情况如何。

HULKSMASH 是一个 .asi 插件,它解除了游戏对 255 个 .img 归档的限制,因此包含数百个 .img 文件的大型模组配置也能加载。它还可以提高车辆和行人的流式加载预算(默认关闭),并且会写入一份崩溃日志,帮助追踪游戏崩溃时出了什么问题。

  • 支持的游戏版本: GTAIV.exe 1.0.7.0、1.0.8.0 和 1.2.0.59(完整版)
  • 适用于: GTA IV、The Lost and Damned 和 The Ballad of Gay Tony

安装

  1. 你需要一个 ASI 加载器,例如 Ultimate ASI Loader(FusionFix 已经包含了它)。

  2. 将 HULKSMASH.asi 和 HULKSMASH.ini 复制到 GTAIV.exe 旁边的 plugins 文件夹中。

  3. 启动游戏,然后打开 plugins\HULKSMASH.log。它应该显示:

    HULKSMASH 1.5
    ...
    OK: 1023 archives enabled (58 patches applied) 或类似内容。
    

文件

文件 说明
HULKSMASH.asi 插件本体
HULKSMASH.ini 设置。每个节都有自己的 Enabled 开关,注释解释了每个键的作用。
HULKSMASH.log 每次启动时写入:每个节做了什么。由插件创建。
HULKSMASH.crash.log 崩溃记录,在游戏会话之间保留(超过 512 KB 后重新开始记录)。由插件创建。在测试运行前删除它可获得干净的记录。

设置

[ArchiveLimit] — 提高 .img 归档限制(默认开启)

键 默认值 含义
Enabled 1 0 关闭该节。
MaxArchives 1023 255 或更小 = 原版游戏。其他值会向上取整为 511、1023 或 2047(最大值)。在 1023 时,每个归档仍可高达 4096 MB。
ReportUsage 1 向 HULKSMASH.log 添加一行类似 [Usage] archives in use: 368 of 1023 (when the game closed) 的内容,让你看到距离限制还有多远。0 = 关闭。

[VehicleBudget] — 车辆模型的流式加载内存,即“出租车 bug”修复(默认关闭)

键 默认值 含义
Enabled 0 1 开启。
Value 120000000 新的预算,单位为字节(游戏默认 40,000,000)。
Overwrite 0 0 表示如果另一个模组或 exe 补丁已经更改了该值,则保持不变;1 表示始终设置。

[PedBudget] — 行人模型的流式加载内存(默认关闭)

键 默认值 含义
Enabled 0 1 开启。
Value 75000000 新的预算,单位为字节(游戏默认 50,000,000)。
Overwrite 0 与 [VehicleBudget] 相同。

[CrashLog] — 将严重异常记录到 HULKSMASH.crash.log(默认开启)

键 默认值 含义
Enabled 1 0 关闭崩溃日志。

解读崩溃日志

崩溃日志记录的是首次机会异常:游戏或其他模组可能仍会处理它们,所以并非每一条记录都是崩溃。重要的是游戏关闭前的最后一条记录。 每条完整记录会显示异常、发生异常的模块和偏移量、正在使用的归档数量、寄存器、堆栈以及已加载的模块。

大多数配置中会出现以下无害情况:

  • 游戏启动时(archives in use: 0)的最初几秒内出现几个访问违规
  • 游戏继续运行时在游玩过程中重复出现的访问违规(来自另一个模组;已被处理)
  • 退出游戏时 GTAIV.exe 中最后出现的一个访问违规(游戏的关闭过程,不是本插件)

如果某条记录提到了 HULKSMASH stub 或 HULKSMASH archive table,说明涉及插件自身的代码或内存,请报告该记录。

崩溃日志从不更改或隐藏异常:游戏会像没有它时一样崩溃或继续运行。

兼容性

  • 插件必须在启动时作为 .asi 加载。如果它在游戏已经建立归档表之后才加载,则不会更改任何内容,并会在 HULKSMASH.log 中说明。
  • 每个字节在更改前都会被检查。如果另一个模组已经修补了同一位置,或者 exe 不是受支持的版本,则该节不会更改任何内容,日志会说明原因。其他节不受影响。
  • 不要与其他归档限制补丁一起使用。

更新日志

1.5

  • 修复: 当 ReportUsage=1 时,The Ballad of Gay Tony 在加载后不久崩溃(堆损坏)。1.4 在后台线程上统计归档,游戏中多出的一个线程就足以引发崩溃。1.5 没有线程:它在崩溃日志记录异常时以及游戏关闭时写入 [Usage] 行。

1.4(从未发布)

  • 添加了 ReportUsage([Usage] 行)以及崩溃日志记录中的归档计数。
  • 已知问题:在 ReportUsage=1 时 TBoGT 会崩溃。请使用 1.5,或设置 ReportUsage=0。

从源代码构建

参见 HULKSMASH_source_1.5.zip(内含 SOURCE_NOTES.txt)。

  • Windows: 安装 LLVM(winget install LLVM.LLVM),解压到较短路径(如 C:\HULKSMASH),然后运行 build_win.cmd。
  • Linux: ./build.sh(需要 clang、lld 和 llvm-dlltool)。

test/ 中的测试工具仅在能运行 32 位程序的 Linux 上运行。

完整披露:

Claude AI 参与了此模组的创建。

如果你对此有意见,我不想听。

还有,别再纠结缩略图了,天哪各位。

你们就没有更重要的事情要操心吗?