Romhacking.net

Romhacking => ROM Hacking Discussion => Topic started by: Youngchris93 on December 07, 2020, 07:52:51 pm

Title: Zombies Ate My Neighbors 4 Players?
Post by: Youngchris93 on December 07, 2020, 07:52:51 pm
I've got a question. Is this possible?


(https://i.imgur.com/xglwqyM.png)
Title: Re: Zombies Ate My Neighbors 4 Players?
Post by: Jorpho on December 08, 2020, 10:59:38 am
Many things are "possible". Most things are also extraordinarily difficult, especially if you limit yourself to the original 90's hardware. If you haven't seen anything like this done before with other games, then there is probably a good reason why.

It would probably be much easier to rewrite the game from scratch (possibly loading assets from the ROM) than it would be to make such drastic changes to the original program.
Title: Re: Zombies Ate My Neighbors 4 Players?
Post by: FAST6191 on December 08, 2020, 01:09:57 pm
I don't know that it would be easier to go from scratch, however it is unlikely to be easy.

Anyway the basic megadrive/genesis only has two control ports which is not a great start.
Two ways of getting more
Multitap
https://www.chilloutgames.co.uk/Megadrive/Megadrive_Multiplayer_Multitap_Official.aspx#Full
Some game carts include ports on the cart to gain extra players.

You will probably want to go for the former.


There are generally two, maybe three types of multiplayer hack we normally see for home console type deals (handhelds that might effectively be network games is a different matter).

1) NES Mario style second player takes over when the other dies. As you are in some senses making a savestate and running the same level back to back it is usually not so bad on memory or resources. Theoretically you can make it almost as many as you like (lives count, score count, level at... not usually so hard to find memory for extras.

2) If it is a game wherein you have a companion character that otherwise moves with, attacks and has their own stats then it is often possible to kick control away from AI and into the hands of the second controller. Can get a bit more tricky depending upon game's internal logic if the AI character normally only runs behind and then attacks in a small radius and the player goes anywhere they like or can be trapped by cameras but approach that how you will.

3) If some kind of beta code or only Japanese version exists with it in then it can sometimes be livened up again.

4) is a kind of virtual one, though could work here. Anyway you take an AI (say in a racing game) and kick its controls to another place. Take another emulator and copy the state of the game (locations of all other racers, pickups...) to that save for the AI you lost the controls for which is taking input from the other. You could then do something like this here and dodge a few issues.

In the case of ZAMN I doubt those other sprites are fully animated with all the weapons, directions and whatnot so you also get to create those and add them to the game.

Anyway you would presumably then be doing the generally theoretical fifth option of finding extra space in the game's code and hardware itself to crowbar all the animations necessary for two extra characters (some might consider a palette swap). On a PC with source code this is nothing too major, on a 16 bit era console and playing assembly programmer to do it... that is generally a far greater ask. As above you would first have to get the game to understand the multitap, I would probably make it so a normal two player affair is controlled by both controllers just to get the hang of things. Technically this would be a sixth option (we have seen people make this sort of controller in hardware to play with young kids and have them do something whilst actually completing the game, Goldeneye on the N64 had a control scheme like this even if is normally supposed to be a type of dual analogues, technically Mario Kart Double Dash is a version of this, I did once find myself on potion duty for a friend in Diablo) but let us not go there. Anyway after the proof of concept you find some memory for the health/inventory of the other characters. Next comes having the controls do for them.
You would also presumably want to increase enemy count (poor memory) or maybe toughness (though toughness tends to be set so you can kill them quickly if you think fast, twice the damage needed means you get lunched more often), pickups (twice the players, twice the greedy bastards), characters to rescue, figure out what to do about cameras and players getting trapped when camera moves and they are behind a wall (do you have a primary leader player, do they all need to be in the same place, is the "leader" merely the last one to press a button... all this and more to contemplate, on top of the usual https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub?embedded=true considerations) and a bunch of other things to make it all actually work when it was all designed for single and two player.