Can also be found here:
https://retrocdn.net/images/4/47/FM_TOWNS_JP_Technical_Data_...
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.
So, this is what that remark really meant. Someone has shown me this many years ago, IIRC when HIDtest was still called joyTest and I implemented the first version of the detection algorithm based on what I learned from the HAL (and many others) codes.
There was no OCRed version back then, and our smartphones still couldn't read texts from images on the fly.
The guy used a screenshot of this page as an argument to state that Fujitsu designed the port to be "MSX compatible". Since I couldn't read Japanese, I took the statement at face value.
Anyway, so Fujitsu seems to be innocent on this case and it was just another troll pestering me that I shouldn't have done this/that and more blablablablah ranting about joyTest.
Back to FM-Towns testing:
<snip>
Your tests confirmed what I knew: when Fujitsu decided to connect the common pin of their joystick to the GND pin, they have shot themselves in the foot, and this decision came to haunt them later: the joystick support has become the babel you've seen, and even the support for their 6button joypad is somewhat problematic.
This is one of the reasons I'm reluctant to this "let's normalize the GND as common pin on the MSX too" idea. The MSX was simply better designed on this aspect. Sadly, I only see people bashing the problems/restrictions of the MSX, but rarely praising its fortes, even the minor ones.
But at least on the MSX side, the Fujitsu pad compatibility on MSX-HID is now behind us, since I implemented the compatibility mode for their pads, and this allowed even the rare/expensive 6-button controller to be supported.
Since you're a nice guy, let me try to do the opposite too: workaround the FM-Towns joystick babel for you on the joyMega adapter. If you can, please modify your joyMega and test if this works. Some games will require the SW1 to be on 1-2 (inverted) position, and others will require it to be on the 2-3 position (direct). If you get incorrect button mapping on a game, just try the switch on the other position.
If this works, I'll add this switch to the next revision of the joyMega. It will be optional for the MSX, but it can be installed for someone willing to use it on the FM-Towns (and probably X68K too).
But be aware that the games that only support the FM-Towns own 6-button controller won't work with this simple modification. They require a different approach: either a fully modified Mega Drive controller, or a more expensive MCU based adapter.
It must be sufficient only for games that support MSX 2-button joypads, and Mega drive joypads (like SF2).
Testing this will take me some time, a bit busy atm. Will report when done.
Anyway, while I'm replying, I wanted to relay an interesting discovery posted on twitter a few days ago:
So, apparently the plastic DB9 connectors used on MSX and other machines aren't really 100% the same as the metal DB9 connectors... Never noticed that. And BTW, the FM-Towns have all-metal sockets and plugs!
@gdx & mars2000you:
You two are really the kings of spammers! :-P
I wasn't asking for the link to the manual! I was thanking gdx because he already posted it 2 years ago!
I don't understand why you are focused on the FM-Towns joystick ports. No one says it's 100% same as the MSX ones, and as I said before not even Fujitsu.
Moreover, what you say about the FM-Towns Technical Hand book is wrong. Everything is well explained and in detail and with diagram. There is even a note for the use of MSX joysticks. It's just that you don't understand much about it. Otherwise, you would have understood that pin 8 does not always work the same as on MSX. This pin is always an output on MSX but not on FM-Towns. It is thanks to this that the additional button that there is on the Marty console works. And that's why this controller can't work on MSX (as indicated on the corresponding wiki page). Fujitsu decided to connect the common pin of their joystick to the GND pin just for this reason.
Why are you digging around all to absolutely make sure that the protocol you called MSX-HID is perceived as standard? Is it so important? Looks like your honor is at stake.
Pentarou, we are the kings of spammer? Please explain why you say it!
You can say what you want but even if the basic FM-Towns controllers are not 100% standard (and I never said otherwise about Run and select buttons), they are usable on MSX. It's not ideal for all uses, but it can help in the majority of cases.
Guys, isn't possible to reach a common ground (pun intended) on this subject?
It is clear that there are a lot of hurt feelings going on and I don't think this benefits any of the involved parties or the community as a whole...
I just see both parties going back and forth, in general, I think, if you can make a device easy to detect using the "MSX HID" method, it is a nice, easy, clean method and there are benefits to it (as the method to detect it not being unique to the device but working on several devices, you don't have to worry to have different code to detect joymega, msx mouse, fm towns pad, your device that works with it, etc).
I don't think anyone is saying this is the de-facto standard for MSX Joystick port devices, just that it is a method used by several devices, and that was not by chance, but by design. It is a standard in some way by the fact quite a few manufacturers used this approach, even with different devices and some supported by the MSX BIOS itself, and someone took time to compile all this information so anyone can use the same method and try to not overlap the existing fingerprints (or whatever you wanna call that). Kudos for the author of the new-old standard, it was not documented as a standard but somehow a standard way to do things, and once documented, it is since then new standard that can be followed IF YOU WANT TO, no one is obliged to follow it. Like I said before, if anyone choose to follow this old/new standard it is a nice thing in the fact detection of the device can be very easy to code (already done, just a matter of adding your finger print to it) and requiring a really small footprint to do it.
Also, the use of ground as the common return for joysticks pin when active on MSX is not standard, and that is fact as well. Standard is to use pin 8. This doesn't mean those devices that are not standard won't work, for most scenarios and using standard bios calls and many ready made code take that into account and it is ok. Not standard. But works.
Can't you all agree to disagree that you love each other, but keep it civil so anyone seeking for info on the standard created based on a collection of devices that used the same method can use it? It is a standard, made for MSX, after MSX is dead, but that is based on a real "standardized" way some manufacturers used to have their devices identified easily on MSX and other devices. I don't think that advocating for this new standard as a good practice is bad, neither I think we should condone devices made prior to it or that elect to not adhere to it (but in the later case, I can surely say I just lament this choosing if the creator was aware, as this puts extra burden on us developers to add support to detect your device). We all will be thankful and I think the health of the involved parties will be thankful too. I'm just a regular guy that likes MSX, admire a lot you guys for all your contribution, past and present, and it is just a pity seeing such a waste of energy and brain cells to fight each other.
Testing this will take me some time, a bit busy atm. Will report when done.
No problem. Take your time.
Anyway, while I'm replying, I wanted to relay an interesting discovery posted on twitter a few days ago:
So, apparently the plastic DB9 connectors used on MSX and other machines aren't really 100% the same as the metal DB9 connectors... Never noticed that. And BTW, the FM-Towns have all-metal sockets and plugs!
Yes, this is true. I remember @l_oliveira talked many times about that subtle difference. Thankfully it's easy to workaround.
Ducasp, I'm just answering the accusations. Why do you say "MSX-HID" is a new standard? This is a trick used rarely and for a long time. The name is unofficial. And even everyone was using it, that wouldn't give it standard status. I'm not attacking anyone by saying that. I just want to clarify this point.
I would also like to know if the MSX BIOS really uses this method because I don't see any auto-detection in the routines available. The device type must be specified even for BASIC instructions.
I find it amazing that disagreements are often interpreted as a conflict.
Ducasp, I'm just answering the accusations. Why do you say "MSX-HID" is a new standard? This is a trick used rarely and for a long time. The name is unofficial. And even everyone was using it, that wouldn't give it standard status. I'm not attacking anyone by saying that. I just want to clarify this point.
I would also like to know if the MSX BIOS really uses this method because I don't see any auto-detection in the routines available. The device type must be specified even for BASIC instructions.
I find it amazing that disagreements are often interpreted as a conflict.
Why I say it is a new standard? Because as a standard, it is new indeed... As a mean used by some manufacturers to find out what is plugged to the joystick port, not new at all, when someone worked on compiling all known devices that use that method or work with that method, documented it, created all information needed to anyone t add new devices without clashing with existing ones, it became a new standard. Becoming a standard doesn't mean that it is official, and even if it was official (which it is not) doesn't mean everyone shod adhere to it, even official MSX standard rules, we have software and hardware that follows it, and ones that doesn't... Example of hardware, joysticks that are meant for msx but use ground instead of pin 8,example of software, direct access to hardware that the standard says shouldn't be accessed directly...
Just because it is not something compiled by ASCII, or other official entity while MSX was kicking and alive, doesn't mean the idea is not good and can't be seen as a new standard, and old hardware that functions that way exists to prove the idea is good,easy way to detect devices, if more devices come on-board with the idea that started with the observation of how some old hardware worked to be detected and a common method among those, everyone benefits from easy detection support that has a minimal foot print in the program.
Regarding the usage of that method in the bios, I think the author said 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 (and if the author didn't said it, sorry for my memory playing tricks on me, sometimes it happens)
I sense a hint of bad faith but, okay, I play the game.
So remind me of all MSX programs and manufacturers that use this method. To the best of my knowledge, I have enough fingers on one hand to count the ones I know. That is to say one and a half counting Aoineko.
I sense a hint of bad faith but, okay, I play the game.
So remind me of all MSX programs and manufacturers that use this method. To the best of my knowledge, I have enough fingers on one hand to count the ones I know. That is to say one and a half counting Aoineko.
Why bad faith? The list of devices that can be actually identified by this method (MSX centric and non-msx centric but adapted somehow) is crystal clear... You can distinguish quite a lot of devices. FRS devised a way to use this information and easily detect current devices and create new devices...
I think a better question is, how many MSX hardware that goes through the joystick port can't be detected by such proposed standard? For sure there are some, but I really have a hard time to think of many that are used for Human Input that can't be detected through it.
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, which I absolutely disagree and I don't think anyone is trying to sell this as a standard that creators of hardware from the 80's were using and somehow it was hidden from the general public... You can create a standard later, that encompasses all or most of the devices and propose a way to add new devices to be detected in the same manner if such new standard is followed. This surely is not the first time someone made such approach of creating an standard based on observation of how many different people used the same idea to solve a problem. Call it luck coincidence, engineers copying designs, etc... But for sure quite a few manufacturers from that era used the approach of using selection pin (MSX PIN 8) set to it's alternate state (VCC in case of MSX) and reading un-usual values for the input pins when in such state. FRS compiled the list of existing devices that do that, the ones that you can detect in such way, provided a library for easy detection, a way for people to add new devices they create... That, for me, counts as a new standard. If you don't agree, then I think it is time we agree to disagree