Skip to content

Releases: MateusRestier/joybind

v2.2.0

11 Mar 22:49

Choose a tag to compare

What's New in v2.2.0

New Features

  • Toggle Pause bind type — A new bind action that suspends all other binds when pressed and resumes them on the second press. Useful for temporarily disabling joystick input without closing the app.
  • Two-line button tiles — Controller button tiles now show the bind label on a second line (in smaller font), so the active bind is always visible at a glance without needing to hover.

Bug Fixes

  • Language switch visual glitch — Switching the UI language no longer leaves stale text visible on tiles and labels; all widgets now refresh correctly on language change.
  • Analog axis pause — Analog axis callbacks now correctly respect the paused state and return early when paused, preventing phantom inputs during a pause.
  • Radio button spacing — Fixed asymmetric spacing between bind-type radio buttons in the bind dialog. Short labels (e.g. "None") no longer create a larger-than-expected gap due to the default minimum widget width.

Documentation

  • Updated module and class docstrings across app.py, bind_dialog.py, and i18n.py to reflect all v2.2.0 additions.

v2.1.0 — Internationalization (EN/PT)

09 Mar 22:42

Choose a tag to compare

What's New

This version adds full bilingual support — Portuguese and English — with
dynamic language switching directly in the interface, no manual restart needed.


Added

  • Internationalization (EN/PT) — the entire JoyBind interface has been
    translated to English. Language is selectable via [EN] [PT] buttons in
    the window header; switching saves the preference and restarts the app
    automatically.
  • i18n.py module — PT/EN dictionaries with ~150 strings, t(key)
    translation function with formatting support, and helper functions for
    language-aware lists and dictionaries (kb_suggestions, step_action_labels,
    analog_type_opts).
  • Persistent language preference — saved as "language" key in
    settings.json under %APPDATA%\JoyBind\; default: English ("en").

Changed

  • Default application language changed from Portuguese to English.
  • Key suggestion strings, sequence action labels, and analog type options are
    now instantiated per dialog (instead of module-level constants), ensuring
    correct updates when switching language at runtime.
  • README.md fully translated to English.
  • Controller panel screenshot updated to reflect the English interface.

Commits

  • d467419 feat: EN/PT internationalization with language selector in header
  • aeddc20 docs(changelog): complete v2.1.0 changelog entry

v2.0.0 — Primeiro lançamento estável

28 Feb 12:36

Choose a tag to compare

🎮 JoyBind v2.0.0 — Primeiro lançamento estável

Primeira versão oficial não pré-release. Esta versão consolida todas as funcionalidades do JoyBind em um produto estável e pronto para uso diário.


✨ Novidades

Modos de repetição automática

  • Modo Macro — segure um botão do controle e a ação de teclado/mouse dispara repetidamente no intervalo configurado. Ideal para auto-click, trocar item, spam de habilidade.
  • Macro de Sequência — sequências de ações também repetem em loop enquanto o botão estiver pressionado.
  • Segurar enquanto pressionado — mantém a tecla segurada enquanto o botão do controle estiver pressionado e solta automaticamente ao soltar.

Novos tipos de bind

  • Scroll do mousescroll_up e scroll_down mapeáveis diretamente a botões do controle.
  • Mouse4 e Mouse5 — botões laterais do mouse agora mapeáveis e capturáveis no wizard.
  • Tipo "Nenhuma" — mapeia um botão sem vincular ação (reservar posição no layout).

Melhorias no BindDialog

  • Botão Limpar — remove bind e entrada de layout com um clique.
  • Botão Mapear botão — captura o botão físico do controle diretamente na janela de bind.
  • Captura de scroll_up/scroll_down no botão Capturar.

Interface

  • Tiles exibem prefixos: para Macro, para Segurar enquanto pressionado, para Nenhuma.

🔧 Correções

  • Compatibilidade com emuladores — input de mouse agora usa SendInput com WM_MOUSEMOVE e hold_ms; resolve input ignorado em emuladores Qt (Citra, RetroArch).
  • Release de botão implementado para botões digitais, gatilhos (L2/R2) e D-pad — necessário para Macro e Segurar funcionarem corretamente.

📦 Instalação

Baixe o JoyBind.exe abaixo e execute — sem instalação necessária.

Requisito: Visual C++ Redistributable (já presente na maioria dos PCs com Windows 10/11).

JoyBind v1.1.1

24 Feb 02:52

Choose a tag to compare

JoyBind v1.1.1 Pre-release
Pre-release
v1.1.1 — Apagar preset, ícone EXE com logo, build auto-admin

JoyBind v1.0.0

23 Feb 21:48

Choose a tag to compare