Hacking Super Mario Galaxy 2 - Split-Screen Multiplayer

robal12345

Well-Known Member
OP
Newcomer
Joined
Aug 25, 2007
Messages
55
Trophies
0
Age
33
Website
www.youtube.com
XP
308
Country
Greetings to GBAtemp, I'm a long-time lurker, not first time poster, but it's been a long time since I last made any contributions to the forums. I'm known as MrBean35000vr on YouTube and a few other places, and for the past while, me and my younger brother known as Chadderz have been working on a rather special mod for Super Mario Galaxy 2, one that has started to take shape already...

[yt]Pqef07U0LNs[/yt] [yt]IGHh80fpDRA[/yt]​




We are attempting to implement a split-screen multiplayer mode into Super Mario Galaxy 2, where one player plays as Mario, and the other Luigi, and both players will take on the levels together. As can be seen in the video, several of the basic requirements are already functional; we have both Mario and Luigi in the level, they're running on seperate controllers, the screen is split in half with two renderings of the game world, and both players are capable of interacting with enemies and objects inside of the world.

There's still plenty of work to be done before this mod is ready, however. There's issues to resolve such as the interface being partially off-screen, the shadow matrix which enjoys getting well and truly distorted by the resized screens, character voices, who coins affect, the two pointer cursors, making all characters stop in cutscenes... etc. And I don't even want to think about Fluzzard right now...

At the moment, it seems that when complete, it will be distributed as a download that can be run using Riivolution, or by modifying an ISO. This may be subject to change if another method of easily running it suddenly leaps forth, however for the time being... Riivolution is just too good for this kind of thing, seriously.

Those of you who have been around GBAtemp for a long time may remember that the game mod known as Super Mario Galaxy 2.5 was going to have split-screen multiplayer, as built by MrBean35000vr and Chadderz... this is indeed the split-screen multiplayer that we promised back then. Sorry for the wait! Hopefully it will not take too long to complete from here. Astounding progress was made over the past couple of weeks, and with any luck things will continue on their current path.

I hope you all like what you see, and I hope to bring more good news about this mod very soon :)
 
B

Bladeforce

Guest
Far from me to sound pessimistic but all you've done here is copy the exact same video and pasted into a split screen video.
 
  • Like
Reactions: 1 person

robal12345

Well-Known Member
OP
Newcomer
Joined
Aug 25, 2007
Messages
55
Trophies
0
Age
33
Website
www.youtube.com
XP
308
Country
Far from me to sound pessimistic but all you've done here is copy the exact same video and pasted into a split screen video.

