Codes
WiiRd forum
March 28, 2024, 09:50:38 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Welcome on the new server

Update 4.3 - do NOT update!
Gecko 1.9.3.1
Should I get a USB Gecko, I wanna hack?
How do I use my USB Gecko
Where can I get WiiRd?
 
   Home   CODE DATABASE GAMEHACKING Help Search Login Register  
Pages: [1] 2
  Print  
Author Topic: GeckoTunnel - LAN Play + Ghost/Replay Recording for Wii (Public Alpha 3)  (Read 8416 times)
biolizard89
Hacker
Sr. Member
*****

Karma: 22
Posts: 373

passport.10.biolizard89@spamgourmet.com biolizard89 biolizard89
« on: December 28, 2010, 10:43:54 PM »

EDIT: LAN Play is now supported in Public Alpha 3

I released the first public alpha of GeckoTunnel over at the Fuzziqer Software forums, and I figured people here might be interested.  GeckoTunnel is a tool to synchronize multiple Wii consoles using the USB Gecko.  It currently supports recording and playback of ghosts/replays, and will (hopefully) eventually support network play.  The only supported game at the moment is Sonic Adventure 2: Battle for GameCube (USA version), but I plan to support more games in the future.  I will also be releasing instructions for adding support for other games yourself, if you enjoy hacking (it's not particularly difficult).

This is a public alpha; don't be surprised if your Wii crashes occasionally.  That said, I would definitely like to hear what people think of it.  Bug reports and feature requests welcomed.

https://veclabs.posterous.com/pages/geckotunnel
« Last Edit: April 08, 2012, 07:32:00 AM by biolizard89 » Logged
Deathwolf
Hacker
Legendary Member
*****

Karma: 62
Posts: 1795


WWW
« Reply #1 on: December 28, 2010, 10:48:03 PM »

WTF nice tool !?  Shocked
if I understand it right, you can record/playback videos?
Logged

lolz
biolizard89
Hacker
Sr. Member
*****

Karma: 22
Posts: 373

passport.10.biolizard89@spamgourmet.com biolizard89 biolizard89
« Reply #2 on: December 29, 2010, 12:21:57 AM »

WTF nice tool !?  Shocked
if I understand it right, you can record/playback videos?
Thanks.  Yes, if you have a supported game (currently the USA version of Sonic Adventure 2: Battle for GameCube), you tell GeckoTunnel (on the PC) to start recording, and then you play through the level on the Wii.  Tell GeckoTunnel to playback the file, and the gameplay will be played back on the Wii.  At the moment, it records player 1 and plays back to player 2, so you can race against a recording you made previously.

It works by transferring controller pad data, player XYZ coords, and other data over the USB Gecko.
Logged
Skiller
Codemaster Skiller
Hacker
Hero Member
*****

Karma: 114
Posts: 806


WWW
« Reply #3 on: December 29, 2010, 04:28:08 AM »

WTF nice tool !?  Shocked
if I understand it right, you can record/playback videos?
Thanks.  Yes, if you have a supported game (currently the USA version of Sonic Adventure 2: Battle for GameCube), you tell GeckoTunnel (on the PC) to start recording, and then you play through the level on the Wii.  Tell GeckoTunnel to playback the file, and the gameplay will be played back on the Wii.  At the moment, it records player 1 and plays back to player 2, so you can race against a recording you made previously.

It works by transferring controller pad data, player XYZ coords, and other data over the USB Gecko.

Ahh he was thinking more along the lines of alowing u to record  an AVI file .. not Data Catch...
Still nice app . Smiley would be intresting to see on games like Golden Eye lol
Logged
biolizard89
Hacker
Sr. Member
*****

Karma: 22
Posts: 373

passport.10.biolizard89@spamgourmet.com biolizard89 biolizard89
« Reply #4 on: December 29, 2010, 05:39:26 AM »

WTF nice tool !?  Shocked
if I understand it right, you can record/playback videos?
Thanks.  Yes, if you have a supported game (currently the USA version of Sonic Adventure 2: Battle for GameCube), you tell GeckoTunnel (on the PC) to start recording, and then you play through the level on the Wii.  Tell GeckoTunnel to playback the file, and the gameplay will be played back on the Wii.  At the moment, it records player 1 and plays back to player 2, so you can race against a recording you made previously.

It works by transferring controller pad data, player XYZ coords, and other data over the USB Gecko.

Ahh he was thinking more along the lines of alowing u to record  an AVI file .. not Data Catch...
Still nice app . Smiley would be intresting to see on games like Golden Eye lol
Right, it doesn't record .avi files; the data it logs consists of game variables which can reconstruct the gameplay when put back into the game.  The advantage of this method is that it uses very little bandwidth... the eventual goal is to use this to enable online play of supported games, and the bandwidth usage is low enough that it would even work on dial-up (although it would lag due to ping).

And yes, there are a lot of games with which this would be fun.  Adding support for new games isn't very hard; I plan to publish instructions on doing so soon.
Logged
Nuke
Hacker
Hero Member
*****

Karma: 53
Posts: 661


« Reply #5 on: December 29, 2010, 06:05:55 AM »

Awesome,

Feel free to post / PM the source to the Client app and i'll port it to Mac / Linux for you.
Logged

0xFFFFFFuuuuuuu
Link
that dev there
Moderator
Hero Member
*****

Karma: 76
Posts: 1254

I hate everyone in this community. Except for you!


WWW
« Reply #6 on: December 29, 2010, 09:00:41 AM »

Wow, that's a great tool! Absolutely perfect work!
Logged

James0x57
Database Admin
Leader
Legendary Member
*****

Karma: 70
Posts: 1546

Gamertag: James0x57


WWW
« Reply #7 on: December 30, 2010, 05:47:19 PM »

Dude, sweet! Great idea too. =D
I remember a similar tool on GCN but it was specifically for SSBMelee and you had to go through the lengthy PSO hack to boot homebrew..

How often does it capture the controller data though?

Will you have to deliberately slow the frame rate a tiny bit to try and keep it in sync when you program the online part?
Logged


biolizard89
Hacker
Sr. Member
*****

Karma: 22
Posts: 373

passport.10.biolizard89@spamgourmet.com biolizard89 biolizard89
« Reply #8 on: December 30, 2010, 07:27:57 PM »

Dude, sweet! Great idea too. =D
I remember a similar tool on GCN but it was specifically for SSBMelee and you had to go through the lengthy PSO hack to boot homebrew..

How often does it capture the controller data though?

Will you have to deliberately slow the frame rate a tiny bit to try and keep it in sync when you program the online part?
Thanks James!  The GCN tool you're referring to is GCARS-CS by Fuzziqer; I was loosely involved in that project (beta tested, worked on adding additional games, although I wasn't involved in coding it).  My experience in that project was definitely helpful while writing GeckoTunnel.

