Repository navigation
BlueRetro — PlayStation 1 Custom Edition (v0.7.5.1)
Tag: v0.7.5.1
Esta versão implementa a elevação do piso operacional e remapeamento linear do atuador de baixa frequência (LF / motor pesado) para controles PlayStation sem fio, garantindo resposta tátil imediata, nítida e perceptível em controles paralelos/clones e motores compactos de 3.7V sem comprometer o teto máximo de impacto nem a zona morta contra ruídos de fundo residuais do PS1.
Novidades e Melhorias
1. Elevação do Piso Operacional do Motor Pesado (64..255 → 85..255)
- Desafio Eletromecânico em Controles Paralelos: Controles DualShock 4 e DualSense clones/paralelos frequentemente utilizam motores compactos de 3.7V com atrito estático e inércia mecânica significativamente maiores nos mancais. Em jogos como Resident Evil 3, comandos sutis de feedback de baixa amplitude (em torno de 64 decimal) ou pulsos de curtíssima duração (1 a 2 quadros durante rajadas de tiros pontuais, passos ou batimentos) não geravam torque suficiente para vencer o atrito estático a tempo, resultando em sensação de atenuação física ou ausência da vibração.
-
Zona Morta Preservada (< 64 → 0x00): Comandos com valores inferiores a
0x40(64 decimal) permanecem estritamente silenciados como repouso absoluto (0x00), preservando a filtragem cirúrgica contra o ruído elétrico residual de fundo emitido pelos jogos de PS1 nos registradores de feedback. -
Remapeamento Linear e Contínuo: Para qualquer comando ativo (
$\ge 64$ ), a intensidade é remapeada de forma proporcional e contínua do intervalo original$[64, 255]$ para$[85, 255]$ através da fórmula com arredondamento estático:
$$\text{Power}_{\text{LF}} = 85 + \left\lfloor \frac{(\text{raw} - 64) \times 170 + 95}{191} \right\rfloor$$ -
Comportamento Resultante:
- No limiar inicial (
$\text{raw} = 64$ ): o motor recebe imediatamente potência 85, fornecendo torque de partida instantâneo capaz de girar o contrapeso físico sem atraso mesmo em pulsos de 1 único quadro; - No teto máximo (
$\text{raw} = 255$ ): o motor atinge rigorosamente 255 (100% de saturação física para explosões e impactos fortes); - A faixa dinâmica intermediária cresce linearmente com taxa de transferência suave (
$\approx 0{,}89$ ), mantendo a fidelidade sensorial de toda a biblioteca de jogos.
- No limiar inicial (
Arquivos e Hashes de Integridade
| Arquivo | Tamanho (bytes) | SHA-256 |
|---|---|---|
BlueRetro_hw1_playstation.bin |
558,192 | 3789773df3c000f92e2b9564f0dfeacc43bc2393b8fc98f1f4b86398c24c3749 |
BlueRetro_PS1_Custom_v0.7.5.1_Package.zip |
361,800 | e43ec7ed9688f1519d776fcc168f6f2fd1545d88ffde101907b94d0f55dedd12 |
BlueRetro_PS1_Custom_v0.7.5.1_Source.zip |
994,381 | 8ee9083132b70c04498532cebc367dc9fe2ba4fb2f9ed81245bdea09286892d9 |
Build: CI run 40976514538 (commit 13da20f), ESP-IDF v5.5-dev-698-g030c9957db. O firmware reporta v0.7.5.1 ps1-custom.
Gravação e Atualização
Bluetooth / OTA (recomendado, sem abrir o console):
- Ligue o PlayStation 1 com os controles Bluetooth desligados.
- Execute
flash_bluetooth_ota.batoupython ble_ota_update.py BlueRetro_hw1_playstation.bin(requerpip install bleak). - Alternativa via navegador web: acesse
blueretro.io/ota.htmle carregueBlueRetro_hw1_playstation.bin.
Cabo USB: Conecte a placa ESP32 ao computador e execute flash_windows.bat.
Manual (esptool):
python -m esptool --chip esp32 --port COMx -b 921600 --before default_reset \
--after hard_reset write_flash --flash_mode dio --flash_size 4MB --flash_freq 40m \
0x1000 bootloader.bin 0x8000 partition-table.bin 0xd000 ota_data_initial.bin \
0x10000 BlueRetro_hw1_playstation.bin