Not at all, sir. Pause the video at... 1:34, and check the positioning of the two starbits (right) and red bomb (left). Whichever way you look at it, they're clearly different, as the lower screen is trying to pan left. You'll also notice that the perspective in each shot is different, hence it cannot be a cloned image (see Mario's angle to the inverted Goomba).

As stated in the first post, the cameras are indeed wrong. However, the reason for showing them in the first place is to demonstrate that we do have 2 seperate renderings of the same world going on from different perspectives... albeit not much different.
 

machomuu

Drops by occasionally
Member
Joined
Sep 4, 2009
Messages
8,464
Trophies
1
Location
The Courtroom
XP
876
Country
United States
This is pretty amazing, I'm anxious to see what will come out of it. This is by far one of the most interesting unreleased Wii game mods yet.
 

snikerz

Well-Known Member
Member
Joined
Nov 30, 2008
Messages
502
Trophies
1
Website
Visit site
XP
462
Country
Lesotho
Best fake I've seen recently. Nice work.

To prove me wrong: Tell us something about how it works, and how you modified the game's most sophisticated code in assembly language.
 

robal12345

Well-Known Member
OP
Newcomer
Joined
Aug 25, 2007
Messages
55
Trophies
0
Age
33
Website
www.youtube.com
XP
308
Country
Best fake I've seen recently. Nice work.

To prove me wrong: Tell us something about how it works, and how you modified the game's most sophisticated code in assembly language.

I would say "No, you prove me wrong", but this is a good opportunity.

Well, first and foremost, have you ever heard of a device called the USB Gecko? It's amazingly useful, it allows you to watch and alter the RAM of the Wii on-the-fly. So that's how we got to the "sophisticated code" and modified it.

Anyway, sarcastic remarks aside, it was discovered by a member of the Super Mario Galaxy 2.5 team that it's possible to place more than one instance of Mario; he can be placed freely as an object in the game world. If you place more than one, you end up with two Marios (or Luigis, depending on selected character), who both spawn in the level and are both controlled on the P1 controller. So, this was an obvious area to start off from, thus we used a version of Throwback Galaxy that loads two player objects. And, good old Nintendo provided a co-op mode of their own, the co-star luma, which means that a Wiimote for Player 2 can be connected to the Wii without many complications; interestingly its nunchuk data is read by SMG2, too, which is slightly surprising but extremely handy. Using aforementioned USB Gecko to watch how player objects read inputs from P1's controller, we altered the code so that for the second player object, it would read off the P2 controller instead. Currently buttons and analog sticks have been found and assigned. Interestingly, we have NOT found the accellerometer yet, hence both characters in the preview video spin simultaneously, apart from when I used tricky moves to desync their spins (for that goomba hit scene, etc). Anyways, long story short, that gave us basic control of both of the characters on two controllers.

The much, much more challenging task was the splitting of the screen. I have to be honest, this was mainly Chadderz's work; but he does have an account here and I can ask him to come along and explain all the finer points. From my understanding, how he's made this work is that he tracked down the routine that loads levels from disc, and if a player object (a 2nd one) gets loaded within 2 seconds of the loading of the main objects, he drops the render size of the screen to half. On alternating frames, he renders to the top screen the camera position of P1, and to the bottom screen the camera position of P2, and simply preserves whatever is in the screen buffer at the time for the other screen, if you see what I mean. The game runs at 30fps like this. You can watch the splitting occur on the star select screen and the life loss screen, when all objects are reloaded. You'll also see for how one frame, the top screen is rendering correctly while the bottom screen is rendering half of what the full screen once was; indicating that this does indeed occur as stated.

Just before the video was made, the flag controlling whether Luigi/Mario was loaded was found, so this is altered when a 2nd character load is called, resulting in one Mario and one Luigi appearing in the level; but it does come with a side-effect; both characters have either Mario or Luigi's voice.

The camera is a strange issue that's not been resolved. It IS supposed to track the two players individually, but doesn't. What is supposed to happen (and apparently does, but doesn't have the desired effect) is that all information about the camera is stored twice; once for the frame of the character who's getting their screen updated, and a temporary value for the player who isn't, and these get swapped over every frame. What this should do is allow each player to have their own camera by quickly swapping them over every frame; however for whatever reason, it currently opts to place the camera at the average position between both characters, and rotates to kinda face them instead. This problem seems to be as obvious as "Well, it's probably because the camera likes to pan smoothly." That's clearly what's happening, but why, we're not sure, because it is accounted for... but evidently not correctly. So the cameras pan as they do.

Anyways, Chadderz is the one who assembles most of the code for this, so I'm just relaying what I know about how this system is built. He codes in C++, compiles to PowerPC, uploads the compiled ASM to the Wii in a free space of the RAM using WiiRD (0x80003540 if I remember right), and changes an instruction at a specific address to branch to his code, which then runs every frame.

By the by, if you doubt that we know what we're doing when it comes to Wii mods, you should look up a project called Mario Kart Wii CTGP Revolution. It's a version of Mario Kart that has 128 customised tracks and an online service (known as CTWW, if you just search that word there are videos everywhere), it's public and free to play. And you can bet who coded the new menu screens, the mods to load additional tracks, alter the online service, etc... indeed, me and Chadderz. Hell, Chadderz was the guy who single-handedly made it possible to build Mario Kart custom tracks in the first place. His skill is something amazing. So, you can trust that this work is very real. I hope I've said sufficient to prove my point, but if not, I'll wheel on Chadderz to provide much better information than I could ever ;)
 

megazig

SU
Member
Joined
Oct 25, 2008
Messages
467
Trophies
0
XP
232
Country
United States
don't worry about proving this guy wrong. if he can't tell that this is real, he doesn't have to believe it.

nice work as always chadderz
 

conanac

Be an Angel
Member
Joined
Sep 13, 2009
Messages
267
Trophies
1
XP
329
Country
United States
Great progress/milestones for the mod, and when it is release, I will try this in uneek+di environment (perhaps by changing a set of game files + readjust fst? or extracting from the modified iso?).

Cheers.
 

robal12345

Well-Known Member
OP
Newcomer
Joined
Aug 25, 2007
Messages
55
Trophies
0
Age
33
Website
www.youtube.com
XP
308
Country
I guess Snickerz isn't active in the Custom Mario Kart Wii scene. OP, I can't wait to see what comes of this but I hope you guys don't stop modding Mario Kart Wii.

Ooh, no worries there. We're still very active on that, too! Both of these projects (Mario Kart Wii modding and SMG2 multiplayer) are getting a lot of our time these days.
 

Squirps

Official Squirps of GBATemp.net™
Member
Joined
Sep 13, 2009
Messages
227
Trophies
0
Age
113
Location
The corner in that dark alley.
XP
477
Country
United States
Best fake I've seen recently. Nice work.

To prove me wrong: Tell us something about how it works, and how you modified the game's most sophisticated code in assembly language.

You're KIDDING me. This is MrBean35000VR, the most well-known Mario Kart Wii hacker, and him and his bro Chadderz CREATED the ability to play Custom Tracks online through hacking. He has PLENTY of credibility, so I suggest you actually do a bit of research and look clearly before you go making immediate "OMG IT'S FAKE" remarks.
 

Presto99

You slammin, bro?
Member
Joined
Feb 24, 2010
Messages
915
Trophies
1
Age
28
Location
Skyworld
Website
https
XP
320
Country
United States
Wow, this is amazing! Never would I have thought this was possible for people doing this on their own.... You guys are incredible! I'd love to get my hands on this sometime and play it with some of my friends! :D I have one question, though. Since, at least for now, you seem to be having camera problems, why not have it set so that both characters share the entire screen? They would have to stay near each other, but it would be nice if there were at least an option for that.
 
  • Like
Reactions: 1 person

robal12345

Well-Known Member
OP
Newcomer
Joined
Aug 25, 2007
Messages
55
Trophies
0
Age
33
Website
www.youtube.com
XP
308
Country
Wow, this is amazing! Never would I have thought this was possible for people doing this on their own.... You guys are incredible! I'd love to get my hands on this sometime and play it with some of my friends! :D I have one question, though. Since, at least for now, you seem to be having camera problems, why not have it set so that both characters share the entire screen? They would have to stay near each other, but it would be nice if there were at least an option for that.

I think we'll go down that route only if making the two cameras function properly proves too difficult. There's a lot of stuff that kinda gets in the way of only having one screen; for one thing, the controls become frankly bizarre if the two characters go too far apart: You get stuck running in only one direction no matter what, things like that (and trust me, it's NEVER a useful direction :P). Also, I'm not sure how we'd confine the second player so they couldn't go too far away in the first place... nevertheless, these problems are resolvable, I'm sure. Still, I just really would enjoy the ability for both characters to drift apart and do their own thing, so for the time being we'll work on fixing the split screen up rather than altering the single screen to become 2-player friendly. But it is always an option :)
 
  • Like
Reactions: 1 person
B

Bladeforce

Guest
Ok I do hope this is real but having played your mario kart mods i dont expect much. It is good how have managed to do these mods but they feel like they are missing that "something" maybe that something comes from the special nintendo touch. Anyway if it helps i know that a split screen 2 player was originally thought of for SMG2 now whether any code made its way into the final item is anybodys guess. Keep modding its good for others :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users