I have found nothing like this stated on the official documentation. Would you please share where they stated this?
Otherwise it will be disregarded as just hearsay.
Well, well, I thought you knew the hardware well and the others didn't.
It's normal that it not indicated in the official documentation because only the manufacturers have access to this kind of info. Look at the service manuals of MSX without a PSG integrated in a chipset.
This Japanese Wiki is also very interesting:
https://www.wikiwand.com/ja/%E3%82%A2%E3%82%BF%E3%83%AA%E4%B...
Nope. It seems that you are ignoring the fact that a dual-state output pin cannot be replaced with a hardwired GND without loss of function.
IOW, replace a bit that can assume 0 or 1 with a hardcoded 0.
I can see that you keep mystifying this over and over again, but no... There was no Illuminati who made this feature to support all kinds of future joypads trough Morse code or anything like that. When you read joystick this bit should be 0 (making it effectively GND) and that is the end of story. There is no "but" although you keep trying to add that. The fact that you can programmatically change the status of this bit has nothing to do with joysticks and such option was not supported by MSX BIOS. This HW feature is provided for graphics pads, trackballs, mice etc. use.
If you start looking for information what this one bit can do you will find things that this bit affects, but that does not prove anything as one bit is just too little data to prove any kind of master plan from anyone involved. I know your work on "MSX-HID" and naming "joystick ports" as "general purpose ports", but I don't think that mystifying of things and trying to make things look more complex or fuzzy helps anyone. Your efforts to make order to the controller mess may have twisted your mind, but you can't start changing the facts to the direction you would like them to be. You have to understand that your routines are the ones that are not following the standards, but you especially try to find tricks to identify undocumented quirks so that your program can work.
With joysticks the usage of pin 8 or 9 makes no any difference as long as standard is followed on software side. == Although they are not equal in computer side HW, the software standard makes them equal. There is no any documented functionality to be lost. MSX documents say pin 8 and many joystick documents say GND, so I don't think either one is 100% incorrect.
Look at the service manuals of MSX without a PSG integrated in a chipset.
Well, well, it seems that you're seeing something that others are not. Would you care to explain it in words instead of just trying to be ironic?
The Japanese Wiki I've mentioned is very clear:
"Atari specification joystick
Atari spec joystick or Atari standard joystick is a colloquial term for any joystick or joystick connector that is compatible with the Atari 2600 joystick. Especially in Japan, the function of some pins was changed in PC-6001, and it is often used in the sense of a joystick terminal that was later adopted by MSX, and a 2-button joystick specified by MSX*
And the history is also interesting:
"Especially in Japan, since NEC 's PC-6001 specification with some pin functions changed was also adopted for MSX , 2-button joysticks that match this specification were widely used, and there were terminals that could be connected to this joystick. Used in many computers. Specifically, Fujitsu 's FM-7 series (FM sound card and FM-77L2, FM77AV series) and FM TOWNS , Sharp's MZ-2500 , X68000 and MZ-800 ( overseas successor to MZ-700 ), Japan Denki's PC-8801mkIISR and successor models and the PC-9800 series (FM sound card PC-9801-26, PC-9801-26K, PC-9801-73, PC-9801-86) correspond. In addition, even before the appearance of MSX, Sharp's X1 (1982), Matsushita Tsushin Kogyo 's JR-200, and Toshiba's Pasopia 7 (1983, using the joystick adapter JOY PAC2) can also use the MSX-spec 2-button joystick. "
I can see that you keep mystifying this over and over again, but no... There was no Illuminati who made this feature to support all kinds of future joypads trough Morse code or anything like that.
NYYRIKKI, I have said many times and I will repeat again. I have *really* great respect for your coding skills, but please take care of the human side too.
There's no need for such ironic statements here. No Illuminati, no conspirations were ever mentioned. It's just a feature that can be achieved by the architecture characteristics. I wonder where this "illuminati" idea came from. Are you sure you're not reading more than it's written on what I documented?
With joysticks the usage of pin 8 or 9 makes no any difference as long as standard is followed on software side.
And exactly what part of the standard states that I can't read the General Purpose Ports while mangling the output bits?
I never heard of such rule, but if you can quote where you got this information I will be very happy to comply.
OTOH, I quoted that real part of the hardware documentation that *must* be followed (the joystick wiring), but strangely enough there seem to be some cherry picking on following imaginary rules of the standard, while not following real parts of it.
Also, are we also going to state that the Konami JE-700 cable shouldn't be connected to the MSX because to use it you have to dare to mangle the output bits of the joystick port?
Are we also going to declare that table mirroring shouldn't be used on the V99xx8 because it's an undocumented feature that otherwise it doesn't follow the rule "standard is followed on software side"?
What's your take on the "secret Z80 instructions"? Since someone dared to call them "secret", maybe the Illuminati are involved, so we aren't allowed to use it?
And what about that nifty overscan that Matra discovered? Software that use that should be declared illegal and it's author burned at the stake?
This has some interesting implications. Because I still remember heated discussions about the MSX-Audio BIOS v1.3, where if software behaved the way it is really stated on the standard, there should be no incompatibilities. But - hey - torches also appeared at that side of the story too. Apparently, this is a game that only has wrong answers, regardless if it is software or hardware.
Although they are not equal in computer side HW, the software standard makes them equal. There is no any documented functionality to be lost. MSX documents say pin 8 and many joystick documents say GND, so I don't think either one is 100% incorrect.
And here we have again the cherry-picking imaginary parts of the standard against real ones.
And remember that you, NYYRIKKI, "dared" to make an extension to the MSX-Mouse protocol that's not standard. If someone would want to be a prick, they could easily break that extension in a thousand manners, and go after you with cheap criticism, stating that it doesn't behave like a real MSX mouse and will cause problems if their software/hardware does this or that.
I, OTOH, found that extension brilliant. It took some breaches/concessions and extended created something very useful. But it requires fellow creators to be gentleman in order to work.
I truly hoped you used the same mindset to look at the MSX-HID algorithm the same way. We're trying to build something, not to destruct.
Anyway, I wonder why I'm still wasting time discussing this. What's the point? What exactly are you trying to achieve or to build, because sincerely I can't shake the impression that I'm only seeing destructivism.
If someone don't like the idea of a method to detect the devices on the General Purpose Ports, just don't use it.
If you want to build your joysticks wiring the common pin to the lightning rod of your building, I couldn't care less. It's your right to do whatever you want with your hardware. Just don't come to pester me if it messes up with what I have done following what the standard allows me to do.
So now you say that all chips are wired to the lightning!
PS: We are not saying that we have to connect to the GND but that it is possible. It's not a bad solution to make a joystick compatible with a few other machines (FM-towns, etc). And, we're not saying your method is bad either. It's the way you presented it that's bad.
I really don't understand all the bashing and discussions on something that should be really simple...
- A MSX Standard joystick should have the buttons and directions connected between its proper pin and pin 8? Yes, absolutely
- Does that makes a joystick that doesn't follow the standard and connected to between pins and ground not work? No, absolutely, those work fine and no one is telling they don't, the port was though so Atari 2600 compatible Joysticks that don't need power work too, and some two button designs will work too using ground instead
- Is "MSX-HID" or the core method to detect devices through changing pin 8 value and reading the input pins an official MSX design/specification you must follow? No, it is not...
- Is the joystick (some models)/mouse/trackball any other device returning different results based on pin 8 and returning results not normally achieved by a regular joystick attached intentional? By all means YES... That is not something that happens per sheer luck. It was designed so some devices in the joystick or general port could be properly detected.
- Is this mandatory? By all means, NO...
- Is this nice to implement on a new design? By all means, YES... It makes it easier to have your device detected properly and not needing it to be a pain on the developer side to have to implement specific routines to detect a different way your device want to use to be detected or having manual selection. An easy update on your fingerprint or whatever name you would like to call it database in your software and is all you need to detect a new device, no need to extravagant solutions to search for multiple devices, a single routine and a list is all you need...
- Should it be named MSX-HID, MSX-General Port Magic Stuff, MSX-Fairy Tail Detection, Crazy Japanese Engineers Designed Devices Detection Method? That is up to the person who made the hard work to collect all this information and still provide a really nice library to be used... It is his documentation work and his library design...
- Is it useful? Hell yeah... Allow you to easily detect quite a few devices and the disconnection of those... I wonder why there is such exchange of
Thanks to whoever was involved in this hard work researching and publishing this information... Thanks to whoever wants to use it on new devices targeting MSX Only, make a lot easier for devs to support or have general libraries updated to support detection of new device...
Anyone not wanting to follow that is free to do whatever they want, this is a hobby and no one should be spending time doing something the way they don't like it... Be happy, do it, share it, if people like it they will use it, if they don't, you are happy doing the way you wanted. Why use harsh words and keep bashing each other is really something I can't understand, you just say Thanks but no thanks and move on... Why keep demotivating people that are making nice stuff available for free? Just be nice even though you may not like their approach.
I agree.