Joy Control
Joy Control - bộ điều khiển chính xác cho các trò chơi mô phỏng
⬇ JoyControl.rar (15 MB) ⬇ JoyControl-VI.pdf (732 KB)ENGI Live JoyControl là một chương trình dành cho Windows, hoạt động như một cầu nối giữa bộ điều khiển của bạn và trò chơi. Nó hỗ trợ đọc dữ liệu từ các thiết bị như DualShock 4, DualSense, Xbox (XInput), vô lăng và bộ điều khiển (HID/DirectInput), cũng như bàn phím. Chương trình này xử lý tín hiệu và gửi thông tin đến trò chơi dưới dạng một bộ điều khiển ảo Xbox 360 thông qua trình điều khiển ViGEmBus.
Trong quá trình chơi, chương trình hoạt động một cách ẩn. Trò chơi nhận diện một bộ điều khiển tiêu chuẩn thông thường, do đó các cài đặt hoạt động trong bất kỳ trò chơi mô phỏng nào. Không cần mod, không cần sự hỗ trợ từ nhà phát triển trò chơi, và các tệp của trò chơi không bị thay đổi.
Ý nghĩa của chương trình nằm ở một điều duy nhất. Cần gạt của bộ điều khiển có hành trình khoảng 2 cm, trong khi bàn đạp của xe hơi có hành trình khoảng 10 cm. Thanh điều khiển di chuyển 1,5 cm, và vô lăng xoay được nửa vòng. Chính vì vậy, việc điều chỉnh ga và phanh trên bộ điều khiển rất khó khăn: ngón tay di chuyển toàn bộ phạm vi từ 0 đến 100% chỉ trong 50-80 mili giây, khiến xe dễ bị trượt hoặc khóa bánh. Joy Control khôi phục lại độ chính xác cho việc điều khiển bằng cách sử dụng hành trình thực tế. Chương trình này không chỉ hiển thị hình ảnh, mà còn sử dụng thời gian thực và hình thức phản hồi thực tế.
Cách thức xử lý tín hiệu:
Mỗi giá trị đều được xử lý qua một quy trình, và kết quả là một bộ điều khiển được tạo ra:
- Vùng chết. Chương trình coi tất cả các giá trị thô dưới ngưỡng xác định là bằng không, do đó, hiện tượng nhiễu và hao mòn không ảnh hưởng đến kết quả đầu ra.
- Tương tác giữa các bộ kích hoạt. Một bộ kích hoạt được trừ đi từ bộ kích hoạt khác, với một hệ số nhân.
- Đường cong độ nhạy. Nó xác định hình dạng của phản hồi: khởi động từ từ hoặc đột ngột.
- Ngưỡng và giới hạn đầu ra. Tất cả các giá trị nhỏ hơn giá trị "Tối thiểu" sẽ được coi là bằng không, và phạm vi giá trị còn lại sẽ được trải đều trên toàn bộ dải; giá trị "Tối đa" sẽ giới hạn giá trị đầu ra ở mức cao nhất.
- Các đoạn chuyển đổi mượt mà. Chúng xác định tốc độ thay đổi, tính bằng mili giây trên một đơn vị, riêng biệt cho thao tác nhấn và thao tác thả.
- Macro và ánh xạ hành động. Một thành phần điều khiển tác động lên một thành phần khác.
- Tay điều khiển ảo cho Xbox 360. Kết quả đầu ra được sử dụng trực tiếp trong trò chơi.
Quá trình đọc dữ liệu từ bộ điều khiển diễn ra với tần số khoảng 120-125 Hz. Tất cả các độ trễ đều được tính toán bằng một bộ hẹn giờ chính xác cao với chức năng tích lũy thời gian, do đó, mỗi bước 0,1 mili giây cho mỗi đơn vị được xử lý chính xác, ngay cả giữa các khung hình.
Các tính năng của chương trình:
- Hỗ trợ mọi loại thiết bị nhập liệu. PS4 và PS5 sẽ được nhận diện tự động. Xbox được kết nối thông qua XInput. Vô lăng và bộ điều khiển hoạt động theo chuẩn HID và DirectInput. Bàn phím có thể thay thế cho bộ điều khiển. Có thể kết nối nhiều bộ điều khiển: mỗi bộ điều khiển có một ID duy nhất và các cài đặt riêng, vì vậy ngay cả hai bộ điều khiển giống hệt nhau cũng có thể được cấu hình riêng biệt.
- Điều chỉnh các bộ kích hoạt một cách độc lập. Phanh và ga được điều chỉnh riêng biệt, không phải bằng cùng một thanh trượt cho cả hai.
- Tối đa 10 đoạn chuyển tiếp. Các đoạn chuyển tiếp được thiết lập trong khoảng từ 0 đến 255, riêng biệt cho thao tác nhấn và thao tác nhả, và độ trễ cho mỗi đoạn là từ 0,1 đến 1000 mili giây cho mỗi đơn vị.
- Đường cong độ nhạy. Đối với các nút kích hoạt, đường cong có thể điều chỉnh từ -20 đến +20. Đối với mỗi trục của cần điều khiển, đường cong có thể điều chỉnh từ -10 đến +10.
- Điều chỉnh toàn diện các thanh điều khiển. Có thể điều chỉnh vùng chết bên trong và bên ngoài, giới hạn phạm vi di chuyển theo trục X và Y, khả năng kéo dài đến giới hạn tối đa và giới hạn tối đa cưỡng bức theo trục.
- Macro (Lệnh Macro). Các chế độ "Theo dõi", "Giữ", "Xung", "Bật/tắt", "Tăng tốc", "Tắt" và "Chuỗi" cho phép tạo chuỗi tối đa 16 bước với thời gian trễ được thiết lập. Mỗi quy tắc có thể có tối đa bốn điều kiện: nút bấm, bộ kích hoạt và cần điều khiển với các phạm vi giá trị. Do đó, một tổ hợp như "Nút L1 được nhấn và nút L2 được nhấn một nửa" có thể được định nghĩa bằng một quy tắc duy nhất. Ngoài ra, có các tùy chọn như đảo ngược, ưu tiên, độ trễ tính bằng micro giây và cách kết hợp (lớn hơn, thay thế hoặc cộng), bao gồm cả việc kết hợp với các macro khác. Chức năng "liên kết" cho phép kết quả của một quy tắc kích hoạt một quy tắc khác.
- Ánh xạ hành động. Bất kỳ đầu vào nào cũng có thể được liên kết với bất kỳ đầu ra nào, và có thể thiết lập ngưỡng kích hoạt, yêu cầu duy trì và thời gian trễ trước và sau khi kích hoạt.
- Máy đo dao động thời gian thực. Trên biểu đồ, dữ liệu thô từ bộ điều khiển được hiển thị bằng màu xám trong 3 giây gần nhất, trong khi dữ liệu được truyền đến trò chơi được hiển thị bằng màu khác. Cấu hình hiển thị rõ ràng, không cần phải đoán mò.
- Hình ảnh tương tác của bộ điều khiển (gamepad). Nhấp vào nút kích hoạt, cần điều khiển, nút bấm hoặc cảm ứng để mở cửa sổ cài đặt của nó.
- Hồ sơ. Các cài đặt được lưu trữ trong một cơ sở dữ liệu SQLite cục bộ. Mỗi hồ sơ có một mã định danh duy nhất 16 chữ số, và việc trao đổi dữ liệu với các tệp được thực hiện thông qua định dạng JSON. Đối với mỗi trò chơi, bạn nên tạo một hồ sơ riêng. Cài đặt của mỗi bộ điều khiển được lưu trữ trong một tệp riêng biệt, có thể được tải lên bất kỳ bộ điều khiển nào của bất kỳ hồ sơ nào.
- Giao diện hỗ trợ 14 ngôn ngữ. Chương trình bao gồm một tệp thực thi duy nhất và không yêu cầu cài đặt.
- Tự động lưu. Bất kỳ thay đổi nào được áp dụng và lưu ngay lập tức, vì vậy bạn có thể tùy chỉnh mà không cần phải thoát khỏi trò chơi.
Tại sao điều này tốt hơn cho các trò chơi mô phỏng
Các chương trình thông thường để tùy chỉnh nút bấm chỉ thay đổi cách phản hồi, tức là đường cong. Joy Control còn thay đổi tốc độ: thời gian (tính bằng mili giây) mà tín hiệu được gửi đến đích ở mỗi giai đoạn di chuyển. Đây là một mức độ kiểm soát hoàn toàn khác, và chính nó giải quyết các vấn đề thường gặp trong các trò chơi mô phỏng khi sử dụng bộ điều khiển.
- Xe không bị trượt bánh khi người lái đạp ga. Ngón tay ấn vào nút kích hoạt ngay lập tức, và lực kéo tăng dần, khiến xe di chuyển như thể người lái đang từ từ đạp bàn đạp.
- Hệ thống phanh được điều chỉnh ở ngưỡng gần như khóa cứng. 30% đầu tiên của quá trình phanh diễn ra rất nhanh, phản ứng gần như tức thì, trong khi 30% cuối cùng diễn ra chậm hơn. Ở điểm dừng tối đa, có thể đạt đến ngưỡng khóa cứng của bánh xe, điều mà không thể thực hiện được bằng tay.
- Cơ chế giải phóng (hoặc nhả) được cấu hình riêng biệt so với cơ chế nhấn. Với bàn đạp ga hoặc phanh thực tế, tốc độ giải phóng không giống với tốc độ nhấn. Việc nhả phanh một cách nhẹ nhàng khi vào cua và việc giảm ga một cách êm ái khi lên dốc được điều chỉnh bằng các cài đặt riêng biệt.
- Độ êm ái không ảnh hưởng đến các thao tác khẩn cấp. Các tùy chọn riêng lẻ cho phép tắt tính năng trễ ở các vị trí cuối cùng: ngay khi cần gạt hết về một phía, hệ thống phanh sẽ được giải phóng ngay lập tức.
- Vô-lăng có quán tính. Một cú vặn mạnh của cần điều khiển không khiến bánh xe xoay ngay lập tức, bởi vì cần điều khiển có các đoạn chuyển động mượt mà khi điều chỉnh và khi trở về vị trí trung tâm.
- Điều khiển trở nên chính xác hơn. Việc giới hạn phạm vi di chuyển theo trục X khiến toàn bộ hành trình của cần điều khiển chỉ tương ứng với 60-70% góc quay, và cùng một khoảng cách di chuyển dưới ngón tay người dùng mang lại độ chính xác gấp đôi.
- Trong tất cả các trò chơi, mọi thứ hoạt động giống nhau. Quá trình xử lý diễn ra trước khi trò chơi bắt đầu, ở cấp độ của bộ điều khiển ảo, do đó không cần bất kỳ cài đặt nào trong chính trò chơi cũng như không cần sử dụng các mod.
- Chân trái vẫn giữ ở vị trí phanh. Việc trừ một tín hiệu kích hoạt từ tín hiệu kích hoạt khác với một hệ số nhân lại mô phỏng hành vi của các thiết bị mà ở đó chân ga và chân phanh có thể xung đột, hoặc ngược lại, cho phép phanh nhẹ mà không cần nhả chân ga.
Cài đặt cho ga và phanh
Nút kích hoạt trái L2 / LT là phanh, nút kích hoạt phải R2 / RT là ga. Mỗi nút được cấu hình trong một cửa sổ riêng, và tất cả các thông số đều độc lập.
| Tham số | Nó làm gì | Cách cài đặt cho trò chơi mô phỏng |
|---|---|---|
| Vùng chết | Giá trị thấp hơn ngưỡng được coi là bằng không. | Trên một bộ điều khiển mới, vùng chết (dead zone) thường được đặt ở mức 3–8 đơn vị. Đối với một nút kích hoạt bị mòn, có thể bị rò rỉ ga, vùng chết này có thể được tăng lên 10–15 đơn vị. |
| Tối thiểu và tối đa | "Tối thiểu" là ngưỡng đầu vào: dưới ngưỡng này, tín hiệu bằng không, và phần còn lại của hành trình được trải dài trên khoảng 0–255. "Tối đa" giới hạn tín hiệu ở mức cao nhất. | "Tối thiểu": Điều chỉnh này giúp loại bỏ tiếng ồn do bộ phận kích hoạt (trigger) bị mòn mà không làm giảm hành trình. Đối với xe đua hoặc xe dẫn động cầu sau có công suất lớn, nên đặt giá trị "tối đa" ở mức 190-210 trên tổng số 255, điều này sẽ hạn chế khả năng tăng tốc tối đa. |
| Đường cong độ nhạy | Điều chỉnh này xác định hình dạng phản hồi trong khoảng từ -20 đến +20. Giá trị âm giúp khởi động mượt mà và tăng độ chính xác ở giai đoạn đầu của hành trình, trong khi giá trị dương giúp tăng tốc nhanh chóng đến mức tối đa. | Đối với ga, giá trị của đường cong nên nằm trong khoảng từ -6 đến -10, còn đối với phanh, nên nằm trong khoảng từ -3 đến -6. Các giá trị dương thường ít được sử dụng, ví dụ như cho hệ thống phanh tay điện tử. |
| Các khu vực nhấn | Có thể tạo tối đa 10 đoạn trên phạm vi từ 0 đến 255, và mỗi đoạn có độ trễ riêng tính bằng mili giây. Bên ngoài các đoạn này, giá trị thay đổi ngay lập tức, trong khi tại các điểm giao nhau, độ trễ được cộng lại. | Tham khảo: 255 đơn vị, mỗi đơn vị tương ứng 1 mili giây, sẽ cho tổng thời gian trễ khoảng 0,26 giây cho toàn bộ hành trình. Đối với ga, nên sử dụng giá trị từ 0,3 đến 2 mili giây trên mỗi đơn vị, còn đối với phanh, nên sử dụng giá trị từ 0,5 đến 3 mili giây. |
| Các khu vực xả thải | Điều chỉnh này tạo ra một bộ đoạn riêng biệt để xác định sự thay đổi của giá trị. | Thông thường, thời gian nhả nhanh hơn thời gian nhấn: từ 0,5 đến 1 mili giây cho mỗi đơn vị. Để đảm bảo việc nhả phanh một cách mượt mà khi vào cua, thời gian trễ được tăng lên ở các giá trị cao hơn. |
| Giá trị tối thiểu tức thời và giá trị tối đa tức thời | Tính năng này sẽ bị tắt nếu nút điều khiển được nhả hoàn toàn hoặc nhấn hết cỡ. | Đối với phanh, tính năng này được kích hoạt để hỗ trợ phanh khẩn cấp, trong khi đối với ga, nó thường được tắt. |
| Loại bỏ các yếu tố kích hoạt và hệ số nhân | Phanh có thể làm giảm hiệu quả của ga, hoặc ngược lại, với một hệ số được xác định trước. | Hệ số từ 0,5 đến 1,0 mô phỏng lại việc sử dụng phanh bằng chân trái và kỹ thuật tăng ga. |
Các cài đặt sẵn cho nút điều khiển:
| Cài đặt | Nhấn | Nhả | Mục đích sử dụng |
|---|---|---|---|
| Phanh nhẹ nhàng | 0–80: 0,5 · 80–180: 1,5 · 180–255: 3,0 | 120–255: 1,0 · 0–120: 0,5 | Đua xe trên đường đua và điều chỉnh độ trượt ở ngưỡng khóa phanh. |
| Khí dễ bay | 0–60: 0,3 · 60–200: 1,0 · 200–255: 2,0 | 0–255: 0,8 | Xe dẫn động bánh sau và khả năng vào cua mà không bị trượt. |
| Cách sử dụng ABS | 0–128: 0,2 · 128–255: 2,5 | ngay lập tức | Khởi động phanh nhanh và tăng dần lực phanh. |
| Chào bạn, bạn khỏe không | 0–128: 2,5 · 128–255: 0,2 | ngay lập tức | Cung cấp lực kéo chậm ở giai đoạn khởi động và phạm vi hoạt động rộng ở phía trên. |
Các con số trong bảng biểu là độ trễ tính bằng mili giây cho mỗi đơn vị đầu ra. Cài đặt mặc định là điểm khởi đầu: sau đó, các thông số được điều chỉnh cho từng loại xe cụ thể và được kiểm tra bằng máy đo dao động, trong đó đường màu xám biểu thị tín hiệu đầu vào, và đường màu biểu thị tín hiệu nhận được.
Điều chỉnh các cần điều khiển (joystick)
Cần điều khiển bên trái trong các trò chơi mô phỏng ô tô hoạt động như một vô lăng, trong khi cần điều khiển bên phải chịu trách nhiệm cho góc nhìn hoặc camera. Mỗi cần điều khiển có thể được điều chỉnh về hình học (tức là vùng chết), phạm vi hoạt động và đường cong, cũng như độ mượt mà theo từng phần, và điều này được thực hiện độc lập cho cả trục X và trục Y.
| Tham số | Nó làm gì | Cách cài đặt cho trò chơi mô phỏng |
|---|---|---|
| Vùng chết bên trong | Loại bỏ hiện tượng trôi lệch ở trung tâm. | Từ 3% đến 6% cho cần điều khiển mới và từ 8% đến 12% cho cần điều khiển đã qua sử dụng. Giá trị càng nhỏ, xe càng giữ được hướng thẳng. |
| Vùng chết (tên sản phẩm hoặc địa điểm) | Cắt bớt phần cuối, do đó, giá trị tối đa đạt được hơi sớm hơn điểm giới hạn. | Từ 92% đến 97%, để đảm bảo khả năng xoay hoàn toàn trên toàn bộ phạm vi, bao gồm cả các đường chéo. |
| Phạm vi tối đa theo các trục | Hạn chế góc xoay theo trục X hoặc Y. | Đây là một kỹ thuật điều khiển chính: từ 60% đến 75% theo trục X. Vô lăng sẽ không xoay hết cỡ, và độ chính xác tăng lên đáng kể. |
| Kéo giãn đến phạm vi tối đa | Sau khi cắt bỏ các cạnh, tín hiệu được kéo giãn lại đến mức tối đa. | Sử dụng khi cần khả năng xoay tối đa trong trường hợp có vùng "chết" lớn ở bên ngoài. |
| Độ nhạy theo các trục | Thiết lập đường cong từ -10 đến +10. Giá trị âm kéo giãn phần trung tâm và làm cho phản hồi trở nên mượt mà, trong khi giá trị dương làm cho phản ứng trở nên nhanh và mạnh. | Đối với điều khiển, mức đường cong theo trục X thường được đặt từ -4 đến -7. Đối với việc quan sát bằng cần điều khiển bên phải, giá trị từ +2 đến +4 được sử dụng để xoay đầu nhanh chóng. |
| Các khu vực có sai lệch | Thiết lập sự chuyển động mượt mà từ vị trí trung tâm. Biên độ từ 0 đến 255 đại diện cho phạm vi xoay tối đa từ trung tâm, và mỗi phần có các cờ riêng cho trục X và Y. | Đối với điều khiển, bộ trì hoãn phù hợp là 0-60: 0,4 giây cho 60 đơn vị, 1,2 giây cho 160 đơn vị, và 2,5 giây cho 255 đơn vị. Cần điều khiển phản ứng nhanh chóng gần trung tâm, nhưng chậm hơn khi xoay hết cỡ. |
| Các khu vực trả lại hàng | Chức năng này giúp điều khiển trở lại vị trí trung tâm một cách mượt mà. | Thời gian điều chỉnh từ 0,5 đến 0,8 mili giây cho mỗi trục, mô phỏng khả năng tự động điều chỉnh của các bánh xe. |
| Giá trị cực đại liên tục theo trục | Khi có bất kỳ sự lệch nào theo trục, hệ thống sẽ đưa ra giá trị tối đa trong phạm vi cho phép. | Phù hợp cho các trò chơi arcade và các trò chơi yêu cầu điều khiển số. |
| Tắt hoàn toàn thanh điều khiển | Thanh điều khiển (joystick) không được truyền trực tiếp vào trò chơi, nhưng các macro (lệnh) của nó vẫn hoạt động. | Điều này rất tiện lợi khi bạn sử dụng vô lăng để điều khiển, nhưng vẫn muốn sử dụng thanh điều khiển để thực hiện các lệnh macro. |
Các trục X và Y có thể được cấu hình đồng thời hoặc riêng lẻ: mỗi trục có các tùy chọn "X" và "Y", và các vùng chồng chéo sẽ cộng dồn thời gian trễ. Một máy hiện sóng (oscilloscope) với thang đo từ -255 đến +255 được tích hợp để giúp bạn theo dõi và điều chỉnh. Di chuyển thanh điều khiển và quan sát xem đầu ra có bị trễ so với thao tác của bạn hay không.
Yêu cầu hệ thống:
- Windows 10 hoặc 11 (phiên bản 64-bit).
- Trình điều khiển ViGEmBus phiên bản 1.22.0. Chương trình sẽ kiểm tra xem trình điều khiển này đã được cài đặt chưa và đề xuất cài đặt bằng một cú nhấp chuột nếu chưa.
- Bộ điều khiển có thể được kết nối bằng cáp, thông qua bộ chuyển đổi hoặc qua Bluetooth.
Chương trình được chạy ở chế độ thử nghiệm trong 20 phút mỗi lần khởi động. Để sử dụng đầy đủ các tính năng, bạn cần mua giấy phép sử dụng vĩnh viễn thông qua trang web engi.live.
Hướng dẫn sử dụng có hình ảnh: hướng dẫn cách sử dụng các chức năng
Dưới đây là mô tả chi tiết từng cửa sổ của chương trình, kèm theo ảnh chụp màn hình. Bạn cũng có thể tải xuống hướng dẫn này dưới dạng tệp PDF bằng cách nhấn vào nút ở đầu trang.
1. Trình điều khiển: ViGEmBus và HidHide
- ViGEmBus là trình điều khiển cho bộ điều khiển trò chơi ảo. Nếu không có trình điều khiển này, chương trình sẽ không thể tạo ra bộ điều khiển Xbox. Ở dòng trạng thái phía dưới cửa sổ, bạn sẽ thấy "Trình điều khiển ViGEmBus: OK"; nếu không thấy, một nút cài đặt sẽ xuất hiện ở đó.
- HidHide là một tính năng không bắt buộc. Nó chỉ cần thiết khi trò chơi đồng thời nhận diện cả bộ điều khiển vật lý và bộ điều khiển ảo, và điều này gây ra hiện tượng nhân bản nhân vật. Chi tiết hơn được trình bày trong phần 15.
2. Giao diện chính

