When you just can't get any better  
 
    Home

What's interesting about the Wii Guitar Hero game?

Ok, here's the rub. The system looks at 5 spots on the screen and waits for a puck to pass by, where it senses the presence of the puck, stores the information away for a few video frames and then uses the information to press the corresponding button and hit the strum bar. It will do it correctly for ABOUT 50 notes in a row. Then, programmatically, the Guitar Hero program visually shakes the guitar neck in excitement. Of course, this means is that during the shake, I'm looking for pucks in the wrong place on the neck. The system misses the pucks, blows a note or two, and the run counter on the Guitar Hero game resets to zero. It then picks up where it left off and starts racking up more points. Remember I said ABOUT? It's not consistent and I've yet to find a visual indication that this shake is going to happen. If I can find a reliable tell, I can program the system to follow the visual shake around the screen. I do have one idea and that is to look at 4 points around the edge of the neck that are highlighted in white. I've tried this but haven't gotten it working reliably yet.

There's not much more I can tell you about this project except that I will not be listening to Santana's Black Magic Women or Eric Johnson's Cliffs of Dover ever again.

Thanks to Steve for introducing me to Xilinx, FPGA's, VHDL, and Composite Video. Thanks Steve again for coaching me and teaching me the ways of the video gods. Great fun and thanks for spending the time with me. What's next - WHAT'S NEXT???

Thanks to my son Alex for being a great kid. He's SO MUCH BETTER THAN I'LL EVER BE AT THIS AND SO MANY OTHER THINGS. By the way, when he found out what I was doing with his Wii, he commented that this was, by far, the stupidest project he'd ever heard of. He went on to comment that he had NO idea why I would waste my time on this. My answer: I did what I had to do to beat you (which is getting harder and harder as time goes by). Now I can beat you in my sleep. Take that!

** Update 4/18/08 ** Well, I was wrong. GH doesn't randomly shake the guitar neck unless you blow a note. So, instead of a 'random' programatic shake that makes it hard to look in the right place on the screen, I find I'm causing the shake because I miss a note and then because of the missed note, I miss more. This I can fix.

** Update 4/21/08 ** Two interesting things today. First of all, someone told me to look at all notes as sustains - just push the button and keep it down until the next button. I'm going to try this. Second, somone asked if the AGH1000 could play Dragonforce's "Through The Fire and Flames. The quick answer is no, it didn't do well. It gets about 240 notes into the song perfectly and then blows up when the notes get closer together. It won't make it through the song. In training mode it got 74% and the longest streak was 245 notes. I'm going to look at this today and see if it can help my algorithm.

** Update 4/23/08 ** Well, big progress today. My friend Steve came over and took a look at the project. I had been looking at a single line of video, trying to distinguish a puck from all the other video information on the line. The timing for my method was critical. I was looking in the gaps where the fret is broken in 5 places, waiting for a puck to slide through. I had to look there because a fret passing wouldn't be mistakenly identified as a puck. It worked most of the time (as you can see on the videos). It just wasn't 100% (actually 98%). Steve suggested a new system - look at multiple video lines by incrementing a counter, reset by vertical sync. Since a fret is two lines of video and a puck is more, at the end of a frame, if the counter was greater than or equal to 3, I had found a puck and not a fret. This method also cured the sustain problem. The code is a bit more complicated, but it works SO MUCH BETTER than yesterdays code. I'll put new video up in a day or so as we complete debugging it.

** Update 4/24/08 ** The new video is up on YouTube here.

** Update 4/27/08 ** As you can tell from the design, the "Whammy Bar" and the "Star Power" tilt are still manually operated. Last night my wife and I went to dinner and my son Alex snuck into my shop, started the AGH1000 system and operated the "Whammy Bar" and "Star Power" tilt better than I do and posted the high score - 241,489 on Cliffs of Dover. Once again, He's at the top of the list. What's a dad to do.

 

 

 

NEXT PAGE