Just throwing this out because I'm not interested in doing it myself, but weapons in beat em ups can be done in a very complicated manner where the game keeps track of the actual weapon you are holding independent of you.
As an example, here's the bare minimum amount of code to handle weapons in Streets of Rage 3. It doesn't account for wrong graphics.
<cheat desc="Weapon Select P1"> <comment>Graphics WILL be glitchy</comment>
<item value="0x5A">Lead Pipe</item>
<action>maincpu.pb@FFDF5B=01</action> <!-- Holding Weapon -->
<action>maincpu.pw@FFDF70=E700</action> <!-- Location of it -->
<action>maincpu.pb@FFDF75=param</action> <!-- Weapon Type Held -->
<action>maincpu.pb@FFE70D=param</action> <!-- Weapon Type -->
<action>maincpu.pb@FFE75B=81</action> <!-- Is being held -->
The chunk from FFDF00-FFDFFF is player 1. The chunk from FFE700-FFE77F is a weapon. You have to tell the player that he's holding a weapon, match him up with a weapon, define the minimum amount of traits for the weapons, and then tell the weapon that it's being held.
Cadillacs and Dinosaurs is probably very similar but much more involved. The real key will be finding if there is a portion of the player code where it stores the relative location of what weapon the player is holding. If you can make that connection, the rest is easier. Not easy -- easier.