News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Metroid Prime 2 (Trilogy) Co-op Mod

Started by SubsonicBeatz154, April 09, 2019, 01:55:04 AM

Previous topic - Next topic

SubsonicBeatz154

I've been waiting forever for someone to do this... But i got tired of waiting, so now i'm making it myself!

This mod is being developed for the NTSC-U version of Metroid Prime: Trilogy, so it probably won't work with the GameCube version...

It's not like it's going to be 100% like the normal game though... I've had to make some modifications as work-around's to certain things not working in multiplayer.

Current Changes:
Since the Scan Visor doesn't function in multiplayer i'm adding triggers to everything that requires it, so you can for example,
walk up to a terminal and it activate without being scanned.

The game automatically ends if a player dies and loads the multiplayer results screen. (Don't know how to make it load the single-player Game Over screen...)

Various string edits to accommodate the other changes.

Current Issues: If anyone knows how to fix these PLEASE let me know!
Save Station's don't work in multiplayer... So you have to play the ENTIRE game in one-sitting without dying... (Unless you use save-states on Dolphin anyways).

Room loading is tied to Player 1, other players can open doors but the room they entered will un-load as soon as they enter it if Player 1 doesn't follow them.
And when Player 1 leaves a room with other players in it, it will cause the other players to get trapped in the un-loaded room if they don't follow Player 1 out.

Scan Visor doesn't function in multiplayer, as in, you can activate it. But you can't scan anything.

Seeker Missile doesn't function correctly in multiplayer, it only allows you to lock-on to 3 targets instead of the required 5.

All players inventories are separate, i'm wanting to make it so everyone's items are shared with everyone else.

Friendly-fire is a thing cause how the multiplayer code works... Don't shoot your teammates  :nope:

Going to another world (either via portal or elevator) resets everyone's inventory... Making the game un-playable past the intro.

Here is a screenshot of the room loading issues and the Scan Visor displaying a, AFAIK, unused object color (Also not functioning).

[spoiler]][/spoiler]

Preview Screenshots:

[spoiler][/spoiler]
[spoiler][/spoiler]
[spoiler][/spoiler]

I just started development on this mod a couple weeks ago, it's going to be a LONG time before it's complete... So stay tuned!

Cpt.Glitch

Now this is an interesting surprise. I hope all goes well with this project.

Aruki

Quote from: SubsonicBeatz154 on April 09, 2019, 01:55:04 AMCurrent Issues: If anyone knows how to fix these PLEASE let me know!
Save Station's don't work in multiplayer... So you have to play the ENTIRE game in one-sitting without dying... (Unless you use save-states on Dolphin anyways).

Room loading is tied to Player 1, other players can open doors but the room they entered will un-load as soon as they enter it if Player 1 doesn't follow them.
And when Player 1 leaves a room with other players in it, it will cause the other players to get trapped in the un-loaded room if they don't follow Player 1 out.

Scan Visor doesn't function in multiplayer, as in, you can activate it. But you can't scan anything.

Seeker Missile doesn't function correctly in multiplayer, it only allows you to lock-on to 3 targets instead of the required 5.

All players inventories are separate, i'm wanting to make it so everyone's items are shared with everyone else.

Friendly-fire is a thing cause how the multiplayer code works... Don't shoot your teammates  :nope:

I dont think most of these are fixable without making code changes. Code changes are doable since we have a framework for it (PrimeAPI) but the infrastructure and reverse engineering work for that has only been done for Prime 1. I am not sure how you'd resolve these issues for MP2 unfortunately.

All said the project sounds cool, best of luck with it!

SubsonicBeatz154

I am thinking about getting the GC version of Prime 2 soon, so i may try it on that version if i can find a way to dump the game.

But until then, this project is being developed for the Trilogy version.

xjonx

Yeah, I kinda already started making a mode like this for GC MP2 a year ago. Though, I never finished it because multiplayer mode has a arbitrary memory limit and it always gets reached in singleplayer maps which causes crashes. There are some stuff like IngSnatcherSwarms and other entities that also crash Multiplayer, mostly spawner stuff. There is also the issue of spawning outside the map when player 2 dies, and there is also the issue of getting back items player 1 or 2 lost... imagine your friend dies and losses dark beam, how tf are you going to progress further? Its not like there is another dark beam. And there is the issue of not saving. To test fixing crashes, you would have the test the entire game in Co-Op until you reach a crash, then test 15 times until the crash is fixed, then test through the entire game again and rinse and repeat. Its really tiring and I kinda gave up on it. I mean, you are welcome to but I really distaste the trilogy version.


