Author Topic: Feature suggestion: Extra button combos or alternate solutions for in-game menu?  (Read 1093 times)

0 Members and 1 Guest are viewing this topic.

Offline MHzBurglar

  • Newbie
  • *
  • Posts: 24
  • Karma: +1/-0
    • View Profile
Hi Krikzz,

I know I had briefly asked about this on Twitter ages ago, but is there any way that the Master Everdrive X7 firmware could be adjusted to be able to read Genesis/Mega Drive buttons or input from the Player 2 controller?  Currently, my only complaint with the Master Everdrive X7 is how easy it is to accidentally trigger the menu during normal gameplay due to the limited number of buttons on the SMS controller.  I usually need to have the in-game menu/save states completely disabled because of this.

The SMS itself is capable of reading the additional Genesis/MD buttons (proof of concept ROM and source code here: https://www.smspower.org/Homebrew/MegaDrive6ButtonControllerTest-SMS) and it would open up a great number of extra button combination possibilities to trigger the in-game menu.

Many SMS ROMs and converted Game Gear games have also been modified to use the Gensis/Mega Drive Start button to trigger the SMS pause button's register, so I'm hoping something similar could be implemented in the firmware to use for calling the in-game menu.

If that's not possible to implement due to technical limitations with how the menu call function on VBlank works, would you be willing to rewrite the menu call routine to accept buttons from controller 2 to open the menu?

Another thought I had is a possible "reset to save state menu" feature.  Assuming that it's possible to intercept the reset button, the following could take place:

  • The user presses the reset button on the SMS console
  • The everdrive takes a snapshot, and the SMS resets
  • The everdrive boots to a menu, allowing the user to save a state (write the current snapshot to SD as a save state), load a save state (copy the save state from SD to overwrite the current snapshot), or exit.
  • Exiting the "menu" would boot the last-played ROM and load the current snapshot to either bring the user back to where they were when reset was pressed, or to their loaded state.

Since I'm no expert in how the SMS handles input and memory, I don't know what is and isn't possible of the ideas I mentioned, but I'd love to have an option to trigger the menu with something I wouldn't normally press while playing a game.
« Last Edit: June 10, 2020, 08:53 PM by MHzBurglar »

Offline nuu

  • Hero Member
  • *****
  • Posts: 1529
  • Karma: +74/-2
    • View Profile
Even if it's possible it would still require to read the Mega Drive controller, which games doesn't do. Reading it is different from reading SMS controllers. And if I'm not mistaken the Mega Drive controller won't work on Mark III due to slightly different controller ports.

The reset button is, unlike the pause button, a normal polled input device like the buttons on the controllers, and games could use it for anything. So it should be as possible as any button combination on the controllers. But the reset button is also only available on non-Japanese SMS1. Not on Mark III, Japanese SMS, any SMS2 or the SMS adapter for Mega Drive. It's probably possible to mod most of them to give them the reset button though.
« Last Edit: June 11, 2020, 02:42 AM by nuu »

Offline bola

  • Newbie
  • *
  • Posts: 17
  • Karma: +2/-0
    • View Profile
In which case some kind of collaboration between the joyzz and the everdrive could be good... e.g. plug usb cable from joyzz transmitter into usb port on everdrive

Offline MHzBurglar

  • Newbie
  • *
  • Posts: 24
  • Karma: +1/-0
    • View Profile
The reset button is, unlike the pause button, a normal polled input device like the buttons on the controllers, and games could use it for anything. So it should be as possible as any button combination on the controllers. But the reset button is also only available on non-Japanese SMS1. Not on Mark III, Japanese SMS, any SMS2 or the SMS adapter for Mega Drive. It's probably possible to mod most of them to give them the reset button though.

Interesting.  So for SMS model 1 systems or anything that has a reset button, it's theoretically possible to intercept the reset button as a button input and trigger the menu with it.  Assuming that the game doesn't also receive the reset button's input at the same time and reset the game, this could be a great solution.  It would effectively turn the reset button into something like the Everdrive GB X7's hardware button.

Offline nuu

  • Hero Member
  • *****
  • Posts: 1529
  • Karma: +74/-2
    • View Profile
I don't know how the Everdrive intercepts the buttons, but I would guess that the game will also receive the signal and do a soft-reset (if it supports the reset button). So it's probably only good for returning to the Everdrive menu. But I might be wrong.

Offline MHzBurglar

  • Newbie
  • *
  • Posts: 24
  • Karma: +1/-0
    • View Profile
I don't know how the Everdrive intercepts the buttons, but I would guess that the game will also receive the signal and do a soft-reset (if it supports the reset button). So it's probably only good for returning to the Everdrive menu. But I might be wrong.

Looks like that is the case, unfortunately.

I just did a quick test on my Master Everdrive X7:

I set the menu trigger to Up + 1 + 2 and booted up Alex Kidd in Miracle World.  I pressed up + 2 at the same time, and held them while Alex punched.  After he was idle, I added the 1 button to the combo and the menu opened as expected.  Upon closing the menu, Alex jumped, which means that the game received the 2 button as well.

So it looks like we could trigger the menu with the reset button, but the game would just do a soft reset the second the menu is closed unless there's some way to 'disable' it at the game level while leaving it accessible to the Everdrive's menu interrupt.

I guess the easiest solution would be to look at using the player 2 controller buttons to open the menu.


Offline nuu

  • Hero Member
  • *****
  • Posts: 1529
  • Karma: +74/-2
    • View Profile
As I thought. The second controller sounds like the best solution to this. The same problem would arise when playing 2-player though.
A dedicated button on a future revision is also an alternative.

Personally I hope for SG-1000/SC-3000 and Mark III support, which the current one seems to have trouble with.

Offline MHzBurglar

  • Newbie
  • *
  • Posts: 24
  • Karma: +1/-0
    • View Profile
As I thought. The second controller sounds like the best solution to this. The same problem would arise when playing 2-player though.
A dedicated button on a future revision is also an alternative.

That's true, though I'd imagine there would be less want/need for save states when playing 2-player (so you turn the menu off when playing 2-player games.)  Personally I'd be happy with that as a workaround.  A dedicated hardware button would be a perfect solution, but then I'd have to buy a whole new Everdrive  :-\

So, the current one has trouble with the Mark-III and SG-1000/SC-3000 systems?  I knew it had issues on the Japanese SMS, but that's disappointing to hear.  SG-1000 games play nice with it on a US SMS model 1, but I don't own the other systems (yet) so I haven't run into that.

Offline nuu

  • Hero Member
  • *****
  • Posts: 1529
  • Karma: +74/-2
    • View Profile
That's what I gathered from googling about it at least. It's the one thing that stops me from buying a Master Everdrive. That and the fact that there is no 44-pin version.
For now the only solution for older Sega systems seems to be the SC-3000 Megacart multicartridge. It seems nice, but it requires you to reprogram the EPROM when you want to change the content on it, instead of the modern SD solutions that Krikzz spoils us with.