⠋ Sewer56 ⣠

⠋ Sewer56 ⣠

@sewer56.dev

Software Dev & Modder and Occasional Casual Reverse Engineer (sewer56.dev) That one guy known for the Reloaded modding suite.

132 followers61 following375 posts

Hell of an amount of time to spend on a project. Respect 🙏

Liliam 🏳️‍⚧️@liliambean.bsky.social

A demo for Sonic 3 Unlocked is now available. Read about it on my GitHub page, where you can also find the download link from the SHC 2026 website. github.com/liliambean/s...

Don't worry, even in the age of AI recomp slop; we'll be dreaming, believing, and dashing in the blink of an eye! 🐊♞, 🐤🐤 , 🪱⛏️

Wild. I've seen 3 Shadow The Hedgehog AI Made/Assisted recomps. And none for Sonic Heroes. That's wild, as you'd think the second game would be wayyy more popular.

Someone thought I vibed a comment; so they put it to the test by asking GLM 5.3 Flash- WTF- THE LLM ATTRIBUTED THE WHOLE BLOCK OF TEXT TO ME?? HOLY SHI-

To clarify further, AI is a form of automation. The problem is that people who have no business making recompilations are using AI to make them. They often have no clue what they're doing (at all). They end up with bad results. If you can't do it by hand, then you should not be using AI to do it.

Darío@dariosamo.bsky.social

I still see a lot of confusion about what decompilation, recompilation and ports are and what level of effort is involved in each type of project. It's important that people understand the difference, as recompilation took a drastically different meaning that when it was originally introduced.

View full thread

Instead, go read the documentation and look at existing projects. Spend your time to understand what it is you want to build. *Ask* people if you're unsure. Ask the AI too- good teacher. In the case of recomps, it's basically a HLE emulator, with AOT (re)compilation of game code instead of a JIT.

----- Extra Note: I kinda wish people didn't call it 'Native'; because Native performance certainly isn't there. All that CPU emulation you do is still certainly expensive. Be it stack pushes, CPU status/control flags, etc. Many recompilers probably aren't even half of Native.

To clarify further, AI is a form of automation. The problem is that people who have no business making recompilations are using AI to make them. They often have no clue what they're doing (at all). They end up with bad results. If you can't do it by hand, then you should not be using AI to do it.

Darío@dariosamo.bsky.social

I still see a lot of confusion about what decompilation, recompilation and ports are and what level of effort is involved in each type of project. It's important that people understand the difference, as recompilation took a drastically different meaning that when it was originally introduced.

AI can still be incredibly useful. It can speed up decompilation, prototyping, research and other tedious work. But the sword can only be as good as its wielder. If you don't know what you're doing, AI will just help you produce duct-taped garbage faster. That is, *if* it works properly at all.

⠋ Sewer56 ⣠ reposted

I still see a lot of confusion about what decompilation, recompilation and ports are and what level of effort is involved in each type of project. It's important that people understand the difference, as recompilation took a drastically different meaning that when it was originally introduced.

I guess I fall under that umbrella too 😅 For building software in general, not just this specific field.

Darío@dariosamo.bsky.social

The existence of these projects doesn't deter us from doing them properly, but we've witnessed first-hand how they can demotivate a developer who was in the middle of creating a project that checks all the boxes of the quality standards that are expected by the public.

It's possible, just extremely time consuming. 100-1000 of hours, as opposed to ~10h. What sucks is they didn't do the writeup themselves. -- That said, this is probably one of the best possible uses you could have for LLMs. Quite frankly, what you're asking is for them to spend 100s of hours...

This post is unavailable.
View full thread

While I have my own quirms with LLMs, in particular kids who don't know what they're doing, using it to make poor quality software they have no business doing. This is probably one of the most valid use cases for using an LLM.

It's possible, just extremely time consuming. 100-1000 of hours, as opposed to ~10h. What sucks is they didn't do the writeup themselves. -- That said, this is probably one of the best possible uses you could have for LLMs. Quite frankly, what you're asking is for them to spend 100s of hours...

This post is unavailable.

Writing 170+ one off programs that run on the PSP's GPU. And then writing code to read every single pixel, and compare them against the emulator. And then tweak their code, making single line changes, like a zombie, for hours, until it matches. And at the end of it all; throw away all that code.

Sure, it's no longer a 'pinnacle of human achievement'; but it's also not sitting for 400 hours in front of a keyboard mind numbingly, randomly changing single numbers until you see a green check mark on every single case. Basically IRL Stanley from Stanley Parable

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

Oh, and what I meant by 'understanding 95% is enough', for instance would be. Knowing that line 312 'checks whether items overlap'. Vs Knowing exactly how that overlap works. i.e. if one aligned-square's end on X/Z comes before another's start on both axis. Kinda like getting middleware in dev??

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