SubsonicBeatz154

How you have the FrontEnd setup is certainly better than how i'm currently handling it... Also, the cutscene camera's seem to behave very differently between GC and Trilogy... But i've found a way to fix the cutscenes so they fill the entire screen, by setting FlagsCinematicCamera to 170 (same mode the multiplayer map intro's use BTW) it causes the cutscene to fill the screen, but this doesn't work for every single camera... I had to use a value of 670 for the slow-motion camera's in the item-loss cutscene at the start of the game to get it to fill the screen and maintain the slow-motion support, i'll post a preview video of what i've done in a bit.

SubsonicBeatz154

Video is uploading now. Also, the Trilogy version doesn't seems to crash due to a memory limit, i had 4 players in some of the most demanding area's without crashing, caused a lot of lag, but didn't crash. Probably because the Trilogy version being on the Wii means it has more memory it can use than the GC version, i haven't had a single crash in all of my testing so far. And another thing, Dark Samus's scatter-shot attack doesn't crash the game like it did in the Demo disc, i haven't tested that particular fight in Agon Wastes, but i fought and beat her in Sanctuary Fortress and after the fight with Emperor Ing (who is also beatable without crashing).

SubsonicBeatz154

#8
Alright! Here is a video of my current progress:
Sidenote, for some reason all the strings that Trilogy edited were changed back to how they were in the GC version, and because Trilogy changed the button icons all the controller tutorials are screwed up... It wasn't like this originally when i first started the project in Prime World Editor, but the moment i made my first string edit everything broke...

You can make it all the way up to the first U-Mos encounter, but after speaking with him you are stuck in the Great Temple cause i haven't added a way to use Translator Gates yet... But i accidentally killed myself trying to use the other players missiles :blush:

https://youtu.be/TlMrZfBLos4

xjonx

The amount of work you did to get the camera to work is cool. But, I could just use trilogy but I dont like trology, I rather make a gc co-op mod. I might have to use the 128MB build of dolphin to run without memory limit

SubsonicBeatz154

#10
Unfortunately, the camera fix only works if player 1 or the game itself triggers the cutscene... I'm trying to find a way to fix that if it's possible. Also, spawn-points marked as FirstSpawn will ALWAYS override your inventory, that's how i got the item-loss cutscene to work properly, non FirstSpawn spawn-points only override your inventory if you die and re-spawn at it, which isn't possible due to me adding checks to end the game as soon as someone dies. And i'm also adding additional spawn-points to some cutscenes (as seen in the item-loss cutscene) so the players aren't stacked on top of each other, i'm obviously still working on that tho as it still happens in some cutscenes. I still haven't gotten a chance to test how the spawn-points work with portals and elevators to other worlds yet... Hopefully those don't override your inventory no matter what, or else the game will be un-playable...

Cpt.Glitch

I've noticed enemies don't seem to target the other player. Also a potential fix for the Out-of-bounds thing is teleporting all players into the new room once it is entered. Halo does this in it's co-op campaign when one player hits a new loading zone. Of course I know nothing about prime modding so I am unaware of the work that would take (and how much you're willing to do.). Leaving this suggestion regardless.

xjonx

SubsonicBeatz154, what is your dolphin settings?
I'm stuck with Dolphin 5.0-626 because the newest versions require Visual C++ 2017 Redistributable but it doesn't work even though I installed that so I need Windows 10 which I'm definitely not installing just for a newer Dolphin build.

xjonx

Quote from: Cpt.Glitch on April 10, 2019, 12:44:17 AM
I've noticed enemies don't seem to target the other player. Also a potential fix for the Out-of-bounds thing is teleporting all players into the new room once it is entered. Halo does this in it's co-op campaign when one player hits a new loading zone. Of course I know nothing about prime modding so I am unaware of the work that would take (and how much you're willing to do.). Leaving this suggestion regardless.
Yeah, the only singleplayer enemies that target other players are Space Pirates, and that's ONLY when player 2 boosts into one (normal pirate) or the pirate randomly decides to switch to attacking player 2 (normal pirate and grenadier pirate)

