jae kaplan

building an auto-recording setup for WACCA

y'all head of WACCA? pretty good rhythm game. I wrote about it back in june and have only gotten better since then.

I bought a cab recently. it's in my apartment, in my bedroom, right next to the door. it's about the size of a refrigerator, it's the most expensive thing I've ever bought that isn't a car1, and it is absolutely the coolest thing I own.

a fun thing about owning a cab, rather than being dependent on a public one, is that you can experiment with the hardware. the software is considered an untouchable box; the game must be able to boot unmodified, so any hardware changes can't break compatibility.

this cuts off a lot of options but still leaves a lot on the table. want to replace the marquee LED strip with one you can control from home assistant and incorporate it into the adaptive lighting setup in your room? you can!

[put a gif of that here. or don't, that sounds annoying to record.]

want to semi-permanently install a mini PC in the cab to record all gameplay and sync it to your home server? you can! here's proof!

the author choking an All Marvelous

this was heavily inspired by aixxe's blog post Building a Wi-Fi arcade recording PC2, about a similar setup for a IIDX cabinet. their approach was different than the one I ended up taking but it was still a huge help while thinking through what I actually wanted.

here's how it works.

the layout3

---
config:
  theme: dark
  layout: elk
---
flowchart TD
    A["ALLS HX"] -- HDMI --> n1["Capture Card"]
    A -- "DVI-D" --> n3["Monitor"]
    A --> n5["VPN Router"]
    A -- ground loop isolator because correctly grounding JP cabs is a nightmare --> n2["3.5mm splitter"]
    n2 --> n1 & n4["Speakers"]
    n1 --> n6["Stream PC"]
    n6 --> n7["Main Router"]
    n5 --> n7

I figure it's easiest to start with a layout diagram so that things I say afterwards make sense.

the stream PC

hardware

I was originally using a MINISFORUM UM890 Pro Mini PC Ryzen 9 8945HS (up to 5.2GHz) Desktop Computer 64GB RAM DDR5 5600MHz &1TB PCIe 4.0 SSD, Cculink Mini PC Quad Display HDMI/DP1.4/USB-C, AMD Radeon 780M/Dual LAN 2.5G for the sole reason of it's what I had lying around and it can do hardware video encoding. but its fans failed for unclear reasons and caused it to roast alive so now I'm using a Dell Optiplex 9020 SFF with an Intel i5-4750 and an Intel Arc A310 as the video encoder, for the sole reason of it's what I had lying around (minus the GPU) and was a decent replacement option. I would like to get the MINISFORUM working again because otherwise it's just e-waste but I probably won't use it again for this.

the capture device is an Ezcap326C 4K Video Game Capture Card HDR Mic 1080P 60fps 120FPS Recording Box USB 3.1 Type C Game Live Streaming Device for PS4, which is actually kind of the gold standard for arcade capture. it's got a 3.5mm port which means I don't have to deal with the onboard audio of the PC. it can do up to 4k60 but WACCA is a 1080p60 game. if you're trying to capture something that's 1080p120 (chunithm NEW, IIDX lightning cab, SDVX valkyrie, etc) this'll be perfect for that.

WACCA's display is DVI but if you plug something in to the HDMI port it'll default mirror output to there. you wanna avoid fucking with the capture card while in-game (otherwise it'll do weird display shit and desync) but it's fixed with a restart.

software

I'm using linux (NixOS specifically) because while VAAPI encoding is really fucking annoying to configure this computer is unsupported for Windows 11 and I don't want to bank on OBS having Win10 support forever. I'm using BTRFS as the filesystem since it's copy-on-write and thus more resilient to the PC suddenly shutting down.4 I'm using NixOS because I want to fuck with this computer as little as needed and Nix enables that, plus I can blow it away and reset everything if it breaks.5

while aixxe just used straight ffmpeg and opencv templates, I'm too lazy for that and use OBS with advanced scene switcher to start the recording process on template detection, and run a post-processing script once it's done.

it's really easy to detect when a WACCA play has started because the stats panel that renders "off-screen" (it's on-screen but underneath the metal front panel, but visible in the capture) is only there when you're in a song. so when that shows up the script saves the last 10s of replay buffer and starts recording. when that disappears, it ends recording and runs the script to concat the replay buffer and recorded video together. this is necessary because for some fucking reason OBS Studio doesn't let you start a recording from the replay buffer.

I'm planning on using this machine for streaming too (once I start actually streaming) so I've got PNGTube Remix running on there (linux version via steam-run) and a separate set of scenes, but still with the same advanced scene switcher config for autorecord.

the cab

hi! do you own a WACCA cab? have you installed exhaust fans in your WACCA cab? no? go do that right now so that your display doesn't cook itself any more than it already has.

a stock WACCA cab has exactly three fans: the CPU cooler in the ALLS HX, the GPU cooler in the ALLS HX, and the exhaust fan in the ALLS HX. WACCA cabs have high rates of display failure due to overheating. the LED boards also fail due to overheating. I'm sure none of these things are related.

my WACCA cab has an additional four fans (two intakes in the front, two exhausts in the back) ziptied to vent holes (it does have those at least) so that things aren't as dire in there. it's still not great but it's an improvement. we take the wins we can get.

other mods I've made:

unsure how to end this post

you should buy a WACCA cab and then do some stuff to it. it's fun. thanks for reading.

  1. it shares many similarities with a modern car, though. aluminum frame, four wheels, a computer, LED lighting, pretty good sound system, capacitive touch surfaces instead of buttons, etc

  2. the post subtitle, "Going above and beyond for no particular reason", is also how I approach many projects

  3. yes I'm using a mermaid diagram despite them being the favorite choice of AI everywhere. I was here first. you can pry my diagrams, my oxford commas, and my lists of three from my cold, dead hands.

  4. I didn't want to deal with having a UPS in there so it'll turn off with the cab, which will happen with no warning.

  5. as mentioned above, the current setup is actually a replacement since the old one roasted itself to death. this means I've already had to blow it away and reset everything once, so this decision has already paid off.

#WACCA #autism #rhythm games