Jump to content
IGNORED

rom hacks to support 2 buttons with genesis controllers


RevEng

Recommended Posts

  • 5 months later...
  • 4 months later...

nice hacks! Most hacks work for me on real hardware, but Hero, Solaris, Last Starfighter, and Double Dragon don't work for me when I play them using the harmony cart. Dynamite drops on its own in Hero, the map won't come up at all in Solaris, I can't do any moves in double dragon, and Last Starfighter only brings up the map when a button isn't pressed. My Genesis controllers work fine on Genesis and all other games, including the other hacks, Princess Rescue, and Gingabread Man.

Link to comment
Share on other sites

Brian,

 

I can't replicate what you are seeing in H.E.R.O.

 

 

Can you tell me:

1) What position the switches for your 2600 are on? (Color/BW switch, Left Difficulty switch, Right Difficulty switch).

2) What bios version is on your harmony cart? You can access that through your Harmony menu.

3) What kind of Genesis controller are you using?

4) Do you have another controller plugged into the rightside port?

5) What kind of 2600 are you using?

Link to comment
Share on other sites

Brian,

 

I can't replicate what you are seeing in H.E.R.O.

 

 

Can you tell me:

1) What position the switches for your 2600 are on? (Color/BW switch, Left Difficulty switch, Right Difficulty switch).

2) What bios version is on your harmony cart? You can access that through your Harmony menu.

3) What kind of Genesis controller are you using?

4) Do you have another controller plugged into the rightside port?

5) What kind of 2600 are you using?

 

1. I usually put both difficulty switches on expert, but I had them in a bunch of different positions. Color/BW at color on six switchers.

2. Latest bios. 1.06 Beta 5, which I found here.

3. Official SEGA 3 button, tried other SEGA 3 button controllers, same effect.

4. Yes and no, same effect.

5. I tried it on two 7800s and two different light sixer 2600s, same effect.

 

As I said, most of the hacks work fine, it's just those specific hacks that don't work (HERO, Last Starfighter, Solaris, and Double Dragon, including the Double Dragon Arcade 2 button hack). The controller tester works too.

 

I forgot to mention that Omega Race has odd behavior (seems to fire on its own when a game starts, but fire buttons still respond as they should most of the time), but still works.

Edited by BrianC
Link to comment
Share on other sites

When Sprybug added Genesis support to Princess Rescue during development, it was discovered that some consoles/pads didn't work with it. I tracked it down to some Genesis pads not recovering after bB dumped the paddle lines to ground during VBLANK. Avoiding that brought compatibility back to 100%. (bB mod details here)

 

At the time I wondered how we didn't get nailed by that here. I figured that either it was a rare pad that couldn't recover from the power interruption, or that none of our games discharged the caps. I had a quick look at The Last Starfighter and Hero just now, and it appears they discharge the caps, so I guess this is a relatively rare failure condition.

 

Anyway, removing that top bit from the VBLANK write should fix it.

Link to comment
Share on other sites

dumped the paddle lines to ground during VBLANK.

I woke up this morning and had the exact same thought.

 

 

A lot of games did this, usually writing $82 to VBLANK instead of $02. I think people just learned to do it from each other like STA WSYNC. Almost every game uses STA WSYNC, but STX WSYNC and STY WSYNC are no different. It's probably that when you first learn to code you read STA WSYNC and do it by habit.

Link to comment
Share on other sites

I woke up this morning and had the exact same thought.

Its funny how the mind works out this stuff sometimes while we sleep. :)

 

I think you're probably right about it being a learned habit. No doubt there was also a lot of shared code being passed around in the companies too.

 

Thanks for the fixes. I updated the links in the first post.

Link to comment
Share on other sites

I forgot to mention that Omega Race has odd behavior (seems to fire on its own when a game starts, but fire buttons still respond as they should most of the time), but still works.

For me it fires once when the game starts and that's it. Do you get the same?

 

 

I took a look, and found that I purposely changed all the writes of $82 to VBLANK to $02 when I made it, so that can't be it. I seem to remember my conversion always fired off a shot for me when the game started but I figured it wasn't that bad.

Link to comment
Share on other sites

For me it fires once when the game starts and that's it. Do you get the same?

 

Yes. An odd issue, but not a major one. I like being able to play without the CV controller (don't have the booster grip). The joystick hack is nice too.

 

Edit: I tried the Double Dragon and the hacks of both versions of Solaris and they all work great. I also noticed something else odd with Omega Race. Shooting is mapped to up on the dpad, as well as the button.

Edited by BrianC
Link to comment
Share on other sites

Omega Race (fixed)

 

 

OmegaRace(2button)V2.zip

 

 

;Controller Info:

; - 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)
  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...

I was playing the Asteroids hack and found something interesting. It seems the second button is hyperspace no matter what, even on other variations like shields. I like having both shields and hyperspace. Was this intentional?

 

edit: nm. read the second post

Edited by BrianC
Link to comment
Share on other sites

  • 2 weeks later...

I would like to see a version of thrust for the Genesis controller, if possible. Is it possible to hack Tutankham for one button to shoot left and the other to shoot right like the arcade (with the flash still activated by up and a button)?

 

I always found it odd how both the 7800 and 2600 versions of Kung Fu Master are missing the jump kick. I also found out that the running jump kick is hard to pull off in the arcade since the controller doesn't do diagonals (you have to jump and kick at the same time in mid run, if I remember correctly). Is it possible to add those back in to the 2600 version? It's already much better than before with separate buttons for kick and punch.

Edited by BrianC
Link to comment
Share on other sites

Completely. It was e1will's excellent suggestion!

 

I think the dual powers makes it more interesting too. :)

 

Spent some time with the Asteroids hack. The extra ability does change the game, but I find myself hitting the C button unconsciously thinking it will "thrust." For some reason, it seems that my instinct is to push the extra button for thrust. I'd really like to play it like that.

 

I've done some Assembly debugging in my professional life, but I've never tried to do any programming for the VCS. Would trying to hack this myself be a good first step into VCS programming?

Link to comment
Share on other sites

I've done some Assembly debugging in my professional life, but I've never tried to do any programming for the VCS. Would trying to hack this myself be a good first step into VCS programming?

I think making a simple hack of Asteroids isn't a bad choice for a first 6502 assembly project, since the disassembled+commented source code exists. Worth looking at anyway, to see if you're interested.

 

The main trick for this kind of modification is avoiding using more space than the original code, since these old games use pretty much every single byte of rom space. If you find you can't do that, you need to make up the shortfall by rewriting bits of the original code to be more space efficient, which isn't exactly beginner's stuff.

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

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...