JR EAST Train Simulator

JR EAST Train Simulator

View Stats:
mipsparc Oct 3, 2022 @ 6:21am
4
Switch版電車でGOワンハンドルマスコンで操作できるようにしてみました
まだ試作ソフトで、そもそもPCのスペック的に十分に遊べてないのですが、正常に動作はするので試してみてください。なにか問題などあったら教えてください。今後は八高線のツーハンドルにも対応したいです。
https://github.com/mipsparc/JRESim_Dengo/releases
プレイ動画: https://youtu.be/qX-uEPIz6Wk
< >
Showing 1-14 of 14 comments
mipsparc Oct 3, 2022 @ 6:24pm 
なお、マスコンの動作をキーボードに変換しているだけで、特殊なキーボードを取り付けているのと同じなので、禁止規定の「他のソフトウェアと組み合わせること」にはあたらないと解釈しています。

なお、JR東日本およびその関連会社、音楽館からの要請があった場合は使用を推奨しないようにします。
zwei_masa Oct 9, 2022 @ 7:01pm 
ZKNS-002を接続して試して見ましたが、
SwitchDenGo()の32行目でInvlid joystic buttonのエラーが出て止まります。
self.joy.get_button(13)にするとエラーが解消されて動くようになりました。

素敵なソフト、ありがとうございます。
M.S. Bogi Nov 9, 2022 @ 12:37am 
ダウンロードさせていただきました。
ツーハンドルタイプの対応にも勝手ながらきたいしております。
ありがとうございました。
yossa56 Nov 20, 2022 @ 2:34am 
Windows11にも対応していますか?
最初の黒い画面が出ても何もしないで直ぐ消えてしまいます、マスコン動作もしません。
mipsparc Nov 24, 2022 @ 4:45am 
Originally posted by yossa56:
Windows11にも対応していますか?
最初の黒い画面が出ても何もしないで直ぐ消えてしまいます、マスコン動作もしません。
Windows11で開発したので対応しているはずですが、ドライバなどいろいろな関係で動かない可能性もあります。
asumi_sora Dec 4, 2022 @ 3:27am 
プログラムを実行すると以下のエラーにて止まっってしまいます。
コントローラーはZKNS-002です。
Traceback (most recent call last):
File "main.py", line 24, in <module>
File "SwitchDenGo.py", line 32, in loadStatus
pygame.error: Invalid joystick button
[876] Failed to execute script 'main' due to unhandled exception!
ヒカマー Feb 11, 2023 @ 9:58pm 
すいませんソフトを起動しても黒い画面が出てきて何もしないで2秒ぐらいで消えます
ちなみにコントローラーはZKNS-001です
Last edited by ヒカマー; Feb 11, 2023 @ 9:58pm
daasan5678 Mar 15, 2023 @ 4:21am 
私も以下のエラーが出て、起動することができません。弱りました…。

Traceback (most recent call last):
File "main.py", line 20, in <module>
File "SwitchDenGo.py", line 10, in __init__
pygame.error: Invalid joystick device number
[13828] Failed to execute script 'main' due to unhandled exception!
daasan5678 Mar 26, 2023 @ 8:36am 
色々調べたところ、どうにもUSBデバイスのドライバが正常に機能してないことが原因の1つであるように感じます。

コントローラを接続して使えたという方、どのようにデバイスドライバーをインストールしたのかお聞きしたいのですが教えてもらえませんか?
nagaga Mar 29, 2023 @ 8:47am 
Originally posted by daasan5678:
色々調べたところ、どうにもUSBデバイスのドライバが正常に機能してないことが原因の1つであるように感じます。

コントローラを接続して使えたという方、どのようにデバイスドライバーをインストールしたのかお聞きしたいのですが教えてもらえませんか?
ZUIKIのワンハンドルコントローラーは、汎用 USB ゲームパットとして作られているようです。

ドライバーも OS 標準の USB 入力デバイスとして認識されているので、特にインストールなどは不要でした。 (Windows 10, 11 共に)

