Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9
Tópicos › Quinto ano › MAME: drivers, propostas e organização do código
O grupo acompanhou o driver esqueleto do Zeebo, o port do OpenLara para o console, e trabalhos de emulação de impressoras, plotters e LaserDisc. Felipe "Juca" Sanches compartilhou PRs dele e de outros desenvolvedores. Discutiram-se a reorganização do código-fonte em diretórios por fabricante, artworks 3D a partir de escaneamento e propostas como ROMs na nuvem, interpolação de quadros e suporte a Flash.
Quinto ano: novembro de 2021 a outubro de 2022
Shideravan defendeu priorizar um driver para o Zeebo e outros equipamentos brasileiros. O PR de David Haywood trouxe o Zeebo como máquina não funcional, e Shelton Ribeiro compartilhou o OpenLara rodando no console.
Shideravan defendeu priorizar um driver para o Zeebo e outros equipamentos brasileiros, já que dificilmente alguém de fora os emulará. Com Ricardo Bánffy, discutiu os motivos do fracasso do Zeebo: preço, hardware de celular, jogos limitados pela distribuição via rede celular, concorrência com jogos piratas de PS2 e o programa que baixou o preço dos computadores populares.
Felipe "Juca" Sanches indicou a Shideravan o PR #7142 de David Haywood (Haze), que traz o Zeebo como máquina não funcional. Shideravan notou que o PR dá créditos a Triple Oxygen e usa a ROM 1.1.2_spare.bin que eles já usavam, e perguntou se Felipe já repassara a documentação reunida; Felipe respondeu que ainda não, mas que podiam fazer isso. Mais tarde Shideravan e Shelton Ribeiro discutiram a dificuldade de emular o ARM11 com bom desempenho no MAME e a ideia de que um port do OpenLara para o Zeebo poderia ajudar a completar o driver.
Shelton Ribeiro compartilhou uma versão de testes do OpenLara (Tomb Raider) para o Zeebo, depois o link de uma versão que roda no console, e um vídeo do jogo rodando no 32X.
Felipe comentou a saída de vídeo da LaserWriter, a reprodução por Ramiro Polla da folga da correia da Epson ActionPrinter, o PR de fabiodl com a plotter Sega SP-400 e a emulação de LaserDisc do Time Traveler, citando seus PRs do Zezinho/ITA-II e do Videokê.
Felipe "Juca" Sanches comentou o progresso na saída de vídeo da LaserWriter no MAME. Shideravan sugeriu gravar as páginas impressas em arquivo .cbz. Felipe contou que Ramiro Polla, ao emular a Epson ActionPrinter/LX-800, descobriu que o firmware compensa a folga da correia do cabeçote e reproduziu essa folga no emulador. Também se falou da emulação para rodar CD-ROMs antigos de enciclopédias.
Felipe "Juca" Sanches compartilhou um vídeo da plotter Sega SP-400 e o PR de fabiodl que adiciona sua emulação ao MAME. Erin Pinheiro observou que ela usa o mecanismo ALPS, o mesmo de uma plotter com interface RS-232 que ela tem.
Felipe "Juca" Sanches compartilhou o vídeo do trabalho em andamento na emulação de LaserDisc do Time Traveler (Sega, 1991) no MAME e citou seus PRs do Zezinho/ITA-II e do Videokê VMP3700. Depois destacou o PR de MooglyGuy que corrige a emulação HLE do LDV-4200, com a explicação técnica sobre os comandos multi-speed e o Stop Marker.
Shideravan retomou a proposta de Felipe de artworks 3D, com fotogrametria e um repositório de modelos escaneados. Foram citados os modelos do Museu do Computador no Sketchfab e um modelo 3D do HitBit HB-101.
Shideravan retomou a proposta de Felipe "Juca" Sanches de artworks 3D no MAME e defendeu que o projeto se antecipe à realidade virtual, usando fotogrametria, e que se crie um repositório de modelos escaneados de hardware real. Felipe indicou a issue #388 do MAME e sugeriu começar por uma coleção de scans e uma demo à parte, sem mexer no código do MAME. Ele também contou que foi a busca por um scanner 3D na USP, em 2015, que o levou ao professor João José Neto e ao resgate da documentação do Patinho Feio. Foram discutidos celulares com câmera ToF, o app scann3D e o Kinect (sugerido por RicBit), e houve uma digressão sobre modelos de aeronaves feitos à mão versus CAD.
Ricardo Bánffy encontrou a conta museudocomputador no Sketchfab, com modelos 3D, e identificou que é mantida pelo pessoal do Valle.
Felipe compartilhou um repositório com o modelo 3D do MSX HitBit HB-101.
Foram comentados o driver incompleto do VT520, o PR de andlabs com a emulação do Yamaha DX100, o PR de Felipe com o MB4391, as correções no PowerVR2 vindas do port do DOOM para a Naomi e as melhorias de outro desenvolvedor no driver do Gran Trak 10, que Felipe havia iniciado.
Ricardo Bánffy compartilhou a issue do Windows Terminal sobre a sequência de escape DECPS (som em terminais DEC). Felipe "Juca" Sanches observou que o driver do VT520 no MAME está muito incompleto e citou o comentário do código sobre o chip custom TC160G41AF, que talvez também gere o áudio. Ricardo comentou que o pessoal do VTE e do Windows Terminal estava estudando o comportamento de outros VTs já emulados com sixels e lamentou que nenhum dos dois grupos queira implementar smooth scrolling.
Felipe "Juca" Sanches compartilhou a quinta parte da série de Ken Shirriff sobre engenharia reversa do chip do Yamaha DX7 e o pull request de andlabs que implementa a maior parte da emulação do Yamaha DX100 no MAME.
Felipe "Juca" Sanches compartilhou seu pull request no MAME que implementa o chip MB4391 como dois MC3340 em um único encapsulamento DIP16.
Sobre um post da Hackaday, Felipe comentou que o autor do port do DOOM para a placa Naomi vem reportando no MAME problemas de emulação descobertos durante o desenvolvimento, como no PR #9745 de correções de renderização do PowerVR2.
Felipe informou que alguém abriu um PR no MAME que melhora a emulação do Gran Trak 10 da Atari (1974), que ele havia começado anos antes; o título do PR cita pista e gráficos dos carros funcionando.
Felipe "Juca" Sanches conta que o driver de Gran Trak 10 (Atari, 1974), cuja simulação de circuito discreto ele havia iniciado em julho de 2018, recebeu melhorias de outra pessoa. O carrinho e parte da pista já aparecem na tela, embora o driver continue incompleto.
O MAME eliminou src/mame/drivers e passou a agrupar drivers por fabricante. O emulador do Patinho Feio foi para src/mame/usp/, e o grupo discutiu os critérios da nova organização.
Felipe notou que o MAME eliminou o diretório src/mame/drivers e passou a organizar os drivers em subdiretórios por fabricante, com src/mame/misc para os demais e src/mame/skeleton para drivers iniciais. Shideravan questionou a organização e depois viu que a justificativa aparentemente era facilitar a escrita de scripts Lua.
Com a nova estrutura de diretórios do MAME, o emulador do Patinho Feio passou para src/mame/usp/. Felipe e Shideravan discutem o critério da nova organização (fabricante ou projetista, sega e segacons separados) e o caso do Interton VC 4000 e do 1292 APVS, cuja relação de pai e clone no MAME não segue a cronologia. Depois Felipe compartilha o PR #10035 do MAME, que Shideravan relaciona à discussão.
Foram discutidas a leitura de ROMs na nuvem, cuja dependência de servidores remotos Felipe considerou contrária à missão de preservação, a interpolação de quadros com DLSS 3 como plugin, a emulação da urna eletrônica e o suporte a Flash.
Shideravan propõe que o MAME carregue ROMs e CHDs de armazenamento em nuvem. Felipe argumenta que depender de servidores remotos contraria a missão de preservação. RicBit, L. e Felipe apontam que interceptar open() ou montar a nuvem como sistema de arquivos (FUSE) já resolve isso sem mudar o MAME, e Shideravan relata ter testado com o Google Drive.
Shideravan critica a baixa fidelidade do simulador de votação do TSE e sugere emular a urna eletrônica no MAME a partir dos modelos mais antigos. L. lembra de uma urna de primeira geração que ficava num centro acadêmico da Unicamp. kretcheu e Shideravan discutem se abrir o código-fonte traz risco à segurança, e Shideravan comenta a apresentação dos códigos-fonte feita pelo TSE.
Shideravan perguntou se a geração de quadros intermediários do DLSS 3 da NVIDIA poderia aumentar o framerate de jogos antigos em emuladores. Ele sugeriu que, no MAME, isso entraria como plugin, e disse que poderia levar a ideia ao pessoal do ares. Com Augusto Almeida, discutiu colisões, a necessidade de suporte específico em cada jogo e o preço da placa no Brasil. RicBit comparou o recurso ao motion compensation das TVs e disse que em jogos 2D seria preciso interpolar coordenadas, não quadros. No dia seguinte sugeriu uma variação de optical flow e disse que achava que ia implementá-la para ver como ficava.
L. compartilhou o Ruffle, player de Flash escrito em Rust com plugin para Firefox e Chrome, útil para a arqueologia de conteúdo do começo dos anos 2000. Leonardo Roman sugeriu que o MAME suportasse Flash. Shideravan apoiou, lembrando que o MAME já tem tocador de BGM e MIDI. L. achou a ideia boa, mas não sabia se seria viável, já que o Flash não é uma máquina real.