GeckoTunnel captures controller data every frame.  (By contrast, GCARS-CS did so every 6th frame by default.)  Slowing the frame rate shouldn't be necessary when playing online; if lag causes data to not be received by the next frame, GeckoTunnel will simply send the Wii the data from the previous frame.  When the new data arrives, the game will be resynced by the XYZ coords, health, etc.

By the way, I think I may have neglected to mention in the readme that for controller data to work, the PadRead hook must be used.  I believe GeckoOS Mod calls this "Unknown1" but I can't remember for certain.  So for those of you who want to try it out, make sure you have the correct hook.

@Link: Thanks!

@Nuke: Thanks, I'll PM you when I have a chance.
Logged
James0x57
Database Admin
Leader
Legendary Member
*****

Karma: 70
Posts: 1546

Gamertag: James0x57


WWW
« Reply #9 on: December 30, 2010, 10:28:04 PM »

Ah, delicious! Since almost everyone has Wii Sports and many have Wii Play, you might want to consider setting up defaults for those two games once you nail down the online stuff. Might be a "selling" point you could advertise. ^^

Thanks for sharing this here with us. =)
Logged


hetoan2
Moderator
Legendary Member
*****

Karma: 348
Posts: 2279


I hack WiFi, but I don't cheat on WiFi ;)


WWW
« Reply #10 on: December 31, 2010, 04:12:28 PM »

i believe that mdmwii got something similar to this working for mario kart wii, the file with button presses is recorded by the game though, and then after dumped he figured out how to stick it back in the memory (while not in replay mode) to do a live replay of it.

although it helped that the feature was natively supported.

