ejona86 / taus

Tetris - Actually Useful Statistics and other mods
MIT License
89 stars 3 forks source link

twoplayer: Activate 2P mode with a different button for Famicom support #6

Closed calleha closed 4 years ago

calleha commented 4 years ago

Currently, entering two player mode is done by pressing start on controller 2, which works fine for an NES console or an emulator. However, this approach makes it impossible to enter two player mode on a Famicom console since the second controller has no start button. Perhaps the ability to press A or B, or some kind of button combination to enter two player mode could be added?

ejona86 commented 4 years ago

Enabling A for entering player 2 mode is really easy. The problem I'm noticing is that entering the game (after choosing the level) requires the start button. And there are multiple issues with changing that:

  1. Choosing a level greater than 10 involves pressing A+Start
  2. A is already used in Type B to move between level and height. I'm noticing now that Type B is actually broken[1]... But I also was planning/working on having my handicap mod work in two-player mode, and it uses the height selection menu for Type A

Having player 1 press start would be awkward for (1). It's not obvious whether player 1 or 2 should be the one holding A when player 1 presses Start. I could do something like have player 2 A+B to start, but that doesn't let me choose between +10 levels or not.

So I guess I'd probably have P2 hold A if appropriate, while P1 presses start. So a P1 start would be treated as if it was a P2 start. It's unfortunate I don't know of a way to detect when running on a Famicom.

Footnotes:

  1. Now that I think of it, it makes complete sense that Type B is broken. But I would have probably spent some time fixing it if I had realized/remembered earlier
calleha commented 4 years ago

Thanks for the quick reply! P2 holding A while P1 presses start sounds like a good solution. I suppose it would have to be a separate patch for now if it's not possible to detect running on a Famicom.

For Type B, shouldn't it be possible to have level+height selection done entirely by having P1 press A, then Start, while P2 holds A? Or would P2 holding A conflict with P1's ability to select with A?

ejona86 commented 4 years ago

The solution of allowing P1 to press Start for P2 fixes all the cases. For Type B, P2 could still be holding A while P1 presses Start.

ejona86 commented 4 years ago

I just released v0.4.0 which included this fix.

After I created it I realized that if player 2 gets a high score they will get stuck when entering their name, since Start confirms the name. Oh well. This is much better than it was.

Fixing the high score entry will probably be more annoying. I may choose to duplicate Player 1's Start presses into Player 2...

ejona86 commented 4 years ago

Created #7 for broken high score entry for Famicom.

calleha commented 4 years ago

I tried v0.4.0 on my famicom; worked great! Thanks a lot! Haven't tried getting a high score for P2, but I imagine it won't work as you say.