Super Smash Bros. Melee with 5 Human Players on Wii

Started by biolizard89, April 03, 2011, 03:36:43 AM

Previous topic - Next topic

biolizard89

Here's a video of Super Smash Bros. Melee with 5 human players on Wii using GeckoTunnel. Player 5 is using a USB gamepad via USB Gecko.  (Sorry about the lack of sound.)

http://www.youtube.com/watch?v=Rr6IaXgjCNc

hetoan2

very nice. I attempted to find out a way to upload commands (like walk forward and such) on call of duty black ops for wii and pretty much failed. :\ but in mind i planned on achieving something like this. very well done ;)

PS: i look forward to that talk on youtube ;)


Check out my site with codes obviously...
http://hetoan2.com/

and youtube...
http://youtube.com/hetoan2

Bully@Wiiplaza

how´s that possible? :O
What about doing it on brawl aswell? Harder, Impossible? :confused:
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

biolizard89

@hetoan2: Thanks!  The talk should be on YouTube soon.

@Bully: This works because there's a debug menu in Melee which allows 6-player matches, and you can set players 5 and 6 to human.  Since there isn't a 5th or 6th controller, those players usually just sit doing nothing.  However, players 5 and 6 do still have controller data variables, there's just nothing that writes to them.  I rigged GeckoTunnel to write controller data to the player 5 variable, enabling my laptop to control player 5.  There are some glitches at the moment, due to bugs in Melee's 6-player mode (I gather that the Melee devs didn't expect someone to write to those variables).  Specifically, player 6 crashes with a bad pointer when you write to its controller data (hence why this video only has 5 players), and player 5 also has no control of the analog Y axis (it crashes similarly to player 6's data).  I'll be trying some ASM hacking to fix those crashes, but I didn't have time to do so before the conference talk, so in this video, player 5 doesn't use its Y axis.  Still a fun proof-of-concept though.

As for Brawl, if someone can provide a Gecko code which allows more than 4 players and also sets those players to human-controlled, then yes, it's probably possible to do something similar for Brawl.

dcx2

I'm curious, how did you find the location of the "real" pad data?

I once wanted to make a Super Mario Galaxy code that gave p1 access to all of p2's powers (mainly super jumps and freezing enemies).  I would do this by copying p1's pointer data to p2, and fooling the game into thinking that the p2 wiimote was attached.  However, I never got it to work quite right...

biolizard89

Quote from: dcx2 on April 04, 2011, 02:29:16 PM
I'm curious, how did you find the location of the "real" pad data?

I once wanted to make a Super Mario Galaxy code that gave p1 access to all of p2's powers (mainly super jumps and freezing enemies).  I would do this by copying p1's pointer data to p2, and fooling the game into thinking that the p2 wiimote was attached.  However, I never got it to work quite right...
First I searched for every address that contained P1's pad data.  Next I set a Read BP on each one, and noted the address where it hit.  Then I set an Execute BP on each of those addresses, and looked for a register that was cycling between 0 and 5 (there were some which only cycled between 0 and 3, which I discarded).  I then took the addresses where that instruction was reading when that register was 4 and 5.  Next I set a Write BP on each of those addresses and backtraced until I found an address for P5 and P6 which didn't get written to; those were the pad addresses for those players.  Hope I explained that okay.