- Thanh trên – lựa chọn cấu hình, Hồ sơ..., lưu và tải cấu hình, Ánh xạ hành động, Khôi phục cài đặt mặc định, ngôn ngữ giao diện.
- Bên trái là các thiết bị nhập liệu. Tất cả các bộ điều khiển (joystick) được cấu hình, ID của chúng, các tùy chọn đánh dấu và các thao tác nhóm.
- Bên phải là hình ảnh của bộ điều khiển (gamepad). Nó hiển thị thông tin theo thời gian thực về những gì trò chơi nhận được từ bộ điều khiển đã chọn. Bạn có thể nhấp vào hình ảnh: nút kích hoạt, cần điều khiển hoặc nút bấm sẽ mở ra các tùy chọn cài đặt tương ứng.
- Dưới hình ảnh là các macro (tập lệnh) của bộ điều khiển đã chọn: mỗi biểu tượng đại diện cho một quy tắc, và khi bạn nhấp vào, nó sẽ mở ra nguồn gốc của quy tắc đó.
3. Nhiều bộ điều khiển và ID của chúng
Chương trình hỗ trợ bất kỳ số lượng bộ điều khiển (joystick). Mỗi bộ điều khiển được gán một ID (mã định danh) duy nhất: đối với bộ điều khiển Bluetooth, đó là địa chỉ MAC của nó, do đó, hai bộ điều khiển DualShock giống nhau sẽ có ID khác nhau. Khi bộ điều khiển được kết nối, chương trình tự động tìm kiếm và áp dụng các cài đặt phù hợp dựa trên ID của nó, ngay cả khi nó được cắm vào một cổng USB khác.

