This is what the chapter appending stuff looks like. The events from each cabinet are stored on disk for a few hours, so newly created recordings just need to query the last 5 minutes of events and remap the relevant ones into chapters.
This is what the chapter appending stuff looks like. The events from each cabinet are stored on disk for a few hours, so newly created recordings just need to query the last 5 minutes of events and remap the relevant ones into chapters.
Released retrack, a component of REPLAY. It publishes network messages and scene transitions from BEMANI games to Redis. Currently only used for appending chapters to videos and auto-submitting scores to events. Lots more that can be done with it, but I don't know if I'll ever get around to it.
I hope things get better soon.
Back from a much needed break.
Moving on.
Released a project at the end of 2025 for intercepting INFINITAS network requests. I've been using it for years to get my arcade scores to show up in-game alongside my home ones. The example that injects a Python interpreter into the game to reverse your DJ name was my favorite to write.
Quick update to this post: we've exceeded our entrant record by far with over a week to go. Thank you to everyone for participating!
Regardless of how it turns out, I'm proud of everything that has gone into it. Extremely grateful to all those who have helped out with ideas behind the scenes, and of course, everyone participating in the event itself. I'll be around grinding for a good score today.
These are just the backend changes too. I'd love to write another thread in the future about the suite of Python scripts I wrote to streamline creation of the final video that ends up on YouTube. But it's getting late, so perhaps another time.
I also found out that it's possible to edit webhook messages after they've been posted, so the event leaderboard is now contained in a separate Discord channel, which updates automatically whenever a new submission is posted.
You don't even need to be at the arcade to register, either. While the recording site is still local intranet only, I've built a separate mini-site running from the same codebase solely for handling event participation, which is publicly accessible through cloudflared.
Now, after a one-time linking step with the network web UI, everything for the player is completely automated. Once you're signed up to the event, you only need to play the chart and the rest is handled automatically - including score improvements. No interaction with REPLAY necessary.
REPLAY, the aforementioned recording system, has seen a lot of changes since then. Most notably, the network and game scene introspection features, which opened up a lot of possibilities. Embedded chapters in videos was only scratching the surface. It was possible to fully automate event submission.
Outside of those usability issues, there were plenty of other areas that could've used some serious work. As participation started to fall off, I decided to shelve the whole thing until they could all be addressed in a way I'd be happy with. I feel like we're finally there now.
Recordings are always 5 minutes in length, so you'd need to grab your phone and press the Save button between songs. If a player improved their score, they would have to find their old video, withdraw it, then go back to the new one and submit it. Not exactly the most streamlined user experience.
The original format was 3 charts each month, with the top 3 scoring players being featured in a video at the end - made possible with our in-house recording system which is only accessible over local Wi-Fi. To enter, you'd have to play the charts, save recordings after each one, then submit them.
Resurrecting the SDVX monthly events at my local arcade to start off 2026. Organized these for a while back in 2023 until I ran out of motivation. It's pretty much the only thing I've been working on for the last 2 weeks, so I felt obliged to write up some of my thoughts on the whole thing.
Presenting a new way to share your scores.
First time I've added support for passkeys to a project.
Finished switching our in-house cabinet streams over to WebRTC. Latency is now down to under a second!
6 years since the last time I had to build something with XP compatibility. Had a much nicer experience this time around, thanks to w64devkit. Aside from a single patch to replace WSAPoll, all my fancy modern stuff (GCC 15.2, vcpkg) has worked just fine.
Worked on a lot of things for REPLAY last week. IIDX & SDVX recordings now include markers on the timeline, as well as embedded in the video file as chapters. Support for other games should be coming in the near future. This new approach is a lot more reliable than the old audio fingerprinting one.
It's tewi, although it's since been removed due to licensing concerns. There are a few mirrors available if you search for 'tewi-font' on GitHub and filter to repositories.
Open sourced my old multi-hack for IIDX, featuring some of the worst C++ I've ever written.
Haven't been subscribed since October, but felt the itch to play again last month. I think I got a bit carried away...
Thanks to everyone who participated in the VEGA Q2 collaboration videos. Here's the first one for IIDX! SDVX & DDR up next.
Hacking in hall effect button support into USBemani. I have no idea what I'm doing but so far, so good.
One more generation of Lain hardware. From mechanical, to optical, and now magnetic switches.
Now running my Pi Zero 2 W as a CD player & Bluetooth A2DP sink. Detects disc insertion via udev and runs a script. Uses cd-discid to look up metadata, creates a playlist for it and automatically loads it into mpd.