Henkan
- 6 Devlogs
- 59 Total hours
The reliable VSRG converter. (better doc on github)
The reliable VSRG converter. (better doc on github)
Hello! I’ve kept working on Henkan, my osu!mania ↔ Etterna converter, and shipped quite a few updates since v1.5.0.The biggest new feature is a playable beatmap preview. The editor can now autoplay charts when you’re not interacting with it, notes render underneath the receptors like they do in osu!mania, and the HUD stays properly centered. It makes it much easier to get a feel for how a chart actually plays before exporting it instead of only looking at the note data.Henkan also supports 8 languages now. While adding localization, I ended up removing i18next and replacing it with a much smaller custom localization system. Henkan doesn’t really need everything i18next provides, so this keeps things simpler and lighter.I also improved importing incomplete osu! beatmaps. If you only have an .osu file and the audio or background is missing, Henkan can now automatically try to fetch the missing files from an osu! mirror.There were also a bunch of smaller conversion fixes. Skin images are handled more reliably, and previews should now be closer to what you actually see in-game. Release notes are fetched properly from GitHub instead of using the old placeholder, and config overrides now work consistently in both conversion directions.osu! exports got some fixes too. Backgrounds are included even when the source chart doesn’t directly reference them, cdtitle files are only copied when they’re actually needed, and hold notes were cleaned up to follow the normal osu!mania format with proper hitsounds and clean samples instead of creating unnecessary or broken sound files.I’ve also been trying to close the gap between the desktop and web versions. The web build now has much closer feature and export parity with the Rust/Tauri version, and CI automatically rebuilds the WebAssembly binaries whenever something is pushed to main.Keeping both versions in sync is still one of the more annoying parts of working on Henkan, since some converter changes have to be implemented separately for Rust and WebAssembly, but it’s getting a lot better.The goal is still the same: make Henkan the most reliable way to move charts and skins between osu!mania and Etterna without randomly losing important data.
This update was mainly about skin conversion. I added support for converting osu!mania skins to Etterna noteskins and back. It ended up being much bigger than I expected, with over 1,600 lines of code just for the converter.
I also added difficulty name presets with placeholders like title, artist, creator, difficulty, and MSD, fixed an issue with extreme BPM values, and added a column width setting for osu!mania exports.
Outside of the app, I improved CI, switched Windows installers to NSIS, added AUR support, improved the documentation, and wrote a full end-to-end test for skin conversion.
This update focused on making the web version behave the same as the desktop app.
I fixed export names, media handling, and config support so browser exports now match Tauri. I also fixed a spacebar shortcut bug, made update notes render as Markdown, and cleaned up the CI workflows.
Keeping the web and desktop versions in sync is still one of the hardest parts since every converter change has to work in both Rust and WASM.
Devlog — Countdown fix + WASM sync
Fixed countdown being on by default when converting Etterna to osu. Added
Countdown: 0 to the [General] section in the converter, the dummy diff
generator, and the TypeScript equivalent.
Discovered the web version was using a stale pre-built WASM binary that
didn’t have any of the Rust fixes. Created wasm-core/ — a new crate that
builds WASM from the same Rust source via #[path] references. No code
duplication.
Added npm run build:wasm for local rebuilds and a CI job that auto-rebuilds
WASM on push to main so it never goes stale again
Hello, today I polished and finished the newest version of Henkan! This version is now the most stable version that also introduced an web based app.
Hello, today I fully worked on making my project available for the web via Vercel! I had to solve many issues like permission issues , timing issues , upload issues and more , I eventually fixed it and can say that it’s working stable now! Now I have to sleep…
Hello, this is my first log! I have to admit that my project is kinda niche but it fills the gaps of the rhythm game community. Short introduction : Im making an advanced osu!mania ↔ Etterna beatmap converter to simplify the mapping and playing of maps. I really depend on making it high performance and feature rich, for example: I had to go through many issues like fixing timing issues , conversion logic , or other things, but I learned from it and fixed them in a way that sets other converters in the ground. I started my project a few days before I found out about stardance hack club so im kinda sad that this time doesn’t count :(. Anyways, im happy to share my progress from now on. Today I focused on developing the CLI for my project and polishing some things, I think it turned out great