エラーを見るに、
https://github.com/mipsparc/JRESim_Dengo/blob/v1.0/SwitchDenGo.py#L10
pygame.joystick.Joystick(0)
の部分でエラーになっているので、 OS 側がジョイスティック(汎用USBコントローラー)として認識できていない可能性があります。

とりあえず、 OS がゲームコントローラとして認識しているか、 「デバイスとプリンター」の設定 (win10[win10labo.info], win11[win11lab.info]) でコントローラーのテストができるか確認してみてはいかがでしょうか?
okakyu Aug 31, 2023 @ 11:08pm 
ZKNS-002を接続して試して見ました。コントローラーとして利用が可能なのですが、1つ、EB投入時に空気笛が鳴り続けます。EB投入後バックスペースキーで止まるのは止まるのですが、EB投入で何故なるのか、またEB投入時1キーを一定間隔で押し続けてる感じがあるのですがこれは仕様でしょうか?
nagaga Oct 7, 2023 @ 1:49pm 
ZKNS-001 では問題なく動いていたのですが、最近 Limited Edition (ZKNS-002) に買い換えてみたところ以下のようなエラーで落ちるようになりました。

```
Traceback (most recent call last):
File "C:\Users\USERNAME\Documents\Repositories\JRESim_Dengo\JRESim_Dengo.py", line 23, in <module>
dengo.loadStatus()
File "C:\Users\USERNAME\Documents\Repositories\JRESim_Dengo\SwitchDenGo.py", line 29, in loadStatus
if self.joy.get_button(15):
pygame.error: Invalid joystick button
```

確認したところ、 `pygame` モジュールで取得できるキー情報が大きく変わっているようです。
(例えば、方向キーがボタンではなくて、ハットスイッチとして取得されるようになっている)

`SwitchDenGo.py` のソースコードで、キーマップの組み合わせを以下のように変えたら意図通り動作する所まで確認はしました。

```diff
- # Xボタン
- if self.joy.get_button(2):
- self.buttons.append("SW_X")
- # Yボタン
- if self.joy.get_button(3):
- self.buttons.append("SW_Y")
- # Aボタン
- if self.joy.get_button(0):
- self.buttons.append("SW_A")
- # Bボタン
- if self.joy.get_button(1):
- self.buttons.append("SW_B")
- # ○ボタン
- if self.joy.get_button(15):
- self.buttons.append("SW_CIRCLE")
- # HOMEボタン
- if self.joy.get_button(5):
- self.buttons.append("SW_HOME")
+ # Xボタン
+ if self.joy.get_button(3):
+ self.buttons.append("SW_X")
+ # Yボタン
+ if self.joy.get_button(0):
+ self.buttons.append("SW_Y")
+ # Aボタン
+ if self.joy.get_button(2):
+ self.buttons.append("SW_A")
+ # Bボタン
+ if self.joy.get_button(1):
+ self.buttons.append("SW_B")
+ # ○ボタン
+ if self.joy.get_button(13):
+ self.buttons.append("SW_CIRCLE")
+ # HOMEボタン
+ if self.joy.get_button(12):
+ self.buttons.append("SW_HOME")
```

ただ、書き換えてしまうと旧コントローラの方で動かなくなってしまうので、何か適当な新旧コンを区別する方法を思いついたら、プルリク投げてみようと思います。

元の作者さんが対応してくれるかはわかりませんが。
Last edited by nagaga; Oct 7, 2023 @ 1:50pm
nagaga Nov 3, 2023 @ 6:28am 
原因がわかったので、 GitHub でフォークて修正したビルドを以下のページに置きました。
https://github.com/advanceboy/JRESim_Dengo/releases/tag/v1.0p1

技術的な原因について調べた記事を書いたので、万が一気になる人がいれば以下のページへどうぞ。
https://aquasoftware.net/blog/?p=1960
t_4_blueimpuls Nov 29, 2023 @ 2:19am 
マスコン操作は問題なく動作しますが、ボタンを押すと、マスコン自体の反応もなくなり、
何も操作できなくなってしまいます。何が原因なのでしょうか?
< >
Showing 1-14 of 14 comments
Per page: 1530 50

Date Posted: Oct 3, 2022 @ 6:21am
Posts: 14