From 6989ee2ebc75b49cd8228a6e574977d4bbc92db6 Mon Sep 17 00:00:00 2001 From: Takashi Toyoshima Date: Sat, 23 Dec 2023 18:51:37 +0900 Subject: [PATCH] publish 2.22 --- docs/firmware.md | 5 ++++- docs/firmware_en.md | 5 ++++- docs/firmwares/us_v2_22.bin | Bin 0 -> 53968 bytes 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 docs/firmwares/us_v2_22.bin diff --git a/docs/firmware.md b/docs/firmware.md index 6634b5e..0fe8ee4 100644 --- a/docs/firmware.md +++ b/docs/firmware.md @@ -141,6 +141,7 @@ JVS I/Oとして利用する前、特にジャンパーピンを実装した人 - Ver 2.19 Real Arcade Pro.N HAYABUSAと後期V3.SAをサポート、バスリセット再調整 - Ver 2.20 GT Force Proをサポート、シフトギアエミュレーションの試験実装 - Ver 2.21 JVS Dashモード時に連射がまともに機能していなかったのを修正 +- Ver 2.22 アナログ入力の値を反転する設定機能を追加 ## ファームウェアの互換性 V3系基板は、v1.48とv2.11以降のファームウェアのみ動作します。v1/v2系基板は全てのファームウェアが動作します。 @@ -223,6 +224,7 @@ async function flash() { 'firmwares/us_v2_19.bin', // Ver 2.19 'firmwares/us_v2_20.bin', // Ver 2.20 'firmwares/us_v2_21.bin', // Ver 2.21 + 'firmwares/us_v2_22.bin', // Ver 2.22 ]; const progressWrite = document.getElementById('progress_write'); const progressVerify = document.getElementById('progress_verify'); @@ -275,7 +277,8 @@ async function flash() { - + + diff --git a/docs/firmware_en.md b/docs/firmware_en.md index 8c38f25..d8a960d 100644 --- a/docs/firmware_en.md +++ b/docs/firmware_en.md @@ -146,6 +146,7 @@ It may be ok if it does not long, but it may damage the device to connect over J - Ver 2.19 Support Real Arcade Pro.N HAYABUSA, V3.SA later model, and adjust bus RESET again. - Ver 2.20 Support GT Force Pro, and introduce experimental shift gear emulation. - Ver 2.21 Bug fix to run rapid-fires at correct speed even in JVS Dash mode. +- Ver 2.22 Support analog polarity in the settings. ## Firmware Compatibility For v3 based PCBs, only v1.48 and v2.11+ work. For v1/v2 based PCBs, all firmwares work. @@ -229,6 +230,7 @@ async function flash() { 'firmwares/us_v2_19.bin', // Ver 2.19 'firmwares/us_v2_20.bin', // Ver 2.20 'firmwares/us_v2_21.bin', // Ver 2.21 + 'firmwares/us_v2_22.bin', // Ver 2.22 ]; const progressWrite = document.getElementById('progress_write'); const progressVerify = document.getElementById('progress_verify'); @@ -281,7 +283,8 @@ async function flash() { - + + diff --git a/docs/firmwares/us_v2_22.bin b/docs/firmwares/us_v2_22.bin new file mode 100644 index 0000000000000000000000000000000000000000..82cdff892a3e3fbaef990613c01be99a75871e85 GIT binary patch literal 53968 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 tf_{HQjfj7f^64o_kGrL5^gCJc(hvHfgn#j