SubsonicBeatz154

xjonx, I'm running the latest Beta (5.0-9888) on Windows 10. With basically everything on default settings other than some enhancements.

xjonx

Quote from: SubsonicBeatz154 on April 10, 2019, 02:46:37 AM
xjonx, I'm running the latest Beta (5.0-9888) on Windows 10. With basically everything on default settings other than some enhancements.
That's what I feared, the newest versions removed setting DVDRoot and Apploader directories, which makes PWE 1.1.0 modding difficult and makes loading PWE 1.2.0+ mods give black screens for me. The newest versions also give me errors when I use Vulkan renderer. The only version that every worked for me is Dolphin 5.0-626

SubsonicBeatz154

Welp, i just got hit with exactly what i feared... Going trough an elevator to another world resets your items. Which means the game will be un-playable past the intro :mad: There doesn't seem to be any way to retain everyone's inventory through loading zones...

SubsonicBeatz154

xjonx, As a work-around to those removed features, i just extracted the game files from the ISO and installed the modded pak files into it then launch the main.dol file, works perfectly.

Aruki

I have doubts it's going to be feasible to fix all the problems you guys have mentioned and get essentially the main game to play correctly in multiplayer mode. I'd suggest instead coming up with a way to turn it into its own thing with its own mechanics and twists based on what the game does & doesn't support in multiplayer, and removing features that don't work with two players, instead of trying to force single-player mechanics to work in coop when the code doesn't support it.

For example, if there's no way to keep the inventory persistent and prevent players from losing items permanently... run with it and provide multiple ways for players to re-collect items.

xjonx

Quote from: SubsonicBeatz154 on April 10, 2019, 03:25:18 AM
xjonx, As a work-around to those removed features, i just extracted the game files from the ISO and installed the modded pak files into it then launch the main.dol file, works perfectly.
Yeah, I get a black screen when doing it, as if [ProjectFolder]/Disc/files didn't exist. The newest versions of Dolphin just don't work for my system. I'm permanently stuck with 5.0-626, the last version that works for me without graphical glitches and the last version with DVD Root/Apploader

xjonx

Quote from: SubsonicBeatz154 on April 10, 2019, 03:21:07 AM
Welp, i just got hit with exactly what i feared... Going trough an elevator to another world resets your items. Which means the game will be un-playable past the intro :mad: There doesn't seem to be any way to retain everyone's inventory through loading zones...
That doesn't happen in the GC version for me. The only time items reset is when a player dies and respawns. Relay[Zero] -> SpawnPoint[SetToZero] does not cause items to reset in GC, it only forces all players to spawn at that spawnpoint, even at the default spawnpoint.

xjonx

Quote from: Aruki on April 10, 2019, 05:52:06 AM
I have doubts it's going to be feasible to fix all the problems you guys have mentioned and get essentially the main game to play correctly in multiplayer mode. I'd suggest instead coming up with a way to turn it into its own thing with its own mechanics and twists based on what the game does & doesn't support in multiplayer, and removing features that don't work with two players, instead of trying to force single-player mechanics to work in coop when the code doesn't support it.

For example, if there's no way to keep the inventory persistent and prevent players from losing items permanently... run with it and provide multiple ways for players to re-collect items.
One of my solutions was to develop a menu for each room, but I am still learning how the MP2 menus work. Thus, you can recover items from a menu

SubsonicBeatz154

Hmm... I never though to use SetToZero on a spawn-point... I'll try that and see if that fixes it.

SubsonicBeatz154

Unfortunately, that doesn't seem to work... Whenever a WorldTeleporter is triggered, it will always override the players inventories with whatever the spawn-point on the other end has set.

xjonx

Quote from: SubsonicBeatz154 on April 10, 2019, 07:21:55 PM
Unfortunately, that doesn't seem to work... Whenever a WorldTeleporter is triggered, it will always override the players inventories with whatever the spawn-point on the other end has set.
That must be a Trilogy limitation. Setting a spawn point to zero in GC MP2 does not do that. Spawn points in general dont do that in GC MP2. The ONLY time it does this is when a player dies and respawns.