| Mục trong danh sách | Nó làm gì |
|---|---|
| × | Xóa tay cầm và các cài đặt liên quan khỏi hệ thống. |
| Đánh dấu đầu tiên | Cách thức hoạt động: Hệ thống tạo ra một bộ điều khiển ảo của Xbox, tương ứng với các nút trên cần điều khiển. |
| Đánh dấu chọn thứ hai | Đã chọn: Tham gia vào các hoạt động nhóm. |
| Tên | Nhấp chuột để cấu hình bộ điều khiển này. Nhấp đúp chuột để đổi tên. |
| ID | Nhấp chuột để sao chép ID và lưu vào bộ nhớ tạm. |

Các hoạt động nhóm
- Áp dụng cho mục đã chọn — Sao chép tất cả các cài đặt của bộ điều khiển (joystick) đã chọn (▶) cho các bộ điều khiển có dấu tích "đã chọn".
- Chọn tất cả / Bỏ chọn tất cả — giúp bạn đánh dấu nhanh chóng.
- Tay cầm → tệp — Lưu cài đặt của một bộ điều khiển vào một tệp riêng biệt .joy.json.
- Tệp → tay cầm — Tải cài đặt từ một tệp chỉ cho bộ điều khiển (joystick) được chọn. Nếu có các bộ điều khiển khác được chọn, chương trình sẽ hỏi bạn có muốn áp dụng cài đặt cho tất cả các bộ điều khiển đã chọn hay không. Bạn cũng có thể sử dụng một tệp cấu hình thông thường: nếu tệp đó chứa cấu hình cho nhiều bộ điều khiển, chương trình sẽ đề xuất bạn chọn bộ điều khiển nào để lấy cấu hình.
4. Hồ sơ và tệp
"Hồ sơ" là một bộ cài đặt đầy đủ: bao gồm tất cả các điều khiển và cấu hình cho từng thiết bị. Bạn có thể tạo ra vô số hồ sơ, ví dụ như cho các trò chơi khác nhau.

- Kích hoạt, Mới, Nhân bản, Đổi tên, Xóa - Các thao tác với hồ sơ.
- Lưu vào tệp... / Tải từ tệp... — Lưu toàn bộ thông tin của đối tượng.
- Khối "Cài đặt của một bộ điều khiển" cho phép bạn lưu hoặc tải một tệp cấu hình cụ thể của bộ điều khiển vào bất kỳ cấu hình, kể cả cấu hình không hoạt động, và xóa khỏi cấu hình.
- ● - Điều khiển có các cài đặt riêng. ○ - Nó chưa được cấu hình và đang sử dụng các cài đặt mặc định của cấu hình.
5. Các nút L2 / R2

| Cài đặt | Cách thức hoạt động |
|---|---|
| Tối thiểu | Ngưỡng kích hoạt: Mọi giá trị thấp hơn ngưỡng này sẽ được coi là bằng 0, và phần giá trị còn lại sẽ được phân bổ trên toàn bộ dải từ 0 đến 255. Ví dụ: "Tối thiểu = 10" giúp loại bỏ hiện tượng nhiễu, nhưng vẫn cho phép đạt được giá trị tối đa. |
| Tối đa | Giới hạn giá trị tối đa: Trò chơi sẽ không bao giờ nhận được giá trị lớn hơn giới hạn này. |
| Vùng chết | Giá trị thấp hơn ngưỡng sẽ được chuyển đổi thành 0 mà không cần phân bổ. |
| Đường cong | -20: Khởi động nhẹ nhàng, kiểm soát chính xác ở giai đoạn đầu. +20: Phản hồi nhanh và mạnh. |
| Ngay lập tức, ở mức 0 hoặc mức tối đa | Khi nút được thả hoàn toàn hoặc nhấn hết cỡ, nó sẽ kích hoạt mà không có độ trễ. |
| Trừ L2 khỏi R2 | Đối với chế độ đua: phanh làm giảm tốc độ, "Hệ số" xác định lực phanh. Cũng có một tùy chọn ngược lại. |
| ẤN / THẢ | Đoạn đường mượt: Trên một đoạn đường được chọn, giá trị sẽ tăng hoặc giảm không phải ngay lập tức, mà với một độ trễ tính bằng mili giây cho mỗi đơn vị. Có thể có tối đa 10 đoạn đường mượt, và các đoạn đường này có thể chồng chéo lên nhau. |
6. Thanh trượt và hiện tượng trôi

