How are two-player hacks possible?

jonthedit

Well-Known Member
OP
Member
Joined
May 30, 2011
Messages
1,682
Trophies
0
XP
1,009
Country
Bangladesh
Sure, I can understand infinite rings, lives, time stops, character change codes.
But adding an entirely new character, with separate controls- for a game that does not even reference those controls (port 2) such as this project for n64 - where Mario 64 became two player.

(Purposely chose an older one, since I am not interested in all the fancy things done since then)

Blows my mind. Are there any open source projects or places I can learn to do this?
What technical skillsets are needed?

What resources would help me accomplish this goal?

Edit: Source for the n64 hack:
http://origami64.net/attachment.php?aid=252
^ Clearly assembly, but what else do I need to dive into?
 
Last edited by jonthedit,

Luglige

hiatus
Member
Joined
Jan 24, 2016
Messages
1,414
Trophies
1
Location
under your bed
XP
883
Country
Antarctica
Sure, I can understand infinite rings, lives, time stops, character change codes.
But adding an entirely new character, with separate controls- for a game that does not even reference those controls (port 2) such as this project for n64 - where Mario 64 became two player.

(Purposely chose an older one, since I am not interested in all the fancy things done since then)

Blows my mind. Are there any open source projects or places I can learn to do this?
What technical skillsets are needed? Background in assembly?

For a starter project I want to try achieving a similar state in a far simpler game like "102 Dalmatians: Puppies To The Rescue" in PS1.

The reason I chose this game is because there are two models player 1 can access, and the game has a "bug" where sometimes a controller in Port 2 can control the AI fire rate. I figured this would be an easier target.
I am familiar with Java, C, C++, Python but only barely touched the world of logic gates and assembly- but I am willing to dig into it.

What resources would help me accomplish this goal?

Edit: Source for the n64 hack:
http://origami64.net/attachment.php?aid=252
^ Clearly assembly, but what else do I need to dive into?

