Jump to content

rom hacks to support 2 buttons with genesis controllers


Recommended Posts

Version 2 of Kung Fu Master. Stephena's trial version of Stella was very useful. However I could only use the punch button as I don't have a Genesis controller where I live right now. I have a usb playstation type controller, and the kick button doesn't map to it.

Oops, I forgot to mention that the second button is mapped to the same one as the P0 BoosterGrip booster button (by default, the '5' key on the keyboard). The first button is mapped to the normal fire button (Space/Left Control). And of course, for the ROM to actually use these mappings, the ROM must have the left controller set as 'Sega Genesis'.

Link to comment
Share on other sites

I've thought of another game that could use a second button. Kangaroo. While the arcade game has the same controls as the 2600 game, I've always found the game harder than it should be. With second button to jump, I feel that gameplay would be a lot less annoying.

Link to comment
Share on other sites

Moon Patrol has been hacked for 2 buttons and is now added to the first post!


I would like to see StarMaster hacked with the second button to display the maps. I would like to do this however I don't know where to start.

It definitely requires some level of VCS assembly programming skills. After that the general steps are:

1. disassemble the rom.
2. Find the area you want to target and figure out what the code does. An easy way to do that would be to search for the hardware registers involved. IIRC starmaster used the B&W/color switch for the map. That's bit 3 of the SWCHB register.
3. Add the code that reads the 2nd genesis button and does whatever it needs to do. Basically this means do a "lda INPT1" and then "bpl 2NDBUTTONCODE". This step can get complicated if there isn't any free space in the rom.
4. reassemble your modified assembly code.

In the case of starmaster, 1 and much of 2 has already been done for you. Check out the starmaster disassembly at MiniDig.


I've thought of another game that could use a second button. Kangaroo. While the arcade game has the same controls as the 2600 game, I've always found the game harder than it should be. With second button to jump, I feel that gameplay would be a lot less annoying.

I'll add kangaroo to the list, but truthfully it will probably be a while before I can get to it. If anybody wants to scoop it, feel free! icon_smile.gif
Link to comment
Share on other sites

I never knew Starmaster had been disassembled. That makes things easier. Looking at the code, and playing around with the rom in an emulator, the only issue I see is that you would see the map screen only when you held down the button. That makes it hard to press the other firebutton to select an area if that would even work.



The solution is to have a bit that can be checked to see if the firebutton was pressed the previous frame. That way you could update the switches only once per firebutton press.

Link to comment
Share on other sites

Starmaster, ready for testing. If anyone could test this on a 7800 too, well that'd be much appreciated. I'm trying out some new stuff, and I want to make sure I'm not sending the 7800 for a loop. It should also be Supercharger compatible if you don't have a Harmony, Krok, Cuttle, or modded FB2.






A little on Starmaster:

- The manual says once you start the game, don't move the difficulty switches for P0 or P1.

- While warping you can't go back to the map screen. Only when you reach your destination can you bring the map screen back up.

- Press C to get the map screen, press C again to exit (or B button).

  • Like 1
Link to comment
Share on other sites

I'm glad it works on the 7800! I'm using the interrupt flag out of the status register as I needed 1 bit.



I'm just taking a look at Kangroo right now. I have a bit of time this long weekend. If it only needs the few changes that I think it does, then it won't be too bad. I'll just need to free 15 bytes, but we'll have to wait and see if I just jinxed myself. ;)

Link to comment
Share on other sites

Well I did jinx myself...



Separating jumping from pressing up worked fine, but the problem was climbing the ladders. You'd have to press jump to climb, which seemed very unnatural to me! Kangaroo makes it own collision detection for the ladders, and it took a while to find out how and where it did that, but I think I got it now.






Okay, it should work as such. When you are touching a ladder you can press up to climb, or jump to climb. Otherwise pressing up is ignored. However, you can still move left or right by pressing the joy at a diagonal no problem. Press button B to punch, and button C to jump. Also note that you have to press the jump button well before a pit to jump it with a "Super Jump". That's also the way it is in the original.


I've only ever made it part way through the second level, and I've never even seen the third. I'm no great gamer that's for sure. :P So no guarantees on the third level people.

Link to comment
Share on other sites

Omega Race. I wrote this in the assembly file, and it's worth repeating here.


; now uses Genesis controllers

; - button B, thrust

; - button C, fire


; Newer versions of the Stella Emulator will autodetect this as FA bankswitching.

; By default (in Stella) you can share 1 joystick for 2 players. To use two Genesis

; joysticks specifically, set the RIGHT player difficulty switch to the B (Amateur or Novice)

; position. Likewise on real hardware:


; RIGHT player difficutly switch

; - pushed to "A" (Pro or Expert), two joysticks are needed for a 2 player game (one in each port)

; - pushed to "B" (Amateur or Novice), one joystick is used for a 2 player game (use the left port)




Link to comment
Share on other sites

I'm not going to do anymore work on these for at least a month. I've got to start studying for finals, move, etc...



I have disassembled Double Dragon. Converting it doesn't look as easy as I hoped. I'll take a look at it off and on over the next month went I get too stressed to study.



Other then that, the list of converted games is starting to grow. It's looking good. :D What's left to do? I don't want to start something if someone else is working on it (or done already like Solaris ha ha). :)

  • Like 1
Link to comment
Share on other sites

I'm pretty squeezed for time myself, though I might try to take a second whack at Sea Hawk. The other outstanding requests are up for grabs at this point...


e1will suggested: Yar's Revenge, Mouse Trap

tkarner suggested: Radar Lock


Any other requests folks?


I agree about the collection looking solid! I'd say I spend about half of my gaming time in my "2 button" folder, on my Harmony cart. :D

Link to comment
Share on other sites

  • 3 weeks later...

Mission Survive, NTSC and PAL versions:


Mission Survive (2 button).zip



I couldn't find a manual scan for this game anywhere. So here's what you do:




Go as long as you can by blasting UFO's, bombs that are dropped on you, and walls that are in your way. You collect points when you destroy a UFO, nothing else.


The select switch allows you to skip to the harder levels, but normal playing will get you there anyway.




- If a bomb is dropping on top of you, pressing to the left will slow down your vehicle making the bomb drop in front of you instead.

- Occasionally a bomb will blast a hole in front of you. Pressing UP at the right time will allow you to jump over it. Use one button to fire up, and one button to fire to the right.




The NTSC version is faster then the PAL version. It's a fair trade-off as the PAL seems slow to me (at the beginning), and with the better controls it needs to be harder.

  • Like 1
Link to comment
Share on other sites

I've Stella 3.1.1 for Mac OSX and I tried playing Kangaroo and Moon Patrol and the characters just keep jumping when I play. I've tried reading the help file and I just didn't get other the other fire button is.

To switch to a Genesis controller in Stella:


Click the rom so that's highlighted, and then go options, game properties, controller, and change P0 controller to Sega Genesis.



And of course older versions of Stella won't have a setting for the Sega Genesis controller. Since you're using version 3.1.1 you're fine.

  • Like 1
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.

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.

  • Recently Browsing   0 members

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