How are two-player hacks possible?

Discussion in 'Computer Programming, Emulation, and Game Modding' started by jonthedit, May 11, 2016.

  1. jonthedit
    OP

    jonthedit GBAtemp Advanced Maniac

    Member
    1,691
    438
    May 30, 2011
    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? 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?
     
    Last edited by jonthedit, May 12, 2016
  2. Luglige

    Luglige hiatus

    Member
    1,411
    1,555
    Jan 24, 2016
    Antarctica
    under your bed
    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:
     
  3. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,733
    9,604
    Nov 21, 2005
    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.
     
    jonthedit and Luglige like this.
  4. Luglige

    Luglige hiatus

    Member
    1,411
    1,555
    Jan 24, 2016
    Antarctica
    under your bed
    We need to make you a moderator...
     
    TheVinAnator likes this.
  5. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Member
    GBAtemp Patron
    The Real Jdbye is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    12,326
    5,336
    Mar 17, 2010
    Norway
    Alola
    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.
     
  6. Memoir

    Memoir A Hero to Zero

    Member
    GBAtemp Patron
    Memoir is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    5,075
    4,894
    Jun 24, 2007
    United States
    Wyoming
    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.

    — Posts automatically merged - Please don't double post! —

    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.
     
  7. Sonic Angel Knight

    Sonic Angel Knight GBAtemp Legend

    Member
    10,322
    5,236
    May 27, 2016
    United States
    New York
    I also wonder if its possible to make a two player mod of sonic 2 and sonic 3 split screen co-op modes.
     
  8. TheStoneBanana

    TheStoneBanana GBAtemp Fan

    Member
    495
    867
    Aug 19, 2015
    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. :)
     
  9. Sonic Angel Knight

    Sonic Angel Knight GBAtemp Legend

    Member
    10,322
    5,236
    May 27, 2016
    United States
    New York
    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.
     
  10. BossRoss93

    BossRoss93 GBAtemp Regular

    Member
    129
    23
    Jan 26, 2012
    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