I took a semi-break from this to work on the GD-EMU tray but I ordered some shift registers and 7-segment displays and was able to write a small program that simulates the demo loop of the VS cabs. you can see my setup and a small portion of the loop here:
https://www.instagram.com/p/BFt09XmzGLq/?taken-by=twistedchu
The timing is all done by eye/guessing so I'm sure it's off a bit but most of the sequences look right except for the "blinking eyes" animation (just because the timing is different for every frame and I couldn't be bothered to figure it out).
------------
That didn't really help with interpreting the billboard output data but it did help me get an understanding on how to output to a 7-segment.
The last couple of days I wrote another program that polls the data on the pins and writes out the to the serial console in the Arduino IDE. this lets me compile output data identical to what MetalliC provided above only from actual hardware. I also have the added benefit of placing a time stamp on every record so I can better understand the timing.
I've discovered that data that comes out in "groups" are typically spaced about 16ms apart (give or take 1ms). I also discovered that the Arduino is fast enough that (though rare) I would sometimes get an erroneous reading when only some of the pins had switched to the next value. so I added some error checking code where if it determine the pins changed states it would read it twice and only write out if both new reads matched. I haven't had a single bad read since.
I've run this through the test modes in Virtua Striker and VOOT.. .Virtua Striker just sends 2 codes during the "check" for each side and then stops one of them on each side is different from any of the Virtua Tennis codes I believe it's related to the winner lamp. I also noticed that the clear codes are in a different order than Virtua tennis but they're all the same codes.
in VOOT test mode it sends codes out like crazy but looking at the data it's just sending "8" to all of the displays over and over again, there are a couple of codes in there that I don't understand 0x76 and 0xFE which I believe are both related to the winner lamps since they end in binary 110.
I also saw 0x00 pop up a few times when the output test is first activated, though 0x00 is what the pins normally output for games that don't support the billboard so who knows if this is a valid code or just something that pops up when initialized.
The next step is hooking this up to the model 3PCBs then I'm going to modify my write out code a bit to highly any unknown codes, hook this up to the model 3 board and play a complete game and a few VS rounds to see what comes up.
I might do the same with the NAOMI games as well, hopefully we can compile a list of all valid billboard codes and then work on figuring out what they mean.
https://www.instagram.com/p/BFt09XmzGLq/?taken-by=twistedchu
The timing is all done by eye/guessing so I'm sure it's off a bit but most of the sequences look right except for the "blinking eyes" animation (just because the timing is different for every frame and I couldn't be bothered to figure it out).
------------
That didn't really help with interpreting the billboard output data but it did help me get an understanding on how to output to a 7-segment.
The last couple of days I wrote another program that polls the data on the pins and writes out the to the serial console in the Arduino IDE. this lets me compile output data identical to what MetalliC provided above only from actual hardware. I also have the added benefit of placing a time stamp on every record so I can better understand the timing.
I've discovered that data that comes out in "groups" are typically spaced about 16ms apart (give or take 1ms). I also discovered that the Arduino is fast enough that (though rare) I would sometimes get an erroneous reading when only some of the pins had switched to the next value. so I added some error checking code where if it determine the pins changed states it would read it twice and only write out if both new reads matched. I haven't had a single bad read since.
I've run this through the test modes in Virtua Striker and VOOT.. .Virtua Striker just sends 2 codes during the "check" for each side and then stops one of them on each side is different from any of the Virtua Tennis codes I believe it's related to the winner lamp. I also noticed that the clear codes are in a different order than Virtua tennis but they're all the same codes.
in VOOT test mode it sends codes out like crazy but looking at the data it's just sending "8" to all of the displays over and over again, there are a couple of codes in there that I don't understand 0x76 and 0xFE which I believe are both related to the winner lamps since they end in binary 110.
I also saw 0x00 pop up a few times when the output test is first activated, though 0x00 is what the pins normally output for games that don't support the billboard so who knows if this is a valid code or just something that pops up when initialized.
The next step is hooking this up to the model 3PCBs then I'm going to modify my write out code a bit to highly any unknown codes, hook this up to the model 3 board and play a complete game and a few VS rounds to see what comes up.
I might do the same with the NAOMI games as well, hopefully we can compile a list of all valid billboard codes and then work on figuring out what they mean.