Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Training a 4B model to produce 81% faster query plans than Postgres(rohanbansal.com ↗)
    55comments
  2. Breaking the 1.58-bit Barrier for Ternary LLMs(arxiv.org ↗)
    5comments
  3. Xiaomi Mimo 2.6 live post-training dashboard(xiaomi.com ↗)
    44comments
  4. Nvidia announces native GPU programming in Rust(nvidia.com ↗)
    8comments
  5. Small programming tricks(will-keleher.com ↗)
    166comments
  6. AWS says it can't restore some data from mideast facilities struck by Iran(wsj.com ↗)
    102comments
  7. Reversing Factorio's RNG(gegell.github.io ↗)
    10comments
  8. Performance Improvements in .NET 11(devblogs.microsoft.com/dotnet ↗)
    8comments
  9. Backups Aren't Simple(filipovski.net ↗)
    discuss
  10. Accurate Models of AMD Matrix Cores(arxiv.org ↗)
    5comments
  11. The engineering behind the US Strategic Petroleum Reserve(johnjwang.com ↗)
    discuss
  12. Japan's book scene is moving from bookstores to libraries(untranslatedjp.substack.com ↗)
    16comments
  13. How good are frontier models at physics?(arxiv.org ↗)
    18comments
  14. Dream-RSI: Recursive Self-Improvement through Evolving Worlds(arxiv.org ↗)
    49comments
  15. Anatomy of a Texture(agentlien.github.io ↗)
    10comments
  16. Mistral X Mozilla: Private, Multilingual AI Browsing(mistral.ai ↗)
    182comments
  17. WalShadow: Sub-second Postgres replication to ClickHouse from physical WAL(clickhouse.com ↗)
    5comments
  18. Show HN: An e-ink frame that hears birds and draws them as 1800s illustrations(github.com/arnegiacomo ↗)
    236comments
  19. Vectorized and performance-portable Quicksort (2022)(googleblog.com ↗)
    24comments
  20. Anecdotally, programmers dislike "reduce"(evanhahn.com ↗)
    107comments
  21. Why Does the Universe Expand?(cosmicave.org ↗)
    1comments
  22. I replaced my brown-noise browser tab with a menu bar app(oldmanrahul.com ↗)
    discuss
  23. Reverse-engineered Jev-like model(github.com/vinnylarouge ↗)
    5comments
  24. Hackers Got Inside a Flock Camera(wired.com ↗)
    200comments
  25. Training Text-to-Image Models 3.6× Faster(linum.ai ↗)
    1comments
  26. macOS 27 Golden Gate – Review(arstechnica.com ↗)
    93comments
  27. The Siberian Ice Maiden and the Scythian World(patrickwyman.substack.com ↗)
    4comments
  28. Kyber (YC W23) Is Hiring a Forward Deployed Engineer(ycombinator.com ↗)
    discuss
  29. The DeepMind Institute(deepmind.com ↗)
    39comments
  30. Tell the speakers that you liked their talks(ohhelloana.blog ↗)
    74comments

Reversing Factorio's RNG

87 pointsby 4d agogegell.github.io
10 comments
2h agoHN ↗

Yeah, no notes. It's remarkable.

TL;DR: Wired up an in-game predictor of RNG output and used it to only craft legendary items when RNG would line up to roll legendary.

From base to legendary at a suprisingly high rate. Look very closely at the video at the top of the post - what I was seeing didn't sink in until I had finished the article. Amazing.

1h agoHN ↗

I did an easier version of this in my college intro class. There was a class competition that involved rock paper scissors as a subcomponent, and ties were broken with randomness. You could rig Java’s prng so you would win all ties.

The prng was seeded with usec time at first call. I called the rng a bunch of times to harvest entropy, and scanned the plausible usec times to find the seed. Then I primed the prng so I would win ties.

Frankly, I assume I implemented this wrong, but the theory was there lol.

1h agoHN ↗

That’s not at all what the article proposed. The author constructed and transpose to the linear shift register coefficients and built a circuit network based on this to predict the next state (in the sandbox) and direct recipes.

1h agoHN ↗

From the article:

Sampling the current RNG through observations,

Computing the current internal RNG state,

Predicting the future internal states,

Calculating corresponding quality levels for each future call, and finally

Making use of the predicted levels with some adapters.

The entropy->seeds (internal RNG state) step took more math of course. Frankly, I wouldn’t be surprised if they could have extracted the seeds without the math with a bit of RE and memory inspection.

The version I did wasn’t predicting quality of course, it was predicting tie breakers

1h agoHN ↗

Stardew Valley has two random number seeds. One is the normal character seed. The other, your multiplayer ID, can be determined by analyzing the save file.

Except! On the Switch, you can't easily access the save file AND the random number generator is different than on PC. There is a seed cracker that looks at your traveling cart listing and calculates the character seed. Maybe because it's less important and harder to observe, I haven't found any tool to crack the other seed and don't have time to attempt writing it myself.

By inspecting cracked geode contents, you should be able to isolate your multiplayer ID and then predict random events on Nintendo just as PC players have done for the last decade with access to the save file.

The C# code for the game is online and the Switch RNG is known, so you never have to work in the dark. It's three steps: ensure your Switch RNG implementation works by testing against the normal seed, ensure your geode RNG implementation works by testing against the PC RNG, and then apply the Switch RNG to the geode function enough times that only one seed could create your observed sequence.

-----

Two semi-related open questions: Are you able to solve as quickly while starting at ANY geode as you'd be solving from the first geode? Does the RNG eventually repeat, so it actually doesn't matter what your multiplayer ID is as long as you observe a unique sequence, since there will only be one continuation of that sequence?

42m agoHN ↗

by far the blackest magic I ever saw for that game.

I'm an upper intermediate at Factorio, resorting to someone else's blueprints only for belt balancers and rail intersections, and I can't even begin to figure out how it's done.

34m agoHN ↗

We chose taus88 mainly because it is the fastest from boost’s generators.

That's an RNG from 1996. It seems neither recent C++ standards, nor boost, know anything about the modern PRNGs that are much faster yet better at passing test suites

EDIT: Ok the above quote was from 2014, and boost seems to know some now! https://www.boost.org/doc/libs/latest/doc/html/boost_random/...