- Kích hoạt tính năng ánh xạ lại / vùng chết tùy chỉnh — đây là tùy chọn chính. Nếu không kích hoạt, các giá trị của vùng chết sẽ không được áp dụng.
- Vùng chết trung tâm – khu vực mà khi cần gạt cần điều khiển về trung tâm, nó không phản ứng. Thông thường, tỷ lệ này là từ 8% đến 15%.
- Vùng chết (ngoài) là khu vực ở ngoài cùng, nơi que cắm được coi là đã được đưa vào hết cỡ.
- Phạm vi tối đa của trục X/Y, Kéo giãn, Luôn là giá trị tối đa — giới hạn hoặc tăng cường phạm vi di chuyển của mỗi trục.
- Độ nhạy X/Y - là một đường cong biểu diễn khả năng phản ứng.
- ĐIỀU CHỈNH / HOÀN LẠI — Các đoạn đường cong, tương tự như các bộ điều khiển; mỗi đoạn đường cong có các dấu kiểm (tick) X và Y, cho biết trục mà nó tác động lên.
7. Macro: Cơ bản
Macro là một quy tắc có dạng: "nguồn ở trạng thái → hành động tác động lên một phần tử khác". Nguồn có thể là:
- Phạm vi kích hoạt hoặc bộ kích hoạt: Macro sẽ hoạt động trong khi giá trị nằm trong phạm vi được chỉ định.
- Nút bấm - Macro sẽ hoạt động trong khi nút bấm được giữ (phần 11).
Macro được kích hoạt tại điểm kết nối hoặc điểm kích hoạt
- Mở cửa sổ của thanh điều khiển hoặc nút kích hoạt, sau đó tạo một khu vực.
- Nhấp vào số lô - 1+.
- Một hình ảnh của bộ điều khiển (gamepad) sẽ hiển thị. Nhấp vào mục đích: nút, nút kích hoạt hoặc cần điều khiển. Sau đó, chọn hướng cho cần điều khiển.


