... BIOS has routines for mouse or trackball detection, to distinguish which is plugged and is done through this approach or similar, did not check it personally
I have analyzed such BIOS routines. It is documented in MSX Wiki.
Both trackball and mouse reset their internal counters on the edges of the pulse pin. Whilst Mouse represents zero displacement using 0b0000, the Trackball uses 0b1000. MSX BIOS uses this to differentiate between the two devices.
And again, I still think you are stuck with the idea that a standard needs to be something that existed since inception of the platform
Not at all, I know very well that several devices have entered the standard after being released but it was not always the most used. There was even the paddle controller which was standard but was never popular. For something to become standard, it is not enough to want it (even very strong as you). Only the devices that pleased ASCII have become standard.
@sd_snatcher:
Sorry for the delay...
I've assembled a JoyMega with the modification you suggested but it doesn't work.
When I switch the mode, the games pause themselves or go back to the menu. It seems the games act as if the "RUN" key is pressed.
If I plug the controller after the switch has been flipped then the controller does not work.
I have one more thing to add though: In my previous test with a 6 button compatible game I used a clone 6 button controller and a transistor based Joymega, while this time I used an original Sega Made in Japan 6 button controller and a 74hct04 based adapter.
Previously I wrote:
the mapping is not compatible with JoyMega, for example in Pulirula Left=Jump
With the new pad/adapter I noticed that the four directions are correctly detected and button C is recognized (still unplayable).
It's risky to put a switch to change the mode. Better to make a simple JoyMega to use Genegis controllers on MSX. In this way, you will avoid all risks. I use an original megadrive controller with 6 buttons made in Japan with a transistor based JoyMega. Using a 74hct04 shouldn't cause a problem.
This was just an experiment. The switch was meant to toggle between pin8 inverted or not, so no possible risk involved.
@sd_snatcher:
Sorry for the delay...
Same deal here. Sorry, RealLife (TM) has been very busy lately.
I've assembled a JoyMega with the modification you suggested but it doesn't work.
When I switch the mode, the games pause themselves or go back to the menu. It seems the games act as if the "RUN" key is pressed.
If I plug the controller after the switch has been flipped then the controller does not work.
Sorry, probably I didn't make it clear. The "direct" mode should have been tested with the games that don't work correctly with the inverted mode. I.e. from the games you listed, Puyo Puyo and SSFIITurbo.
Previously I wrote:
the mapping is not compatible with JoyMega, for example in Pulirula Left=Jump
With the new pad/adapter I noticed that the four directions are correctly detected and button C is recognized (still unplayable).
For the games that have a menu that supports a 6-button controller, you'll have to disable it. It's button mapping is very different from the Mega drive controller and will not work with either direct or inverted modes.