Info dump related to the hardware/firmware/etc of ワッカ
## disclaimer
Some information here is sourced from around the internet, of which I'm not sure if people wish to be credited for. You know who you are, let me know.
Many parts simply have not been extensively documented or are kept in private circles. My hope is that by making all of this information more accessible, someday more people will be able to enjoy this dead game. (asc when?)
## service manual
This PDF should be pretty easy to find online, there's also a shitty version that was fed through DEEPL to machine translate into english. This has a plethora of information that I won't directly post here since that's probably asking for a DMCA violation even for a dead game.
The anatomy of the cabinet an ALLS desktop connecting to a set of PCBs via two USB ports, three RS232 ports, two 3.5mm audio jacks, and digital video out to a 50 inch LCD (hdmi, displayport are supported WITH audio out).
PSU: 400W Seasonic 80 Bronze https://www.newegg.com/seasonic-ss-400et-bronze-400w/p/N82E16817151076 [from ALLS UX, i have 0 motiviation to open this PSU to confirm]
I believe these may work as a suitable replacement (at least it does for SDVX) https://www.crutchfield.com/S-nMsSvT4rfnE/p_108R6532EM/Infinity-Reference-REF-6532ex.html?omnews=17719017
My photos will look a little different at the bottom as we had to jerry rig an extension cable to feed power into the unit since I don't have the original cabling for it. Works fine on American power, there are also reports of it working fine in europe.
R1 uses a 300VA step down transformer https://cdn.discordapp.com/attachments/267603668046446603/1045057845999173692/IMG_20221123_112537805_HDR.jpg but that's probably overkill.
Hits about 200W during the attract. TODO: power info during songlist pull etc.
The most interesting part of the PCB. Custom part made by Pentel. Two of these exist on the PCB board that process 6 channels each, to get the 2 halves of the touch controller. Each segment of the touch controller has one of these as well, with the addition of the ribbon cable to connect the segments together.
For pinouts see page 12 (LQFP-48) https://www.infineon.com/dgdl/Infineon-CY9B120M_Series_32_Bit_Arm_Cortex_M3_FM3_Microcontroller-DataSheet-v10_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0edfa79064e9
Attempts to swap the board to an Adafruit FT232H breakout board to replace LED driver ongoing, Wacca LED tests pass fine, but no data seems to be sent out from pin 14.
```
IC1: FTDI FT232HL - Single Channel HiSpeed USB to Multipurpose UART/FIFO IC
The existence of this board is a bit overkill for what it's used for, likely it *had* to be used due to Sega producing the cabinets for Marvelous. This is a newer version of the control board that has a USB port on it, almost all sega cabs use this now. Note: Wacca does NOT check for a coin counter, so the resistor trick is not needed to apply credits in game.
There are 12 of these bad boys divided into two halves, set to channel 1-6 on each side that feed back into 2 touch unit control boards. Each one weighs x grams which totals to about 40 LBS. Somehow I never really understood how MASSIVE these units are until I held an individual segment in my hand. 5 LED segments per unit, with 4 segments across the acrylic making 240 "keys".
Wacca LEDs are notorious for being burnt out, you've likely received your machine in a state where some panels are not getting color data, are dim, or are straight up not lit up. This is partly due to the design of WS2812.
There's two good options for reproducing a better version
1) Isola has a WS2813 design which can be just popped into your touch controller without any issue (it will however, look brighter than the 2812's so consider a full swap) https://github.com/mnm-isola/wacca_ws2813
Note that at the time of writing, the most recent revision's gerbers are actually the previous revision. I would recommend downloading the project from https://github.com/mnm-isola/wacca_ws2813/tree/main/wacca_ws2813_rev20220814 and opening it in kicad and making your own gerber. Detailed instructions below.
2) Speedy labs is selling their revision of the PCB https://www.speedylabs.us/product/wacca-ws2813-led-pcb/ you'll need 60 of them to replace all your touch units. CensoredUsername is another source for the EU https://docs.google.com/forms/d/e/1FAIpQLSfETDKtABUGxhhcBXFDWuHlz1cwHNNozOXztCPOOsENcN5KxA/viewform
1) Clone Isola's repo or download the ZIP from the Code button https://github.com/mnm-isola/wacca_ws2813. wacca_ws2813_rev20221021 is the revision we want (the main difference is that the capacitor at C9 is SMD instead of THT. if you need THT, the previous August revision will do just fine)
2) Download KiCad https://www.kicad.org/download/
3) Open wacca_ws2813.kicab_pcb
4) File --> Fabrication Outputs --> Gerbers (.gbr). Set your output directory appropriately.
5) Click "Generate Drill Files..." and ensure that the drill units are in millimeters. Click "Generate Drill File" and "Generate Map File"
6) Click "Plot"
7) You should now have 13 files. Zip these (select all, right click, send to, compressed zip folder) and goto your favorite PCB manufacturer (i like JLCPCB). You need 60 PCBs to do a full replacement.
It should be as simple as uploading the zip, and clicking through and purchasing. I didn't change any of the default options except to make the PCB solder mask white.
It took a total 7 days for 200 PCBs to produce, ship, and arrive from China to California. YMMV. About $45 for the PCBs and $47 for shipping.
If someone has a cool wacca related silkscreen, please give. Maybe one of each navigator.
If you're reading this, you probably know the basics on soldering and soldering SMD components.
If you're totally new to soldering, SMD might be a bit tricky. I'd suggest picking up an interesting keyboard project (like the corne) and studying lots of youtube videos on the matter.
Just remember to use solder with flux (kester 63/37 .031 inch leaded solder recommended), and to use a smoke absorber for your safety (Hakko FA400-04 recommended). When in doubt, flux flux flux.
One way to shave a lot of time off mass producing these PCBs is to use solder paste and order a stencil from https://www.oshstencils.com/
Upload the gerber zip, select the side that has all the LEDs as the top stencil (wacca_ws2813_f_paste.gtp), and make frameless stainless steel 5mil. Should cost about $50. Ordering the jig accessory can help as well, but you can just use other PCBs to hold the position of the one you're squeegeeing.
Get some solder paste and apply it to the PCB using the stencil (spread over stencil and squeegee. if no stencil, careful syringing), apply the SMD components, put it in a modified oven or on top of a modified clothes iron (or maybe you can use hot air at low flow)
After you have the outside plastic pieces taken off, disconnect the led data only wires, LED power on the middle LED board, and the touch board cable. Then remove the two outside screws for the panel and pull it straight out
Remove the ribbon from the pentel touch pcb and unscrew and remove the pcb. You can try to get away with not removing the touch PCB by loosening the screws on the touch board enough to get clearance to pull the LED board out, but this is risky and not recommended.
Unscrew each LED PCB and pull them out
Place in the new PCB and screw everything back together
Note: You may need to remove the pop / marquee to get to the touch panels on the top of the machine. This may require security torx bits (not all cabs have security torx for some reason)
If the cab is powered on you will need to go to "connection test of touch devices " and "reconnect touch devices" in the test menu after re-connecting the touch board
The routers are powered via usb, so you can plug it into the ALLS. However, ALLS USB ports aren't always live, so startup will be a race condition between the game's network check & error and your router's boot/connection, particularly if you are on a Mango. It's best to plug it into wall power instead (also on wifi, you'll want more current). If you're wired on creta/slate, you'll be fine off ALLS usb. Something to note, having the Creta reboot every so often helps them stay connected, probably because NAT connection state loss on (an) upstream router(s).
On a real cab, it all feeds into a built in row of outlets (router has a power connector), and goes out 1 cord in the back. You'd still need to add your own wall wart for private server router, preferably.
You can get away with using a phillips screwdriver but you really do risk stripping the screws used here. Notice how each of the screws look like phillips but have a dot? These are JIS screws! You'll want to purchase JIS screwdrivers to use.
The main interest in opening the ALLS is getting to the solid state drive that's inside. It's a bit of a pain but you don't have to disassemble too much of it to be able to get it out (I was able to strain the ATX connector a bit to unscrew the drive without tampering any cable ties).
To make this process much easier the second time around, it's recommended to either get a long SATA cable and plug your drive somewhere more accessible or to get an enclosure that fits in the open PCI slot on the ALLS, this is the one people have used https://www.amazon.com/StarTech-com-2-5in-Removable-Drive-Expansion/dp/B002MWDRD6
ALLS uses various tamper protections such as bitlocker, tpm, etc. that are provisioned from the factory. As such, you can't just stick in any drive and expect it to work, even with keychip.
Your drive contains your unique PCBID, so it's a very good idea to image your drive, so you can restore it and have it work, or to just have a 2nd drive handy.
Boot Linux through a USB drive (i recommend using Linux Mint and Rufus to create the bootable USB. plenty of guides on this). Do NOT use Windows, this can trigger bitlocker and your drive will get wiped.
Plug in your wacca drive via usb sata enclosure device. Any sata enclosure will work, these are 2.5" drives so they don't need more than USB to power them but the ac powered 3.5" / 2.5" enclosures will be fine too.
lists all the drives plugged in, look for your wacca drive (if you have some kind of complex setup, do the command prior to plugging in the drive and then after to discover which one)
You'll want to restore on a 120gb or at most 240gb drive to be compatible with how a main storage format works at the moment. (but if you aren't doing that, any larger sized ssd can work)
This will also show additional song stats on the parts of the screen that are otherwise not visible from the cab. This is the recommended one to use https://www.amazon.com/gp/product/B0BJ6XLK45 but anything 1080p60 is good, there's no EDID fuckery.
You will want to wear gloves to play the game because you *will* burn the skin on your fingertips from doing slides on the acrylic. Any cotton gloves are recommended, lots of people like the white gloves available at Daiso. Thick or thin gloves depending on your preference, I like thin but people want to feel less friction from the touch segments and so they go thick. If you wanna go full Wacca, the custom gloves made by marv are OEM these https://www.amazon.co.jp/-/en/gp/product/B0767CMNDQ/ https://www.amazon.co.jp/-/en/gp/product/B07DJ2KJ1S/ (these are thin, and won't last long). I have a vector trace of the wacca gloves
A charter exists here: https://github.com/Goatgarien/BAKKA-Editor/ and custom song injection is fully working. Join their discord for more information.