Link to the past SNES it would be like any other. GBA link to the past does come with four swords which is a multiplayer game (though again it is four GBAs doing their thing).
"Open up the game code"
Yeah but it probably does not work like you think.
Most older devices and still a lot of PC programs use compiled code. The idea is though you can write fancy readable things in a text editor (see also programming language) and call it code the CPU has no idea how to decode that and do anything with it, compared to some of those languages the CPU is also pretty limited too if you look at its raw functions.
One of the other niceties if you are a person writing programs for a living is that once you convert from text to machine code it is exceptionally difficult to go backwards (see "the halting problem").
On top of this developers learned that although you can feed the CPU instructions it gets far easier if you kick data outside code and have the code read it in, interpret it and act upon it at runtime. This is what a large chunk of ROM hacking is concerned with figuring out for various games. You can get languages that take this data and use it to act like a programming language at runtime, these are somewhat slower but are known as interpreted languages and they have all sorts of benefits. Being slower and typically more resource hungry it meant they are not really used until you get to the likes of the PS2 though the DS has a few goes at it and GBA homebrew can do a bit here as well.
Back to code once the human readable has been turned from human readable text to the instructions as they run on the CPU you can still look at it and try to figure it out. Trouble is every CPU is different (though some concepts are shared and things like the ARM7 are not that different to the ARM9) and on top of that every class of device has different hardware that is spoken to in different ways (some of which even makes up for shortcomings in CPUs- not every CPU has a divide instruction or a divide instruction that is of great use in general operations for instance) where your nice human readable language will hopefully be far less troubled by this if it is troubled at all.
The human readable code rendered in a stream of hex numbers is known as machine code, the immediate level up from that where each machine code instruction is turned into a human readable piece of text (note this is not the same human readable text as the original programmer made) is known as assembler, assembly or ASM (roughly they are synonyms). As you control everything at this level you can do what you like including adding a multiplayer mode, however you do have to account for everything and thus this is why assembly hacking is considered the hardest part of ROM hacking and those that can do it make the most far reaching hacks and have the least trouble figuring out formats (if you can watch the game do what it does and follow along you basically have no guesswork where everybody else does).
Programming like this, especially with a premade piece of code as your base, is a nightmare if you want to do anything drastic which is why basically nobody codes in it in real life and most ROM hackers will make the least amount of changes possible when hacking.
This is why I mentioned the mario 1 NES style thing and the "stop the partner AI" types of multiplayer. Zelda as a companion... possible that something could be done the AI there would be extremely basic (probably not even worthy of the term and instead I would probably call it an animation).
That over how to open up the game code (by which I assume you mean the actual stuff the CPU sees).
As you assemble code so you can disassemble code and the tool you want to do it is called as disassembler. Though all different devices use different things if the CPU is the same then it disassembles the same so you can get generic ones (the most popular generic/multi purpose one is IDA). However as things can sit in different memory locations and might have extras you can get a more specialist one for the given console/device you are playing on. If it has games it probably has as disassembler built for it (it the badge on the front says Sega, Nintendo or Sony then it definitely does) if in no other place than an emulator that runs it, again though IDA makes an appearance as people do build disassemblers for that. Disassemblers are pretty dumb tools so most people working in it will flank it with several other tools like debugging emulators.
Also though I mentioned code being converted up a level it rarely actually comes out like that and disassembled code will not be able to be reassembled wholesale so you have to take your changes and patch them onto the original game.