Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polymorph Seed Result Integration #252

Open
Smidget opened this issue Nov 28, 2022 · 1 comment
Open

Polymorph Seed Result Integration #252

Smidget opened this issue Nov 28, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@Smidget
Copy link

Smidget commented Nov 28, 2022

Hey there! I've been using your tool quite a bit as I've just gotten back into speedrunning the game, and I've discovered some interesting ways the game handles polymorphing and would like to suggest/assist with if I can a feature: Searching possible polymorph results for a seed. I have a poor quality video at the bottom of this post (Not sure why the desktop text got compressed so bad but you can get the gist) that explains the concept: But essentially there are 2 seeds (Or maybe 1 seed I'm just seeing between 2 different 32 bit values) that are set when you launch the game. These seeds determine what you OR an enemy will polymorph into next.

Now there's a few interesting things about these seeds:

  1. They always progress in the same order NO MATTER WHAT WORLD SEED YOU'RE ON. So for example: If you were on seeds 112233 and 223344 and when you morphed the numbers changed to 113322 and 332244, if you EVER happen to be on the seeds 112233 and 223344 again the next results will still always be 113322 and 332244. So for the sake of simplicity: It's a list that starts in the middle somewhere and counts up by one for every morph.

  2. Those numbers don't influence the poly result alone. They work with the world seed to determine the poly result. So on world seed 20201111 for example 112233 and 223344 might turn you into an acid spitter, but on 20201011 it would be a different result.

  3. The seeds carry over through new games as long as the game isn't restarted. Yes: You can start a new one and the polymorph list picks up where it left off the previous run as long as the game doesn't restart due to mod changes.

Why do I want this feature you may ask? Well there's a couple answers.

A)
In runs where multiple polymorphs are done in succession, I am in firm belief you can detect a cheated run with an "impossible" morph combination. Sort of like how they just caught a Minecraft speedrunner with impossible chest loot combinations. The game progresses the seeds in a list like I said. Now: If you had all possible polymorph seeds and all possible world seeds, with a tool made for it you can see if a combination of polymorphs over the course of a run were really possible on that world seed by being able to visualize and search through the list of possible polymorphs for said world seed.

B)
If we do ever crack what determines the 2 starting polymorph seeds, lets say we find seeds with (For example) 3 worms and then an acid spitter in succession: It could open up a different strategy for set seed categories using rng manipulation if tools that may eventually get made aren't allowed in runs. Also, for the time being with what we do know if we had the ability to look at polymorph results we could find seeds that we can set the polymorph seeds in illegitimate runs for TASes or concepts for new categories and strategies as I demonstrated in my video.

Further Notes

  1. You can get the game to skip over a polymorph seed on the list by triggering chaotic polymorphine via splashing it on yourself sometimes. Almost as if the game thinks you morphed twice and progresses 2 spaces on the polymorph list.

  2. Yes polymorph seeds of 0 are possible whether it's intentional or not! I have a snippet linked below of that as well. (Edit: It's 4:19AM and I'm still tinkering with this. This makes me believe even more that its 1 seed and it's just "0" because the first half of the number was all 0s.)

  3. The seeds are at different addresses across versions (But still next to eachother! That's why I think it may actually be 1 seed). Not sure if that's the case for ALL versions but I've tested it on various of the 43 1.0 builds I've downloaded and they've all been at different locations.

So that's about it. I'll link my video with explanation down below. I hope you get a chance to read this! If you want more information or just want to discuss it you can find me on discord @Smidget#6974 in my DMs, the Noita discord, or the Midas Circuit discord. I'd love to be able to give you whatever I find/have already found.

(Had to edit this. Links wouldn't actually link.)
Explanation:
https://www.youtube.com/watch?v=rn_1dKHd-8Q&t=14s

Poly Seed 0:
https://imgur.com/fmRkuP5

@Smidget Smidget added the enhancement New feature or request label Nov 28, 2022
@TwoAbove
Copy link
Owner

This is fascinating!

Currently, I'm working on a few QoL updates + pacifist chest. After that, I'll take a look at this and see if it's more or less feasible to do within the app. If it's relatively quick to implement, I'll prioritize this. If not, then, sadly, it'll have to wait until the map gen update is finished.

Thanks for reaching out!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants