Skip to content

BlueRetro - PlayStation 1 Custom Edition (v0.7.3)

Choose a tag to compare

@Schickacka Schickacka released this 26 Oct 18:20
· 26 commits to master since this release

BlueRetro — PlayStation 1 Custom Edition (v0.7.3)

Tag: v0.7.3 (o nome v0.7.3 já pertence a uma tag antiga do
upstream e não é tocado).

Esta versão tem uma correção funcional e uma refatoração sem mudança de
comportamento
. Nada de clock/timing do SIO0 foi alterado.


Correção: máscara de turbo no Multitap Virtual (MT_SLOT_1)

Com o Multitap Virtual ativo na Porta 1, a Porta 2 atende o slot 4
(Jogador 5) pelo caminho direto do driver SPI. A máscara de turbo era gerada
com port->id em vez de port->mt_first_port, então era gravada no buffer do
slot 1 (Jogador 1B) — que é apenas recalculado a cada quadro — e o slot 4 nunca
recebia máscara alguma. Resultado: turbo e auto-fire não funcionavam no
Jogador 5
.

-                        ps_gen_turbo_mask(&wired_adapter.data[port->id]);
+                        ps_gen_turbo_mask(&wired_adapter.data[port->mt_first_port]);

Sem multitap, mt_first_port é igual a port->id (0 e 1), então o uso normal de
1 ou 2 jogadores não muda. MT_SLOT_2 e MT_DUAL usam o laço do multitap, que
não foi tocado.

Refatoração: acesso ao LED indicador de modo

As rotinas de status analógico/digital passaram a usar port->led_pin em vez de
recalcular o índice em ps_ctrl_ports[]. O pino resolvido é o mesmo — sem
mudança de comportamento
.

O que NÃO mudou

  • clock/timing do SIO0;
  • leitura do DTR: a dupla amostragem já existia na v0.7.2 nas duas portas;
    nesta versão só foi adicionado um comentário explicativo;
  • rumble, Memory Card virtual, identificação de controles, modo analógico,
    deadzone e saturação.

Ajustes de deadzone, saturação ou timing do SIO exigem medição em hardware e
não foram feitos aqui.


Arquivos

arquivo bytes SHA-256
BlueRetro_hw1_playstation.bin 557.712 8abb26d99b49054d6c46a24420f99a8021347247688fe55acaf1e9b6ff45ba94
BlueRetro_PS1_Custom_v0.7.3_Package.zip 359.802 5b6f210efe7596cb8a8396ac263458ba84287d58a1197e63f9724131b58112c8

Build: CI run 40344034355 (commit 5e54482), ESP-IDF
v5.5-dev-698-g030c9957db. O firmware reporta v0.7.3 ps1-custom.

Gravação

Bluetooth / OTA (recomendado, sem abrir o console): ligue o PlayStation 1
com os controles Bluetooth desligados e execute flash_bluetooth_ota.bat
(requer pip install bleak). Alternativa no navegador: blueretro.io/ota.html
com o arquivo BlueRetro_hw1_playstation.bin.

Cabo USB: conecte o ESP32 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