Re-Writing games code. Cracked versions of games is where you will have to start (Don't quote me on that.) You'll need to know HEX and Binary. I would start small first and get into ROM Hacking (This Site Would Be Good) Start out simple, hack some GBA Games or some NES games. PS1 Is a whole new ground of work. I would change things small like skins or text dialogue. Here are some good info:
1. http://www.romhacking.net/start/ Getting Started

2. - Good start to see what you will be getting into.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
I guess we are replying to an old thread but OK.

Is there a hidden 2 player mode, another NPC that follows you or something similar? If so then start with that.
After that you can make NES Mario style switch and lives counter 2 player.
After that you get to do it properly. I asked about NPCs above as that is probably what you would do.
There is a further possibility, one actually seen commercially on the SNES in xband, where you make a network game and do something similar to these but I will leave that one for now. I guess you could do something similar for gameboy/handheld type games where multiple people hitting buttons is a harder prospect, it is also why you can do things like Kaillera happily enough for older systems and newer but handhelds are less commonly seen with network multiplayer where they might previously have had cables.

Another controller is nothing really -- if the system is old enough it probably has the controllers in memory regardless, if the system is new enough it probably registers it for the menu. This is little more complex than a conventional button remapping hack, though you might have to got a tiny bit more complex if you decide to copy the control commands (if the game self modifies the read codes for analogue sticks or something).

Adding another player is harder. The thing you will always, always, always be fighting, at least outside that xband stuff which has its own problems with the same, is memory of various forms. Anyway if you can get another model to display you can then make it change position using the controller stuff (read player 2's port and move accordingly).

Open source examples? Not really. You will tend not to get commented code for hacks that extensive -- such things are usually more for single types of thing you can do.

Anyway I have to leave for now. Background wise it is all fairly common ROM hacking techniques, just applied in a slightly more involved/extensive manner than a lot of other hacks. So yeah ROM hacking through graphics, level editing, control editing, assembly and enough knowledge of how games are put together that you could make such a game in more conventional programming.
 

Luglige

hiatus
Member
Joined
Jan 24, 2016
Messages
1,414
Trophies
1
Location
under your bed
XP
883
Country
Antarctica
I guess we are replying to an old thread but OK.

Is there a hidden 2 player mode, another NPC that follows you or something similar? If so then start with that.
After that you can make NES Mario style switch and lives counter 2 player.
After that you get to do it properly. I asked about NPCs above as that is probably what you would do.
There is a further possibility, one actually seen commercially on the SNES in xband, where you make a network game and do something similar to these but I will leave that one for now. I guess you could do something similar for gameboy/handheld type games where multiple people hitting buttons is a harder prospect, it is also why you can do things like Kaillera happily enough for older systems and newer but handhelds are less commonly seen with network multiplayer where they might previously have had cables.

Another controller is nothing really -- if the system is old enough it probably has the controllers in memory regardless, if the system is new enough it probably registers it for the menu. This is little more complex than a conventional button remapping hack, though you might have to got a tiny bit more complex if you decide to copy the control commands (if the game self modifies the read codes for analogue sticks or something).

Adding another player is harder. The thing you will always, always, always be fighting, at least outside that xband stuff which has its own problems with the same, is memory of various forms. Anyway if you can get another model to display you can then make it change position using the controller stuff (read player 2's port and move accordingly).

Open source examples? Not really. You will tend not to get commented code for hacks that extensive -- such things are usually more for single types of thing you can do.

Anyway I have to leave for now. Background wise it is all fairly common ROM hacking techniques, just applied in a slightly more involved/extensive manner than a lot of other hacks. So yeah ROM hacking through graphics, level editing, control editing, assembly and enough knowledge of how games are put together that you could make such a game in more conventional programming.
We need to make you a moderator...
 
  • Like
Reactions: Deleted-379826

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,256
Trophies
4
Location
Space
XP
13,814
Country
Norway
Sure, I can understand infinite rings, lives, time stops, character change codes.
But adding an entirely new character, with separate controls- for a game that does not even reference those controls (port 2) such as this project for n64 - where Mario 64 became two player.

(Purposely chose an older one, since I am not interested in all the fancy things done since then)

Blows my mind. Are there any open source projects or places I can learn to do this?
What technical skillsets are needed? Background in assembly?

For a starter project I want to try achieving a similar state in a far simpler game like "102 Dalmatians: Puppies To The Rescue" in PS1.

The reason I chose this game is because there are two models player 1 can access, and the game has a "bug" where sometimes a controller in Port 2 can control the AI fire rate. I figured this would be an easier target.
I am familiar with Java, C, C++, Python but only barely touched the world of logic gates and assembly- but I am willing to dig into it.

What resources would help me accomplish this goal?

Edit: Source for the n64 hack:
http://origami64.net/attachment.php?aid=252
^ Clearly assembly, but what else do I need to dive into?

It's done by reverse engineering the game and modifying the asm. It takes pretty extensive changes to do a proper full multiplayer mod with splitscreen and separate health bars and that's why the SM64 mod is limited to two players on the same screen with a shared health bar. The process of doing that can be simplified to a few steps: Add another mario object to the game and modify this object to respond to input from the second controller. The game is still designed for one player, so there are some events that will only respond to player 1, like for example if the second player dies nothing happens, and the camera is still only following player 1. To fix these things would take a lot more work.
 

Kioku

猫。子猫です!
Member
Joined
Jun 24, 2007
Messages
12,003
Trophies
3
Location
In the Murderbox!
Website
www.twitch.tv
XP
16,128
Country
United States
I want to say the Super Mario 64 mod was based on some leftover code found within the game. Super Mario 64 was intended to have a cooperative type mode. I don't remember the specifics, but I do remember reading that development started when they found that code.

--------------------- MERGED ---------------------------

It's done by reverse engineering the game and modifying the asm. It takes pretty extensive changes to do a proper full multiplayer mod with splitscreen and separate health bars and that's why the SM64 mod is limited to two players on the same screen with a shared health bar. The process of doing that can be simplified to a few steps: Add another mario object to the game and modify this object to respond to input from the second controller. The game is still designed for one player, so there are some events that will only respond to player 1, like for example if the second player dies nothing happens, and the camera is still only following player 1. To fix these things would take a lot more work.
The newer updates fix those grievances. Player 2 now has their own health bar.. And I think if Player 1 dies, Player 2 still can progress and beat the level.
 

Deleted member 370283

Well-Known Member
Member
Joined
Aug 19, 2015
Messages
496
Trophies
0
Age
22
XP
1,021
Country
United States
I also wonder if its possible to make a two player mod of sonic 2 and sonic 3 split screen co-op modes.
Well, in terms of Sonic 2, have you ever plugged in a second controller during a one player game? The second player actually begins to control Tails! I think it's something that many people miss when playing.
For Sonic 3, something of the sort could definitely be done, but Sonic 3 isn't a game that many people seem to want to hack. It's a very confusing, convoluted mess for any beginners to try to hack, and the interest just isn't really there from what I've seen.

Source: I am a member of the Sonic hacking community. :)
 

Sonic Angel Knight

Well-Known Member
Member
Joined
May 27, 2016
Messages
14,397
Trophies
1
Location
New York
XP
12,923
Country
United States
Well, in terms of Sonic 2, have you ever plugged in a second controller during a one player game? The second player actually begins to control Tails! I think it's something that many people miss when playing.
For Sonic 3, something of the sort could definitely be done, but Sonic 3 isn't a game that many people seem to want to hack. It's a very confusing, convoluted mess for any beginners to try to hack, and the interest just isn't really there from what I've seen.

Source: I am a member of the Sonic hacking community. :)
2 player split screen!

Im aware tails can be controlled by second player, but the camera is always on sonic and if tails isnt on screen for 10 seconds is returned to sonic automatically.

what i was saying is something like sonic advance 3 multiplayer co-op where each person has their own screen (split screen) and can explore the level by themself, and call each other like knuckles chaotix or toejam & earl to get to each other location in a flash.
 

BossRoss93

Well-Known Member
Member
Joined
Jan 26, 2012
Messages
134
Trophies
0
XP
704
Country
United States
I am super interested in this stuff too. I have always wanted to make A link to the Past 2 players. I thought of the beginning when Zelda is following you and if I could start there. I never got to it though, due to it beings such a huge undertaking. I also really wanted to make Triforce heroes two players, but I know that would be an even more ridiculous undertaking
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: roms wont boot with wood r4menu