ReC98

ReC98

@rec98.nmlgc.net

https://rec98.nmlgc.net

121 followers7 following282 posts

github.com/nmlgc/rec98.... [💰] Confirm T0440 A final €400 from Ember2528 for the announced and AI-unrelated farewell gift: Kioh Gyoku SC-88Pro BGM packs, releasing my loop builder, and better loop detection to support a mystery goal. Thank you for all the years of support. 🙏

On October 5, 2019, I launched the ReC98 crowdfunding website. Today, 7 years later, there really is no more incredible journey to be had. So here's is my final feature and retirement announcement. No matter how this is received, I have already won. 😮‍💨 rec98.nmlgc.net/blog/2026-10...

Funded by Ember2528, [Anonymous], Root, WishMakers, and Arandui. May the wrong bridges stay in flames forever.

You could use this code to procedurally generate optimal Shuusou Gyoku runs from your favorite programming language via old-school machine learning or something. In reality, nobody cares, and you'll all just be here for one thing. >18,700 words coming to you in a few hours.

Finished the retirement part of the next blog post. >7,700 words with the full timeline, nuance, and plenty of burned bridges that hopefully close off any way back into this hellhole I should have left in 2011. The vibecoders will soon appear like the sanest actors in the room.

OK, received tons of words, but zero serious offers to continue working in this scene in any capacity, matching the trend started in April. Hence, this business model has run its course, I made the right call, and the decision is final. First round of refunds has been sent out.

(Second round merely consists of the contributions that could still go into the final 6-push delivery, and will be sent out once that one goes live.) Please respect your and my time and refrain from any further attempts at persuading me. Thank you.

Yup. Even if funding improved again, vibecoders *will* set the standard for QoL features. So this can only go two ways: • Ignore them → community splits along a silly pro- vs. anti-AI divide • Work with them → ReC98 degenerates into playing catch-up Both are undesirable. bsky.app/profile/gens...

Popfan@gensakudan.com

But on the other hand, I understand how demoralizing it must be to do this all by hand and with a human element, all while so many around you choose the easy, more prolific option that sacrifices quality. Not even ample financial compensation can really offset that in the long run.

ReC98 will end after the next delivery. I don't have it in me to compete with vibecoders, especially when y'all cheer them on for instantly delivering what you've wanted all along. And if you aren't cheering yet, you soon will; they're only getting better and more numerous.

Next release, then PC-98 text RAM JIS trail word rendering (it's been in my drafts for almost 5 years), and then it's over. All other pending contributions will be refunded.

Many thanks to this month's subscribers! RL consumed lots of time this month. Regaining focus has been tough with the final steps being as difficult as ever. Wondering how ReC98 can possibly survive after all the forks (many of them vibe-coded) I've seen in this month alone.

140-175 ms for simulating the full 7 minutes of Shuusou Gyoku's Extra Stage on the command line. On an 8-year-old Core i5. Single-threaded. With MSVC's horrid codegen and several untapped optimization opportunities. And that's the heaviest case. Regular stages are much faster.

Of course, this also means instant detection of desyncs. (Though only via a Game Over occurring before the game processed all inputs, since that's all data we have in the old format. The new one will record more events that could pinpoint the cause of a desync more closely.)

Finally, Shuusou Gyoku's game logic, isolated in a reusable, freestanding DLL. No global state. No Win32 API dependencies besides GetProcessHeap(), HeapAlloc(), and HeapFree(). No instructions newer than i586. Still simulates blazingly fast. (Have fun guessing how fast exactly!)

ReC98 reposted

Replying to @rec98.nmlgc.net

(Yes, I've heard the news and will go right back to work! Just let me finish this really cool thing for Shuusou Gyoku I've been working on for the past few months, and then I'm going to spend an extended amount of time with the main business. OK?)

(Yes, I've heard the news and will go right back to work! Just let me finish this really cool thing for Shuusou Gyoku I've been working on for the past few months, and then I'm going to spend an extended amount of time with the main business. OK?)

Many thanks to this month's subscribers! The splitting process has escalated to not only cover Shuusou Gyoku's logic, but also my SDL-based engine, laying the groundwork for future modern-system builds. Only missing the CLI now, and of course the blog post. Mid-June, maybe?

Full list of seemingly decorative aspects in Shuusou Gyoku that are actually game logic and must always be simulated because they draw from and advance the single global RNG: • The hearts shown when losing a life • The sparks shown when grazing bullets or hitting an enemy

View full thread

• The falling stars in the last phase of the Gates fight, and in Stage 6 • Boss explosions • The background animations in Stage 6 (wavy clock, wireframe cubes, and …

• …fake script code) • The text popups shown for boss defeat and Evade bonuses or when collecting a bomb or extra life, where each letter flies off at a different angle • The sprintf() implementation that decides the number of letters (and thus, RNG steps) in these popups (!)

Full list of seemingly decorative aspects in Shuusou Gyoku that are actually game logic and must always be simulated because they draw from and advance the single global RNG: • The hearts shown when losing a life • The sparks shown when grazing bullets or hitting an enemy

• The falling rocks in Stage 4 • The stars shown when collecting point items during an Evade combo, or when using the Wide Shot bomb

Point items in Shuusou Gyoku will award negative points if you collect them below the bottom edge of the playfield during the respawn animation. And nobody noticed because 1) the game's 5×7-digit font doesn't have a - sign, and 2) the total score can't decrease, only increase.

View full thread

… that's *not* the score that the game would record in the High Score list. Shuusou Gyoku only ever adds potential negative deltas to the score on a Game Over – not when switching stages, and not when clearing the game. And we obviously don't want to change such scoring details.

Thus, negative item values will continue to just "absorb" points from subsequently collected positive-value items like they did in the original game, and not immediately decrease the score. Some zoomed-in images variants for comparison: (fixed → original → ≥P0295 && ≤P0326)

Point items in Shuusou Gyoku will award negative points if you collect them below the bottom edge of the playfield during the respawn animation. And nobody noticed because 1) the game's 5×7-digit font doesn't have a - sign, and 2) the total score can't decrease, only increase.

