Skip to content

Conversation

@DuncanRuns
Copy link
Member

@DuncanRuns DuncanRuns commented Dec 8, 2025

Hermes Sauce: https://github.com/DuncanRuns/Hermes/tree/499b1e89f21fe6ab408e7aeb4ec7470ffe2e3ba5
Hermes Core Sauce: https://github.com/DuncanRuns/HermesCore/tree/e1f39db55894eea5e941185ba524a2ad4279dc20

Check code really hard for:

  • No side effects on vanilla methods
  • No incorrect behavior related to files (e.g. creating a world folder too early)

Testing (Hermes 1.15.2/1.16.1):

Testing (Hermes Core):

  • The game successfully:
    • Launches
    • Enters a world without crashing
    • Exits a world without crashing
    • Creates an instance info file in the global/local hermes directories
  • on versions:
    • 1.1
    • 1.5.2
    • 1.6.1
    • 1.6.4
    • 1.7.2
    • 1.7.4
    • 1.7.10
    • 1.16.1
    • 1.21.11
    • 1.21.11_unobfuscated

@DuncanRuns DuncanRuns added the new mod A mod proposed for legalization label Dec 8, 2025
@DuncanRuns DuncanRuns changed the title Hermes v0.4.0 for 1.15.2 and 1.16.1 Hermes v0.5.0 for 1.15.2 and 1.16.1 Dec 9, 2025
@DuncanRuns DuncanRuns changed the title Hermes v0.5.0 for 1.15.2 and 1.16.1 Hermes v0.5.1 for 1.15.2 and 1.16.1 Dec 9, 2025
@DuncanRuns
Copy link
Member Author

DuncanRuns commented Dec 9, 2025

Improvements v0.4.0->v0.5.1:

  • make getsavepath thread-safe
  • alive closed field
  • rename gettimeofday to gettime
  • fix japanese characters in play log
  • dont print nonplayer commands
  • nondefault_gamerules
  • better target in createworldscreen (datapack failure still results in seed set), wrapmethod try-finally
  • sharedadvancements compat
  • gameinfo @ serializedname
  • mod/mc version in playlog
  • itemstack codec/toTag
  • fix dedicated server

originally janky contaria notes btw, all complaints and threats to contaria

contariaa
contariaa previously approved these changes Dec 9, 2025
Copy link
Member

@contariaa contariaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6 hours of work later

@DuncanRuns
Copy link
Member Author

DuncanRuns commented Dec 10, 2025

Diff: DuncanRuns/Hermes@adb9842...fbc342a
Previous implementation was bugging me, and I found out about ByteArrayOutputStream which was practically built for this job.
The 128 is an initial capacity, it can grow.
Technically could take up a large amount of memory, if a sufficiently sized play log line occurs. Candidates for this could be advanced world generation options in the initialize log type, massive item data in inventory_slots, or extremely long commands entered via chat.
The object is per instance, so any absurd memory usage would be cleaned up on world exit.

@DuncanRuns DuncanRuns changed the title Hermes v0.5.1 for 1.15.2 and 1.16.1 Hermes v0.5.2 for 1.15.2 and 1.16.1 Dec 10, 2025
contariaa
contariaa previously approved these changes Dec 11, 2025
Copy link
Member

@contariaa contariaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be interesting to look at mpk hotbar load to see how big the buffer gets, but i agree its not an issue

@DuncanRuns
Copy link
Member Author

might be interesting to look at mpk hotbar load to see how big the buffer gets, but i agree its not an issue

Tested this, 52817 characters long, so should be ~0.05 MB, not really a problem at all, even like x40 you'll get ~2 MB which is somewhat notable but still fine, and who tf is filling inventory with mpks

@DuncanRuns DuncanRuns marked this pull request as draft December 15, 2025 21:05
@DuncanRuns DuncanRuns changed the title Hermes v0.5.2 for 1.15.2 and 1.16.1 Hermes v0.9.0 for 1.15.2 and 1.16.1 & Hermes Core for all versions Jan 1, 2026
@DuncanRuns
Copy link
Member Author

Diff v0.5.2 -> v0.9.0: DuncanRuns/Hermes@fbc342a...499b1e8

@DuncanRuns DuncanRuns marked this pull request as ready for review January 1, 2026 07:27
@DuncanRuns
Copy link
Member Author

I should note that Hermes includes Hermes Core, so the core doesn't need to be installed for it to work, but having both installed is also not a problem either.

@DuncanRuns DuncanRuns marked this pull request as draft January 2, 2026 19:28
@DuncanRuns DuncanRuns changed the title Hermes v0.9.0 for 1.15.2 and 1.16.1 & Hermes Core for all versions Hermes v0.10.0 for 1.15.2 and 1.16.1 & Hermes Core for all versions Jan 2, 2026
@DuncanRuns DuncanRuns marked this pull request as ready for review January 2, 2026 23:13
@DuncanRuns
Copy link
Member Author

Changes v0.9.0 -> v0.10.0:
DuncanRuns/Hermes@499b1e8...dded32d

@DuncanRuns DuncanRuns marked this pull request as draft January 4, 2026 17:19
@DuncanRuns
Copy link
Member Author

New change at some point when I have more sleep, game_info will include some srigt options

@DuncanRuns DuncanRuns changed the title Hermes v0.10.0 for 1.15.2 and 1.16.1 & Hermes Core for all versions Hermes v0.11.0 for 1.15.2 and 1.16.1 & Hermes Core for all versions Jan 9, 2026
@DuncanRuns
Copy link
Member Author

DuncanRuns commented Jan 9, 2026

Diff v0.10.0 -> v0.11.0: DuncanRuns/Hermes@dded32d...e5e1c10

SRIGT stuff is kind of cringe but important for context of what retime means (and possibly what igt means)

Eventually SRIGT should be rewritten and should do hermes:disable speedrunigt_integration_v1, and implement hermes output itself

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new mod A mod proposed for legalization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants