これが回路図例になります。
74LS244、245 は、相当品で構いませんし、ピンアサインも適当に入れ替えてもらって構いません。
3.3V−5V変換は、双方向以外はもっと簡単な回路で実現できるかと思いますが、とりあえず今の回路を生かしたままという事にしました。
変更点は以下の通りです。
・1、2、3、4ピンの入力専用ピンは、5V-TTLの入力バッファを追加した。
・8ピンの出力専用ピンは、5V-TTLの出力バッファを追加した。
・6、7の入出力ピンは、双方向バッファを追加した。制御信号は、FPGAからの出力を使用する。
不具合の原因は、一部のジョイスティックで、結構変な(?)回路になっている事でした。
このため、8ピンの"L"出力が、それなりなドライブ能力が必要になっていたようです。
また、逆にジョイスティック側のドライブ能力が足らないために、正常動作しないものもありました(XE-1 PRO)。
一番素直な回路は、TONWS-PAD のような回路になります。
9ピンが GND として使って、各方向キー、ボタンは、その9ピンと結線しています。
変な回路の典型的は、純正スティックのPC-6052 です。
8ピンが "L" になっている事が前提で、各方向キー、ボタンをその8ピンと結線しています。
このため、8ピンに"L" を出力しないと、各方向キー、ボタンのデータを受け取れません(ベタ"H"になる)。
8ピンに"L"を出力しないと、入力が反映されないという仕様のような気がしますが、SEGA のジョイパッドに合わせたのかも知れません。
古いですが、SC-3000(マスターシステム)のジョイパッドです。
これは、9ピンの方のボタン入力を取ると、PC-6052 と同じです。
同じパターンで、後継機のメガドライブのパッドです。
これは、7ピンが出力で、複数ボタンの選択のために使われています。
電波新聞社のXE-1シリーズで、XE-1 ST、XE-1 ST2 は、SC-3000、メガドライブをサポートしているようです。
これは、XE-1 ST の回路図です。
8ピンは、SC-3000、メガドライブはGNDになっていて、他の機種は"L"出力しているはず、という回路になっています。


ジョイスティックのピン配置ですが、元になったATARI2600(VCS)のものはPC-6052と等価です。
http://old.pinouts.ru/Inputs/JoystickAtari2600_pinout.shtml
ただしVCSではパドルもつながりますが、そちらでは7番ピンが+5Vみたいですね。
P6の9番ピンがGNDになっているのは5番ピンの+5Vと対になっていて、この2つのピンは他のデータ入出力用のピンとは独立しているという考え方みたいです。
なのでどちらかというとTOWNSのほうが異端です。ベーマガの90年8月号「なにわ通信」に、TOWNSではXE-1APのデジタルモードがゲームソフトによっては動作しないということが書かれていて、変換ケーブルの作り方が図解されています。
なーるほど。ATARIは8pinがGNDなんですね。ATARI仕様を謳うジョイスティックは、8pinをコモンピンにするべきなのか。
ただ、ハード側から見ると、9pin につなぐのではなく、9pinにつなぐのが正解だと思います。
信号ピンは信号ピン同士繋ぐという考え方もありますが、単純にその入力を"L"にするか"H"にするかなので、8pinにつなぐのは本来はおかしいと思います。
8pinに繋ぐ場合は、ジョイスティック内部で、バッファを入れてから分岐すべきかな。
XE-1 AP はわからないんですが、XE-1 ST は、8pinコモンで、XE-1 ST2とXE-1 PRO は、9pinコモンでした。
XE-1 APのTOWNSでの問題は、同根のような気がします。
自分はハードウェアに(ソフトもですがw)詳しいわけではないので変なことを言ってたらすみません。
なお、MSX(MSX2)の仕様としてもジョイスティックの入力は8番ピンを0にして読むということになっているようです。(BIOSを使うことが推奨されていますが)
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=5%BE%CF+%C8%C6%CD%D1%C6%FE%BD%D0%CE%CF%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A5%A4%A5%B9
どちらが正解かというと、実はちゃんと動作すれば両方正解ですので。
MSX は8pinを"L"にするのが仕様なようですが、P6も同じように8pinを"L"にする必要がありますね。
じゃないと、PC-6052のような純正スティックに対応できませんので。
ですので、NEC的には8pinと接続すべし、のようですね。
でも誰一人として守ってない模様ですが(苦笑)。
一部の多ボタンパッドなんかは8pinのL/Hでボタンのセットを切替えますね。
(メガドライブの6Bパッドはもっと複雑な仕組みらしいですが)
ちなみにスーパーカセットビジョンでは、4方向2トリガの計6入力を、
MSX仕様のような信号線6本+コモン1本で入力するのでは無く、
信号線3本+コモンっぽい線2本で入力する変態仕様です(汗)。
コモンっぽい線のどちらをLOWにするかで出力される内容が切り替わる仕組みです。
P6の場合、出力1本+入力6本、か、出力3本+入力4本、にする事が可能です。
スーパーカセットビジョンも制御できますね(^^;