sábado, 19 de setembro de 2026

🎮 GBS-Control PT-BR

image image

Versão brasileira e aprimorada do firmware do upscaler Tvia Trueview5725 (ESP8266 / Wemos D1 mini)

Mantida por Willian Nascimento (Maniaco Game Room)

Tradução completa para PT-BR, sistema de perfis com automações avançadas, novos ícones para o display OLED e correções profundas no sistema de arquivos. Desenvolvido para a comunidade de hardware retro no Brasil.


📊 Números da Versão

  • Firmware Otimizado: ~898 KB (86% do limite de 1.044.464 bytes)
  • Customização: 56 ícones de console, 51 animações de protetor de tela
  • Capacidade: 72 slots de perfil
  • Visual: 6 temas de cor, 2 idiomas integrados na WebUI

🌍 Tradução e Redesign da Interface (WebUI)

Todo o ecossistema do firmware foi localizado e redesenhado, entregando uma experiência 100% nativa e agradável:

  • Tradução e Seletor de Idioma: WebUI (abas, textos de ajuda, alertas e erros) e menu OLED traduzidos. O seletor (Português/English) aplica o inglês sobre o texto em português via dicionário exato (~110 entradas).
  • Boot Logo Customizado: Arte própria do projeto no lugar da tela de inicialização padrão.
  • Design Aprimorado: Cabeçalho novo, painéis escuros com títulos em barra metálica e botões com LED que acendem na cor do tema. Paginação adaptativa com base na altura da tela, facilitando o uso no celular.
  • Temas de Cor: 6 opções baseadas em variáveis CSS (Padrão, Verde Fósforo, Synthwave, Âmbar CRT, Rubi Famicom, Roxo GameCube).
  • Cards de Perfil: Arte do console ao fundo com contorno neon no perfil selecionado, sistema de busca inteligente (ignora acentos e maiúsculas) e contador de perfis.

⚙️ Base Técnica & Sistema de Arquivos

  • Migração de SPIFFS para LittleFS: O sistema de arquivos foi modernizado para o formato atual do ESP8266, garantindo maior confiabilidade. Atenção: A primeira inicialização formata a área de dados (é necessário backup prévio).
  • Persistência Segura: O arquivo /preferencesv2.txt é sequencial. Novos campos foram acrescentados com valores padrão seguros para não quebrar backups existentes. Arquivos auxiliares por slot mantêm o mesmo padrão.

💾 Sistema de Perfis (Presets) e Automações

O gerenciamento foi reescrito para suportar até 72 slots (A-Z, a-z, 0-9 e símbolos), ordenados alfabeticamente tanto na WebUI quanto no OLED.

Recurso Como Funciona
Origem de Vídeo por Preset Ao salvar, você escolhe a entrada (SCART / VGA / Componente / RGBS). É uma etiqueta informativa exibida no card (o chip não distingue eletricamente).
Perfil de Inicialização Força um slot específico a ser carregado sempre que o aparelho liga, ignorando o "último usado".
Aviso de Mudança O display OLED exibe "Formato mudou" seguido da nova resolução por 3 segundos ao alternar presets.

📺 Menu OLED & Ícones de Console

Nova funcionalidade criada, seletor de icone para presets, ideal para quem gerencia coleções grandes com switches de vídeo.

  • Diponiveis 56 ícones: O seletor permite escolher entre (controles, logos e gabinetes) de sistemas Nintendo, Sega, NEC, SNK, Sony, Microsoft, Atari, Panasonic 3DO, entre outros.
  • Processamento de Imagem: Cada arte teve recorte de bordas, fundo transparente e redimensionamento exato (40x40px). Na WebUI, um fundo claro atrás do ícone garante contraste no tema escuro.
  • Protetor de Tela Inteligente:
    • Modo Nome: O nome do preset passeia pela tela. A fonte diminui dinamicamente (URW Gothic 20/14, DejaVu Mono 12/10) usando a largura do texto para evitar cortes (ex: "Super Nintendo").
    • Modo Ícone (Bounce): 51 dos 56 ícones ganharam animação de "quicar" de 4 quadros (32x32px, 1-bit). Conversão feita com threshold adaptativo (método de Otsu) e contorno automático de silhueta para não sumir no fundo preto. (5 ícones complexos usam o Modo Nome como fallback).
  • Status Ativo: Nome e ícone do preset ativo ficam fixos na tela principal, com rolagem alinhada à esquerda para nomes longos.

🛠️ Correções de Bugs (Bugfixes)

Clique para expandir as correções técnicas aplicadas
Bug Original Causa Raiz Solução Aplicada
OLED não achava presets Dessincronia de sistema de arquivos (OLED lia SPIFFS, WebUI lia LittleFS). Unificação total no LittleFS.
Slot quebrava no 27º perfil Código calculava slot por 'A' + índice (limitado a 26 posições). Implementada tabela estática de 72 caracteres (slotIndexMap) no firmware inteiro.
Origem de vídeo falhava no card 3 requisições paralelas excediam o limite de conexões do ESP8266. Requisições sequenciadas com rotina de retry.
Ganho ADC "sem efeito" O resync restaurava o padrão de fábrica se não houvesse preset carregado. Valores ajustados de ganho agora sobrevivem e são restaurados após o reset.
Overflow horizontal mobile A tag <fieldset> ignorava propriedades grid/flex e passava da tela. CSS ajustado na interface (min-width: 0 + grid minmax).

💻 Ferramentas e Documentação

  • GBSC Updater: Programa próprio para Windows (ou Python em qualquer OS). Atualiza via Wi-Fi (OTA) informando apenas o IP, ou grava via USB na primeira instalação. Lida automaticamente com o serviço OTA do ESP8266 e contorna o Firewall do Windows.
  • Pipeline de Mídia: Script make_icon_animation.py que gera automaticamente o código em C++ (OLEDIconAnimations.cpp) a partir dos assets.
  • Documentação Inclusa: Manual de Uso, Tutorial de Instalação passo a passo (Wi-Fi/USB) e este descritivo técnico.

📌 Pendências Conhecidas (Roadmap)

  • Offset por Canal (Nível de Preto): A ideia de ajustar o offset por canal ADC está mapeada (registradores já existem no código), mas a interação com a rotina de auto-calibração precisa de mais testes.
  • Automação para Switches SCART / Componente: Em fase de mapeamento/desenvolvimento.
  • Menu OLED: Atualmente restrito ao PT-BR (textos baseados em bitmaps pré-desenhados).

domingo, 13 de setembro de 2026

🚨 NOVIDADE ABSURDA PRO GAMECUBE! 🚨

O Swiss agora está traduzido para PT-BR 🇧🇷 e rodando com Capas nos Jogos e Apps! 🎮🖼️ 


Se liga nesse vídeo rápido demonstrando como tá ficando a nova interface. 




Deu bastante trabalho, mas o resultado fala por si só. 🤩