vladfi1 / phillip

The SSBM "Phillip" AI.
GNU General Public License v3.0
547 stars 79 forks source link

Play on a Gamecube #23

Open andrewschreiber opened 4 years ago

andrewschreiber commented 4 years ago

I had the thought it would be fun to play against Phillip on a physical gamecube. Imagine bringing a Phillip rig to a Melee tournament (without having to play on Dolphin).

I imagine in order to get this to work, we would need deep learning rig to talk to a gamecube.

The first part is capturing the video output. A component cable splitter will allow the gamecube to both render to the TV and send output to the computer. On the computer's receiving end, there are various solutions such as converting to HDMI, USB, etc. Once the video signal arrives, it may need to be de-interlaced. This seems to be a mostly solved problem by existing hardware.

The second part is sending actions from the Phillip computer's USB to the gamecube controller input jack. In my brief research, it seems no one has built a USB male to Gamecube male adapter. This represents the biggest blocker in my mind. The good news is that the protocol of how a Gamecube controller sends input to the system is well documented by the online community, so building this hardware is tractable.

I have no personal plans to build this system any time soon, but wanted to start the conversation and strongly encourage others who might consider picking up the mantle.

vladfi1 commented 3 years ago

Phillip uses game memory rather than video, so a splitter doesn't help. However, with the advent of slippi and altf4's libmelee, game states can be read from the console and given to the AI. I'm not sure about getting them back in to the game, but I could see see slippi eventually supporting this (it might be similar to "console mirroring" which slippi already supports).