In collaboration with @migra100, @N10248 and PD-Loader developers were realized test variant of emulation or somekind of repeatment of official PDAFT Lights system, buttons lights and partition side lights that is controlled by game, you can see it @N10248 videos on original arcade. In hardware sense it can be realized super easy, I'll make schematic of it very soon, so you can try to make it by yourself, when plugin for PD-Loader will be ready.
I knew you could do it! I'm getting visions of a purchasable replica Slider that has all of this hardware built in with connectors on the underside for the button and partition lights.
Yeah, principally it can be done, but the other very interesting problem is optimal hardware realization, because in my case, how I will do, I'll have one USB connection for slider + separate 5v power supply, second USB connection for "gamepad", for buttons, and the third USB connection for button lights and partition lights + separate 12v power supply. It's now like that because it's easy. It can be somehow optimized to make gamepad and lights in one device, but the main problem is UART connection that used to receive info about lights and in case of one device, if code will be realized not very good - UART and lights will slow down work of "gamepad", so it need here very big attention, because it can break game experience in case of lower responsiveness, lower then it can be without all of that. May be somehow it can be compensated by faster STM32 MCUs and some asynchronous work with data, but again, it's needs to be done. But in this case it's only minus 1 (one) USB connection :)
I use a Mayflash Magic S Pro adapter which converts various kinds of gamepad controllers for use on PS4 console. It also works on Nintendo Switch console and some consoles I never heard of.
I made test firmware for "new" controller, 5 buttons + button/partition lights and as far as I can see - no problems with work as gamepad and with lights. I hope very soon I'll make new homemade PCB to make that all work as needed and test everything as high quality as possible. I made github repository with this all, if someone needs - you can use https://github.com/steelpuxnastik/PDAFT-controller-with-button-partition-lights , the only problem to make everything work you'll need PD-Loader plugin that I hope will come very soon or to run test app with this feature by yourself, the problem with this app is that I compiled it on my notebook that has Visual studio, but when I tried to run that app on other PC - there was a lot of errors with dlls that it needs and I thought that I feeded all dlls, but still no luck with running app, that's why so far without may be not many can try this fully.
@N10248 But I little changed my mind, and now I think it's possible to make controller with active switches, fully arcade slider, button and partition lights and to use only 1 (one) USB connection (but of course, there will be needed external power, but it's not a problem). As I said about STM32 MCUs, for example the most common variant as STM32F103C6T8 has 3 hardware UART, can be used as USB device, so it can be programmed as gamepad, so one UART can be hardware defined to connect there slider, other UART can be configured to receive lights data over USB and others works as gamepad as always. I just found this https://github.com/r2axz/bluepill-serial-monster 3 USB-TTL converters in one device with one USB connection and I wanted to use it with my project and everything looks like works good, like connection to button/partition lights, but with slider there some problems, now it works veeeery slow, but works, so I think I may be need change some settings or something, looking how I can fix it, but I'm talking about that there is possible to make such device, may be it's even not very hard.
Could the buttons be made to communicate directly with the game bypassing the Input Emulator instead of via a gamepad device? Somehow merged into the lighting device, sending data instead of receiving
Very interesting question. You mean, to make game think that's JVS connected? And may be after that if some magic happens, if to understand what exactly game data want to receive to write it into memory then maybe yes, but another question that again, it will be a serial connection to make plugin to write into memory - then yes, may be it's possible. But in fact, in reality it will be another Input Emulator and in fact I do not think it will be any better or worse then Input Emulator in PD-Loader, but it can be just another way to work with input and in this case it can make sense.
Techinally yes, it could become an "only what's needed" custom JVS I/O. I think the real JVS I/O board is seen as a single device to the game.
And yeah, in fact it's even easier than to make gamepad device. I think we need to make some clarification about what needed to make that, what memory addresses needed and what needs to make it work in game and in case of hardware it's actually done, it needs almost nothing to make it.
Luckily with Input Emulation off the game doesn't hang with a missing I/O error even with "Fast Loader" off, so you wouldn't have to make something that handshakes or detects like the JVS board does. I would expect the easiest place to find the button addresses would be in the original TLAC. source... https://github.com/samyuu/TotallyLegitArcadeController/tree/master/DivaHook/src/Components/Input As it's far simpler than the current PD-loader. But I doubt it's a simple as... JVS_TRIANGLE = 1 << 0x07, // 0x80 JVS_SQUARE = 1 << 0x08, // 0x100 JVS_CROSS = 1 << 0x09, // 0x200 JVS_CIRCLE = 1 << 0x0A, // 0x400 JVS_START = 1 << 0x02, // 0x400
But now I have some little doubts about using serial connection in case of buttons, because as I can see with LEDs that already working - I have feeling that it not fully covers all presses, I mean if I'll press button very fast LEDs seems does not have time to recover, not because the LED itself takes some time, but because the port speed is not enough and it just chokes, but I need to make sure of this in some independent way, through the level analyzer, to be totally sure it's true or false and if true, maybe it's way to repeat JVS somehow, who knows if it's possible. But anyway, I somehow now I have doubts about expediency of this move, but as I said before, I'll try to test what we made with LEDs to be sure and then maybe if something will be clear with that.
My button lights sometimes lag on the cabinet too, so it may be normal. it's very noticable when pressing the buttons on the song loading screen. The JVS I/O may be quite limited in how much it can process at once, transmiting button presses may be prioritised over processing incoming signals for lights.
That is why it needs to verify something before, especially that I really know how to hardwarely describe what's needed to work, but on the part of PC - there much more difficult, there need I some help and only when it theoretically (and some practically confirmed) will work good, I think :)
There is a yeah after I created thread about SHINSANWASWITCH and interest about creating this device and now I think we can publish SHINSANWASWITCH source to create it by yourself if you want :) Very soon info about some nuances of assembling and further changes to better will be uploaded to Github. Thank you very much for your help, especially @Doctopus and @N10248 (sorry if I forget someone), and for your interest :) https://github.com/steelpuxnastik/SHINSANWASWITCH
Bro, meybe this will help you for the delay , but unfortunately it can't works on slide. just use physical ways to control leds. Just try to connect the LED light and the button in parallel to the micro switch, like the image I don't know i can help you or not, because i'm just a noob on it.
That's weard, I can't put any images on it or edit my posts So just put OneDrive on it https://tadokorokoji-my.sharepoint....FCl2Zwbu6zlBwB15oHrneFz1DJC8c0GMDPzw?e=zsbbBH https://tadokorokoji-my.sharepoint....RJuhoKulSKABgBsU0KrKrNxYEIIjlVykOg-w?e=pCfdfD