MiSTer FPGA: Core do Atari 2600 atualizado! E um pouco sobre latência.


O Atari 2600 sempre foi um de meus consoles de videogame favoritos. Foi meu primeiro contato com videogames e o primeiro que eu tive.

Quando montei o meu MiSTer, já estava ciente de que o núcleo do Atari 2600 ainda tinha diversos problemas, e que ninguém estava trabalhando nele. Ainda não estava no ponto de substituir meu console original.

Ontem a noite, liguei o MiSTer para testar alguns núcleos de arcade novos, iniciei uma transmissão ao vivo e na hora de rodar o script de atualização, para minha surpresa, o núcleo do Atari 2600 estava atualizado.

As novidades:

Atari 2600:
- Rework paddle control, support for mr.Spinner.
- Fix in timer and new audio module from PhantombrainM.
- Fix the video in some games.
- Add UA mapper (Pleiades).
- Update the framework.

Com essa atualização muitos jogos que não funcionavam passaram a funcionar. Alguns exemplos são: Condor Attack, Name This Game, Smurf: Rescue in Gargamel’s Castle, e Tapper.

Condor Attack é um jogo problemático de se jogar em TVs LCD com o hardware original, mesmo com o Framemeister ou o OSSC, por conta da taxa de atualização fora do padrão. Tapper também é, por usar 480i em vez de 240p como a grande maioria dos (ou talvez todos os outros) jogos de Atari 2600. Inclusive já apresentei uma solução aqui no Skooter Blog. Fico feliz que o MiSTer agora suporte ambos, sem modificações.

Tapper - Atari 2600, no MiSTer FPGA.

Tapper – Atari 2600, no MiSTer FPGA.

Outros jogos tinham problemas no áudio, como Enduro, Pitfall e Cosmic Ark. Este último não era jogável, pois faltava o som de alerta de quando um asteroide estava em rota de colisão com a nave. Agora estão todos funcionando perfeitamente.

Cosmic Ark - Atari 2600, no MiSTer FPGA.

Cosmic Ark – Atari 2600, no MiSTer FPGA.

Confira o vídeo da minha transmissão ao vivo. Infelizmente uma boa parte dele ficou sem som, pois aparentemente há algum bug na Elgato Game Capture HD que faz com que ela não pegue o som do MiSTer em algumas ocasiões:

E agora vamos falar um pouco sobre latência. Muita gente na comunidade do MiSTer tem uma certa obsessão por latência baixa, jogando apenas com controladores com fio e com protocolos alternativos como LLAPI e SNAC, através de acessórios.

Mas quando me perguntam se jogar com um controlador Bluetooth causa latência perceptível… eu digo que na maioria dos casos a resposta é não. Afinal, consoles modernos com o Playstation 4 usam Bluetooth também, e não notamos latência nele. Ainda que a versão mais nova do DualShock 4 funcione também com fio, para atender os “gamers profissionais”.

Por outro lado, pode ser agumentar que muitos jogos antigos eram mais focados em reflexo rápido, e aí a latência pode fazer diferença. Note que o fato da latência não ser perceptível não implica que ela não possa prejudicar o jogador, ainda que ele não esteja percebendo isso conscientemente. Enfim, nesses jogos de reflexo rápido, a latência do controlador pode fazer a diferença, principalmente se somada com a latência da TV.

E ontém eu senti na pele esse problema ao jogar Cosmic Ark e não conseguir ter a reação rápida que precisava. Este é um jogo em que é necessário ser muito rápido no reflexo na parte em que a nave está no espaço, com asteróides surgindo por todos os lados. Acabei não indo tão longe quanto normalmente vou.

Mas a culpa nesse caso é só da latência Bluetooth? Não, não é. Vários fatores foram combinados no meu caso, de modo que a latência do 8BitDo m30 Bluetooth era apenas uma delas.

O fator mais relevante do meu baixo reflexo provavelmente era o fato de eu estar jogando com um D-Pad. O D-Pad do 8BitDo m30 é ótimo, serve para muitos sistemas. Mas para o Atari 2600 eu gosto mesmo é do bom e velho joystick CX40. Não tem comparação, o joystick permite um reflexo bem mais rápido que qualquer D-Pad.

Felizmente dá para usar o joystick CX40 no MiSTer, bastando usar um adaptador USB. E configurando o polling do USB para 1ms (tem um script para isso), a latência do joystick é quase nula.

Outro fator relevante aqui é o framebuffer do MiSTer que eu mantenho desligado (vsync_adjust=2) em quase todos os núcleos, mas o Atari 2600 infelizmente é exceção. Isso porque no Atari 2600, ao contrário de outros sistemas, cada jogo configura sua taxa de atualização como bem entende. Na época das TVs CRT isso não era problema, pois elas são bem tolerantes com taxas de atualização fora do padrão. Mas as TVs LCD são mais exigentes.

Jogar com o Atari 2600 sem framebuffer é possível na maioria dos jogos, mas em alguns fica impossível, por conta de taxas de atualização muito fora do padrão ou jogos que ficam trocando a taxa de atualização durante o jogo (Frontline é um exemplo), causando perda de sincronia.

Note que esse problema também afeta quem joga com o console original usando um Framemeister ou um OSSC. Mas no MiSTer dá para contornar isso usando o framebuffer (vsync_adjust=0). O efeito colateral é que temos aí uma latência extra que não é bem vinda em jogos como o Cosmic Ark. Idealmente deveríamos poder ativar ou desativar o framebuffer por jogo, talvez com uma opção no próprio núcleo, como existe no núcleo de Game Boy Advance. Quem sabe no futuro…

Por fim, temos a latência da própria TV LCD. Mas essa eu vou desconsiderar como culpada pelo meu mau desempenho no Cosmic Ark, pois a minha comparação está sendo feita com o meu desempenho usando console original + OSSC na mesma TV LCD. Assim, a diferença deve estar no conjunto D-Pad + Bluetooth + Framebuffer.

Agora que o núcleo do Atari 2600 está mais maduro, vou jogar mais com ele, mas certamente vai ser com um joystick CX40 + adaptador USB. Controladores sem fio vão ficar só para os demais núcleos.

Compartilhe o artigo com seus amigos se você gostou 😉 . O Skooter Blog precisa de sua ajuda na divulgação para continuar existindo.

Atualização (04/05/2023): O vídeo da transmissão ao vivo foi removido pelo Youtube quando removeram nosso antigo canal. Confira a playlist completa do Atari 2600 no canal novo:

0 0 votos
Article Rating
(Visitado 10 vezes, 1 visitas hoje)

Link permanente para este artigo: https://www.skooterblog.com/2020/03/31/mister-fpga-core-do-atari-2600-atualizado-e-um-pouco-sobre-latencia/

Inscrever
Notificar sobre
guest

2 Comentários
mais velhos
mais novos mais votados
Inline Feedbacks
Ver todos os comentários
Emerson N. Oliveira

Skooter, nesse FPGA do 2600 há alguma forma de ligar os cartuchos originais? Fiquei interessado no projeto. Tenho alguns cartuchos do Atari aqui em casa mas não possuo o console. Seu blog é uma excelente fonte de informação. Abraço.

2
0
Gostaríamos de saber o que você pensa, deixe seu comentáriox