And so does the risk that with new technologies, and new topics, I might not be able to know all of these low level tricks. For instance, if all I ever used for Rust was LLMs, there's no chance I'd know about the default hasher situation for HashTable(s).

It's all, such a difficult scenario. My pride and perfectionism have kept me on the artisan side, insofar. But I don't know how long it'll be till that same pride/perfectionism will make me insignificant, as folks could eventually get 95+% as good in <18% of the effort.

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

So you can't know there's better ways unless you try. Is working collaboratively with an LLM to scrutinize every bit of code for potential better solutions an alternative way? I don't know. Gives you the knowledge, but not the critical thinking.

With LLMs I could realistically do things 2-3x as fast as I'm doing now (4x pre-LLM), if I sacrificed my pride and let the code be ugly. With same results for the end user. But then, without doing it truly line by line, the risk of my thinking skills regressing continues to increase.

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

Do people care? End users certainly don't. Developers- if it works, optimally, who's gonna touch it? (No matter how ugly- have you touched Hash algorithms before?) All that matters is a human verified it to be correct, and they don't believe they can come up with a better solution.

But then, coming up with 'better solutions' requires critical thinking and getting your head stuck in. This is experience *you can't* get if you let the LLM write the code for you. Reviewing is not a substitute, as verifying a solution and creating one are different problem tiers.

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

Or, knowing that the default Rust HashTable uses a DoS resistant algorithm for the hasher, and is thus wasting cycles if not doing networked stuff where you need that randomisation. (Because LLM will output a default HashMap/HashSet every time- human will always need to know this fix!)

Or, suppose you're doing code translation for x86. You would want to know that you want to get rid of x87 ASAP and lift it to C. (x87 is expensive to emulate) And all that matters, is that it's *correct* and performant... It really becomes a matter of 'knowledge'. Of knowing where the issue lies.

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

But how long can I realistically keep this up? Living like this will make me the assembly programmer when folks are writing in C. You don't need to make everything beautiful anymore w/ docs/explanation. Or understand 100%. '95%' is ok now. People can just ask their agents. That's the sad truth.

You just need to know what code should & shouldn't be there, rather than scrutinize every line. Understand what code needs to have. For example, if optimising for performance, you might want to use branchless programming to optimise for CPU pipelining.

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

It's kind of like going ASM->C. Instead of building function bodies, you build the high level architecture. i.e. The APIs (contracts), how project is structured, how components form together. etc. LLM just fills the method bodies in. See something wrong in low level detail? Ask for refinement.

I for one have never been satisfied with it. I'm still *not*. LLM code *is* ugly, and hard to understand. I always rework it so it can be understood easier by others. I also refuse to have any code where I don't understand *every* line exactly 💯%. My pride doesn't allow it.

The best 'halfway-compromise' there is that I accept ugly LLM code. And I focus on maxxing out end user experience above all. Maximize for correctness+performance- at expense of code style/quality. Because otherwise... feels like am just cooked. Really might not be room for us artisans anymore...

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

Because there's only so much time I can spend making the code itself beautiful. Time others never bothered to put in. Even pre-LLM days. And all most end users care about is how well something runs; not the process behind the creation or maintainability. We'll be very much a niche.

Older days, you could make code beautiful as you wrote it, was part of the process. Was cheap. You typed your thoughts. But now, 'generating' code is 'cheap', and making it beautiful is expensive. Now, all you need to know is the higher level construction to build something (with some exceptions).

And I know people are just going to tell me to take the L; and just join everyone else in making sub-par software. Sorry. Over my dead body.

⠋ Sewer56 ⣠@sewer56.dev

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

I have rigorous quality standards, and a lot of pride. That, I'm not willing to sacrifice. In fact, quite frankly, having an LLM as a co-pilot has made my software even better. (Every line of code still touches my cursor in IDE; it's an autocomplete!)

But if someone can vibeslop 75% of the end user's final result in <10% of the effort. What's the point? Same way end users have for years accepted 500+MB of web browser garbage for a simple calculator app that could be <1MB. When garbage becomes the norm... yeah... I'm tired, Sorry...

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

View full thread

That'd take >=3 months of weekends after work. Someone else can vibecode a poorly made 1:1 ASM->C translator with Opus 5.5; and get ~60% of performance. 1.5 weeks. Theirs would be a black box nobody understands; with poorly written code. But the end user doesn't care. 'get mogged' they say

I make software for people to enjoy. But if there aren't people to enjoy it, and they're perfectly contempt with sub-par software; then well, there isn't much I can do. Sorry.

With recent AI advancements; I'm considering ceasing the creation of future Artisan-tier software following my next release (mid-November). Unfortunately(?); LLMs make it so you can get 80% of the User Experience quality with 10% of the work; even if the code itself is unreadable garbage.

And it feels like the community just doesn't appreciate that final 20-25% of quality enough; even though they get all of it for free. To provide an example; I could go and write a recompiler with some extremely high quality documentation and code; and throw every single optimisation at it.