Even I only noticed because pbg's code formatted the nominally unsigned item point value as signed, which raised a compiler warning. So I changed it to unsigned… which caused an obvious 32-bit integer overflow in any build since P0295. Whoops. Just a rendering issue, though.

Fortunately, the system sprite sheet does contain a 5×1-pixel line in #DCDCFE that I can repurpose as a - sign to fix the popups from the next build onwards. The total score, on the other hand… I *could* make it display like this, with negative deltas always added on top, but…

What's this? A MinGW fork with GCC 15 that targets Windows 98? Small package, no bullshit? Tested and working fine for trivial programs? github.com/redpanda-cpp... Removing the KernelEx and SSE instruction requirements from Shuusou Gyoku's backport has just become a lot cheaper.

github.comGitHub - redpanda-cpp/mingw-lite: MinGW-w64 GCC distribution. Fast and flexible build scripts; minimal dependencies; works on NT 4.0 and 98. Inspired by w64devkit.MinGW-w64 GCC distribution. Fast and flexible build scripts; minimal dependencies; works on NT 4.0 and 98. Inspired by w64devkit. - redpanda-cpp/mingw-lite

Many thanks to this month's subscribers! Very slow month, but I still managed to move enough code to push the headless Shuusou Gyoku subproject to over 100 commits. Very close to solving the hardest issues while juggling Windows 9x and FFI use cases. 4 pushes for sure, though.

Debug builds of Shuusou Gyoku had a menu option that turns off collision detection. Past tense because this forks gameplay, desyncs replays recorded with the opposite value, and is therefore very bad. I'll replace it with the alternative approach of just setting lives to 255.

Which is better in almost every way. Such a setting would propagate into the replay header of even pbg's original format, and replays recorded with it would play back fine on release builds too. (Thus, replay sites would have to check for / recategorize this case anyway.)

Many thanks to this month's subscribers! Untangling Shuusou Gyoku's game logic into a library isn't the worst thing in the world, but still nontrivial. Will definitely end up closer to 2 pushes than to 1. Probably doing a bit of TH02 RE after that, given its recent funding.

github.com/nmlgc/rec98.... [💰] Confirm T0425 Ember2528 is also back with a smaller €50 subscription towards the better replay format for Shuusou Gyoku, followed by the previous long-term TH03 decompilation and porting roadmap! Thank you very much.

🚚 TH03's enemy, fireball, explosion, chaining, and combo systems have been fully decompiled and researched! Hardest piece of game logic in all of PC-98 Touhou, by far. 1% of overall code, 6% of TH03 itself. 🐞 1 bug 💣 5 landmines 🎺 8 quirks 🪨 61 pieces of bloat

Summary blog post: rec98.nmlgc.net/blog/2026-03... This time with: • All the formulas • All the hitboxes • Kotohime starring in two of the videos • The most complicated glitch explanation so far • Yet another Bluesky rant Funded by Ember2528, [Anonymous], and LeyDud.

TH03 is about to get thoroughly analyzed and documented down to its core. ≥13,100 words. Heaviest blog post by HTML size so far. 2.36× more PC-98 Touhou reverse-engineering than the previously biggest RE post. Out in a few hours.

Almost done writing! Still need to spend some more coding time on the blog UX though, so that you can seamlessly switch between two layers of tabs and the 30 hitbox videos underneath. (Word count already above 10,000, by the way.)

Many thanks to this month's subscribers! Life priorities have shifted and I'll likely be even slower in the foreseeable future. Then again, what else is left in PC-98 Touhou that's as complex as TH03's enemies, fireballs, and explosions? Blog post should be out next week.

Bluesky confirmed for having the worst video processing pipeline in the entire social media landscape. Reducing *frame rates* is disgusting at a level that even Twitter wouldn't step down to.