Projetei meu próprio dispositivo portátil de jogo baseado em um microcontrolador AVR e em um pequeno monitor OLED.
Comecei com uma tela monocromática de 128x64 pixels e posso desenhar confortavelmente mais de 60 quadros por segundo.
Recentemente, reformulei-o para usar um RGB OLED de 128x128 pixels sem realmente pensar muito apenas para descobrir que só conseguia atingir cerca de 4 FPS. Após algumas reflexões e cuidadosas refatorações, posso chegar a ~ 12fps se não me importo muito em fazer outra coisa!
Minha pergunta é: como um dispositivo como o GBA (Game Boy Advance) atingiu uma taxa de quadros de quase 60fps? Pensei em ter um 'processador gráfico' separado, mas percebi que ainda estaria com um gargalo ao transferir os dados da tela para isso.
Também me perguntei sobre o uso da interface paralela vestigial de 8 bits que a maioria dessas telas costuma ter, o que pode gerar uma velocidade de 8x, exceto que os MCUs modernos não tendem a ter interfaces paralelas de hardware, como fazem para serial e bit- bater provavelmente consumirá muito do ganho de velocidade.
Que outras opções existem?
Atualmente, estou usando um ATmega1284P conectado a um controlador OLED SSD1306 via USART-SPI. Essa é a versão monocromática.
A tela colorida era um SSD1351, não originalmente conectado ao hardware SPI. Eu não estava convencido de que isso faria diferença suficiente , é muito lento no geral
Sei que posso obter MCUs mais rápidos, mas quero saber que outras opções posso explorar - o processador GBA é muito mais lento que o meu 1284!