YabaSanshiro as a Playground for New Technology
I like new technology. Especially software — if something looks interesting, I usually want to try it myself.
YabaSanshiro started as exactly that: a playground for my curiosity.
I began this project in 2014, triggered by the release of OpenGL ES 3. When I read the specification, I remember thinking, “Maybe this is enough to reproduce the Sega Saturn’s crazy rendering pipeline.”
It turned out to be possible. I was able to build a Sega Saturn emulator that ran at a playable level on Android, and as far as I know, it was the first of its kind.
An Ongoing Testbed for New Ideas
After that, YabaSanshiro naturally became a place to experiment with new technology.
Cloud features using Firebase and AWS, iOS, Vulkan support, handheld device support, ARM64, Kotlin, Swift.
Most of these weren’t driven by strict requirements. They were things I thought were interesting enough to try.
AI Coding Tools, Before Claude Code
Recently, AI coding tools like Cursor, Windsurf, AugmentCode, and GitHub Copilot have become common.
I tried them, of course. But honestly, I didn’t enjoy using them very much.
It was hard to communicate intent. They often didn’t do exactly what I asked, and sometimes did things I didn’t want at all. Using them often felt more stressful than helpful.
That’s probably why ideas like “spec-driven development” became popular — locking things down tightly so AI tools wouldn’t go off the rails.
Claude Code Changed My Perspective
That perception changed with Claude Code and Opus 4.5, released late last year.
It Actually Understands What You Mean
With earlier AI tools, the hardest part was explaining what you wanted.
With Claude Code, I can switch to Plan mode and just say, “I want to change this part like this.”
It looks at the current state of the codebase and proposes a reasonable plan. After a quick alignment (and fixing misunderstandings if needed), the implementation usually comes out very close to what I expected.
It Does More Than Just Write Code
Claude Code runs in a shell and can use bash commands. That means it can do almost anything the OS can do.
Investigation, building, running, log analysis — all of it.
The most impressive moment for me was when I said, “Run it and check the logs.”
It built the app, installed it, launched it, read the logs, and fixed the issue in one continuous flow.
Extensibility Matters
The core capability is strong, but extensibility is another important point.
Things like Vulkan’s hundreds of pages of specifications, frequently changing APIs, and design guidelines can be provided as skills.
That makes it possible to get code that’s written with real domain knowledge in mind.
What Was Achieved in One Week
In just one week, I rebuilt the game selection screen of YabaSanshiro.
- Removed unnecessary features and simplified the UI
- Added a fully standalone backup manager
- Unified the design based on Material 3
The implementation took roughly 40000 steps. If this had been outsourced, it would probably have cost several million yen.
These changes are planned for release as version 1.19.0.
Is This Still “My Software”?
Using AI this deeply raises a simple question: Can I still call this “my software”?
Looking back at history, the answer seems straightforward.
Early computers were programmed by wiring. Then came punch cards, assembly language, compilers, and GUIs.
The way we turn ideas into software has always become more efficient over time.
This is just another step in that same direction.
Humans still decide what to build. Humans still use the software. Only the tools in between have changed.
Right now, I’m just enjoying building software with those new tools.
– devMiyax