Tất cả các thông số của quy tắc

| Tham số | Ý nghĩa |
|---|---|
| Mục tiêu | Macro này tác động lên đối tượng nào? |
| Chế độ | Phần 8: Điều gì thực sự xảy ra với mục tiêu. |
| Hướng cần thiết | Đối với nguồn phát: bất kỳ hướng nào, chỉ hướng lên/phải hoặc chỉ hướng xuống/trái. |
| Kết nối: từ/đến | Mục tiêu đạt được những giá trị sau. "Đảo ngược": Nguồn tăng lên, mục tiêu giảm xuống. |
| Kết hợp với vật lý | Giá trị lớn hơn; Thay thế vật lý; Cộng - cộng thêm vào giá trị mà bạn đang nhấn phím vật lý, và các macro khác với cùng mức độ ưu tiên và chế độ "Cộng". |
| Ưu tiên | Nếu nhiều macro tác động lên một mục tiêu, macro có giá trị lớn hơn sẽ thắng. Nếu giá trị bằng nhau, macro "Tắt" sẽ có ưu tiên cao nhất. |
| Độ trễ | Thời gian kích hoạt và giải phóng tính bằng micro giây: 10.000 = 10 mili giây. Thời gian kích hoạt là khoảng thời gian mà nguồn phát phải duy trì trong phạm vi đã chỉ định. |
8. Chế độ macro
| Chế độ | Nó làm gì | Ví dụ: |
|---|---|---|
| Tuân theo | Mục tiêu lặp lại nguồn phát: phạm vi của nó được tính toán lại thành phạm vi đầu ra của mục tiêu. Chỉ áp dụng cho nguồn phát dạng thanh hoặc bộ kích hoạt. | Thanh đẩy ga một cách mượt mà về phía trước. |
| Giữ | Trong khi nguồn đang hoạt động, nút mục tiêu được nhấn với giá trị "Thời gian giữ". | L1 giữ nút L2. |
| Xung | Khi vào một phạm vi nhất định, nút mục tiêu được nhấn một lần trong một khoảng thời gian được chỉ định. | Một lần nhấn nhanh nút A khi cần điều chỉnh nhanh thanh điều khiển. |
| Bật/Tắt | Mỗi lần nhấn sẽ bật hoặc tắt mục tiêu. | Một lần nhấn để ngồi xổm, một lần nhấn nữa để đứng lên. |
| Tăng áp | Trong khi nguồn đang hoạt động, nút mục tiêu được nhấn và thả theo một chu kỳ được chỉ định. | Chế độ bắn tự động. |
| Tắt | Mục tiêu bị khóa, ngay cả khi nút vật lý được nhấn. Chức năng này áp dụng cho toàn bộ thanh điều khiển. | Tắt thanh điều khiển trong khi nút L2 vẫn đang được giữ. |
| Chuỗi | Chuỗi các bước: thành phần, giá trị, thời gian giữ, tạm dừng - phần 10. | Tổ hợp đòn đánh bằng một nút. |
9. Kết hợp: điều kiện
Các điều kiện trả lời câu hỏi: "phải làm gì khi hai hoặc nhiều phần tử được chọn". Macro chỉ hoạt động khi tất cả các điều kiện được đáp ứng. Một điều kiện có thể là:
- Nút - nút đã được nhấn.
- Nút kích hoạt hoặc cần điều khiển — giá trị của nó nằm trong một phạm vi nhất định, ví dụ: "Nút L2 được nhấn sâu hơn một nửa: 128–255".
- Bất kỳ tùy chọn nào có dấu tích "ngược lại" nghĩa là nút tương ứng không được nhấn hoặc giá trị nằm ngoài phạm vi cho phép.
Một quy tắc có thể áp dụng cho tối đa bốn điều kiện.

