Jump to content
IGNORED

rom hacks to support 2 buttons with genesis controllers


RevEng

Recommended Posts

I do have an idea for a two button hack, Vanguard. I'm not sure if this is practical but here it is. The idea is button B to shoot left and right and button C to shoot up and down. The controls should be global throughout the game.

That would require additional RAM to be able to track the missiles seperately. IIRC it currently uses 2 bytes, so 2 more would need to be scrounged out of the disassembly. Otherwise, pressing a fire button when the alternate missiles are already onscreen would pose a problem...you could either ignore the button or write over the variables (killing missiles in play ala Gorf).

Link to comment
Share on other sites

  • 3 weeks later...

Just updated the CX40 2nd Fire Button Instructions.

 

Changes include:


  •  
  • Increased the range of acceptable resistors (330 to 680 ohms all work fine).
  • Eliminated the need to connect pin 5 (a 2nd fire button only needs pins 7&9 on one side and pin 8 on the other side). With pin 5 not connected, an added benefit is that one does not need to hold down the 1st fire button when booting with a Harmony cartridge.

 

BTW, you can open any Genesis controller, disconnect pin 5 and still have both fire buttons working on the 2600 (plus eliminate the need to hold down the 1st fire button when booting up the Harmony). Of course you would need to re-connect pin 5 before attempting to use the controller again with a Sega Genesis system.

Edited by nems
  • Like 2
Link to comment
Share on other sites

  • Eliminated the need to connect pin 5 (a 2nd fire button only needs pins 7&9 on one side and pin 8 on the other side). With pin 5 not connected, an added benefit is that one does not need to hold down the 1st fire button when booting with a Harmony cartridge.

Not having to hold down the button for Harmony 2-button support is pure awesome! :thumbsup:

Link to comment
Share on other sites

  • 2 weeks later...

I just desoldered Pin 5 in my controller, and it worked flawlessly. I don't play any Sega games so this will be a permanent modification too. If you have no soldering skills and don't care about the joystick, then just snip the wire and wrap black electrical tape around both ends. Also Pin 5 is clearly marked on the circuit board (which I liked). Really easy fix, thanks nems!!

Link to comment
Share on other sites

That's excellent news! I believe I'll neuter some pads and mark them specifically for the Atari somehow.

 

I've updated the FAQ in the first post to include the pin 5 info. Thanks nems!

 

I've also added 2 button versions of Mouse Trap and Sea Hawk to the first post as well.

 

During hardware-testing I noticed that I accidentally enabled the fire button during the Sea Hawk attract mode. I think I'm just going to rename it the "auto-pilot trainer mode", and call it a day. :P

Link to comment
Share on other sites

Thanks for more 2-button games! When playing any of these on real hardware, it feels like the 2600 is magically upgraded.

 

Any chance someone could tackle Montezuma's Revenge? :)

Keep all of the current control functionality, but add the 2nd-button to make Joe jump horizontally even from a standing still position.

 

I'm guessing this is quite a challenge since the program must first check which direction Joe is facing (e.g. if Joe if facing east, then a press of the 2nd fire button results in a horizontal jump to the east). A disassembly of the game can be found here.

 

Currently, I love this game but get sick of smashing my joystick handle trying to coordinate a horizontal jump from a standing still position. Some might think of this hack as a cheat, but IMHO it would allow for more precise and fun play, with less wear and tear on your joystick.

Edited by nems
Link to comment
Share on other sites

Actually, the challenge isn't there...because the routine checks the stick itself in the jump routine, and the program keeps track of the button AND the stick from the previous frame (each uses their own byte). Since you have 2 buttons, each can be dedicated to a direction. Rewriting the button routine to keep both buttons only required a few bytes, and altering the jump routine was simplified. However, using 2 values instead of one caused Joe to jump immediately when starting...so I added a couple lines up top to force the "already pressed" value into the button cache.

 

Push the joystick up when pressing either button to jump in place.

 

 

Try this...This is an E0 bankswitched game (Z26 use -g3).