this is a great tool though, although this wouldn't work if the game doesn't take in the button presses from a certain address, right?
Logged



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

and youtube...
http://youtube.com/hetoan2
biolizard89
Hacker
Sr. Member
*****

Karma: 22
Posts: 373

passport.10.biolizard89@spamgourmet.com biolizard89 biolizard89
« Reply #11 on: December 31, 2010, 10:10:40 PM »

@James: No problem.  Yes, Wii Sports is one of the games I'd like to support fairly early on, and Wii Play shouldn't be hard either.

@hetoan2: GeckoTunnel reads/writes to the controller data address, using the PadRead hook.  By doing this, anything it writes to that address is interpreted by the game as having come directly from the PadRead function (and thus will be considered as the latest controller data until the next frame).  If a game's PadRead can't be hooked, then there will be problems (although presumably a custom hook could be made).  On GameCube at least, I have not run across a game whose PadRead can't be hooked (I'm told that there are some on Wii, but haven't fully investigated those cases).

I hadn't heard about mdmwii's project, but yeah, GeckoTunnel reads/writes the data in real-time, which can allow for other more interesting enhancements than just replay recording (e.g. netplay).
Logged
hetoan2
Moderator
Legendary Member
*****

Karma: 348
Posts: 2279


I hack WiFi, but I don't cheat on WiFi ;)


WWW
« Reply #12 on: January 01, 2011, 12:01:46 PM »

mdmwii didn't make a project, he was just messing around with it:

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

thats a code he made which pretty much moves the downloaded TT data to the current player inputs, but he has done it with a USB Gecko I'm pretty sure.


Anyways, I've found an address in a game, and when I poke it, the game takes the inputs from there sometimes, I was wondering how this could be changed to make it directly take inputs (i presume i need to make a hook for it, although i havent the slightest idea on how to do that), that way I could either use a controller from my PC, or make rapid fire etc. Also, the game requires OSSleepThread hooktype to begin with, so if there's a gecko hook that would have worked, it wont here :\
Logged



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

and youtube...
http://youtube.com/hetoan2
biolizard89
Hacker
Sr. Member
*****

Karma: 22
Posts: 373

passport.10.biolizard89@spamgourmet.com biolizard89 biolizard89
« Reply #13 on: January 01, 2011, 08:41:38 PM »

mdmwii didn't make a project, he was just messing around with it:

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

thats a code he made which pretty much moves the downloaded TT data to the current player inputs, but he has done it with a USB Gecko I'm pretty sure.


Anyways, I've found an address in a game, and when I poke it, the game takes the inputs from there sometimes, I was wondering how this could be changed to make it directly take inputs (i presume i need to make a hook for it, although i havent the slightest idea on how to do that), that way I could either use a controller from my PC, or make rapid fire etc. Also, the game requires OSSleepThread hooktype to begin with, so if there's a gecko hook that would have worked, it wont here :\
You may have noticed that GeckoTunnel's readme says it aims to support "alternate input methods"; this is referring to controlling the GameCube/Wii game using USB controllers on a PC (or anything that can emulate them; GlovePIE would enable a huge amount of possibilities).  Doing this isn't hard, GeckoTunnel as-is will handle this without huge modifications; all I really need to do is link in an SDL or DirectInput library that produces the data in the standard GameCube/Wii format.  I already did this with the GameCube Broadband Adapter (with Fuzziqer's GCARS-CS) years ago; doing it on the USB Gecko with GeckoTunnel isn't much different.

Of course, this only works reliably if the PadRead function can be hooked. For a game that requires OSSleepThread, the way I would go about it would be setting a write BP on the pad data address, and writing a manual hook to the GeckoOS code handler into the resulting function using the C6 codetype.  I haven't actually done this, but that's what I would try.
Logged
hetoan2
Moderator
Legendary Member
*****

Karma: 348
Posts: 2279


I hack WiFi, but I don't cheat on WiFi ;)


WWW
« Reply #14 on: January 01, 2011, 10:31:45 PM »

Erm, I get 80004290:  9D2CFFFF   stbu   r9,-1(r12)

doesn't that mean that it's already been hooked, seeing as thats in the gecko region :S
Logged



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

and youtube...
http://youtube.com/hetoan2
Pages: [1] 2
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!