これが回路図例になります。
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"出力しているはず、という回路になっています。