10. Chuỗi
Một lần kích hoạt bao gồm một chuỗi các hành động theo thời gian. Mỗi bước bao gồm: một yếu tố, một giá trị (đối với nút, bất kỳ giá trị nào lớn hơn 0 có nghĩa là nút đang được nhấn), thời gian giữ và thời gian tạm dừng sau đó. Có thể có tối đa 16 bước. Nếu chọn tùy chọn "lặp lại", chuỗi hành động sẽ lặp lại cho đến khi nguồn kích hoạt và các điều kiện vẫn còn hiệu lực.


11. Macro cho các nút

- + Macro (chọn trên tay cầm): Thêm một quy tắc và chọn mục tiêu.
- Vô hiệu hóa hoàn toàn nút bấm – Nút bấm sẽ không được sử dụng trong trò chơi, nhưng các macro (tác vụ được lập trình sẵn) liên quan đến nút bấm vẫn tiếp tục hoạt động. Điều này cho phép bạn hoàn toàn thay đổi chức năng của nút bấm.
- Tất cả các chế độ, điều kiện và chuỗi hoạt động giống như trên các nút analog và nút kích hoạt.
12. Tất cả các macro và kết nối

- Các tùy chọn bật/tắt, ưu tiên, ⚙ và × nằm trực tiếp trong bảng. Nhấp vào nguồn sẽ mở cửa sổ của nó.
- Đã được đánh dấu màu đỏ các xung đột: hai lệnh macro tác động lên cùng một mục tiêu với cùng mức độ ưu tiên, khi chưa rõ ai sẽ thắng.
- Xóa tất cả macro – Bắt đầu lại từ đầu.
- Liên kết các macro – Kết quả của một quy tắc trở thành nguồn dữ liệu cho quy tắc khác. Ví dụ, "× → L2" và "L2 trong phạm vi → R1" sẽ hoạt động theo một chuỗi từ một lần nhấn phím ×. Theo mặc định, tính năng này bị tắt: điều này đảm bảo rằng các cấu hình đã được tạo sẵn hoạt động như trước đây. Độ sâu được giới hạn ở ba bước, và không được phép tạo vòng lặp.
Cách các macro hiển thị trên hình ảnh bộ điều khiển
- Các đường màu xanh lam nối liền nguồn và đích. Các đường liên tiếp dẫn đến từng phần tử, và các chú thích #1, #2, #3 là số thứ tự của các bước.
- "Các vạch dưới thành phần": Thang đo từ 0 đến 255. Màu xanh lá cây ở nguồn hiển thị phạm vi hoạt động, màu cam ở đích hiển thị phạm vi đầu ra.
- Điểm màu xanh lá cây - Phần tử này chứa các macro.
13. Ánh xạ hành động
Gán lại đơn giản "đầu vào → đầu ra" với ngưỡng kích hoạt, thời gian giữ và thời gian chờ – áp dụng chung cho toàn bộ cấu hình.

