<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: Pannoniae</title><link>https://news.ycombinator.com/user?id=Pannoniae</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 08 Oct 2026 02:49:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Pannoniae" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Pannoniae in "God of War on PSP, recompiled to WebAssembly and running in the browser"]]></title><description><![CDATA[
<p>Sure, but the LLM can either
1. recreate the assets from the good old "view it from multiple angles" trick
2. exfil the running game from the servers :P</p>
]]></description><pubDate>Wed, 07 Oct 2026 19:53:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49997980</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49997980</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49997980</guid></item><item><title><![CDATA[New comment by Pannoniae in "God of War on PSP, recompiled to WebAssembly and running in the browser"]]></title><description><![CDATA[
<p>And why do you think people won't be able to rip the streamed games too?</p>
]]></description><pubDate>Wed, 07 Oct 2026 16:29:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49995069</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49995069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49995069</guid></item><item><title><![CDATA[New comment by Pannoniae in "Vibecoding Photoshop: Time and pressure"]]></title><description><![CDATA[
<p>Stricter NDAs protect against <i>insiders</i>, not outsiders.<p>More security restrictions yes, that <i>will</i> work, but unless you actually go airgap all the code, there's an access point somewhere which can be vulnerable, either through the network or through the human init?</p>
]]></description><pubDate>Wed, 07 Oct 2026 02:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49987449</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49987449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49987449</guid></item><item><title><![CDATA[New comment by Pannoniae in "AnyPS5: Port PS5 binaries to PC without emulation (87% system libraries mapped)"]]></title><description><![CDATA[
<p>How would cloud-only prevent this? Do you think LLMs can't exfil the game from the server? They're incredibly persistent and are willing to try many things. Random credentials, vulnerabilities in the game servers / dev machines, or even social engineering the devs/the deployment.</p>
]]></description><pubDate>Wed, 07 Oct 2026 02:26:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49987273</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49987273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49987273</guid></item><item><title><![CDATA[New comment by Pannoniae in "Vibecoding Photoshop: Time and pressure"]]></title><description><![CDATA[
<p>No I'm dead serious. I've seen a whole a bunch of talk about "omg they'll move to cloud gaming and you'll own nothing anymore". Putting aside the obvious barriers everyone is talking about (latency, lack of uptake by consumers, etc.), there's also the elephant in the room - if you can point an LLM to a binary, it's not <i>that</i> much a stretch to point an LLM to try to hack or social engineer its way into where the game is hosted. Or a random dev machine. Every script kiddie will be doing that...</p>
]]></description><pubDate>Wed, 07 Oct 2026 02:22:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49987244</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49987244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49987244</guid></item><item><title><![CDATA[New comment by Pannoniae in "Vibecoding Photoshop: Time and pressure"]]></title><description><![CDATA[
<p>and why do you think it's safe in the cloud / in a TPM?</p>
]]></description><pubDate>Wed, 07 Oct 2026 02:02:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49987075</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49987075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49987075</guid></item><item><title><![CDATA[New comment by Pannoniae in "The work by Valve's Timur Kristóf on improving old AMD GPUs on Linux"]]></title><description><![CDATA[
<p>I've seen the bug with my very eyes because I wrote that renderer and I did test on all three vendors:P<p>Zero debuginfo-related warnings on any driver (except the usual "buffer location is VIDMEM" spam), NV is fine, intel is fine, my (RDNA) AMD card is fine on both Windows and Linux, user with a Vega 64 isn't fine.<p>We dug into it together and it literally swaps the colours somewhere, and the user said that it crashes randomly on games (confirmed by others, not one-off HW failure), does the same colourswap or have very glitched rendering.<p>I guess the only salvation is that people usually play DX games under Windows and the bug didn't happen over DX11. But the same rendering restricted to even standard GL3.3 just got BGRA-swapped.</p>
]]></description><pubDate>Tue, 06 Oct 2026 03:44:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49973901</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49973901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49973901</guid></item><item><title><![CDATA[New comment by Pannoniae in "Beating the Compiler"]]></title><description><![CDATA[
<p>JIT and SMC are two different things because JIT is write-once-then-execute, SMC is write-many-then-execute-many. Even with reoptimisation like the JVM, you're not modifying the existing code but writing it onto a new page. <i>That</i> is the key difference, you're not modifying existing written-out instructions, you're creating new ones.</p>
]]></description><pubDate>Mon, 05 Oct 2026 17:45:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49968002</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49968002</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49968002</guid></item><item><title><![CDATA[New comment by Pannoniae in "Beating the Compiler"]]></title><description><![CDATA[
<p>"We’d like to initialise our Vec in parallel, otherwise we’d have to wait for the main thread to fill the entire Vec with a placeholder value only to then have our threads overwrite those placeholder values."<p>Talk about overengineering :P Multithreaded vector initialisation instead of just...skipping it?</p>
]]></description><pubDate>Mon, 05 Oct 2026 17:37:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49967899</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49967899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49967899</guid></item><item><title><![CDATA[New comment by Pannoniae in "Beating the compiler (2024)"]]></title><description><![CDATA[
<p>Self-modifying code is a meme unless you're writing an obfuscator... (but even then you can hook the execution so it's a pretty low-tier anti-reversing effort ngl)<p>For perf reasons it's the equivalent of shooting your leg off to lose weight. You're flushing the instruction cache and breaking prefetch, leading to a huge stall. Then you do it again. And again. It hasn't been in vogue since the 80s...</p>
]]></description><pubDate>Mon, 05 Oct 2026 17:17:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49967656</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49967656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49967656</guid></item><item><title><![CDATA[New comment by Pannoniae in "Beating the compiler (2024)"]]></title><description><![CDATA[
<p>1. Better memory locality by knowing what you load and when, exactly.<p>2. The ability to "cheat" on calling conventions.<p>3. The ability for techniques like threaded code, and in general, better cache-awareness.<p>4. Less mov's.<p>5. Guaranteeing no spilling in important loops.<p>6. Compilers don't do well with flags registers and you can't read/write them in high level languages. You're hoping your `if (result < a) { carry = 1; }` becomes a direct flag test. Especially important in bignum, you can't really utilise adcx/adox directly from high-level code.<p>7. Hot/cold layout without PGO. Yes PGO is good but sometimes you know better and PGO isn't very suitable for "configurable" code.<p>8. Computed goto. See <a href="https://github.com/python/cpython/issues/128563" rel="nofollow">https://github.com/python/cpython/issues/128563</a> , who doesn't like 10% free performance?<p>9. Exploiting uninitialised memory for classic party tricks like not initialising a buffer fully (let's say you have a library function with a return buffer. You don't want dynamic allocations for some reason. You can simulate this with a pointer return into a let's say a static 4KB buffer and a count return, you only initialise it until the count. Caller has the responsibility not to overread.)</p>
]]></description><pubDate>Mon, 05 Oct 2026 17:13:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49967597</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49967597</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49967597</guid></item><item><title><![CDATA[New comment by Pannoniae in "Beating the compiler (2024)"]]></title><description><![CDATA[
<p>Yeah, that's what MSVC and GCC did on x86, called "custom calling conventions" on MSVC and the regparm attribute on GCC.<p>All of these were dropped on x64, on x64 (and ARM) you get standard calling conventions for just about everything with proper unwind tables for functions.<p>It doesn't really "cheat" on the registers unless it inlines a function entirely. LLVM has support for custom calling conventions and pragmas to specify them, this is used by GHC on Haskell and other things, but it's practically unheard of in "normal" C/C++ code.</p>
]]></description><pubDate>Mon, 05 Oct 2026 17:00:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49967437</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49967437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49967437</guid></item><item><title><![CDATA[New comment by Pannoniae in "The work by Valve's Timur Kristóf on improving old AMD GPUs on Linux"]]></title><description><![CDATA[
<p>on older (read: older than RDNA) AMD GPUs the OpenGL drivers are so poor that half the games just either crash outright or have colourswap bugs (RGBA -> BGRA i.e. your game turns blue and orange)<p>On Linux at least you can use Mesa to fix it up. On Windows you're.... out of luck I guess unless someone writes a binarypatch or something?<p>I wouldn't call it great support, NV "just works"</p>
]]></description><pubDate>Mon, 05 Oct 2026 04:24:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=49960662</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49960662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49960662</guid></item><item><title><![CDATA[New comment by Pannoniae in "AI Makes Me Sad"]]></title><description><![CDATA[
<p>Tbh I'm not very concerned. Unlike chess, which has very finite state, the "build something appealing" kind of game has a very vast amount of state. And the current architecture of LLMs doesn't make them very "creative" (whatever you define it as). If given a scoped task, they'll relentlessly try to complete it but the design, as we speak, is still your job. You can get AI to <i>clone</i> something already existing, which does decrease moats, yes. Making it do something <i>new</i> is way harder.<p>All those one-shot games and product demos are clones of existing things, and while they're <i>very</i> impressive, they aren't exactly <i>new</i> ideas, you know?<p>Of course all this might change and the labs might figure out the secret to creativity, but as things stand today, humans can keep "moving up" the value stack to just make more complex things.</p>
]]></description><pubDate>Sat, 03 Oct 2026 01:57:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49940698</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49940698</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49940698</guid></item><item><title><![CDATA[New comment by Pannoniae in "Solving Factorio Quality"]]></title><description><![CDATA[
<p>Same. I do use blueprints (I usually make copypasteable smelters, circuit factories and whatnot) but only in the same save, all of them get chucked when I start a new save.
And of course no copying blueprints from the internet at all.<p>So the first iteration of the design is always slightly wonky, so it remains fun :)</p>
]]></description><pubDate>Wed, 30 Sep 2026 14:07:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49909201</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49909201</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49909201</guid></item><item><title><![CDATA[New comment by Pannoniae in "Software occlusion culling in Block Game"]]></title><description><![CDATA[
<p>>that's what AAA games do<p>yeah where the pixel work and the vert count is magnitudes higher. I forgot to mention in my comment that I was talking about low-poly / pixel stuff like this, with a very simple PS and being pretty much API bound or memory-bound in perf</p>
]]></description><pubDate>Tue, 29 Sep 2026 16:08:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49895720</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49895720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49895720</guid></item><item><title><![CDATA[New comment by Pannoniae in "1 in 8 cancer cases worldwide are caused by infections, study finds"]]></title><description><![CDATA[
<p>FYI the prev comment is also clanker stuff, it's just purposefully prompted to inject grammatical errors. It's obvious from the word choice and the sentence structure, it's very stilted in an inhuman way. The wrong commas aren't a common error (unless you're 70+ yo) but LLMs keep doing "word ,another" and "word,another" to appear quirky<p>esp when all the caps are missing but all the punctuation are perfectly present</p>
]]></description><pubDate>Tue, 29 Sep 2026 14:58:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49894472</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49894472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49894472</guid></item><item><title><![CDATA[New comment by Pannoniae in "Sonnet 5.5"]]></title><description><![CDATA[
<p>"And as far as I understand, this means that so long as you stay short of decompilation - you can reimplement as much as you want."<p>Yes, but my point is that.... go on github, you'll find tons of decomps. And many more done just privately too. One of the No Man's Sky devtalks start with "yeah we decompiled the terrain generation from this other game, implemented it in our prototype, it didn't work okay, here's how we've learnt from it to make something better". This was in 2016. More recently, this has been going on way more openly, even full AI-assisted decomps thrown up onto GitHub casually. It might be the letter of law or included in Terms of Service but no one cares really.</p>
]]></description><pubDate>Tue, 29 Sep 2026 14:23:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49893843</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49893843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49893843</guid></item><item><title><![CDATA[New comment by Pannoniae in "Software occlusion culling in Block Game"]]></title><description><![CDATA[
<p>Nice article :) Yeah this is basically a tradeoff between CPU and GPU power. There are different types of culling. There's the basic stuff like backface culling (supported in hardware, don't render triangles facing away from you) and frustum culling (don't render objects which your camera doesn't see). These are used in just about every game.<p>For occlusion culling it's a bit more tricky because you can either do it on the CPU in broadly two ways, either do low-res raycasting / software rendering like in the article on the CPU and cull based on that. This is an adaptive workload, you can give it more threads or CPU power and it scales for better culling which results in less pixels rendered on the GPU.<p>You can also use GPU culling but that's more complicated to do and that uses the <i>GPU</i> which creates a catch-22 - you want to use GPU culling to reduce GPU load but integrated GPUs don't cope well with compute shaders and memory bandwidth in general, so doing a culling pass might wipe out any culling gains you might have.<p>And dedicated GPUs have the raw power and memory bandwidth to just submit everything in your frustum and get most of it depth-rejected.<p>I wonder if it would be even faster to create a connectivity graph on the CPU, like each chunk knows whether a neighbour is visible and vice versa. On rendering the chunk graph is walked and the visible chunks are submitted, kind of like a primitive garbage collector to determine liveness. The culling would be worse but I presume traversing a fairly small (few thousand elements) list is quite a bit cheaper than rendering the "mipped" occlusion boxes, but do let me know if this is wrong.</p>
]]></description><pubDate>Tue, 29 Sep 2026 12:14:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49891887</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49891887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49891887</guid></item><item><title><![CDATA[New comment by Pannoniae in "Sonnet 5.5"]]></title><description><![CDATA[
<p>Most products do in fact have an anti-reverse engineering clause in their EULA, to be fair, it's been a standard EULA term for a long while. It's just that no one cares anymore...</p>
]]></description><pubDate>Tue, 29 Sep 2026 10:44:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49891001</link><dc:creator>Pannoniae</dc:creator><comments>https://news.ycombinator.com/item?id=49891001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49891001</guid></item></channel></rss>