Montezumas_Revenge.zip

Edited by Nukey Shay
  • Like 1
Link to comment
Share on other sites

Nukey, you are amazingly quick. I tested Montezuma's Revenge via Harmony on NTSC hardware and it works great. Only problem is that the jumping directions should be reversed. It seems most natural to mimic the button order/layout so that:

 

1st button (Sega B) = jump left

2nd button (Sega C) = jump right

 

Currently you have the jumping directions reversed (opposite order).

 

This game is already so much more fun to play. The precision control is freakin' amazing.

Edited by nems
Link to comment
Share on other sites

:thumbsup:

 

Thank you Nukey! The game control is soooo great with two buttons. Very responsive. This is an amazing improvement!

 

Panama Joe is much happier too 'cause now he doesn't die nearly as often. :grin:

Edited by nems
Link to comment
Share on other sites

Should be possible to alter the hack so that it functions both ways (depending on which button is used to start the game, putting it in a difficulty switch, or etc). There's room for branching, and plenty of optimizations that could be done.

 

Did anybody ever get very far into altering the bankswitching to be conventional instead of PB's E0? That too could easily be done if it were upped to 32k...but I don't want to add that much redundancy if it isn't needed (much rather see it in 16k).

Link to comment
Share on other sites

Nukey,

I tested the F6 version of Montezuma and found:

1st Fire button results in a right horizontal jump (should be left).

2nd Fire button is MIA.

 

I'm still playing the hell out of your E0 bankswitched version and it is perfect.

Edited by nems
Link to comment
Share on other sites

I missed editing the routine in another bank. Hopefully, this is straightened out. No way for me to check this (because Z26 doesn't support 2 buttons and Stella no longer works under Win98), so I gotta play it by ear. Current version allows you to select which mode it's in (left difficulty A = single button, B = two buttons).

 

Q:

Atari's standard fire button should correspond to the RIGHT jump, correct? I thought that was how I did the E0 version :?

Edited by Nukey Shay
Link to comment
Share on other sites

Current version allows you to select which mode it's in (left difficulty A = single button, B = two buttons).

Tested and works just as you described. Excellent job. Though I have to say that once someone experiences the two button version, I doubt they will ever go back to the single button version. Having 2 button control really elevates this game. :love:

 

Q: Atari's standard fire button should correspond to the RIGHT jump, correct? I thought that was how I did the E0 version :?

That is how you did E0 the very first time, then I asked you to flip it (which you did). Currently both E0 and F6 are set up such that:

 

Atari standard button (Sega B) = jump left

2nd button (Sega C) = jump right

Either button + joystick up = jump in place

 

...which seems like a natural order for Sega and modded CX40 controllers.

genesisk.jpgcx402b.jpg

Thanks again.

Edited by nems
Link to comment
Share on other sites

I missed editing the routine in another bank. Hopefully, this is straightened out. No way for me to check this (because Z26 doesn't support 2 buttons and Stella no longer works under Win98), so I gotta play it by ear.

I hacked in genesis controller support to z26...

 

z26_20040523_genesis.zip

 

...You only need to use the z26_20040523_genesis.exe binary, but I included the source as it was the easiest way to comply with the GPL.

 

Use the CLI switch "-)GC" for the genesis controller. Left ctrl is the Genesis-B/INPT4 button, and right shift is the Genesis-C/INPT1 button.

Link to comment
Share on other sites

No biggie...I hacked the game to include a dual-stick mode to use left and right ;)

 

I also added a splash screen, since bank 4 wasn't being used for anything.

 

EDIT: Damn...bonus room got axed...trying this again:

Montezumas_Revenge_F6.zip

Edited by Nukey Shay
  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 4 weeks later...

Star Trek

 

 

How should the controls work for this?

 

You have:

 

- thrust

- warp drive

- photons

- lasers

 

 

It's very easy to make one button for lasers, one button for photons, and then have warp drive by pressing down. Thrust would remain the same.

 

Or was the thrust the control problem? How should it work??

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...