14. Các công thức cài đặt sẵn
Loại bỏ hiện tượng trôi của cần điều khiển
Thanh điều khiển → Kích hoạt tính năng điều chỉnh vùng chết / vùng không phản ứng → Vùng chết bên trong là 10-12%. Vui lòng kiểm tra trên biểu đồ trực tiếp: khi không có tín hiệu, đường biểu diễn phải nằm ở mức 0.Loại bỏ hiện tượng rung của nút kích hoạt mà vẫn giữ được phạm vi hoạt động đầy đủ
Ngưỡng kích hoạt → Giá trị tối thiểu = 5–10. Mọi giá trị thấp hơn sẽ được coi là bằng không, và giá trị còn lại sẽ được kéo dài đến 255.Điều khiển tăng tốc mượt mà cho các trò chơi đua xe
R2 → Chia khoảng 0–255 thành N = 3 phần trong khối "NHẤN", với độ trễ 1–3 mili giây cho mỗi phần trong giai đoạn đầu. Đường cong có giá trị từ -5 đến -10 để đảm bảo khởi động chính xác. Nếu cần, có thể trừ giá trị L2 khỏi giá trị R2.Kết hợp hai nút: L1 + × → R2
Nút × → Macro → mục tiêu R2, chế độ Giữ → ⚙ → điều kiện L1. Nếu không nhấn nút L1, nút × hoạt động như bình thường.Một nút duy nhất tạo ra một loạt các đòn tấn công
Nút → Macro → ⚙ → Chế độ Chuỗi → Số bước × → □ → △, mỗi bước 60/60 mili giây. Để thực hiện liên tục, chọn tùy chọn lặp lại.Tự động bắn
Nút R1 → kích hoạt macro với mục tiêu R2 → chế độ "Turbo" (tốc độ cao) → thời gian hoạt động từ 80 đến 120 mili giây.Hai người chơi sử dụng hai bộ điều khiển
Kết nối cả hai bộ điều khiển (gamepad). Mỗi bộ điều khiển sẽ xuất hiện trong danh sách cùng với ID của nó. Cấu hình bộ điều khiển đầu tiên, đánh dấu chọn vào ô "đã chọn" cho bộ điều khiển thứ hai, sau đó nhấn nút "Áp dụng cho mục đã chọn". Sau đó, bạn có thể cấu hình từng bộ điều khiển một cách riêng biệt.Chuyển các cài đặt sang bộ điều khiển mới
Tay cầm cũ → Tay cầm → tệp. Tay cầm mới - nhấp vào tên → Tệp → tay cầm.15. Nếu có vấn đề xảy ra
| Triệu chứng | Nguyên nhân và giải pháp |
|---|---|
| Các chỉnh sửa "không hoạt động" | Rất có thể, bộ điều khiển đang được cấu hình nhưng bị tắt – dòng "Đang cấu hình" có màu cam. Hãy nhấp vào tên của bộ điều khiển đã kết nối. |
| Cảm biến tự động kích hoạt | Kiểm tra các macro được gán cho cảm biến này trên bộ điều khiển: việc điều khiển bộ điều khiển có thể kích hoạt macro. Cần điều chỉnh vùng chết của bộ điều khiển (phần 6) hoặc phạm vi nguồn của macro từ 10. |
| Nhân vật trong game bị "nhân bản" | Phần mềm này nhận diện cả tay cầm vật lý và tay cầm ảo. Để sử dụng, hãy cài đặt HidHide: chọn tab "Ứng dụng" → biểu tượng "+" → thêm tay cầm của bạn (JoyControl.exe); sau đó, chọn tab "Thiết bị" → đánh dấu chọn vào "Wireless Controller"; cuối cùng, kết nối lại tay cầm. Thứ tự các bước rất quan trọng: trước tiên, thêm chương trình vào danh sách trắng, sau đó mới ẩn nó. |
| Game không nhận diện bộ điều khiển | Vui lòng kiểm tra "Trình điều khiển ViGEmBus: Đã hoạt động" và đảm bảo rằng đèn báo "đang hoạt động" trên bộ điều khiển (joystick) sáng. |
| Bộ điều khiển thứ năm không hiển thị trong game | Giới hạn của Windows: XInput chỉ cho phép tối đa bốn bộ điều khiển kết nối với game. |
| Bộ điều khiển DualShock thứ hai không kết nối qua Bluetooth | Xóa các mục "Wireless Controller" cũ trong cài đặt Bluetooth, đặt lại bộ điều khiển bằng một chiếc kẹp (ở lỗ phía sau nút L2), bật chế độ ghép nối bằng cách nhấn đồng thời nút Share và nút PS cho đến khi đèn nhấp nháy liên tục. Hoặc đơn giản là kết nối bằng cáp. |
