I've provided objective information that can be proven true upon the technical analysis of both the circuits and the BIOS routines involved. Hence is a fact.
No offense, but did you ever wondered whether if there might be some confirmation bias going on? Because I can't shake this impression.
You state that you provided "objective information", but that's not the case. If it was really to be considered objective, you should have at least mentioned which BIOS routines you analysed, so other peers could check the information themselves, or express any concerns about what had been analysed. That is the basis of the rational thought.
But, otherwise, won't you have just appealed to authority, citing yourself as the source of information that others must believe at face value?
That's the exact point. The Technical Data Books provide guidance, but are far from being the ultimate rule for everything MSX.
Well, it's easy to destruct, but not to construct. Who do you reckon should be the ultimate rule when disagreements and incompatibilities arise then?
Sure! That's why I am ignoring all impoliteness and off topics and restricting myself to the technical aspects.
Thank you, and I admire that. Until now, I've only seen otherwise from others on this thread. I'll give you the same treatment then.
It would be really nice if you could restrain yourself speculating on each other's intentions and discuss the subject calmly.
It's not easy to undestand the information in the middle of invectives, but if I understood well, the 2 positions don't seem to be incompatible:
- In theory, FM-Towns controllers don't follow the MSX standard,
- In practice, FM-Towns controllers work on MSX.
If this is good, why not just put this two information on the wiki?
Perfect, @aoineko! This is exactly where I wanted to go when asked them exactly what they want (to achieve). To at least construct something.
Otherwise this is just an unbelievable sequence of paranoia, badmouthing and trolling that repeats on every release of HIDtest/HIDlib, or any time joysticks are mentioned on these forums/Wiki.
I can't even dare to explain the method to someone here without trolls showing up. It has to happen through other channels.
Only blind people can't see what's written for the 4 FM-TOWNS joypads included in the MSX wiki:
"Although its common pin is connected to the pin-9 of the DE-9 connector, instead of the pin-8 as required by the MSX standard all MSX software can be used."
Besides, for 2 of these 4 models, there is a red alert:
"Do not confuse this controller with the one on the Marty console because the Marty controller has an extra shoulder button which causes a short circuit when pressed."
or
"'Do not confuse this controller with the very look-alike FMM-PAD301 used on the Marty console because that controller has an extra shoulder button which causes a short circuit on the MSX when pressed."
Maybe the default on boot is LOW, but have you tested it on the games?
Ok, since you asked, and in the interest of clearing some doubts I did some further tests on the state of pin 8 on an FM-Towns.
As soon as you turn-on the machine, or while the reset button is pressed, pin 8 goes briefly HIGH (less than ~1 second).
Then it goes LOW and it stays LOW until a game/program changes the state.
I've tested a few games:
Most (50~75%) don't change the state (i.e. it stays LOW).
A few pulse the line (one short high pulse but with irregular timing)
One game (Puyo Puyo) keeps the level fixed at HIGH.
SSFIITurbo (a game NOT compatible with Marty) has short pulses at 1Khz.
Now I'm really curios about the Marty shoulder button: What does it do?
I've tried searching for info, but couldn't find anything other than an old post from user buharka:
It's a special button to switch between lo-res and hi-res display modes in some games
I tried touching pin8 to Gnd in a few games, but nothing happens.
Does someone know which games support that feature? Or maybe it's something that only Marty does and FM-Towns doesn't do?
Or maybe it has to be pressed simultaneously with another button?
@sd_snatcher:
Some games support different 6 button controllers: CPSF, CPSF-MD, 6BUTTON,
I suppose the difference between CPSF-MD and CPSF is in the buttons names and the SELECT button, or there is something more?
Fujitsu even placed the connectors in depth to make it difficult to use the MSX / X68000 controllers.
No, having the socket recessed won't make it more difficult to use non-official controllers, it makes harder to dislodge them accidentally (as it happens on the X68000 front port :-P ).
Besides, the FM-TOWNS ancestor, FM77AV, has recessed sockets too (and PC6001 joystick compatibility) and moreover some official FM-Towns controllers have short plugs.
Ok, since you asked, and in the interest of clearing some doubts I did some further tests on the state of pin 8 on an FM-Towns.
Nice work!
As soon as you turn-on the machine, or while the reset button is pressed, pin 8 goes briefly HIGH (less than ~1 second).
Then it goes LOW and it stays LOW until a game/program changes the state.
I've tested a few games:
Most (50~75%) don't change the state (i.e. it stays LOW).
A few pulse the line (one short high pulse but with irregular timing)
One game (Puyo Puyo) keeps the level fixed at HIGH.
SSFIITurbo (a game NOT compatible with Marty) has short pulses at 1Khz.
Deciphering your findings:
1) The games were it stood LOW support MSX 2-buttons joysticks
2) The games that pulse it from time to time support more than 2 buttons. It might be the 6-button controller, or that 2-button controller with a shoulder button. Some of these might have trouble with the MSX 2-button joystick.
3) I suspect that the game(s) that keep it high have support for the 2-button controller with a shoulder button. These are incompatible with the MSX 2-buttons joysticks
4) SSIITurbo supports three different types of joysticks, as you mentioned.
@sd_snatcher:
Some games support different 6 button controllers: CPSF, CPSF-MD, 6BUTTON,
I suppose the difference between CPSF-MD and CPSF is in the buttons names and the SELECT button, or there is something more?
CPSF means the CPSF-PC adapter, for the CPSF fighting stick, for the X68000. Since this was hard to find, they probably also added support for the more common CPSF-MD using an adapter very similar to the joyMega (*1).
IIRC, the CPSF-PC adapter maps the buttons very differently, using the X68000 button mapping.
OTOH, the CPSF-MD maps the buttons using the [url=https://segaretro.org/Six_Button_Control_Pad_(Mega_Drive)#Technical_information]Mega Drive 6-button joypad protocol[/url].
*1: Do you have a joyMega and a 6-button Mega Drive controller to test if it works with SSIITurbo on CPSF-MD mode?
CPSF means the CPSF-PC adapter, for the CPSF fighting stick, for the X68000. Since this was hard to find, they probably also added support for the more common CPSF-MD using an adapter very similar to the joyMega
I believe that both options require the CPSF-PC adapter (CPA-001).
That adapter has a 9 pin socket for the CPSF-MD (or a 6 button MD controller) and a cable that could be inserted into the CPS Fighter-A (SNES/FC version with swappable cables).
But anyway... Yes, I got a JoyMega and I'll do those tests.
There is an FM-Town technical data book with texts in Japanese very complet available for download. The joystick ports are very well explained.
If that was a try of an insult, it has fallen short, as obviously I know what open collector means and its uses.
Unless you stop hiding yourself behind loose statements and come up with a complete argument about what you're trying to prove with the open collector term, it's only possible assume that you have no damn clue about what you're talking about.
The only guy who swore insults was you. And just before, you started by saying that the wiki on the "MSX-HID" was completely changed by hardware incompetents.
I show you a diagram that shows how the inputs are connected and that they are all connected to open collector resistors. This means that the inputs will always have an adequate signal even when using the GND as low signal. What more do you want, electronic courses?
In fact, it is you who is unpleasant from the beginning when there is no reason to be. "MSX-HID" is as non-standard as using GND for a joystick, but both work as indicated. Both are a trick. As for me, I admit it but not you. Wiki pages about joystick indicate right info.
The FM-TownS technical data book (BTW, thanks for posting the link to it!)
has no useful info, other than what was already mentioned.
Well, maybe this:
もし , MSX 仕様のパッ ドと互 換性をとる場合は, COM 出力を O にします .
And there's almost no mention of the Marty at all, just a brief remark at the end of the book.
(talking to sd_snatcher)
I show you a diagram that shows how the inputs are connected and that they are all connected to open collector resistors.
You could have posted a better picture, I can't recognize what ICs are supposed to be there...
And
open collector resistors
Maybe you meant pull-up resistors
But anyway, that info was posted by user Danjovic in page 3, why do you keep flogging a dead horse?
Back to FM-Towns testing:
3) I suspect that the game(s) that keep it high have support for the 2-button controller with a shoulder button. These are incompatible with the MSX 2-buttons joysticks
Dunno about the shoulder button (**), but you are correct: MSX specced joysticks don't work. JoyMega works. (*)
2) The games that pulse it from time to time support more than 2 buttons.
Yes! The few games that pulse pin 8 have a menu option to enable a 6 button pad.
However the mapping is not compatible with JoyMega, for example in Pulirula Left=Jump
Do you have a joyMega and a 6-button Mega Drive controller to test if it works with SSIITurbo on CPSF-MD mode
It's unusable because the mapping is totally different. For example down=y, left=x b=a.
However Imho CPSF and CPSF-MD are the same, except for the different layout/naming of the SFC and MD buttons.
(*) MSX joysticks/pads (mostly) work on FM-Towns, however the lack of the select/start buttons sometimes make it impossible to start a game.
(**)At this point, and without more info, I think only the Marty bios is capable to recognize the shoulder button (or one of the buttons of the NPD-10).
FM-Towns technical data book: (second link given by Google search)
https://archive.org/details/3FmTowns
Yes, I mean pull-up resistor. (sorry for the mistranslation)
For ICs see the Canon v-20 Service Manual.