Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9
Tópicos › Quarto ano › Comunidade de emulação, MAME e ares
O grupo discutiu o funcionamento e a cultura da comunidade de desenvolvedores do MAME, a comparação com o ares e a falta de material em português sobre desenvolvimento de emuladores. Essa falta de material levou a um bate-papo ao vivo e a um debate sobre ensinar git. Membros começaram seus próprios emuladores, e vários drivers e propostas para o MAME foram comentados.
Quarto ano: novembro de 2020 a outubro de 2021
A partir de uma matéria da Retro Gamer, Juca e Shideravan criticaram o comportamento entre desenvolvedores no MAMEDEV. Shideravan propôs tutoriais em português; Juca fez um bate-papo ao vivo com ele, e o grupo debateu se é preciso ensinar git e como abrir boas issues e pull requests.
Felipe "Juca" Sanches compartilhou uma edição de julho de 2021 da Retro Gamer. Shideravan perguntou se o tema da matéria era apenas quem colaborou com os Game & Watch. A conversa passou às críticas de Juca e Shideravan ao comportamento entre desenvolvedores no MAMEDEV e à saída de colaboradores do projeto por esse motivo. Shideravan disse preferir contribuir com o ares, e Juca indicou o blog do Haze. Deleted Account e Ismael Luceno comentaram que esse tipo de comportamento também ocorre em equipes de trabalho e afasta mulheres desenvolvedoras.
Shideravan observou que há pouco material em português sobre desenvolvimento de emuladores e propôs um canal com tutoriais: noções de programação e de C, CHIP-8, NES, Game Boy e Master System, além de como contribuir com projetos como o MAME. Juca defendeu focar em emulação, sem ensinar C e git. Juca propôs uma live aberta ao grupo no Happy Hacking Video Blog sobre educação para o desenvolvimento de emuladores. Naquele dia, fez apenas um bate-papo com Shideravan, publicado no YouTube, e ficou de marcar outra conversa com o grupo.
Pedro de Medeiros e Ismael Luceno discutiram se é preciso ensinar git, compararam o git com o SVN e o CVS e debateram se pesa mais o processo ou a ferramenta. Juca considerou que já existe muito material sobre git e que o foco deveria ser a emulação. Shideravan propôs ensinar a abrir boas issues (com o MD5 da ROM e a descrição do ambiente) e a fazer pull requests. Deleted Account sugeriu um estudo aprofundado da estrutura do código-fonte e do makefile do MAME.
Felipe convidou Shideravan a aprender desenvolvimento no MAME e contou como ganhou experiência. Também explicou a divisão entre src/mame/drivers e src/devices a partir do driver da TI-83.
Felipe "Juca" Sanches convidou Shideravan a aprender desenvolvimento no MAME e contou que começou emulando uma impressora de cheques e emulou pela metade vários aparelhos para ganhar experiência, antes de chegar a um que quer emular por completo. Um participante relatou um emulador de CHIP-8 em C parado na geração de som. Felipe comparou o CHIP-8 a uma máquina virtual, como a VM do Another World que implementou no MAME.
Ao receber uma TI-83, um participante soube que o driver ti85.cpp do MAME também emula a TI-83 Plus, marcada como "not working", e Felipe "Juca" Sanches sugeriu melhorá-lo. Felipe explicou que src/mame/drivers emula aparelhos inteiros e src/devices emula chips individuais. Sobre chips com várias funções, Pablo Vasques Bravo-Villalba observou que eles aparecem em mais de um lugar, e Felipe citou seu port da VM do Another World, que divide CPU, som e vídeo.
Shideravan se apresentou como membro da equipe do Datassette, colaborador do MAME e ajudante no ares, e explicou os mappers do NES. Comparou depois a emulação de N64 no MAME e no ares e explicou as limitações do CHD v5 e a espera pela v6. Também comentou o estigma da pirataria sobre a emulação.
Shideravan se apresentou como membro da equipe do Datassette, colaborador do MAME e ajudante na implementação de mappers de NES no emulador ares; mencionou documentos de homologação do Zeebo na ANATEL com PDFs corrompidos. Explicou o que são mappers, o cabeçalho iNES e o NES 2.0. Citou o Mesen, de Sour, e as listas de compatibilidade que mantém no ares.
Um participante comparou como Brasil e países europeus lidam com propriedade intelectual, citando um vídeo de javidx9 que explica como dumpou a RAM de um jogo. Shideravan respondeu que quem desenvolve emuladores evita ser associado à pirataria, um estigma que atrapalha muitos projetos.
Shelton Ribeiro perguntou se o Nintendo 64, que roda alguns jogos do MAME via Everdrive, conseguiria rodar jogos mais pesados como Street Zero ou KOF 94. Também divulgou a segunda N64brew Game Jam.
Shideravan comparou o driver de Nintendo 64 do MAME, ainda incompleto depois de anos, com o núcleo de N64 do ares, que chegou perto de 100% de compatibilidade em meses. Disse ter contribuído com a lista de compatibilidade do ares e criticou o desempenho do MAME. Ele e Juca também comentaram a proposta de artwork 3D no MAME, parada há anos.
Shideravan explicou que o CHD nasceu no MAME para armazenar discos rígidos de arcade e que a versão 5 não representa subcanais, o que afeta discos de PlayStation PAL e de Sega CD. Disse que o ares, o PPSSPP e o PCSX2 aguardam a v6. Também defendeu um método de compressão mais moderno que o LZMA, como o zstd; Ismael Luceno respondeu que o LZMA ainda tem a maior compressão, mas é lento. Segundo Shideravan, a licença ISC do ares impede usar um decodificador GPL-3. Juca disse que vai precisar de ajuda com o boot por disquete do Itautec I7000.
Shideravan comentou a nova versão do ares, que emula mais de 300 jogos de Nintendo 64, e o anúncio da Nintendo de cobrar pelo plano do Switch com alguns jogos de N64. Criticou quem aproveita a ocasião para associar emulação a pirataria. Ismael Luceno lembrou as tentativas da Nintendo e da Sony de tornar emuladores ilegais.
L. escreveu um emulador de CHIP-8 em C, e Nano Gennari começou o n6502, emulador de 6502 em Python.
L. mostrou o emulador de CHIP-8 que escreve em C, com plano de reescrevê-lo em Rust para aprender a linguagem. A saída inicial estava errada por causa do opcode de desenho; dias depois o emulador já funcionava com a ROM de teste. Ismael Luceno perguntou se ele já havia pensado em um compilador de CHIP-8 para gcc/llvm, e L. mencionou Rust com wasm.
Nano Gennari começou seu primeiro emulador, de 6502, escrito em Python e inspirado nas conversas do grupo e em um vídeo. O objetivo é aprender como processadores funcionam e, talvez, chegar a um VIC-20 ou C64.
Foram comentados emuladores gerados proceduralmente, o trabalho sobre a placa B-21 do CPS1, o framework de netlists usado no GranTrak10, o driver de pesquisa do Yamaha DX7 de plgDavid e a ideia de emular máquinas de café e impressoras 3D com artwork 3D. Juca também propôs a palestra "Inventando moda com emuladores" à GambiConf.
L. compartilhou um artigo do Hackaday sobre emuladores gerados proceduralmente. Felipe "Juca" Sanches comparou a ideia a um driver do MAME e observou que o código não tinha sido publicado; L. descreveu o MAME como uma DSL para fazer emuladores.
L. compartilhou uma publicação de Loïc "WydD" Petit. Felipe "Juca" Sanches repassou o comentário de um desenvolvedor do MAME: havia antes um esquemático parcial da placa B-21 do Capcom CPS1, e o novo trabalho documenta como funcionam os circuitos CHECK1 e CHECK2 da área de segurança com bateria, que, segundo ele, o MAME provavelmente ainda não implementa.
L. compartilhou uma simulação do Pong em nível de circuito que mostra os subcircuitos funcionando em tempo real. Felipe "Juca" Sanches comentou que o framework de simulação de circuitos discretos do MAME permite fazer o mesmo, bastando transcrever a netlist e fornecer um SVG com os nomes dos sinais. Disse que o usou para fazer grande parte da descrição do GranTrak10 da Atari e indicou o arquivo da netlist. L. citou o MetroBoy, simulador do Game Boy em nível de portas lógicas.
Felipe "Juca" Sanches compartilhou o pull request do MAME com um skeleton driver modernizado do DX7 usado em pesquisa por plgDavid e contou que não seguiu com seu próprio rascunho para não atropelar esse trabalho. Depois compartilhou o vídeo "Emulating the DX7 the HARD way" e indicou o perfil de David Viens (plgDavid), que é de Montréal.
Felipe "Juca" Sanches propôs emular máquinas de café com firmware e catalogar modelos com metadados, no estilo do MAME. Relacionou a ideia à issue do sistema de artwork 3D do MAME e contou que contribuiu skeleton drivers das impressoras 3D Metamaquina 2 e Makerbot Replicator 2, que precisariam de modelagem 3D e de simulação da temperatura e da extrusão. Disse também que tem um scanner 3D da Makerbot esperando dump do firmware.
Juca divulgou sua proposta de palestra para a GambiConf (11 e 12 de dezembro), sobre usos inusitados de emuladores para prototipar interfaces com equipamentos reais, como máquina de pinball, sintetizador analógico, displays de LED e motores. Também divulgou o formulário de propostas, cujo prazo terminava naquele dia. Shideravan apontou um erro de digitação no título, que Juca corrigiu.
Juca lembrou que preservar publicamente o histórico do grupo é uma meta do projeto e recomendou cuidado com o que se compartilha. Shideravan pediu ajuda com o upload múltiplo no Drupal do Datassette.
Juca lembrou que preservar o histórico do grupo é uma meta do projeto. Disse que tinha parado de atualizar os logs publicados e que precisava automatizar isso. Shideravan temia que o histórico fosse usado para doxxing, já que no grupo se fala de vida pessoal, política e trabalho. Juca recomendou cuidado com o que se compartilha, já que o histórico será público, e disse que cada um pode apagar as próprias mensagens.
Shideravan pediu ajuda de quem conhece Drupal para implementar o envio de vários arquivos de uma vez no Datassette. O objetivo era agilizar a publicação das coleções de revistas, manuais e documentação técnica que ele tem.